@saasflare/ui 1.0.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.
- package/LICENSE +23 -0
- package/dist/index.d.mts +2103 -0
- package/dist/index.d.ts +2103 -0
- package/dist/index.js +7244 -0
- package/dist/index.mjs +6866 -0
- package/fonts/index.ts +56 -0
- package/fonts/presets/default.ts +37 -0
- package/fonts/presets/distinctive.ts +43 -0
- package/fonts/presets/editorial.ts +44 -0
- package/fonts/presets/geometric.ts +37 -0
- package/fonts/presets/neutral.ts +41 -0
- package/fonts/presets/rounded.ts +38 -0
- package/package.json +90 -0
- package/styles/globals.css +12 -0
- package/styles/motion.css +53 -0
- package/styles/palettes.css +147 -0
- package/styles/surfaces.css +51 -0
- package/styles/theme.css +388 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2103 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import * as React$1 from 'react';
|
|
5
|
+
import { ReactNode, JSX } from 'react';
|
|
6
|
+
import { VariantProps } from 'class-variance-authority';
|
|
7
|
+
import { Dialog as Dialog$1, AlertDialog as AlertDialog$1, Accordion as Accordion$1, Tabs as Tabs$1, Checkbox as Checkbox$1, Switch as Switch$1, Progress as Progress$1, Tooltip as Tooltip$1, Popover as Popover$1, HoverCard as HoverCard$1, Select as Select$1, DropdownMenu as DropdownMenu$1, Slider as Slider$1, Avatar as Avatar$1, ContextMenu as ContextMenu$1, Menubar as Menubar$1, NavigationMenu as NavigationMenu$1, Toggle as Toggle$1, ToggleGroup as ToggleGroup$1, RadioGroup as RadioGroup$1, Collapsible as Collapsible$1, ScrollArea as ScrollArea$1, AspectRatio as AspectRatio$1, Separator as Separator$1, Direction, Label as Label$1, Slot } from 'radix-ui';
|
|
8
|
+
import { Drawer as Drawer$1 } from 'vaul';
|
|
9
|
+
import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';
|
|
10
|
+
import { DayPicker, DayButton } from 'react-day-picker';
|
|
11
|
+
import { ToasterProps } from 'sonner';
|
|
12
|
+
import * as RechartsPrimitive from 'recharts';
|
|
13
|
+
import { Combobox as Combobox$1 } from '@base-ui/react';
|
|
14
|
+
import { Command as Command$1 } from 'cmdk';
|
|
15
|
+
import * as react_hook_form from 'react-hook-form';
|
|
16
|
+
import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
|
|
17
|
+
import { OTPInput } from 'input-otp';
|
|
18
|
+
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @fileoverview Core utility functions for the Saasflare design system.
|
|
22
|
+
* @module @saasflare/ui/lib/utils
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* import { cn, composeEventHandlers } from '@saasflare/ui';
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Merges class names with Tailwind CSS conflict resolution.
|
|
30
|
+
* Combines clsx conditional logic with tailwind-merge deduplication.
|
|
31
|
+
*
|
|
32
|
+
* @param inputs - Class values (strings, objects, arrays, undefined)
|
|
33
|
+
* @returns Merged and deduplicated class string
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* cn('p-4 bg-red-500', 'bg-blue-500') // → 'p-4 bg-blue-500'
|
|
37
|
+
* cn('text-sm', isLarge && 'text-lg') // conditional classes
|
|
38
|
+
* cn('mt-2', className) // safe forwarding
|
|
39
|
+
*/
|
|
40
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @fileoverview Hook to detect mobile viewport via media query.
|
|
44
|
+
* @module packages/core/hooks/use-mobile
|
|
45
|
+
* @layer core
|
|
46
|
+
*
|
|
47
|
+
* Uses `matchMedia` to reactively track whether the viewport width
|
|
48
|
+
* is below the mobile breakpoint (768px).
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* const isMobile = useIsMobile();
|
|
52
|
+
* if (isMobile) return <MobileNav />;
|
|
53
|
+
* return <DesktopNav />;
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Returns `true` when the viewport width is below 768px.
|
|
57
|
+
*
|
|
58
|
+
* @returns {boolean} Whether the current viewport is mobile-sized
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* const isMobile = useIsMobile();
|
|
62
|
+
* <Sheet open={isMobile ? isOpen : undefined}>...</Sheet>
|
|
63
|
+
*/
|
|
64
|
+
declare function useIsMobile(): boolean;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @fileoverview Hook to detect user's reduced-motion preference.
|
|
68
|
+
* @module packages/core/hooks/use-reduced-motion
|
|
69
|
+
* @layer core
|
|
70
|
+
*
|
|
71
|
+
* Returns `true` when the user has enabled "Reduce motion" in their OS settings.
|
|
72
|
+
* Use this to disable Framer Motion scale/translate/spring animations while
|
|
73
|
+
* keeping CSS-token-driven transitions (which already zero out via motion.css).
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* const reduced = useReducedMotion();
|
|
77
|
+
* <motion.div whileHover={reduced ? undefined : { scale: 1.02 }} />
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* Detects the user's prefers-reduced-motion media query.
|
|
81
|
+
*
|
|
82
|
+
* SSR-safe: returns `false` on the server, reads the real value synchronously
|
|
83
|
+
* on the client during hydration, and updates when the OS preference changes.
|
|
84
|
+
*
|
|
85
|
+
* @returns {boolean} `true` when reduced motion is preferred
|
|
86
|
+
*/
|
|
87
|
+
declare function useReducedMotion(): boolean;
|
|
88
|
+
|
|
89
|
+
/** Options for useDisclosure */
|
|
90
|
+
interface UseDisclosureOptions {
|
|
91
|
+
/** Initial open state when uncontrolled. Default: `false` */
|
|
92
|
+
defaultOpen?: boolean;
|
|
93
|
+
/** Controlled open state. When provided, the hook operates in controlled mode. */
|
|
94
|
+
isOpen?: boolean;
|
|
95
|
+
/** Callback fired when the open state changes (in both modes) */
|
|
96
|
+
onChange?: (isOpen: boolean) => void;
|
|
97
|
+
}
|
|
98
|
+
/** Return value of useDisclosure */
|
|
99
|
+
interface UseDisclosureReturn {
|
|
100
|
+
/** Current open state */
|
|
101
|
+
isOpen: boolean;
|
|
102
|
+
/** Open the disclosure */
|
|
103
|
+
onOpen: () => void;
|
|
104
|
+
/** Close the disclosure */
|
|
105
|
+
onClose: () => void;
|
|
106
|
+
/** Toggle the disclosure */
|
|
107
|
+
onToggle: () => void;
|
|
108
|
+
/** Set the open state — matches Radix/shadcn `onOpenChange` prop shape */
|
|
109
|
+
onOpenChange: (open: boolean) => void;
|
|
110
|
+
/** Whether the disclosure is externally controlled */
|
|
111
|
+
isControlled: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Manages open-close state with support for both controlled and uncontrolled usage.
|
|
115
|
+
* Designed to drop into Radix/shadcn primitives via the `onOpenChange` prop.
|
|
116
|
+
*
|
|
117
|
+
* @param {UseDisclosureOptions} [options] - Configuration
|
|
118
|
+
* @returns {UseDisclosureReturn} Open state and control callbacks
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* const { isOpen, onOpen, onClose, onOpenChange } = useDisclosure();
|
|
122
|
+
* <Button onClick={onOpen}>Open</Button>
|
|
123
|
+
* <Dialog open={isOpen} onOpenChange={onOpenChange}>
|
|
124
|
+
* <Button onClick={onClose}>Close</Button>
|
|
125
|
+
* </Dialog>
|
|
126
|
+
*/
|
|
127
|
+
declare function useDisclosure(options?: UseDisclosureOptions): UseDisclosureReturn;
|
|
128
|
+
|
|
129
|
+
/** Element measurement — dimensions plus bounding-rect position */
|
|
130
|
+
interface Measurement {
|
|
131
|
+
/** Element content-box width in pixels */
|
|
132
|
+
width: number;
|
|
133
|
+
/** Element content-box height in pixels */
|
|
134
|
+
height: number;
|
|
135
|
+
/** DOMRect top (viewport-relative) */
|
|
136
|
+
top: number;
|
|
137
|
+
/** DOMRect left (viewport-relative) */
|
|
138
|
+
left: number;
|
|
139
|
+
/** DOMRect right (viewport-relative) */
|
|
140
|
+
right: number;
|
|
141
|
+
/** DOMRect bottom (viewport-relative) */
|
|
142
|
+
bottom: number;
|
|
143
|
+
/** DOMRect x (viewport-relative) */
|
|
144
|
+
x: number;
|
|
145
|
+
/** DOMRect y (viewport-relative) */
|
|
146
|
+
y: number;
|
|
147
|
+
}
|
|
148
|
+
/** Return tuple of useMeasure — `[ref, measurement]` */
|
|
149
|
+
type UseMeasureReturn<T extends Element = HTMLElement> = readonly [
|
|
150
|
+
ref: (node: T | null) => void,
|
|
151
|
+
measurement: Measurement
|
|
152
|
+
];
|
|
153
|
+
/**
|
|
154
|
+
* Observes an element's dimensions with a `ResizeObserver` and returns the
|
|
155
|
+
* latest measurement. SSR-safe: returns zeroed values until the observer runs
|
|
156
|
+
* on the client.
|
|
157
|
+
*
|
|
158
|
+
* @template T - The observed element type (defaults to `HTMLElement`)
|
|
159
|
+
* @returns {UseMeasureReturn<T>} Tuple of `[callback ref, measurement]`
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* const [ref, { width }] = useMeasure<HTMLDivElement>();
|
|
163
|
+
* const columns = width > 1024 ? 3 : width > 640 ? 2 : 1;
|
|
164
|
+
* return <div ref={ref}>{columns} columns</div>;
|
|
165
|
+
*/
|
|
166
|
+
declare function useMeasure<T extends Element = HTMLElement>(): UseMeasureReturn<T>;
|
|
167
|
+
|
|
168
|
+
/** An item in the pagination range — either a page number or an ellipsis marker */
|
|
169
|
+
type PaginationRangeItem = number | 'dots';
|
|
170
|
+
/** Options for usePagination */
|
|
171
|
+
interface UsePaginationOptions {
|
|
172
|
+
/** Total number of pages (1-indexed max). Values below 1 are clamped to 1. */
|
|
173
|
+
total: number;
|
|
174
|
+
/** Initial active page when uncontrolled. Default: `1` */
|
|
175
|
+
initialPage?: number;
|
|
176
|
+
/** Controlled active page. When provided, the hook operates in controlled mode. */
|
|
177
|
+
page?: number;
|
|
178
|
+
/** Number of sibling pages shown on each side of the active page. Default: `1` */
|
|
179
|
+
siblings?: number;
|
|
180
|
+
/** Number of pages shown at the start and end of the range. Default: `1` */
|
|
181
|
+
boundaries?: number;
|
|
182
|
+
/** Callback fired when the active page changes */
|
|
183
|
+
onChange?: (page: number) => void;
|
|
184
|
+
}
|
|
185
|
+
/** Return value of usePagination */
|
|
186
|
+
interface UsePaginationReturn {
|
|
187
|
+
/** Current active page (1-indexed, always within `[1, total]`) */
|
|
188
|
+
activePage: number;
|
|
189
|
+
/** Visible range with ellipsis markers (e.g. `[1, 'dots', 9, 10, 11, 'dots', 20]`) */
|
|
190
|
+
range: PaginationRangeItem[];
|
|
191
|
+
/** Set the active page (clamped to `[1, total]`) */
|
|
192
|
+
setPage: (page: number) => void;
|
|
193
|
+
/** Advance to the next page (no-op if on last page) */
|
|
194
|
+
next: () => void;
|
|
195
|
+
/** Go to the previous page (no-op if on first page) */
|
|
196
|
+
previous: () => void;
|
|
197
|
+
/** Jump to the first page */
|
|
198
|
+
first: () => void;
|
|
199
|
+
/** Jump to the last page */
|
|
200
|
+
last: () => void;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Calculates the visible pagination range and provides navigation controls.
|
|
204
|
+
* Works in both controlled and uncontrolled modes.
|
|
205
|
+
*
|
|
206
|
+
* The range algorithm shows the active page with `siblings` neighbours on
|
|
207
|
+
* each side, `boundaries` pages pinned to the start and end, and `'dots'`
|
|
208
|
+
* ellipsis markers filling the gaps.
|
|
209
|
+
*
|
|
210
|
+
* @param {UsePaginationOptions} options - Pagination configuration
|
|
211
|
+
* @returns {UsePaginationReturn} Active page, range, and navigation helpers
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* const { activePage, range, setPage } = usePagination({
|
|
215
|
+
* total: 20,
|
|
216
|
+
* siblings: 1,
|
|
217
|
+
* boundaries: 1,
|
|
218
|
+
* });
|
|
219
|
+
* // activePage = 1 → [1, 2, 3, 4, 5, 'dots', 20]
|
|
220
|
+
* // activePage = 10 → [1, 'dots', 9, 10, 11, 'dots', 20]
|
|
221
|
+
* // activePage = 20 → [1, 'dots', 16, 17, 18, 19, 20]
|
|
222
|
+
*/
|
|
223
|
+
declare function usePagination(options: UsePaginationOptions): UsePaginationReturn;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* @fileoverview Shared motion presets for premium UI components.
|
|
227
|
+
* @module packages/core/components/ui/motion-config
|
|
228
|
+
* @layer core
|
|
229
|
+
*
|
|
230
|
+
* Governance:
|
|
231
|
+
* CSS transitions (var(--duration-*), var(--ease-*)) → hover, focus, color changes.
|
|
232
|
+
* These tokens already zero-out via prefers-reduced-motion in motion.css.
|
|
233
|
+
*
|
|
234
|
+
* Framer Motion springs → ONLY for mount/unmount, layout, drag, presence, gesture.
|
|
235
|
+
* Use `useReducedMotion()` to disable springs when the user prefers reduced motion.
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* import { spring, useReducedMotion } from "@saasflare/core";
|
|
239
|
+
* const reduced = useReducedMotion();
|
|
240
|
+
* <motion.div transition={reduced ? { duration: 0 } : spring} />
|
|
241
|
+
*/
|
|
242
|
+
/** Re-export reduced-motion hook for convenience */
|
|
243
|
+
|
|
244
|
+
/** Snappy spring — default for buttons, badges, interactive feedback */
|
|
245
|
+
declare const spring: {
|
|
246
|
+
readonly type: "spring";
|
|
247
|
+
readonly stiffness: 400;
|
|
248
|
+
readonly damping: 25;
|
|
249
|
+
};
|
|
250
|
+
/** Bouncy spring — dialogs, overlays, playful entrances */
|
|
251
|
+
declare const springBouncy: {
|
|
252
|
+
readonly type: "spring";
|
|
253
|
+
readonly stiffness: 300;
|
|
254
|
+
readonly damping: 15;
|
|
255
|
+
};
|
|
256
|
+
/** Gentle spring — cards, hover lifts, subtle motion */
|
|
257
|
+
declare const springGentle: {
|
|
258
|
+
readonly type: "spring";
|
|
259
|
+
readonly stiffness: 200;
|
|
260
|
+
readonly damping: 20;
|
|
261
|
+
};
|
|
262
|
+
/** Stiff spring — toggles, switches, tight animations */
|
|
263
|
+
declare const springStiff: {
|
|
264
|
+
readonly type: "spring";
|
|
265
|
+
readonly stiffness: 500;
|
|
266
|
+
readonly damping: 30;
|
|
267
|
+
};
|
|
268
|
+
/** Instant transition — used when reduced motion is preferred */
|
|
269
|
+
declare const noMotion: {
|
|
270
|
+
readonly duration: 0;
|
|
271
|
+
};
|
|
272
|
+
/** Fade in preset (mount animation) */
|
|
273
|
+
declare const fadeIn: {
|
|
274
|
+
readonly initial: {
|
|
275
|
+
readonly opacity: 0;
|
|
276
|
+
};
|
|
277
|
+
readonly animate: {
|
|
278
|
+
readonly opacity: 1;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
/** Scale in preset (mount animation) */
|
|
282
|
+
declare const scaleIn: {
|
|
283
|
+
readonly initial: {
|
|
284
|
+
readonly opacity: 0;
|
|
285
|
+
readonly scale: 0.95;
|
|
286
|
+
};
|
|
287
|
+
readonly animate: {
|
|
288
|
+
readonly opacity: 1;
|
|
289
|
+
readonly scale: 1;
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
/** Slide up preset (mount animation) */
|
|
293
|
+
declare const slideUp: {
|
|
294
|
+
readonly initial: {
|
|
295
|
+
readonly opacity: 0;
|
|
296
|
+
readonly y: 8;
|
|
297
|
+
};
|
|
298
|
+
readonly animate: {
|
|
299
|
+
readonly opacity: 1;
|
|
300
|
+
readonly y: 0;
|
|
301
|
+
};
|
|
302
|
+
};
|
|
303
|
+
/** Slide down preset (mount animation) */
|
|
304
|
+
declare const slideDown: {
|
|
305
|
+
readonly initial: {
|
|
306
|
+
readonly opacity: 0;
|
|
307
|
+
readonly y: -8;
|
|
308
|
+
};
|
|
309
|
+
readonly animate: {
|
|
310
|
+
readonly opacity: 1;
|
|
311
|
+
readonly y: 0;
|
|
312
|
+
};
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
/** Context value exposed by {@link useAnimation}. */
|
|
316
|
+
interface AnimationContextType {
|
|
317
|
+
/** Whether animations are enabled (composed with OS preference). */
|
|
318
|
+
animated: boolean;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Access the resolved animation state.
|
|
322
|
+
*
|
|
323
|
+
* Inside a `SaasflareProvider`, returns the provider's composed value
|
|
324
|
+
* (`animated` prop AND NOT `prefers-reduced-motion`). Outside any provider,
|
|
325
|
+
* falls back to the OS preference alone.
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* const { animated } = useAnimation()
|
|
329
|
+
* <motion.div whileHover={animated ? { scale: 1.02 } : undefined} />
|
|
330
|
+
*/
|
|
331
|
+
declare function useAnimation(): AnimationContextType;
|
|
332
|
+
|
|
333
|
+
/** Props for the SmoothScrollProvider component. */
|
|
334
|
+
interface SmoothScrollProviderProps {
|
|
335
|
+
/** Child elements to render. */
|
|
336
|
+
children: ReactNode;
|
|
337
|
+
/** Whether smooth scrolling is enabled. Default: `true` */
|
|
338
|
+
enabled?: boolean;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Context-free provider that toggles smooth scrolling on `<html>`.
|
|
342
|
+
*
|
|
343
|
+
* - Adds `scroll-behavior: smooth` to the document element
|
|
344
|
+
* - Automatically disables when `prefers-reduced-motion: reduce` is set
|
|
345
|
+
* - Restores the original scroll behavior on unmount
|
|
346
|
+
*
|
|
347
|
+
* @component
|
|
348
|
+
* @package ui
|
|
349
|
+
*/
|
|
350
|
+
declare function SmoothScrollProvider({ children, enabled, }: SmoothScrollProviderProps): react_jsx_runtime.JSX.Element;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* @fileoverview Shared type aliases for component prop value domains.
|
|
354
|
+
* @module packages/ui/types/component-props
|
|
355
|
+
* @package ui
|
|
356
|
+
*
|
|
357
|
+
* These are value-domain types, not mixin interfaces. Components compose
|
|
358
|
+
* them into their own prop signatures and restrict to the subset that
|
|
359
|
+
* makes sense. Lives in /types (not /providers) because these types have
|
|
360
|
+
* no runtime coupling to the Saasflare provider context.
|
|
361
|
+
*
|
|
362
|
+
* @example Full range
|
|
363
|
+
* interface ButtonProps extends SaasflareComponentProps {
|
|
364
|
+
* size?: Size
|
|
365
|
+
* }
|
|
366
|
+
*
|
|
367
|
+
* @example Restricted subset
|
|
368
|
+
* interface IconProps extends SaasflareComponentProps {
|
|
369
|
+
* size?: Extract<Size, "xs" | "sm" | "md"> // no lg/xl — too big for icons
|
|
370
|
+
* }
|
|
371
|
+
*
|
|
372
|
+
* Intent is intentionally NOT here. Saasflare components express semantic
|
|
373
|
+
* coloring through their own `variant` prop (per-component CVA vocabulary)
|
|
374
|
+
* rather than a shared intent token. See individual component files for
|
|
375
|
+
* their variant domains.
|
|
376
|
+
*/
|
|
377
|
+
/**
|
|
378
|
+
* Standard size scale for Saasflare components.
|
|
379
|
+
*
|
|
380
|
+
* Each component restricts to the subset that makes sense:
|
|
381
|
+
* - Buttons: full range `"xs" | "sm" | "md" | "lg" | "xl"`
|
|
382
|
+
* - Icons: only `"xs" | "sm" | "md"` (lg/xl are cartoonishly large)
|
|
383
|
+
* - Avatars: `"sm" | "md" | "lg" | "xl"` (xs is too small to be useful)
|
|
384
|
+
*
|
|
385
|
+
* Components pick via `Extract<Size, "xs" | "sm">` in their props definition.
|
|
386
|
+
*/
|
|
387
|
+
type Size = "xs" | "sm" | "md" | "lg" | "xl";
|
|
388
|
+
/**
|
|
389
|
+
* Spacing density scale for data-dense components.
|
|
390
|
+
*
|
|
391
|
+
* Applies per-instance on components like Table, Form, DataList where
|
|
392
|
+
* the author wants to trade visual breathing-room against vertical space.
|
|
393
|
+
*
|
|
394
|
+
* Not a provider axis (unlike `surface` and `animated`): density stays
|
|
395
|
+
* local to the component instance. If you need app-wide "compact mode",
|
|
396
|
+
* wrap your dashboard in your own `<Density>` context or pass the value
|
|
397
|
+
* down explicitly.
|
|
398
|
+
*/
|
|
399
|
+
type Density = "compact" | "normal" | "comfortable";
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* @fileoverview Theme-related types and constants consumed by SaasflareProvider,
|
|
403
|
+
* SaasflareShell, and CustomPaletteInjector.
|
|
404
|
+
* @module packages/ui/types/theme-props
|
|
405
|
+
* @package ui
|
|
406
|
+
*
|
|
407
|
+
* Palette colors live in `styles/palettes.css` (OKLCH) — the single source of
|
|
408
|
+
* truth. To render a swatch in a picker, wrap an element in `data-palette={id}`
|
|
409
|
+
* and paint it with `oklch(var(--primary-l) var(--primary-c) var(--primary-h))`.
|
|
410
|
+
* Do NOT add a hex `color` field here; it will drift from palettes.css.
|
|
411
|
+
*/
|
|
412
|
+
/** All 16 available color palette ids and display names. */
|
|
413
|
+
declare const PALETTES: readonly [{
|
|
414
|
+
readonly id: "ocean";
|
|
415
|
+
readonly name: "Ocean";
|
|
416
|
+
}, {
|
|
417
|
+
readonly id: "achromatic";
|
|
418
|
+
readonly name: "Achromatic";
|
|
419
|
+
}, {
|
|
420
|
+
readonly id: "black";
|
|
421
|
+
readonly name: "Black";
|
|
422
|
+
}, {
|
|
423
|
+
readonly id: "ink";
|
|
424
|
+
readonly name: "Ink";
|
|
425
|
+
}, {
|
|
426
|
+
readonly id: "aurora";
|
|
427
|
+
readonly name: "Aurora";
|
|
428
|
+
}, {
|
|
429
|
+
readonly id: "indigo";
|
|
430
|
+
readonly name: "Indigo";
|
|
431
|
+
}, {
|
|
432
|
+
readonly id: "emerald";
|
|
433
|
+
readonly name: "Emerald";
|
|
434
|
+
}, {
|
|
435
|
+
readonly id: "violet";
|
|
436
|
+
readonly name: "Violet";
|
|
437
|
+
}, {
|
|
438
|
+
readonly id: "coral";
|
|
439
|
+
readonly name: "Coral";
|
|
440
|
+
}, {
|
|
441
|
+
readonly id: "stone";
|
|
442
|
+
readonly name: "Stone";
|
|
443
|
+
}, {
|
|
444
|
+
readonly id: "jade";
|
|
445
|
+
readonly name: "Jade";
|
|
446
|
+
}, {
|
|
447
|
+
readonly id: "cobalt";
|
|
448
|
+
readonly name: "Cobalt";
|
|
449
|
+
}, {
|
|
450
|
+
readonly id: "amber";
|
|
451
|
+
readonly name: "Amber";
|
|
452
|
+
}, {
|
|
453
|
+
readonly id: "fuchsia";
|
|
454
|
+
readonly name: "Fuchsia";
|
|
455
|
+
}, {
|
|
456
|
+
readonly id: "honey";
|
|
457
|
+
readonly name: "Honey";
|
|
458
|
+
}, {
|
|
459
|
+
readonly id: "teal";
|
|
460
|
+
readonly name: "Teal";
|
|
461
|
+
}, {
|
|
462
|
+
readonly id: "iris";
|
|
463
|
+
readonly name: "Iris";
|
|
464
|
+
}, {
|
|
465
|
+
readonly id: "ruby";
|
|
466
|
+
readonly name: "Ruby";
|
|
467
|
+
}];
|
|
468
|
+
/** Union of all preset color palette IDs. */
|
|
469
|
+
type PaletteId = (typeof PALETTES)[number]["id"];
|
|
470
|
+
/**
|
|
471
|
+
* Visual surface style variant.
|
|
472
|
+
*
|
|
473
|
+
* The union uses `(string & {})` so app-level custom surfaces (e.g.
|
|
474
|
+
* "neumorphic") registered via a [data-style="…"] selector in the
|
|
475
|
+
* app's globals.css are accepted without a type patch, while preset
|
|
476
|
+
* ids keep their autocomplete.
|
|
477
|
+
*/
|
|
478
|
+
type StyleVariant = "flat" | "glass" | (string & {});
|
|
479
|
+
/** All available built-in surface style variants. */
|
|
480
|
+
declare const STYLES: readonly [{
|
|
481
|
+
readonly id: "flat";
|
|
482
|
+
readonly name: "Flat";
|
|
483
|
+
}, {
|
|
484
|
+
readonly id: "glass";
|
|
485
|
+
readonly name: "Glass";
|
|
486
|
+
}];
|
|
487
|
+
/**
|
|
488
|
+
* Radius preset — orthogonal to {@link Surface} (geometry vs. material).
|
|
489
|
+
*
|
|
490
|
+
* Maps to `[data-radius]` selectors in theme.css; each preset sets `--radius`
|
|
491
|
+
* (and at "pill" also overrides the entire `--radius-sm/md/lg/xl` scale so
|
|
492
|
+
* derived values don't drift to ~9995px).
|
|
493
|
+
*
|
|
494
|
+
* Per-component override: pass `radius` on any Saasflare component.
|
|
495
|
+
* Per-theme override: `CustomPalette.radius` wins via inline style.
|
|
496
|
+
*/
|
|
497
|
+
type Radius = "sharp" | "soft" | "rounded" | "pill";
|
|
498
|
+
/** All available built-in radius presets. */
|
|
499
|
+
declare const RADII: readonly [{
|
|
500
|
+
readonly id: "sharp";
|
|
501
|
+
readonly name: "Sharp";
|
|
502
|
+
}, {
|
|
503
|
+
readonly id: "soft";
|
|
504
|
+
readonly name: "Soft";
|
|
505
|
+
}, {
|
|
506
|
+
readonly id: "rounded";
|
|
507
|
+
readonly name: "Rounded";
|
|
508
|
+
}, {
|
|
509
|
+
readonly id: "pill";
|
|
510
|
+
readonly name: "Pill";
|
|
511
|
+
}];
|
|
512
|
+
/**
|
|
513
|
+
* Custom color theme — high-level, developer-friendly.
|
|
514
|
+
*
|
|
515
|
+
* Pass any CSS color as `primary` (hex, oklch, rgb, hsl, named color).
|
|
516
|
+
* Hex values are converted to OKLCH internally via {@link hexToOklch};
|
|
517
|
+
* other formats are passed through as the raw `--primary` value.
|
|
518
|
+
*
|
|
519
|
+
* @example
|
|
520
|
+
* <SaasflareProvider
|
|
521
|
+
* palette={{ name: "acme", primary: "#007AFF" }}
|
|
522
|
+
* />
|
|
523
|
+
*
|
|
524
|
+
* @example Escape hatch for full control
|
|
525
|
+
* <SaasflareProvider palette={{
|
|
526
|
+
* name: "acme",
|
|
527
|
+
* primary: "#007AFF",
|
|
528
|
+
* light: { "--background": "#fafafa" },
|
|
529
|
+
* dark: { "--background": "#0a0a0a" },
|
|
530
|
+
* }} />
|
|
531
|
+
*/
|
|
532
|
+
interface CustomPalette {
|
|
533
|
+
/** Unique name — written to `data-palette` attribute. */
|
|
534
|
+
name: string;
|
|
535
|
+
/** Primary brand color in any CSS color format. Required. */
|
|
536
|
+
primary: string;
|
|
537
|
+
/**
|
|
538
|
+
* Optional neutral axis override — drives backgrounds, muted, borders,
|
|
539
|
+
* cards, popovers, sidebar (i.e. the entire grey foundation of the UI),
|
|
540
|
+
* not just one accent token. Accepts hex or an explicit hue angle (0-360).
|
|
541
|
+
* Default: tinted from `primary` with a tiny chroma for "brand warmth".
|
|
542
|
+
*/
|
|
543
|
+
neutral?: string;
|
|
544
|
+
/** Optional border radius override (any CSS length). */
|
|
545
|
+
radius?: string;
|
|
546
|
+
/** Escape hatch: raw CSS custom property overrides applied in light mode. */
|
|
547
|
+
light?: Record<string, string>;
|
|
548
|
+
/** Escape hatch: raw CSS custom property overrides applied in dark mode. */
|
|
549
|
+
dark?: Record<string, string>;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Accepted values for the `palette` prop (brand colors — distinct from `theme`,
|
|
553
|
+
* which controls light/dark mode and is delegated to next-themes).
|
|
554
|
+
*
|
|
555
|
+
* - omit (undefined) → defers to persisted user preference, then global.css baseline
|
|
556
|
+
* - PaletteId → preset palette via [data-palette] selector
|
|
557
|
+
* - arbitrary string → app-registered [data-palette="…"] in the app's globals.css
|
|
558
|
+
* - CustomPalette → runtime palette via inline CSS custom properties
|
|
559
|
+
*
|
|
560
|
+
* The `(string & {})` branch preserves autocomplete for the 16 preset ids
|
|
561
|
+
* while still permitting arbitrary strings.
|
|
562
|
+
*/
|
|
563
|
+
type Palette = PaletteId | (string & {}) | CustomPalette;
|
|
564
|
+
/**
|
|
565
|
+
* Accepted values for the `surface` prop.
|
|
566
|
+
*
|
|
567
|
+
* - omit (undefined) → defers to persisted user preference, then "flat" baseline
|
|
568
|
+
* - StyleVariant → "flat" | "glass" | app-registered custom surface
|
|
569
|
+
*/
|
|
570
|
+
type Surface = StyleVariant;
|
|
571
|
+
/**
|
|
572
|
+
* Accepted values for the `radius` prop on SaasflareProvider / Shell.
|
|
573
|
+
*
|
|
574
|
+
* - omit (undefined) → defers to persisted user preference, then "rounded" baseline
|
|
575
|
+
* - Radius → forces [data-radius] on <html>
|
|
576
|
+
*/
|
|
577
|
+
type RadiusProp = Radius;
|
|
578
|
+
|
|
579
|
+
/** Context value exposed by useSaasflareTheme(). */
|
|
580
|
+
interface SaasflareThemeContextType {
|
|
581
|
+
/** Active brand palette id, or null when using baseline. */
|
|
582
|
+
palette: string | null;
|
|
583
|
+
/** Active surface style. */
|
|
584
|
+
surface: StyleVariant;
|
|
585
|
+
/** Active radius preset. */
|
|
586
|
+
radius: Radius;
|
|
587
|
+
/** Set the active brand palette (persists to localStorage). */
|
|
588
|
+
setPalette: (id: string) => void;
|
|
589
|
+
/** Set the active surface style (persists to localStorage). */
|
|
590
|
+
setSurface: (style: StyleVariant) => void;
|
|
591
|
+
/** Set the active radius preset (persists to localStorage). */
|
|
592
|
+
setRadius: (radius: Radius) => void;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Access the Saasflare theme context.
|
|
596
|
+
* Safe to call without a provider — returns baseline defaults.
|
|
597
|
+
*/
|
|
598
|
+
declare function useSaasflareTheme(): SaasflareThemeContextType;
|
|
599
|
+
/** Props for SaasflareProvider. */
|
|
600
|
+
interface SaasflareProviderProps {
|
|
601
|
+
children: ReactNode;
|
|
602
|
+
/**
|
|
603
|
+
* Light/dark mode (forwarded to next-themes).
|
|
604
|
+
* Distinct from `palette` (which selects the brand colors).
|
|
605
|
+
* @default "system"
|
|
606
|
+
*/
|
|
607
|
+
theme?: "light" | "dark" | "system";
|
|
608
|
+
/**
|
|
609
|
+
* Brand palette (distinct from `theme`, which is light/dark).
|
|
610
|
+
* - Preset id or arbitrary string → forces [data-palette] selector
|
|
611
|
+
* - CustomPalette object → forces palette via inline CSS vars
|
|
612
|
+
* - Omit to defer: uses persisted preference if any, otherwise baseline
|
|
613
|
+
*/
|
|
614
|
+
palette?: Palette;
|
|
615
|
+
/**
|
|
616
|
+
* Surface style.
|
|
617
|
+
* - StyleVariant → forces [data-style]
|
|
618
|
+
* - Omit to defer: uses persisted preference if any, otherwise "flat"
|
|
619
|
+
*/
|
|
620
|
+
surface?: Surface;
|
|
621
|
+
/**
|
|
622
|
+
* Radius preset (geometry axis — orthogonal to surface).
|
|
623
|
+
* - Radius → forces [data-radius]
|
|
624
|
+
* - Omit to defer: uses persisted preference if any, otherwise "rounded"
|
|
625
|
+
*/
|
|
626
|
+
radius?: RadiusProp;
|
|
627
|
+
/** Global animation kill switch. @default true */
|
|
628
|
+
animated?: boolean;
|
|
629
|
+
/** Enable smooth scrolling site-wide. @default false */
|
|
630
|
+
smoothScrolling?: boolean;
|
|
631
|
+
/**
|
|
632
|
+
* Skip rendering the pre-hydration FOUT-prevention script.
|
|
633
|
+
* Set this to true if you are placing `<SaasflareScript />` manually
|
|
634
|
+
* inside `<head>` (e.g. for a strict CSP setup).
|
|
635
|
+
* @default false
|
|
636
|
+
*/
|
|
637
|
+
disableScript?: boolean;
|
|
638
|
+
/** CSP nonce forwarded to the pre-hydration script. */
|
|
639
|
+
scriptNonce?: string;
|
|
640
|
+
/**
|
|
641
|
+
* localStorage key for Saasflare prefs (palette, surface, radius, animated).
|
|
642
|
+
* Change this to namespace your app ("acme-ui-prefs"), to isolate tenants,
|
|
643
|
+
* or to avoid collisions. If you render `<SaasflareScript />` manually in
|
|
644
|
+
* `<head>`, pass the same value to its `storageKey` prop.
|
|
645
|
+
*
|
|
646
|
+
* Changing this key after users have persisted preferences orphans the
|
|
647
|
+
* old data — users will see defaults until they re-pick their preferences.
|
|
648
|
+
*
|
|
649
|
+
* @default "sf-ui-prefs"
|
|
650
|
+
*/
|
|
651
|
+
storageKey?: string;
|
|
652
|
+
/**
|
|
653
|
+
* localStorage key forwarded to next-themes for the light/dark mode
|
|
654
|
+
* preference. Change alongside `storageKey` when namespacing.
|
|
655
|
+
*
|
|
656
|
+
* @default "theme"
|
|
657
|
+
*/
|
|
658
|
+
themeStorageKey?: string;
|
|
659
|
+
}
|
|
660
|
+
/**
|
|
661
|
+
* Unified Saasflare provider.
|
|
662
|
+
*
|
|
663
|
+
* Manages light/dark mode (via next-themes), brand palette, surface style,
|
|
664
|
+
* radius preset, and a global animation kill switch in a single component.
|
|
665
|
+
*
|
|
666
|
+
* @component
|
|
667
|
+
* @package ui
|
|
668
|
+
*/
|
|
669
|
+
declare function SaasflareProvider({ children, theme, palette, surface, radius, animated, smoothScrolling, disableScript, scriptNonce, storageKey, themeStorageKey, }: SaasflareProviderProps): react_jsx_runtime.JSX.Element;
|
|
670
|
+
|
|
671
|
+
/** Props for {@link SaasflareShell}. */
|
|
672
|
+
interface SaasflareShellProps extends Omit<SaasflareProviderProps, "children" | "disableScript" | "scriptNonce"> {
|
|
673
|
+
children: ReactNode;
|
|
674
|
+
/** Value for `<html lang="…">`. @default "en" */
|
|
675
|
+
lang?: string;
|
|
676
|
+
/**
|
|
677
|
+
* Optional className applied to `<html>`. Use this for `next/font`
|
|
678
|
+
* variable classNames, which scope the loaded font's CSS variable:
|
|
679
|
+
*
|
|
680
|
+
* const inter = Inter({ subsets: ["latin"], variable: "--font-sans" })
|
|
681
|
+
* <SaasflareShell className={inter.variable}>
|
|
682
|
+
*/
|
|
683
|
+
className?: string;
|
|
684
|
+
/** Optional className applied to `<body>`. */
|
|
685
|
+
bodyClassName?: string;
|
|
686
|
+
/** Optional children rendered inside a `<head>` element. */
|
|
687
|
+
head?: ReactNode;
|
|
688
|
+
}
|
|
689
|
+
/**
|
|
690
|
+
* Full document shell that locks the Saasflare design-system state in at
|
|
691
|
+
* SSR time. Replaces manual `<html>` + `<body>` + `<SaasflareProvider>`
|
|
692
|
+
* wiring in the Next.js root layout.
|
|
693
|
+
*
|
|
694
|
+
* @component
|
|
695
|
+
* @package ui
|
|
696
|
+
*/
|
|
697
|
+
declare function SaasflareShell({ children, lang, className, bodyClassName, head, palette, surface, radius, animated, theme, smoothScrolling, storageKey, themeStorageKey, }: SaasflareShellProps): react_jsx_runtime.JSX.Element;
|
|
698
|
+
|
|
699
|
+
/** Props for {@link SaasflareScript}. */
|
|
700
|
+
interface SaasflareScriptProps {
|
|
701
|
+
/** CSP nonce. Pass when your app enforces a strict Content-Security-Policy. */
|
|
702
|
+
nonce?: string;
|
|
703
|
+
/**
|
|
704
|
+
* Initial brand palette. Mirror the `palette` prop of SaasflareProvider.
|
|
705
|
+
* Omit to defer to persisted localStorage preference.
|
|
706
|
+
*/
|
|
707
|
+
palette?: string;
|
|
708
|
+
/**
|
|
709
|
+
* Initial surface style. Mirror the `surface` prop of SaasflareProvider.
|
|
710
|
+
* Omit to defer to persisted localStorage preference.
|
|
711
|
+
*/
|
|
712
|
+
surface?: string;
|
|
713
|
+
/**
|
|
714
|
+
* Initial radius preset. Mirror the `radius` prop of SaasflareProvider.
|
|
715
|
+
* Omit to defer to persisted localStorage preference.
|
|
716
|
+
*/
|
|
717
|
+
radius?: string;
|
|
718
|
+
/**
|
|
719
|
+
* Initial animation state. Mirror the `animated` prop of SaasflareProvider.
|
|
720
|
+
* Omit to defer to persisted localStorage preference (default: true).
|
|
721
|
+
*/
|
|
722
|
+
animated?: boolean;
|
|
723
|
+
/**
|
|
724
|
+
* localStorage key to read prefs from. Must match the SaasflareProvider's
|
|
725
|
+
* `storageKey` prop exactly. @default "sf-ui-prefs"
|
|
726
|
+
*/
|
|
727
|
+
storageKey?: string;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* Inline script that sets `data-palette`, `data-style`, `data-radius`,
|
|
731
|
+
* `data-animated` on the document element before first paint.
|
|
732
|
+
*
|
|
733
|
+
* @component
|
|
734
|
+
*/
|
|
735
|
+
declare function SaasflareScript({ nonce, palette, surface, radius, animated, storageKey }: SaasflareScriptProps): react_jsx_runtime.JSX.Element;
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* @fileoverview Base props and resolver hook for Saasflare components.
|
|
739
|
+
* @module packages/ui/providers/use-saasflare-props
|
|
740
|
+
* @package ui
|
|
741
|
+
*
|
|
742
|
+
* Every Saasflare component MUST:
|
|
743
|
+
* 1. Extend SaasflareComponentProps in its props interface
|
|
744
|
+
* 2. Call useSaasflareProps(props) to resolve effective values
|
|
745
|
+
*
|
|
746
|
+
* This ensures consistent precedence:
|
|
747
|
+
* component prop > provider context > hardcoded defaults
|
|
748
|
+
*
|
|
749
|
+
* @example
|
|
750
|
+
* interface CardProps extends SaasflareComponentProps {
|
|
751
|
+
* title: string
|
|
752
|
+
* }
|
|
753
|
+
*
|
|
754
|
+
* function Card({ title, ...sfProps }: CardProps) {
|
|
755
|
+
* const { surface, radius, animated } = useSaasflareProps(sfProps)
|
|
756
|
+
* // surface/radius are guaranteed to be resolved, never undefined
|
|
757
|
+
* }
|
|
758
|
+
*/
|
|
759
|
+
|
|
760
|
+
/** Props that every Saasflare component accepts for theme integration. */
|
|
761
|
+
interface SaasflareComponentProps {
|
|
762
|
+
/** Surface style override. Omit to inherit from provider. */
|
|
763
|
+
surface?: StyleVariant;
|
|
764
|
+
/** Radius preset override. Omit to inherit from provider. */
|
|
765
|
+
radius?: Radius;
|
|
766
|
+
/** Animation override. Omit to inherit from provider. */
|
|
767
|
+
animated?: boolean;
|
|
768
|
+
}
|
|
769
|
+
/** Fully resolved theme values — no optionals, no undefined. */
|
|
770
|
+
interface ResolvedSaasflareProps {
|
|
771
|
+
/** Active surface style. */
|
|
772
|
+
surface: StyleVariant;
|
|
773
|
+
/** Active radius preset. */
|
|
774
|
+
radius: Radius;
|
|
775
|
+
/** Whether animations are enabled. */
|
|
776
|
+
animated: boolean;
|
|
777
|
+
/** Active brand palette id (null = global.css baseline). */
|
|
778
|
+
palette: string | null;
|
|
779
|
+
}
|
|
780
|
+
/**
|
|
781
|
+
* Resolves component-level overrides against the provider context.
|
|
782
|
+
*
|
|
783
|
+
* Precedence: component prop > provider context > hardcoded default
|
|
784
|
+
*
|
|
785
|
+
* Safe without a provider — returns sensible defaults.
|
|
786
|
+
*/
|
|
787
|
+
declare function useSaasflareProps(props?: SaasflareComponentProps): ResolvedSaasflareProps;
|
|
788
|
+
|
|
789
|
+
declare const INTENTS: readonly ["primary", "neutral", "success", "warning", "danger", "info"];
|
|
790
|
+
type Intent = (typeof INTENTS)[number];
|
|
791
|
+
/**
|
|
792
|
+
* Button variant definitions using the 3-axis system.
|
|
793
|
+
*
|
|
794
|
+
* Axes:
|
|
795
|
+
* variant — visual treatment: solid, soft, outline, ghost, link, glass, shadow
|
|
796
|
+
* intent — color intent via data-intent attribute + CSS tokens
|
|
797
|
+
* size — dimensional: xs, sm, md, lg, xl, icon, icon-xs, icon-sm, icon-lg
|
|
798
|
+
*/
|
|
799
|
+
declare const buttonVariants: (props?: ({
|
|
800
|
+
variant?: "link" | "glass" | "soft" | "solid" | "outline" | "ghost" | "shadow" | null | undefined;
|
|
801
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
802
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
803
|
+
/** Framer-motion event overrides that conflict with React HTML events */
|
|
804
|
+
type MotionConflicts$1 = "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart" | "onAnimationEnd";
|
|
805
|
+
/**
|
|
806
|
+
* Props for the Saasflare Button component.
|
|
807
|
+
*
|
|
808
|
+
* Extends {@link SaasflareComponentProps} to accept `surface` and `animated`
|
|
809
|
+
* overrides that are resolved against the <SaasflareProvider> context.
|
|
810
|
+
*/
|
|
811
|
+
interface ButtonProps extends Omit<React$1.ComponentProps<"button">, MotionConflicts$1>, VariantProps<typeof buttonVariants>, SaasflareComponentProps {
|
|
812
|
+
/** Render as child element (Radix Slot pattern) */
|
|
813
|
+
asChild?: boolean;
|
|
814
|
+
/** Semantic color intent */
|
|
815
|
+
intent?: Intent;
|
|
816
|
+
/** Show loading spinner (replaces left icon, keeps text visible) */
|
|
817
|
+
loading?: boolean;
|
|
818
|
+
/** Stretch to full width of container */
|
|
819
|
+
fullWidth?: boolean;
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Primary interactive button with motion, loading, and intent support.
|
|
823
|
+
*
|
|
824
|
+
* Resolves `surface` and `animated` via {@link useSaasflareProps} with the
|
|
825
|
+
* precedence: component prop > <SaasflareProvider> context > hardcoded default.
|
|
826
|
+
*
|
|
827
|
+
* When no explicit `variant` is set and the resolved surface is `"glass"`, the
|
|
828
|
+
* button promotes itself to `variant="glass"`. An explicit `variant` prop always
|
|
829
|
+
* wins over the surface-based promotion.
|
|
830
|
+
*
|
|
831
|
+
* @component
|
|
832
|
+
* @layer ui
|
|
833
|
+
*
|
|
834
|
+
* @param {string} variant - Visual treatment: "solid" | "soft" | "outline" | "ghost" | "link" | "glass" | "shadow"
|
|
835
|
+
* @param {string} intent - Color intent: "primary" | "neutral" | "success" | "warning" | "danger" | "info"
|
|
836
|
+
* @param {string} size - Button size: "xs" | "sm" | "md" | "lg" | "xl" | "icon" | "icon-xs" | "icon-sm" | "icon-lg"
|
|
837
|
+
* @param {string} surface - Surface style override: "flat" | "glass" (inherits from provider when omitted)
|
|
838
|
+
* @param {boolean} animated - Gate motion effects (inherits from provider when omitted)
|
|
839
|
+
* @param {boolean} loading - Shows spinner, sets aria-busy, preserves width
|
|
840
|
+
* @param {boolean} fullWidth - Stretches to container width
|
|
841
|
+
* @param {boolean} asChild - Render as child element (Slot pattern)
|
|
842
|
+
*
|
|
843
|
+
* @example
|
|
844
|
+
* // Solid primary (default)
|
|
845
|
+
* <Button>Save Changes</Button>
|
|
846
|
+
*
|
|
847
|
+
* @example
|
|
848
|
+
* // Outline danger
|
|
849
|
+
* <Button variant="outline" intent="danger">Delete Account</Button>
|
|
850
|
+
*
|
|
851
|
+
* @example
|
|
852
|
+
* // Inherits surface from provider — auto-promotes to glass variant
|
|
853
|
+
* <SaasflareProvider surface="glass"><Button>Frosted</Button></SaasflareProvider>
|
|
854
|
+
*
|
|
855
|
+
* @example
|
|
856
|
+
* // Loading state
|
|
857
|
+
* <Button loading>Processing...</Button>
|
|
858
|
+
*
|
|
859
|
+
* @example
|
|
860
|
+
* // Icon button
|
|
861
|
+
* <Button variant="ghost" size="icon"><SettingsIcon /></Button>
|
|
862
|
+
*
|
|
863
|
+
* @example
|
|
864
|
+
* // Legacy API (deprecated but supported)
|
|
865
|
+
* <Button variant="destructive">Delete</Button>
|
|
866
|
+
*/
|
|
867
|
+
declare function Button({ className, variant: variantProp, size, intent: intentProp, asChild, loading, fullWidth, surface, animated, disabled, children, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
868
|
+
|
|
869
|
+
/**
|
|
870
|
+
* Card container with subtle hover-lift animation.
|
|
871
|
+
*
|
|
872
|
+
* @component
|
|
873
|
+
* @layer core
|
|
874
|
+
*
|
|
875
|
+
* @example
|
|
876
|
+
* <Card className="max-w-sm">
|
|
877
|
+
* <CardHeader><CardTitle>Plan</CardTitle></CardHeader>
|
|
878
|
+
* <CardContent>Content here</CardContent>
|
|
879
|
+
* </Card>
|
|
880
|
+
*/
|
|
881
|
+
/** Framer-motion event overrides that conflict with React HTML events */
|
|
882
|
+
type MotionConflicts = "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart" | "onAnimationEnd";
|
|
883
|
+
declare function Card({ className, ...props }: Omit<React$1.ComponentProps<"div">, MotionConflicts>): react_jsx_runtime.JSX.Element;
|
|
884
|
+
/**
|
|
885
|
+
* Card header with grid layout supporting an optional action slot.
|
|
886
|
+
*
|
|
887
|
+
* @component
|
|
888
|
+
* @layer core
|
|
889
|
+
*/
|
|
890
|
+
declare function CardHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
891
|
+
/**
|
|
892
|
+
* Card title text.
|
|
893
|
+
*
|
|
894
|
+
* @component
|
|
895
|
+
* @layer core
|
|
896
|
+
*/
|
|
897
|
+
declare function CardTitle({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
898
|
+
/**
|
|
899
|
+
* Card description / subtitle text.
|
|
900
|
+
*
|
|
901
|
+
* @component
|
|
902
|
+
* @layer core
|
|
903
|
+
*/
|
|
904
|
+
declare function CardDescription({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
905
|
+
/**
|
|
906
|
+
* Card action slot — positioned top-right in the header.
|
|
907
|
+
*
|
|
908
|
+
* @component
|
|
909
|
+
* @layer core
|
|
910
|
+
*/
|
|
911
|
+
declare function CardAction({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
912
|
+
/**
|
|
913
|
+
* Card main content area.
|
|
914
|
+
*
|
|
915
|
+
* @component
|
|
916
|
+
* @layer core
|
|
917
|
+
*/
|
|
918
|
+
declare function CardContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
919
|
+
/**
|
|
920
|
+
* Card footer — bottom-aligned actions.
|
|
921
|
+
*
|
|
922
|
+
* @component
|
|
923
|
+
* @layer core
|
|
924
|
+
*/
|
|
925
|
+
declare function CardFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
926
|
+
|
|
927
|
+
declare function Dialog({ ...props }: React$1.ComponentProps<typeof Dialog$1.Root>): react_jsx_runtime.JSX.Element;
|
|
928
|
+
declare function DialogTrigger({ ...props }: React$1.ComponentProps<typeof Dialog$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
929
|
+
declare function DialogPortal({ ...props }: React$1.ComponentProps<typeof Dialog$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
930
|
+
declare function DialogClose({ ...props }: React$1.ComponentProps<typeof Dialog$1.Close>): react_jsx_runtime.JSX.Element;
|
|
931
|
+
declare function DialogOverlay({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Overlay>): react_jsx_runtime.JSX.Element;
|
|
932
|
+
/**
|
|
933
|
+
* Dialog content panel with spring entry animation.
|
|
934
|
+
*
|
|
935
|
+
* @component
|
|
936
|
+
* @layer core
|
|
937
|
+
*/
|
|
938
|
+
declare function DialogContent({ className, children, ...props }: React$1.ComponentProps<typeof Dialog$1.Content>): react_jsx_runtime.JSX.Element;
|
|
939
|
+
declare function DialogHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
940
|
+
declare function DialogFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
941
|
+
declare function DialogTitle({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Title>): react_jsx_runtime.JSX.Element;
|
|
942
|
+
declare function DialogDescription({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Description>): react_jsx_runtime.JSX.Element;
|
|
943
|
+
|
|
944
|
+
declare function AlertDialog({ ...props }: React$1.ComponentProps<typeof AlertDialog$1.Root>): react_jsx_runtime.JSX.Element;
|
|
945
|
+
declare function AlertDialogTrigger({ ...props }: React$1.ComponentProps<typeof AlertDialog$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
946
|
+
declare function AlertDialogPortal({ ...props }: React$1.ComponentProps<typeof AlertDialog$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
947
|
+
declare function AlertDialogOverlay({ className, ...props }: React$1.ComponentProps<typeof AlertDialog$1.Overlay>): react_jsx_runtime.JSX.Element;
|
|
948
|
+
declare function AlertDialogContent({ className, children, ...props }: React$1.ComponentProps<typeof AlertDialog$1.Content>): react_jsx_runtime.JSX.Element;
|
|
949
|
+
declare function AlertDialogHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
950
|
+
declare function AlertDialogFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
951
|
+
declare function AlertDialogTitle({ className, ...props }: React$1.ComponentProps<typeof AlertDialog$1.Title>): react_jsx_runtime.JSX.Element;
|
|
952
|
+
declare function AlertDialogDescription({ className, ...props }: React$1.ComponentProps<typeof AlertDialog$1.Description>): react_jsx_runtime.JSX.Element;
|
|
953
|
+
declare function AlertDialogAction({ className, ...props }: React$1.ComponentProps<typeof AlertDialog$1.Action>): react_jsx_runtime.JSX.Element;
|
|
954
|
+
declare function AlertDialogCancel({ className, ...props }: React$1.ComponentProps<typeof AlertDialog$1.Cancel>): react_jsx_runtime.JSX.Element;
|
|
955
|
+
|
|
956
|
+
declare function Accordion({ ...props }: React$1.ComponentProps<typeof Accordion$1.Root>): react_jsx_runtime.JSX.Element;
|
|
957
|
+
declare function AccordionItem({ className, ...props }: React$1.ComponentProps<typeof Accordion$1.Item>): react_jsx_runtime.JSX.Element;
|
|
958
|
+
/**
|
|
959
|
+
* Accordion trigger with animated chevron indicator.
|
|
960
|
+
*
|
|
961
|
+
* @component
|
|
962
|
+
* @layer core
|
|
963
|
+
*/
|
|
964
|
+
declare function AccordionTrigger({ className, children, ...props }: React$1.ComponentProps<typeof Accordion$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
965
|
+
/**
|
|
966
|
+
* Accordion content panel with fade-in animation.
|
|
967
|
+
*
|
|
968
|
+
* @component
|
|
969
|
+
* @layer core
|
|
970
|
+
*/
|
|
971
|
+
declare function AccordionContent({ className, children, ...props }: React$1.ComponentProps<typeof Accordion$1.Content>): react_jsx_runtime.JSX.Element;
|
|
972
|
+
|
|
973
|
+
declare function Tabs({ className, orientation, ...props }: React$1.ComponentProps<typeof Tabs$1.Root>): react_jsx_runtime.JSX.Element;
|
|
974
|
+
declare const tabsListVariants: (props?: ({
|
|
975
|
+
variant?: "default" | "line" | null | undefined;
|
|
976
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
977
|
+
declare function TabsList({ className, variant, ...props }: React$1.ComponentProps<typeof Tabs$1.List> & VariantProps<typeof tabsListVariants>): react_jsx_runtime.JSX.Element;
|
|
978
|
+
/**
|
|
979
|
+
* Tab trigger with animated active indicator.
|
|
980
|
+
*
|
|
981
|
+
* @component
|
|
982
|
+
* @layer core
|
|
983
|
+
*/
|
|
984
|
+
declare function TabsTrigger({ className, children, value, ...props }: React$1.ComponentProps<typeof Tabs$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
985
|
+
declare function TabsContent({ className, ...props }: React$1.ComponentProps<typeof Tabs$1.Content>): react_jsx_runtime.JSX.Element;
|
|
986
|
+
|
|
987
|
+
declare function Input({ className, type, ...props }: Omit<React$1.ComponentProps<"input">, 'onDrag' | 'onDragStart' | 'onDragEnd' | 'onAnimationStart' | 'onAnimationEnd'>): react_jsx_runtime.JSX.Element;
|
|
988
|
+
|
|
989
|
+
declare function Textarea({ className, ...props }: Omit<React$1.ComponentProps<"textarea">, 'onDrag' | 'onDragStart' | 'onDragEnd' | 'onAnimationStart' | 'onAnimationEnd'>): react_jsx_runtime.JSX.Element;
|
|
990
|
+
|
|
991
|
+
declare function Checkbox({ className, ...props }: React$1.ComponentProps<typeof Checkbox$1.Root>): react_jsx_runtime.JSX.Element;
|
|
992
|
+
|
|
993
|
+
declare function Switch({ className, size, ...props }: React$1.ComponentProps<typeof Switch$1.Root> & {
|
|
994
|
+
size?: "sm" | "default";
|
|
995
|
+
}): react_jsx_runtime.JSX.Element;
|
|
996
|
+
|
|
997
|
+
/**
|
|
998
|
+
* Progress bar with smooth spring animation.
|
|
999
|
+
*
|
|
1000
|
+
* @component
|
|
1001
|
+
* @layer core
|
|
1002
|
+
*
|
|
1003
|
+
* @param {number} value - Progress value (0-100)
|
|
1004
|
+
*
|
|
1005
|
+
* @example
|
|
1006
|
+
* <Progress value={42} className="w-full" />
|
|
1007
|
+
*/
|
|
1008
|
+
declare function Progress({ className, value, ...props }: React$1.ComponentProps<typeof Progress$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1009
|
+
|
|
1010
|
+
/**
|
|
1011
|
+
* Badge variant definitions.
|
|
1012
|
+
*
|
|
1013
|
+
* Axes:
|
|
1014
|
+
* variant — visual treatment: solid, soft, outline
|
|
1015
|
+
* size — sm, md
|
|
1016
|
+
*/
|
|
1017
|
+
declare const badgeVariants: (props?: ({
|
|
1018
|
+
variant?: "soft" | "solid" | "outline" | null | undefined;
|
|
1019
|
+
size?: "sm" | "md" | null | undefined;
|
|
1020
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1021
|
+
/** Props for the Saasflare Badge component */
|
|
1022
|
+
interface BadgeProps extends Omit<React$1.ComponentProps<"span">, "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart" | "onAnimationEnd">, VariantProps<typeof badgeVariants> {
|
|
1023
|
+
/** Render as child element (Radix Slot pattern) */
|
|
1024
|
+
asChild?: boolean;
|
|
1025
|
+
/** Semantic color intent */
|
|
1026
|
+
intent?: Intent;
|
|
1027
|
+
}
|
|
1028
|
+
/**
|
|
1029
|
+
* Badge for status, labels, and counts with intent-based coloring.
|
|
1030
|
+
*
|
|
1031
|
+
* @component
|
|
1032
|
+
* @layer core
|
|
1033
|
+
*
|
|
1034
|
+
* @param {string} variant - Visual treatment: "solid" | "soft" | "outline"
|
|
1035
|
+
* @param {string} intent - Color intent: "primary" | "neutral" | "success" | "warning" | "danger" | "info"
|
|
1036
|
+
* @param {string} size - Badge size: "sm" | "md"
|
|
1037
|
+
* @param {boolean} asChild - Render as child element (Slot pattern)
|
|
1038
|
+
*
|
|
1039
|
+
* @example
|
|
1040
|
+
* <Badge intent="success" variant="soft">Active</Badge>
|
|
1041
|
+
*
|
|
1042
|
+
* @example
|
|
1043
|
+
* // Legacy API (deprecated but supported)
|
|
1044
|
+
* <Badge variant="destructive">Error</Badge>
|
|
1045
|
+
*/
|
|
1046
|
+
declare function Badge({ className, variant: variantProp, size, intent: intentProp, asChild, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
1047
|
+
|
|
1048
|
+
declare function TooltipProvider({ delayDuration, ...props }: React$1.ComponentProps<typeof Tooltip$1.Provider>): react_jsx_runtime.JSX.Element;
|
|
1049
|
+
declare function Tooltip({ ...props }: React$1.ComponentProps<typeof Tooltip$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1050
|
+
declare function TooltipTrigger({ ...props }: React$1.ComponentProps<typeof Tooltip$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1051
|
+
declare function TooltipContent({ className, sideOffset, children, ...props }: React$1.ComponentProps<typeof Tooltip$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1052
|
+
|
|
1053
|
+
declare function Popover({ ...props }: React$1.ComponentProps<typeof Popover$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1054
|
+
declare function PopoverTrigger({ ...props }: React$1.ComponentProps<typeof Popover$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1055
|
+
declare function PopoverAnchor({ ...props }: React$1.ComponentProps<typeof Popover$1.Anchor>): react_jsx_runtime.JSX.Element;
|
|
1056
|
+
declare function PopoverContent({ className, align, sideOffset, ...props }: React$1.ComponentProps<typeof Popover$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1057
|
+
|
|
1058
|
+
declare function HoverCard({ ...props }: React$1.ComponentProps<typeof HoverCard$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1059
|
+
declare function HoverCardTrigger({ ...props }: React$1.ComponentProps<typeof HoverCard$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1060
|
+
declare function HoverCardContent({ className, align, sideOffset, ...props }: React$1.ComponentProps<typeof HoverCard$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1061
|
+
|
|
1062
|
+
declare function Select({ ...props }: React$1.ComponentProps<typeof Select$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1063
|
+
declare function SelectGroup({ ...props }: React$1.ComponentProps<typeof Select$1.Group>): react_jsx_runtime.JSX.Element;
|
|
1064
|
+
declare function SelectValue({ ...props }: React$1.ComponentProps<typeof Select$1.Value>): react_jsx_runtime.JSX.Element;
|
|
1065
|
+
declare function SelectTrigger({ className, size, children, ...props }: React$1.ComponentProps<typeof Select$1.Trigger> & {
|
|
1066
|
+
size?: "sm" | "default";
|
|
1067
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1068
|
+
declare function SelectContent({ className, children, position, ...props }: React$1.ComponentProps<typeof Select$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1069
|
+
declare function SelectLabel({ className, ...props }: React$1.ComponentProps<typeof Select$1.Label>): react_jsx_runtime.JSX.Element;
|
|
1070
|
+
declare function SelectItem({ className, children, ...props }: React$1.ComponentProps<typeof Select$1.Item>): react_jsx_runtime.JSX.Element;
|
|
1071
|
+
declare function SelectSeparator({ className, ...props }: React$1.ComponentProps<typeof Select$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
1072
|
+
declare function SelectScrollUpButton({ className, ...props }: React$1.ComponentProps<typeof Select$1.ScrollUpButton>): react_jsx_runtime.JSX.Element;
|
|
1073
|
+
declare function SelectScrollDownButton({ className, ...props }: React$1.ComponentProps<typeof Select$1.ScrollDownButton>): react_jsx_runtime.JSX.Element;
|
|
1074
|
+
|
|
1075
|
+
declare function DropdownMenu({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1076
|
+
declare function DropdownMenuPortal({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
1077
|
+
declare function DropdownMenuTrigger({ className, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1078
|
+
declare function DropdownMenuGroup({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Group>): react_jsx_runtime.JSX.Element;
|
|
1079
|
+
declare function DropdownMenuSub({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Sub>): react_jsx_runtime.JSX.Element;
|
|
1080
|
+
declare function DropdownMenuRadioGroup({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.RadioGroup>): react_jsx_runtime.JSX.Element;
|
|
1081
|
+
declare function DropdownMenuContent({ className, sideOffset, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1082
|
+
declare function DropdownMenuItem({ className, inset, variant, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Item> & {
|
|
1083
|
+
inset?: boolean;
|
|
1084
|
+
variant?: "default" | "destructive";
|
|
1085
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1086
|
+
declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): react_jsx_runtime.JSX.Element;
|
|
1087
|
+
declare function DropdownMenuRadioItem({ className, children, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.RadioItem>): react_jsx_runtime.JSX.Element;
|
|
1088
|
+
declare function DropdownMenuLabel({ className, inset, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Label> & {
|
|
1089
|
+
inset?: boolean;
|
|
1090
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1091
|
+
declare function DropdownMenuSeparator({ className, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
1092
|
+
declare function DropdownMenuShortcut({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1093
|
+
declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.SubTrigger> & {
|
|
1094
|
+
inset?: boolean;
|
|
1095
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1096
|
+
declare function DropdownMenuSubContent({ className, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.SubContent>): react_jsx_runtime.JSX.Element;
|
|
1097
|
+
|
|
1098
|
+
declare function Drawer({ ...props }: React$1.ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1099
|
+
declare function DrawerTrigger({ ...props }: React$1.ComponentProps<typeof Drawer$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1100
|
+
declare function DrawerPortal({ ...props }: React$1.ComponentProps<typeof Drawer$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
1101
|
+
declare function DrawerClose({ ...props }: React$1.ComponentProps<typeof Drawer$1.Close>): react_jsx_runtime.JSX.Element;
|
|
1102
|
+
declare function DrawerOverlay({ className, ...props }: React$1.ComponentProps<typeof Drawer$1.Overlay>): react_jsx_runtime.JSX.Element;
|
|
1103
|
+
declare function DrawerContent({ className, children, ...props }: React$1.ComponentProps<typeof Drawer$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1104
|
+
declare function DrawerHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1105
|
+
declare function DrawerFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1106
|
+
declare function DrawerTitle({ className, ...props }: React$1.ComponentProps<typeof Drawer$1.Title>): react_jsx_runtime.JSX.Element;
|
|
1107
|
+
declare function DrawerDescription({ className, ...props }: React$1.ComponentProps<typeof Drawer$1.Description>): react_jsx_runtime.JSX.Element;
|
|
1108
|
+
|
|
1109
|
+
declare function Sheet({ ...props }: React$1.ComponentProps<typeof Dialog$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1110
|
+
declare function SheetTrigger({ ...props }: React$1.ComponentProps<typeof Dialog$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1111
|
+
declare function SheetClose({ ...props }: React$1.ComponentProps<typeof Dialog$1.Close>): react_jsx_runtime.JSX.Element;
|
|
1112
|
+
declare function SheetContent({ className, children, side, showCloseButton, ...props }: React$1.ComponentProps<typeof Dialog$1.Content> & {
|
|
1113
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
1114
|
+
showCloseButton?: boolean;
|
|
1115
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1116
|
+
declare function SheetHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1117
|
+
declare function SheetFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1118
|
+
declare function SheetTitle({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Title>): react_jsx_runtime.JSX.Element;
|
|
1119
|
+
declare function SheetDescription({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Description>): react_jsx_runtime.JSX.Element;
|
|
1120
|
+
|
|
1121
|
+
declare function Slider({ className, defaultValue, value, min, max, ...props }: React$1.ComponentProps<typeof Slider$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1122
|
+
|
|
1123
|
+
/** Props for the Saasflare Alert component */
|
|
1124
|
+
interface AlertProps extends React$1.ComponentProps<"div"> {
|
|
1125
|
+
/** Semantic color intent */
|
|
1126
|
+
intent?: Intent | "neutral";
|
|
1127
|
+
/**
|
|
1128
|
+
* Legacy variant prop for backward compatibility.
|
|
1129
|
+
* @deprecated Use `intent` instead. "destructive" maps to intent="danger".
|
|
1130
|
+
*/
|
|
1131
|
+
variant?: "default" | "destructive";
|
|
1132
|
+
}
|
|
1133
|
+
/**
|
|
1134
|
+
* Contextual alert banner with intent-based coloring.
|
|
1135
|
+
*
|
|
1136
|
+
* @component
|
|
1137
|
+
* @layer core
|
|
1138
|
+
*
|
|
1139
|
+
* @param {string} intent - Color intent: "neutral" | "primary" | "info" | "success" | "warning" | "danger"
|
|
1140
|
+
*
|
|
1141
|
+
* @example
|
|
1142
|
+
* <Alert intent="success">
|
|
1143
|
+
* <CheckIcon />
|
|
1144
|
+
* <AlertTitle>Saved!</AlertTitle>
|
|
1145
|
+
* <AlertDescription>Your changes have been saved.</AlertDescription>
|
|
1146
|
+
* </Alert>
|
|
1147
|
+
*
|
|
1148
|
+
* @example
|
|
1149
|
+
* // Legacy API (deprecated but supported)
|
|
1150
|
+
* <Alert variant="destructive">
|
|
1151
|
+
* <AlertTitle>Error</AlertTitle>
|
|
1152
|
+
* <AlertDescription>Something went wrong.</AlertDescription>
|
|
1153
|
+
* </Alert>
|
|
1154
|
+
*/
|
|
1155
|
+
declare function Alert({ className, intent: intentProp, variant, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
|
|
1156
|
+
/**
|
|
1157
|
+
* Alert title text.
|
|
1158
|
+
*
|
|
1159
|
+
* @component
|
|
1160
|
+
* @layer core
|
|
1161
|
+
*/
|
|
1162
|
+
declare function AlertTitle({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1163
|
+
/**
|
|
1164
|
+
* Alert description text.
|
|
1165
|
+
*
|
|
1166
|
+
* @component
|
|
1167
|
+
* @layer core
|
|
1168
|
+
*/
|
|
1169
|
+
declare function AlertDescription({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1170
|
+
|
|
1171
|
+
declare function Avatar({ className, size, ...props }: React$1.ComponentProps<typeof Avatar$1.Root> & {
|
|
1172
|
+
size?: "default" | "sm" | "lg";
|
|
1173
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1174
|
+
declare function AvatarImage({ className, ...props }: React$1.ComponentProps<typeof Avatar$1.Image>): react_jsx_runtime.JSX.Element;
|
|
1175
|
+
declare function AvatarFallback({ className, ...props }: React$1.ComponentProps<typeof Avatar$1.Fallback>): react_jsx_runtime.JSX.Element;
|
|
1176
|
+
declare function AvatarBadge({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1177
|
+
declare function AvatarGroup({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1178
|
+
declare function AvatarGroupCount({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1179
|
+
|
|
1180
|
+
declare function ContextMenu({ ...props }: React$1.ComponentProps<typeof ContextMenu$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1181
|
+
declare function ContextMenuTrigger({ ...props }: React$1.ComponentProps<typeof ContextMenu$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1182
|
+
declare function ContextMenuGroup({ ...props }: React$1.ComponentProps<typeof ContextMenu$1.Group>): react_jsx_runtime.JSX.Element;
|
|
1183
|
+
declare function ContextMenuPortal({ ...props }: React$1.ComponentProps<typeof ContextMenu$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
1184
|
+
declare function ContextMenuSub({ ...props }: React$1.ComponentProps<typeof ContextMenu$1.Sub>): react_jsx_runtime.JSX.Element;
|
|
1185
|
+
declare function ContextMenuRadioGroup({ ...props }: React$1.ComponentProps<typeof ContextMenu$1.RadioGroup>): react_jsx_runtime.JSX.Element;
|
|
1186
|
+
declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React$1.ComponentProps<typeof ContextMenu$1.SubTrigger> & {
|
|
1187
|
+
inset?: boolean;
|
|
1188
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1189
|
+
declare function ContextMenuSubContent({ className, ...props }: React$1.ComponentProps<typeof ContextMenu$1.SubContent>): react_jsx_runtime.JSX.Element;
|
|
1190
|
+
declare function ContextMenuContent({ className, ...props }: React$1.ComponentProps<typeof ContextMenu$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1191
|
+
declare function ContextMenuItem({ className, inset, variant, ...props }: React$1.ComponentProps<typeof ContextMenu$1.Item> & {
|
|
1192
|
+
inset?: boolean;
|
|
1193
|
+
variant?: "default" | "destructive";
|
|
1194
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1195
|
+
declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React$1.ComponentProps<typeof ContextMenu$1.CheckboxItem>): react_jsx_runtime.JSX.Element;
|
|
1196
|
+
declare function ContextMenuRadioItem({ className, children, ...props }: React$1.ComponentProps<typeof ContextMenu$1.RadioItem>): react_jsx_runtime.JSX.Element;
|
|
1197
|
+
declare function ContextMenuLabel({ className, inset, ...props }: React$1.ComponentProps<typeof ContextMenu$1.Label> & {
|
|
1198
|
+
inset?: boolean;
|
|
1199
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1200
|
+
declare function ContextMenuSeparator({ className, ...props }: React$1.ComponentProps<typeof ContextMenu$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
1201
|
+
declare function ContextMenuShortcut({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1202
|
+
|
|
1203
|
+
declare function Menubar({ className, ...props }: React$1.ComponentProps<typeof Menubar$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1204
|
+
declare function MenubarMenu({ ...props }: React$1.ComponentProps<typeof Menubar$1.Menu>): react_jsx_runtime.JSX.Element;
|
|
1205
|
+
declare function MenubarGroup({ ...props }: React$1.ComponentProps<typeof Menubar$1.Group>): react_jsx_runtime.JSX.Element;
|
|
1206
|
+
declare function MenubarPortal({ ...props }: React$1.ComponentProps<typeof Menubar$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
1207
|
+
declare function MenubarRadioGroup({ ...props }: React$1.ComponentProps<typeof Menubar$1.RadioGroup>): react_jsx_runtime.JSX.Element;
|
|
1208
|
+
declare function MenubarTrigger({ className, ...props }: React$1.ComponentProps<typeof Menubar$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1209
|
+
declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React$1.ComponentProps<typeof Menubar$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1210
|
+
declare function MenubarItem({ className, inset, variant, ...props }: React$1.ComponentProps<typeof Menubar$1.Item> & {
|
|
1211
|
+
inset?: boolean;
|
|
1212
|
+
variant?: "default" | "destructive";
|
|
1213
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1214
|
+
declare function MenubarCheckboxItem({ className, children, checked, ...props }: React$1.ComponentProps<typeof Menubar$1.CheckboxItem>): react_jsx_runtime.JSX.Element;
|
|
1215
|
+
declare function MenubarRadioItem({ className, children, ...props }: React$1.ComponentProps<typeof Menubar$1.RadioItem>): react_jsx_runtime.JSX.Element;
|
|
1216
|
+
declare function MenubarLabel({ className, inset, ...props }: React$1.ComponentProps<typeof Menubar$1.Label> & {
|
|
1217
|
+
inset?: boolean;
|
|
1218
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1219
|
+
declare function MenubarSeparator({ className, ...props }: React$1.ComponentProps<typeof Menubar$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
1220
|
+
declare function MenubarShortcut({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1221
|
+
declare function MenubarSub({ ...props }: React$1.ComponentProps<typeof Menubar$1.Sub>): react_jsx_runtime.JSX.Element;
|
|
1222
|
+
declare function MenubarSubTrigger({ className, inset, children, ...props }: React$1.ComponentProps<typeof Menubar$1.SubTrigger> & {
|
|
1223
|
+
inset?: boolean;
|
|
1224
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1225
|
+
declare function MenubarSubContent({ className, ...props }: React$1.ComponentProps<typeof Menubar$1.SubContent>): react_jsx_runtime.JSX.Element;
|
|
1226
|
+
|
|
1227
|
+
declare function NavigationMenu({ className, children, viewport, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Root> & {
|
|
1228
|
+
viewport?: boolean;
|
|
1229
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1230
|
+
declare function NavigationMenuList({ className, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.List>): react_jsx_runtime.JSX.Element;
|
|
1231
|
+
declare function NavigationMenuItem({ className, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Item>): react_jsx_runtime.JSX.Element;
|
|
1232
|
+
declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1233
|
+
declare function NavigationMenuTrigger({ className, children, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Trigger>): react_jsx_runtime.JSX.Element;
|
|
1234
|
+
declare function NavigationMenuContent({ className, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Content>): react_jsx_runtime.JSX.Element;
|
|
1235
|
+
declare function NavigationMenuViewport({ className, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Viewport>): react_jsx_runtime.JSX.Element;
|
|
1236
|
+
declare function NavigationMenuLink({ className, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Link>): react_jsx_runtime.JSX.Element;
|
|
1237
|
+
declare function NavigationMenuIndicator({ className, ...props }: React$1.ComponentProps<typeof NavigationMenu$1.Indicator>): react_jsx_runtime.JSX.Element;
|
|
1238
|
+
|
|
1239
|
+
/** Component the skeleton imitates — drives radius from the design tokens. */
|
|
1240
|
+
type SkeletonAs = "avatar" | "text" | "card";
|
|
1241
|
+
interface SkeletonProps extends React.ComponentProps<"div"> {
|
|
1242
|
+
/**
|
|
1243
|
+
* Component shape to imitate. When set, radius follows the design-system
|
|
1244
|
+
* scale (and at `data-radius="pill"`, all variants collapse to fully rounded
|
|
1245
|
+
* automatically — see theme.css).
|
|
1246
|
+
*
|
|
1247
|
+
* - `avatar` → fully rounded
|
|
1248
|
+
* - `text` → `--radius-sm`
|
|
1249
|
+
* - `card` → `--radius-lg`
|
|
1250
|
+
*
|
|
1251
|
+
* Omit for legacy behavior (`rounded-md` Tailwind class).
|
|
1252
|
+
*/
|
|
1253
|
+
as?: SkeletonAs;
|
|
1254
|
+
}
|
|
1255
|
+
/**
|
|
1256
|
+
* Skeleton loading placeholder with animated shimmer gradient.
|
|
1257
|
+
*
|
|
1258
|
+
* @component
|
|
1259
|
+
* @package ui
|
|
1260
|
+
*/
|
|
1261
|
+
declare function Skeleton({ as, className, style, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
1262
|
+
|
|
1263
|
+
declare const toggleVariants: (props?: ({
|
|
1264
|
+
variant?: "default" | "outline" | null | undefined;
|
|
1265
|
+
size?: "sm" | "lg" | "default" | null | undefined;
|
|
1266
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1267
|
+
declare function Toggle({ className, variant, size, ...props }: React$1.ComponentProps<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
1268
|
+
|
|
1269
|
+
declare function ToggleGroup({ className, variant, size, spacing, children, ...props }: React$1.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants> & {
|
|
1270
|
+
spacing?: number;
|
|
1271
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1272
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: React$1.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
1273
|
+
|
|
1274
|
+
type CarouselApi = UseEmblaCarouselType[1];
|
|
1275
|
+
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
1276
|
+
type CarouselOptions = UseCarouselParameters[0];
|
|
1277
|
+
type CarouselPlugin = UseCarouselParameters[1];
|
|
1278
|
+
type CarouselProps = {
|
|
1279
|
+
opts?: CarouselOptions;
|
|
1280
|
+
plugins?: CarouselPlugin;
|
|
1281
|
+
orientation?: "horizontal" | "vertical";
|
|
1282
|
+
setApi?: (api: CarouselApi) => void;
|
|
1283
|
+
};
|
|
1284
|
+
declare function Carousel({ orientation, opts, setApi, plugins, className, children, ...props }: React$1.ComponentProps<"div"> & CarouselProps): react_jsx_runtime.JSX.Element;
|
|
1285
|
+
declare function CarouselContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1286
|
+
declare function CarouselItem({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1287
|
+
declare function CarouselPrevious({ className, variant, size, ...props }: React$1.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
|
|
1288
|
+
declare function CarouselNext({ className, variant, size, ...props }: React$1.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
|
|
1289
|
+
|
|
1290
|
+
declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React$1.ComponentProps<typeof DayPicker> & {
|
|
1291
|
+
buttonVariant?: React$1.ComponentProps<typeof Button>["variant"];
|
|
1292
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1293
|
+
declare function CalendarDayButton({ className, day, modifiers, ...props }: React$1.ComponentProps<typeof DayButton>): react_jsx_runtime.JSX.Element;
|
|
1294
|
+
|
|
1295
|
+
declare function RadioGroup({ className, ...props }: React$1.ComponentProps<typeof RadioGroup$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1296
|
+
declare function RadioGroupItem({ className, ...props }: React$1.ComponentProps<typeof RadioGroup$1.Item>): react_jsx_runtime.JSX.Element;
|
|
1297
|
+
|
|
1298
|
+
declare function Collapsible({ ...props }: React.ComponentProps<typeof Collapsible$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1299
|
+
declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof Collapsible$1.CollapsibleTrigger>): react_jsx_runtime.JSX.Element;
|
|
1300
|
+
declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof Collapsible$1.CollapsibleContent>): react_jsx_runtime.JSX.Element;
|
|
1301
|
+
|
|
1302
|
+
declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): react_jsx_runtime.JSX.Element;
|
|
1303
|
+
|
|
1304
|
+
declare function ScrollArea({ className, children, ...props }: React$1.ComponentProps<typeof ScrollArea$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1305
|
+
declare function ScrollBar({ className, orientation, ...props }: React$1.ComponentProps<typeof ScrollArea$1.ScrollAreaScrollbar>): react_jsx_runtime.JSX.Element;
|
|
1306
|
+
|
|
1307
|
+
declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Element;
|
|
1308
|
+
|
|
1309
|
+
declare function AspectRatio({ ...props }: React.ComponentProps<typeof AspectRatio$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1310
|
+
|
|
1311
|
+
declare function Breadcrumb({ ...props }: React$1.ComponentProps<"nav">): react_jsx_runtime.JSX.Element;
|
|
1312
|
+
declare function BreadcrumbList({ className, ...props }: React$1.ComponentProps<"ol">): react_jsx_runtime.JSX.Element;
|
|
1313
|
+
declare function BreadcrumbItem({ className, ...props }: React$1.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
1314
|
+
declare function BreadcrumbLink({ asChild, className, ...props }: React$1.ComponentProps<"a"> & {
|
|
1315
|
+
asChild?: boolean;
|
|
1316
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1317
|
+
declare function BreadcrumbPage({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1318
|
+
declare function BreadcrumbSeparator({ children, className, ...props }: React$1.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
1319
|
+
declare function BreadcrumbEllipsis({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1320
|
+
|
|
1321
|
+
declare function Separator({ className, orientation, decorative, ...props }: React$1.ComponentProps<typeof Separator$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1322
|
+
|
|
1323
|
+
declare const buttonGroupVariants: (props?: ({
|
|
1324
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
1325
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1326
|
+
declare function ButtonGroup({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof buttonGroupVariants>): react_jsx_runtime.JSX.Element;
|
|
1327
|
+
declare function ButtonGroupText({ className, asChild, ...props }: React.ComponentProps<"div"> & {
|
|
1328
|
+
asChild?: boolean;
|
|
1329
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1330
|
+
declare function ButtonGroupSeparator({ className, orientation, ...props }: React.ComponentProps<typeof Separator>): react_jsx_runtime.JSX.Element;
|
|
1331
|
+
|
|
1332
|
+
declare const THEMES: {
|
|
1333
|
+
readonly light: "";
|
|
1334
|
+
readonly dark: ".dark";
|
|
1335
|
+
};
|
|
1336
|
+
type ChartConfig = {
|
|
1337
|
+
[k in string]: {
|
|
1338
|
+
label?: React$1.ReactNode;
|
|
1339
|
+
icon?: React$1.ComponentType;
|
|
1340
|
+
} & ({
|
|
1341
|
+
color?: string;
|
|
1342
|
+
theme?: never;
|
|
1343
|
+
} | {
|
|
1344
|
+
color?: never;
|
|
1345
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
1346
|
+
});
|
|
1347
|
+
};
|
|
1348
|
+
declare function ChartContainer({ id, className, children, config, ...props }: React$1.ComponentProps<"div"> & {
|
|
1349
|
+
config: ChartConfig;
|
|
1350
|
+
children: React$1.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
1351
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1352
|
+
declare const ChartStyle: ({ id, config }: {
|
|
1353
|
+
id: string;
|
|
1354
|
+
config: ChartConfig;
|
|
1355
|
+
}) => react_jsx_runtime.JSX.Element | null;
|
|
1356
|
+
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
1357
|
+
interface ChartTooltipPayloadItem {
|
|
1358
|
+
name?: string;
|
|
1359
|
+
value?: number | string;
|
|
1360
|
+
dataKey?: string | number;
|
|
1361
|
+
type?: string;
|
|
1362
|
+
color?: string;
|
|
1363
|
+
fill?: string;
|
|
1364
|
+
payload?: Record<string, unknown>;
|
|
1365
|
+
}
|
|
1366
|
+
interface ChartTooltipContentProps extends React$1.ComponentProps<"div"> {
|
|
1367
|
+
active?: boolean;
|
|
1368
|
+
payload?: ChartTooltipPayloadItem[];
|
|
1369
|
+
label?: string | number;
|
|
1370
|
+
labelFormatter?: (label: unknown, payload: ChartTooltipPayloadItem[]) => React$1.ReactNode;
|
|
1371
|
+
labelClassName?: string;
|
|
1372
|
+
formatter?: (value: unknown, name: string, entry: ChartTooltipPayloadItem, index: number, payload: unknown) => React$1.ReactNode;
|
|
1373
|
+
color?: string;
|
|
1374
|
+
hideLabel?: boolean;
|
|
1375
|
+
hideIndicator?: boolean;
|
|
1376
|
+
indicator?: "line" | "dot" | "dashed";
|
|
1377
|
+
nameKey?: string;
|
|
1378
|
+
labelKey?: string;
|
|
1379
|
+
}
|
|
1380
|
+
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: ChartTooltipContentProps): react_jsx_runtime.JSX.Element | null;
|
|
1381
|
+
declare const ChartLegend: React$1.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React$1.ReactPortal | null>;
|
|
1382
|
+
interface ChartLegendPayloadItem {
|
|
1383
|
+
value?: string;
|
|
1384
|
+
type?: string;
|
|
1385
|
+
color?: string;
|
|
1386
|
+
dataKey?: string | number;
|
|
1387
|
+
}
|
|
1388
|
+
interface ChartLegendContentProps extends React$1.ComponentProps<"div"> {
|
|
1389
|
+
payload?: ChartLegendPayloadItem[];
|
|
1390
|
+
verticalAlign?: "top" | "bottom" | "middle";
|
|
1391
|
+
hideIcon?: boolean;
|
|
1392
|
+
nameKey?: string;
|
|
1393
|
+
}
|
|
1394
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: ChartLegendContentProps): react_jsx_runtime.JSX.Element | null;
|
|
1395
|
+
|
|
1396
|
+
declare const Combobox: typeof Combobox$1.Root;
|
|
1397
|
+
declare function ComboboxValue({ ...props }: Combobox$1.Value.Props): react_jsx_runtime.JSX.Element;
|
|
1398
|
+
declare function ComboboxTrigger({ className, children, ...props }: Combobox$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
1399
|
+
declare function ComboboxInput({ className, children, disabled, showTrigger, showClear, ...props }: Combobox$1.Input.Props & {
|
|
1400
|
+
showTrigger?: boolean;
|
|
1401
|
+
showClear?: boolean;
|
|
1402
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1403
|
+
declare function ComboboxContent({ className, side, sideOffset, align, alignOffset, anchor, ...props }: Combobox$1.Popup.Props & Pick<Combobox$1.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor">): react_jsx_runtime.JSX.Element;
|
|
1404
|
+
declare function ComboboxList({ className, ...props }: Combobox$1.List.Props): react_jsx_runtime.JSX.Element;
|
|
1405
|
+
declare function ComboboxItem({ className, children, ...props }: Combobox$1.Item.Props): react_jsx_runtime.JSX.Element;
|
|
1406
|
+
declare function ComboboxGroup({ className, ...props }: Combobox$1.Group.Props): react_jsx_runtime.JSX.Element;
|
|
1407
|
+
declare function ComboboxLabel({ className, ...props }: Combobox$1.GroupLabel.Props): react_jsx_runtime.JSX.Element;
|
|
1408
|
+
declare function ComboboxCollection({ ...props }: Combobox$1.Collection.Props): react_jsx_runtime.JSX.Element;
|
|
1409
|
+
declare function ComboboxEmpty({ className, ...props }: Combobox$1.Empty.Props): react_jsx_runtime.JSX.Element;
|
|
1410
|
+
declare function ComboboxSeparator({ className, ...props }: Combobox$1.Separator.Props): react_jsx_runtime.JSX.Element;
|
|
1411
|
+
declare function ComboboxChips({ className, ...props }: React$1.ComponentPropsWithRef<typeof Combobox$1.Chips> & Combobox$1.Chips.Props): react_jsx_runtime.JSX.Element;
|
|
1412
|
+
declare function ComboboxChip({ className, children, showRemove, ...props }: Combobox$1.Chip.Props & {
|
|
1413
|
+
showRemove?: boolean;
|
|
1414
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1415
|
+
declare function ComboboxChipsInput({ className, children, ...props }: Combobox$1.Input.Props): react_jsx_runtime.JSX.Element;
|
|
1416
|
+
declare function useComboboxAnchor(): React$1.RefObject<HTMLDivElement | null>;
|
|
1417
|
+
|
|
1418
|
+
declare function Command({ className, ...props }: React$1.ComponentProps<typeof Command$1>): react_jsx_runtime.JSX.Element;
|
|
1419
|
+
declare function CommandDialog({ title, description, children, className, ...props }: React$1.ComponentProps<typeof Dialog> & {
|
|
1420
|
+
title?: string;
|
|
1421
|
+
description?: string;
|
|
1422
|
+
className?: string;
|
|
1423
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1424
|
+
declare function CommandInput({ className, ...props }: React$1.ComponentProps<typeof Command$1.Input>): react_jsx_runtime.JSX.Element;
|
|
1425
|
+
declare function CommandList({ className, ...props }: React$1.ComponentProps<typeof Command$1.List>): react_jsx_runtime.JSX.Element;
|
|
1426
|
+
declare function CommandEmpty({ ...props }: React$1.ComponentProps<typeof Command$1.Empty>): react_jsx_runtime.JSX.Element;
|
|
1427
|
+
declare function CommandGroup({ className, ...props }: React$1.ComponentProps<typeof Command$1.Group>): react_jsx_runtime.JSX.Element;
|
|
1428
|
+
declare function CommandSeparator({ className, ...props }: React$1.ComponentProps<typeof Command$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
1429
|
+
declare function CommandItem({ className, ...props }: React$1.ComponentProps<typeof Command$1.Item>): react_jsx_runtime.JSX.Element;
|
|
1430
|
+
declare function CommandShortcut({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1431
|
+
|
|
1432
|
+
declare function DirectionProvider({ dir, direction, children, }: React$1.ComponentProps<typeof Direction.DirectionProvider> & {
|
|
1433
|
+
direction?: React$1.ComponentProps<typeof Direction.DirectionProvider>["dir"];
|
|
1434
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1435
|
+
declare const useDirection: typeof Direction.useDirection;
|
|
1436
|
+
|
|
1437
|
+
declare function Empty({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1438
|
+
declare function EmptyHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1439
|
+
declare const emptyMediaVariants: (props?: ({
|
|
1440
|
+
variant?: "default" | "icon" | null | undefined;
|
|
1441
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1442
|
+
declare function EmptyMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>): react_jsx_runtime.JSX.Element;
|
|
1443
|
+
declare function EmptyTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1444
|
+
declare function EmptyDescription({ className, ...props }: React.ComponentProps<"p">): react_jsx_runtime.JSX.Element;
|
|
1445
|
+
declare function EmptyContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1446
|
+
|
|
1447
|
+
declare function Label({ className, ...props }: React$1.ComponentProps<typeof Label$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1448
|
+
|
|
1449
|
+
declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): react_jsx_runtime.JSX.Element;
|
|
1450
|
+
declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
|
|
1451
|
+
variant?: "legend" | "label";
|
|
1452
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1453
|
+
declare function FieldGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1454
|
+
declare const fieldVariants: (props?: ({
|
|
1455
|
+
orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
|
|
1456
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1457
|
+
declare function Field({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): react_jsx_runtime.JSX.Element;
|
|
1458
|
+
declare function FieldContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1459
|
+
declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): react_jsx_runtime.JSX.Element;
|
|
1460
|
+
declare function FieldTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1461
|
+
declare function FieldDescription({ className, ...props }: React.ComponentProps<"p">): react_jsx_runtime.JSX.Element;
|
|
1462
|
+
declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<"div"> & {
|
|
1463
|
+
children?: React.ReactNode;
|
|
1464
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1465
|
+
declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<"div"> & {
|
|
1466
|
+
errors?: Array<{
|
|
1467
|
+
message?: string;
|
|
1468
|
+
} | undefined>;
|
|
1469
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1470
|
+
|
|
1471
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React$1.JSX.Element;
|
|
1472
|
+
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
|
|
1473
|
+
declare const useFormField: () => {
|
|
1474
|
+
invalid: boolean;
|
|
1475
|
+
isDirty: boolean;
|
|
1476
|
+
isTouched: boolean;
|
|
1477
|
+
isValidating: boolean;
|
|
1478
|
+
error?: react_hook_form.FieldError;
|
|
1479
|
+
id: string;
|
|
1480
|
+
name: string;
|
|
1481
|
+
formItemId: string;
|
|
1482
|
+
formDescriptionId: string;
|
|
1483
|
+
formMessageId: string;
|
|
1484
|
+
};
|
|
1485
|
+
declare function FormItem({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1486
|
+
declare function FormLabel({ className, ...props }: React$1.ComponentProps<typeof Label$1.Root>): react_jsx_runtime.JSX.Element;
|
|
1487
|
+
declare function FormControl({ ...props }: React$1.ComponentProps<typeof Slot.Root>): react_jsx_runtime.JSX.Element;
|
|
1488
|
+
declare function FormDescription({ className, ...props }: React$1.ComponentProps<"p">): react_jsx_runtime.JSX.Element;
|
|
1489
|
+
declare function FormMessage({ className, ...props }: React$1.ComponentProps<"p">): react_jsx_runtime.JSX.Element | null;
|
|
1490
|
+
|
|
1491
|
+
interface IconProps {
|
|
1492
|
+
className?: string;
|
|
1493
|
+
}
|
|
1494
|
+
declare const Icons: {
|
|
1495
|
+
logo: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1496
|
+
chat: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1497
|
+
settings: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1498
|
+
pages: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1499
|
+
preview: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1500
|
+
analytics: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1501
|
+
share: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1502
|
+
send: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1503
|
+
edit: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1504
|
+
pencil: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1505
|
+
eye: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1506
|
+
x: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1507
|
+
trash: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1508
|
+
desktop: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1509
|
+
tablet: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1510
|
+
mobile: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1511
|
+
chevronDown: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1512
|
+
chevronRight: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1513
|
+
plus: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1514
|
+
folder: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1515
|
+
users: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1516
|
+
sparkles: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1517
|
+
check: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1518
|
+
arrowLeft: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1519
|
+
home: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1520
|
+
helpCircle: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1521
|
+
globe: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1522
|
+
download: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1523
|
+
lock: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1524
|
+
unlock: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1525
|
+
code: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1526
|
+
github: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1527
|
+
copy: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1528
|
+
spinner: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1529
|
+
refresh: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1530
|
+
alertCircle: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1531
|
+
palette: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1532
|
+
puzzle: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1533
|
+
upload: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1534
|
+
externalLink: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1535
|
+
gitBranch: ({ className }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
1536
|
+
};
|
|
1537
|
+
|
|
1538
|
+
declare function InputGroup({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1539
|
+
declare const inputGroupAddonVariants: (props?: ({
|
|
1540
|
+
align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
|
|
1541
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1542
|
+
declare function InputGroupAddon({ className, align, ...props }: React$1.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime.JSX.Element;
|
|
1543
|
+
declare const inputGroupButtonVariants: (props?: ({
|
|
1544
|
+
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
1545
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1546
|
+
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React$1.ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): react_jsx_runtime.JSX.Element;
|
|
1547
|
+
declare function InputGroupText({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1548
|
+
declare function InputGroupInput({ className, ...props }: React$1.ComponentProps<"input">): react_jsx_runtime.JSX.Element;
|
|
1549
|
+
declare function InputGroupTextarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
|
|
1550
|
+
|
|
1551
|
+
declare function InputOTP({ className, containerClassName, ...props }: React$1.ComponentProps<typeof OTPInput> & {
|
|
1552
|
+
containerClassName?: string;
|
|
1553
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1554
|
+
declare function InputOTPGroup({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1555
|
+
declare function InputOTPSlot({ index, className, ...props }: React$1.ComponentProps<"div"> & {
|
|
1556
|
+
index: number;
|
|
1557
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1558
|
+
declare function InputOTPSeparator({ ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1559
|
+
|
|
1560
|
+
declare function ItemGroup({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1561
|
+
declare function ItemSeparator({ className, ...props }: React$1.ComponentProps<typeof Separator>): react_jsx_runtime.JSX.Element;
|
|
1562
|
+
declare const itemVariants: (props?: ({
|
|
1563
|
+
variant?: "default" | "outline" | "muted" | null | undefined;
|
|
1564
|
+
size?: "sm" | "default" | null | undefined;
|
|
1565
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1566
|
+
declare function Item({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"div"> & VariantProps<typeof itemVariants> & {
|
|
1567
|
+
asChild?: boolean;
|
|
1568
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1569
|
+
declare const itemMediaVariants: (props?: ({
|
|
1570
|
+
variant?: "default" | "icon" | "image" | null | undefined;
|
|
1571
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1572
|
+
declare function ItemMedia({ className, variant, ...props }: React$1.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): react_jsx_runtime.JSX.Element;
|
|
1573
|
+
declare function ItemContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1574
|
+
declare function ItemTitle({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1575
|
+
declare function ItemDescription({ className, ...props }: React$1.ComponentProps<"p">): react_jsx_runtime.JSX.Element;
|
|
1576
|
+
declare function ItemActions({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1577
|
+
declare function ItemHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1578
|
+
declare function ItemFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1579
|
+
|
|
1580
|
+
declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): react_jsx_runtime.JSX.Element;
|
|
1581
|
+
declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1582
|
+
|
|
1583
|
+
declare function NativeSelect({ className, size, ...props }: Omit<React$1.ComponentProps<"select">, "size"> & {
|
|
1584
|
+
size?: "sm" | "default";
|
|
1585
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1586
|
+
declare function NativeSelectOption({ ...props }: React$1.ComponentProps<"option">): react_jsx_runtime.JSX.Element;
|
|
1587
|
+
declare function NativeSelectOptGroup({ className, ...props }: React$1.ComponentProps<"optgroup">): react_jsx_runtime.JSX.Element;
|
|
1588
|
+
|
|
1589
|
+
declare function Pagination({ className, ...props }: React$1.ComponentProps<"nav">): react_jsx_runtime.JSX.Element;
|
|
1590
|
+
declare function PaginationContent({ className, ...props }: React$1.ComponentProps<"ul">): react_jsx_runtime.JSX.Element;
|
|
1591
|
+
declare function PaginationItem({ ...props }: React$1.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
1592
|
+
type PaginationLinkProps = {
|
|
1593
|
+
isActive?: boolean;
|
|
1594
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "icon" | "icon-xs" | "icon-sm" | "icon-lg";
|
|
1595
|
+
} & React$1.ComponentProps<"a">;
|
|
1596
|
+
declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
|
|
1597
|
+
declare function PaginationPrevious({ className, ...props }: React$1.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
|
|
1598
|
+
declare function PaginationNext({ className, ...props }: React$1.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
|
|
1599
|
+
declare function PaginationEllipsis({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
1600
|
+
|
|
1601
|
+
declare function ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps): react_jsx_runtime.JSX.Element;
|
|
1602
|
+
declare function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps): react_jsx_runtime.JSX.Element;
|
|
1603
|
+
declare function ResizableHandle({ withHandle, className, ...props }: ResizablePrimitive.SeparatorProps & {
|
|
1604
|
+
withHandle?: boolean;
|
|
1605
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1606
|
+
|
|
1607
|
+
declare function Table({ className, ...props }: React$1.ComponentProps<"table">): react_jsx_runtime.JSX.Element;
|
|
1608
|
+
declare function TableHeader({ className, ...props }: React$1.ComponentProps<"thead">): react_jsx_runtime.JSX.Element;
|
|
1609
|
+
declare function TableBody({ className, ...props }: React$1.ComponentProps<"tbody">): react_jsx_runtime.JSX.Element;
|
|
1610
|
+
declare function TableFooter({ className, ...props }: React$1.ComponentProps<"tfoot">): react_jsx_runtime.JSX.Element;
|
|
1611
|
+
declare function TableRow({ className, ...props }: React$1.ComponentProps<"tr">): react_jsx_runtime.JSX.Element;
|
|
1612
|
+
declare function TableHead({ className, ...props }: React$1.ComponentProps<"th">): react_jsx_runtime.JSX.Element;
|
|
1613
|
+
declare function TableCell({ className, ...props }: React$1.ComponentProps<"td">): react_jsx_runtime.JSX.Element;
|
|
1614
|
+
declare function TableCaption({ className, ...props }: React$1.ComponentProps<"caption">): react_jsx_runtime.JSX.Element;
|
|
1615
|
+
|
|
1616
|
+
/**
|
|
1617
|
+
* Shape of a single tooltip item.
|
|
1618
|
+
*/
|
|
1619
|
+
interface TooltipItem {
|
|
1620
|
+
/** Unique numeric identifier (used for hover matching). */
|
|
1621
|
+
id: number;
|
|
1622
|
+
/** Display name shown in the tooltip. */
|
|
1623
|
+
name: string;
|
|
1624
|
+
/** Secondary label (e.g. job title, role). */
|
|
1625
|
+
designation: string;
|
|
1626
|
+
/** Image source path or absolute URL. */
|
|
1627
|
+
image: string;
|
|
1628
|
+
}
|
|
1629
|
+
/**
|
|
1630
|
+
* AnimatedTooltip
|
|
1631
|
+
*
|
|
1632
|
+
* Renders a row (or flex-wrapped set) of circular avatar images that reveal
|
|
1633
|
+
* an animated, tilted tooltip on hover. The tooltip tilts and translates in
|
|
1634
|
+
* sync with the user’s mouse position, creating a smooth parallax effect.
|
|
1635
|
+
*
|
|
1636
|
+
* @component
|
|
1637
|
+
* @param {Object} props
|
|
1638
|
+
* @param {TooltipItem[]} props.items – Array of tooltip items to render.
|
|
1639
|
+
* @returns {JSX.Element} React element containing the interactive avatars.
|
|
1640
|
+
*
|
|
1641
|
+
* @example
|
|
1642
|
+
* ```tsx
|
|
1643
|
+
* <AnimatedTooltip
|
|
1644
|
+
* items={[
|
|
1645
|
+
* { id: 1, name: 'Michaela', designation: 'Creator', image: '/img/michaela.jpg' },
|
|
1646
|
+
* { id: 2, name: 'Lukas', designation: 'Marketer', image: '/img/lukas.jpg' },
|
|
1647
|
+
* ]}
|
|
1648
|
+
* />
|
|
1649
|
+
* ```
|
|
1650
|
+
*/
|
|
1651
|
+
declare const AnimatedTooltip: ({ items, }: {
|
|
1652
|
+
items: TooltipItem[];
|
|
1653
|
+
}) => JSX.Element;
|
|
1654
|
+
|
|
1655
|
+
interface TypewriterTextProps {
|
|
1656
|
+
text: string;
|
|
1657
|
+
/** Delay between each word in ms (default: 40) */
|
|
1658
|
+
wordDelay?: number;
|
|
1659
|
+
/** Skip animation and show full text immediately */
|
|
1660
|
+
skipAnimation?: boolean;
|
|
1661
|
+
/** Callback when animation completes */
|
|
1662
|
+
onComplete?: () => void;
|
|
1663
|
+
/** Additional class names */
|
|
1664
|
+
className?: string;
|
|
1665
|
+
}
|
|
1666
|
+
/**
|
|
1667
|
+
* Typewriter component that reveals text word-by-word
|
|
1668
|
+
*/
|
|
1669
|
+
declare function TypewriterText({ text, wordDelay, skipAnimation, onComplete, className, }: TypewriterTextProps): react_jsx_runtime.JSX.Element;
|
|
1670
|
+
|
|
1671
|
+
type SidebarContextProps = {
|
|
1672
|
+
state: "expanded" | "collapsed" | "overlayed";
|
|
1673
|
+
open: boolean;
|
|
1674
|
+
setOpen: (open: boolean) => void;
|
|
1675
|
+
openMobile: boolean;
|
|
1676
|
+
setOpenMobile: (open: boolean) => void;
|
|
1677
|
+
isMobile: boolean;
|
|
1678
|
+
toggleSidebar: () => void;
|
|
1679
|
+
};
|
|
1680
|
+
declare function useSidebar(): SidebarContextProps;
|
|
1681
|
+
declare function SidebarProvider({ defaultOpen: defaultOpenProp, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React$1.ComponentProps<'div'> & {
|
|
1682
|
+
defaultOpen?: boolean;
|
|
1683
|
+
open?: boolean;
|
|
1684
|
+
onOpenChange?: (open: boolean) => void;
|
|
1685
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1686
|
+
declare function SidebarTrigger({ className, onClick, ...props }: React$1.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
|
|
1687
|
+
|
|
1688
|
+
declare function Sidebar({ side, variant, collapsible, className, children, ...props }: React$1.ComponentProps<"div"> & {
|
|
1689
|
+
side?: "left" | "right";
|
|
1690
|
+
variant?: "sidebar" | "floating" | "inset";
|
|
1691
|
+
collapsible?: "offcanvas" | "icon" | "none";
|
|
1692
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1693
|
+
declare function SidebarRail({ className, ...props }: React$1.ComponentProps<"button">): react_jsx_runtime.JSX.Element;
|
|
1694
|
+
declare function SidebarInset({ className, ...props }: React$1.ComponentProps<"main">): react_jsx_runtime.JSX.Element;
|
|
1695
|
+
declare function SidebarInput({ className, ...props }: React$1.ComponentProps<typeof Input>): react_jsx_runtime.JSX.Element;
|
|
1696
|
+
declare function SidebarHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1697
|
+
declare function SidebarFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1698
|
+
declare function SidebarSeparator({ className, ...props }: React$1.ComponentProps<typeof Separator>): react_jsx_runtime.JSX.Element;
|
|
1699
|
+
declare function SidebarContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1700
|
+
declare function SidebarGroup({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1701
|
+
declare function SidebarGroupLabel({ className, asChild, ...props }: React$1.ComponentProps<"div"> & {
|
|
1702
|
+
asChild?: boolean;
|
|
1703
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1704
|
+
declare function SidebarGroupAction({ className, asChild, ...props }: React$1.ComponentProps<"button"> & {
|
|
1705
|
+
asChild?: boolean;
|
|
1706
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1707
|
+
declare function SidebarGroupContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1708
|
+
|
|
1709
|
+
declare const sidebarMenuButtonVariants: (props?: ({
|
|
1710
|
+
variant?: "default" | "outline" | null | undefined;
|
|
1711
|
+
size?: "sm" | "lg" | "default" | null | undefined;
|
|
1712
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1713
|
+
declare function SidebarMenu({ className, ...props }: React$1.ComponentProps<"ul">): react_jsx_runtime.JSX.Element;
|
|
1714
|
+
declare function SidebarMenuItem({ className, ...props }: React$1.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
1715
|
+
declare function SidebarMenuButton({ asChild, isActive, variant, size, tooltip, className, ...props }: React$1.ComponentProps<"button"> & {
|
|
1716
|
+
asChild?: boolean;
|
|
1717
|
+
isActive?: boolean;
|
|
1718
|
+
tooltip?: string | React$1.ComponentProps<typeof TooltipContent>;
|
|
1719
|
+
} & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime.JSX.Element;
|
|
1720
|
+
declare function SidebarMenuAction({ className, asChild, showOnHover, ...props }: React$1.ComponentProps<"button"> & {
|
|
1721
|
+
asChild?: boolean;
|
|
1722
|
+
showOnHover?: boolean;
|
|
1723
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1724
|
+
declare function SidebarMenuBadge({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1725
|
+
declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React$1.ComponentProps<"div"> & {
|
|
1726
|
+
showIcon?: boolean;
|
|
1727
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1728
|
+
declare function SidebarMenuSub({ className, ...props }: React$1.ComponentProps<"ul">): react_jsx_runtime.JSX.Element;
|
|
1729
|
+
declare function SidebarMenuSubItem({ className, ...props }: React$1.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
1730
|
+
declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: React$1.ComponentProps<"a"> & {
|
|
1731
|
+
asChild?: boolean;
|
|
1732
|
+
size?: "sm" | "md";
|
|
1733
|
+
isActive?: boolean;
|
|
1734
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1735
|
+
|
|
1736
|
+
/** Props for the PageHeader component */
|
|
1737
|
+
interface PageHeaderProps extends React$1.ComponentProps<"div"> {
|
|
1738
|
+
/** Page title */
|
|
1739
|
+
title: string;
|
|
1740
|
+
/** Optional description below the title */
|
|
1741
|
+
description?: string;
|
|
1742
|
+
/** Optional breadcrumb element rendered above the title */
|
|
1743
|
+
breadcrumbs?: React$1.ReactNode;
|
|
1744
|
+
/** Action slot (buttons, etc.) aligned to the right */
|
|
1745
|
+
actions?: React$1.ReactNode;
|
|
1746
|
+
}
|
|
1747
|
+
/**
|
|
1748
|
+
* Page header with title, description, breadcrumbs, and action slot.
|
|
1749
|
+
*
|
|
1750
|
+
* @component
|
|
1751
|
+
* @layer core
|
|
1752
|
+
*
|
|
1753
|
+
* @param {string} title - Page title text
|
|
1754
|
+
* @param {string} description - Optional subtitle / description
|
|
1755
|
+
* @param {React.ReactNode} breadcrumbs - Optional breadcrumb navigation
|
|
1756
|
+
* @param {React.ReactNode} actions - Action buttons aligned right
|
|
1757
|
+
*
|
|
1758
|
+
* @example
|
|
1759
|
+
* <PageHeader
|
|
1760
|
+
* breadcrumbs={<Breadcrumb>...</Breadcrumb>}
|
|
1761
|
+
* title="Billing"
|
|
1762
|
+
* description="Manage your subscription and payment methods."
|
|
1763
|
+
* actions={
|
|
1764
|
+
* <>
|
|
1765
|
+
* <Button variant="outline">Cancel Plan</Button>
|
|
1766
|
+
* <Button>Upgrade</Button>
|
|
1767
|
+
* </>
|
|
1768
|
+
* }
|
|
1769
|
+
* />
|
|
1770
|
+
*/
|
|
1771
|
+
declare function PageHeader({ title, description, breadcrumbs, actions, className, ...props }: PageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
1772
|
+
|
|
1773
|
+
/** Props for the SectionCard component */
|
|
1774
|
+
interface SectionCardProps extends React$1.ComponentProps<"div"> {
|
|
1775
|
+
/** Section title */
|
|
1776
|
+
title: string;
|
|
1777
|
+
/** Optional description below the title */
|
|
1778
|
+
description?: string;
|
|
1779
|
+
/** Optional footer content (save button, etc.) */
|
|
1780
|
+
footer?: React$1.ReactNode;
|
|
1781
|
+
/** Optional action in the header (edit button, etc.) */
|
|
1782
|
+
headerAction?: React$1.ReactNode;
|
|
1783
|
+
}
|
|
1784
|
+
/**
|
|
1785
|
+
* Titled card section for settings panels and dashboard areas.
|
|
1786
|
+
*
|
|
1787
|
+
* @component
|
|
1788
|
+
* @layer core
|
|
1789
|
+
*
|
|
1790
|
+
* @param {string} title - Section title
|
|
1791
|
+
* @param {string} description - Optional description
|
|
1792
|
+
* @param {React.ReactNode} footer - Optional footer area
|
|
1793
|
+
* @param {React.ReactNode} headerAction - Optional action in header
|
|
1794
|
+
*
|
|
1795
|
+
* @example
|
|
1796
|
+
* <SectionCard
|
|
1797
|
+
* title="Danger Zone"
|
|
1798
|
+
* description="Irreversible actions for your project."
|
|
1799
|
+
* footer={<Button intent="danger">Delete Project</Button>}
|
|
1800
|
+
* >
|
|
1801
|
+
* <p>Once deleted, this project cannot be recovered.</p>
|
|
1802
|
+
* </SectionCard>
|
|
1803
|
+
*/
|
|
1804
|
+
declare function SectionCard({ title, description, footer, headerAction, className, children, ...props }: SectionCardProps): react_jsx_runtime.JSX.Element;
|
|
1805
|
+
|
|
1806
|
+
/** Trend indicator data */
|
|
1807
|
+
interface MetricTrend {
|
|
1808
|
+
/** Numeric change (displayed as percentage) */
|
|
1809
|
+
value: number;
|
|
1810
|
+
/** Direction of the trend */
|
|
1811
|
+
direction: "up" | "down" | "flat";
|
|
1812
|
+
}
|
|
1813
|
+
/** Props for the MetricCard component */
|
|
1814
|
+
interface MetricCardProps extends React$1.ComponentProps<"div"> {
|
|
1815
|
+
/** Metric label (e.g. "Revenue", "Active Users") */
|
|
1816
|
+
label: string;
|
|
1817
|
+
/** Formatted metric value (e.g. "$12,345", "1,234") */
|
|
1818
|
+
value: string;
|
|
1819
|
+
/** Optional trend indicator */
|
|
1820
|
+
trend?: MetricTrend;
|
|
1821
|
+
/** Optional icon element */
|
|
1822
|
+
icon?: React$1.ReactNode;
|
|
1823
|
+
}
|
|
1824
|
+
/**
|
|
1825
|
+
* Dashboard metric card displaying a KPI with trend.
|
|
1826
|
+
*
|
|
1827
|
+
* @component
|
|
1828
|
+
* @layer core
|
|
1829
|
+
*
|
|
1830
|
+
* @param {string} label - Metric label
|
|
1831
|
+
* @param {string} value - Formatted metric value
|
|
1832
|
+
* @param {MetricTrend} trend - Optional trend with value and direction
|
|
1833
|
+
* @param {React.ReactNode} icon - Optional icon
|
|
1834
|
+
*
|
|
1835
|
+
* @example
|
|
1836
|
+
* <MetricCard
|
|
1837
|
+
* label="Monthly Revenue"
|
|
1838
|
+
* value="$48,200"
|
|
1839
|
+
* trend={{ value: 8.2, direction: "up" }}
|
|
1840
|
+
* />
|
|
1841
|
+
*/
|
|
1842
|
+
declare function MetricCard({ label, value, trend, icon, className, ...props }: MetricCardProps): react_jsx_runtime.JSX.Element;
|
|
1843
|
+
|
|
1844
|
+
/** Props for the EmptyState component */
|
|
1845
|
+
interface EmptyStateProps extends React$1.ComponentProps<"div"> {
|
|
1846
|
+
/** Icon or illustration element */
|
|
1847
|
+
icon?: React$1.ReactNode;
|
|
1848
|
+
/** Title text */
|
|
1849
|
+
title: string;
|
|
1850
|
+
/** Description text */
|
|
1851
|
+
description?: string;
|
|
1852
|
+
/** Action element (button, link, etc.) */
|
|
1853
|
+
action?: React$1.ReactNode;
|
|
1854
|
+
}
|
|
1855
|
+
/**
|
|
1856
|
+
* Empty state placeholder with icon, text, and call-to-action.
|
|
1857
|
+
*
|
|
1858
|
+
* @component
|
|
1859
|
+
* @layer core
|
|
1860
|
+
*
|
|
1861
|
+
* @param {React.ReactNode} icon - Icon or illustration
|
|
1862
|
+
* @param {string} title - Title text
|
|
1863
|
+
* @param {string} description - Description text
|
|
1864
|
+
* @param {React.ReactNode} action - Optional CTA button
|
|
1865
|
+
*
|
|
1866
|
+
* @example
|
|
1867
|
+
* <EmptyState
|
|
1868
|
+
* icon={<FileIcon className="size-12" />}
|
|
1869
|
+
* title="No documents"
|
|
1870
|
+
* description="Upload your first document to get started."
|
|
1871
|
+
* action={<Button>Upload File</Button>}
|
|
1872
|
+
* />
|
|
1873
|
+
*/
|
|
1874
|
+
declare function EmptyState({ icon, title, description, action, className, ...props }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
1875
|
+
|
|
1876
|
+
/** Props for the SearchField component */
|
|
1877
|
+
interface SearchFieldProps extends Omit<React$1.ComponentProps<"input">, "type"> {
|
|
1878
|
+
/** Show loading spinner instead of search icon */
|
|
1879
|
+
loading?: boolean;
|
|
1880
|
+
/** Callback when clear button is clicked */
|
|
1881
|
+
onClear?: () => void;
|
|
1882
|
+
}
|
|
1883
|
+
/**
|
|
1884
|
+
* Search input with icon, clear button, and loading state.
|
|
1885
|
+
*
|
|
1886
|
+
* @component
|
|
1887
|
+
* @layer core
|
|
1888
|
+
*
|
|
1889
|
+
* @param {boolean} loading - Shows spinner in place of search icon
|
|
1890
|
+
* @param {function} onClear - Callback when clear button is clicked
|
|
1891
|
+
*
|
|
1892
|
+
* @example
|
|
1893
|
+
* const [query, setQuery] = useState("");
|
|
1894
|
+
* <SearchField
|
|
1895
|
+
* placeholder="Search..."
|
|
1896
|
+
* value={query}
|
|
1897
|
+
* onChange={(e) => setQuery(e.target.value)}
|
|
1898
|
+
* onClear={() => setQuery("")}
|
|
1899
|
+
* loading={isSearching}
|
|
1900
|
+
* />
|
|
1901
|
+
*/
|
|
1902
|
+
declare function SearchField({ className, loading, onClear, value, ...props }: SearchFieldProps): react_jsx_runtime.JSX.Element;
|
|
1903
|
+
|
|
1904
|
+
/** Props for the SettingsSection component */
|
|
1905
|
+
interface SettingsSectionProps extends React$1.ComponentProps<"div"> {
|
|
1906
|
+
/** Setting label */
|
|
1907
|
+
label: string;
|
|
1908
|
+
/** Optional description of the setting */
|
|
1909
|
+
description?: string;
|
|
1910
|
+
}
|
|
1911
|
+
/**
|
|
1912
|
+
* Settings row with label, description, and control slot.
|
|
1913
|
+
*
|
|
1914
|
+
* @component
|
|
1915
|
+
* @layer core
|
|
1916
|
+
*
|
|
1917
|
+
* @param {string} label - Setting label
|
|
1918
|
+
* @param {string} description - Description of what the setting controls
|
|
1919
|
+
*
|
|
1920
|
+
* @example
|
|
1921
|
+
* <SettingsSection
|
|
1922
|
+
* label="Two-Factor Authentication"
|
|
1923
|
+
* description="Add an extra layer of security to your account."
|
|
1924
|
+
* >
|
|
1925
|
+
* <Button variant="outline" size="sm">Enable</Button>
|
|
1926
|
+
* </SettingsSection>
|
|
1927
|
+
*/
|
|
1928
|
+
declare function SettingsSection({ label, description, className, children, ...props }: SettingsSectionProps): react_jsx_runtime.JSX.Element;
|
|
1929
|
+
|
|
1930
|
+
/** Props for the PricingCard component */
|
|
1931
|
+
interface PricingCardProps extends React$1.ComponentProps<"div"> {
|
|
1932
|
+
/** Plan name (e.g. "Starter", "Pro", "Enterprise") */
|
|
1933
|
+
name: string;
|
|
1934
|
+
/** Formatted price (e.g. "$29", "Free", "$99") */
|
|
1935
|
+
price: string;
|
|
1936
|
+
/** Billing period (e.g. "month", "year") */
|
|
1937
|
+
period?: string;
|
|
1938
|
+
/** Short plan description */
|
|
1939
|
+
description?: string;
|
|
1940
|
+
/** List of included features */
|
|
1941
|
+
features: string[];
|
|
1942
|
+
/** CTA button element */
|
|
1943
|
+
cta?: React$1.ReactNode;
|
|
1944
|
+
/** Highlight as recommended plan */
|
|
1945
|
+
featured?: boolean;
|
|
1946
|
+
}
|
|
1947
|
+
/**
|
|
1948
|
+
* Pricing plan card with features list and CTA.
|
|
1949
|
+
*
|
|
1950
|
+
* @component
|
|
1951
|
+
* @layer core
|
|
1952
|
+
*
|
|
1953
|
+
* @param {string} name - Plan name
|
|
1954
|
+
* @param {string} price - Formatted price string
|
|
1955
|
+
* @param {string} period - Billing period
|
|
1956
|
+
* @param {string} description - Short description
|
|
1957
|
+
* @param {string[]} features - List of features
|
|
1958
|
+
* @param {React.ReactNode} cta - Call-to-action button
|
|
1959
|
+
* @param {boolean} featured - Highlight styling
|
|
1960
|
+
*
|
|
1961
|
+
* @example
|
|
1962
|
+
* <PricingCard
|
|
1963
|
+
* name="Enterprise"
|
|
1964
|
+
* price="$99"
|
|
1965
|
+
* period="month"
|
|
1966
|
+
* description="For large organizations"
|
|
1967
|
+
* features={["Everything in Pro", "SSO", "Custom integrations"]}
|
|
1968
|
+
* cta={<Button variant="solid" intent="primary">Contact Sales</Button>}
|
|
1969
|
+
* featured
|
|
1970
|
+
* />
|
|
1971
|
+
*/
|
|
1972
|
+
declare function PricingCard({ name, price, period, description, features, cta, featured, className, ...props }: PricingCardProps): react_jsx_runtime.JSX.Element;
|
|
1973
|
+
|
|
1974
|
+
/**
|
|
1975
|
+
* Toolbar container for data views.
|
|
1976
|
+
*
|
|
1977
|
+
* @component
|
|
1978
|
+
* @layer core
|
|
1979
|
+
*
|
|
1980
|
+
* @example
|
|
1981
|
+
* <DataToolbar>
|
|
1982
|
+
* <DataToolbarSearch placeholder="Search..." />
|
|
1983
|
+
* <DataToolbarActions>
|
|
1984
|
+
* <Button size="sm">Add New</Button>
|
|
1985
|
+
* </DataToolbarActions>
|
|
1986
|
+
* </DataToolbar>
|
|
1987
|
+
*/
|
|
1988
|
+
declare function DataToolbar({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1989
|
+
/**
|
|
1990
|
+
* Search slot within the data toolbar.
|
|
1991
|
+
*
|
|
1992
|
+
* @component
|
|
1993
|
+
* @layer core
|
|
1994
|
+
*/
|
|
1995
|
+
declare function DataToolbarSearch({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
1996
|
+
/**
|
|
1997
|
+
* Filters slot within the data toolbar.
|
|
1998
|
+
*
|
|
1999
|
+
* @component
|
|
2000
|
+
* @layer core
|
|
2001
|
+
*/
|
|
2002
|
+
declare function DataToolbarFilters({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
2003
|
+
/**
|
|
2004
|
+
* Actions slot within the data toolbar (right-aligned).
|
|
2005
|
+
*
|
|
2006
|
+
* @component
|
|
2007
|
+
* @layer core
|
|
2008
|
+
*/
|
|
2009
|
+
declare function DataToolbarActions({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
2010
|
+
|
|
2011
|
+
/**
|
|
2012
|
+
* Props for the ScrollToTopButton component.
|
|
2013
|
+
*
|
|
2014
|
+
* @interface
|
|
2015
|
+
* @package ui
|
|
2016
|
+
*/
|
|
2017
|
+
interface ScrollToTopButtonProps extends SaasflareComponentProps {
|
|
2018
|
+
/**
|
|
2019
|
+
* Optional scroll container element ID.
|
|
2020
|
+
* If not provided, falls back to the global `window`.
|
|
2021
|
+
*/
|
|
2022
|
+
scrollContainerId?: string;
|
|
2023
|
+
/**
|
|
2024
|
+
* Vertical scroll offset (in pixels) after which the button is shown.
|
|
2025
|
+
* @default 300
|
|
2026
|
+
*/
|
|
2027
|
+
scrollOffset?: number;
|
|
2028
|
+
/** Additional class names merged onto the root button. */
|
|
2029
|
+
className?: string;
|
|
2030
|
+
}
|
|
2031
|
+
/**
|
|
2032
|
+
* A floating button that appears after scrolling down and smoothly scrolls
|
|
2033
|
+
* the user back to the top of the container (or window).
|
|
2034
|
+
*
|
|
2035
|
+
* @component
|
|
2036
|
+
*/
|
|
2037
|
+
declare function ScrollToTopButton({ scrollContainerId, scrollOffset, className, ...sfProps }: ScrollToTopButtonProps): JSX.Element;
|
|
2038
|
+
|
|
2039
|
+
/**
|
|
2040
|
+
* Theme mode toggle button with Sun/Moon icons.
|
|
2041
|
+
*
|
|
2042
|
+
* @component
|
|
2043
|
+
* @layer core
|
|
2044
|
+
*
|
|
2045
|
+
* @param {object} props - Component props
|
|
2046
|
+
* @param {boolean} [props.showText=false] - Whether to show the label text visibly
|
|
2047
|
+
* @param {string} [props.text] - Custom label text override
|
|
2048
|
+
* @param {string} [props.className] - Additional CSS class names
|
|
2049
|
+
* @returns {JSX.Element | null} The toggle button, or null before hydration
|
|
2050
|
+
*/
|
|
2051
|
+
declare function ThemeModeToggle({ showText, text, className, }: {
|
|
2052
|
+
showText?: boolean;
|
|
2053
|
+
text?: string;
|
|
2054
|
+
className?: string;
|
|
2055
|
+
}): JSX.Element | null;
|
|
2056
|
+
|
|
2057
|
+
/**
|
|
2058
|
+
* Props for the TopLoadingBar component.
|
|
2059
|
+
*
|
|
2060
|
+
* @interface
|
|
2061
|
+
* @package ui
|
|
2062
|
+
*/
|
|
2063
|
+
interface TopLoadingBarProps extends SaasflareComponentProps {
|
|
2064
|
+
/** Delay before starting the progress bar, in ms. @default 100 */
|
|
2065
|
+
startDelayMs?: number;
|
|
2066
|
+
/** Delay before finishing the progress bar, in ms. @default 300 */
|
|
2067
|
+
finishDelayMs?: number;
|
|
2068
|
+
}
|
|
2069
|
+
declare function TopLoadingBar({ startDelayMs, finishDelayMs, ...sfProps }: TopLoadingBarProps): react_jsx_runtime.JSX.Element;
|
|
2070
|
+
|
|
2071
|
+
/**
|
|
2072
|
+
* Props for the UserAvatar component.
|
|
2073
|
+
*
|
|
2074
|
+
* @interface
|
|
2075
|
+
* @layer core
|
|
2076
|
+
*/
|
|
2077
|
+
interface UserAvatarProps {
|
|
2078
|
+
/** URL of the user's avatar image */
|
|
2079
|
+
src: string | null | undefined;
|
|
2080
|
+
/** User's display name (used as alt text) */
|
|
2081
|
+
name: string | null | undefined;
|
|
2082
|
+
/** Initials to show when no avatar image is available */
|
|
2083
|
+
initials: string;
|
|
2084
|
+
/** Avatar size variant */
|
|
2085
|
+
size?: 'sm' | 'md' | 'lg';
|
|
2086
|
+
/** Additional CSS class names */
|
|
2087
|
+
className?: string;
|
|
2088
|
+
}
|
|
2089
|
+
/**
|
|
2090
|
+
* User avatar with image, fallback initials, and size variants.
|
|
2091
|
+
*
|
|
2092
|
+
* @component
|
|
2093
|
+
* @layer core
|
|
2094
|
+
*
|
|
2095
|
+
* @param {UserAvatarProps} props - Component props
|
|
2096
|
+
* @returns {JSX.Element} The rendered avatar
|
|
2097
|
+
*
|
|
2098
|
+
* @example
|
|
2099
|
+
* <UserAvatar src="/avatars/jane.jpg" name="Jane Doe" initials="JD" />
|
|
2100
|
+
*/
|
|
2101
|
+
declare function UserAvatar({ src, name, initials, size, className }: UserAvatarProps): react_jsx_runtime.JSX.Element;
|
|
2102
|
+
|
|
2103
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, AnimatedTooltip, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type CustomPalette, DataToolbar, DataToolbarActions, DataToolbarFilters, DataToolbarSearch, type Density, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyState, type EmptyStateProps, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type Intent, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, type Measurement, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, type MetricCardProps, type MetricTrend, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, PALETTES, PageHeader, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type PaginationRangeItem, type Palette, type PaletteId, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PricingCard, type PricingCardProps, Progress, RADII, RadioGroup, RadioGroupItem, type Radius, type RadiusProp, ResizableHandle, ResizablePanel, ResizablePanelGroup, type ResolvedSaasflareProps, STYLES, type SaasflareComponentProps, SaasflareProvider, type SaasflareProviderProps, SaasflareScript, type SaasflareScriptProps, SaasflareShell, type SaasflareShellProps, ScrollArea, ScrollBar, ScrollToTopButton, SearchField, type SearchFieldProps, SectionCard, type SectionCardProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsSection, type SettingsSectionProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, type Size, Skeleton, Slider, SmoothScrollProvider, type SmoothScrollProviderProps, Spinner, type StyleVariant, type Surface, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeModeToggle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, type TooltipItem, TooltipProvider, TooltipTrigger, TopLoadingBar, type TopLoadingBarProps, TypewriterText, type UseDisclosureOptions, type UseDisclosureReturn, type UseMeasureReturn, type UsePaginationOptions, type UsePaginationReturn, UserAvatar, type UserAvatarProps, badgeVariants, buttonGroupVariants, buttonVariants, cn, fadeIn, navigationMenuTriggerStyle, noMotion, scaleIn, slideDown, slideUp, spring, springBouncy, springGentle, springStiff, toggleVariants, useAnimation, useComboboxAnchor, useDirection, useDisclosure, useFormField, useIsMobile, useMeasure, usePagination, useReducedMotion, useSaasflareProps, useSaasflareTheme, useSidebar };
|