@rufous/ui 0.3.0 → 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.cts 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) */
@@ -762,6 +1206,15 @@ interface AutocompleteProps<T = string> {
762
1206
  style?: CSSProperties;
763
1207
  /** Scoped style overrides. Supports nested CSS selectors with & */
764
1208
  sx?: SxProp;
1209
+ /**
1210
+ * Controlled open state. When provided the dropdown respects this value.
1211
+ * Pair with `onOpen` and `onClose` to sync your own state:
1212
+ * ```
1213
+ * const [open, setOpen] = useState(false);
1214
+ * <Autocomplete open={open} onOpen={() => setOpen(true)} onClose={() => setOpen(false)} />
1215
+ * ```
1216
+ */
1217
+ open?: boolean;
765
1218
  /** Called when the popup opens */
766
1219
  onOpen?: () => void;
767
1220
  /** Called when the popup closes */
@@ -795,6 +1248,18 @@ interface CircularProgressIconProps {
795
1248
  }
796
1249
  declare const CircularProgressIcon: React.FC<CircularProgressIconProps>;
797
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
+
798
1263
  interface RufousLogoLoaderProps {
799
1264
  /** Width of the loader in pixels — height is proportioned automatically */
800
1265
  size?: number;
@@ -810,6 +1275,11 @@ interface Column<T> {
810
1275
  header?: string;
811
1276
  headerName?: string;
812
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';
813
1283
  filterable?: boolean;
814
1284
  render?: (value: any, item: T) => React__default.ReactNode;
815
1285
  renderCell?: (params: {
@@ -827,6 +1297,12 @@ interface Column<T> {
827
1297
  row: T;
828
1298
  field: string;
829
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;
830
1306
  width?: string | number;
831
1307
  minWidth?: string | number;
832
1308
  maxWidth?: string | number;
@@ -835,6 +1311,41 @@ interface Column<T> {
835
1311
  hidden?: boolean;
836
1312
  type?: 'string' | 'number' | 'date' | 'boolean' | 'actions' | 'status';
837
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;
838
1349
  editable?: boolean;
839
1350
  onEnter?: (params: {
840
1351
  value: any;
@@ -848,9 +1359,79 @@ interface Column<T> {
848
1359
  }) => void;
849
1360
  headerClassName?: string;
850
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;
851
1368
  hideable?: boolean;
852
1369
  disableColumnMenu?: boolean;
853
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;
854
1435
  }
855
1436
  interface Action<T> {
856
1437
  label: string;
@@ -862,18 +1443,89 @@ interface Action<T> {
862
1443
  interface DataGridToolbarSlot {
863
1444
  content: React__default.ReactNode;
864
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;
865
1477
  }
866
1478
  interface PaginationModel {
867
1479
  /** 0-indexed current page */
868
1480
  page: number;
869
1481
  pageSize: number;
870
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
+ }
871
1517
  interface DataGridProps<T> {
872
1518
  columns: Column<T>[];
873
1519
  data: T[];
874
1520
  actions?: Action<T>[] | ((item: T) => Action<T>[]);
875
- /** Show a loading overlay over the table body */
1521
+ /** Show a loading indicator over the table body */
876
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';
877
1529
  /** Show the pagination bar. Defaults to true. */
878
1530
  pagination?: boolean;
879
1531
  /**
@@ -906,19 +1558,165 @@ interface DataGridProps<T> {
906
1558
  value: any;
907
1559
  }) => void;
908
1560
  /** Extra buttons/components rendered beside the Export button in the header row */
909
- 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[];
910
1571
  /** Extra content rendered in a second row below the header */
911
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;
912
1699
  }
913
1700
 
914
1701
  declare function DataGrid<T extends {
915
1702
  id: string | number;
916
- }>({ 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;
917
1704
 
918
1705
  type SelectOption = {
919
1706
  value: string | number;
920
1707
  label: string;
921
1708
  disabled?: boolean;
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;
922
1720
  };
923
1721
  interface SelectProps {
924
1722
  options: SelectOption[] | string[];
@@ -934,6 +1732,8 @@ interface SelectProps {
934
1732
  disabled?: boolean;
935
1733
  required?: boolean;
936
1734
  multiple?: boolean;
1735
+ /** Group options by returning a category string */
1736
+ groupBy?: (option: SelectOption) => string;
937
1737
  className?: string;
938
1738
  style?: CSSProperties;
939
1739
  sx?: SxProp;
@@ -1008,7 +1808,14 @@ interface RadioGroupProps {
1008
1808
  style?: CSSProperties;
1009
1809
  sx?: SxProp;
1010
1810
  }
1011
- 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>>;
1012
1819
 
1013
1820
  interface RatingProps {
1014
1821
  value?: number | null;
@@ -1165,10 +1972,116 @@ interface ListSubheaderProps {
1165
1972
  }
1166
1973
  declare const ListSubheader: React__default.FC<ListSubheaderProps>;
1167
1974
 
1168
- 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 {
1169
2081
  variant?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "subtitle1" | "subtitle2" | "body1" | "body2" | "caption" | "overline" | "button";
1170
2082
  component?: keyof React__default.JSX.IntrinsicElements;
1171
2083
  align?: "inherit" | "left" | "center" | "right" | "justify";
2084
+ /** Palette token (`primary`, `secondary`, `textPrimary`, …) or any CSS colour. */
1172
2085
  color?: "primary" | "secondary" | "textPrimary" | "textSecondary" | "error" | string;
1173
2086
  noWrap?: boolean;
1174
2087
  gutterBottom?: boolean;
@@ -1209,51 +2122,20 @@ interface TooltipProps {
1209
2122
  }
1210
2123
  declare const Tooltip: React__default.FC<TooltipProps>;
1211
2124
 
1212
- interface BoxProps extends React.HTMLAttributes<HTMLElement> {
2125
+ interface BoxProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1213
2126
  component?: keyof React.JSX.IntrinsicElements;
1214
2127
  children?: ReactNode;
1215
- display?: string;
1216
- flexDirection?: string;
1217
- alignItems?: string;
1218
- justifyContent?: string;
1219
- gap?: string | number;
1220
- padding?: string | number;
1221
- margin?: string | number;
1222
- width?: string | number;
1223
- height?: string | number;
1224
- minWidth?: string | number;
1225
- maxWidth?: string | number;
1226
- minHeight?: string | number;
1227
- maxHeight?: string | number;
1228
- flex?: string | number;
1229
- flexWrap?: string;
1230
- flexGrow?: number;
1231
- flexShrink?: number;
1232
- overflow?: string;
1233
- position?: string;
1234
- top?: string | number;
1235
- right?: string | number;
1236
- bottom?: string | number;
1237
- left?: string | number;
1238
- borderRadius?: string | number;
1239
- bgcolor?: string;
1240
- color?: string;
1241
2128
  className?: string;
1242
2129
  style?: CSSProperties;
1243
2130
  sx?: SxProp;
1244
2131
  }
1245
2132
  declare const Box: React.ForwardRefExoticComponent<BoxProps & React.RefAttributes<HTMLElement>>;
1246
2133
 
1247
- interface StackProps extends React.HTMLAttributes<HTMLElement> {
2134
+ interface StackProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1248
2135
  direction?: "row" | "row-reverse" | "column" | "column-reverse";
1249
2136
  spacing?: number | string;
1250
- alignItems?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
1251
- justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
1252
2137
  divider?: ReactNode;
1253
- flexWrap?: "nowrap" | "wrap" | "wrap-reverse";
1254
2138
  useFlexGap?: boolean;
1255
- flex?: string | number;
1256
- overflow?: string;
1257
2139
  component?: keyof React.JSX.IntrinsicElements;
1258
2140
  children: ReactNode;
1259
2141
  className?: string;
@@ -1262,7 +2144,7 @@ interface StackProps extends React.HTMLAttributes<HTMLElement> {
1262
2144
  }
1263
2145
  declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLElement>>;
1264
2146
 
1265
- interface GridProps extends React.HTMLAttributes<HTMLElement> {
2147
+ interface GridProps extends Omit<React.HTMLAttributes<HTMLElement>, "color">, SystemProps {
1266
2148
  container?: boolean;
1267
2149
  item?: boolean;
1268
2150
  xs?: number | "auto" | true;
@@ -1276,8 +2158,6 @@ interface GridProps extends React.HTMLAttributes<HTMLElement> {
1276
2158
  md?: number;
1277
2159
  };
1278
2160
  direction?: "row" | "row-reverse" | "column" | "column-reverse";
1279
- alignItems?: string;
1280
- justifyContent?: string;
1281
2161
  wrap?: "nowrap" | "wrap" | "wrap-reverse";
1282
2162
  zeroMinWidth?: boolean;
1283
2163
  component?: keyof React.JSX.IntrinsicElements;
@@ -1288,6 +2168,127 @@ interface GridProps extends React.HTMLAttributes<HTMLElement> {
1288
2168
  }
1289
2169
  declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLElement>>;
1290
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
+
1291
2292
  interface PaperProps extends React.HTMLAttributes<HTMLElement> {
1292
2293
  elevation?: number;
1293
2294
  square?: boolean;
@@ -1543,6 +2544,26 @@ interface DrawerProps {
1543
2544
  }
1544
2545
  declare const Drawer: React__default.FC<DrawerProps>;
1545
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
+
1546
2567
  interface SnackbarProps {
1547
2568
  open: boolean;
1548
2569
  onClose?: (reason: "timeout" | "clickaway" | "escapeKeyDown") => void;
@@ -1562,6 +2583,66 @@ interface SnackbarProps {
1562
2583
  }
1563
2584
  declare const Snackbar: React__default.FC<SnackbarProps>;
1564
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
+
1565
2646
  interface LinkProps {
1566
2647
  href?: string;
1567
2648
  target?: string;
@@ -1731,6 +2812,257 @@ interface PhoneFieldProps {
1731
2812
  }
1732
2813
  declare const PhoneField: React__default.ForwardRefExoticComponent<PhoneFieldProps & React__default.RefAttributes<HTMLDivElement>>;
1733
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
+
1734
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' | '|';
1735
3067
  type EditorVariant = 'default' | 'basic';
1736
3068
  interface RufousTextEditorProps {
@@ -1817,4 +3149,151 @@ interface MentionItemData {
1817
3149
  shortName?: string;
1818
3150
  }
1819
3151
 
1820
- 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 };