@justifi/webcomponents 3.1.5 → 3.3.5

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/{index-3aff6bb6.js → index-051b6dd0.js} +36 -0
  3. package/dist/cjs/justifi-bank-account-form.cjs.entry.js +1 -1
  4. package/dist/cjs/justifi-billing-form_2.cjs.entry.js +3 -5
  5. package/dist/cjs/justifi-card-form.cjs.entry.js +1 -1
  6. package/dist/cjs/justifi-payment-form.cjs.entry.js +3 -3
  7. package/dist/cjs/justifi-payment-method-form.cjs.entry.js +5 -4
  8. package/dist/cjs/justifi-payments-list.cjs.entry.js +1 -1
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/select-input_2.cjs.entry.js +1 -1
  11. package/dist/cjs/webcomponents.cjs.js +2 -2
  12. package/dist/collection/components/payment-form/payment-form.css +27 -0
  13. package/dist/collection/components/payment-form/payment-form.js +1 -1
  14. package/dist/collection/components/payment-form/payment-form.stories.js +33 -8
  15. package/dist/collection/components/payment-form/payment-method-selector.css +514 -0
  16. package/dist/collection/components/payment-form/payment-method-selector.js +3 -4
  17. package/dist/components/justifi-payment-form.js +2 -2
  18. package/dist/components/payment-method-form.js +4 -3
  19. package/dist/components/payment-method-selector.js +5 -6
  20. package/dist/esm/{index-550f3d18.js → index-605b421a.js} +36 -1
  21. package/dist/esm/justifi-bank-account-form.entry.js +1 -1
  22. package/dist/esm/justifi-billing-form_2.entry.js +3 -5
  23. package/dist/esm/justifi-card-form.entry.js +1 -1
  24. package/dist/esm/justifi-payment-form.entry.js +3 -3
  25. package/dist/esm/justifi-payment-method-form.entry.js +5 -4
  26. package/dist/esm/justifi-payments-list.entry.js +1 -1
  27. package/dist/esm/loader.js +2 -2
  28. package/dist/esm/select-input_2.entry.js +1 -1
  29. package/dist/esm/webcomponents.js +2 -2
  30. package/dist/types/components/payment-form/payment-form.stories.d.ts +0 -6
  31. package/dist/webcomponents/{p-f2438424.entry.js → p-24409e8e.entry.js} +1 -1
  32. package/dist/webcomponents/p-2530278e.entry.js +1 -0
  33. package/dist/webcomponents/p-4a406704.js +2 -0
  34. package/dist/webcomponents/{p-af8d98bb.entry.js → p-5774e36e.entry.js} +1 -1
  35. package/dist/webcomponents/{p-57d070c8.entry.js → p-64b19598.entry.js} +1 -1
  36. package/dist/webcomponents/{p-282af003.entry.js → p-bc35e124.entry.js} +1 -1
  37. package/dist/webcomponents/p-bf40b1ca.entry.js +1 -0
  38. package/dist/webcomponents/{p-5121c0c2.entry.js → p-c3c51a2a.entry.js} +1 -1
  39. package/dist/webcomponents/webcomponents.css +1 -1
  40. package/dist/webcomponents/webcomponents.esm.js +1 -1
  41. package/package.json +4 -3
  42. package/dist/webcomponents/p-0d4b4f19.entry.js +0 -1
  43. package/dist/webcomponents/p-48c17d38.js +0 -2
  44. package/dist/webcomponents/p-587697d6.entry.js +0 -1
@@ -1981,4 +1981,31 @@ justifi-payment-method-form {
1981
1981
  *::part(input-invalid):focus {
1982
1982
  border-color: var(--jfi-form-control-border-color-error);
1983
1983
  box-shadow: var(--jfi-form-control-box-shadow-error-focus);
1984
+ }
1985
+
1986
+ .jfi-submit-button {
1987
+ color: var(--jfi-submit-button-color);
1988
+ background-color: var(--jfi-submit-button-background-color);
1989
+ border-color: var(--jfi-submit-button-border-color);
1990
+ padding: var(--jfi-submit-button-padding);
1991
+ font-size: var(--jfi-submit-button-font-size);
1992
+ border-radius: var(--jfi-submit-button-border-radius);
1993
+ }
1994
+
1995
+ .jfi-submit-button:hover {
1996
+ color: var(--jfi-submit-button-color-hover);
1997
+ background-color: var(--jfi-submit-button-background-color-hover);
1998
+ border-color: var(--jfi-submit-button-border-color-hover);
1999
+ }
2000
+
2001
+ .jfi-submit-button:focus {
2002
+ color: var(--jfi-submit-button-color-focus);
2003
+ background-color: var(--jfi-submit-button-background-color-focus);
2004
+ border-color: var(--jfi-submit-button-border-color-focus);
2005
+ }
2006
+
2007
+ .btn.jfi-submit-button:active {
2008
+ color: var(--jfi-submit-button-color-active);
2009
+ background-color: var(--jfi-submit-button-background-color-active);
2010
+ border-color: var(--jfi-submit-button-border-color-active);
1984
2011
  }
@@ -58,7 +58,7 @@ export class PaymentForm {
58
58
  if (el) {
59
59
  this.billingFormRef = el;
60
60
  }
61
- } })), h("div", { class: "col-12" }, h("button", { onClick: (event) => this.submit(event), disabled: !this.submitButtonEnabled, type: "submit", class: "btn btn-primary" }, this.submitButtonText || 'Submit')))));
61
+ } })), h("div", { class: "col-12" }, h("button", { onClick: (event) => this.submit(event), disabled: !this.submitButtonEnabled, type: "submit", class: "btn btn-primary jfi-submit-button" }, this.submitButtonText || 'Submit')))));
62
62
  }
63
63
  static get is() { return "justifi-payment-form"; }
64
64
  static get encapsulation() { return "shadow"; }
@@ -11,14 +11,6 @@ export default {
11
11
  }
12
12
  },
13
13
  },
14
- parameters: {
15
- actions: {
16
- handles: [],
17
- },
18
- },
19
- decorators: [
20
- (story) => story(),
21
- ],
22
14
  };
23
15
  const Template = (args) => {
24
16
  // The <div> here should be replaced by a `display` property in the cardForm potentially
@@ -73,6 +65,8 @@ Styled.args = {
73
65
  'submit-button-text': '',
74
66
  'iframe-origin': '',
75
67
  cssVariables: (`
68
+ --jfi-primary-color: #212529;
69
+
76
70
  --jfi-layout-padding: 0;
77
71
  --jfi-layout-form-control-spacing-x: .5rem;
78
72
  --jfi-layout-form-control-spacing-y: 1rem;
@@ -103,5 +97,36 @@ Styled.args = {
103
97
  --jfi-error-message-color: #C12727;
104
98
  --jfi-error-message-margin: .25rem 0 0 0;
105
99
  --jfi-error-message-font-size: .875rem;
100
+
101
+ --jfi-submit-button-color: white;
102
+ --jfi-submit-button-background-color: var(--jfi-primary-color);
103
+ --jfi-submit-button-border-color: var(--jfi-primary-color);
104
+ --jfi-submit-button-padding: 0.375rem 0.75rem;
105
+ --jfi-submit-button-font-size: 1rem;
106
+ --jfi-submit-button-border-radius: 4px;
107
+ --jfi-submit-button-color-hover: white;
108
+ --jfi-submit-button-background-color-hover: var(--jfi-primary-color);
109
+ --jfi-submit-button-border-color-hover: var(--jfi-primary-color);
110
+ --jfi-submit-button-color-focus: white;
111
+ --jfi-submit-button-background-color-focus: var(--jfi-primary-color);
112
+ --jfi-submit-button-border-color-focus: var(--jfi-primary-color);
113
+ --jfi-submit-button-color-active: white;
114
+ --jfi-submit-button-background-color-active: var(--jfi-primary-color);
115
+ --jfi-submit-button-border-color-active: var(--jfi-primary-color);
116
+
117
+ --jfi-radio-button-color: var(--jfi-primary-color);
118
+ --jfi-radio-button-background-color: transparent;
119
+ --jfi-radio-button-color-selected: white;
120
+ --jfi-radio-button-background-color-selected: var(--jfi-primary-color);
121
+ --jfi-radio-button-border-color: var(--jfi-primary-color);
122
+ --jfi-radio-button-border-color-selected: var(--jfi-primary-color);
123
+ --jfi-radio-button-padding: 0.375rem 0.75rem;
124
+ --jfi-radio-button-font-size: 1rem;
125
+ --jfi-radio-button-color-hover: var(--jfi-primary-color);
126
+ --jfi-radio-button-color-selected-hover: white;
127
+ --jfi-radio-button-background-color-hover: transparent;
128
+ --jfi-radio-button-background-color-selected-hover: var(--jfi-primary-color);
129
+ --jfi-radio-button-border-color-selected-hover: var(--jfi-primary-color);
130
+ --jfi-radio-button-border-color-hover: var(--jfi-primary-color);
106
131
  `)
107
132
  };
@@ -839,6 +839,490 @@ textarea.form-control-lg {
839
839
  z-index: 4;
840
840
  }
841
841
 
842
+ .btn {
843
+ --bs-btn-padding-x: 0.75rem;
844
+ --bs-btn-padding-y: 0.375rem;
845
+ --bs-btn-font-family: ;
846
+ --bs-btn-font-size: 1rem;
847
+ --bs-btn-font-weight: 400;
848
+ --bs-btn-line-height: 1.5;
849
+ --bs-btn-color: #212529;
850
+ --bs-btn-bg: transparent;
851
+ --bs-btn-border-width: 1px;
852
+ --bs-btn-border-color: transparent;
853
+ --bs-btn-border-radius: 0.375rem;
854
+ --bs-btn-hover-border-color: transparent;
855
+ --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
856
+ --bs-btn-disabled-opacity: 0.65;
857
+ --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
858
+ display: inline-block;
859
+ padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
860
+ font-family: var(--bs-btn-font-family);
861
+ font-size: var(--bs-btn-font-size);
862
+ font-weight: var(--bs-btn-font-weight);
863
+ line-height: var(--bs-btn-line-height);
864
+ color: var(--bs-btn-color);
865
+ text-align: center;
866
+ text-decoration: none;
867
+ vertical-align: middle;
868
+ cursor: pointer;
869
+ user-select: none;
870
+ border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
871
+ border-radius: var(--bs-btn-border-radius);
872
+ background-color: var(--bs-btn-bg);
873
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
874
+ }
875
+ @media (prefers-reduced-motion: reduce) {
876
+ .btn {
877
+ transition: none;
878
+ }
879
+ }
880
+ .btn:hover {
881
+ color: var(--bs-btn-hover-color);
882
+ background-color: var(--bs-btn-hover-bg);
883
+ border-color: var(--bs-btn-hover-border-color);
884
+ }
885
+ .btn-check + .btn:hover {
886
+ color: var(--bs-btn-color);
887
+ background-color: var(--bs-btn-bg);
888
+ border-color: var(--bs-btn-border-color);
889
+ }
890
+ .btn:focus-visible {
891
+ color: var(--bs-btn-hover-color);
892
+ background-color: var(--bs-btn-hover-bg);
893
+ border-color: var(--bs-btn-hover-border-color);
894
+ outline: 0;
895
+ box-shadow: var(--bs-btn-focus-box-shadow);
896
+ }
897
+ .btn-check:focus-visible + .btn {
898
+ border-color: var(--bs-btn-hover-border-color);
899
+ outline: 0;
900
+ box-shadow: var(--bs-btn-focus-box-shadow);
901
+ }
902
+ .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
903
+ color: var(--bs-btn-active-color);
904
+ background-color: var(--bs-btn-active-bg);
905
+ border-color: var(--bs-btn-active-border-color);
906
+ }
907
+ .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
908
+ box-shadow: var(--bs-btn-focus-box-shadow);
909
+ }
910
+ .btn:disabled, .btn.disabled, fieldset:disabled .btn {
911
+ color: var(--bs-btn-disabled-color);
912
+ pointer-events: none;
913
+ background-color: var(--bs-btn-disabled-bg);
914
+ border-color: var(--bs-btn-disabled-border-color);
915
+ opacity: var(--bs-btn-disabled-opacity);
916
+ }
917
+
918
+ .btn-primary {
919
+ --bs-btn-color: #fff;
920
+ --bs-btn-bg: #0d6efd;
921
+ --bs-btn-border-color: #0d6efd;
922
+ --bs-btn-hover-color: #fff;
923
+ --bs-btn-hover-bg: #0b5ed7;
924
+ --bs-btn-hover-border-color: #0a58ca;
925
+ --bs-btn-focus-shadow-rgb: 49, 132, 253;
926
+ --bs-btn-active-color: #fff;
927
+ --bs-btn-active-bg: #0a58ca;
928
+ --bs-btn-active-border-color: #0a53be;
929
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
930
+ --bs-btn-disabled-color: #fff;
931
+ --bs-btn-disabled-bg: #0d6efd;
932
+ --bs-btn-disabled-border-color: #0d6efd;
933
+ }
934
+
935
+ .btn-secondary {
936
+ --bs-btn-color: #fff;
937
+ --bs-btn-bg: #6c757d;
938
+ --bs-btn-border-color: #6c757d;
939
+ --bs-btn-hover-color: #fff;
940
+ --bs-btn-hover-bg: #5c636a;
941
+ --bs-btn-hover-border-color: #565e64;
942
+ --bs-btn-focus-shadow-rgb: 130, 138, 145;
943
+ --bs-btn-active-color: #fff;
944
+ --bs-btn-active-bg: #565e64;
945
+ --bs-btn-active-border-color: #51585e;
946
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
947
+ --bs-btn-disabled-color: #fff;
948
+ --bs-btn-disabled-bg: #6c757d;
949
+ --bs-btn-disabled-border-color: #6c757d;
950
+ }
951
+
952
+ .btn-success {
953
+ --bs-btn-color: #fff;
954
+ --bs-btn-bg: #198754;
955
+ --bs-btn-border-color: #198754;
956
+ --bs-btn-hover-color: #fff;
957
+ --bs-btn-hover-bg: #157347;
958
+ --bs-btn-hover-border-color: #146c43;
959
+ --bs-btn-focus-shadow-rgb: 60, 153, 110;
960
+ --bs-btn-active-color: #fff;
961
+ --bs-btn-active-bg: #146c43;
962
+ --bs-btn-active-border-color: #13653f;
963
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
964
+ --bs-btn-disabled-color: #fff;
965
+ --bs-btn-disabled-bg: #198754;
966
+ --bs-btn-disabled-border-color: #198754;
967
+ }
968
+
969
+ .btn-info {
970
+ --bs-btn-color: #000;
971
+ --bs-btn-bg: #0dcaf0;
972
+ --bs-btn-border-color: #0dcaf0;
973
+ --bs-btn-hover-color: #000;
974
+ --bs-btn-hover-bg: #31d2f2;
975
+ --bs-btn-hover-border-color: #25cff2;
976
+ --bs-btn-focus-shadow-rgb: 11, 172, 204;
977
+ --bs-btn-active-color: #000;
978
+ --bs-btn-active-bg: #3dd5f3;
979
+ --bs-btn-active-border-color: #25cff2;
980
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
981
+ --bs-btn-disabled-color: #000;
982
+ --bs-btn-disabled-bg: #0dcaf0;
983
+ --bs-btn-disabled-border-color: #0dcaf0;
984
+ }
985
+
986
+ .btn-warning {
987
+ --bs-btn-color: #000;
988
+ --bs-btn-bg: #ffc107;
989
+ --bs-btn-border-color: #ffc107;
990
+ --bs-btn-hover-color: #000;
991
+ --bs-btn-hover-bg: #ffca2c;
992
+ --bs-btn-hover-border-color: #ffc720;
993
+ --bs-btn-focus-shadow-rgb: 217, 164, 6;
994
+ --bs-btn-active-color: #000;
995
+ --bs-btn-active-bg: #ffcd39;
996
+ --bs-btn-active-border-color: #ffc720;
997
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
998
+ --bs-btn-disabled-color: #000;
999
+ --bs-btn-disabled-bg: #ffc107;
1000
+ --bs-btn-disabled-border-color: #ffc107;
1001
+ }
1002
+
1003
+ .btn-danger {
1004
+ --bs-btn-color: #fff;
1005
+ --bs-btn-bg: #dc3545;
1006
+ --bs-btn-border-color: #dc3545;
1007
+ --bs-btn-hover-color: #fff;
1008
+ --bs-btn-hover-bg: #bb2d3b;
1009
+ --bs-btn-hover-border-color: #b02a37;
1010
+ --bs-btn-focus-shadow-rgb: 225, 83, 97;
1011
+ --bs-btn-active-color: #fff;
1012
+ --bs-btn-active-bg: #b02a37;
1013
+ --bs-btn-active-border-color: #a52834;
1014
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1015
+ --bs-btn-disabled-color: #fff;
1016
+ --bs-btn-disabled-bg: #dc3545;
1017
+ --bs-btn-disabled-border-color: #dc3545;
1018
+ }
1019
+
1020
+ .btn-light {
1021
+ --bs-btn-color: #000;
1022
+ --bs-btn-bg: #f8f9fa;
1023
+ --bs-btn-border-color: #f8f9fa;
1024
+ --bs-btn-hover-color: #000;
1025
+ --bs-btn-hover-bg: #d3d4d5;
1026
+ --bs-btn-hover-border-color: #c6c7c8;
1027
+ --bs-btn-focus-shadow-rgb: 211, 212, 213;
1028
+ --bs-btn-active-color: #000;
1029
+ --bs-btn-active-bg: #c6c7c8;
1030
+ --bs-btn-active-border-color: #babbbc;
1031
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1032
+ --bs-btn-disabled-color: #000;
1033
+ --bs-btn-disabled-bg: #f8f9fa;
1034
+ --bs-btn-disabled-border-color: #f8f9fa;
1035
+ }
1036
+
1037
+ .btn-dark {
1038
+ --bs-btn-color: #fff;
1039
+ --bs-btn-bg: #212529;
1040
+ --bs-btn-border-color: #212529;
1041
+ --bs-btn-hover-color: #fff;
1042
+ --bs-btn-hover-bg: #424649;
1043
+ --bs-btn-hover-border-color: #373b3e;
1044
+ --bs-btn-focus-shadow-rgb: 66, 70, 73;
1045
+ --bs-btn-active-color: #fff;
1046
+ --bs-btn-active-bg: #4d5154;
1047
+ --bs-btn-active-border-color: #373b3e;
1048
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1049
+ --bs-btn-disabled-color: #fff;
1050
+ --bs-btn-disabled-bg: #212529;
1051
+ --bs-btn-disabled-border-color: #212529;
1052
+ }
1053
+
1054
+ .btn-outline-primary {
1055
+ --bs-btn-color: #0d6efd;
1056
+ --bs-btn-border-color: #0d6efd;
1057
+ --bs-btn-hover-color: #fff;
1058
+ --bs-btn-hover-bg: #0d6efd;
1059
+ --bs-btn-hover-border-color: #0d6efd;
1060
+ --bs-btn-focus-shadow-rgb: 13, 110, 253;
1061
+ --bs-btn-active-color: #fff;
1062
+ --bs-btn-active-bg: #0d6efd;
1063
+ --bs-btn-active-border-color: #0d6efd;
1064
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1065
+ --bs-btn-disabled-color: #0d6efd;
1066
+ --bs-btn-disabled-bg: transparent;
1067
+ --bs-btn-disabled-border-color: #0d6efd;
1068
+ --bs-gradient: none;
1069
+ }
1070
+
1071
+ .btn-outline-secondary {
1072
+ --bs-btn-color: #6c757d;
1073
+ --bs-btn-border-color: #6c757d;
1074
+ --bs-btn-hover-color: #fff;
1075
+ --bs-btn-hover-bg: #6c757d;
1076
+ --bs-btn-hover-border-color: #6c757d;
1077
+ --bs-btn-focus-shadow-rgb: 108, 117, 125;
1078
+ --bs-btn-active-color: #fff;
1079
+ --bs-btn-active-bg: #6c757d;
1080
+ --bs-btn-active-border-color: #6c757d;
1081
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1082
+ --bs-btn-disabled-color: #6c757d;
1083
+ --bs-btn-disabled-bg: transparent;
1084
+ --bs-btn-disabled-border-color: #6c757d;
1085
+ --bs-gradient: none;
1086
+ }
1087
+
1088
+ .btn-outline-success {
1089
+ --bs-btn-color: #198754;
1090
+ --bs-btn-border-color: #198754;
1091
+ --bs-btn-hover-color: #fff;
1092
+ --bs-btn-hover-bg: #198754;
1093
+ --bs-btn-hover-border-color: #198754;
1094
+ --bs-btn-focus-shadow-rgb: 25, 135, 84;
1095
+ --bs-btn-active-color: #fff;
1096
+ --bs-btn-active-bg: #198754;
1097
+ --bs-btn-active-border-color: #198754;
1098
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1099
+ --bs-btn-disabled-color: #198754;
1100
+ --bs-btn-disabled-bg: transparent;
1101
+ --bs-btn-disabled-border-color: #198754;
1102
+ --bs-gradient: none;
1103
+ }
1104
+
1105
+ .btn-outline-info {
1106
+ --bs-btn-color: #0dcaf0;
1107
+ --bs-btn-border-color: #0dcaf0;
1108
+ --bs-btn-hover-color: #000;
1109
+ --bs-btn-hover-bg: #0dcaf0;
1110
+ --bs-btn-hover-border-color: #0dcaf0;
1111
+ --bs-btn-focus-shadow-rgb: 13, 202, 240;
1112
+ --bs-btn-active-color: #000;
1113
+ --bs-btn-active-bg: #0dcaf0;
1114
+ --bs-btn-active-border-color: #0dcaf0;
1115
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1116
+ --bs-btn-disabled-color: #0dcaf0;
1117
+ --bs-btn-disabled-bg: transparent;
1118
+ --bs-btn-disabled-border-color: #0dcaf0;
1119
+ --bs-gradient: none;
1120
+ }
1121
+
1122
+ .btn-outline-warning {
1123
+ --bs-btn-color: #ffc107;
1124
+ --bs-btn-border-color: #ffc107;
1125
+ --bs-btn-hover-color: #000;
1126
+ --bs-btn-hover-bg: #ffc107;
1127
+ --bs-btn-hover-border-color: #ffc107;
1128
+ --bs-btn-focus-shadow-rgb: 255, 193, 7;
1129
+ --bs-btn-active-color: #000;
1130
+ --bs-btn-active-bg: #ffc107;
1131
+ --bs-btn-active-border-color: #ffc107;
1132
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1133
+ --bs-btn-disabled-color: #ffc107;
1134
+ --bs-btn-disabled-bg: transparent;
1135
+ --bs-btn-disabled-border-color: #ffc107;
1136
+ --bs-gradient: none;
1137
+ }
1138
+
1139
+ .btn-outline-danger {
1140
+ --bs-btn-color: #dc3545;
1141
+ --bs-btn-border-color: #dc3545;
1142
+ --bs-btn-hover-color: #fff;
1143
+ --bs-btn-hover-bg: #dc3545;
1144
+ --bs-btn-hover-border-color: #dc3545;
1145
+ --bs-btn-focus-shadow-rgb: 220, 53, 69;
1146
+ --bs-btn-active-color: #fff;
1147
+ --bs-btn-active-bg: #dc3545;
1148
+ --bs-btn-active-border-color: #dc3545;
1149
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1150
+ --bs-btn-disabled-color: #dc3545;
1151
+ --bs-btn-disabled-bg: transparent;
1152
+ --bs-btn-disabled-border-color: #dc3545;
1153
+ --bs-gradient: none;
1154
+ }
1155
+
1156
+ .btn-outline-light {
1157
+ --bs-btn-color: #f8f9fa;
1158
+ --bs-btn-border-color: #f8f9fa;
1159
+ --bs-btn-hover-color: #000;
1160
+ --bs-btn-hover-bg: #f8f9fa;
1161
+ --bs-btn-hover-border-color: #f8f9fa;
1162
+ --bs-btn-focus-shadow-rgb: 248, 249, 250;
1163
+ --bs-btn-active-color: #000;
1164
+ --bs-btn-active-bg: #f8f9fa;
1165
+ --bs-btn-active-border-color: #f8f9fa;
1166
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1167
+ --bs-btn-disabled-color: #f8f9fa;
1168
+ --bs-btn-disabled-bg: transparent;
1169
+ --bs-btn-disabled-border-color: #f8f9fa;
1170
+ --bs-gradient: none;
1171
+ }
1172
+
1173
+ .btn-outline-dark {
1174
+ --bs-btn-color: #212529;
1175
+ --bs-btn-border-color: #212529;
1176
+ --bs-btn-hover-color: #fff;
1177
+ --bs-btn-hover-bg: #212529;
1178
+ --bs-btn-hover-border-color: #212529;
1179
+ --bs-btn-focus-shadow-rgb: 33, 37, 41;
1180
+ --bs-btn-active-color: #fff;
1181
+ --bs-btn-active-bg: #212529;
1182
+ --bs-btn-active-border-color: #212529;
1183
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1184
+ --bs-btn-disabled-color: #212529;
1185
+ --bs-btn-disabled-bg: transparent;
1186
+ --bs-btn-disabled-border-color: #212529;
1187
+ --bs-gradient: none;
1188
+ }
1189
+
1190
+ .btn-link {
1191
+ --bs-btn-font-weight: 400;
1192
+ --bs-btn-color: var(--bs-link-color);
1193
+ --bs-btn-bg: transparent;
1194
+ --bs-btn-border-color: transparent;
1195
+ --bs-btn-hover-color: var(--bs-link-hover-color);
1196
+ --bs-btn-hover-border-color: transparent;
1197
+ --bs-btn-active-color: var(--bs-link-hover-color);
1198
+ --bs-btn-active-border-color: transparent;
1199
+ --bs-btn-disabled-color: #6c757d;
1200
+ --bs-btn-disabled-border-color: transparent;
1201
+ --bs-btn-box-shadow: none;
1202
+ --bs-btn-focus-shadow-rgb: 49, 132, 253;
1203
+ text-decoration: underline;
1204
+ }
1205
+ .btn-link:focus-visible {
1206
+ color: var(--bs-btn-color);
1207
+ }
1208
+ .btn-link:hover {
1209
+ color: var(--bs-btn-hover-color);
1210
+ }
1211
+
1212
+ .btn-lg, .btn-group-lg > .btn {
1213
+ --bs-btn-padding-y: 0.5rem;
1214
+ --bs-btn-padding-x: 1rem;
1215
+ --bs-btn-font-size: 1.25rem;
1216
+ --bs-btn-border-radius: 0.5rem;
1217
+ }
1218
+
1219
+ .btn-sm, .btn-group-sm > .btn {
1220
+ --bs-btn-padding-y: 0.25rem;
1221
+ --bs-btn-padding-x: 0.5rem;
1222
+ --bs-btn-font-size: 0.875rem;
1223
+ --bs-btn-border-radius: 0.25rem;
1224
+ }
1225
+
1226
+ .btn-group,
1227
+ .btn-group-vertical {
1228
+ position: relative;
1229
+ display: inline-flex;
1230
+ vertical-align: middle;
1231
+ }
1232
+ .btn-group > .btn,
1233
+ .btn-group-vertical > .btn {
1234
+ position: relative;
1235
+ flex: 1 1 auto;
1236
+ }
1237
+ .btn-group > .btn-check:checked + .btn,
1238
+ .btn-group > .btn-check:focus + .btn,
1239
+ .btn-group > .btn:hover,
1240
+ .btn-group > .btn:focus,
1241
+ .btn-group > .btn:active,
1242
+ .btn-group > .btn.active,
1243
+ .btn-group-vertical > .btn-check:checked + .btn,
1244
+ .btn-group-vertical > .btn-check:focus + .btn,
1245
+ .btn-group-vertical > .btn:hover,
1246
+ .btn-group-vertical > .btn:focus,
1247
+ .btn-group-vertical > .btn:active,
1248
+ .btn-group-vertical > .btn.active {
1249
+ z-index: 1;
1250
+ }
1251
+
1252
+ .btn-toolbar {
1253
+ display: flex;
1254
+ flex-wrap: wrap;
1255
+ justify-content: flex-start;
1256
+ }
1257
+ .btn-toolbar .input-group {
1258
+ width: auto;
1259
+ }
1260
+
1261
+ .btn-group {
1262
+ border-radius: 0.375rem;
1263
+ }
1264
+ .btn-group > :not(.btn-check:first-child) + .btn,
1265
+ .btn-group > .btn-group:not(:first-child) {
1266
+ margin-left: -1px;
1267
+ }
1268
+ .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
1269
+ .btn-group > .btn.dropdown-toggle-split:first-child,
1270
+ .btn-group > .btn-group:not(:last-child) > .btn {
1271
+ border-top-right-radius: 0;
1272
+ border-bottom-right-radius: 0;
1273
+ }
1274
+ .btn-group > .btn:nth-child(n+3),
1275
+ .btn-group > :not(.btn-check) + .btn,
1276
+ .btn-group > .btn-group:not(:first-child) > .btn {
1277
+ border-top-left-radius: 0;
1278
+ border-bottom-left-radius: 0;
1279
+ }
1280
+
1281
+ .dropdown-toggle-split {
1282
+ padding-right: 0.5625rem;
1283
+ padding-left: 0.5625rem;
1284
+ }
1285
+ .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
1286
+ margin-left: 0;
1287
+ }
1288
+ .dropstart .dropdown-toggle-split::before {
1289
+ margin-right: 0;
1290
+ }
1291
+
1292
+ .btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
1293
+ padding-right: 0.375rem;
1294
+ padding-left: 0.375rem;
1295
+ }
1296
+
1297
+ .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
1298
+ padding-right: 0.75rem;
1299
+ padding-left: 0.75rem;
1300
+ }
1301
+
1302
+ .btn-group-vertical {
1303
+ flex-direction: column;
1304
+ align-items: flex-start;
1305
+ justify-content: center;
1306
+ }
1307
+ .btn-group-vertical > .btn,
1308
+ .btn-group-vertical > .btn-group {
1309
+ width: 100%;
1310
+ }
1311
+ .btn-group-vertical > .btn:not(:first-child),
1312
+ .btn-group-vertical > .btn-group:not(:first-child) {
1313
+ margin-top: -1px;
1314
+ }
1315
+ .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
1316
+ .btn-group-vertical > .btn-group:not(:last-child) > .btn {
1317
+ border-bottom-right-radius: 0;
1318
+ border-bottom-left-radius: 0;
1319
+ }
1320
+ .btn-group-vertical > .btn ~ .btn,
1321
+ .btn-group-vertical > .btn-group:not(:first-child) > .btn {
1322
+ border-top-left-radius: 0;
1323
+ border-top-right-radius: 0;
1324
+ }
1325
+
842
1326
  :host {
843
1327
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
844
1328
  font-size: 1rem;
@@ -846,4 +1330,34 @@ textarea.form-control-lg {
846
1330
  line-height: 1.5;
847
1331
  color: #212529;
848
1332
  display: block;
1333
+ }
1334
+
1335
+ .jfi-btn-radio + .jfi-btn-radio-label {
1336
+ color: var(--jfi-radio-button-color);
1337
+ background-color: var(--jfi-radio-button-background-color);
1338
+ border-color: var(--jfi-radio-button-border-color);
1339
+ padding: var(--jfi-radio-button-padding);
1340
+ font-size: var(--jfi-radio-button-font-size);
1341
+ }
1342
+
1343
+ .jfi-btn-radio:focus + .jfi-btn-radio-label {
1344
+ box-shadow: var(--jfi-box-shadow-focus);
1345
+ }
1346
+
1347
+ .jfi-btn-radio + .jfi-btn-radio-label:hover {
1348
+ color: var(--jfi-radio-button-color-hover);
1349
+ border-color: var(--jfi-radio-button-border-color-hover);
1350
+ background-color: var(--jfi-radio-button-background-color-hover);
1351
+ }
1352
+
1353
+ .jfi-btn-radio:checked + .jfi-btn-radio-label:hover {
1354
+ color: var(--jfi-radio-button-color-selected-hover);
1355
+ border-color: var(--jfi-radio-button-border-color-selected-hover);
1356
+ background-color: var(--jfi-radio-button-background-color-selected-hover);
1357
+ }
1358
+
1359
+ .jfi-btn-radio:checked + .jfi-btn-radio-label {
1360
+ color: var(--jfi-radio-button-color-selected);
1361
+ background-color: var(--jfi-radio-button-background-color-selected);
1362
+ border-color: var(--jfi-radio-button-border-color-selected);
849
1363
  }
@@ -1,4 +1,4 @@
1
- import { h } from '@stencil/core';
1
+ import { Fragment, h } from '@stencil/core';
2
2
  const PaymentMethodLabels = {
3
3
  bankAccount: 'Bank Account',
4
4
  card: 'Card'
@@ -12,12 +12,11 @@ export class PaymentMethodSelector {
12
12
  this.paymentMethodSelected.emit(event.target.value);
13
13
  }
14
14
  render() {
15
- return (h("div", { class: "form-check" }, this.paymentMethodTypes.map((paymentMethodType) => {
16
- return (h("div", null, h("input", { id: paymentMethodType, type: "radio", name: "paymentMethodType", value: paymentMethodType, onChange: (event) => this.onChangeHandler(event), checked: this.selectedPaymentMethodType === paymentMethodType, class: "form-check-input" }), h("label", { htmlFor: paymentMethodType, class: "form-check-label" }, PaymentMethodLabels[paymentMethodType])));
17
- })));
15
+ return (h("div", { class: "btn-group", role: "group", "aria-label": "Radio toggle group for payment method" }, this.paymentMethodTypes.map((paymentMethodType) => h(Fragment, null, h("input", { id: paymentMethodType, type: "radio", name: "paymentMethodType", value: paymentMethodType, onChange: (event) => this.onChangeHandler(event), checked: this.selectedPaymentMethodType === paymentMethodType, class: "btn-check jfi-btn-radio" }), h("label", { htmlFor: paymentMethodType, class: "btn btn-outline-primary jfi-btn-radio-label" }, PaymentMethodLabels[paymentMethodType])))));
18
16
  }
19
17
  ;
20
18
  static get is() { return "justifi-payment-method-selector"; }
19
+ static get encapsulation() { return "shadow"; }
21
20
  static get originalStyleUrls() {
22
21
  return {
23
22
  "$": ["payment-method-selector.scss"]