noorui-rtl 0.3.1 → 0.3.3

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.
@@ -0,0 +1,1508 @@
1
+ import * as React from 'react';
2
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import * as class_variance_authority from 'class-variance-authority';
5
+ import { VariantProps } from 'class-variance-authority';
6
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
7
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
8
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
9
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
10
+ import { DialogProps } from '@radix-ui/react-dialog';
11
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
12
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
13
+ import { LucideIcon } from 'lucide-react';
14
+ import * as _radix_ui_react_label from '@radix-ui/react-label';
15
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
16
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
17
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
18
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
19
+ import * as SelectPrimitive from '@radix-ui/react-select';
20
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
21
+ import * as SliderPrimitive from '@radix-ui/react-slider';
22
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
23
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
24
+ import * as ToastPrimitives from '@radix-ui/react-toast';
25
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
26
+ import { Node, Edge, OnNodesChange, OnEdgesChange, OnConnect, BackgroundVariant, FitViewOptions, DefaultEdgeOptions, NodeProps } from '@xyflow/react';
27
+ import { ClassValue } from 'clsx';
28
+
29
+ type Direction = 'ltr' | 'rtl';
30
+
31
+ interface DirectionContextType {
32
+ direction: Direction;
33
+ setDirection: (direction: Direction) => void;
34
+ locale: 'en' | 'ar';
35
+ setLocale: (locale: 'en' | 'ar') => void;
36
+ }
37
+ declare function DirectionProvider({ children }: {
38
+ children: React.ReactNode;
39
+ }): React.JSX.Element;
40
+ declare function useDirection(): DirectionContextType;
41
+
42
+ declare function ClientProviders({ children }: {
43
+ children: React.ReactNode;
44
+ }): React.JSX.Element;
45
+
46
+ declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
47
+ declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
48
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
49
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
50
+
51
+ declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
52
+ variant?: "default" | "destructive" | "success" | "warning" | null | undefined;
53
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
54
+ declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
55
+ declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
56
+
57
+ interface ArabicNumberProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof arabicNumberVariants> {
58
+ /** The number to display */
59
+ value: number;
60
+ /** Format type */
61
+ format?: 'number' | 'currency' | 'percentage';
62
+ /** Use Arabic-Indic numerals */
63
+ useArabicNumerals?: boolean;
64
+ /** Locale for formatting */
65
+ locale?: 'en' | 'ar';
66
+ /** Number of decimal places */
67
+ decimals?: number;
68
+ /** Visual style variant */
69
+ variant?: 'default' | 'inline' | 'badge';
70
+ }
71
+ declare const arabicNumberVariants: (props?: ({
72
+ variant?: "default" | "inline" | "badge" | null | undefined;
73
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
74
+ declare const ArabicNumber: React.ForwardRefExoticComponent<ArabicNumberProps & React.RefAttributes<HTMLSpanElement>>;
75
+
76
+ declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
77
+ declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
78
+ declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
79
+
80
+ declare const badgeVariants: (props?: ({
81
+ variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
82
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
83
+ interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
84
+ }
85
+ declare function Badge({ className, variant, ...props }: BadgeProps): React.JSX.Element;
86
+
87
+ declare const Breadcrumb: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
88
+ declare const BreadcrumbList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
89
+ declare const BreadcrumbItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
90
+ declare const BreadcrumbLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
91
+ declare const BreadcrumbPage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
92
+ declare const BreadcrumbSeparator: {
93
+ ({ children, className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
94
+ displayName: string;
95
+ };
96
+
97
+ declare const buttonVariants: (props?: ({
98
+ variant?: "link" | "primary" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
99
+ size?: "sm" | "md" | "lg" | "xl" | "icon" | null | undefined;
100
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
101
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
102
+ asChild?: boolean;
103
+ loading?: boolean;
104
+ }
105
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
106
+
107
+ interface CalendarEvent {
108
+ /** Event date */
109
+ date: Date;
110
+ /** Event title */
111
+ title: string;
112
+ /** Event color/variant */
113
+ variant?: 'default' | 'primary' | 'secondary' | 'destructive';
114
+ }
115
+ type SelectionMode = 'single' | 'range';
116
+ interface DateRange {
117
+ from: Date | undefined;
118
+ to: Date | undefined;
119
+ }
120
+ interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
121
+ /** Selection mode */
122
+ mode?: SelectionMode;
123
+ /** Selected date (single mode) */
124
+ selected?: Date;
125
+ /** Selected date range (range mode) */
126
+ selectedRange?: DateRange;
127
+ /** Callback when date is selected */
128
+ onSelect?: (date: Date | DateRange | undefined) => void;
129
+ /** Show Hijri dates */
130
+ showHijri?: boolean;
131
+ /** Calendar events to display */
132
+ events?: CalendarEvent[];
133
+ /** Disabled dates */
134
+ disabled?: Date[] | ((date: Date) => boolean);
135
+ /** Minimum selectable date */
136
+ minDate?: Date;
137
+ /** Maximum selectable date */
138
+ maxDate?: Date;
139
+ /** Locale */
140
+ locale?: 'en' | 'ar';
141
+ /** Custom Hijri date provider */
142
+ getHijriDate?: (date: Date) => {
143
+ hijri: string;
144
+ hijriDay: string;
145
+ };
146
+ }
147
+ declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<HTMLDivElement>>;
148
+
149
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
150
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
151
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
152
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
153
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
154
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
155
+
156
+ declare const chatMessageVariants: (props?: ({
157
+ role?: "user" | "assistant" | "system" | null | undefined;
158
+ variant?: "default" | "compact" | null | undefined;
159
+ state?: "error" | "complete" | "streaming" | null | undefined;
160
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
161
+ interface ChatMessageProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof chatMessageVariants> {
162
+ /**
163
+ * The role/sender of the message
164
+ */
165
+ role: 'user' | 'assistant' | 'system';
166
+ /**
167
+ * The message content (supports markdown)
168
+ */
169
+ content: string;
170
+ /**
171
+ * Optional timestamp
172
+ */
173
+ timestamp?: string;
174
+ /**
175
+ * Optional avatar URL
176
+ */
177
+ avatar?: string;
178
+ /**
179
+ * Optional name/label
180
+ */
181
+ name?: string;
182
+ /**
183
+ * Show copy button
184
+ */
185
+ showCopy?: boolean;
186
+ /**
187
+ * Show regenerate button (assistant only)
188
+ */
189
+ showRegenerate?: boolean;
190
+ /**
191
+ * Callback when copy is clicked
192
+ */
193
+ onCopy?: () => void;
194
+ /**
195
+ * Callback when regenerate is clicked
196
+ */
197
+ onRegenerate?: () => void;
198
+ /**
199
+ * Whether text direction is RTL
200
+ */
201
+ isRTL?: boolean;
202
+ }
203
+ declare const ChatMessage: React.ForwardRefExoticComponent<ChatMessageProps & React.RefAttributes<HTMLDivElement>>;
204
+
205
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
206
+
207
+ declare const Collapsible: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & React.RefAttributes<HTMLDivElement>>;
208
+ declare const CollapsibleTrigger: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
209
+ declare const CollapsibleContent: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>>;
210
+
211
+ declare const Command: React.ForwardRefExoticComponent<Omit<{
212
+ children?: React.ReactNode;
213
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
214
+ ref?: React.Ref<HTMLDivElement>;
215
+ } & {
216
+ asChild?: boolean;
217
+ }, "asChild" | keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
218
+ label?: string;
219
+ shouldFilter?: boolean;
220
+ filter?: (value: string, search: string, keywords?: string[]) => number;
221
+ defaultValue?: string;
222
+ value?: string;
223
+ onValueChange?: (value: string) => void;
224
+ loop?: boolean;
225
+ disablePointerSelection?: boolean;
226
+ vimBindings?: boolean;
227
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
228
+ interface CommandDialogProps extends DialogProps {
229
+ }
230
+ declare const CommandDialog: ({ children, ...props }: CommandDialogProps) => React.JSX.Element;
231
+ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & {
232
+ ref?: React.Ref<HTMLInputElement>;
233
+ } & {
234
+ asChild?: boolean;
235
+ }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "value" | "type" | "onChange"> & {
236
+ value?: string;
237
+ onValueChange?: (search: string) => void;
238
+ } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
239
+ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
240
+ children?: React.ReactNode;
241
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
242
+ ref?: React.Ref<HTMLDivElement>;
243
+ } & {
244
+ asChild?: boolean;
245
+ }, "asChild" | keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
246
+ label?: string;
247
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
248
+ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
249
+ children?: React.ReactNode;
250
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
251
+ ref?: React.Ref<HTMLDivElement>;
252
+ } & {
253
+ asChild?: boolean;
254
+ }, "asChild" | keyof React.HTMLAttributes<HTMLDivElement> | "key"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
255
+ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
256
+ children?: React.ReactNode;
257
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
258
+ ref?: React.Ref<HTMLDivElement>;
259
+ } & {
260
+ asChild?: boolean;
261
+ }, "asChild" | keyof React.HTMLAttributes<HTMLDivElement> | "key">, "value" | "heading"> & {
262
+ heading?: React.ReactNode;
263
+ value?: string;
264
+ forceMount?: boolean;
265
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
266
+ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
267
+ ref?: React.Ref<HTMLDivElement>;
268
+ } & {
269
+ asChild?: boolean;
270
+ }, "asChild" | keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
271
+ alwaysRender?: boolean;
272
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
273
+ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
274
+ children?: React.ReactNode;
275
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
276
+ ref?: React.Ref<HTMLDivElement>;
277
+ } & {
278
+ asChild?: boolean;
279
+ }, "asChild" | keyof React.HTMLAttributes<HTMLDivElement> | "key">, "value" | "disabled" | "onSelect"> & {
280
+ disabled?: boolean;
281
+ onSelect?: (value: string) => void;
282
+ value?: string;
283
+ keywords?: string[];
284
+ forceMount?: boolean;
285
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
286
+ declare const CommandShortcut: {
287
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
288
+ displayName: string;
289
+ };
290
+
291
+ declare const ContextMenu: React.FC<React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Root>>;
292
+ declare const ContextMenuTrigger: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React.RefAttributes<HTMLSpanElement>>;
293
+ declare const ContextMenuGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
294
+ declare const ContextMenuPortal: React.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
295
+ declare const ContextMenuSub: React.FC<ContextMenuPrimitive.ContextMenuSubProps>;
296
+ declare const ContextMenuRadioGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
297
+ declare const ContextMenuSubTrigger: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
298
+ inset?: boolean;
299
+ } & React.RefAttributes<HTMLDivElement>>;
300
+ declare const ContextMenuSubContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
301
+ declare const ContextMenuContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
302
+ declare const ContextMenuItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
303
+ inset?: boolean;
304
+ } & React.RefAttributes<HTMLDivElement>>;
305
+ declare const ContextMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
306
+ declare const ContextMenuRadioItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
307
+ declare const ContextMenuLabel: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
308
+ inset?: boolean;
309
+ } & React.RefAttributes<HTMLDivElement>>;
310
+ declare const ContextMenuSeparator: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
311
+ declare const ContextMenuShortcut: {
312
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
313
+ displayName: string;
314
+ };
315
+
316
+ declare const conversationHistoryVariants: (props?: ({
317
+ variant?: "default" | "floating" | null | undefined;
318
+ size?: "default" | "sm" | "lg" | null | undefined;
319
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
320
+ interface Conversation {
321
+ id: string;
322
+ title: string;
323
+ titleAr?: string;
324
+ preview?: string;
325
+ previewAr?: string;
326
+ timestamp: Date;
327
+ messageCount?: number;
328
+ isActive?: boolean;
329
+ }
330
+ interface ConversationHistoryProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'>, VariantProps<typeof conversationHistoryVariants> {
331
+ /**
332
+ * List of conversations
333
+ */
334
+ conversations: Conversation[];
335
+ /**
336
+ * Currently active conversation ID
337
+ */
338
+ activeId?: string;
339
+ /**
340
+ * Callback when conversation is selected
341
+ */
342
+ onSelect?: (id: string) => void;
343
+ /**
344
+ * Callback when new conversation is created
345
+ */
346
+ onCreate?: () => void;
347
+ /**
348
+ * Callback when conversation is renamed
349
+ */
350
+ onRename?: (id: string, newTitle: string) => void;
351
+ /**
352
+ * Callback when conversation is deleted
353
+ */
354
+ onDelete?: (id: string) => void;
355
+ /**
356
+ * Callback when conversation is shared
357
+ */
358
+ onShare?: (id: string) => void;
359
+ /**
360
+ * Show search input
361
+ */
362
+ showSearch?: boolean;
363
+ /**
364
+ * Whether text direction is RTL
365
+ */
366
+ isRTL?: boolean;
367
+ /**
368
+ * Header title
369
+ */
370
+ title?: string;
371
+ /**
372
+ * Header title in Arabic
373
+ */
374
+ titleAr?: string;
375
+ }
376
+ declare const ConversationHistory: React.ForwardRefExoticComponent<ConversationHistoryProps & React.RefAttributes<HTMLDivElement>>;
377
+
378
+ interface Notification {
379
+ id: string;
380
+ title: string;
381
+ titleAr?: string;
382
+ description?: string;
383
+ descriptionAr?: string;
384
+ message?: string;
385
+ messageAr?: string;
386
+ time?: string;
387
+ timestamp?: string;
388
+ type?: 'info' | 'success' | 'warning' | 'error' | 'comment';
389
+ read?: boolean;
390
+ icon?: React.ReactNode;
391
+ avatar?: string;
392
+ }
393
+ interface NotificationCenterProps {
394
+ notifications?: Notification[];
395
+ onNotificationClick?: (notification: Notification) => void;
396
+ onMarkAsRead?: (id: string) => void;
397
+ onMarkAllAsRead?: () => void;
398
+ onClearAll?: () => void;
399
+ onRemove?: (id: string) => void;
400
+ className?: string;
401
+ maxHeight?: string;
402
+ }
403
+ declare const NotificationCenter: React.ForwardRefExoticComponent<NotificationCenterProps & React.RefAttributes<HTMLButtonElement>>;
404
+
405
+ interface NavItem {
406
+ title: string;
407
+ titleAr: string;
408
+ href: string;
409
+ icon?: React.ReactNode;
410
+ badge?: string | number;
411
+ disabled?: boolean;
412
+ }
413
+ interface DashboardShellProps {
414
+ children: React.ReactNode;
415
+ navItems?: NavItem[];
416
+ user?: {
417
+ name?: string;
418
+ email?: string;
419
+ image?: string;
420
+ initials?: string;
421
+ };
422
+ notifications?: Notification[];
423
+ onProfileClick?: () => void;
424
+ onSettingsClick?: () => void;
425
+ onBillingClick?: () => void;
426
+ onTeamClick?: () => void;
427
+ onSupportClick?: () => void;
428
+ onLogout?: () => void;
429
+ onNotificationClick?: (notification: Notification) => void;
430
+ onMarkAsRead?: (id: string) => void;
431
+ onMarkAllAsRead?: () => void;
432
+ onClearAll?: () => void;
433
+ onRemove?: (id: string) => void;
434
+ logo?: React.ReactNode;
435
+ logoHref?: string;
436
+ sidebarWidth?: string;
437
+ className?: string;
438
+ /**
439
+ * Use relative positioning instead of fixed (useful for embedded examples)
440
+ * @default false
441
+ */
442
+ relative?: boolean;
443
+ }
444
+ declare function DashboardShell({ children, navItems, user, notifications, onProfileClick, onSettingsClick, onBillingClick, onTeamClick, onSupportClick, onLogout, onNotificationClick, onMarkAsRead, onMarkAllAsRead, onClearAll, onRemove, logo, logoHref, sidebarWidth, className, relative, }: DashboardShellProps): React.JSX.Element;
445
+
446
+ type SortDirection = 'asc' | 'desc' | null;
447
+ interface ColumnDef<T> {
448
+ id: string;
449
+ header: string;
450
+ headerAr?: string;
451
+ accessorKey: keyof T;
452
+ cell?: (row: T) => React.ReactNode;
453
+ sortable?: boolean;
454
+ filterable?: boolean;
455
+ align?: 'start' | 'center' | 'end';
456
+ width?: string;
457
+ }
458
+ interface DataTableProps<T> {
459
+ data: T[];
460
+ columns: ColumnDef<T>[];
461
+ isLoading?: boolean;
462
+ sortBy?: string;
463
+ sortDirection?: SortDirection;
464
+ onSort?: (columnId: string) => void;
465
+ searchable?: boolean;
466
+ searchPlaceholder?: string;
467
+ searchPlaceholderAr?: string;
468
+ searchValue?: string;
469
+ onSearchChange?: (value: string) => void;
470
+ filterBy?: (keyof T)[];
471
+ pagination?: boolean;
472
+ currentPage?: number;
473
+ totalPages?: number;
474
+ pageSize?: number;
475
+ onPageChange?: (page: number) => void;
476
+ mobileView?: 'table' | 'cards';
477
+ emptyMessage?: string;
478
+ emptyMessageAr?: string;
479
+ className?: string;
480
+ striped?: boolean;
481
+ hoverable?: boolean;
482
+ compact?: boolean;
483
+ }
484
+ declare function DataTable<T>({ data, columns, isLoading, sortBy, sortDirection, onSort, searchable, searchPlaceholder, searchPlaceholderAr, searchValue, onSearchChange, pagination, currentPage, totalPages, pageSize, onPageChange, mobileView, emptyMessage, emptyMessageAr, className, striped, hoverable, compact, }: DataTableProps<T>): React.JSX.Element;
485
+
486
+ interface DatePickerProps {
487
+ date?: Date;
488
+ onDateChange?: (date: Date | undefined) => void;
489
+ placeholder?: string;
490
+ placeholderAr?: string;
491
+ disabled?: boolean;
492
+ className?: string;
493
+ /**
494
+ * Format function for displaying the selected date
495
+ */
496
+ formatDate?: (date: Date | undefined, locale: 'en' | 'ar') => string;
497
+ /**
498
+ * Minimum selectable date
499
+ */
500
+ minDate?: Date;
501
+ /**
502
+ * Maximum selectable date
503
+ */
504
+ maxDate?: Date;
505
+ /**
506
+ * Dates that should be disabled
507
+ */
508
+ disabledDates?: Date[];
509
+ /**
510
+ * Show Hijri date alongside Gregorian
511
+ */
512
+ showHijri?: boolean;
513
+ }
514
+ declare function DatePicker({ date, onDateChange, placeholder, placeholderAr, disabled, className, formatDate, minDate, maxDate, disabledDates, showHijri, }: DatePickerProps): React.JSX.Element;
515
+
516
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
517
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
518
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
519
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
520
+ declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
521
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
522
+ declare const DialogHeader: {
523
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
524
+ displayName: string;
525
+ };
526
+ declare const DialogFooter: {
527
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
528
+ displayName: string;
529
+ };
530
+ declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
531
+ declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
532
+
533
+ declare const DropdownMenu: React.FC<React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root>>;
534
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
535
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
536
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
537
+ declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
538
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
539
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
540
+ inset?: boolean;
541
+ } & React.RefAttributes<HTMLDivElement>>;
542
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
543
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
544
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
545
+ inset?: boolean;
546
+ } & React.RefAttributes<HTMLDivElement>>;
547
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
548
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
549
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
550
+ inset?: boolean;
551
+ } & React.RefAttributes<HTMLDivElement>>;
552
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
553
+ declare const DropdownMenuShortcut: {
554
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
555
+ displayName: string;
556
+ };
557
+
558
+ interface EmptyStateProps {
559
+ icon?: React.ReactNode;
560
+ title: string;
561
+ description?: string;
562
+ action?: React.ReactNode;
563
+ className?: string;
564
+ }
565
+ declare function EmptyState({ icon, title, description, action, className, }: EmptyStateProps): React.JSX.Element;
566
+ declare namespace EmptyState {
567
+ var displayName: string;
568
+ }
569
+
570
+ interface FeatureCardProps {
571
+ title: string;
572
+ description: string;
573
+ icon: LucideIcon;
574
+ href?: string;
575
+ className?: string;
576
+ }
577
+ declare function FeatureCard({ title, description, icon: Icon, href, className, }: FeatureCardProps): React.JSX.Element;
578
+ declare namespace FeatureCard {
579
+ var displayName: string;
580
+ }
581
+
582
+ interface FileUploadProps {
583
+ onUpload?: (files: File[]) => void;
584
+ onChange?: (files: File[]) => void;
585
+ maxSize?: number;
586
+ maxFiles?: number;
587
+ accept?: string;
588
+ multiple?: boolean;
589
+ disabled?: boolean;
590
+ className?: string;
591
+ value?: File[];
592
+ }
593
+ declare const FileUpload: React.ForwardRefExoticComponent<FileUploadProps & React.RefAttributes<HTMLInputElement>>;
594
+
595
+ interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {
596
+ initialValues?: Record<string, any>;
597
+ validators?: Record<string, (value: any) => string | undefined>;
598
+ onSubmit: (values: Record<string, any>) => void | Promise<void>;
599
+ }
600
+ declare const Form: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<HTMLFormElement>>;
601
+ interface FormFieldProps {
602
+ name: string;
603
+ children: (props: {
604
+ field: {
605
+ name: string;
606
+ value: any;
607
+ onChange: (value: any) => void;
608
+ onBlur: () => void;
609
+ };
610
+ error?: string;
611
+ touched: boolean;
612
+ }) => React.ReactNode;
613
+ }
614
+ declare const FormField: React.FC<FormFieldProps>;
615
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
616
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_label.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & class_variance_authority.VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>, "ref"> & {
617
+ required?: boolean;
618
+ } & React.RefAttributes<HTMLLabelElement>>;
619
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & {
620
+ error?: string;
621
+ } & React.RefAttributes<HTMLParagraphElement>>;
622
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
623
+
624
+ interface HijriDateProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof hijriDateVariants> {
625
+ /** Gregorian date in English (e.g., "November 6, 2025") */
626
+ gregorianDate: string;
627
+ /** Gregorian date in Arabic (optional, for RTL display) */
628
+ gregorianDateAr?: string;
629
+ /** Hijri date in English (e.g., "5 Jumada al-Awwal 1447") */
630
+ hijriDate: string;
631
+ /** Hijri date in Arabic (e.g., "٥ جمادى الأولى ١٤٤٧") */
632
+ hijriDateAr: string;
633
+ /** Show calendar icon */
634
+ showIcon?: boolean;
635
+ /** Show Islamic holiday badge if applicable */
636
+ showHoliday?: boolean;
637
+ /** Visual variant */
638
+ variant?: 'default' | 'badge' | 'compact' | 'detailed';
639
+ }
640
+ declare const hijriDateVariants: (props?: ({
641
+ variant?: "default" | "compact" | "badge" | "detailed" | null | undefined;
642
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
643
+ declare const HijriDate: React.ForwardRefExoticComponent<HijriDateProps & React.RefAttributes<HTMLDivElement>>;
644
+
645
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
646
+ }
647
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
648
+
649
+ declare const Label: React.ForwardRefExoticComponent<Omit<_radix_ui_react_label.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
650
+
651
+ interface ListingCardBadge {
652
+ label: string;
653
+ variant?: 'default' | 'secondary' | 'destructive' | 'outline';
654
+ className?: string;
655
+ }
656
+ interface ListingCardStat {
657
+ icon: LucideIcon;
658
+ value: string | number;
659
+ label?: string;
660
+ }
661
+ interface ListingCardAction {
662
+ icon: LucideIcon;
663
+ label: string;
664
+ onClick?: () => void;
665
+ }
666
+ interface ListingCardTag {
667
+ label: string;
668
+ variant?: 'default' | 'secondary' | 'outline';
669
+ }
670
+ interface ListingCardProps extends React.HTMLAttributes<HTMLDivElement> {
671
+ /**
672
+ * Main title of the listing
673
+ */
674
+ title: string;
675
+ /**
676
+ * Subtitle or location text
677
+ */
678
+ subtitle?: string | React.ReactNode;
679
+ /**
680
+ * Short description
681
+ */
682
+ description?: string;
683
+ /**
684
+ * Price or main value to display
685
+ */
686
+ price?: string | React.ReactNode;
687
+ /**
688
+ * Image URL or custom image component
689
+ */
690
+ image?: string | React.ReactNode;
691
+ /**
692
+ * Icon to show as placeholder when no image provided
693
+ */
694
+ placeholderIcon?: LucideIcon;
695
+ /**
696
+ * Badges to show on top left of image
697
+ */
698
+ badges?: ListingCardBadge[];
699
+ /**
700
+ * Action buttons on top right of image (heart, share, etc)
701
+ */
702
+ actions?: ListingCardAction[];
703
+ /**
704
+ * Stats/specs to display (bedrooms, bathrooms, area, etc)
705
+ */
706
+ stats?: ListingCardStat[];
707
+ /**
708
+ * Tags/amenities to display
709
+ */
710
+ tags?: ListingCardTag[];
711
+ /**
712
+ * Max number of tags to show before "+N more"
713
+ */
714
+ maxTags?: number;
715
+ /**
716
+ * Type badge next to title
717
+ */
718
+ typeBadge?: string;
719
+ /**
720
+ * CTA button text
721
+ */
722
+ ctaText?: string;
723
+ /**
724
+ * CTA button click handler
725
+ */
726
+ onCtaClick?: () => void;
727
+ /**
728
+ * Card click handler
729
+ */
730
+ onClick?: () => void;
731
+ /**
732
+ * Whether card is featured
733
+ */
734
+ featured?: boolean;
735
+ /**
736
+ * Image aspect ratio
737
+ */
738
+ imageAspect?: 'square' | 'video' | 'wide';
739
+ /**
740
+ * Hover effect
741
+ */
742
+ hoverEffect?: boolean;
743
+ }
744
+ declare const ListingCard: React.ForwardRefExoticComponent<ListingCardProps & React.RefAttributes<HTMLDivElement>>;
745
+
746
+ interface LoadingSpinnerProps extends React.HTMLAttributes<HTMLDivElement> {
747
+ size?: 'sm' | 'md' | 'lg';
748
+ text?: string;
749
+ }
750
+ declare function LoadingSpinnerComponent({ size, text, className, ...props }: LoadingSpinnerProps): React.JSX.Element;
751
+ declare const LoadingSpinner: React.MemoExoticComponent<typeof LoadingSpinnerComponent>;
752
+
753
+ interface MessageActionsProps extends React.HTMLAttributes<HTMLDivElement> {
754
+ /**
755
+ * Show copy button
756
+ */
757
+ showCopy?: boolean;
758
+ /**
759
+ * Show regenerate button
760
+ */
761
+ showRegenerate?: boolean;
762
+ /**
763
+ * Show edit button
764
+ */
765
+ showEdit?: boolean;
766
+ /**
767
+ * Show share button
768
+ */
769
+ showShare?: boolean;
770
+ /**
771
+ * Show flag/report button
772
+ */
773
+ showFlag?: boolean;
774
+ /**
775
+ * Show feedback buttons (thumbs up/down)
776
+ */
777
+ showFeedback?: boolean;
778
+ /**
779
+ * Callback when copy is clicked
780
+ */
781
+ onCopy?: () => void;
782
+ /**
783
+ * Callback when regenerate is clicked
784
+ */
785
+ onRegenerate?: () => void;
786
+ /**
787
+ * Callback when edit is clicked
788
+ */
789
+ onEdit?: () => void;
790
+ /**
791
+ * Callback when share is clicked
792
+ */
793
+ onShare?: () => void;
794
+ /**
795
+ * Callback when flag is clicked
796
+ */
797
+ onFlag?: () => void;
798
+ /**
799
+ * Callback when thumbs up is clicked
800
+ */
801
+ onThumbsUp?: () => void;
802
+ /**
803
+ * Callback when thumbs down is clicked
804
+ */
805
+ onThumbsDown?: () => void;
806
+ /**
807
+ * Whether text direction is RTL
808
+ */
809
+ isRTL?: boolean;
810
+ /**
811
+ * Compact mode (icon only)
812
+ */
813
+ compact?: boolean;
814
+ }
815
+ declare const MessageActions: React.ForwardRefExoticComponent<MessageActionsProps & React.RefAttributes<HTMLDivElement>>;
816
+
817
+ interface AIModel {
818
+ id: string;
819
+ name: string;
820
+ nameAr?: string;
821
+ provider: string;
822
+ providerAr?: string;
823
+ description: string;
824
+ descriptionAr?: string;
825
+ specs: {
826
+ speed: 'fast' | 'medium' | 'slow';
827
+ speedLabel?: string;
828
+ speedLabelAr?: string;
829
+ contextLength: number;
830
+ pricing?: string;
831
+ pricingAr?: string;
832
+ };
833
+ recommended?: boolean;
834
+ icon?: 'zap' | 'brain' | 'sparkles' | 'bot';
835
+ }
836
+ interface ModelSelectorProps {
837
+ /**
838
+ * Available models
839
+ */
840
+ models: AIModel[];
841
+ /**
842
+ * Selected model ID
843
+ */
844
+ value?: string;
845
+ /**
846
+ * Callback when model changes
847
+ */
848
+ onValueChange?: (value: string) => void;
849
+ /**
850
+ * Whether text direction is RTL
851
+ */
852
+ isRTL?: boolean;
853
+ /**
854
+ * Placeholder text
855
+ */
856
+ placeholder?: string;
857
+ /**
858
+ * Placeholder text in Arabic
859
+ */
860
+ placeholderAr?: string;
861
+ /**
862
+ * Additional CSS classes
863
+ */
864
+ className?: string;
865
+ }
866
+ declare const ModelSelector: React.ForwardRefExoticComponent<ModelSelectorProps & React.RefAttributes<HTMLButtonElement>>;
867
+
868
+ interface NumberInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange'> {
869
+ value?: number;
870
+ defaultValue?: number;
871
+ onChange?: (value: number | undefined) => void;
872
+ onValueChange?: (value: number | undefined) => void;
873
+ min?: number;
874
+ max?: number;
875
+ step?: number;
876
+ precision?: number;
877
+ showControls?: boolean;
878
+ formatDisplay?: (value: number) => string;
879
+ parseValue?: (value: string) => number | undefined;
880
+ allowNegative?: boolean;
881
+ allowDecimal?: boolean;
882
+ thousandsSeparator?: string | boolean;
883
+ decimalSeparator?: string;
884
+ }
885
+ declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<HTMLInputElement>>;
886
+
887
+ declare const Pagination: {
888
+ ({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
889
+ displayName: string;
890
+ };
891
+ declare const PaginationContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
892
+ declare const PaginationItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
893
+ type PaginationLinkProps = {
894
+ isActive?: boolean;
895
+ } & Pick<ButtonProps, 'size'> & React.ComponentProps<'a'>;
896
+ declare const PaginationLink: {
897
+ ({ className, isActive, size, children, ...props }: PaginationLinkProps): React.JSX.Element;
898
+ displayName: string;
899
+ };
900
+ declare const PaginationPrevious: {
901
+ ({ className, children, ...props }: React.ComponentProps<typeof PaginationLink>): React.JSX.Element;
902
+ displayName: string;
903
+ };
904
+ declare const PaginationNext: {
905
+ ({ className, children, ...props }: React.ComponentProps<typeof PaginationLink>): React.JSX.Element;
906
+ displayName: string;
907
+ };
908
+ declare const PaginationEllipsis: {
909
+ ({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
910
+ displayName: string;
911
+ };
912
+
913
+ interface ParameterPreset {
914
+ label: string;
915
+ labelAr?: string;
916
+ value: number;
917
+ description?: string;
918
+ descriptionAr?: string;
919
+ }
920
+ interface ParameterSliderProps {
921
+ /**
922
+ * Parameter label
923
+ */
924
+ label: string;
925
+ /**
926
+ * Parameter label in Arabic
927
+ */
928
+ labelAr?: string;
929
+ /**
930
+ * Parameter description/tooltip
931
+ */
932
+ description?: string;
933
+ /**
934
+ * Parameter description in Arabic
935
+ */
936
+ descriptionAr?: string;
937
+ /**
938
+ * Current value
939
+ */
940
+ value: number;
941
+ /**
942
+ * Callback when value changes
943
+ */
944
+ onValueChange: (value: number) => void;
945
+ /**
946
+ * Minimum value
947
+ */
948
+ min?: number;
949
+ /**
950
+ * Maximum value
951
+ */
952
+ max?: number;
953
+ /**
954
+ * Step size
955
+ */
956
+ step?: number;
957
+ /**
958
+ * Number of decimal places to display
959
+ */
960
+ decimals?: number;
961
+ /**
962
+ * Preset values
963
+ */
964
+ presets?: ParameterPreset[];
965
+ /**
966
+ * Show value display
967
+ */
968
+ showValue?: boolean;
969
+ /**
970
+ * Whether text direction is RTL
971
+ */
972
+ isRTL?: boolean;
973
+ /**
974
+ * Additional CSS classes
975
+ */
976
+ className?: string;
977
+ }
978
+ declare const ParameterSlider: React.ForwardRefExoticComponent<ParameterSliderProps & React.RefAttributes<HTMLDivElement>>;
979
+
980
+ declare const Popover: React.FC<PopoverPrimitive.PopoverProps>;
981
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
982
+ declare const PopoverContent: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
983
+
984
+ interface Prayer {
985
+ /** Prayer name in English */
986
+ name: string;
987
+ /** Prayer name in Arabic */
988
+ nameAr: string;
989
+ /** Prayer time (e.g., "04:45 AM" or "04:45") */
990
+ time: string;
991
+ }
992
+ interface PrayerTimesProps extends React.HTMLAttributes<HTMLDivElement> {
993
+ /** Array of prayer times */
994
+ prayers: Prayer[];
995
+ /** Name of the next prayer to highlight */
996
+ nextPrayer?: string;
997
+ /** Countdown to next prayer (e.g., "2:30:15") */
998
+ countdown?: string;
999
+ /** Location name in English */
1000
+ location?: string;
1001
+ /** Location name in Arabic */
1002
+ locationAr?: string;
1003
+ /** Date in English */
1004
+ date?: string;
1005
+ /** Date in Arabic */
1006
+ dateAr?: string;
1007
+ /** Visual variant */
1008
+ variant?: 'default' | 'compact' | 'detailed' | 'notification';
1009
+ /** Callback when notification is dismissed (notification variant only) */
1010
+ onDismiss?: () => void;
1011
+ /** Show play adhan button (notification variant only) */
1012
+ showPlayAdhan?: boolean;
1013
+ /** Callback when play adhan is clicked (notification variant only) */
1014
+ onPlayAdhan?: () => void;
1015
+ }
1016
+ declare const PrayerTimes: React.ForwardRefExoticComponent<PrayerTimesProps & React.RefAttributes<HTMLDivElement>>;
1017
+
1018
+ interface ProgressProps extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {
1019
+ indicatorClassName?: string;
1020
+ }
1021
+ declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
1022
+
1023
+ interface PromptInputProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
1024
+ /**
1025
+ * Callback when send button is clicked or Enter is pressed
1026
+ */
1027
+ onSend?: (value: string) => void;
1028
+ /**
1029
+ * Whether the input is in loading state
1030
+ */
1031
+ isLoading?: boolean;
1032
+ /**
1033
+ * Show file attachment button
1034
+ */
1035
+ showAttachment?: boolean;
1036
+ /**
1037
+ * Show voice input button
1038
+ */
1039
+ showVoice?: boolean;
1040
+ /**
1041
+ * Show character/token counter
1042
+ */
1043
+ showCounter?: boolean;
1044
+ /**
1045
+ * Maximum characters allowed
1046
+ */
1047
+ maxLength?: number;
1048
+ /**
1049
+ * Callback when attachment button is clicked
1050
+ */
1051
+ onAttachment?: () => void;
1052
+ /**
1053
+ * Callback when voice button is clicked
1054
+ */
1055
+ onVoice?: () => void;
1056
+ /**
1057
+ * Whether text direction is RTL
1058
+ */
1059
+ isRTL?: boolean;
1060
+ /**
1061
+ * Placeholder text
1062
+ */
1063
+ placeholder?: string;
1064
+ /**
1065
+ * Placeholder text in Arabic
1066
+ */
1067
+ placeholderAr?: string;
1068
+ }
1069
+ declare const PromptInput: React.ForwardRefExoticComponent<PromptInputProps & React.RefAttributes<HTMLTextAreaElement>>;
1070
+
1071
+ declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1072
+ declare const RadioGroupItem: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
1073
+
1074
+ interface RichTextEditorProps {
1075
+ content?: string;
1076
+ onChange?: (content: string) => void;
1077
+ placeholder?: string;
1078
+ className?: string;
1079
+ editable?: boolean;
1080
+ minHeight?: string;
1081
+ }
1082
+ declare const RichTextEditor: React.ForwardRefExoticComponent<RichTextEditorProps & React.RefAttributes<HTMLDivElement>>;
1083
+
1084
+ declare const ScrollArea: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1085
+ declare const ScrollBar: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1086
+
1087
+ declare const Select: typeof SelectPrimitive.Root;
1088
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
1089
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
1090
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
1091
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1092
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1093
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1094
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1095
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1096
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1097
+
1098
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1099
+
1100
+ declare const Sheet: React.FC<DialogPrimitive.DialogProps>;
1101
+ declare const SheetTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
1102
+ declare const SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
1103
+ declare const SheetPortal: React.FC<DialogPrimitive.DialogPortalProps>;
1104
+ declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1105
+ declare const sheetVariants: (props?: ({
1106
+ side?: "end" | "start" | "top" | "bottom" | null | undefined;
1107
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1108
+ interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
1109
+ }
1110
+ declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
1111
+ declare const SheetHeader: {
1112
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
1113
+ displayName: string;
1114
+ };
1115
+ declare const SheetFooter: {
1116
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
1117
+ displayName: string;
1118
+ };
1119
+ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
1120
+ declare const SheetDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
1121
+
1122
+ /**
1123
+ * Skeleton - Loading placeholder component
1124
+ *
1125
+ * Displays an animated placeholder while content is loading.
1126
+ * Fully RTL-compatible and supports custom dimensions.
1127
+ *
1128
+ * @example
1129
+ * ```tsx
1130
+ * <Skeleton className="h-4 w-full" />
1131
+ * <Skeleton className="h-12 w-12 rounded-full" />
1132
+ * ```
1133
+ */
1134
+ interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
1135
+ }
1136
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
1137
+
1138
+ declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
1139
+
1140
+ interface Step {
1141
+ id: string;
1142
+ title: string;
1143
+ titleAr?: string;
1144
+ description?: string;
1145
+ descriptionAr?: string;
1146
+ optional?: boolean;
1147
+ }
1148
+ interface StepperProps {
1149
+ steps: Step[];
1150
+ currentStep: number;
1151
+ onStepClick?: (step: number) => void;
1152
+ orientation?: 'horizontal' | 'vertical';
1153
+ variant?: 'default' | 'simple' | 'circles';
1154
+ allowSkip?: boolean;
1155
+ className?: string;
1156
+ }
1157
+ declare function Stepper({ steps, currentStep, onStepClick, orientation, variant, allowSkip, className, }: StepperProps): React.JSX.Element;
1158
+
1159
+ interface StreamingTextProps extends React.HTMLAttributes<HTMLSpanElement> {
1160
+ /**
1161
+ * The full text to display
1162
+ */
1163
+ text: string;
1164
+ /**
1165
+ * Speed of typing in milliseconds per character
1166
+ */
1167
+ speed?: number;
1168
+ /**
1169
+ * Whether to show blinking cursor
1170
+ */
1171
+ showCursor?: boolean;
1172
+ /**
1173
+ * Whether streaming is enabled
1174
+ */
1175
+ isStreaming?: boolean;
1176
+ /**
1177
+ * Callback when streaming completes
1178
+ */
1179
+ onComplete?: () => void;
1180
+ /**
1181
+ * Start streaming immediately
1182
+ */
1183
+ autoStart?: boolean;
1184
+ }
1185
+ declare const StreamingText: React.ForwardRefExoticComponent<StreamingTextProps & React.RefAttributes<HTMLSpanElement>>;
1186
+
1187
+ declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
1188
+
1189
+ declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
1190
+ declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
1191
+ declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
1192
+ declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
1193
+ declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
1194
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
1195
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
1196
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
1197
+
1198
+ declare const Tabs: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1199
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1200
+ declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
1201
+ declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1202
+
1203
+ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
1204
+ }
1205
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
1206
+
1207
+ declare const thinkingIndicatorVariants: (props?: ({
1208
+ variant?: "dots" | "pulse" | "wave" | "typing" | null | undefined;
1209
+ size?: "default" | "sm" | "lg" | null | undefined;
1210
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1211
+ interface ThinkingIndicatorProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof thinkingIndicatorVariants> {
1212
+ /**
1213
+ * Custom message to display (overrides default)
1214
+ */
1215
+ message?: string;
1216
+ }
1217
+ declare const ThinkingIndicator: React.ForwardRefExoticComponent<ThinkingIndicatorProps & React.RefAttributes<HTMLDivElement>>;
1218
+
1219
+ interface Time {
1220
+ hours: number;
1221
+ minutes: number;
1222
+ }
1223
+ interface TimePickerProps {
1224
+ time?: Time;
1225
+ onTimeChange?: (time: Time | undefined) => void;
1226
+ placeholder?: string;
1227
+ placeholderAr?: string;
1228
+ disabled?: boolean;
1229
+ className?: string;
1230
+ /**
1231
+ * 12-hour or 24-hour format
1232
+ */
1233
+ format?: '12h' | '24h';
1234
+ /**
1235
+ * Minutes step interval
1236
+ */
1237
+ minuteStep?: number;
1238
+ /**
1239
+ * Format function for displaying the selected time
1240
+ */
1241
+ formatTime?: (time: Time | undefined, format: '12h' | '24h', locale: 'en' | 'ar') => string;
1242
+ }
1243
+ declare function TimePicker({ time, onTimeChange, placeholder, placeholderAr, disabled, className, format, minuteStep, formatTime, }: TimePickerProps): React.JSX.Element;
1244
+
1245
+ declare const ToastProvider: React.FC<ToastPrimitives.ToastProviderProps>;
1246
+ declare const ToastViewport: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastViewportProps & React.RefAttributes<HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
1247
+ declare const Toast: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastProps & React.RefAttributes<HTMLLIElement>, "ref"> & VariantProps<(props?: ({
1248
+ variant?: "default" | "destructive" | "success" | null | undefined;
1249
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLLIElement>>;
1250
+ declare const ToastAction: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
1251
+ declare const ToastClose: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
1252
+ declare const ToastTitle: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastTitleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1253
+ declare const ToastDescription: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastDescriptionProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1254
+
1255
+ declare function Toaster(): React.JSX.Element;
1256
+
1257
+ declare const tokenCounterVariants: (props?: ({
1258
+ variant?: "default" | "compact" | null | undefined;
1259
+ status?: "warning" | "safe" | "danger" | null | undefined;
1260
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1261
+ interface TokenCounterProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof tokenCounterVariants> {
1262
+ /**
1263
+ * Number of input tokens used
1264
+ */
1265
+ inputTokens: number;
1266
+ /**
1267
+ * Number of output tokens used
1268
+ */
1269
+ outputTokens: number;
1270
+ /**
1271
+ * Maximum token limit for the model
1272
+ */
1273
+ maxTokens?: number;
1274
+ /**
1275
+ * Cost per 1K input tokens (USD)
1276
+ */
1277
+ inputCostPer1K?: number;
1278
+ /**
1279
+ * Cost per 1K output tokens (USD)
1280
+ */
1281
+ outputCostPer1K?: number;
1282
+ /**
1283
+ * Show cost estimation
1284
+ */
1285
+ showCost?: boolean;
1286
+ /**
1287
+ * Show token breakdown
1288
+ */
1289
+ showBreakdown?: boolean;
1290
+ /**
1291
+ * Warning threshold (percentage)
1292
+ */
1293
+ warningThreshold?: number;
1294
+ /**
1295
+ * Danger threshold (percentage)
1296
+ */
1297
+ dangerThreshold?: number;
1298
+ /**
1299
+ * Whether text direction is RTL
1300
+ */
1301
+ isRTL?: boolean;
1302
+ /**
1303
+ * Label for the counter
1304
+ */
1305
+ label?: string;
1306
+ /**
1307
+ * Label in Arabic
1308
+ */
1309
+ labelAr?: string;
1310
+ }
1311
+ declare const TokenCounter: React.ForwardRefExoticComponent<TokenCounterProps & React.RefAttributes<HTMLDivElement>>;
1312
+
1313
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
1314
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
1315
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
1316
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1317
+
1318
+ interface UserMenuProps {
1319
+ user?: {
1320
+ name?: string;
1321
+ email?: string;
1322
+ image?: string;
1323
+ initials?: string;
1324
+ };
1325
+ onProfileClick?: () => void;
1326
+ onSettingsClick?: () => void;
1327
+ onBillingClick?: () => void;
1328
+ onTeamClick?: () => void;
1329
+ onSupportClick?: () => void;
1330
+ onLogout?: () => void;
1331
+ className?: string;
1332
+ align?: 'start' | 'center' | 'end';
1333
+ side?: 'top' | 'right' | 'bottom' | 'left';
1334
+ }
1335
+ declare const UserMenu: React.ForwardRefExoticComponent<UserMenuProps & React.RefAttributes<HTMLButtonElement>>;
1336
+
1337
+ interface WorkflowCanvasProps {
1338
+ /**
1339
+ * Initial nodes for the workflow
1340
+ */
1341
+ initialNodes?: Node[];
1342
+ /**
1343
+ * Initial edges/connections
1344
+ */
1345
+ initialEdges?: Edge[];
1346
+ /**
1347
+ * Custom node types
1348
+ */
1349
+ nodeTypes?: Record<string, React.ComponentType<any>>;
1350
+ /**
1351
+ * Callback when nodes change
1352
+ */
1353
+ onNodesChange?: OnNodesChange;
1354
+ /**
1355
+ * Callback when edges change
1356
+ */
1357
+ onEdgesChange?: OnEdgesChange;
1358
+ /**
1359
+ * Callback when nodes connect
1360
+ */
1361
+ onConnect?: OnConnect;
1362
+ /**
1363
+ * Whether the canvas is read-only
1364
+ */
1365
+ readOnly?: boolean;
1366
+ /**
1367
+ * Show minimap
1368
+ */
1369
+ showMiniMap?: boolean;
1370
+ /**
1371
+ * Show controls (zoom, fit view)
1372
+ */
1373
+ showControls?: boolean;
1374
+ /**
1375
+ * Show background pattern
1376
+ */
1377
+ showBackground?: boolean;
1378
+ /**
1379
+ * Background variant
1380
+ */
1381
+ backgroundVariant?: BackgroundVariant;
1382
+ /**
1383
+ * Whether text direction is RTL
1384
+ */
1385
+ isRTL?: boolean;
1386
+ /**
1387
+ * Additional CSS classes
1388
+ */
1389
+ className?: string;
1390
+ /**
1391
+ * Fit view options
1392
+ */
1393
+ fitViewOptions?: FitViewOptions;
1394
+ /**
1395
+ * Default edge options
1396
+ */
1397
+ defaultEdgeOptions?: DefaultEdgeOptions;
1398
+ }
1399
+ declare function WorkflowCanvas({ initialNodes, initialEdges, nodeTypes, onNodesChange: onNodesChangeProp, onEdgesChange: onEdgesChangeProp, onConnect: onConnectProp, readOnly, showMiniMap, showControls, showBackground, backgroundVariant, isRTL, className, fitViewOptions, defaultEdgeOptions: defaultEdgeOptionsProp, }: WorkflowCanvasProps): React.JSX.Element;
1400
+
1401
+ interface WorkflowNodeData extends Record<string, unknown> {
1402
+ /**
1403
+ * Node label/title
1404
+ */
1405
+ label: string;
1406
+ /**
1407
+ * Node label in Arabic
1408
+ */
1409
+ labelAr?: string;
1410
+ /**
1411
+ * Node description
1412
+ */
1413
+ description?: string;
1414
+ /**
1415
+ * Node description in Arabic
1416
+ */
1417
+ descriptionAr?: string;
1418
+ /**
1419
+ * Node type/category
1420
+ */
1421
+ type?: string;
1422
+ /**
1423
+ * Node type in Arabic
1424
+ */
1425
+ typeAr?: string;
1426
+ /**
1427
+ * Icon component
1428
+ */
1429
+ icon?: LucideIcon;
1430
+ /**
1431
+ * Badge status
1432
+ */
1433
+ status?: 'active' | 'inactive' | 'error' | 'success';
1434
+ /**
1435
+ * Whether text direction is RTL
1436
+ */
1437
+ isRTL?: boolean;
1438
+ /**
1439
+ * Custom content to render
1440
+ */
1441
+ children?: React.ReactNode;
1442
+ }
1443
+ declare function WorkflowNode({ data, selected }: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1444
+
1445
+ declare function TriggerNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1446
+ declare function WebhookTriggerNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1447
+ declare function ScheduleTriggerNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1448
+ declare function ActionNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1449
+ declare function CodeActionNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1450
+ declare function FilterNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1451
+ declare function AINode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1452
+ declare function LLMNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1453
+ declare function EmbeddingNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1454
+ declare function OutputNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1455
+ declare function SaveNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1456
+ declare function NotifyNode(props: NodeProps<Node<WorkflowNodeData>>): React.JSX.Element;
1457
+ declare const workflowNodeTypes: {
1458
+ trigger: typeof TriggerNode;
1459
+ webhook: typeof WebhookTriggerNode;
1460
+ schedule: typeof ScheduleTriggerNode;
1461
+ action: typeof ActionNode;
1462
+ code: typeof CodeActionNode;
1463
+ filter: typeof FilterNode;
1464
+ ai: typeof AINode;
1465
+ llm: typeof LLMNode;
1466
+ embedding: typeof EmbeddingNode;
1467
+ output: typeof OutputNode;
1468
+ save: typeof SaveNode;
1469
+ notify: typeof NotifyNode;
1470
+ };
1471
+
1472
+ interface ZakatAssets {
1473
+ cash: number;
1474
+ gold: number;
1475
+ silver: number;
1476
+ business: number;
1477
+ investments: number;
1478
+ other: number;
1479
+ }
1480
+ interface ZakatCalculatorProps extends React.HTMLAttributes<HTMLDivElement> {
1481
+ /** Current gold price per gram in SAR */
1482
+ goldPricePerGram?: number;
1483
+ /** Current silver price per gram in SAR */
1484
+ silverPricePerGram?: number;
1485
+ /** Use Arabic-Indic numerals */
1486
+ useArabicNumerals?: boolean;
1487
+ /** Locale for formatting */
1488
+ locale?: 'en' | 'ar';
1489
+ /** Callback when calculation updates */
1490
+ onCalculate?: (result: ZakatCalculationResult) => void;
1491
+ /** Initial asset values */
1492
+ defaultValues?: Partial<ZakatAssets>;
1493
+ }
1494
+ interface ZakatCalculationResult {
1495
+ totalWealth: number;
1496
+ nisabThreshold: number;
1497
+ zakatDue: number;
1498
+ isZakatApplicable: boolean;
1499
+ breakdown: ZakatAssets;
1500
+ }
1501
+ declare const ZakatCalculator: React.ForwardRefExoticComponent<ZakatCalculatorProps & React.RefAttributes<HTMLDivElement>>;
1502
+
1503
+ /**
1504
+ * Merge Tailwind classes with proper conflict resolution
1505
+ */
1506
+ declare function cn(...inputs: ClassValue[]): string;
1507
+
1508
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, ArabicNumber, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatMessage, Checkbox, ClientProviders, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ConversationHistory, DashboardShell, DataTable, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FeatureCard, FileUpload, Form, FormDescription, FormField, FormItem, FormLabel, FormMessage, type FormProps, HijriDate, Input, type InputProps, Label, ListingCard, LoadingSpinner, MessageActions, ModelSelector, NotificationCenter, NumberInput, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ParameterSlider, Popover, PopoverContent, PopoverTrigger, PrayerTimes, Progress, PromptInput, RadioGroup, RadioGroupItem, RichTextEditor, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, type Step, Stepper, type StepperProps, StreamingText, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThinkingIndicator, TimePicker, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, TokenCounter, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserMenu, WorkflowCanvas, WorkflowNode, ZakatCalculator, badgeVariants, buttonVariants, cn, useDirection, workflowNodeTypes };