@rufous/ui 0.3.1 → 0.3.7

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/dist/main.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { ReactNode, CSSProperties, InputHTMLAttributes, TextareaHTMLAttributes, ReactElement, ComponentType } from 'react';
3
+ import { ICity, ICountry, IState } from 'country-state-city';
3
4
 
4
5
  declare const APP_THEMES: {
5
6
  default: {
@@ -103,30 +104,47 @@ declare const APP_THEMES: {
103
104
  };
104
105
  };
105
106
 
106
- interface ArchivedIconProps extends React__default.SVGProps<SVGSVGElement> {
107
+ interface MinusIconProps extends React.SVGProps<SVGSVGElement> {
107
108
  color?: string;
109
+ size?: number;
110
+ }
111
+ declare const MinusIcon: React.FC<MinusIconProps>;
112
+
113
+ interface PlusIconProps extends React.SVGProps<SVGSVGElement> {
114
+ color?: string;
115
+ size?: number;
116
+ }
117
+ declare const PlusIcon: React.FC<PlusIconProps>;
118
+
119
+ interface ArchivedIconProps extends React.SVGProps<SVGSVGElement> {
120
+ color?: string;
121
+ size?: number;
108
122
  }
109
- declare const ArchivedIcon: React__default.FC<ArchivedIconProps>;
123
+ declare const ArchivedIcon: React.FC<ArchivedIconProps>;
110
124
 
111
- interface CopyIconProps extends React__default.SVGProps<SVGSVGElement> {
125
+ interface CopyIconProps extends React.SVGProps<SVGSVGElement> {
112
126
  color?: string;
127
+ size?: number;
113
128
  }
114
- declare const CopyIcon: React__default.FC<CopyIconProps>;
129
+ declare const CopyIcon: React.FC<CopyIconProps>;
115
130
 
116
131
  interface EditIconProps extends React__default.SVGProps<SVGSVGElement> {
117
132
  color?: string;
133
+ size?: number;
118
134
  }
119
135
  declare const EditIcon: React__default.FC<EditIconProps>;
120
136
 
121
137
  interface HeplOutlinedIconProps extends React__default.SVGProps<SVGSVGElement> {
122
138
  color?: string;
139
+ size?: number;
123
140
  }
124
141
  declare const HelpOutlinedIcon: React__default.FC<HeplOutlinedIconProps>;
125
142
 
126
- interface HierarchyIconProps extends React__default.SVGProps<SVGSVGElement> {
143
+ interface HierarchyIconProps extends React.SVGProps<SVGSVGElement> {
127
144
  color?: string;
145
+ size?: number;
128
146
  }
129
- declare const HierarchyIcon: React__default.FC<HierarchyIconProps>;
147
+ declare const HierarchyIcon: React.FC<HierarchyIconProps>;
130
148
 
131
149
  interface NineDotMenuIconProps extends React__default.SVGProps<SVGSVGElement> {
132
150
  color?: string;
@@ -138,108 +156,128 @@ interface RufousLauncherIconProps extends React__default.SVGProps<SVGSVGElement>
138
156
  }
139
157
  declare const RufousLauncherIcon: React__default.FC<RufousLauncherIconProps>;
140
158
 
141
- interface UnArchivedIconProps extends React__default.SVGProps<SVGSVGElement> {
159
+ interface UnArchivedIconProps extends React.SVGProps<SVGSVGElement> {
142
160
  color?: string;
161
+ size?: number;
143
162
  }
144
- declare const UnArchivedIcon: React__default.FC<UnArchivedIconProps>;
163
+ declare const UnArchivedIcon: React.FC<UnArchivedIconProps>;
145
164
 
146
- interface WorkItemIconProps extends React__default.SVGProps<SVGSVGElement> {
165
+ interface WorkItemIconProps extends React.SVGProps<SVGSVGElement> {
147
166
  color?: string;
167
+ size?: number;
148
168
  }
149
- declare const WorkItemIcon: React__default.FC<WorkItemIconProps>;
169
+ declare const WorkItemIcon: React.FC<WorkItemIconProps>;
150
170
 
151
- interface DownloadIconProps extends React__default.SVGProps<SVGSVGElement> {
171
+ interface DownloadIconProps extends React.SVGProps<SVGSVGElement> {
152
172
  color?: string;
173
+ size?: number;
153
174
  }
154
- declare const DownloadIcon: React__default.FC<DownloadIconProps>;
175
+ declare const DownloadIcon: React.FC<DownloadIconProps>;
155
176
 
156
177
  interface ActivateUserProps extends React.SVGProps<SVGSVGElement> {
157
178
  color?: string;
179
+ size?: number;
158
180
  }
159
181
  declare const ActivateUserIcon: React.FC<ActivateUserProps>;
160
182
 
161
183
  interface AssignGroupProps extends React.SVGProps<SVGSVGElement> {
162
184
  color?: string;
185
+ size?: number;
163
186
  }
164
187
  declare const AssignGroupIcon: React.FC<AssignGroupProps>;
165
188
 
166
189
  interface DifficultyAllProps extends React.SVGProps<SVGSVGElement> {
167
190
  color?: string;
191
+ size?: number;
168
192
  }
169
193
  declare const DifficultyAllIcon: React.FC<DifficultyAllProps>;
170
194
 
171
195
  interface DifficultyEasyProps extends React.SVGProps<SVGSVGElement> {
172
196
  color?: string;
197
+ size?: number;
173
198
  }
174
199
  declare const DifficultyEasyIcon: React.FC<DifficultyEasyProps>;
175
200
 
176
201
  interface DifficultyHardProps extends React.SVGProps<SVGSVGElement> {
177
202
  color?: string;
203
+ size?: number;
178
204
  }
179
205
  declare const DifficultyHardIcon: React.FC<DifficultyHardProps>;
180
206
 
181
207
  interface DifficultyMediumProps extends React.SVGProps<SVGSVGElement> {
182
208
  color?: string;
209
+ size?: number;
183
210
  }
184
211
  declare const DifficultyMediumIcon: React.FC<DifficultyMediumProps>;
185
212
 
186
213
  interface InactiveGroupProps extends React.SVGProps<SVGSVGElement> {
187
214
  color?: string;
215
+ size?: number;
188
216
  }
189
217
  declare const InactiveGroupIcon: React.FC<InactiveGroupProps>;
190
218
 
191
- interface InvoiceProps extends React.SVGProps<SVGSVGElement> {
219
+ interface InvoiceIconProps extends React.SVGProps<SVGSVGElement> {
192
220
  color?: string;
221
+ size?: number;
193
222
  }
194
- declare const InvoiceIcon: React.FC<InvoiceProps>;
223
+ declare const InvoiceIcon: React.FC<InvoiceIconProps>;
195
224
 
196
- interface LogsProps extends React.SVGProps<SVGSVGElement> {
225
+ interface LogsIconProps extends React.SVGProps<SVGSVGElement> {
197
226
  color?: string;
227
+ size?: number;
198
228
  }
199
- declare const LogsIcon: React.FC<LogsProps>;
229
+ declare const LogsIcon: React.FC<LogsIconProps>;
200
230
 
201
- interface QuestionStatusAllIconProps extends React.SVGProps<SVGSVGElement> {
231
+ interface QuestionStatusAllProps extends React.SVGProps<SVGSVGElement> {
202
232
  color?: string;
233
+ size?: number;
203
234
  }
204
- declare const QuestionStatusAllIcon: React.FC<QuestionStatusAllIconProps>;
235
+ declare const QuestionStatusAllIcon: React.FC<QuestionStatusAllProps>;
205
236
 
206
- interface QuestionStatusPrivateIconProps extends React.SVGProps<SVGSVGElement> {
237
+ interface QuestionStatusPrivateProps extends React.SVGProps<SVGSVGElement> {
207
238
  color?: string;
239
+ size?: number;
208
240
  }
209
- declare const QuestionStatusPrivateIcon: React.FC<QuestionStatusPrivateIconProps>;
241
+ declare const QuestionStatusPrivateIcon: React.FC<QuestionStatusPrivateProps>;
210
242
 
211
- interface QuestionStatusPublicIconProps extends React.SVGProps<SVGSVGElement> {
243
+ interface QuestionStatusPublicProps extends React.SVGProps<SVGSVGElement> {
212
244
  color?: string;
245
+ size?: number;
213
246
  }
214
- declare const QuestionStatusPublicIcon: React.FC<QuestionStatusPublicIconProps>;
247
+ declare const QuestionStatusPublicIcon: React.FC<QuestionStatusPublicProps>;
215
248
 
216
249
  interface QuestionTypeAllIconProps extends React.SVGProps<SVGSVGElement> {
217
250
  color?: string;
251
+ size?: number;
218
252
  }
219
253
  declare const QuestionTypeAllIcon: React.FC<QuestionTypeAllIconProps>;
220
254
 
221
- interface QuestionTypeCodingIconProps extends React.SVGProps<SVGSVGElement> {
255
+ interface QuestionTypeCodingProps extends React.SVGProps<SVGSVGElement> {
222
256
  color?: string;
257
+ size?: number;
223
258
  }
224
- declare const QuestionTypeCodingIcon: React.FC<QuestionTypeCodingIconProps>;
259
+ declare const QuestionTypeCodingIcon: React.FC<QuestionTypeCodingProps>;
225
260
 
226
- interface QuestionTypeDescriptiveIconProps extends React.SVGProps<SVGSVGElement> {
261
+ interface QuestionTypeDescriptiveProps extends React.SVGProps<SVGSVGElement> {
227
262
  color?: string;
263
+ size?: number;
228
264
  }
229
- declare const QuestionTypeDescriptiveIcon: React.FC<QuestionTypeDescriptiveIconProps>;
265
+ declare const QuestionTypeDescriptiveIcon: React.FC<QuestionTypeDescriptiveProps>;
230
266
 
231
267
  interface QuestionTypeMultipleIconProps extends React.SVGProps<SVGSVGElement> {
232
268
  color?: string;
233
269
  }
234
270
  declare const QuestionTypeMultipleIcon: React.FC<QuestionTypeMultipleIconProps>;
235
271
 
236
- interface QuestionTypeSingleIconProps extends React.SVGProps<SVGSVGElement> {
272
+ interface QuestionTypeSingleProps extends React.SVGProps<SVGSVGElement> {
237
273
  color?: string;
274
+ size?: number;
238
275
  }
239
- declare const QuestionTypeSingleIcon: React.FC<QuestionTypeSingleIconProps>;
276
+ declare const QuestionTypeSingleIcon: React.FC<QuestionTypeSingleProps>;
240
277
 
241
278
  interface ResendInviteIconProps extends React.SVGProps<SVGSVGElement> {
242
279
  color?: string;
280
+ size?: number;
243
281
  }
244
282
  declare const ResendInviteIcon: React.FC<ResendInviteIconProps>;
245
283
 
@@ -260,16 +298,19 @@ declare const UnsubscribeIcon: React.FC<UnsubscribeIconProps>;
260
298
 
261
299
  interface UploadIconProps extends React.SVGProps<SVGSVGElement> {
262
300
  color?: string;
301
+ size?: number;
263
302
  }
264
303
  declare const UploadIcon: React.FC<UploadIconProps>;
265
304
 
266
305
  interface ViewIconProps extends React.SVGProps<SVGSVGElement> {
267
306
  color?: string;
307
+ size?: number;
268
308
  }
269
309
  declare const ViewIcon: React.FC<ViewIconProps>;
270
310
 
271
311
  interface UserAssignIconProps extends React.SVGProps<SVGSVGElement> {
272
312
  color?: string;
313
+ size?: number;
273
314
  }
274
315
  declare const UserAssignIcon: React.FC<UserAssignIconProps>;
275
316
 
@@ -280,46 +321,55 @@ declare const RufousBirdIcon: React.FC<RufousBirdIconProps>;
280
321
 
281
322
  interface TickIconProps extends React.SVGProps<SVGSVGElement> {
282
323
  color?: string;
324
+ size?: number;
283
325
  }
284
326
  declare const TickIcon: React.FC<TickIconProps>;
285
327
 
286
328
  interface TimerIconProps extends React.SVGProps<SVGSVGElement> {
287
329
  color?: string;
330
+ size?: number;
288
331
  }
289
332
  declare const TimerIcon: React.FC<TimerIconProps>;
290
333
 
291
334
  interface TrashIconProps extends React.SVGProps<SVGSVGElement> {
292
335
  color?: string;
336
+ size?: number;
293
337
  }
294
338
  declare const TrashIcon: React.FC<TrashIconProps>;
295
339
 
296
- interface EditChatProps extends React.SVGProps<SVGSVGElement> {
340
+ interface EditChatIconProps extends React.SVGProps<SVGSVGElement> {
297
341
  color?: string;
342
+ size?: number;
298
343
  }
299
- declare const EditChatIcon: React.FC<EditChatProps>;
344
+ declare const EditChatIcon: React.FC<EditChatIconProps>;
300
345
 
301
346
  interface SidebarProps extends React.SVGProps<SVGSVGElement> {
302
347
  color?: string;
348
+ size?: number;
303
349
  }
304
350
  declare const SidebarIcon: React.FC<SidebarProps>;
305
351
 
306
- interface NotificationIconProps extends React__default.SVGProps<SVGSVGElement> {
352
+ interface NotificationIconProps extends React.SVGProps<SVGSVGElement> {
307
353
  color?: string;
354
+ size?: number;
308
355
  }
309
- declare const NotificationIcon: React__default.FC<NotificationIconProps>;
356
+ declare const NotificationIcon: React.FC<NotificationIconProps>;
310
357
 
311
- interface RefreshIconProps extends React__default.SVGProps<SVGSVGElement> {
358
+ interface RefreshIconProps extends React.SVGProps<SVGSVGElement> {
312
359
  color?: string;
360
+ size?: number;
313
361
  }
314
- declare const RefreshIcon: React__default.FC<RefreshIconProps>;
362
+ declare const RefreshIcon: React.FC<RefreshIconProps>;
315
363
 
316
364
  interface DollarIconProps extends React.SVGProps<SVGSVGElement> {
317
365
  color?: string;
366
+ size?: number;
318
367
  }
319
368
  declare const DollarIcon: React.FC<DollarIconProps>;
320
369
 
321
370
  interface EngagementIconProps extends React.SVGProps<SVGSVGElement> {
322
371
  color?: string;
372
+ size?: number;
323
373
  }
324
374
  declare const EngagementIcon: React.FC<EngagementIconProps>;
325
375
 
@@ -335,16 +385,19 @@ declare const IndustryIcon: React.FC<IndustryIconProps>;
335
385
 
336
386
  interface MinExperienceIconProps extends React.SVGProps<SVGSVGElement> {
337
387
  color?: string;
388
+ size?: number;
338
389
  }
339
390
  declare const MinExperienceIcon: React.FC<MinExperienceIconProps>;
340
391
 
341
392
  interface ProjectIconProps extends React.SVGProps<SVGSVGElement> {
342
393
  color?: string;
394
+ size?: number;
343
395
  }
344
396
  declare const ProjectIcon: React.FC<ProjectIconProps>;
345
397
 
346
398
  interface RolesIconProps extends React.SVGProps<SVGSVGElement> {
347
399
  color?: string;
400
+ size?: number;
348
401
  }
349
402
  declare const RolesIcon: React.FC<RolesIconProps>;
350
403
 
@@ -355,39 +408,382 @@ declare const RufousAiIcon: React.FC<RufousAiIconProps>;
355
408
 
356
409
  interface CloseProps extends React.SVGProps<SVGSVGElement> {
357
410
  color?: string;
411
+ size?: number;
358
412
  }
359
413
  declare const CloseIcon: React.FC<CloseProps>;
360
414
 
361
- interface LocationPinProps extends React.SVGProps<SVGSVGElement> {
415
+ interface LocationPinIconProps extends React.SVGProps<SVGSVGElement> {
362
416
  color?: string;
417
+ size?: number;
363
418
  }
364
- declare const LocationPinIcon: React.FC<LocationPinProps>;
419
+ declare const LocationPinIcon: React.FC<LocationPinIconProps>;
365
420
 
366
421
  interface DownloadPdfProps extends React.SVGProps<SVGSVGElement> {
367
422
  color?: string;
423
+ size?: number;
368
424
  }
369
425
  declare const DownloadPdfIcon: React.FC<DownloadPdfProps>;
370
426
 
371
427
  interface SoftSkillsIconProps extends React.SVGProps<SVGSVGElement> {
372
428
  color?: string;
429
+ size?: number;
373
430
  }
374
431
  declare const SoftSkillsIcon: React.FC<SoftSkillsIconProps>;
375
432
 
376
433
  interface TechnicalSkillsIconProps extends React.SVGProps<SVGSVGElement> {
377
434
  color?: string;
435
+ size?: number;
378
436
  }
379
437
  declare const TechnicalSkillsIcon: React.FC<TechnicalSkillsIconProps>;
380
438
 
381
439
  interface QualificationsIconProps extends React.SVGProps<SVGSVGElement> {
382
440
  color?: string;
441
+ size?: number;
383
442
  }
384
443
  declare const QualificationsIcon: React.FC<QualificationsIconProps>;
385
444
 
386
445
  interface CameraIconProps extends React.SVGProps<SVGSVGElement> {
387
446
  color?: string;
447
+ size?: number;
388
448
  }
389
449
  declare const CameraIcon: React.FC<CameraIconProps>;
390
450
 
451
+ interface SearchIconProps extends React.SVGProps<SVGSVGElement> {
452
+ color?: string;
453
+ size?: number;
454
+ }
455
+ declare const SearchIcon: React.FC<SearchIconProps>;
456
+
457
+ interface SendIconProps extends React.SVGProps<SVGSVGElement> {
458
+ color?: string;
459
+ size?: number;
460
+ }
461
+ declare const SendIcon: React.FC<SendIconProps>;
462
+
463
+ interface HomeIconProps extends React.SVGProps<SVGSVGElement> {
464
+ color?: string;
465
+ size?: number;
466
+ }
467
+ declare const HomeIcon: React.FC<HomeIconProps>;
468
+
469
+ interface SettingsIconProps extends React.SVGProps<SVGSVGElement> {
470
+ color?: string;
471
+ size?: number;
472
+ }
473
+ declare const SettingsIcon: React.FC<SettingsIconProps>;
474
+
475
+ interface UserIconProps extends React.SVGProps<SVGSVGElement> {
476
+ color?: string;
477
+ size?: number;
478
+ }
479
+ declare const UserIcon: React.FC<UserIconProps>;
480
+
481
+ interface UsersIconProps extends React.SVGProps<SVGSVGElement> {
482
+ color?: string;
483
+ size?: number;
484
+ }
485
+ declare const UsersIcon: React.FC<UsersIconProps>;
486
+
487
+ interface MailIconProps extends React.SVGProps<SVGSVGElement> {
488
+ color?: string;
489
+ size?: number;
490
+ }
491
+ declare const MailIcon: React.FC<MailIconProps>;
492
+
493
+ interface PhoneIconProps extends React.SVGProps<SVGSVGElement> {
494
+ color?: string;
495
+ size?: number;
496
+ }
497
+ declare const PhoneIcon: React.FC<PhoneIconProps>;
498
+
499
+ interface CheckCircleIconProps extends React.SVGProps<SVGSVGElement> {
500
+ color?: string;
501
+ size?: number;
502
+ }
503
+ declare const CheckCircleIcon: React.FC<CheckCircleIconProps>;
504
+
505
+ interface XCircleIconProps extends React.SVGProps<SVGSVGElement> {
506
+ color?: string;
507
+ size?: number;
508
+ }
509
+ declare const XCircleIcon: React.FC<XCircleIconProps>;
510
+
511
+ interface InfoIconProps extends React.SVGProps<SVGSVGElement> {
512
+ color?: string;
513
+ size?: number;
514
+ }
515
+ declare const InfoIcon: React.FC<InfoIconProps>;
516
+
517
+ interface AlertTriangleIconProps extends React.SVGProps<SVGSVGElement> {
518
+ color?: string;
519
+ size?: number;
520
+ }
521
+ declare const AlertTriangleIcon: React.FC<AlertTriangleIconProps>;
522
+
523
+ interface ArrowLeftIconProps extends React.SVGProps<SVGSVGElement> {
524
+ color?: string;
525
+ size?: number;
526
+ }
527
+ declare const ArrowLeftIcon: React.FC<ArrowLeftIconProps>;
528
+
529
+ interface ArrowRightIconProps extends React.SVGProps<SVGSVGElement> {
530
+ color?: string;
531
+ size?: number;
532
+ }
533
+ declare const ArrowRightIcon: React.FC<ArrowRightIconProps>;
534
+
535
+ interface ArrowUpIconProps extends React.SVGProps<SVGSVGElement> {
536
+ color?: string;
537
+ size?: number;
538
+ }
539
+ declare const ArrowUpIcon: React.FC<ArrowUpIconProps>;
540
+
541
+ interface ArrowDownIconProps extends React.SVGProps<SVGSVGElement> {
542
+ color?: string;
543
+ size?: number;
544
+ }
545
+ declare const ArrowDownIcon: React.FC<ArrowDownIconProps>;
546
+
547
+ interface ChevronUpIconProps extends React.SVGProps<SVGSVGElement> {
548
+ color?: string;
549
+ size?: number;
550
+ }
551
+ declare const ChevronUpIcon: React.FC<ChevronUpIconProps>;
552
+
553
+ interface ChevronDownIconProps extends React.SVGProps<SVGSVGElement> {
554
+ color?: string;
555
+ size?: number;
556
+ }
557
+ declare const ChevronDownIcon: React.FC<ChevronDownIconProps>;
558
+
559
+ interface ChevronLeftIconProps extends React.SVGProps<SVGSVGElement> {
560
+ color?: string;
561
+ size?: number;
562
+ }
563
+ declare const ChevronLeftIcon: React.FC<ChevronLeftIconProps>;
564
+
565
+ interface ChevronRightIconProps extends React.SVGProps<SVGSVGElement> {
566
+ color?: string;
567
+ size?: number;
568
+ }
569
+ declare const ChevronRightIcon: React.FC<ChevronRightIconProps>;
570
+
571
+ interface FilterIconProps extends React.SVGProps<SVGSVGElement> {
572
+ color?: string;
573
+ size?: number;
574
+ }
575
+ declare const FilterIcon: React.FC<FilterIconProps>;
576
+
577
+ interface GridViewIconProps extends React.SVGProps<SVGSVGElement> {
578
+ color?: string;
579
+ size?: number;
580
+ }
581
+ declare const GridViewIcon: React.FC<GridViewIconProps>;
582
+
583
+ interface ListViewIconProps extends React.SVGProps<SVGSVGElement> {
584
+ color?: string;
585
+ size?: number;
586
+ }
587
+ declare const ListViewIcon: React.FC<ListViewIconProps>;
588
+
589
+ interface StarIconProps extends React.SVGProps<SVGSVGElement> {
590
+ color?: string;
591
+ size?: number;
592
+ }
593
+ declare const StarIcon: React.FC<StarIconProps>;
594
+
595
+ interface HeartIconProps extends React.SVGProps<SVGSVGElement> {
596
+ color?: string;
597
+ size?: number;
598
+ }
599
+ declare const HeartIcon: React.FC<HeartIconProps>;
600
+
601
+ interface ShareIconProps extends React.SVGProps<SVGSVGElement> {
602
+ color?: string;
603
+ size?: number;
604
+ }
605
+ declare const ShareIcon: React.FC<ShareIconProps>;
606
+
607
+ interface LockIconProps extends React.SVGProps<SVGSVGElement> {
608
+ color?: string;
609
+ size?: number;
610
+ }
611
+ declare const LockIcon: React.FC<LockIconProps>;
612
+
613
+ interface UnlockIconProps extends React.SVGProps<SVGSVGElement> {
614
+ color?: string;
615
+ size?: number;
616
+ }
617
+ declare const UnlockIcon: React.FC<UnlockIconProps>;
618
+
619
+ interface EyeOffIconProps extends React.SVGProps<SVGSVGElement> {
620
+ color?: string;
621
+ size?: number;
622
+ }
623
+ declare const EyeOffIcon: React.FC<EyeOffIconProps>;
624
+
625
+ interface MenuIconProps extends React.SVGProps<SVGSVGElement> {
626
+ color?: string;
627
+ size?: number;
628
+ }
629
+ declare const MenuIcon: React.FC<MenuIconProps>;
630
+
631
+ interface MoreHorizontalIconProps extends React.SVGProps<SVGSVGElement> {
632
+ color?: string;
633
+ size?: number;
634
+ }
635
+ declare const MoreHorizontalIcon: React.FC<MoreHorizontalIconProps>;
636
+
637
+ interface MoreVerticalIconProps extends React.SVGProps<SVGSVGElement> {
638
+ color?: string;
639
+ size?: number;
640
+ }
641
+ declare const MoreVerticalIcon: React.FC<MoreVerticalIconProps>;
642
+
643
+ interface ExternalLinkIconProps extends React.SVGProps<SVGSVGElement> {
644
+ color?: string;
645
+ size?: number;
646
+ }
647
+ declare const ExternalLinkIcon: React.FC<ExternalLinkIconProps>;
648
+
649
+ interface SaveIconProps extends React.SVGProps<SVGSVGElement> {
650
+ color?: string;
651
+ size?: number;
652
+ }
653
+ declare const SaveIcon: React.FC<SaveIconProps>;
654
+
655
+ interface BookmarkIconProps extends React.SVGProps<SVGSVGElement> {
656
+ color?: string;
657
+ size?: number;
658
+ }
659
+ declare const BookmarkIcon: React.FC<BookmarkIconProps>;
660
+
661
+ interface GlobeIconProps extends React.SVGProps<SVGSVGElement> {
662
+ color?: string;
663
+ size?: number;
664
+ }
665
+ declare const GlobeIcon: React.FC<GlobeIconProps>;
666
+
667
+ interface SunIconProps extends React.SVGProps<SVGSVGElement> {
668
+ color?: string;
669
+ size?: number;
670
+ }
671
+ declare const SunIcon: React.FC<SunIconProps>;
672
+
673
+ interface MoonIconProps extends React.SVGProps<SVGSVGElement> {
674
+ color?: string;
675
+ size?: number;
676
+ }
677
+ declare const MoonIcon: React.FC<MoonIconProps>;
678
+
679
+ interface TagIconProps extends React.SVGProps<SVGSVGElement> {
680
+ color?: string;
681
+ size?: number;
682
+ }
683
+ declare const TagIcon: React.FC<TagIconProps>;
684
+
685
+ interface FlagIconProps extends React.SVGProps<SVGSVGElement> {
686
+ color?: string;
687
+ size?: number;
688
+ }
689
+ declare const FlagIcon: React.FC<FlagIconProps>;
690
+
691
+ interface ClipboardIconProps extends React.SVGProps<SVGSVGElement> {
692
+ color?: string;
693
+ size?: number;
694
+ }
695
+ declare const ClipboardIcon: React.FC<ClipboardIconProps>;
696
+
697
+ interface PaperclipIconProps extends React.SVGProps<SVGSVGElement> {
698
+ color?: string;
699
+ size?: number;
700
+ }
701
+ declare const PaperclipIcon: React.FC<PaperclipIconProps>;
702
+
703
+ interface LinkIconProps extends React.SVGProps<SVGSVGElement> {
704
+ color?: string;
705
+ size?: number;
706
+ }
707
+ declare const LinkIcon: React.FC<LinkIconProps>;
708
+
709
+ interface PrintIconProps extends React.SVGProps<SVGSVGElement> {
710
+ color?: string;
711
+ size?: number;
712
+ }
713
+ declare const PrintIcon: React.FC<PrintIconProps>;
714
+
715
+ interface ZoomInIconProps extends React.SVGProps<SVGSVGElement> {
716
+ color?: string;
717
+ size?: number;
718
+ }
719
+ declare const ZoomInIcon: React.FC<ZoomInIconProps>;
720
+
721
+ interface ZoomOutIconProps extends React.SVGProps<SVGSVGElement> {
722
+ color?: string;
723
+ size?: number;
724
+ }
725
+ declare const ZoomOutIcon: React.FC<ZoomOutIconProps>;
726
+
727
+ type MaterialIconVariant = "filled" | "outlined";
728
+ interface MaterialIconProps extends Omit<React.SVGProps<SVGSVGElement>, "color"> {
729
+ color?: string;
730
+ size?: number | string;
731
+ variant?: MaterialIconVariant;
732
+ }
733
+
734
+ declare const DragIndicatorIcon: React.FC<MaterialIconProps>;
735
+
736
+ declare const CalendarIcon: React.FC<MaterialIconProps>;
737
+
738
+ declare const TrendingFlatIcon: React.FC<MaterialIconProps>;
739
+
740
+ declare const OpenInFullIcon: React.FC<MaterialIconProps>;
741
+
742
+ declare const PinIcon: React.FC<MaterialIconProps>;
743
+
744
+ declare const TextFieldsIcon: React.FC<MaterialIconProps>;
745
+
746
+ declare const NotesIcon: React.FC<MaterialIconProps>;
747
+
748
+ declare const StarBorderIcon: React.FC<MaterialIconProps>;
749
+
750
+ declare const BusinessIcon: React.FC<MaterialIconProps>;
751
+
752
+ declare const ContactsIcon: React.FC<MaterialIconProps>;
753
+
754
+ declare const FactoryIcon: React.FC<MaterialIconProps>;
755
+
756
+ declare const LocationCityIcon: React.FC<MaterialIconProps>;
757
+
758
+ declare const MemoryIcon: React.FC<MaterialIconProps>;
759
+
760
+ declare const ChatBubbleIcon: React.FC<MaterialIconProps>;
761
+
762
+ declare const AttachFileIcon: React.FC<MaterialIconProps>;
763
+
764
+ declare const PlaceIcon: React.FC<MaterialIconProps>;
765
+
766
+ declare const PersonSearchIcon: React.FC<MaterialIconProps>;
767
+
768
+ declare const CheckBoxIcon: React.FC<MaterialIconProps>;
769
+
770
+ declare const RecommendIcon: React.FC<MaterialIconProps>;
771
+
772
+ declare const TrendingUpIcon: React.FC<MaterialIconProps>;
773
+
774
+ declare const PieChartIcon: React.FC<MaterialIconProps>;
775
+
776
+ declare const BarChartIcon: React.FC<MaterialIconProps>;
777
+
778
+ declare const DonutLargeIcon: React.FC<MaterialIconProps>;
779
+
780
+ declare const ShowChartIcon: React.FC<MaterialIconProps>;
781
+
782
+ declare const LightbulbIcon: React.FC<MaterialIconProps>;
783
+
784
+ declare const AddIcon: React.FC<PlusIconProps>;
785
+ declare const RemoveIcon: React.FC<MinusIconProps>;
786
+
391
787
  type SxProp = {
392
788
  [key: string]: string | number | SxProp | undefined | null;
393
789
  };
@@ -404,6 +800,7 @@ interface SubmitButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement
404
800
  bgGradiant?: boolean;
405
801
  onClick?: (e: React.MouseEvent<HTMLButtonElement>) => Promise<void> | void;
406
802
  onDoubleClick?: (e: React.MouseEvent<HTMLButtonElement>) => Promise<void> | void;
803
+ /** Externally controlled loading state — stacks with internal loading */
407
804
  isLoading?: boolean;
408
805
  sx?: SxProp;
409
806
  }
@@ -432,6 +829,7 @@ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
432
829
  disableElevation?: boolean;
433
830
  disableRipple?: boolean;
434
831
  href?: string;
832
+ /** Controlled external loading state */
435
833
  loading?: boolean;
436
834
  loadingPosition?: "start" | "end" | "center";
437
835
  component?: React.ElementType;
@@ -439,6 +837,16 @@ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
439
837
  className?: string;
440
838
  style?: CSSProperties;
441
839
  sx?: SxProp;
840
+ /**
841
+ * When true, the button automatically enters a loading/disabled state
842
+ * on click and stays there for at least `minLoadingMs` (default 1500 ms).
843
+ * If `onClick` returns a Promise, loading persists until the Promise
844
+ * settles **and** the minimum duration has elapsed — whichever is longer.
845
+ * Prevents accidental double-submissions without any extra state in the parent.
846
+ */
847
+ debounce?: boolean;
848
+ /** Minimum loading duration in ms when `debounce` is enabled. Default: 1500. */
849
+ minLoadingMs?: number;
442
850
  }
443
851
  declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
444
852
 
@@ -457,6 +865,16 @@ interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElem
457
865
  }
458
866
  declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
459
867
 
868
+ interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {
869
+ orientation?: "horizontal" | "vertical";
870
+ variant?: "contained" | "outlined" | "text";
871
+ size?: "small" | "medium" | "large";
872
+ fullWidth?: boolean;
873
+ disabled?: boolean;
874
+ sx?: SxProp;
875
+ }
876
+ declare const ButtonGroup: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;
877
+
460
878
  interface BaseDialogForm {
461
879
  handleSubmit?: (e: React.FormEvent) => void;
462
880
  [key: string]: any;
@@ -474,6 +892,14 @@ interface BaseDialogProps {
474
892
  confirmText?: string;
475
893
  submitText?: string;
476
894
  title?: string;
895
+ /** Hide the default header (title, close button, and divider) entirely */
896
+ hideHeader?: boolean;
897
+ /** Custom header content rendered in place of the default title/close-button header */
898
+ customHeader?: React.ReactNode;
899
+ /** Hide the default footer (action buttons and divider) entirely */
900
+ hideFooter?: boolean;
901
+ /** Custom footer content rendered in place of the default action footer */
902
+ customFooter?: React.ReactNode;
477
903
  isLoading?: boolean;
478
904
  disableConfirmBtn?: boolean;
479
905
  fullScreen?: boolean;
@@ -481,6 +907,8 @@ interface BaseDialogProps {
481
907
  showCloseButton?: boolean;
482
908
  buttonAlign?: "flex-start" | "flex-end" | "center";
483
909
  showCancelButton?: boolean;
910
+ /** Show/hide the confirm (or submit) button. Defaults to true. */
911
+ showConfirmButton?: boolean;
484
912
  formatTitle?: boolean;
485
913
  fullWidth?: boolean;
486
914
  className?: string;
@@ -536,6 +964,8 @@ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'si
536
964
  * All number variants block `e`, `E`, `+`, `-`.
537
965
  */
538
966
  numberVariant?: NumberVariant;
967
+ /** Custom step for number inputs. Overrides the default step derived from numberVariant. */
968
+ step?: number;
539
969
  /** The color of the component */
540
970
  color?: 'primary' | 'secondary' | 'error' | 'success' | 'info' | 'warning';
541
971
  /** If true, the label is displayed in an error state. */
@@ -658,6 +1088,20 @@ interface DateFieldProps {
658
1088
  placeholder?: string;
659
1089
  className?: string;
660
1090
  style?: CSSProperties;
1091
+ /**
1092
+ * Which selection panels are available in the picker.
1093
+ * - `"day"` — day calendar (default)
1094
+ * - `"month"` — month grid
1095
+ * - `"year"` — year grid
1096
+ *
1097
+ * Common patterns:
1098
+ * - `["month", "year"]` — month+year picker, no day calendar
1099
+ * - `["year"]` — year-only picker
1100
+ * - `["month"]` — month picker (‹ › navigate years)
1101
+ *
1102
+ * Defaults to `["day", "month", "year"]` (full picker).
1103
+ */
1104
+ views?: ("day" | "month" | "year")[];
661
1105
  /** Scoped style overrides. Supports nested CSS selectors with & */
662
1106
  sx?: SxProp;
663
1107
  }
@@ -697,8 +1141,8 @@ interface AutocompleteProps<T = string> {
697
1141
  onChange?: (event: React__default.SyntheticEvent, value: T | T[] | null, reason: 'selectOption' | 'removeOption' | 'clear' | 'freeSolo') => void;
698
1142
  /** Controlled text in the input */
699
1143
  inputValue?: string;
700
- /** Called on every keystroke — receives the native event and the new input string */
701
- onInputChange?: (event: React__default.SyntheticEvent | null, value: string) => void;
1144
+ /** Called on every keystroke or when input resets — receives the native event, new input string, and reason */
1145
+ onInputChange?: (event: React__default.SyntheticEvent | null, value: string, reason: 'input' | 'reset' | 'clear') => void;
702
1146
  /** Return the string label for an option */
703
1147
  getOptionLabel?: (option: T) => string;
704
1148
  /** Decide equality between option and value (useful for objects) */
@@ -804,6 +1248,18 @@ interface CircularProgressIconProps {
804
1248
  }
805
1249
  declare const CircularProgressIcon: React.FC<CircularProgressIconProps>;
806
1250
 
1251
+ type LinearProgressVariant = "determinate" | "indeterminate" | "buffer" | "query";
1252
+ interface LinearProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "color"> {
1253
+ variant?: LinearProgressVariant;
1254
+ value?: number;
1255
+ valueBuffer?: number;
1256
+ color?: string;
1257
+ trackColor?: string;
1258
+ thickness?: number;
1259
+ sx?: SxProp;
1260
+ }
1261
+ declare const LinearProgress: React.ForwardRefExoticComponent<LinearProgressProps & React.RefAttributes<HTMLDivElement>>;
1262
+
807
1263
  interface RufousLogoLoaderProps {
808
1264
  /** Width of the loader in pixels — height is proportioned automatically */
809
1265
  size?: number;
@@ -819,6 +1275,11 @@ interface Column<T> {
819
1275
  header?: string;
820
1276
  headerName?: string;
821
1277
  sortable?: boolean;
1278
+ /**
1279
+ * Seed the initial sort from this column. If multiple columns set it, the
1280
+ * first one wins. Ignored when `initialState.sorting.sortModel` is provided.
1281
+ */
1282
+ defaultSort?: 'asc' | 'desc';
822
1283
  filterable?: boolean;
823
1284
  render?: (value: any, item: T) => React__default.ReactNode;
824
1285
  renderCell?: (params: {
@@ -836,6 +1297,12 @@ interface Column<T> {
836
1297
  row: T;
837
1298
  field: string;
838
1299
  }) => string;
1300
+ /**
1301
+ * Override the value written to CSV export for this column.
1302
+ * Receives the raw field value and the full row item.
1303
+ * Takes precedence over valueGetter / valueFormatter for export purposes.
1304
+ */
1305
+ exportValue?: (value: any, item: T) => string;
839
1306
  width?: string | number;
840
1307
  minWidth?: string | number;
841
1308
  maxWidth?: string | number;
@@ -844,6 +1311,41 @@ interface Column<T> {
844
1311
  hidden?: boolean;
845
1312
  type?: 'string' | 'number' | 'date' | 'boolean' | 'actions' | 'status';
846
1313
  statusOptions?: string[];
1314
+ /**
1315
+ * Custom operator list for this column in the advanced filter panel,
1316
+ * overriding the type-derived defaults. Each item is { value, label }.
1317
+ * The first item is used as the default operator when the column is chosen.
1318
+ */
1319
+ filterOperators?: {
1320
+ value: string;
1321
+ label: string;
1322
+ }[];
1323
+ /**
1324
+ * Render a fully custom value editor for this column in the advanced filter
1325
+ * panel — e.g. a status dropdown with colored options while the cell itself
1326
+ * renders something else (stars, chips, …). Overrides the default
1327
+ * text/number/date/status input. Not shown for the "is empty" / "is not
1328
+ * empty" operators.
1329
+ */
1330
+ renderFilterInput?: (params: {
1331
+ value: string;
1332
+ onChange: (value: string) => void;
1333
+ operator: string;
1334
+ column: Column<T>;
1335
+ }) => React__default.ReactNode;
1336
+ /**
1337
+ * Custom matching logic for this column's advanced filter. When provided it
1338
+ * fully controls whether a row passes the filter, so you can pair it with
1339
+ * custom operators / a custom input. `cellValue` is the resolved display
1340
+ * value (after valueGetter → valueFormatter).
1341
+ */
1342
+ filterMatcher?: (params: {
1343
+ value: string;
1344
+ operator: string;
1345
+ row: T;
1346
+ field: string;
1347
+ cellValue: string;
1348
+ }) => boolean;
847
1349
  editable?: boolean;
848
1350
  onEnter?: (params: {
849
1351
  value: any;
@@ -857,9 +1359,79 @@ interface Column<T> {
857
1359
  }) => void;
858
1360
  headerClassName?: string;
859
1361
  cellClassName?: string;
1362
+ /**
1363
+ * When true, the body cell renders with no padding so the renderer can use
1364
+ * the full column width (e.g. for clickable rows, full-bleed media, status
1365
+ * bars). Header padding is unaffected.
1366
+ */
1367
+ disablePadding?: boolean;
860
1368
  hideable?: boolean;
861
1369
  disableColumnMenu?: boolean;
862
1370
  isExportable?: boolean;
1371
+ /**
1372
+ * When false, this column cannot be used as a grouping criterion via the
1373
+ * column menu. Defaults to true.
1374
+ */
1375
+ groupable?: boolean;
1376
+ /**
1377
+ * Override the value used for grouping. Return a string/number so rows
1378
+ * with the same derived value land in the same group. Falls back to
1379
+ * valueGetter, then the raw field value.
1380
+ */
1381
+ groupingValueGetter?: (value: any, row: T) => string | number | null | undefined;
1382
+ }
1383
+ interface FilterState {
1384
+ column: string;
1385
+ operator: string;
1386
+ value: string;
1387
+ logic: 'AND' | 'OR';
1388
+ }
1389
+ /** A single sort rule. The grid applies single-column sort, so only the first item is used. */
1390
+ interface SortModelItem {
1391
+ field: string;
1392
+ sort: 'asc' | 'desc';
1393
+ }
1394
+ type SortModel = SortModelItem[];
1395
+ /** Maps a column field to its visibility. `false` = hidden, `true`/absent = visible. */
1396
+ type ColumnVisibilityModel = Record<string, boolean>;
1397
+ /** Parameters passed to `getRowClassName`. */
1398
+ interface RowClassNameParams<T> {
1399
+ id: string | number;
1400
+ row: T;
1401
+ /** Zero-based index of the row within the current page. */
1402
+ rowIndex: number;
1403
+ }
1404
+ /** Seed the grid's initial (uncontrolled) sort and column pinning. */
1405
+ interface GridInitialState {
1406
+ sorting?: {
1407
+ sortModel?: SortModel;
1408
+ };
1409
+ pinnedColumns?: {
1410
+ left?: string[];
1411
+ right?: string[];
1412
+ };
1413
+ }
1414
+ /**
1415
+ * Imperative handle exposed via `apiRef` / `getApiRef`. Lets a parent drive the
1416
+ * grid without lifting all state up (mirrors the subset of MUI's apiRef we use).
1417
+ */
1418
+ interface DataGridApi<T> {
1419
+ /** Replace the sort model. Only the first item is applied (single-column sort). */
1420
+ setSortModel: (model: SortModel) => void;
1421
+ getSortModel: () => SortModel;
1422
+ /** Replace the advanced filter model. */
1423
+ setFilterModel: (filters: FilterState[]) => void;
1424
+ getFilterModel: () => FilterState[];
1425
+ /** Open the advanced filter modal. */
1426
+ showFilterPanel: () => void;
1427
+ /** Set which columns are visible. */
1428
+ setColumnVisibilityModel: (model: ColumnVisibilityModel) => void;
1429
+ /** The current filtered + sorted rows in display order (across all pages). */
1430
+ getSortedRows: () => T[];
1431
+ /** The ids of the currently selected rows. */
1432
+ getSelectedRows: () => (string | number)[];
1433
+ /** Trigger CSV export (identical to the toolbar Export button). */
1434
+ exportDataAsCsv: () => void;
863
1435
  }
864
1436
  interface Action<T> {
865
1437
  label: string;
@@ -871,18 +1443,89 @@ interface Action<T> {
871
1443
  interface DataGridToolbarSlot {
872
1444
  content: React__default.ReactNode;
873
1445
  align?: 'left' | 'center' | 'right';
1446
+ /**
1447
+ * Where to inject the slot inside the toolbar action row.
1448
+ * - `'before-search'` — left of the search input
1449
+ * - `'after-search'` — right of search, left of Filter / Columns / Export
1450
+ * - `'after-actions'` — rightmost position, after Export button (default)
1451
+ */
1452
+ position?: 'before-search' | 'after-search' | 'after-actions';
1453
+ }
1454
+ /**
1455
+ * Granular visibility control for the built-in toolbar.
1456
+ * Each flag hides the corresponding built-in element.
1457
+ */
1458
+ interface ToolbarOptions {
1459
+ /** Hide the global search input. */
1460
+ hideSearch?: boolean;
1461
+ /** Hide the advanced filter button. */
1462
+ hideFilter?: boolean;
1463
+ /** Hide the "Manage Columns" button. */
1464
+ hideColumns?: boolean;
1465
+ /** Hide the "Export CSV" button in the top toolbar. */
1466
+ hideExport?: boolean;
1467
+ /** Hide the export icon button in the bottom pagination footer. */
1468
+ hideBottomExport?: boolean;
1469
+ /** Hide the title text on the left side. */
1470
+ hideTitle?: boolean;
1471
+ /** Hide the record count below the title. */
1472
+ hideRecordCount?: boolean;
1473
+ /** Hide the entire top header bar (title, search, filter, columns, export). */
1474
+ hideHeader?: boolean;
1475
+ /** Hide the pagination footer bar entirely. */
1476
+ hideFooter?: boolean;
874
1477
  }
875
1478
  interface PaginationModel {
876
1479
  /** 0-indexed current page */
877
1480
  page: number;
878
1481
  pageSize: number;
879
1482
  }
1483
+ /** Shape of a single group node, passed to isGroupExpandedByDefault. */
1484
+ interface GroupNode {
1485
+ /** Unique ID for this group, built from its field+key ancestry path. */
1486
+ id: string;
1487
+ /** The column field this group is keyed by. */
1488
+ field: string;
1489
+ /** The group value (display string). */
1490
+ key: string;
1491
+ /** Nesting depth: 0 = top-level group. */
1492
+ depth: number;
1493
+ /** Total leaf (data) row count under this group. */
1494
+ count: number;
1495
+ }
1496
+ /** Customise the auto-generated grouping column. */
1497
+ interface GroupingColDef {
1498
+ /** Override the column header text. */
1499
+ headerName?: string;
1500
+ /** Override the column width (px). Defaults to 200. */
1501
+ width?: number;
1502
+ /** Hide the descendant row count shown in parentheses. */
1503
+ hideDescendantCount?: boolean;
1504
+ /**
1505
+ * When set, leaf cells in the grouping column display the value of this
1506
+ * column field instead of being blank.
1507
+ */
1508
+ leafField?: string;
1509
+ /** Custom cell renderer for group header cells. */
1510
+ renderCell?: (params: {
1511
+ groupKey: string;
1512
+ field: string;
1513
+ depth: number;
1514
+ leafCount: number;
1515
+ }) => React__default.ReactNode;
1516
+ }
880
1517
  interface DataGridProps<T> {
881
1518
  columns: Column<T>[];
882
1519
  data: T[];
883
1520
  actions?: Action<T>[] | ((item: T) => Action<T>[]);
884
- /** Show a loading overlay over the table body */
1521
+ /** Show a loading indicator over the table body */
885
1522
  loading?: boolean;
1523
+ /**
1524
+ * How the loading state is rendered while `loading` is true.
1525
+ * - `'circular'` (default) — a centered spinner overlay.
1526
+ * - `'skeleton'` — shimmering placeholder rows in the table body.
1527
+ */
1528
+ loaderType?: 'circular' | 'skeleton';
886
1529
  /** Show the pagination bar. Defaults to true. */
887
1530
  pagination?: boolean;
888
1531
  /**
@@ -915,20 +1558,165 @@ interface DataGridProps<T> {
915
1558
  value: any;
916
1559
  }) => void;
917
1560
  /** Extra buttons/components rendered beside the Export button in the header row */
918
- headerActions?: DataGridToolbarSlot;
1561
+ /** One slot or an array of slots — each can have its own `position`.
1562
+ * This lets you place a select before the search AND an Add button after
1563
+ * Export in a single prop:
1564
+ * ```
1565
+ * headerActions={[
1566
+ * { position: 'before-search', content: <select className="dg-toolbar-select">…</select> },
1567
+ * { position: 'after-actions', content: <button>+ Add</button> },
1568
+ * ]}
1569
+ * ``` */
1570
+ headerActions?: DataGridToolbarSlot | DataGridToolbarSlot[];
919
1571
  /** Extra content rendered in a second row below the header */
920
1572
  toolbarContent?: DataGridToolbarSlot;
1573
+ /**
1574
+ * Limit global search to these column field names.
1575
+ * When omitted, all visible columns are searched.
1576
+ */
1577
+ searchableColumns?: string[];
1578
+ /**
1579
+ * Called when the search query finds no local results.
1580
+ * Use this to trigger a server-side search.
1581
+ */
1582
+ onSearchChange?: (query: string) => void;
1583
+ /** Called whenever the applied advanced filters change. */
1584
+ onFiltersChange?: (filters: FilterState[]) => void;
1585
+ /**
1586
+ * Seed the advanced filter panel with pre-set filters on mount.
1587
+ * These are used as the initial state; the user can still modify them.
1588
+ */
1589
+ initialFilters?: FilterState[];
1590
+ /**
1591
+ * Granular show/hide control for each built-in toolbar element.
1592
+ * Ignored when `customToolbar` is provided.
1593
+ */
1594
+ toolbarOptions?: ToolbarOptions;
1595
+ /**
1596
+ * Fully custom toolbar node. When provided, replaces the built-in
1597
+ * header action bar (search, filter, columns, export) entirely.
1598
+ * The title/record-count block on the left is still controlled by
1599
+ * `toolbarOptions.hideTitle` / `toolbarOptions.hideRecordCount`.
1600
+ */
1601
+ customToolbar?: React__default.ReactNode;
1602
+ /**
1603
+ * Fully custom footer node. When provided, replaces the built-in
1604
+ * pagination bar entirely. Use `toolbarOptions.hideFooter` to hide
1605
+ * the footer without replacing it.
1606
+ */
1607
+ customFooter?: React__default.ReactNode;
1608
+ /** Hide the "Export CSV" button in the header toolbar. @deprecated Use toolbarOptions.hideExport instead. */
1609
+ hideTopExport?: boolean;
1610
+ /**
1611
+ * Controlled grouping model — an ordered array of column field names to
1612
+ * group by. Provide together with onRowGroupingModelChange.
1613
+ */
1614
+ rowGroupingModel?: string[];
1615
+ /**
1616
+ * Initial grouping model for uncontrolled mode.
1617
+ * Ignored if rowGroupingModel is provided.
1618
+ */
1619
+ defaultRowGroupingModel?: string[];
1620
+ /** Called when the user adds or removes a grouping criterion via the UI. */
1621
+ onRowGroupingModelChange?: (model: string[]) => void;
1622
+ /**
1623
+ * 'single' (default) — all grouped columns share one auto-generated column.
1624
+ * 'multiple' — each criterion gets its own dedicated column.
1625
+ */
1626
+ rowGroupingColumnMode?: 'single' | 'multiple';
1627
+ /**
1628
+ * Customise the auto-generated grouping column.
1629
+ * Pass a callback `(field: string) => GroupingColDef` for per-field
1630
+ * overrides when rowGroupingColumnMode='multiple'.
1631
+ */
1632
+ groupingColDef?: GroupingColDef | ((field: string) => GroupingColDef);
1633
+ /**
1634
+ * Depth to which groups are expanded on initial render (and whenever the
1635
+ * grouping model changes). 0 = all collapsed (default), -1 = all expanded.
1636
+ */
1637
+ defaultGroupingExpansionDepth?: number;
1638
+ /**
1639
+ * Return true for a group that should be expanded on initial render.
1640
+ * Takes precedence over defaultGroupingExpansionDepth.
1641
+ */
1642
+ isGroupExpandedByDefault?: (group: GroupNode) => boolean;
1643
+ /**
1644
+ * Disables the "Group by / Ungroup" column menu items and the grouping
1645
+ * chips bar. If a rowGroupingModel is also provided the grid renders in
1646
+ * read-only grouped mode.
1647
+ */
1648
+ disableRowGrouping?: boolean;
1649
+ /**
1650
+ * Enable tree-data mode. Each row in `data` is a top-level node;
1651
+ * children are retrieved via `getChildRows` (or the row's `children`
1652
+ * field by default). Parent rows render all their own column values
1653
+ * plus a toggle button — unlike field grouping which generates a
1654
+ * separate header row.
1655
+ */
1656
+ treeData?: boolean;
1657
+ /**
1658
+ * Return the child rows for a given parent row.
1659
+ * Defaults to `(row) => (row as any).children ?? null`.
1660
+ */
1661
+ getChildRows?: <T>(row: T) => T[] | null | undefined;
1662
+ /** A ref that the grid populates with its imperative API handle. */
1663
+ apiRef?: React__default.MutableRefObject<DataGridApi<T> | null>;
1664
+ /** Callback invoked once with the imperative API handle on mount. */
1665
+ getApiRef?: (api: DataGridApi<T>) => void;
1666
+ /**
1667
+ * Controlled column visibility. Maps field → boolean (`false` hides the
1668
+ * column). When provided, this takes precedence over each column's `hidden`.
1669
+ */
1670
+ columnVisibilityModel?: ColumnVisibilityModel;
1671
+ /** Called whenever the user shows/hides columns via the UI. */
1672
+ onColumnVisibilityModelChange?: (model: ColumnVisibilityModel) => void;
1673
+ /**
1674
+ * Seed the initial sort and column pinning. Applied on mount only; the user
1675
+ * can change both afterwards. Use `onSortModelChange` to persist sort.
1676
+ */
1677
+ initialState?: GridInitialState;
1678
+ /** Called whenever the sort column or direction changes. */
1679
+ onSortModelChange?: (model: SortModel) => void;
1680
+ /** Return a CSS class string applied to a data row's `<tr>`. */
1681
+ getRowClassName?: (params: RowClassNameParams<T>) => string;
1682
+ /** Called on a single click anywhere in a data row. */
1683
+ onRowClick?: (params: {
1684
+ row: T;
1685
+ id: string | number;
1686
+ }) => void;
1687
+ /** Called on a single click on a data cell. */
1688
+ onCellClick?: (params: {
1689
+ row: T;
1690
+ field: string;
1691
+ value: any;
1692
+ }) => void;
1693
+ /** Render a leading checkbox column for row selection. */
1694
+ checkboxSelection?: boolean;
1695
+ /** Controlled selection — the ids of selected rows. */
1696
+ rowSelectionModel?: (string | number)[];
1697
+ /** Called whenever the set of selected rows changes. */
1698
+ onRowSelectionModelChange?: (model: (string | number)[]) => void;
921
1699
  }
922
1700
 
923
1701
  declare function DataGrid<T extends {
924
1702
  id: string | number;
925
- }>({ columns: initialColumnsProp, data, actions, loading, pagination, paginationMode, rowCount, paginationModel, onPaginationModelChange, pageSize: initialPageSize, pageSizeOptions, title, className, sx, onRowDoubleClick, onCellDoubleClick, headerActions, toolbarContent, }: DataGridProps<T>): React__default.JSX.Element;
1703
+ }>({ columns: initialColumnsProp, data, actions, loading, loaderType, pagination, paginationMode, rowCount, paginationModel, onPaginationModelChange, pageSize: initialPageSize, pageSizeOptions, title, className, sx, onRowDoubleClick, onCellDoubleClick, headerActions, toolbarContent, searchableColumns, onSearchChange, onFiltersChange, initialFilters, toolbarOptions, customToolbar, customFooter, hideTopExport, rowGroupingModel, defaultRowGroupingModel, onRowGroupingModelChange, rowGroupingColumnMode, groupingColDef, defaultGroupingExpansionDepth, isGroupExpandedByDefault, disableRowGrouping, treeData, getChildRows, apiRef, getApiRef, columnVisibilityModel, onColumnVisibilityModelChange, initialState, onSortModelChange, getRowClassName, onRowClick, onCellClick, checkboxSelection, rowSelectionModel, onRowSelectionModelChange, }: DataGridProps<T>): React__default.JSX.Element;
926
1704
 
927
1705
  type SelectOption = {
928
1706
  value: string | number;
929
1707
  label: string;
930
1708
  disabled?: boolean;
931
1709
  group?: string;
1710
+ /**
1711
+ * Optional icon rendered to the left of the label in both the dropdown and the trigger.
1712
+ * Pass a React component (e.g. a Lucide icon) **or** an image URL string.
1713
+ * Max size is capped to 18 × 18 px via CSS.
1714
+ */
1715
+ icon?: React__default.ComponentType<{
1716
+ size?: number;
1717
+ className?: string;
1718
+ style?: React__default.CSSProperties;
1719
+ }> | string;
932
1720
  };
933
1721
  interface SelectProps {
934
1722
  options: SelectOption[] | string[];
@@ -1020,7 +1808,14 @@ interface RadioGroupProps {
1020
1808
  style?: CSSProperties;
1021
1809
  sx?: SxProp;
1022
1810
  }
1023
- declare const RadioGroup: React__default.ForwardRefExoticComponent<RadioGroupProps & React__default.RefAttributes<HTMLDivElement>>;
1811
+ declare const RadioGroup: React__default.ForwardRefExoticComponent<RadioGroupProps & React__default.RefAttributes<HTMLDivElement>>;
1812
+
1813
+ interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {
1814
+ row?: boolean;
1815
+ spacing?: number | string;
1816
+ sx?: SxProp;
1817
+ }
1818
+ declare const FormGroup: React.ForwardRefExoticComponent<FormGroupProps & React.RefAttributes<HTMLDivElement>>;
1024
1819
 
1025
1820
  interface RatingProps {
1026
1821
  value?: number | null;
@@ -1177,10 +1972,116 @@ interface ListSubheaderProps {
1177
1972
  }
1178
1973
  declare const ListSubheader: React__default.FC<ListSubheaderProps>;
1179
1974
 
1180
- interface TypographyProps {
1975
+ /**
1976
+ * Shared system-prop surface for the four system-prop components. All values
1977
+ * are `string | number`; numeric spacing/border values are resolved through
1978
+ * the sx engine (1 unit = 8px by default).
1979
+ */
1980
+ interface SystemProps {
1981
+ m?: number | string;
1982
+ mt?: number | string;
1983
+ mb?: number | string;
1984
+ ml?: number | string;
1985
+ mr?: number | string;
1986
+ mx?: number | string;
1987
+ my?: number | string;
1988
+ margin?: number | string;
1989
+ marginTop?: number | string;
1990
+ marginBottom?: number | string;
1991
+ marginLeft?: number | string;
1992
+ marginRight?: number | string;
1993
+ marginInline?: number | string;
1994
+ marginInlineStart?: number | string;
1995
+ marginInlineEnd?: number | string;
1996
+ marginBlock?: number | string;
1997
+ marginBlockStart?: number | string;
1998
+ marginBlockEnd?: number | string;
1999
+ p?: number | string;
2000
+ pt?: number | string;
2001
+ pb?: number | string;
2002
+ pl?: number | string;
2003
+ pr?: number | string;
2004
+ px?: number | string;
2005
+ py?: number | string;
2006
+ padding?: number | string;
2007
+ paddingTop?: number | string;
2008
+ paddingBottom?: number | string;
2009
+ paddingLeft?: number | string;
2010
+ paddingRight?: number | string;
2011
+ paddingInline?: number | string;
2012
+ paddingInlineStart?: number | string;
2013
+ paddingInlineEnd?: number | string;
2014
+ paddingBlock?: number | string;
2015
+ paddingBlockStart?: number | string;
2016
+ paddingBlockEnd?: number | string;
2017
+ gap?: number | string;
2018
+ rowGap?: number | string;
2019
+ columnGap?: number | string;
2020
+ border?: number | string;
2021
+ borderTop?: number | string;
2022
+ borderRight?: number | string;
2023
+ borderBottom?: number | string;
2024
+ borderLeft?: number | string;
2025
+ borderRadius?: number | string;
2026
+ borderColor?: string;
2027
+ width?: number | string;
2028
+ height?: number | string;
2029
+ minWidth?: number | string;
2030
+ maxWidth?: number | string;
2031
+ minHeight?: number | string;
2032
+ maxHeight?: number | string;
2033
+ boxSizing?: string;
2034
+ bgcolor?: string;
2035
+ color?: string;
2036
+ boxShadow?: number | string;
2037
+ zIndex?: number | string;
2038
+ typography?: string;
2039
+ display?: string;
2040
+ alignContent?: string;
2041
+ alignItems?: string;
2042
+ alignSelf?: string;
2043
+ flex?: number | string;
2044
+ flexDirection?: string;
2045
+ flexGrow?: number | string;
2046
+ flexShrink?: number | string;
2047
+ flexWrap?: string;
2048
+ flexBasis?: number | string;
2049
+ justifyContent?: string;
2050
+ justifyItems?: string;
2051
+ justifySelf?: string;
2052
+ order?: number | string;
2053
+ gridColumn?: number | string;
2054
+ gridRow?: number | string;
2055
+ gridAutoFlow?: string;
2056
+ gridAutoColumns?: string;
2057
+ gridAutoRows?: string;
2058
+ gridTemplateColumns?: string;
2059
+ gridTemplateRows?: string;
2060
+ gridTemplateAreas?: string;
2061
+ gridArea?: string;
2062
+ position?: string;
2063
+ top?: number | string;
2064
+ right?: number | string;
2065
+ bottom?: number | string;
2066
+ left?: number | string;
2067
+ fontFamily?: string;
2068
+ fontSize?: number | string;
2069
+ fontStyle?: string;
2070
+ fontWeight?: number | string;
2071
+ letterSpacing?: number | string;
2072
+ lineHeight?: number | string;
2073
+ textAlign?: string;
2074
+ textTransform?: string;
2075
+ overflow?: string;
2076
+ overflowX?: string;
2077
+ overflowY?: string;
2078
+ }
2079
+
2080
+ interface TypographyProps extends Omit<React__default.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1181
2081
  variant?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "subtitle1" | "subtitle2" | "body1" | "body2" | "caption" | "overline" | "button";
1182
2082
  component?: keyof React__default.JSX.IntrinsicElements;
1183
2083
  align?: "inherit" | "left" | "center" | "right" | "justify";
2084
+ /** Palette token (`primary`, `secondary`, `textPrimary`, …) or any CSS colour. */
1184
2085
  color?: "primary" | "secondary" | "textPrimary" | "textSecondary" | "error" | string;
1185
2086
  noWrap?: boolean;
1186
2087
  gutterBottom?: boolean;
@@ -1221,51 +2122,20 @@ interface TooltipProps {
1221
2122
  }
1222
2123
  declare const Tooltip: React__default.FC<TooltipProps>;
1223
2124
 
1224
- interface BoxProps extends React.HTMLAttributes<HTMLElement> {
2125
+ interface BoxProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1225
2126
  component?: keyof React.JSX.IntrinsicElements;
1226
2127
  children?: ReactNode;
1227
- display?: string;
1228
- flexDirection?: string;
1229
- alignItems?: string;
1230
- justifyContent?: string;
1231
- gap?: string | number;
1232
- padding?: string | number;
1233
- margin?: string | number;
1234
- width?: string | number;
1235
- height?: string | number;
1236
- minWidth?: string | number;
1237
- maxWidth?: string | number;
1238
- minHeight?: string | number;
1239
- maxHeight?: string | number;
1240
- flex?: string | number;
1241
- flexWrap?: string;
1242
- flexGrow?: number;
1243
- flexShrink?: number;
1244
- overflow?: string;
1245
- position?: string;
1246
- top?: string | number;
1247
- right?: string | number;
1248
- bottom?: string | number;
1249
- left?: string | number;
1250
- borderRadius?: string | number;
1251
- bgcolor?: string;
1252
- color?: string;
1253
2128
  className?: string;
1254
2129
  style?: CSSProperties;
1255
2130
  sx?: SxProp;
1256
2131
  }
1257
2132
  declare const Box: React.ForwardRefExoticComponent<BoxProps & React.RefAttributes<HTMLElement>>;
1258
2133
 
1259
- interface StackProps extends React.HTMLAttributes<HTMLElement> {
2134
+ interface StackProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1260
2135
  direction?: "row" | "row-reverse" | "column" | "column-reverse";
1261
2136
  spacing?: number | string;
1262
- alignItems?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
1263
- justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
1264
2137
  divider?: ReactNode;
1265
- flexWrap?: "nowrap" | "wrap" | "wrap-reverse";
1266
2138
  useFlexGap?: boolean;
1267
- flex?: string | number;
1268
- overflow?: string;
1269
2139
  component?: keyof React.JSX.IntrinsicElements;
1270
2140
  children: ReactNode;
1271
2141
  className?: string;
@@ -1274,7 +2144,7 @@ interface StackProps extends React.HTMLAttributes<HTMLElement> {
1274
2144
  }
1275
2145
  declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLElement>>;
1276
2146
 
1277
- interface GridProps extends React.HTMLAttributes<HTMLElement> {
2147
+ interface GridProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1278
2148
  container?: boolean;
1279
2149
  item?: boolean;
1280
2150
  xs?: number | "auto" | true;
@@ -1288,8 +2158,6 @@ interface GridProps extends React.HTMLAttributes<HTMLElement> {
1288
2158
  md?: number;
1289
2159
  };
1290
2160
  direction?: "row" | "row-reverse" | "column" | "column-reverse";
1291
- alignItems?: string;
1292
- justifyContent?: string;
1293
2161
  wrap?: "nowrap" | "wrap" | "wrap-reverse";
1294
2162
  zeroMinWidth?: boolean;
1295
2163
  component?: keyof React.JSX.IntrinsicElements;
@@ -1300,6 +2168,127 @@ interface GridProps extends React.HTMLAttributes<HTMLElement> {
1300
2168
  }
1301
2169
  declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLElement>>;
1302
2170
 
2171
+ type ContainerMaxWidth = "xs" | "sm" | "md" | "lg" | "xl" | false;
2172
+ interface ContainerProps extends React.HTMLAttributes<HTMLElement> {
2173
+ maxWidth?: ContainerMaxWidth;
2174
+ fixed?: boolean;
2175
+ disableGutters?: boolean;
2176
+ component?: keyof React.JSX.IntrinsicElements;
2177
+ sx?: SxProp;
2178
+ }
2179
+ declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLElement>>;
2180
+
2181
+ interface TableContainerProps extends React__default.HTMLAttributes<HTMLElement> {
2182
+ component?: keyof React__default.JSX.IntrinsicElements;
2183
+ children?: ReactNode;
2184
+ className?: string;
2185
+ style?: CSSProperties;
2186
+ sx?: SxProp;
2187
+ }
2188
+ declare const TableContainer: React__default.ForwardRefExoticComponent<TableContainerProps & React__default.RefAttributes<HTMLElement>>;
2189
+ interface TableProps extends React__default.TableHTMLAttributes<HTMLTableElement> {
2190
+ size?: "small" | "medium";
2191
+ stickyHeader?: boolean;
2192
+ padding?: "normal" | "checkbox" | "none";
2193
+ children?: ReactNode;
2194
+ className?: string;
2195
+ style?: CSSProperties;
2196
+ sx?: SxProp;
2197
+ }
2198
+ declare const Table: React__default.ForwardRefExoticComponent<TableProps & React__default.RefAttributes<HTMLTableElement>>;
2199
+ interface TableHeadProps extends React__default.HTMLAttributes<HTMLTableSectionElement> {
2200
+ children?: ReactNode;
2201
+ className?: string;
2202
+ style?: CSSProperties;
2203
+ sx?: SxProp;
2204
+ }
2205
+ declare const TableHead: React__default.ForwardRefExoticComponent<TableHeadProps & React__default.RefAttributes<HTMLTableSectionElement>>;
2206
+ interface TableBodyProps extends React__default.HTMLAttributes<HTMLTableSectionElement> {
2207
+ children?: ReactNode;
2208
+ className?: string;
2209
+ style?: CSSProperties;
2210
+ sx?: SxProp;
2211
+ }
2212
+ declare const TableBody: React__default.ForwardRefExoticComponent<TableBodyProps & React__default.RefAttributes<HTMLTableSectionElement>>;
2213
+ interface TableFooterProps extends React__default.HTMLAttributes<HTMLTableSectionElement> {
2214
+ children?: ReactNode;
2215
+ className?: string;
2216
+ style?: CSSProperties;
2217
+ sx?: SxProp;
2218
+ }
2219
+ declare const TableFooter: React__default.ForwardRefExoticComponent<TableFooterProps & React__default.RefAttributes<HTMLTableSectionElement>>;
2220
+ interface TableRowProps extends React__default.HTMLAttributes<HTMLTableRowElement> {
2221
+ hover?: boolean;
2222
+ selected?: boolean;
2223
+ children?: ReactNode;
2224
+ className?: string;
2225
+ style?: CSSProperties;
2226
+ sx?: SxProp;
2227
+ }
2228
+ declare const TableRow: React__default.ForwardRefExoticComponent<TableRowProps & React__default.RefAttributes<HTMLTableRowElement>>;
2229
+ interface TableCellProps extends React__default.TdHTMLAttributes<HTMLTableCellElement> {
2230
+ /** Render as <th> instead of <td>. Auto-set when inside TableHead. */
2231
+ component?: "td" | "th";
2232
+ align?: "left" | "right" | "center" | "justify";
2233
+ /** Override the table-level padding for this cell */
2234
+ padding?: "normal" | "checkbox" | "none";
2235
+ /** Conveys sort direction for assistive technology */
2236
+ sortDirection?: "asc" | "desc" | false;
2237
+ /** Visual variant — auto-detected from parent section */
2238
+ variant?: "head" | "body" | "footer";
2239
+ children?: ReactNode;
2240
+ className?: string;
2241
+ style?: CSSProperties;
2242
+ sx?: SxProp;
2243
+ }
2244
+ declare const TableCell: React__default.ForwardRefExoticComponent<TableCellProps & React__default.RefAttributes<HTMLTableCellElement>>;
2245
+ interface TableSortLabelProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
2246
+ /** Whether this column is the current sort column */
2247
+ active?: boolean;
2248
+ /** Current sort direction */
2249
+ direction?: "asc" | "desc";
2250
+ /** Hide the sort arrow icon when the column is not active */
2251
+ hideSortIcon?: boolean;
2252
+ children?: ReactNode;
2253
+ className?: string;
2254
+ style?: CSSProperties;
2255
+ sx?: SxProp;
2256
+ }
2257
+ declare const TableSortLabel: React__default.ForwardRefExoticComponent<TableSortLabelProps & React__default.RefAttributes<HTMLButtonElement>>;
2258
+ interface TablePaginationProps extends React__default.HTMLAttributes<HTMLDivElement> {
2259
+ /** Total number of rows */
2260
+ count: number;
2261
+ /** Current 0-indexed page */
2262
+ page: number;
2263
+ /** Number of rows per page */
2264
+ rowsPerPage: number;
2265
+ /** Called when the user changes the page */
2266
+ onPageChange: (event: React__default.MouseEvent<HTMLButtonElement> | null, page: number) => void;
2267
+ /** Available rows-per-page options */
2268
+ rowsPerPageOptions?: (number | {
2269
+ value: number;
2270
+ label: string;
2271
+ })[];
2272
+ /** Called when rows-per-page changes */
2273
+ onRowsPerPageChange?: (event: React__default.ChangeEvent<HTMLSelectElement>) => void;
2274
+ /** Label before the rows-per-page selector */
2275
+ labelRowsPerPage?: ReactNode;
2276
+ /** Override the "X–Y of Z" display */
2277
+ labelDisplayedRows?: (args: {
2278
+ from: number;
2279
+ to: number;
2280
+ count: number;
2281
+ }) => ReactNode;
2282
+ /** Show first-page button */
2283
+ showFirstButton?: boolean;
2284
+ /** Show last-page button */
2285
+ showLastButton?: boolean;
2286
+ className?: string;
2287
+ style?: CSSProperties;
2288
+ sx?: SxProp;
2289
+ }
2290
+ declare const TablePagination: React__default.ForwardRefExoticComponent<TablePaginationProps & React__default.RefAttributes<HTMLDivElement>>;
2291
+
1303
2292
  interface PaperProps extends React.HTMLAttributes<HTMLElement> {
1304
2293
  elevation?: number;
1305
2294
  square?: boolean;
@@ -1555,6 +2544,26 @@ interface DrawerProps {
1555
2544
  }
1556
2545
  declare const Drawer: React__default.FC<DrawerProps>;
1557
2546
 
2547
+ type PaginationItemType = "page" | "first" | "previous" | "next" | "last" | "start-ellipsis" | "end-ellipsis";
2548
+ interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, "onChange" | "color"> {
2549
+ count: number;
2550
+ page?: number;
2551
+ defaultPage?: number;
2552
+ onChange?: (event: React.MouseEvent<HTMLButtonElement>, page: number) => void;
2553
+ siblingCount?: number;
2554
+ boundaryCount?: number;
2555
+ showFirstButton?: boolean;
2556
+ showLastButton?: boolean;
2557
+ hidePrevButton?: boolean;
2558
+ hideNextButton?: boolean;
2559
+ disabled?: boolean;
2560
+ shape?: "circular" | "rounded";
2561
+ size?: "small" | "medium" | "large";
2562
+ color?: "primary" | "standard";
2563
+ sx?: SxProp;
2564
+ }
2565
+ declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
2566
+
1558
2567
  interface SnackbarProps {
1559
2568
  open: boolean;
1560
2569
  onClose?: (reason: "timeout" | "clickaway" | "escapeKeyDown") => void;
@@ -1574,6 +2583,66 @@ interface SnackbarProps {
1574
2583
  }
1575
2584
  declare const Snackbar: React__default.FC<SnackbarProps>;
1576
2585
 
2586
+ type AlertSeverity = "success" | "info" | "warning" | "error";
2587
+ type AlertVariant = "standard" | "filled" | "outlined";
2588
+ interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
2589
+ severity?: AlertSeverity;
2590
+ variant?: AlertVariant;
2591
+ title?: React.ReactNode;
2592
+ icon?: React.ReactNode | false;
2593
+ action?: React.ReactNode;
2594
+ onClose?: () => void;
2595
+ sx?: SxProp;
2596
+ }
2597
+ declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
2598
+
2599
+ type TimelinePosition = "right" | "left" | "alternate" | "alternate-reverse";
2600
+ type TimelineDotColor = "inherit" | "grey" | "primary" | "secondary" | "success" | "error" | "info" | "warning";
2601
+ type TimelineDotVariant = "filled" | "outlined";
2602
+ interface TimelineProps extends Omit<React.HTMLAttributes<HTMLUListElement>, "color"> {
2603
+ position?: TimelinePosition;
2604
+ sx?: SxProp;
2605
+ }
2606
+ declare const Timeline: React.ForwardRefExoticComponent<TimelineProps & React.RefAttributes<HTMLUListElement>>;
2607
+ interface TimelineItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
2608
+ position?: "right" | "left";
2609
+ sx?: SxProp;
2610
+ }
2611
+ declare const TimelineItem: React.ForwardRefExoticComponent<TimelineItemProps & React.RefAttributes<HTMLLIElement>>;
2612
+ interface TimelineSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
2613
+ sx?: SxProp;
2614
+ }
2615
+ declare const TimelineSeparator: React.ForwardRefExoticComponent<TimelineSeparatorProps & React.RefAttributes<HTMLDivElement>>;
2616
+ interface TimelineDotProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color"> {
2617
+ color?: TimelineDotColor;
2618
+ variant?: TimelineDotVariant;
2619
+ sx?: SxProp;
2620
+ }
2621
+ declare const TimelineDot: React.ForwardRefExoticComponent<TimelineDotProps & React.RefAttributes<HTMLSpanElement>>;
2622
+ interface TimelineConnectorProps extends React.HTMLAttributes<HTMLSpanElement> {
2623
+ sx?: SxProp;
2624
+ }
2625
+ declare const TimelineConnector: React.ForwardRefExoticComponent<TimelineConnectorProps & React.RefAttributes<HTMLSpanElement>>;
2626
+ interface TimelineContentProps extends React.HTMLAttributes<HTMLDivElement> {
2627
+ sx?: SxProp;
2628
+ }
2629
+ declare const TimelineContent: React.ForwardRefExoticComponent<TimelineContentProps & React.RefAttributes<HTMLDivElement>>;
2630
+ interface TimelineOppositeContentProps extends React.HTMLAttributes<HTMLDivElement> {
2631
+ sx?: SxProp;
2632
+ }
2633
+ declare const TimelineOppositeContent: React.ForwardRefExoticComponent<TimelineOppositeContentProps & React.RefAttributes<HTMLDivElement>>;
2634
+
2635
+ type ClickAwayMouseEventHandler = "onClick" | "onMouseDown" | "onMouseUp" | "onPointerDown" | "onPointerUp";
2636
+ type ClickAwayTouchEventHandler = "onTouchStart" | "onTouchEnd";
2637
+ interface ClickAwayListenerProps {
2638
+ children: React.ReactElement<any>;
2639
+ disableReactTree?: boolean;
2640
+ mouseEvent?: ClickAwayMouseEventHandler | false;
2641
+ onClickAway: (event: MouseEvent | TouchEvent) => void;
2642
+ touchEvent?: ClickAwayTouchEventHandler | false;
2643
+ }
2644
+ declare function ClickAwayListener(props: ClickAwayListenerProps): React.JSX.Element;
2645
+
1577
2646
  interface LinkProps {
1578
2647
  href?: string;
1579
2648
  target?: string;
@@ -1743,6 +2812,257 @@ interface PhoneFieldProps {
1743
2812
  }
1744
2813
  declare const PhoneField: React__default.ForwardRefExoticComponent<PhoneFieldProps & React__default.RefAttributes<HTMLDivElement>>;
1745
2814
 
2815
+ interface TreeNode {
2816
+ id?: string | number;
2817
+ /** MongoDB-style id — used as fallback when `id` is absent */
2818
+ _id?: string | number;
2819
+ label: string;
2820
+ name?: string;
2821
+ children?: TreeNode[];
2822
+ }
2823
+ type TreeSelectMultiValue = Record<string, boolean>;
2824
+ type TreeSelectSingleValue = string | number | null;
2825
+ type TreeSelectValue = TreeSelectSingleValue | TreeSelectMultiValue;
2826
+ interface TreeSelectProps {
2827
+ /** Tree data — each node may have nested children */
2828
+ options: TreeNode[];
2829
+ /** Controlled value. Single mode: id or null. Multiple mode: Record<id, boolean>. */
2830
+ value?: TreeSelectValue;
2831
+ /** Called when selection changes. In single mode, `node` is also included for convenience. */
2832
+ onChange?: (e: {
2833
+ value: TreeSelectValue;
2834
+ node?: TreeNode | null;
2835
+ }) => void;
2836
+ /** Called when a node is selected */
2837
+ onNodeSelect?: (e: {
2838
+ node: TreeNode;
2839
+ }) => void;
2840
+ /** Called when a node is unselected */
2841
+ onNodeUnselect?: (e: {
2842
+ node: TreeNode;
2843
+ }) => void;
2844
+ /** 'single' (default) or 'multiple' (checkbox tree) */
2845
+ selectionMode?: 'single' | 'multiple';
2846
+ /** Placeholder text shown when nothing is selected */
2847
+ placeholder?: string;
2848
+ /** Show a search filter input at the top of the dropdown */
2849
+ filter?: boolean;
2850
+ /** Auto-focus the filter input when the dropdown opens */
2851
+ filterInputAutoFocus?: boolean;
2852
+ /** Clear filter text when the dropdown closes */
2853
+ resetFilterOnHide?: boolean;
2854
+ /**
2855
+ * When **true**, selecting a parent selects all its descendants and vice-versa (cascade).
2856
+ * When **false** (default), every node is selected/deselected independently — no cascade.
2857
+ * Only relevant in `multiple` mode.
2858
+ */
2859
+ allowChildSelection?: boolean;
2860
+ /** PrimeReact compat — accepted but not used */
2861
+ metaKeySelection?: boolean;
2862
+ /** Disable the whole control */
2863
+ disabled?: boolean;
2864
+ /** Floating label */
2865
+ label?: string;
2866
+ /** Visual variant (mirrors TextField) */
2867
+ variant?: 'outlined' | 'filled' | 'standard';
2868
+ /** Size */
2869
+ size?: 'small' | 'medium';
2870
+ /** Error state */
2871
+ error?: boolean;
2872
+ /** Helper / error text below the field */
2873
+ helperText?: ReactNode;
2874
+ /** Stretch to full container width */
2875
+ fullWidth?: boolean;
2876
+ /** Show a clear button when a value is selected */
2877
+ clearable?: boolean;
2878
+ /** Mark the field as required — appends an asterisk to the label */
2879
+ required?: boolean;
2880
+ style?: CSSProperties;
2881
+ className?: string;
2882
+ sx?: SxProp;
2883
+ }
2884
+ declare function TreeSelect({ options, value, onChange, onNodeSelect, onNodeUnselect, selectionMode, allowChildSelection, placeholder, filter, filterInputAutoFocus, resetFilterOnHide, metaKeySelection: _metaKeySelection, disabled, label, variant, size, error, helperText, fullWidth, clearable, required, style, className, sx, }: TreeSelectProps): React__default.JSX.Element;
2885
+
2886
+ interface UserOption {
2887
+ id?: string | number;
2888
+ _id?: string | number;
2889
+ userFirstName?: string;
2890
+ userLastName?: string;
2891
+ emailId?: string;
2892
+ }
2893
+ interface UserSelectionFieldProps {
2894
+ /** Selected user (single) or array of users (multiple) */
2895
+ value?: UserOption | UserOption[] | null;
2896
+ /** Called when selection changes */
2897
+ onChange: (value: UserOption | UserOption[] | null) => void;
2898
+ /** Available user options */
2899
+ options?: UserOption[];
2900
+ /** Show a loading spinner */
2901
+ loading?: boolean;
2902
+ /**
2903
+ * Called when the search text changes and no local match is found —
2904
+ * use this to trigger an API search.
2905
+ */
2906
+ onSearchChange?: (value: string) => void;
2907
+ /** Label / placeholder text */
2908
+ label?: string;
2909
+ /** Allow selecting multiple users */
2910
+ multiple?: boolean;
2911
+ /** In multiple mode, cap how many tag chips are shown before "+N more" */
2912
+ limitTags?: number;
2913
+ size?: 'small' | 'medium';
2914
+ variant?: 'outlined' | 'filled' | 'standard';
2915
+ disabled?: boolean;
2916
+ error?: boolean;
2917
+ helperText?: ReactNode;
2918
+ fullWidth?: boolean;
2919
+ required?: boolean;
2920
+ /**
2921
+ * Override the default name/email filter. Receives (options, inputValue).
2922
+ * Pass `(opts) => opts` to skip internal filtering when options are pre-filtered externally.
2923
+ */
2924
+ filterOptions?: (options: UserOption[], inputValue: string) => UserOption[];
2925
+ className?: string;
2926
+ style?: CSSProperties;
2927
+ sx?: SxProp;
2928
+ }
2929
+ declare function UserSelectionField({ value, onChange, options, loading, onSearchChange, label, multiple, limitTags, size, variant, disabled, error, helperText, fullWidth, required, filterOptions: filterOptionsProp, className, style, sx, }: UserSelectionFieldProps): React__default.JSX.Element;
2930
+
2931
+ interface SmartSelectProps<T = any> {
2932
+ /** Options array — can be flat or hierarchical (via getOptionChildren) */
2933
+ options: T[];
2934
+ /** Controlled value. Single: T | null. Multiple: T[] */
2935
+ value?: T | T[] | null;
2936
+ /** Called when selection changes */
2937
+ onChange?: (value: T | T[] | null) => void;
2938
+ /**
2939
+ * Controlled text shown in the search input.
2940
+ * When provided the input is fully controlled — update it via `onInputChange`.
2941
+ * When omitted SmartSelect manages the input text internally.
2942
+ */
2943
+ inputValue?: string;
2944
+ /**
2945
+ * Called whenever the input text changes.
2946
+ * - `reason: 'input'` — user typed
2947
+ * - `reason: 'reset'` — option selected or dropdown closed
2948
+ * - `reason: 'clear'` — field was cleared
2949
+ *
2950
+ * Pair with `inputValue` for full controlled mode:
2951
+ * ```
2952
+ * const [search, setSearch] = useState('');
2953
+ * <SmartSelect
2954
+ * inputValue={search}
2955
+ * onInputChange={(val, reason) => { if (reason !== 'reset') setSearch(val); }}
2956
+ * />
2957
+ * ```
2958
+ */
2959
+ onInputChange?: (value: string, reason: 'input' | 'reset' | 'clear') => void;
2960
+ /**
2961
+ * Called when local matches fall below `searchThreshold`.
2962
+ * Receives the current query and how many more records are needed.
2963
+ */
2964
+ onSearchChange?: (query: string, needed: number) => void;
2965
+ /**
2966
+ * Results returned by the API for the current query.
2967
+ * Merged with local matches (duplicates excluded) to fill up to `searchThreshold`.
2968
+ * Reset this to [] when the query is cleared.
2969
+ */
2970
+ searchResults?: T[];
2971
+ /**
2972
+ * Debounce delay in ms before `onSearchChange` fires. Default: 300.
2973
+ * Pass 0 to disable.
2974
+ */
2975
+ debounceMs?: number;
2976
+ /**
2977
+ * Max results to show when a query is active.
2978
+ * `onSearchChange` fires only when local matches < this threshold.
2979
+ * Default: 10. Pass 0 to always call the API.
2980
+ */
2981
+ searchThreshold?: number;
2982
+ /** Primary display label for an option (required) */
2983
+ getOptionLabel: (option: T) => string;
2984
+ /** Unique key for an option — defaults to the label string */
2985
+ getOptionValue?: (option: T) => string | number;
2986
+ /** Optional secondary line shown below the label */
2987
+ getOptionSubLabel?: (option: T) => string | undefined;
2988
+ /**
2989
+ * Return child options to create a hierarchical list.
2990
+ * The tree is flattened with indentation for display.
2991
+ */
2992
+ getOptionChildren?: (option: T) => T[] | undefined;
2993
+ /** Allow selecting multiple options */
2994
+ multiple?: boolean;
2995
+ /**
2996
+ * When **true** (default) selecting a parent selects all its descendants.
2997
+ * When **false** every option is selected / deselected independently.
2998
+ * Only relevant when getOptionChildren is provided and multiple is true.
2999
+ */
3000
+ allowChildNodesSelection?: boolean;
3001
+ /**
3002
+ * When **true**, the incoming `value` is validated against the source options
3003
+ * before being used. Three cases are handled strictly:
3004
+ *
3005
+ * - **Case 1 — Empty**: `value` is `null`, `undefined`, or `""` → treated as no selection.
3006
+ * - **Case 2 — Missing**: value's key is not present in `options` or `searchResults`
3007
+ * → ignored; not injected into the dropdown list.
3008
+ * - **Case 3 — Incomplete**: value's key exists in the source but the canonical source
3009
+ * option returns an empty label from `getOptionLabel` → not treated as selected.
3010
+ *
3011
+ * When invalid, `null` is passed to Autocomplete (nothing selected) and the raw text
3012
+ * is shown in the input field. No `onChange` fires.
3013
+ *
3014
+ * Only applies to single-select mode. Default: **false**.
3015
+ */
3016
+ strictSelection?: boolean;
3017
+ /** Show a loading spinner in the dropdown */
3018
+ loading?: boolean;
3019
+ /** Content shown while loading */
3020
+ loadingText?: ReactNode;
3021
+ /**
3022
+ * Override the default label + sub-label filter.
3023
+ * Pass `(opts) => opts` to bypass when options are pre-filtered externally.
3024
+ */
3025
+ filterOptions?: (options: T[], inputValue: string) => T[];
3026
+ /**
3027
+ * Custom option renderer. Receives the li props, option, and { selected } state.
3028
+ * When provided, overrides the default Select-style rendering.
3029
+ */
3030
+ renderOption?: (props: React__default.HTMLAttributes<HTMLLIElement> & {
3031
+ key: React__default.Key;
3032
+ }, option: T, state: {
3033
+ selected: boolean;
3034
+ index: number;
3035
+ }) => ReactNode;
3036
+ /** In multiple mode, cap how many tag chips are shown before "+N more" */
3037
+ limitTags?: number;
3038
+ /**
3039
+ * In multiple mode, controls whether already-selected options stay visible
3040
+ * at the top of the dropdown while the user is actively searching.
3041
+ *
3042
+ * - **false** (default): selected options are hidden during search — only
3043
+ * matching results are shown. They reappear when a result is selected, the
3044
+ * search text is cleared, or the dropdown is reopened.
3045
+ * - **true**: existing behaviour — selected options remain pinned at the top
3046
+ * with search results listed below them.
3047
+ *
3048
+ * Only applies to `multiple` selection mode. Default: **false**.
3049
+ */
3050
+ showSelectedOnSearch?: boolean;
3051
+ label?: string;
3052
+ placeholder?: string;
3053
+ variant?: 'outlined' | 'filled' | 'standard';
3054
+ size?: 'small' | 'medium';
3055
+ disabled?: boolean;
3056
+ error?: boolean;
3057
+ helperText?: ReactNode;
3058
+ fullWidth?: boolean;
3059
+ required?: boolean;
3060
+ className?: string;
3061
+ style?: CSSProperties;
3062
+ sx?: SxProp;
3063
+ }
3064
+ declare function SmartSelect<T = any>({ options, value, onChange, inputValue: inputValueProp, onInputChange, onSearchChange, searchResults, debounceMs, searchThreshold, getOptionLabel, getOptionValue, getOptionSubLabel, getOptionChildren, multiple, allowChildNodesSelection, strictSelection, loading, loadingText, filterOptions: filterOptionsProp, renderOption: renderOptionProp, limitTags, showSelectedOnSearch, label, placeholder, variant, size, disabled, error, helperText, fullWidth, required, className, style, sx, }: SmartSelectProps<T>): React__default.JSX.Element;
3065
+
1746
3066
  type ToolbarButton = 'undo' | 'redo' | 'ai' | 'paragraph' | 'fontsize' | 'font' | 'color' | 'bold' | 'italic' | 'strike' | 'link' | 'lineheight' | 'ul' | 'ol' | 'align' | 'indent' | 'outdent' | 'table' | 'image' | 'video' | 'cut' | 'copy' | 'paste' | 'specialchars' | 'code' | 'fullscreen' | 'tts' | 'stt' | 'translate' | 'todo' | '|';
1747
3067
  type EditorVariant = 'default' | 'basic';
1748
3068
  interface RufousTextEditorProps {
@@ -1829,4 +3149,151 @@ interface MentionItemData {
1829
3149
  shortName?: string;
1830
3150
  }
1831
3151
 
1832
- export { APP_THEMES, Accordion, AccordionDetails, type AccordionDetailsProps, type AccordionProps, AccordionSummary, type AccordionSummaryProps, type Action, ActivateUserIcon, AddButton, AddressLookup, ArchivedIcon, AssignGroupIcon, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, BaseDialog, Box, type BoxProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, CameraIcon, CancelButton, Card, CardActions, type CardActionsProps, CardContent, type CardContentProps, CardHeader, type CardHeaderProps, CardMedia, type CardMediaProps, type CardProps, Checkbox, type CheckboxProps, Chip, type ChipProps, CircularProgress, CircularProgressIcon, type CircularProgressIconProps, CloseIcon, Collapse, type CollapseProps, type Column, CopyIcon, DataGrid, type DataGridProps, DateField, type DateFieldProps, type DateFormatString, DateRangeField, type DateRangeFieldProps, type DateRangeValue, DifficultyAllIcon, DifficultyEasyIcon, DifficultyHardIcon, DifficultyMediumIcon, Divider, type DividerProps, DollarIcon, DownloadIcon, DownloadPdfIcon, Drawer, type DrawerProps, EditChatIcon, EditIcon, EngagementIcon, Fade, type FadeProps, FunctionIcon, Grid, type GridProps, Grow, type GrowProps, HelpOutlinedIcon, HierarchyIcon, IconButton, type IconButtonProps, ImageField, type ImageFieldProps, InactiveGroupIcon, IndustryIcon, InvoiceIcon, Link, type LinkProps, List, ListItem, ListItemButton, type ListItemButtonProps, ListItemIcon, type ListItemIconProps, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListSubheader, type ListSubheaderProps, LocationPinIcon, LogsIcon, Menu, MenuDivider, MenuItem, type MenuItemProps, MenuList, type MenuListProps, type MenuProps, MinExperienceIcon, NineDotMenuIcon, NotificationIcon, type NumberVariant, Paper, type PaperProps, PhoneField, type PhoneFieldProps, Popover, type PopoverProps, Popper, type PopperProps, ProjectIcon, QualificationsIcon, QuestionStatusAllIcon, QuestionStatusPrivateIcon, QuestionStatusPublicIcon, QuestionTypeAllIcon, QuestionTypeCodingIcon, QuestionTypeDescriptiveIcon, QuestionTypeMultipleIcon, QuestionTypeSingleIcon, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, RefreshIcon, ResendInviteIcon, RolesIcon, RufousAiIcon, RufousBirdIcon, RufousLauncherIcon, RufousLogoLoader, type RufousLogoLoaderProps, RufousTextContent, type RufousTextContentProps, RufousTextEditor, type MentionItemData as RufousTextEditorMentionItem, type RufousTextEditorProps, RufousThemeProvider, Select, type SelectProps, SidebarIcon, Skeleton, type SkeletonProps, Slide, type SlideProps, Slider, type SliderProps, Snackbar, type SnackbarProps, SoftSkillsIcon, type SortDirection, Stack, type StackProps, StandardButton, Step, StepButton, type StepButtonProps, StepContent, type StepContentProps, StepLabel, type StepLabelProps, type StepProps, Stepper, type StepperProps, SubmitButton, SubscribeIcon, SuspendUserIcon, Switch, type SwitchProps, type SxProp, Tab, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, TechnicalSkillsIcon, TextField, type TextFieldProps, TickIcon, TimerIcon, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Tooltip, type TooltipProps, TrashIcon, Typography, type TypographyProps, UnArchivedIcon, UnsubscribeIcon, UploadIcon, UserAssignIcon, ViewIcon, WorkItemIcon, Zoom, type ZoomProps, transformLegacyTodos, useRufousTheme };
3152
+ declare const FontSize: any;
3153
+ declare const LineHeight: any;
3154
+ declare const FontFamily: any;
3155
+ declare const ListStyle: any;
3156
+ declare const INDENT_STEP = 40;
3157
+ declare const MAX_INDENT = 200;
3158
+ declare const Indent: any;
3159
+ declare const CustomVideo: any;
3160
+ declare const CustomYoutube: any;
3161
+ declare const CustomImage: any;
3162
+ declare const STATUS_IMAGES: Record<string, string>;
3163
+ declare const STATUS_LABELS: Record<string, string>;
3164
+ declare const STATUS_COLORS: Record<string, {
3165
+ border: string;
3166
+ bg: string;
3167
+ color: string;
3168
+ }>;
3169
+ declare const CustomTaskItem: any;
3170
+
3171
+ /** Country — same shape as the library; re-exported with a typed name for convenience. */
3172
+ type EnhancedCountry = ICountry;
3173
+ /** State enriched with the full name of its parent country. */
3174
+ interface EnhancedState extends IState {
3175
+ countryName: string;
3176
+ }
3177
+ /** City enriched with a short city code and the full state + country names. */
3178
+ interface EnhancedCity extends ICity {
3179
+ /** First three characters of the city name (e.g. "Des" for "Des Moines"). */
3180
+ cityCode: string;
3181
+ /** Full name of the parent country (e.g. "United States"). */
3182
+ countryName: string;
3183
+ /** Full name of the parent state (e.g. "Iowa"). */
3184
+ stateName: string;
3185
+ }
3186
+ /** Returns all countries (same data as the library, typed as EnhancedCountry). */
3187
+ declare function getAllCountries(): EnhancedCountry[];
3188
+ /** Returns a single country by its ISO 2-letter code, or undefined if not found. */
3189
+ declare function getCountryByCode(isoCode: string): EnhancedCountry | undefined;
3190
+ /**
3191
+ * Returns the first country whose name matches the query (case-insensitive).
3192
+ * Pass `exact: false` (default) to also match partial names.
3193
+ * @param name Country name or partial name, e.g. "United States" or "united"
3194
+ * @param exact When true, requires an exact case-insensitive match. Default false.
3195
+ */
3196
+ declare function getCountryByName(name: string, exact?: boolean): EnhancedCountry | undefined;
3197
+ /**
3198
+ * Returns all countries whose names match the query (case-insensitive, partial by default).
3199
+ * Useful for search-as-you-type flows where you want multiple candidates.
3200
+ * @param name Search string, e.g. "ind" matches "India", "Indonesia", etc.
3201
+ * @param exact When true, only exact case-insensitive matches are returned. Default false.
3202
+ */
3203
+ declare function getCountriesByName(name: string, exact?: boolean): EnhancedCountry[];
3204
+ /**
3205
+ * Returns all states for a country, each enriched with `countryName`.
3206
+ * @param countryCode ISO 2-letter country code, e.g. "US"
3207
+ */
3208
+ declare function getStatesOfCountry(countryCode: string): EnhancedState[];
3209
+ /**
3210
+ * Returns a single state by its code + parent country, enriched with `countryName`.
3211
+ * @param stateCode ISO state code, e.g. "IA"
3212
+ * @param countryCode ISO 2-letter country code, e.g. "US"
3213
+ */
3214
+ declare function getStateByCode(stateCode: string, countryCode: string): EnhancedState | undefined;
3215
+ /**
3216
+ * Returns the first state whose name matches the query across **all countries** (case-insensitive).
3217
+ * @param name State name or partial name, e.g. "Iowa" or "iow"
3218
+ * @param exact When true, requires an exact case-insensitive match. Default false.
3219
+ */
3220
+ declare function getStateByName(name: string, exact?: boolean): EnhancedState | undefined;
3221
+ /**
3222
+ * Returns all states whose names match the query across **all countries** (case-insensitive, partial by default).
3223
+ * @param name Search string, e.g. "new" matches "New York", "New South Wales", etc.
3224
+ * @param exact When true, only exact case-insensitive matches are returned. Default false.
3225
+ */
3226
+ declare function getStatesByName(name: string, exact?: boolean): EnhancedState[];
3227
+ /**
3228
+ * Returns all cities for a given state, each enriched with `cityCode`, `countryName`,
3229
+ * and `stateName`.
3230
+ * @param countryCode ISO 2-letter country code, e.g. "US"
3231
+ * @param stateCode ISO state code, e.g. "IA"
3232
+ */
3233
+ declare function getCitiesOfState(countryCode: string, stateCode: string): EnhancedCity[];
3234
+ /**
3235
+ * Returns all cities for a given country, each enriched with `cityCode`, `countryName`,
3236
+ * and `stateName`.
3237
+ * @param countryCode ISO 2-letter country code, e.g. "US"
3238
+ */
3239
+ declare function getCitiesOfCountry(countryCode: string): EnhancedCity[];
3240
+ /**
3241
+ * Returns the first city whose name matches the query across **all countries and states** (case-insensitive).
3242
+ * @param name City name or partial name, e.g. "Delhi" or "del"
3243
+ * @param exact When true, requires an exact case-insensitive match. Default false.
3244
+ */
3245
+ declare function getCityByName(name: string, exact?: boolean): EnhancedCity | undefined;
3246
+ /**
3247
+ * Returns all cities whose names match the query across **all countries and states** (case-insensitive, partial by default).
3248
+ * Searches ~148k cities — prefer the debounced `useCitiesSearch` hook in React components.
3249
+ * @param name Search string, e.g. "spring" matches "Springfield", "Spring Hill", etc.
3250
+ * @param exact When true, only exact case-insensitive matches are returned. Default false.
3251
+ */
3252
+ declare function getCitiesByName(name: string, exact?: boolean): EnhancedCity[];
3253
+
3254
+ interface SearchResult<T> {
3255
+ /** Filtered results. Empty while query is blank. */
3256
+ results: T[];
3257
+ /** Current value of the search input (updated immediately on each keystroke). */
3258
+ query: string;
3259
+ /** Call this on every keystroke — triggers the debounced filter. */
3260
+ search: (name: string) => void;
3261
+ /** Resets query and results immediately. */
3262
+ clear: () => void;
3263
+ }
3264
+ /**
3265
+ * Debounced country name search across all ~250 countries.
3266
+ *
3267
+ * @param debounceMs Delay before filtering runs. Defaults to 300 ms.
3268
+ *
3269
+ * @example
3270
+ * const { results, search, clear, query } = useCountriesSearch();
3271
+ * <input onChange={e => search(e.target.value)} value={query} />
3272
+ * {results.map(c => <div key={c.isoCode}>{c.flag} {c.name}</div>)}
3273
+ */
3274
+ declare function useCountriesSearch(debounceMs?: number): SearchResult<EnhancedCountry>;
3275
+ /**
3276
+ * Debounced state / province name search across **all countries** (~5k states).
3277
+ * No country scoping — results include `countryName` so you can display origin.
3278
+ *
3279
+ * @param debounceMs Delay before filtering runs. Defaults to 300 ms.
3280
+ *
3281
+ * @example
3282
+ * const { results, search, clear } = useStatesSearch();
3283
+ * // results[0] → { name, isoCode, countryCode, countryName, latitude, longitude }
3284
+ */
3285
+ declare function useStatesSearch(debounceMs?: number): SearchResult<EnhancedState>;
3286
+ /**
3287
+ * Debounced city name search across **all countries and states** (~148k cities).
3288
+ * No country / state scoping — results include `countryName` and `stateName`.
3289
+ * Debouncing is strongly recommended given the dataset size.
3290
+ *
3291
+ * @param debounceMs Delay before filtering runs. Defaults to 300 ms.
3292
+ *
3293
+ * @example
3294
+ * const { results, search, clear } = useCitiesSearch(400);
3295
+ * // results[0] → { name, cityCode, stateCode, stateName, countryCode, countryName, … }
3296
+ */
3297
+ declare function useCitiesSearch(debounceMs?: number): SearchResult<EnhancedCity>;
3298
+
3299
+ export { APP_THEMES, Accordion, AccordionDetails, type AccordionDetailsProps, type AccordionProps, AccordionSummary, type AccordionSummaryProps, type Action, ActivateUserIcon, AddButton, AddIcon, AddressLookup, Alert, type AlertProps, type AlertSeverity, AlertTriangleIcon, type AlertVariant, ArchivedIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, AssignGroupIcon, AttachFileIcon, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, BarChartIcon, BaseDialog, BookmarkIcon, Box, type BoxProps, Breadcrumbs, type BreadcrumbsProps, BusinessIcon, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, CalendarIcon, CameraIcon, CancelButton, Card, CardActions, type CardActionsProps, CardContent, type CardContentProps, CardHeader, type CardHeaderProps, CardMedia, type CardMediaProps, type CardProps, ChatBubbleIcon, CheckBoxIcon, CheckCircleIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, CircularProgress, CircularProgressIcon, type CircularProgressIconProps, ClickAwayListener, type ClickAwayListenerProps, ClipboardIcon, CloseIcon, Collapse, type CollapseProps, type Column, type ColumnVisibilityModel, ContactsIcon, Container, type ContainerMaxWidth, type ContainerProps, CopyIcon, CustomImage, CustomTaskItem, CustomVideo, CustomYoutube, DataGrid, type DataGridApi, type DataGridProps, DateField, type DateFieldProps, type DateFormatString, DateRangeField, type DateRangeFieldProps, type DateRangeValue, DifficultyAllIcon, DifficultyEasyIcon, DifficultyHardIcon, DifficultyMediumIcon, Divider, type DividerProps, DollarIcon, DonutLargeIcon, DownloadIcon, DownloadPdfIcon, DragIndicatorIcon, Drawer, type DrawerProps, EditChatIcon, EditIcon, EngagementIcon, type EnhancedCity, type EnhancedCountry, type EnhancedState, ExternalLinkIcon, EyeOffIcon, FactoryIcon, Fade, type FadeProps, FilterIcon, type FilterState, FlagIcon, FontFamily, FontSize, FormGroup, type FormGroupProps, FunctionIcon, GlobeIcon, Grid, type GridInitialState, type GridProps, GridViewIcon, Grow, type GrowProps, HeartIcon, HelpOutlinedIcon, HierarchyIcon, HomeIcon, INDENT_STEP, IconButton, type IconButtonProps, ImageField, type ImageFieldProps, InactiveGroupIcon, Indent, IndustryIcon, InfoIcon, InvoiceIcon, LightbulbIcon, LineHeight, LinearProgress, type LinearProgressProps, type LinearProgressVariant, Link, LinkIcon, type LinkProps, List, ListItem, ListItemButton, type ListItemButtonProps, ListItemIcon, type ListItemIconProps, type ListItemProps, ListItemText, type ListItemTextProps, type ListProps, ListStyle, ListSubheader, type ListSubheaderProps, ListViewIcon, LocationCityIcon, LocationPinIcon, LockIcon, LogsIcon, MAX_INDENT, MailIcon, type MaterialIconProps, type MaterialIconVariant, MemoryIcon, Menu, MenuDivider, MenuIcon, MenuItem, type MenuItemProps, MenuList, type MenuListProps, type MenuProps, MinExperienceIcon, MinusIcon, MoonIcon, MoreHorizontalIcon, MoreVerticalIcon, NineDotMenuIcon, NotesIcon, NotificationIcon, type NumberVariant, OpenInFullIcon, Pagination, type PaginationItemType, type PaginationModel, type PaginationProps, Paper, type PaperProps, PaperclipIcon, PersonSearchIcon, PhoneField, type PhoneFieldProps, PhoneIcon, PieChartIcon, PinIcon, PlaceIcon, PlusIcon, Popover, type PopoverProps, Popper, type PopperProps, PrintIcon, ProjectIcon, QualificationsIcon, QuestionStatusAllIcon, QuestionStatusPrivateIcon, QuestionStatusPublicIcon, QuestionTypeAllIcon, QuestionTypeCodingIcon, QuestionTypeDescriptiveIcon, QuestionTypeMultipleIcon, QuestionTypeSingleIcon, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, RecommendIcon, RefreshIcon, RemoveIcon, ResendInviteIcon, RolesIcon, type RowClassNameParams, RufousAiIcon, RufousBirdIcon, RufousLauncherIcon, RufousLogoLoader, type RufousLogoLoaderProps, RufousTextContent, type RufousTextContentProps, RufousTextEditor, type MentionItemData as RufousTextEditorMentionItem, type RufousTextEditorProps, RufousThemeProvider, STATUS_COLORS, STATUS_IMAGES, STATUS_LABELS, SaveIcon, SearchIcon, Select, type SelectProps, SendIcon, SettingsIcon, ShareIcon, ShowChartIcon, SidebarIcon, Skeleton, type SkeletonProps, Slide, type SlideProps, Slider, type SliderProps, SmartSelect, type SmartSelectProps, Snackbar, type SnackbarProps, SoftSkillsIcon, type SortDirection, type SortModel, type SortModelItem, Stack, type StackProps, StandardButton, StarBorderIcon, StarIcon, Step, StepButton, type StepButtonProps, StepContent, type StepContentProps, StepLabel, type StepLabelProps, type StepProps, Stepper, type StepperProps, SubmitButton, SubscribeIcon, SunIcon, SuspendUserIcon, Switch, type SwitchProps, type SxProp, Tab, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableContainer, type TableContainerProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TablePagination, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, TableSortLabel, type TableSortLabelProps, Tabs, type TabsProps, TagIcon, TechnicalSkillsIcon, TextField, type TextFieldProps, TextFieldsIcon, TickIcon, Timeline, TimelineConnector, type TimelineConnectorProps, TimelineContent, type TimelineContentProps, TimelineDot, type TimelineDotColor, type TimelineDotProps, type TimelineDotVariant, TimelineItem, type TimelineItemProps, TimelineOppositeContent, type TimelineOppositeContentProps, type TimelinePosition, type TimelineProps, TimelineSeparator, type TimelineSeparatorProps, TimerIcon, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Tooltip, type TooltipProps, TrashIcon, type TreeNode, TreeSelect, type TreeSelectMultiValue, type TreeSelectProps, type TreeSelectValue, TrendingFlatIcon, TrendingUpIcon, Typography, type TypographyProps, UnArchivedIcon, UnlockIcon, UnsubscribeIcon, UploadIcon, UserAssignIcon, UserIcon, type UserOption, UserSelectionField, type UserSelectionFieldProps, UsersIcon, ViewIcon, WorkItemIcon, XCircleIcon, Zoom, ZoomInIcon, ZoomOutIcon, type ZoomProps, getAllCountries, getCitiesByName, getCitiesOfCountry, getCitiesOfState, getCityByName, getCountriesByName, getCountryByCode, getCountryByName, getStateByCode, getStateByName, getStatesByName, getStatesOfCountry, transformLegacyTodos, useCitiesSearch, useCountriesSearch, useRufousTheme, useStatesSearch };