dhre-ui-kit 3.2.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.mjs CHANGED
@@ -4,11 +4,11 @@ import { Dimensions, StyleSheet, Text, Pressable, View, Platform, KeyboardAvoidi
4
4
  import Svg, { Defs, LinearGradient, Stop, RadialGradient, Rect, Circle, Svg as Svg$1, Path } from 'react-native-svg';
5
5
  import Modal from 'react-native-modal';
6
6
  import Clipboard from '@react-native-clipboard/clipboard';
7
- import LinearGradient$1 from 'react-native-linear-gradient';
8
7
  import Tooltip from 'react-native-walkthrough-tooltip';
9
8
  import Pdf from 'react-native-pdf';
10
9
  import * as Progress from 'react-native-progress';
11
10
  import { Swipeable } from 'react-native-gesture-handler';
11
+ import LinearGradient$1 from 'react-native-linear-gradient';
12
12
  import LottieView from 'lottie-react-native';
13
13
  import DeviceInfo from 'react-native-device-info';
14
14
  import { Calendar } from 'react-native-calendars';
@@ -117,6 +117,7 @@ var Theme = /* @__PURE__ */ ((Theme2) => {
117
117
  Theme2["SURFACE_DISABLE"] = "SURFACE_DISABLE";
118
118
  Theme2["SURFACE_DISABLE_DARK"] = "SURFACE_DISABLE_DARK";
119
119
  Theme2["SURFACE_DISABLE_LIGHT"] = "SURFACE_DISABLE_LIGHT";
120
+ Theme2["SURFACE_DISABLE_SELECTED"] = "SURFACE_DISABLE_SELECTED";
120
121
  Theme2["SURFACE_INVERTED"] = "SURFACE_INVERTED";
121
122
  Theme2["SURFACE_INVERTED_TRANSPARENT"] = "SURFACE_INVERTED_TRANSPARENT";
122
123
  Theme2["SURFACE_DROP_SHADOW"] = "SURFACE_DROP_SHADOW";
@@ -129,6 +130,8 @@ var Theme = /* @__PURE__ */ ((Theme2) => {
129
130
  Theme2["SURFACE_WARNING_TRANSPARENT"] = "SURFACE_WARNING_TRANSPARENT";
130
131
  Theme2["SURFACE_ERROR"] = "SURFACE_ERROR";
131
132
  Theme2["SURFACE_ERROR_TRANSPARENT"] = "SURFACE_ERROR_TRANSPARENT";
133
+ Theme2["SURFACE_HIGHLIGHT"] = "SURFACE_HIGHLIGHT";
134
+ Theme2["SURFACE_POPOVER_HIGHLIGHT"] = "SURFACE_POPOVER_HIGHLIGHT";
132
135
  Theme2["CONTENT_PRIMARY"] = "CONTENT_PRIMARY";
133
136
  Theme2["CONTENT_SECONDRY"] = "CONTENT_SECONDRY";
134
137
  Theme2["CONTENT_TERTIARY"] = "CONTENT_TERTIARY";
@@ -136,6 +139,8 @@ var Theme = /* @__PURE__ */ ((Theme2) => {
136
139
  Theme2["CONTENT_DISABLE_DARK"] = "CONTENT_DISABLE_DARK";
137
140
  Theme2["CONTENT_DISABLE_LIGHT"] = "CONTENT_DISABLE_LIGHT";
138
141
  Theme2["CONTENT_INVERTED"] = "CONTENT_INVERTED";
142
+ Theme2["CONTENT_HIGHLIGHT"] = "CONTENT_HIGHLIGHT";
143
+ Theme2["CONTENT_ARROW_HIGHLIGHT"] = "CONTENT_ARROW_HIGHLIGHT";
139
144
  Theme2["CONTENT_STATIC"] = "CONTENT_STATIC";
140
145
  Theme2["CONTENT_PRIMARY_STATIC"] = "CONTENT_PRIMARY_STATIC";
141
146
  Theme2["CONTENT_SECONDRY_STATIC"] = "CONTENT_SECONDRY_STATIC";
@@ -172,6 +177,13 @@ var Theme = /* @__PURE__ */ ((Theme2) => {
172
177
  Theme2["BUTTON_DISABLED_FILL"] = "BUTTON_DISABLED_FILL";
173
178
  Theme2["BUTTON_DISABLED_FILL_2"] = "BUTTON_DISABLED_FILL_2";
174
179
  Theme2["BUTTON_SUCCESS_FILL"] = "BUTTON_SUCCESS_FILL";
180
+ Theme2["BUTTON_TERTIARY_DEFAULT_FILL"] = "BUTTON_TERTIARY_DEFAULT_FILL";
181
+ Theme2["BUTTON_TERTIARY_HOVER_FILL"] = "BUTTON_TERTIARY_HOVER_FILL";
182
+ Theme2["BUTTON_TERTIARY_DISABLED_FILL"] = "BUTTON_TERTIARY_DISABLED_FILL";
183
+ Theme2["BUTTON_SECONDARY_DEFAULT_STROKE"] = "BUTTON_SECONDARY_DEFAULT_STROKE";
184
+ Theme2["BUTTON_SECONDARY_DISABLED_STROKE"] = "BUTTON_SECONDARY_DISABLED_STROKE";
185
+ Theme2["BUTTON_QUATERNARY_DEFAULT_STROKE"] = "BUTTON_QUATERNARY_DEFAULT_STROKE";
186
+ Theme2["BUTTON_QUATERNARY_DISABLED_STROKE"] = "BUTTON_QUATERNARY_DISABLED_STROKE";
175
187
  Theme2["NOTIFICATIONS_INFO"] = "NOTIFICATIONS_INFO";
176
188
  Theme2["NOTIFICATIONS_HIGHLIGHT"] = "NOTIFICATIONS_HIGHLIGHT";
177
189
  Theme2["BLUR_20"] = "BLUR_20";
@@ -184,11 +196,19 @@ var Theme = /* @__PURE__ */ ((Theme2) => {
184
196
  Theme2["STROKE_SUCCESS"] = "STROKE_SUCCESS";
185
197
  Theme2["STROKE_WARNING"] = "STROKE_WARNING";
186
198
  Theme2["STROKE_INFO"] = "STROKE_INFO";
199
+ Theme2["STROKE_DISABLED_LIGHT"] = "STROKE_DISABLED_LIGHT";
187
200
  Theme2["STROKE_DISABLED_DARK"] = "STROKE_DISABLED_DARK";
188
201
  Theme2["STROKE_DISABLED_DARK2"] = "STROKE_DISABLED_DARK2";
189
202
  Theme2["STROKE_ACTIVE"] = "STROKE_ACTIVE";
190
203
  Theme2["STROKE_DISABLED_SELECTED"] = "STROKE_DISABLED_SELECTED";
191
204
  Theme2["SHADOW_10"] = "SHADOW_10";
205
+ Theme2["SHADOW_5"] = "SHADOW_5";
206
+ Theme2["SHADOW_20"] = "SHADOW_20";
207
+ Theme2["SHADOW_25"] = "SHADOW_25";
208
+ Theme2["SHADOW_HOVER_10"] = "SHADOW_HOVER_10";
209
+ Theme2["SHADOW_HOVER_20"] = "SHADOW_HOVER_20";
210
+ Theme2["SHADOW_HOVER_40"] = "SHADOW_HOVER_40";
211
+ Theme2["SHADOW_SOFT_LIGHTEST"] = "SHADOW_SOFT_LIGHTEST";
192
212
  return Theme2;
193
213
  })(Theme || {});
194
214
 
@@ -379,19 +399,22 @@ const DHRE_COLORS_TEXT = {
379
399
  DH_SOFT_GRAY: "#EEEEEE80"
380
400
  };
381
401
  const DHRE_DEEP_SPACE_BLUE = {
382
- 950: "#000A28",
383
- 900: "#18213B",
384
- 800: "#0E2350",
385
- 700: "#334671",
386
- 600: "#4D5F86",
387
- 500: "#6A7897",
388
- 400: "#8994AF",
389
- 300: "#BFC7DB",
390
- 200: "#D8DDEA",
391
- 100: "#F5F8FF",
392
- DSP_900_TRANSPERANT_20: "rgba(0, 10, 40, 0.20)",
393
- DSP_900_TRANSPERANT_10: "rgba(0, 10, 40, 0.10)",
394
- DSP_900_TRANSPERANT_30: "rgba(0, 10, 40, 0.30)"
402
+ 950: "#0F1B2D",
403
+ 900: "#203041",
404
+ 800: "#3F4957",
405
+ 700: "#575F6C",
406
+ 600: "#6F7681",
407
+ 500: "#878D96",
408
+ 400: "#9FA4AB",
409
+ 300: "#B7BBC0",
410
+ 200: "#CFD1D5",
411
+ 100: "#E9E9E9",
412
+ 50: "#F3F4F4",
413
+ // Base rgb (39, 50, 66) = Deep Space Blue - Supporting/900. The 30% step has no
414
+ // corresponding DHDS export entry; extrapolated from the 10%/20% steps that do.
415
+ DSP_900_TRANSPERANT_10: "rgba(39, 50, 66, 0.10)",
416
+ DSP_900_TRANSPERANT_20: "rgba(39, 50, 66, 0.20)",
417
+ DSP_900_TRANSPERANT_30: "rgba(39, 50, 66, 0.30)"
395
418
  };
396
419
  const DHRE_CORE_BLUE = {
397
420
  400: "#15214B",
@@ -401,6 +424,12 @@ const DHRE_CORE_BLUE = {
401
424
  50: "#E3E9FC",
402
425
  TRANSPARENT_60: "rgba(0, 30, 140, 0.60)"
403
426
  };
427
+ const DHRE_CORE_TEAL = {
428
+ 500: "#003F48",
429
+ 400: "#077280",
430
+ 300: "#009DB3",
431
+ 100: "#9ADFE8"
432
+ };
404
433
  const DHRE_CYAN_HIGHLIGHT = {
405
434
  600: "#0072B5",
406
435
  500: "#009FD4",
@@ -418,49 +447,50 @@ const DHRE_WHITE = {
418
447
  TRANSPARENT_10: "rgba(255, 255, 255, 0.10)"
419
448
  };
420
449
  const DHRE_INFO_BLUE = {
421
- 400: "#07556C",
422
- 300: "#279DC1",
423
- 200: "#52C5E8",
424
- 100: "#C1EAFC",
425
- 50: "#E9F8FF",
426
- TRANSPARENT_35: "rgba(233, 248, 255, 0.35)",
427
- TRASNPARENT: "rgba(233, 248, 255, 0.10)"
450
+ 400: "#0081AD",
451
+ 300: "#00B4E0",
452
+ 200: "#4DCBE9",
453
+ 100: "#99E1F3",
454
+ 50: "#E5F7FC",
455
+ TRANSPARENT_35: "rgba(229, 247, 252, 0.35)",
456
+ TRASNPARENT: "rgba(229, 247, 252, 0.10)"
428
457
  };
429
458
  const DHRE_SUCCESS_GREEN = {
430
- 400: "#347243",
431
- 300: "#4EAB65",
432
- 200: "#89C798",
433
- 100: "#C4E3CC",
459
+ 400: "#00A882",
460
+ 300: "#23DBB5",
461
+ 200: "#80EFD8",
462
+ 100: "#A7F1E1",
434
463
  50: "#EBF7EE",
435
- TRANSPARENT_50: "rgba(137, 199, 152, 0.50)",
436
- TRANSPARENT_10: "rgba(137, 199, 152, 0.10)",
437
- TRANSPARENT_30: "rgba(137, 199, 152, 0.30)"
464
+ TRANSPARENT_50: "rgba(0, 168, 130, 0.50)",
465
+ TRANSPARENT_10: "rgba(0, 168, 130, 0.10)",
466
+ TRANSPARENT_30: "rgba(0, 168, 130, 0.30)"
438
467
  };
439
468
  const DHRE_ORANGE_WARNING = {
440
- 400: "#A4560E",
469
+ 400: "#D26C0E",
441
470
  300: "#EB8425",
442
- 200: "#EEAA6A",
443
- 100: "#FFE0C3",
471
+ 200: "#F1A966",
472
+ 100: "#F7CEA8",
444
473
  50: "#FFF4EA",
445
- TRANSPARENT_60: "#rgba(238, 170, 106, 0.60)",
446
- TRANSPARENT_10: "rgba(238, 170, 106, 0.10)"
474
+ TRANSPARENT_60: "rgba(241, 169, 102, 0.60)",
475
+ TRANSPARENT_10: "rgba(241, 169, 102, 0.10)"
447
476
  };
448
477
  const DHRE_RED_ERROR = {
449
- 400: "#9D032C",
450
- 300: "#EB0542",
451
- 200: "#F0809E",
452
- 100: "#FCE1E8",
478
+ 400: "#8E0000",
479
+ 300: "#DB2348",
480
+ 200: "#F67F97",
481
+ 150: "#F1A7B6",
482
+ 100: "#FEBDCA",
453
483
  50: "#FFF2F5",
454
- TRANSPARENT_400_60: "rgba(235, 5, 66, 0.60)",
455
- TRANSPARENT_400_10: "rgba(235, 5, 66, 0.10)"
484
+ TRANSPARENT_400_60: "rgba(219, 35, 72, 0.60)",
485
+ TRANSPARENT_400_10: "rgba(219, 35, 72, 0.10)"
456
486
  };
457
487
  const DHRE_CONFIRMATION_ERROR_GRADIENT = {
458
- light: ["#F0809E", "#FFFFFF"],
459
- dark: ["#EB0542", "#000A28"]
488
+ light: ["#F67F97", "#FFFFFF"],
489
+ dark: ["#F67F97", "#0F1B2D"]
460
490
  };
461
491
  const DHRE_CONFIRMATION_BASE_GRADIENT = {
462
- light: ["rgba(165, 233, 255, 0)", "#52C5E8"],
463
- dark: ["rgba(165, 233, 255, 0)", "#279DC1"]
492
+ light: ["rgba(0, 180, 224, 0)", "#00B4E0"],
493
+ dark: ["rgba(0, 180, 224, 0)", "#00B4E0"]
464
494
  };
465
495
  const GRADIENT_COLORS_SUCCESS = {
466
496
  light: [
@@ -530,39 +560,39 @@ const GRADIENT_COLORS_PENDING = {
530
560
  const theme = {
531
561
  [Theme.SURFACE_PRIMARY]: {
532
562
  light: "#FFFFFF",
533
- dark: "#000A28"
563
+ dark: "#0F1B2D"
534
564
  },
535
565
  [Theme.SURFACE_PRIMARY_NAKHEEL]: {
536
566
  light: "#E3D6BF",
537
567
  dark: "#000000"
538
568
  },
539
569
  [Theme.SURFACE_PRIMARY_CARDS]: {
540
- light: "#F5F8FF",
541
- dark: "#18213B"
570
+ light: "#F3F4F4",
571
+ dark: "#203041"
542
572
  },
543
573
  [Theme.SURFACE_PRIMARY_TRANSPARENT]: {
544
- light: "rgba(0, 10, 40, 0.10)",
574
+ light: "rgba(39, 50, 66, 0.10)",
545
575
  dark: "rgba(255, 255, 255, 0.10)"
546
576
  },
547
577
  [Theme.SURFACE_SECONDARY]: {
548
- light: "#F5F8FF",
549
- dark: "#0E2350"
578
+ light: "#E9E9E9",
579
+ dark: "#3F4957"
550
580
  },
551
581
  [Theme.SURFACE_SECONDARY_NAKHEEL]: {
552
582
  light: "#F8F7F6",
553
583
  dark: "#00263A"
554
584
  },
555
585
  [Theme.SURFACE_SECONDARY_TRANSPARENT]: {
556
- light: "rgba(0, 10, 40, 0.10)",
557
- dark: "rgba(0, 10, 40, 0.10)"
586
+ light: "rgba(154, 223, 232, 0.05)",
587
+ dark: "rgba(39, 50, 66, 0.10)"
558
588
  },
559
589
  [Theme.SURFACE_TERTIARY]: {
560
- light: "#D8DDEA",
561
- dark: "#334671"
590
+ light: "#CFD1D5",
591
+ dark: "#575F6C"
562
592
  },
563
593
  [Theme.SURFACE_TERTIARY_TRANSPARENT]: {
564
- light: "rgba(60, 172, 252, 0.10)",
565
- dark: "rgba(60, 172, 252, 0.10)"
594
+ light: "rgba(0, 157, 179, 0.10)",
595
+ dark: "rgba(0, 157, 179, 0.05)"
566
596
  },
567
597
  [Theme.SURFACE_STATIC]: {
568
598
  light: "#FFFFFF",
@@ -580,16 +610,20 @@ const theme = {
580
610
  light: "#E1E1E1",
581
611
  dark: "#A7A7A7"
582
612
  },
613
+ [Theme.SURFACE_DISABLE_SELECTED]: {
614
+ light: "#9ADFE8",
615
+ dark: "#003F48"
616
+ },
583
617
  [Theme.SURFACE_DISABLE_DARK]: {
584
- light: "#334671",
585
- dark: "#8994AF"
618
+ light: "#CFD1D5",
619
+ dark: "#575F6C"
586
620
  },
587
621
  [Theme.SURFACE_DISABLE_LIGHT]: {
588
- light: "#BFC7DB",
589
- dark: "#334671"
622
+ light: "#6F7681",
623
+ dark: "#CFD1D5"
590
624
  },
591
625
  [Theme.SURFACE_INVERTED]: {
592
- light: "#000A28",
626
+ light: "#0F1B2D",
593
627
  dark: "#FFFFFF"
594
628
  },
595
629
  [Theme.SURFACE_INVERTED_TRANSPARENT]: {
@@ -601,51 +635,59 @@ const theme = {
601
635
  dark: "#373737"
602
636
  },
603
637
  [Theme.SURFACE_BLUR]: {
604
- light: "rgba(233, 248, 255, 0.35)",
638
+ light: "rgba(229, 247, 252, 0.50)",
605
639
  dark: "rgba(0, 0, 0, 0.50)"
606
640
  },
607
641
  [Theme.SURFACE_SUCCESS]: {
608
- light: "#89C798",
609
- dark: "#4EAB65"
642
+ light: "#23DBB5",
643
+ dark: "#23DBB5"
610
644
  },
611
645
  [Theme.SURFACE_SUCCESS_TRANSPARENT]: {
612
- light: "rgba(137, 199, 152, 0.10)",
613
- dark: "rgba(137, 199, 152, 0.50)"
646
+ light: "rgba(0, 168, 130, 0.10)",
647
+ dark: "rgba(0, 168, 130, 0.20)"
614
648
  },
615
649
  [Theme.SURFACE_INFO]: {
616
- light: "#52C5E8",
617
- dark: "#279DC1"
650
+ light: "#00B4E0",
651
+ dark: "#00B4E0"
618
652
  },
619
653
  [Theme.SURFACE_INFO_TRANSPARENT]: {
620
- light: "rgba(233, 248, 255, 0.35)",
621
- dark: "rgba(233, 248, 255, 0.10)"
654
+ light: "rgba(229, 247, 252, 0.50)",
655
+ dark: "rgba(229, 247, 252, 0.10)"
622
656
  },
623
657
  [Theme.SURFACE_WARNING]: {
624
- light: "#FFF4EA",
625
- dark: "#A4560E"
658
+ light: "#EB8425",
659
+ dark: "#EB8425"
626
660
  },
627
661
  [Theme.SURFACE_WARNING_TRANSPARENT]: {
628
- light: "rgba(238, 170, 106, 0.10)",
629
- dark: "rgba(238, 170, 106, 0.60)"
662
+ light: "rgba(241, 169, 102, 0.20)",
663
+ dark: "rgba(241, 169, 102, 0.20)"
630
664
  },
631
665
  [Theme.SURFACE_ERROR]: {
632
- light: "#F0809E",
633
- dark: "#EB0542"
666
+ light: "#F67F97",
667
+ dark: "#F67F97"
634
668
  },
635
669
  [Theme.SURFACE_ERROR_TRANSPARENT]: {
636
- light: "rgba(235, 5, 66, 0.10)",
637
- dark: "rgba(235, 5, 66, 0.60)"
670
+ light: "rgba(219, 35, 72, 0.10)",
671
+ dark: "rgba(219, 35, 72, 0.10)"
672
+ },
673
+ [Theme.SURFACE_HIGHLIGHT]: {
674
+ light: "#009DB3",
675
+ dark: "#009DB3"
676
+ },
677
+ [Theme.SURFACE_POPOVER_HIGHLIGHT]: {
678
+ light: "#009DB3",
679
+ dark: "#009DB3"
638
680
  },
639
681
  [Theme.CONTENT_PRIMARY]: {
640
- light: "#000A28",
682
+ light: "#0F1B2D",
641
683
  dark: "#FFFFFF"
642
684
  },
643
685
  [Theme.CONTENT_SECONDRY]: {
644
- light: "#0E2350",
645
- dark: "#BFC7DB"
686
+ light: "#3F4957",
687
+ dark: "#CFD1D5"
646
688
  },
647
689
  [Theme.CONTENT_TERTIARY]: {
648
- light: "#6F7681",
690
+ light: "#575F6C",
649
691
  dark: "#9FA4AB"
650
692
  },
651
693
  [Theme.CONTENT_SECONDARY_TEXT]: {
@@ -661,16 +703,24 @@ const theme = {
661
703
  dark: "#686868"
662
704
  },
663
705
  [Theme.CONTENT_DISABLE_DARK]: {
664
- light: "#6A7897",
665
- dark: "#6A7897"
706
+ light: "#B7BBC0",
707
+ dark: "#878D96"
666
708
  },
667
709
  [Theme.CONTENT_DISABLE_LIGHT]: {
668
- light: "#BFC7DB",
669
- dark: "#BFC7DB"
710
+ light: "#878D96",
711
+ dark: "#B7BBC0"
670
712
  },
671
713
  [Theme.CONTENT_INVERTED]: {
672
714
  light: "#FFFFFF",
673
- dark: "#000A28"
715
+ dark: "#0F1B2D"
716
+ },
717
+ [Theme.CONTENT_HIGHLIGHT]: {
718
+ light: "#009DB3",
719
+ dark: "#009DB3"
720
+ },
721
+ [Theme.CONTENT_ARROW_HIGHLIGHT]: {
722
+ light: "#80EFD8",
723
+ dark: "#80EFD8"
674
724
  },
675
725
  [Theme.CONTENT_STATIC]: {
676
726
  light: "#FFFFFF",
@@ -725,40 +775,40 @@ const theme = {
725
775
  dark: "#19394A"
726
776
  },
727
777
  [Theme.WARNING]: {
728
- light: "#EB8425",
729
- dark: "#EEAA6A"
778
+ light: "#D26C0E",
779
+ dark: "#EB8425"
730
780
  },
731
781
  [Theme.WARNING_EMPHASIS]: {
732
- light: "#A4560E",
733
- dark: "#FFE0C3"
782
+ light: "#9A4401",
783
+ dark: "#F7CEA8"
734
784
  },
735
785
  [Theme.SUCCESS]: {
736
- light: "#4EAB65",
737
- dark: "#89C798"
786
+ light: "#018869",
787
+ dark: "#80EFD8"
738
788
  },
739
789
  [Theme.SUCCESS_EMPHASIS]: {
740
- light: "#347243",
741
- dark: "#C4E3CC"
790
+ light: "#01513F",
791
+ dark: "#A7F1E1"
742
792
  },
743
793
  [Theme.INFO]: {
744
- light: "#279DC1",
745
- dark: "#52C5E8"
794
+ light: "#0081AD",
795
+ dark: "#00B4E0"
746
796
  },
747
797
  [Theme.INFO_EMPHASIS]: {
748
- light: "#07556C",
749
- dark: "#C1EAFC"
798
+ light: "#03526D",
799
+ dark: "#99E1F3"
750
800
  },
751
801
  [Theme.ERROR]: {
752
- light: "#EB0542",
753
- dark: "#F0809E"
802
+ light: "#DB2348",
803
+ dark: "#F67F97"
754
804
  },
755
805
  [Theme.ERROR_EMPHASIS]: {
756
- light: "#9D032C",
757
- dark: "#FCE1E8"
806
+ light: "#8E0000",
807
+ dark: "#FEBDCA"
758
808
  },
759
809
  [Theme.LINK]: {
760
- light: "#25C6FB",
761
- dark: "#2CD8FD"
810
+ light: "#0F1B2D",
811
+ dark: "#FFFFFF"
762
812
  },
763
813
  [Theme.LINK_INVERTED]: {
764
814
  light: "#0072B5",
@@ -781,40 +831,68 @@ const theme = {
781
831
  dark: "#C2C2C2"
782
832
  },
783
833
  [Theme.BUTTON_DEFAULT_FILL]: {
784
- light: "#000A28",
834
+ light: "#0F1B2D",
785
835
  dark: "#FFFFFF"
786
836
  },
787
837
  [Theme.BUTTON_HOVER_FILL]: {
788
- light: "#0E2350",
789
- dark: "#D8DDEA"
838
+ light: "#3F4957",
839
+ dark: "#CFD1D5"
790
840
  },
791
841
  [Theme.BUTTON_HOVER_FILL_SECONDARY]: {
792
- light: "#BFC7DB",
793
- dark: "#0E2350"
842
+ light: "#F3F4F4",
843
+ dark: "#203041"
794
844
  },
795
845
  [Theme.BUTTON_INVRTED_FILL]: {
796
846
  light: "#FFFFFF",
797
- dark: "#000A28"
847
+ dark: "#0F1B2D"
798
848
  },
799
849
  [Theme.BUTTON_DISABLED_FILL]: {
800
- light: "#BFC7DB",
801
- dark: "#D8DDEA"
850
+ light: "#203041",
851
+ dark: "#F3F4F4"
802
852
  },
803
853
  [Theme.BUTTON_DISABLED_FILL_2]: {
804
854
  light: "#8994AF",
805
855
  dark: "#BFC7DB"
806
856
  },
807
857
  [Theme.BUTTON_SUCCESS_FILL]: {
808
- light: "#4EAB65",
809
- dark: "#4EAB65"
858
+ light: "#23DBB5",
859
+ dark: "#23DBB5"
860
+ },
861
+ [Theme.BUTTON_TERTIARY_DEFAULT_FILL]: {
862
+ light: "#009DB3",
863
+ dark: "#009DB3"
864
+ },
865
+ [Theme.BUTTON_TERTIARY_HOVER_FILL]: {
866
+ light: "#077280",
867
+ dark: "#077280"
868
+ },
869
+ [Theme.BUTTON_TERTIARY_DISABLED_FILL]: {
870
+ light: "#9ADFE8",
871
+ dark: "#003F48"
872
+ },
873
+ [Theme.BUTTON_SECONDARY_DEFAULT_STROKE]: {
874
+ light: "#0F1B2D",
875
+ dark: "#FFFFFF"
876
+ },
877
+ [Theme.BUTTON_SECONDARY_DISABLED_STROKE]: {
878
+ light: "#CFD1D5",
879
+ dark: "#878D96"
880
+ },
881
+ [Theme.BUTTON_QUATERNARY_DEFAULT_STROKE]: {
882
+ light: "#009DB3",
883
+ dark: "#009DB3"
884
+ },
885
+ [Theme.BUTTON_QUATERNARY_DISABLED_STROKE]: {
886
+ light: "#9ADFE8",
887
+ dark: "#003F48"
810
888
  },
811
889
  [Theme.NOTIFICATIONS_INFO]: {
812
- light: "rgba(0, 10, 40, 0.20)",
890
+ light: "rgba(39, 50, 66, 0.20)",
813
891
  dark: "rgba(255, 255, 255, 0.30)"
814
892
  },
815
893
  [Theme.NOTIFICATIONS_HIGHLIGHT]: {
816
- light: "#0072B5",
817
- dark: "#2CD8FD"
894
+ light: "#23DBB5",
895
+ dark: "#80EFD8"
818
896
  },
819
897
  [Theme.BLUR_20]: {
820
898
  light: "rgba(255, 255, 255, 0.20)",
@@ -825,7 +903,7 @@ const theme = {
825
903
  dark: "rgba(0, 0, 0, 0.25)"
826
904
  },
827
905
  [Theme.STROKE_PRIMARY]: {
828
- dark: DHRE_DEEP_SPACE_BLUE[100],
906
+ dark: "#FFFFFF",
829
907
  light: DHRE_DEEP_SPACE_BLUE[950]
830
908
  },
831
909
  [Theme.STROKE_SECONDARY]: {
@@ -833,12 +911,12 @@ const theme = {
833
911
  light: DHRE_DEEP_SPACE_BLUE[400]
834
912
  },
835
913
  [Theme.STROKE_TERTIARY]: {
836
- dark: "#334671",
837
- light: "#BFC7DB"
914
+ dark: DHRE_DEEP_SPACE_BLUE[700],
915
+ light: DHRE_DEEP_SPACE_BLUE[300]
838
916
  },
839
917
  [Theme.STROKE_INVERTED]: {
840
918
  dark: DHRE_DEEP_SPACE_BLUE[950],
841
- light: DHRE_DEEP_SPACE_BLUE[300]
919
+ light: "#FFFFFF"
842
920
  },
843
921
  [Theme.STROKE_ERROR]: {
844
922
  dark: DHRE_RED_ERROR[200],
@@ -856,26 +934,59 @@ const theme = {
856
934
  dark: DHRE_ORANGE_WARNING[200],
857
935
  light: DHRE_ORANGE_WARNING[300]
858
936
  },
937
+ [Theme.STROKE_DISABLED_LIGHT]: {
938
+ dark: DHRE_DEEP_SPACE_BLUE[400],
939
+ light: DHRE_DEEP_SPACE_BLUE[600]
940
+ },
859
941
  [Theme.STROKE_DISABLED_DARK]: {
860
942
  dark: DHRE_DEEP_SPACE_BLUE[700],
861
- light: DHRE_DEEP_SPACE_BLUE[500]
943
+ light: DHRE_DEEP_SPACE_BLUE[300]
862
944
  },
863
945
  [Theme.STROKE_DISABLED_DARK2]: {
864
946
  dark: DHRE_DEEP_SPACE_BLUE[800],
865
947
  light: DHRE_DEEP_SPACE_BLUE[200]
866
948
  },
867
949
  [Theme.STROKE_ACTIVE]: {
868
- dark: "#009db3",
869
- light: "#009db3"
870
- // light-theme value pending DHDS Figma spec
950
+ dark: "#009DB3",
951
+ light: "#009DB3"
871
952
  },
872
953
  [Theme.STROKE_DISABLED_SELECTED]: {
873
- dark: "#003f48",
954
+ dark: "#003F48",
874
955
  light: "#9ADFE8"
875
956
  },
876
957
  [Theme.SHADOW_10]: {
877
958
  dark: "rgba(255, 255, 255, 0.20)",
878
959
  light: "rgba(0, 0, 0, 0.10)"
960
+ },
961
+ [Theme.SHADOW_5]: {
962
+ dark: "rgba(255, 255, 255, 0.05)",
963
+ light: "rgba(0, 0, 0, 0.05)"
964
+ },
965
+ [Theme.SHADOW_20]: {
966
+ dark: "rgba(255, 255, 255, 0.20)",
967
+ light: "rgba(0, 0, 0, 0.20)"
968
+ },
969
+ [Theme.SHADOW_25]: {
970
+ dark: "rgba(255, 255, 255, 0.25)",
971
+ light: "rgba(0, 0, 0, 0.25)"
972
+ },
973
+ [Theme.SHADOW_HOVER_10]: {
974
+ dark: "rgba(0, 157, 179, 0.10)",
975
+ light: "rgba(88, 195, 209, 0.10)"
976
+ },
977
+ [Theme.SHADOW_HOVER_20]: {
978
+ dark: "rgba(0, 157, 179, 0.20)",
979
+ light: "rgba(88, 195, 209, 0.20)"
980
+ },
981
+ [Theme.SHADOW_HOVER_40]: {
982
+ dark: "rgba(0, 157, 179, 0.40)",
983
+ light: "rgba(88, 195, 209, 0.40)"
984
+ },
985
+ // Figma: effects/dh-shadow/5, "Shadow/Soft/Lightest" (dropdown/menu surfaces).
986
+ [Theme.SHADOW_SOFT_LIGHTEST]: {
987
+ dark: "rgba(255, 255, 255, 0.05)",
988
+ light: "rgba(0, 10, 40, 0.05)"
989
+ // light-theme value pending DHDS Figma spec
879
990
  }
880
991
  };
881
992
 
@@ -1222,12 +1333,22 @@ const DHRE_IMAGE_SIZE = {
1222
1333
  CARD_MD: moderateScale(200)
1223
1334
  };
1224
1335
 
1336
+ const DHRE_STROKE = {
1337
+ NONE: 0,
1338
+ THIN: 1,
1339
+ // default dividers, input borders
1340
+ MEDIUM: 2,
1341
+ // focused state, selected borders
1342
+ THICK: 4
1343
+ // emphasis borders, active indicators
1344
+ };
1345
+
1225
1346
  const chipStyles = StyleSheet.create({
1226
1347
  base: {
1227
1348
  flexDirection: "row",
1228
1349
  alignItems: "center",
1229
1350
  justifyContent: "center",
1230
- borderWidth: 1,
1351
+ borderWidth: DHRE_STROKE.THIN,
1231
1352
  borderRadius: DHRE_RADIUS.PILL,
1232
1353
  gap: DHRE_PADDING.SM
1233
1354
  },
@@ -1258,24 +1379,26 @@ const getSizeStyle = (size) => size === "large" ? chipStyles.sizeLarge : chipSty
1258
1379
  function resolveContainerColors(themeColors, selected, disabled) {
1259
1380
  if (disabled) {
1260
1381
  return {
1261
- backgroundColor: selected ? themeColors[Theme.SURFACE_TERTIARY_TRANSPARENT] : themeColors[Theme.SURFACE_PRIMARY_TRANSPARENT],
1262
- borderColor: themeColors[Theme.CONTENT_DISABLE_DARK]
1382
+ backgroundColor: selected ? themeColors[Theme.SURFACE_DISABLE_SELECTED] : themeColors[Theme.SURFACE_PRIMARY_CARDS],
1383
+ borderColor: themeColors[Theme.CONTENT_TERTIARY]
1263
1384
  };
1264
1385
  }
1265
1386
  if (selected) {
1266
1387
  return {
1267
- backgroundColor: themeColors[Theme.SURFACE_INVERTED],
1268
- borderColor: themeColors[Theme.STROKE_SECONDARY]
1388
+ backgroundColor: themeColors[Theme.SURFACE_HIGHLIGHT],
1389
+ borderColor: "transparent"
1269
1390
  };
1270
1391
  }
1271
1392
  return {
1272
- backgroundColor: themeColors[Theme.SURFACE_SECONDARY],
1273
- borderColor: themeColors[Theme.STROKE_TERTIARY]
1393
+ backgroundColor: themeColors[Theme.SURFACE_PRIMARY],
1394
+ borderColor: themeColors[Theme.STROKE_PRIMARY]
1274
1395
  };
1275
1396
  }
1276
1397
  function resolveContentColor(themeColors, selected, disabled) {
1277
- if (disabled) return themeColors[Theme.CONTENT_DISABLE_DARK];
1278
- if (selected) return themeColors[Theme.CONTENT_INVERTED];
1398
+ if (disabled) {
1399
+ return selected ? themeColors[Theme.CONTENT_DISABLE_LIGHT] : themeColors[Theme.CONTENT_DISABLE_DARK];
1400
+ }
1401
+ if (selected) return themeColors[Theme.CONTENT_STATIC];
1279
1402
  return themeColors[Theme.CONTENT_PRIMARY];
1280
1403
  }
1281
1404
  const Chip = ({
@@ -1717,7 +1840,7 @@ const styles$w = StyleSheet.create({
1717
1840
  alignSelf: "center"
1718
1841
  }
1719
1842
  });
1720
- const BUTTON_COLORS = {
1843
+ ({
1721
1844
  // Backgrounds (legacy — no longer used by Button.tsx; resolved via theme)
1722
1845
  /** @deprecated resolved via Theme.BUTTON_DEFAULT_FILL in Button.tsx */
1723
1846
  PRIMARY_DEFAULT_BG: DHRE_COLORS_TEXT.DH_WHITE,
@@ -1740,19 +1863,14 @@ const BUTTON_COLORS = {
1740
1863
  /** @deprecated resolved via Theme.STROKE_DISABLED_DARK in Button.tsx */
1741
1864
  DISABLED_TEXT: DHRE_DEEP_SPACE_BLUE[500],
1742
1865
  // #6A7897 (dark mode)
1743
- // Borders — gradient tokens are STATIC (same in light and dark per DHDS spec)
1744
- /** --DH-Gradient/Stroke/Primary-button start → cyan */
1745
- GRADIENT_BORDER_START: DHRE_CYAN_HIGHLIGHT[300],
1746
- // #2CD8FD
1747
- /** --DH-Gradient/Stroke/Primary-button end → blue */
1748
- GRADIENT_BORDER_END: "#3590E1",
1866
+ // Borders
1749
1867
  /** @deprecated resolved via Theme.BORDER_INVERTED in Button.tsx */
1750
1868
  SECONDARY_BORDER: DHRE_COLORS_TEXT.DH_WHITE,
1751
1869
  // #FFFFFF (dark mode)
1752
1870
  /** @deprecated resolved via Theme.STROKE_DISABLED_DARK in Button.tsx */
1753
1871
  DISABLED_BORDER: DHRE_DEEP_SPACE_BLUE[500]
1754
1872
  // #6A7897 (dark mode)
1755
- };
1873
+ });
1756
1874
  const pressableBase = {
1757
1875
  flexDirection: "row",
1758
1876
  alignItems: "center",
@@ -1761,7 +1879,6 @@ const pressableBase = {
1761
1879
  overflow: "hidden"
1762
1880
  };
1763
1881
  const BUTTON_SIZE_STYLES = StyleSheet.create({
1764
- // ── Large ──────────────────────────────────────────────────────────────────
1765
1882
  largePressable: {
1766
1883
  ...pressableBase,
1767
1884
  minHeight: verticalScale(48),
@@ -1769,13 +1886,6 @@ const BUTTON_SIZE_STYLES = StyleSheet.create({
1769
1886
  paddingVertical: verticalScale(12),
1770
1887
  gap: moderateScale(8)
1771
1888
  },
1772
- largeGradientWrapper: {
1773
- borderRadius: DHRE_RADIUS.PILL,
1774
- padding: 1,
1775
- overflow: "hidden",
1776
- height: verticalScale(48) + 2
1777
- },
1778
- // ── Medium ─────────────────────────────────────────────────────────────────
1779
1889
  mediumPressable: {
1780
1890
  ...pressableBase,
1781
1891
  minHeight: verticalScale(40),
@@ -1783,25 +1893,12 @@ const BUTTON_SIZE_STYLES = StyleSheet.create({
1783
1893
  paddingVertical: verticalScale(8),
1784
1894
  gap: moderateScale(8)
1785
1895
  },
1786
- mediumGradientWrapper: {
1787
- borderRadius: DHRE_RADIUS.PILL,
1788
- padding: 1,
1789
- overflow: "hidden",
1790
- height: verticalScale(40) + 2
1791
- },
1792
- // ── Small ──────────────────────────────────────────────────────────────────
1793
1896
  smallPressable: {
1794
1897
  ...pressableBase,
1795
1898
  minHeight: verticalScale(32),
1796
1899
  paddingHorizontal: moderateScale(20),
1797
1900
  paddingVertical: verticalScale(8),
1798
1901
  gap: moderateScale(8)
1799
- },
1800
- smallGradientWrapper: {
1801
- borderRadius: DHRE_RADIUS.PILL,
1802
- padding: 1,
1803
- overflow: "hidden",
1804
- height: verticalScale(32) + 2
1805
1902
  }
1806
1903
  });
1807
1904
  const LINK_SIZE_STYLES = StyleSheet.create({
@@ -1831,28 +1928,23 @@ const LINK_TEXT_VARIANT_MAP = {
1831
1928
  // 12 px / 16 px lh
1832
1929
  };
1833
1930
  const SIZE_STYLE_MAP = {
1834
- large: {
1835
- pressable: BUTTON_SIZE_STYLES.largePressable,
1836
- gradientWrapper: BUTTON_SIZE_STYLES.largeGradientWrapper
1837
- },
1838
- medium: {
1839
- pressable: BUTTON_SIZE_STYLES.mediumPressable,
1840
- gradientWrapper: BUTTON_SIZE_STYLES.mediumGradientWrapper
1841
- },
1842
- small: {
1843
- pressable: BUTTON_SIZE_STYLES.smallPressable,
1844
- gradientWrapper: BUTTON_SIZE_STYLES.smallGradientWrapper
1845
- }
1931
+ large: BUTTON_SIZE_STYLES.largePressable,
1932
+ medium: BUTTON_SIZE_STYLES.mediumPressable,
1933
+ small: BUTTON_SIZE_STYLES.smallPressable
1846
1934
  };
1847
1935
  function resolveTextThemeKey(variant, disabled) {
1848
1936
  if (disabled) {
1849
- return Theme.STROKE_DISABLED_DARK;
1937
+ return variant === "tertiary" || variant === "quaternary" ? Theme.CONTENT_DISABLE_DARK : Theme.STROKE_DISABLED_DARK;
1850
1938
  }
1851
1939
  switch (variant) {
1852
1940
  case "primary":
1853
1941
  return Theme.CONTENT_INVERTED;
1854
1942
  case "secondary":
1855
1943
  return Theme.CONTENT_PRIMARY;
1944
+ case "tertiary":
1945
+ return Theme.CONTENT_STATIC;
1946
+ case "quaternary":
1947
+ return Theme.CONTENT_PRIMARY;
1856
1948
  case "link":
1857
1949
  return Theme.LINK;
1858
1950
  default:
@@ -1862,9 +1954,7 @@ function resolveTextThemeKey(variant, disabled) {
1862
1954
  function buildPlainContainerStyle(variant, disabled, disabledColor, theme) {
1863
1955
  if (variant === "primary") {
1864
1956
  return {
1865
- backgroundColor: disabledColor ?? theme[Theme.BUTTON_DISABLED_FILL],
1866
- borderWidth: 1,
1867
- borderColor: theme[Theme.STROKE_DISABLED_DARK]
1957
+ backgroundColor: disabled ? disabledColor ?? theme[Theme.BUTTON_DISABLED_FILL] : theme[Theme.BUTTON_DEFAULT_FILL]
1868
1958
  };
1869
1959
  }
1870
1960
  if (variant === "secondary") {
@@ -1878,6 +1968,18 @@ function buildPlainContainerStyle(variant, disabled, disabledColor, theme) {
1878
1968
  borderColor: theme[Theme.BORDER_INVERTED]
1879
1969
  };
1880
1970
  }
1971
+ if (variant === "tertiary") {
1972
+ return {
1973
+ backgroundColor: disabled ? disabledColor ?? theme[Theme.BUTTON_TERTIARY_DISABLED_FILL] : theme[Theme.BUTTON_TERTIARY_DEFAULT_FILL]
1974
+ };
1975
+ }
1976
+ if (variant === "quaternary") {
1977
+ return {
1978
+ backgroundColor: "transparent",
1979
+ borderWidth: 1,
1980
+ borderColor: disabled ? theme[Theme.BUTTON_QUATERNARY_DISABLED_STROKE] : theme[Theme.BUTTON_QUATERNARY_DEFAULT_STROKE]
1981
+ };
1982
+ }
1881
1983
  return {};
1882
1984
  }
1883
1985
  function resolveSpinnerColor(variant, theme) {
@@ -1886,6 +1988,10 @@ function resolveSpinnerColor(variant, theme) {
1886
1988
  return theme[Theme.CONTENT_INVERTED];
1887
1989
  case "secondary":
1888
1990
  return theme[Theme.CONTENT_PRIMARY];
1991
+ case "tertiary":
1992
+ return theme[Theme.CONTENT_STATIC];
1993
+ case "quaternary":
1994
+ return theme[Theme.CONTENT_PRIMARY];
1889
1995
  case "link":
1890
1996
  return theme[Theme.LINK];
1891
1997
  default:
@@ -1913,11 +2019,10 @@ const CustomButton = ({
1913
2019
  size = "large"
1914
2020
  }) => {
1915
2021
  const { theme } = useTheme();
1916
- const isPrimary = variant === "primary";
1917
2022
  const isLink = variant === "link";
1918
2023
  const spinnerColor = loaderColor ?? resolveSpinnerColor(variant, theme);
1919
2024
  const iconSize = isLink && size === "small" ? moderateScale(16) : moderateScale(20);
1920
- const { pressable: pressableStyle, gradientWrapper: gradientWrapperStyle } = SIZE_STYLE_MAP[size];
2025
+ const pressableStyle = SIZE_STYLE_MAP[size];
1921
2026
  const defaultTextVariant = isLink ? LINK_TEXT_VARIANT_MAP[size] : size === "small" ? FontStyle.BODY2_LIGHT : FontStyle.BODY2_MEDIUM;
1922
2027
  const textThemeKey = resolveTextThemeKey(variant, disabled);
1923
2028
  const effectiveTextColor = titleColor ?? textThemeKey;
@@ -1939,32 +2044,6 @@ const CustomButton = ({
1939
2044
  height: iconSize,
1940
2045
  style: rightIconStyle
1941
2046
  }));
1942
- if (isPrimary && !disabled) {
1943
- return /* @__PURE__ */ React.createElement(View, { style: [gradientWrapperStyle, containerStyle] }, /* @__PURE__ */ React.createElement(
1944
- LinearGradient$1,
1945
- {
1946
- colors: [
1947
- BUTTON_COLORS.GRADIENT_BORDER_START,
1948
- BUTTON_COLORS.GRADIENT_BORDER_END
1949
- ],
1950
- start: { x: 0.5, y: 0 },
1951
- end: { x: 0.5, y: 1 },
1952
- style: StyleSheet.absoluteFillObject
1953
- }
1954
- ), /* @__PURE__ */ React.createElement(
1955
- Pressable,
1956
- {
1957
- testID,
1958
- style: [
1959
- pressableStyle,
1960
- { flex: 1, backgroundColor: theme[Theme.BUTTON_DEFAULT_FILL] }
1961
- ],
1962
- onPress,
1963
- disabled: isLoading
1964
- },
1965
- buttonContent
1966
- ));
1967
- }
1968
2047
  if (isLink) {
1969
2048
  return /* @__PURE__ */ React.createElement(
1970
2049
  Pressable,
@@ -3005,8 +3084,8 @@ const Tabs = ({
3005
3084
  key: id,
3006
3085
  style: {
3007
3086
  ...styles$n.button,
3008
- backgroundColor: isSelected ? theme.SURFACE_INVERTED : theme.SURFACE_SECONDARY,
3009
- borderColor: isSelected ? theme.SURFACE_INVERTED : theme.STROKE_TERTIARY
3087
+ backgroundColor: isSelected ? theme.SURFACE_HIGHLIGHT : theme.SURFACE_PRIMARY,
3088
+ borderColor: isSelected ? theme.SURFACE_HIGHLIGHT : theme.STROKE_PRIMARY
3010
3089
  },
3011
3090
  onPress: () => handlePress(id)
3012
3091
  },
@@ -3016,7 +3095,7 @@ const Tabs = ({
3016
3095
  variant: FontStyle.BODY1_MEDIUM,
3017
3096
  style: {
3018
3097
  ...styles$n.textStyle,
3019
- color: isSelected ? theme.CONTENT_INVERTED : theme.CONTENT_PRIMARY
3098
+ color: isSelected ? theme.CONTENT_STATIC : theme.CONTENT_PRIMARY
3020
3099
  },
3021
3100
  text: title
3022
3101
  }
@@ -3684,6 +3763,7 @@ const ICON_SIZE = DHRE_SPACING.LG;
3684
3763
  const HeaderIcon = ({ config }) => /* @__PURE__ */ React.createElement(Pressable, { onPress: config.onPress, testID: config.testId }, React.cloneElement(config.icon, { width: ICON_SIZE, height: ICON_SIZE }));
3685
3764
  const CustomHeader = ({
3686
3765
  title,
3766
+ titleColor,
3687
3767
  testId = "CUSTOM-HEADER",
3688
3768
  leftIcon,
3689
3769
  titleSuffixIcon,
@@ -3695,7 +3775,7 @@ const CustomHeader = ({
3695
3775
  {
3696
3776
  variant: "BODY1_MEDIUM",
3697
3777
  text: title,
3698
- style: { color: theme.CONTENT_PRIMARY }
3778
+ style: { color: titleColor ?? theme.CONTENT_PRIMARY }
3699
3779
  }
3700
3780
  ), titleSuffixIcon && React.cloneElement(titleSuffixIcon, {
3701
3781
  width: ICON_SIZE,
@@ -3873,6 +3953,12 @@ const TAG_SUCCESS_GRADIENT_COLORS = [
3873
3953
  const TAG_SUCCESS_GRADIENT_BASE_COLOR = DHRE_DEEP_SPACE_BLUE[900];
3874
3954
  const TAG_SUCCESS_GRADIENT_START = { x: 0, y: 0 };
3875
3955
  const TAG_SUCCESS_GRADIENT_END = { x: 1, y: 0 };
3956
+ const ERROR_GRADIENT_COLORS = [
3957
+ DHRE_RED_ERROR[200],
3958
+ DHRE_RED_ERROR[150]
3959
+ ];
3960
+ const ERROR_GRADIENT_START = { x: 0, y: 0 };
3961
+ const ERROR_GRADIENT_END = { x: 0, y: 1 };
3876
3962
 
3877
3963
  const styles$f = StyleSheet.create({
3878
3964
  container: {
@@ -10799,15 +10885,7 @@ const styles$b = StyleSheet.create({
10799
10885
  gap: horizontalScale(24)
10800
10886
  },
10801
10887
  applyButton: {
10802
- marginTop: verticalScale(16),
10803
- height: verticalScale(48),
10804
- minHeight: verticalScale(48),
10805
- paddingHorizontal: horizontalScale(24),
10806
- paddingVertical: verticalScale(12),
10807
- justifyContent: "center",
10808
- alignItems: "center",
10809
- borderRadius: moderateScale(100),
10810
- borderWidth: 1
10888
+ marginTop: verticalScale(16)
10811
10889
  }
10812
10890
  });
10813
10891
 
@@ -10871,11 +10949,9 @@ const DateRangePicker = (props) => {
10871
10949
  if (startDate) {
10872
10950
  markedDates[startDate] = {
10873
10951
  startingDay: true,
10874
- textColor: theme.CONTENT_INVERTED,
10952
+ textColor: theme.CONTENT_PRIMARY,
10875
10953
  customContainerStyle: {
10876
- backgroundColor: theme.SURFACE_INVERTED,
10877
- borderWidth: 1,
10878
- borderColor: theme.NOTIFICATIONS_HIGHLIGHT,
10954
+ backgroundColor: theme.CONTENT_ARROW_HIGHLIGHT,
10879
10955
  borderRadius: 200,
10880
10956
  width: moderateScale(36),
10881
10957
  height: moderateScale(36),
@@ -10888,11 +10964,9 @@ const DateRangePicker = (props) => {
10888
10964
  markedDates[endDate] = {
10889
10965
  endingDay: true,
10890
10966
  color: theme.SURFACE_PRIMARY_TRANSPARENT,
10891
- textColor: theme.CONTENT_INVERTED,
10967
+ textColor: theme.CONTENT_PRIMARY,
10892
10968
  customContainerStyle: {
10893
- backgroundColor: theme.SURFACE_INVERTED,
10894
- borderWidth: 1,
10895
- borderColor: theme.NOTIFICATIONS_HIGHLIGHT,
10969
+ backgroundColor: theme.CONTENT_ARROW_HIGHLIGHT,
10896
10970
  borderRadius: 200,
10897
10971
  width: moderateScale(36),
10898
10972
  height: moderateScale(36),
@@ -10903,11 +10977,9 @@ const DateRangePicker = (props) => {
10903
10977
  markedDates[startDate] = {
10904
10978
  startingDay: true,
10905
10979
  color: theme.SURFACE_PRIMARY_TRANSPARENT,
10906
- textColor: theme.CONTENT_INVERTED,
10980
+ textColor: theme.CONTENT_PRIMARY,
10907
10981
  customContainerStyle: {
10908
- backgroundColor: theme.SURFACE_INVERTED,
10909
- borderWidth: 1,
10910
- borderColor: theme.NOTIFICATIONS_HIGHLIGHT,
10982
+ backgroundColor: theme.CONTENT_ARROW_HIGHLIGHT,
10911
10983
  borderRadius: 200,
10912
10984
  width: moderateScale(36),
10913
10985
  height: moderateScale(36),
@@ -10965,10 +11037,7 @@ const DateRangePicker = (props) => {
10965
11037
  return /* @__PURE__ */ React.createElement(View, null, /* @__PURE__ */ React.createElement(
10966
11038
  View,
10967
11039
  {
10968
- style: [
10969
- styles$b.calendarCard,
10970
- { backgroundColor: theme.SURFACE_SECONDARY }
10971
- ]
11040
+ style: [styles$b.calendarCard, { backgroundColor: theme.SURFACE_PRIMARY }]
10972
11041
  },
10973
11042
  /* @__PURE__ */ React.createElement(
10974
11043
  Calendar,
@@ -10984,7 +11053,8 @@ const DateRangePicker = (props) => {
10984
11053
  dayTextColor: theme.CONTENT_PRIMARY,
10985
11054
  textDisabledColor: theme.CONTENT_DISABLE_DARK,
10986
11055
  todayTextColor: theme.CONTENT_PRIMARY,
10987
- textSectionTitleColor: theme.CONTENT_SECONDRY,
11056
+ todayBackgroundColor: theme.CONTENT_ARROW_HIGHLIGHT,
11057
+ textSectionTitleColor: theme.CONTENT_DISABLE_LIGHT,
10988
11058
  textDayFontSize: 16,
10989
11059
  textDayFontWeight: "500",
10990
11060
  textDayHeaderFontSize: 11,
@@ -11023,7 +11093,7 @@ const DateRangePicker = (props) => {
11023
11093
  textTransform: "uppercase",
11024
11094
  fontSize: 11,
11025
11095
  fontWeight: "300",
11026
- color: theme.CONTENT_SECONDRY
11096
+ color: theme.CONTENT_DISABLE_LIGHT
11027
11097
  }
11028
11098
  }
11029
11099
  },
@@ -11677,9 +11747,8 @@ const CommonTextInput = (props) => {
11677
11747
  const isDisabled = !editable;
11678
11748
  const isError = !!(errorMessage?.length || onlyErrorBorderLabel);
11679
11749
  const hasValue = !!value?.length;
11680
- const currentBorderColor = isError ? theme[Theme.ERROR] : isDisabled ? theme[Theme.STROKE_TERTIARY] : isFocused || hasValue && !disableBorder ? theme[Theme.STROKE_PRIMARY] : theme[Theme.STROKE_SECONDARY];
11750
+ const currentBorderColor = isError ? theme[Theme.ERROR] : isDisabled ? theme[Theme.STROKE_TERTIARY] : isFocused || hasValue && !disableBorder ? theme[Theme.STROKE_ACTIVE] : theme[Theme.STROKE_SECONDARY];
11681
11751
  const borderWidth = isFocused && !isDisabled ? 2 : 1;
11682
- const containerBackground = isDisabled ? theme[Theme.SURFACE_PRIMARY] : theme[Theme.SURFACE_TERTIARY_TRANSPARENT];
11683
11752
  const inputTextColor = isDisabled ? theme[Theme.CONTENT_TERTIARY] : theme[Theme.CONTENT_PRIMARY];
11684
11753
  const placeholderColor = theme[Theme.CONTENT_SECONDRY];
11685
11754
  const labelColor = isError ? theme[Theme.ERROR] : isDisabled ? theme[Theme.CONTENT_TERTIARY] : theme[Theme.CONTENT_PRIMARY];
@@ -11697,7 +11766,7 @@ const CommonTextInput = (props) => {
11697
11766
  ...styles$7.outlineStyle,
11698
11767
  borderColor: currentBorderColor,
11699
11768
  borderWidth,
11700
- backgroundColor: containerBackground
11769
+ backgroundColor: theme[Theme.SURFACE_PRIMARY]
11701
11770
  },
11702
11771
  label,
11703
11772
  value,
@@ -11839,12 +11908,12 @@ const CustomDropdown = (props) => {
11839
11908
  const [isFocus, setIsFocus] = useState(false);
11840
11909
  const hasValue = Boolean(value && value.length > 0);
11841
11910
  const isError = Boolean(errorMessage && errorMessage.length > 0);
11842
- const fieldBorderColor = disable ? theme.STROKE_TERTIARY : isError ? theme.STROKE_ERROR : isFocus || hasValue ? theme.STROKE_PRIMARY : theme.STROKE_TERTIARY;
11911
+ const fieldBorderColor = disable ? theme.STROKE_TERTIARY : isError ? theme.STROKE_ERROR : isFocus || hasValue ? theme.STROKE_ACTIVE : theme.STROKE_TERTIARY;
11843
11912
  const fieldBorderWidth = isFocus ? 2 : 1;
11844
11913
  const valueTextColor = disable ? theme.CONTENT_TERTIARY : hasValue ? theme.CONTENT_PRIMARY : theme.CONTENT_SECONDRY;
11845
11914
  const helperColor = isError ? theme.ERROR : theme.CONTENT_SECONDRY;
11846
11915
  const helperMessage = errorMessage || helperText;
11847
- const fieldBackground = theme.SURFACE_TERTIARY_TRANSPARENT;
11916
+ const fieldBackground = theme.SURFACE_PRIMARY;
11848
11917
  const labelColor = theme.CONTENT_PRIMARY;
11849
11918
  const renderLabel = () => {
11850
11919
  if (value || isFocus) {
@@ -11877,19 +11946,34 @@ const CustomDropdown = (props) => {
11877
11946
  };
11878
11947
  const renderItem = (item) => {
11879
11948
  const isSelected = item[valueField] === value;
11880
- return /* @__PURE__ */ React.createElement(View, { style: [styles$6.itemContainer, itemContainerStyle] }, /* @__PURE__ */ React.createElement(
11881
- Text,
11949
+ return /* @__PURE__ */ React.createElement(
11950
+ View,
11882
11951
  {
11883
11952
  style: [
11884
- styles$6.itemText,
11885
- FONT_STYLES[FontStyle.BODY2_LIGHT],
11886
- { color: theme.CONTENT_PRIMARY },
11887
- itemTextStyle,
11888
- isSelected && selectedItemTextStyle
11953
+ styles$6.itemContainer,
11954
+ isSelected && {
11955
+ backgroundColor: theme.SURFACE_INVERTED,
11956
+ borderRadius: DHRE_RADIUS_BASE.RADIUS_8
11957
+ },
11958
+ itemContainerStyle
11889
11959
  ]
11890
11960
  },
11891
- item[labelField]
11892
- ));
11961
+ /* @__PURE__ */ React.createElement(
11962
+ Text,
11963
+ {
11964
+ style: [
11965
+ styles$6.itemText,
11966
+ FONT_STYLES[FontStyle.BODY1_MEDIUM],
11967
+ {
11968
+ color: isSelected ? theme.CONTENT_INVERTED : theme.CONTENT_PRIMARY
11969
+ },
11970
+ itemTextStyle,
11971
+ isSelected && selectedItemTextStyle
11972
+ ]
11973
+ },
11974
+ item[labelField]
11975
+ )
11976
+ );
11893
11977
  };
11894
11978
  return /* @__PURE__ */ React.createElement(View, { style: [styles$6.container, containerStyle] }, label && renderLabel(), /* @__PURE__ */ React.createElement(
11895
11979
  Dropdown,
@@ -11942,7 +12026,13 @@ const CustomDropdown = (props) => {
11942
12026
  backgroundColor: theme.SURFACE_SECONDARY,
11943
12027
  borderColor: theme.STROKE_TERTIARY,
11944
12028
  borderWidth: 1,
11945
- borderRadius: DHRE_RADIUS_BASE.RADIUS_8
12029
+ borderRadius: DHRE_RADIUS_BASE.RADIUS_8,
12030
+ padding: DHRE_PADDING_BASE.PADDING_16,
12031
+ shadowColor: theme.SHADOW_SOFT_LIGHTEST,
12032
+ shadowOffset: { width: 0, height: 2 },
12033
+ shadowOpacity: 1,
12034
+ shadowRadius: 10,
12035
+ elevation: 4
11946
12036
  },
11947
12037
  menuContainerStyle
11948
12038
  ],
@@ -12003,8 +12093,10 @@ const styles$6 = StyleSheet.create({
12003
12093
  maxHeight: verticalScale(150)
12004
12094
  },
12005
12095
  itemContainer: {
12096
+ minHeight: verticalScale(48),
12006
12097
  paddingVertical: verticalScale(8),
12007
- paddingHorizontal: horizontalScale(12)
12098
+ paddingHorizontal: horizontalScale(16),
12099
+ justifyContent: "center"
12008
12100
  },
12009
12101
  itemText: {},
12010
12102
  helperText: {
@@ -12146,18 +12238,17 @@ const createStyles$2 = (theme) => StyleSheet.create({
12146
12238
  marginHorizontal: 8
12147
12239
  },
12148
12240
  selectedTagButton: {
12149
- backgroundColor: theme.SURFACE_INVERTED,
12150
- borderColor: theme.STROKE_SECONDARY,
12151
- borderWidth: 1
12241
+ backgroundColor: theme.SURFACE_HIGHLIGHT,
12242
+ borderWidth: 0
12152
12243
  },
12153
12244
  unselectedTagButton: {
12154
- backgroundColor: theme.SURFACE_SECONDARY,
12155
- borderColor: theme.STROKE_TERTIARY,
12245
+ backgroundColor: theme.SURFACE_PRIMARY,
12246
+ borderColor: theme.STROKE_PRIMARY,
12156
12247
  borderWidth: 1
12157
12248
  },
12158
12249
  closeButton: {
12159
12250
  marginLeft: 10,
12160
- color: theme.CONTENT_INVERTED,
12251
+ color: theme.CONTENT_STATIC,
12161
12252
  alignSelf: "center"
12162
12253
  },
12163
12254
  circleViewAlignment: {
@@ -12196,7 +12287,7 @@ const TagsComponent = ({
12196
12287
  /* @__PURE__ */ React.createElement(View, null, /* @__PURE__ */ React.createElement(
12197
12288
  CustomText$1,
12198
12289
  {
12199
- textColor: selectedTag === item?.name ? Theme.CONTENT_INVERTED : Theme.CONTENT_PRIMARY,
12290
+ textColor: selectedTag === item?.name ? Theme.CONTENT_STATIC : Theme.CONTENT_PRIMARY,
12200
12291
  variant: FontStyle.BODY3_LIGHT,
12201
12292
  text: item?.name
12202
12293
  }
@@ -12907,16 +12998,6 @@ var index$3 = withThemeProvider(
12907
12998
  CustomSlideButton
12908
12999
  );
12909
13000
 
12910
- const DHRE_STROKE = {
12911
- NONE: 0,
12912
- THIN: 1,
12913
- // default dividers, input borders
12914
- MEDIUM: 2,
12915
- // focused state, selected borders
12916
- THICK: 4
12917
- // emphasis borders, active indicators
12918
- };
12919
-
12920
13001
  var AvatarSize = /* @__PURE__ */ ((AvatarSize2) => {
12921
13002
  AvatarSize2["SMALL"] = "small";
12922
13003
  AvatarSize2["MEDIUM"] = "medium";
@@ -13028,7 +13109,7 @@ const createStyles$1 = (size, theme) => {
13028
13109
  paddingHorizontal: size === AvatarSize.LARGE ? 24 : 12,
13029
13110
  borderRadius: 200,
13030
13111
  borderWidth: 2,
13031
- borderColor: theme.STROKE_INVERTED,
13112
+ borderColor: theme.STROKE_DISABLED_LIGHT,
13032
13113
  backgroundColor: theme.SURFACE_PRIMARY_CARDS,
13033
13114
  justifyContent: "center",
13034
13115
  alignItems: "center"
@@ -13586,7 +13667,8 @@ const RadioButtonGroup = ({
13586
13667
  selectedValue,
13587
13668
  size = "large",
13588
13669
  fontVariant,
13589
- radioColor
13670
+ radioColor,
13671
+ disabled = false
13590
13672
  }) => {
13591
13673
  const { theme } = useTheme();
13592
13674
  const styles = createStyles(theme, size, radioColor);
@@ -13602,6 +13684,7 @@ const RadioButtonGroup = ({
13602
13684
  TouchableOpacity,
13603
13685
  {
13604
13686
  key: item.value,
13687
+ disabled,
13605
13688
  style: [styles.optionContainer, optionContainerStyle],
13606
13689
  onPress: () => handleSelect(item),
13607
13690
  activeOpacity: 1
@@ -13628,5 +13711,5 @@ const RadioButtonGroup = ({
13628
13711
  };
13629
13712
  var index = withThemeProvider(RadioButtonGroup);
13630
13713
 
13631
- export { Accordion$1 as Accordion, AnimationWithImperativeApi as AnimationLoitte, index$2 as AppointmentCard, Avatar$1 as Avatar, AvatarSize, Background$1 as Background, BackgroundVariant, Badge$1 as Badge, BottomDrawer$1 as BottomDrawer, Button, Cards, category as Category, CheckBox, Chip$1 as Chip, ContactModel, CountryDropDown as CountryPicker, CustomDropdown$1 as CustomDropdown, CustomHeader$1 as CustomHeader, CustomIcon$1 as CustomIcon, CustomLoader$1 as CustomLoader, CustomProgressBar$1 as CustomProgressBar, CustomSearchBar$1 as CustomSearchBar, index$3 as CustomSlideButton, CustomSwitchBtn, CustomText$1 as CustomText, CustomTextInput, CustomTooltip, CustomTypography, DHRE_AVATAR_SIZE, DHRE_COLORS_ALERT, DHRE_COLORS_BG, DHRE_COLORS_PRIMARY, DHRE_COLORS_SECONDARY, DHRE_COLORS_TEXT, DHRE_COMPONENT_HEIGHT, DHRE_CONFIRMATION_BASE_GRADIENT, DHRE_CONFIRMATION_ERROR_GRADIENT, DHRE_CORE_BLUE, DHRE_CYAN_HIGHLIGHT, DHRE_DEEP_SPACE_BLUE, DHRE_DEFAULT, DHRE_ICON_SIZE, DHRE_IMAGE_SIZE, DHRE_INFO_BLUE, DHRE_ORANGE_WARNING, DHRE_PADDING, DHRE_PADDING_BASE, DHRE_RADIUS, DHRE_RADIUS_BASE, DHRE_RED_ERROR, DHRE_SPACING, DHRE_SPACING_BASE, DHRE_STROKE, DHRE_SUCCESS_GREEN, DHRE_WHITE, DateRangePicker$1 as DateRangePicker, DropDown, FONT_STYLES, feedback as FeedbackForm, FileUpload, FontStyle, GRADIENT_COLORS_ERROR, GRADIENT_COLORS_PENDING, GRADIENT_COLORS_SUCCESS, Line, Loader$1 as Loader, NAKHEEL_DEFAULT, NotificationBandge, OTPInput, OUTLINED_BORDER_WIDTH, OUTLINED_GRADIENT_COLORS, OUTLINED_GRADIENT_END, OUTLINED_GRADIENT_START, OurOffices as OurOfficesButton, PdfView, PopUp, index$1 as PropertyDetails, index as RadioButtonGroup, ShapeType, TagSingleSelection as SingleSelectionTags, Star as StarRating, index$4 as Stepper, SwipableList$1 as SwipableList, TAG_SUCCESS_GRADIENT_BASE_COLOR, TAG_SUCCESS_GRADIENT_COLORS, TAG_SUCCESS_GRADIENT_END, TAG_SUCCESS_GRADIENT_START, Tabs$1 as Tabs, Tags, TextDirectType, Textinput as TextInput, Theme, ToastWithProvider as Toast, CustomSwitch as ToggleButton, ToggleButtonType, ToggleTextType, Topic$1 as Topic, copyToClipboard, theme as default, height, horizontalScale, moderateScale, toastService, verticalScale, width };
13714
+ export { Accordion$1 as Accordion, AnimationWithImperativeApi as AnimationLoitte, index$2 as AppointmentCard, Avatar$1 as Avatar, AvatarSize, Background$1 as Background, BackgroundVariant, Badge$1 as Badge, BottomDrawer$1 as BottomDrawer, Button, Cards, category as Category, CheckBox, Chip$1 as Chip, ContactModel, CountryDropDown as CountryPicker, CustomDropdown$1 as CustomDropdown, CustomHeader$1 as CustomHeader, CustomIcon$1 as CustomIcon, CustomLoader$1 as CustomLoader, CustomProgressBar$1 as CustomProgressBar, CustomSearchBar$1 as CustomSearchBar, index$3 as CustomSlideButton, CustomSwitchBtn, CustomText$1 as CustomText, CustomTextInput, CustomTooltip, CustomTypography, DHRE_AVATAR_SIZE, DHRE_COLORS_ALERT, DHRE_COLORS_BG, DHRE_COLORS_PRIMARY, DHRE_COLORS_SECONDARY, DHRE_COLORS_TEXT, DHRE_COMPONENT_HEIGHT, DHRE_CONFIRMATION_BASE_GRADIENT, DHRE_CONFIRMATION_ERROR_GRADIENT, DHRE_CORE_BLUE, DHRE_CORE_TEAL, DHRE_CYAN_HIGHLIGHT, DHRE_DEEP_SPACE_BLUE, DHRE_DEFAULT, DHRE_ICON_SIZE, DHRE_IMAGE_SIZE, DHRE_INFO_BLUE, DHRE_ORANGE_WARNING, DHRE_PADDING, DHRE_PADDING_BASE, DHRE_RADIUS, DHRE_RADIUS_BASE, DHRE_RED_ERROR, DHRE_SPACING, DHRE_SPACING_BASE, DHRE_STROKE, DHRE_SUCCESS_GREEN, DHRE_WHITE, DateRangePicker$1 as DateRangePicker, DropDown, ERROR_GRADIENT_COLORS, ERROR_GRADIENT_END, ERROR_GRADIENT_START, FONT_STYLES, feedback as FeedbackForm, FileUpload, FontStyle, GRADIENT_COLORS_ERROR, GRADIENT_COLORS_PENDING, GRADIENT_COLORS_SUCCESS, Line, Loader$1 as Loader, NAKHEEL_DEFAULT, NotificationBandge, OTPInput, OUTLINED_BORDER_WIDTH, OUTLINED_GRADIENT_COLORS, OUTLINED_GRADIENT_END, OUTLINED_GRADIENT_START, OurOffices as OurOfficesButton, PdfView, PopUp, index$1 as PropertyDetails, index as RadioButtonGroup, ShapeType, TagSingleSelection as SingleSelectionTags, Star as StarRating, index$4 as Stepper, SwipableList$1 as SwipableList, TAG_SUCCESS_GRADIENT_BASE_COLOR, TAG_SUCCESS_GRADIENT_COLORS, TAG_SUCCESS_GRADIENT_END, TAG_SUCCESS_GRADIENT_START, Tabs$1 as Tabs, Tags, TextDirectType, Textinput as TextInput, Theme, ToastWithProvider as Toast, CustomSwitch as ToggleButton, ToggleButtonType, ToggleTextType, Topic$1 as Topic, copyToClipboard, theme as default, height, horizontalScale, moderateScale, toastService, verticalScale, width };
13632
13715
  //# sourceMappingURL=index.mjs.map