@rebilly/instruments 1.0.1-beta → 1.0.2-beta.10

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 (277) hide show
  1. package/.babelrc +23 -5
  2. package/.eslintrc.js +27 -0
  3. package/.prettierrc.js +11 -0
  4. package/CONTRIBUTING.md +4 -0
  5. package/README.md +361 -2
  6. package/dist/events/base-event.js +51 -37
  7. package/dist/events/events.spec.js +18 -0
  8. package/dist/events/index.js +11 -8
  9. package/dist/functions/destroy.js +27 -5
  10. package/dist/functions/destroy.spec.js +69 -0
  11. package/dist/functions/initialize.js +60 -41
  12. package/dist/functions/initialize.spec.js +13 -13
  13. package/dist/functions/mount/fetch-summary-data.js +46 -0
  14. package/dist/functions/mount/fetch-summary-data.spec.js +44 -0
  15. package/dist/functions/mount/index.js +346 -0
  16. package/dist/functions/mount/mount.spec.js +135 -0
  17. package/dist/functions/on.js +26 -18
  18. package/dist/functions/on.spec.js +45 -63
  19. package/dist/functions/purchase.js +41 -154
  20. package/dist/functions/purchase.spec.js +60 -76
  21. package/dist/functions/show.js +39 -43
  22. package/dist/functions/show.spec.js +57 -0
  23. package/dist/functions/update.js +60 -5
  24. package/dist/functions/update.spec.js +100 -0
  25. package/dist/i18n/en.json +19 -0
  26. package/dist/i18n/es.json +19 -0
  27. package/dist/i18n/i18n.spec.js +6 -23
  28. package/dist/i18n/index.js +44 -67
  29. package/dist/index.js +70 -71
  30. package/dist/index.spec.js +24 -44
  31. package/dist/loader/index.js +63 -62
  32. package/dist/loader/loader.spec.js +14 -11
  33. package/dist/storefront/index.js +28 -39
  34. package/dist/storefront/models/plan-model.js +37 -54
  35. package/dist/storefront/models/product-model.js +25 -36
  36. package/dist/storefront/models/ready-to-pay-model.js +38 -42
  37. package/dist/storefront/models/summary-model.js +72 -99
  38. package/dist/storefront/plans.js +37 -84
  39. package/dist/storefront/plans.spec.js +61 -151
  40. package/dist/storefront/products.js +35 -83
  41. package/dist/storefront/products.spec.js +60 -150
  42. package/dist/storefront/purchase.js +27 -64
  43. package/dist/storefront/purchase.spec.js +51 -87
  44. package/dist/storefront/ready-to-pay.js +45 -107
  45. package/dist/storefront/ready-to-pay.spec.js +72 -147
  46. package/dist/storefront/storefront.spec.js +6 -6
  47. package/dist/storefront/summary.js +37 -84
  48. package/dist/storefront/summary.spec.js +135 -240
  49. package/dist/style/base/__snapshots__/theme.spec.js.snap +52 -0
  50. package/dist/style/base/index.js +72 -0
  51. package/dist/style/base/theme.js +73 -0
  52. package/dist/style/base/theme.spec.js +30 -0
  53. package/dist/style/browserslist.js +8 -0
  54. package/dist/style/components/address.js +64 -0
  55. package/dist/style/components/button.js +61 -0
  56. package/dist/style/components/divider.js +48 -0
  57. package/dist/style/components/forms/checkbox.js +83 -0
  58. package/dist/style/components/forms/field.js +53 -0
  59. package/dist/style/components/forms/form.js +28 -0
  60. package/dist/style/components/forms/input.js +45 -0
  61. package/dist/style/components/forms/label.js +43 -0
  62. package/dist/style/components/forms/select.js +63 -0
  63. package/dist/style/components/forms/validation.js +34 -0
  64. package/dist/style/components/icons.js +22 -0
  65. package/dist/style/components/index.js +57 -0
  66. package/dist/style/components/loader.js +48 -0
  67. package/dist/style/components/methods.js +104 -0
  68. package/dist/style/components/overlay.js +33 -0
  69. package/dist/style/helpers/index.js +59 -0
  70. package/dist/style/index.js +48 -0
  71. package/dist/style/payment-instruments/content.js +17 -0
  72. package/dist/style/payment-instruments/index.js +20 -0
  73. package/dist/style/payment-instruments/payment-card.js +35 -0
  74. package/dist/style/utils/color-values.js +22 -0
  75. package/dist/style/vendor/framepay.js +34 -0
  76. package/dist/style/vendor/postmate.js +17 -0
  77. package/dist/style/views/confirmation.js +85 -0
  78. package/dist/style/views/index.js +29 -0
  79. package/dist/style/views/method-selector.js +20 -0
  80. package/dist/style/views/modal.js +93 -0
  81. package/dist/style/views/result.js +61 -0
  82. package/dist/style/views/summary.js +123 -0
  83. package/dist/utils/add-dom-element.js +12 -34
  84. package/dist/utils/format-currency.js +4 -4
  85. package/dist/utils/has-valid-css-selector.js +2 -2
  86. package/dist/utils/index.js +15 -31
  87. package/dist/utils/is-dom-element.js +1 -1
  88. package/dist/utils/process-property-as-dom-element.js +12 -17
  89. package/dist/utils/sleep.js +10 -0
  90. package/{src/components → dist/views}/__snapshots__/summary.spec.js.snap +7 -3
  91. package/dist/views/common/iframe/base-iframe.js +57 -0
  92. package/dist/views/common/iframe/event-listeners.js +50 -0
  93. package/dist/views/common/iframe/index.js +19 -0
  94. package/dist/views/common/iframe/method-iframe.js +33 -0
  95. package/dist/views/common/iframe/modal-iframe.js +38 -0
  96. package/dist/views/common/iframe/view-iframe.js +31 -0
  97. package/dist/views/common/render-utilities.js +11 -0
  98. package/dist/views/confirmation.js +82 -0
  99. package/dist/views/method-selector/__snapshots__/method-selector.spec.js.snap +3 -0
  100. package/dist/views/method-selector/express-methods/apple-pay.js +92 -0
  101. package/dist/views/method-selector/express-methods/google-pay.js +32 -0
  102. package/dist/views/method-selector/express-methods/paypal.js +19 -0
  103. package/dist/views/method-selector/generate-digital-wallet.js +59 -0
  104. package/dist/views/method-selector/generate-digital-wallet.spec.js +132 -0
  105. package/dist/views/method-selector/get-method-data.js +25 -0
  106. package/dist/views/method-selector/get-payment-methods.js +55 -0
  107. package/dist/views/method-selector/get-payment-methods.spec.js +44 -0
  108. package/dist/views/method-selector/index.js +133 -0
  109. package/dist/views/method-selector/method-selector.spec.js +139 -0
  110. package/dist/views/method-selector/mount-express-methods.js +69 -0
  111. package/dist/views/method-selector/mount-methods.js +78 -0
  112. package/dist/views/modal.js +83 -0
  113. package/dist/views/result.js +42 -0
  114. package/dist/views/summary.js +162 -0
  115. package/dist/views/summary.spec.js +148 -0
  116. package/package.json +12 -6
  117. package/src/events/base-event.js +35 -12
  118. package/src/events/events.spec.js +11 -0
  119. package/src/events/index.js +12 -6
  120. package/src/functions/destroy.js +22 -3
  121. package/src/functions/destroy.spec.js +63 -0
  122. package/src/functions/initialize.js +43 -20
  123. package/src/functions/initialize.spec.js +9 -7
  124. package/src/functions/mount/fetch-summary-data.js +29 -0
  125. package/src/functions/mount/fetch-summary-data.spec.js +41 -0
  126. package/src/functions/mount/index.js +312 -0
  127. package/src/functions/mount/mount.spec.js +171 -0
  128. package/src/functions/on.js +17 -14
  129. package/src/functions/on.spec.js +39 -29
  130. package/src/functions/purchase.js +24 -64
  131. package/src/functions/purchase.spec.js +19 -17
  132. package/src/functions/show.js +27 -7
  133. package/src/functions/show.spec.js +61 -0
  134. package/src/functions/update.js +50 -3
  135. package/src/functions/update.spec.js +107 -0
  136. package/src/i18n/i18n.spec.js +6 -4
  137. package/src/i18n/index.js +20 -12
  138. package/src/index.js +43 -49
  139. package/src/index.spec.js +11 -42
  140. package/src/loader/index.js +55 -39
  141. package/src/loader/loader.spec.js +30 -23
  142. package/src/storefront/index.js +9 -7
  143. package/src/storefront/models/plan-model.js +1 -1
  144. package/src/storefront/models/product-model.js +1 -1
  145. package/src/storefront/models/ready-to-pay-model.js +10 -4
  146. package/src/storefront/models/summary-model.js +8 -15
  147. package/src/storefront/plans.js +16 -12
  148. package/src/storefront/plans.spec.js +29 -37
  149. package/src/storefront/products.js +16 -12
  150. package/src/storefront/products.spec.js +28 -39
  151. package/src/storefront/purchase.js +8 -6
  152. package/src/storefront/purchase.spec.js +18 -17
  153. package/src/storefront/ready-to-pay.js +19 -13
  154. package/src/storefront/ready-to-pay.spec.js +41 -41
  155. package/src/storefront/storefront.spec.js +1 -1
  156. package/src/storefront/summary.js +14 -12
  157. package/src/storefront/summary.spec.js +37 -50
  158. package/src/style/base/__snapshots__/theme.spec.js.snap +52 -0
  159. package/src/style/base/index.js +63 -0
  160. package/src/style/base/theme.js +61 -0
  161. package/src/style/base/theme.spec.js +32 -0
  162. package/src/style/browserslist.js +1 -0
  163. package/src/style/components/address.js +55 -0
  164. package/src/style/components/button.js +54 -0
  165. package/src/style/components/divider.js +39 -0
  166. package/src/style/components/forms/checkbox.js +76 -0
  167. package/src/style/components/forms/field.js +44 -0
  168. package/src/style/components/forms/form.js +19 -0
  169. package/src/style/components/forms/input.js +36 -0
  170. package/src/style/components/forms/label.js +34 -0
  171. package/src/style/components/forms/select.js +54 -0
  172. package/src/style/components/forms/validation.js +25 -0
  173. package/src/style/components/icons.js +13 -0
  174. package/src/style/components/index.js +35 -0
  175. package/src/style/components/loader.js +41 -0
  176. package/src/style/components/methods.js +93 -0
  177. package/src/style/components/overlay.js +24 -0
  178. package/src/style/helpers/index.js +51 -0
  179. package/src/style/index.js +30 -0
  180. package/src/style/payment-instruments/content.js +8 -0
  181. package/src/style/payment-instruments/index.js +10 -0
  182. package/src/style/payment-instruments/payment-card.js +26 -0
  183. package/src/style/utils/color-values.js +9 -0
  184. package/src/style/vendor/framepay.js +25 -0
  185. package/src/style/vendor/postmate.js +8 -0
  186. package/src/style/views/confirmation.js +76 -0
  187. package/src/style/views/index.js +16 -0
  188. package/src/style/views/method-selector.js +11 -0
  189. package/src/style/views/modal.js +84 -0
  190. package/src/style/views/result.js +52 -0
  191. package/src/style/views/summary.js +114 -0
  192. package/src/utils/add-dom-element.js +12 -13
  193. package/src/utils/format-currency.js +4 -1
  194. package/src/utils/has-valid-css-selector.js +2 -2
  195. package/src/utils/index.js +2 -6
  196. package/src/utils/is-dom-element.js +1 -1
  197. package/src/utils/process-property-as-dom-element.js +27 -24
  198. package/src/utils/sleep.js +3 -0
  199. package/src/views/__snapshots__/summary.spec.js.snap +292 -0
  200. package/src/views/common/iframe/base-iframe.js +46 -0
  201. package/src/views/common/iframe/event-listeners.js +27 -0
  202. package/src/views/common/iframe/index.js +7 -0
  203. package/src/views/common/iframe/method-iframe.js +21 -0
  204. package/src/views/common/iframe/modal-iframe.js +27 -0
  205. package/src/views/common/iframe/view-iframe.js +18 -0
  206. package/src/views/common/render-utilities.js +4 -0
  207. package/src/views/confirmation.js +57 -0
  208. package/src/views/method-selector/__snapshots__/method-selector.spec.js.snap +3 -0
  209. package/src/views/method-selector/express-methods/apple-pay.js +78 -0
  210. package/src/views/method-selector/express-methods/google-pay.js +25 -0
  211. package/src/views/method-selector/express-methods/paypal.js +7 -0
  212. package/src/views/method-selector/generate-digital-wallet.js +44 -0
  213. package/src/views/method-selector/generate-digital-wallet.spec.js +131 -0
  214. package/src/{components/form → views/method-selector}/get-method-data.js +9 -5
  215. package/src/views/method-selector/get-payment-methods.js +40 -0
  216. package/src/views/method-selector/get-payment-methods.spec.js +40 -0
  217. package/src/views/method-selector/index.js +110 -0
  218. package/src/views/method-selector/method-selector.spec.js +146 -0
  219. package/src/views/method-selector/mount-express-methods.js +53 -0
  220. package/src/views/method-selector/mount-methods.js +71 -0
  221. package/src/views/modal.js +84 -0
  222. package/src/views/result.js +30 -0
  223. package/src/{components → views}/summary.js +90 -21
  224. package/src/views/summary.spec.js +170 -0
  225. package/tests/async-utilities.js +22 -0
  226. package/tests/mocks/rebilly-instruments-mock.js +105 -7
  227. package/dist/components/confirmation.js +0 -103
  228. package/dist/components/form/form.js +0 -110
  229. package/dist/components/form/form.spec.js +0 -135
  230. package/dist/components/form/get-method-data.js +0 -21
  231. package/dist/components/form/get-payment-methods.js +0 -42
  232. package/dist/components/form/method-selector.js +0 -61
  233. package/dist/components/form/mount-express-payment-methods.js +0 -102
  234. package/dist/components/form/process-digital-wallet-options.js +0 -20
  235. package/dist/components/form/zoid-helpers.js +0 -130
  236. package/dist/components/result.js +0 -66
  237. package/dist/components/summary.js +0 -60
  238. package/dist/components/summary.spec.js +0 -144
  239. package/dist/events/instrument-ready.js +0 -51
  240. package/dist/events/purchase-complete.js +0 -51
  241. package/dist/functions/mount.js +0 -311
  242. package/dist/functions/mount.spec.js +0 -203
  243. package/dist/styles/base-styles.js +0 -12
  244. package/dist/styles/flat-theme-object.js +0 -42
  245. package/dist/styles/framepay.js +0 -15
  246. package/dist/styles/main.js +0 -25
  247. package/dist/styles/payment-card.js +0 -12
  248. package/dist/styles/shade-tint-values-helper.js +0 -28
  249. package/dist/styles/style-variables.js +0 -43
  250. package/dist/utils/camel-case.js +0 -12
  251. package/dist/utils/kebab-case.js +0 -10
  252. package/dist/utils/un-kebab-case.js +0 -10
  253. package/src/components/confirmation.js +0 -77
  254. package/src/components/form/__snapshots__/form.spec.js.snap +0 -43
  255. package/src/components/form/form.js +0 -88
  256. package/src/components/form/form.spec.js +0 -109
  257. package/src/components/form/get-payment-methods.js +0 -32
  258. package/src/components/form/method-selector.js +0 -47
  259. package/src/components/form/mount-express-payment-methods.js +0 -84
  260. package/src/components/form/process-digital-wallet-options.js +0 -11
  261. package/src/components/form/zoid-helpers.js +0 -114
  262. package/src/components/result.js +0 -50
  263. package/src/components/summary.spec.js +0 -106
  264. package/src/events/instrument-ready.js +0 -11
  265. package/src/events/purchase-complete.js +0 -11
  266. package/src/functions/mount.js +0 -204
  267. package/src/functions/mount.spec.js +0 -172
  268. package/src/styles/base-styles.js +0 -741
  269. package/src/styles/flat-theme-object.js +0 -12
  270. package/src/styles/framepay.js +0 -30
  271. package/src/styles/main.js +0 -17
  272. package/src/styles/payment-card.js +0 -18
  273. package/src/styles/shade-tint-values-helper.js +0 -13
  274. package/src/styles/style-variables.js +0 -34
  275. package/src/utils/camel-case.js +0 -3
  276. package/src/utils/kebab-case.js +0 -3
  277. package/src/utils/un-kebab-case.js +0 -3
@@ -1,741 +0,0 @@
1
- export const BASE_STYLE = (STYLES_VARIABLES, primaryValues, textColorMuted) => `
2
- /* Loader */
3
- .rebilly-instruments-loader {
4
- display: none;
5
- position: absolute;
6
- top: 0;
7
- bottom: 0;
8
- left: 0;
9
- right: 0;
10
- justify-content: center;
11
- align-items: center;
12
- background-color: ${STYLES_VARIABLES.background};
13
- z-index: 9000;
14
- transition: all 200ms;
15
- }
16
-
17
- .rebilly-instruments-loader.active {
18
- display: flex;
19
- }
20
-
21
- .rebilly-instruments-loader-spinner {
22
- border: 4px solid ${primaryValues.tint(80).hexString()};
23
- border-top: 4px solid ${STYLES_VARIABLES.primary};
24
- border-radius: 50%;
25
- width: 40px;
26
- height: 40px;
27
- animation: spin 0.5s ease infinite;
28
- }
29
-
30
- @keyframes spin {
31
- 0% { transform: rotate(0deg); }
32
- 100% { transform: rotate(360deg); }
33
- }
34
-
35
- /* Helpers */
36
- .visually-hidden {
37
- border: 0;
38
- clip: rect(0 0 0 0);
39
- height: 1px;
40
- margin: -1px;
41
- overflow: hidden;
42
- padding: 0;
43
- position: absolute;
44
- width: 1px;
45
- }
46
-
47
- .mt-xxs { margin-top: ${STYLES_VARIABLES.spaceXXS}!important }
48
- .mt-xs { margin-top: ${STYLES_VARIABLES.spaceXS}!important }
49
- .mt-s { margin-top: ${STYLES_VARIABLES.spaceS}!important }
50
- .mt-m { margin-top: ${STYLES_VARIABLES.spaceM}!important }
51
- .mt-l { margin-top: ${STYLES_VARIABLES.spaceL}!important }
52
- .mt-xl { margin-top: ${STYLES_VARIABLES.spaceXL}!important }
53
- .mt-xxl { margin-top: ${STYLES_VARIABLES.spaceXXL}!important }
54
- .mt-0 { margin-top: 0!important }
55
- .mr-xxs { margin-right: ${STYLES_VARIABLES.spaceXXS}!important }
56
- .mr-xs { margin-right: ${STYLES_VARIABLES.spaceXS}!important }
57
- .mr-s { margin-right: ${STYLES_VARIABLES.spaceS}!important }
58
- .mr-m { margin-right: ${STYLES_VARIABLES.spaceM}!important }
59
- .mr-l { margin-right: ${STYLES_VARIABLES.spaceL}!important }
60
- .mr-xl { margin-right: ${STYLES_VARIABLES.spaceXL}!important }
61
- .mr-xxl { margin-right: ${STYLES_VARIABLES.spaceXXL}!important }
62
- .mr-0 { margin-right: 0!important }
63
- .mb-xxs { margin-bottom: ${STYLES_VARIABLES.spaceXXS}!important }
64
- .mb-xs { margin-bottom: ${STYLES_VARIABLES.spaceXS}!important }
65
- .mb-s { margin-bottom: ${STYLES_VARIABLES.spaceS}!important }
66
- .mb-m { margin-bottom: ${STYLES_VARIABLES.spaceM}!important }
67
- .mb-l { margin-bottom: ${STYLES_VARIABLES.spaceL}!important }
68
- .mb-xl { margin-bottom: ${STYLES_VARIABLES.spaceXL}!important }
69
- .mb-xxl { margin-bottom: ${STYLES_VARIABLES.spaceXXL}!important }
70
- .mb-0 { margin-bottom: 0!important }
71
- .ml-xxs { margin-left: ${STYLES_VARIABLES.spaceXXS}!important }
72
- .ml-xs { margin-left: ${STYLES_VARIABLES.spaceXS}!important }
73
- .ml-s { margin-left: ${STYLES_VARIABLES.spaceS}!important }
74
- .ml-m { margin-left: ${STYLES_VARIABLES.spaceM}!important }
75
- .ml-l { margin-left: ${STYLES_VARIABLES.spaceL}!important }
76
- .ml-xl { margin-left: ${STYLES_VARIABLES.spaceXL}!important }
77
- .ml-xxl { margin-left: ${STYLES_VARIABLES.spaceXXL}!important }
78
- .ml-0 { margin-left: 0!important }
79
-
80
- /* Icons */
81
- .rebilly-instruments-icon {
82
- width: ${STYLES_VARIABLES.lineHeight};
83
- height: ${STYLES_VARIABLES.lineHeight};
84
- fill: ${STYLES_VARIABLES.text};
85
- }
86
-
87
- /* Form */
88
- .rebilly-instruments-form {
89
- color: ${STYLES_VARIABLES.text};
90
- background: ${STYLES_VARIABLES.background};
91
- font-size: ${STYLES_VARIABLES.fontSize};
92
- line-height: ${STYLES_VARIABLES.lineHeight};
93
- font-family: ${STYLES_VARIABLES.fontFamily};
94
- -webkit-font-smoothing: antialiased;
95
- -moz-osx-font-smoothing: grayscale;
96
- text-align: left;
97
- transition: all 200ms;
98
- padding: 2px;
99
- }
100
-
101
- .rebilly-instruments-form.is-popup {
102
- padding: 20px;
103
- }
104
-
105
- .rebilly-instruments-form fieldset {
106
- border: none;
107
- margin: 0;
108
- padding: 0;
109
- }
110
-
111
- .rebilly-instruments-form h2 {
112
- font-size: ${STYLES_VARIABLES.fontSize};
113
- line-height: ${STYLES_VARIABLES.lineHeight};
114
- margin: 0 0 ${STYLES_VARIABLES.spaceM};
115
- font-weight: 500;
116
- }
117
-
118
- .rebilly-instruments-form-express * + * {
119
- margin-top: ${STYLES_VARIABLES.spaceS};
120
- }
121
-
122
- .rebilly-instruments-form-express.compact * + * {
123
- margin-top: 0;
124
- }
125
-
126
- .rebilly-instruments-form-express.compact {
127
- display: flex;
128
- justify-content: center;
129
- padding: calc(${STYLES_VARIABLES.spaceXS} + ${STYLES_VARIABLES.spaceS}) ${STYLES_VARIABLES.spaceS} ${STYLES_VARIABLES.spaceS};
130
- border: 1px solid ${textColorMuted[7].hexString()};
131
- border-radius: 4px;
132
- position: relative;
133
- flex-wrap: wrap;
134
- }
135
-
136
- @keyframes rebillyExpressShine {
137
- to {
138
- background-position-x: -200%;
139
- }
140
- }
141
-
142
- .rebilly-instruments-form-express.compact > * {
143
- flex: 1 1;
144
- margin: ${STYLES_VARIABLES.spaceXS} ${STYLES_VARIABLES.spaceXS};
145
- max-width: 260px;
146
- min-height: 44px;
147
- background: linear-gradient(110deg, ${textColorMuted[8].hexString()} 0%, ${textColorMuted[9].hexString()} 25%, ${textColorMuted[8].hexString()} 50%);
148
- border-radius: 6px;
149
- background-size: 200% 100%;
150
- animation: 1.5s rebillyExpressShine linear infinite;
151
- }
152
-
153
- .rebilly-instruments-form-express:empty {
154
- display: none;
155
- }
156
-
157
- @media (max-width: 600px) {
158
- .rebilly-instruments-form-express.compact > * {
159
- flex: 1 1 auto;
160
- max-width: 100%;
161
- }
162
- }
163
-
164
- .rebilly-instruments-form-express.compact .rebilly-instruments-form-express-label {
165
- position: absolute;
166
- top: -12px;
167
- color: ${STYLES_VARIABLES.text};
168
- padding: 0 ${STYLES_VARIABLES.spaceS};
169
- line-height: ${STYLES_VARIABLES.lineHeight};
170
- background: ${STYLES_VARIABLES.background};
171
- display: inline-block;
172
- font-weight: 500;
173
- min-height: auto;
174
- margin: 0;
175
- }
176
-
177
- .rebilly-instruments-methods {
178
- background-color: ${STYLES_VARIABLES.background};
179
- }
180
-
181
- .rebilly-instruments-button {
182
- font-size: ${STYLES_VARIABLES.fontSize};
183
- font-family: ${STYLES_VARIABLES.fontFamily};
184
- line-height: ${STYLES_VARIABLES.lineHeight};
185
- padding: ${STYLES_VARIABLES.formElementPadding};
186
- box-sizing: border-box;
187
- background: ${STYLES_VARIABLES.primary};
188
- color: ${STYLES_VARIABLES.buttonText};
189
- border-radius: ${STYLES_VARIABLES.borderRadius};
190
- margin: calc(${STYLES_VARIABLES.spaceXXS} + ${STYLES_VARIABLES.spaceS} / 2) 0;
191
- font-weight: 500;
192
- border: none;
193
- width: 100%;
194
- cursor: pointer;
195
- min-height: 44px;
196
- transition: all 0.2s ease;
197
- outline: none;
198
- }
199
-
200
- .rebilly-instruments-button.rebilly-instruments-button-secondary {
201
- background: ${STYLES_VARIABLES.background};
202
- box-shadow: inset 0 0 0 1px ${STYLES_VARIABLES.primary};
203
- color: ${STYLES_VARIABLES.primary};
204
- }
205
-
206
- .rebilly-instruments-button:first-of-type {
207
- margin-top: 0;
208
- }
209
-
210
- .rebilly-instruments-button:last-of-type {
211
- margin-bottom: 0;
212
- }
213
-
214
- .rebilly-instruments-button:hover,
215
- .rebilly-instruments-button:active {
216
- background: ${primaryValues.shade(20).hexString()};
217
- }
218
-
219
- .rebilly-instruments-button.rebilly-instruments-button-secondary:hover,
220
- .rebilly-instruments-button.rebilly-instruments-button-secondary:active {
221
- background: ${STYLES_VARIABLES.background};
222
- }
223
-
224
- .rebilly-instruments-button:focus,
225
- .rebilly-instruments-button:focus-visible,
226
- .rebilly-instruments-button:focus-within {
227
- box-shadow: 0 0 0 2px ${primaryValues.tint(60).hexString()};
228
- }
229
-
230
- .rebilly-instruments-button:disabled {
231
- opacity: 0.6;
232
- }
233
-
234
- .rebilly-instruments-button::first-letter {
235
- text-transform: uppercase;
236
- }
237
-
238
- .rebilly-instruments-select-field select {
239
- font-size: ${STYLES_VARIABLES.fontSize};
240
- line-height: ${STYLES_VARIABLES.lineHeight};
241
- padding: ${STYLES_VARIABLES.formElementPadding};
242
- margin: 0;
243
- border: 1px solid ${textColorMuted[5].hexString()};
244
- border-radius: ${STYLES_VARIABLES.borderRadius};
245
- background: transparent;
246
- width: 100%;
247
- cursor: pointer;
248
- min-height: 44px;
249
- }
250
-
251
- .rebilly-instruments-input-field,
252
- .rebilly-instruments-select-field {
253
- font-size: ${STYLES_VARIABLES.fontSize};
254
- line-height: ${STYLES_VARIABLES.lineHeight};
255
- position: relative;
256
- margin: calc(${STYLES_VARIABLES.spaceXXS} + ${STYLES_VARIABLES.spaceS}) 0;
257
- }
258
-
259
- .rebilly-instruments-input-field label,
260
- .rebilly-instruments-select-field label {
261
- left: ${STYLES_VARIABLES.formElementHorizontalPadding};
262
- color: ${STYLES_VARIABLES.text};
263
- background: transparent;
264
- opacity: 0;
265
- position: absolute;
266
- top: 22px;
267
- transform: translateY(-50%);
268
- transition: all 200ms;
269
- cursor: text;
270
- pointer-events: none;
271
- }
272
-
273
- .rebilly-instruments-select-field label {
274
- opacity: 0.5;
275
- }
276
-
277
- .rebilly-instruments-input-field input {
278
- font-size: ${STYLES_VARIABLES.fontSize};
279
- line-height: ${STYLES_VARIABLES.lineHeight};
280
- padding: ${STYLES_VARIABLES.formElementPadding};
281
- min-height: ${STYLES_VARIABLES.formElementMinHeight};
282
- background: transparent;
283
- box-sizing: border-box;
284
- width: 100%;
285
- transition: all 200ms;
286
- border: 1px solid ${textColorMuted[5].hexString()};
287
- border-radius: ${STYLES_VARIABLES.borderRadius};
288
- }
289
-
290
- .rebilly-instruments-input-field input::placeholder {
291
- color: ${STYLES_VARIABLES.text};
292
- opacity: 0.5;
293
- }
294
-
295
- .rebilly-instruments-select-field select {
296
- -webkit-appearance: none;
297
- -moz-appearance: none;
298
- }
299
-
300
- .rebilly-instruments-select-field select::-ms-expand {
301
- display: none;
302
- }
303
-
304
- .rebilly-instruments-input-field input:focus,
305
- .rebilly-instruments-input-field input:focus-visible,
306
- .rebilly-instruments-input-field input:focus-within,
307
- .rebilly-instruments-select-field select:focus,
308
- .rebilly-instruments-select-field select:focus-visible,
309
- .rebilly-instruments-select-field select:focus-within {
310
- outline: none;
311
- border: 1px solid ${STYLES_VARIABLES.primary};
312
- box-shadow: 0 0 0 1px ${STYLES_VARIABLES.primary};
313
- }
314
-
315
- .rebilly-instruments-input-field input:not(:placeholder-shown) + label,
316
- .rebilly-instruments-select-field select:focus + label,
317
- .rebilly-instruments-select-field label.active {
318
- padding: 0 ${STYLES_VARIABLES.spaceXXS};
319
- left: calc(${STYLES_VARIABLES.formElementHorizontalPadding} - ${STYLES_VARIABLES.spaceXXS});
320
- font-size: ${STYLES_VARIABLES.fontSizeSmall};
321
- line-height: ${STYLES_VARIABLES.fontSizeSmall};
322
- color: ${STYLES_VARIABLES.text};
323
- background: ${STYLES_VARIABLES.background};
324
- font-weight: 500;
325
- opacity: 1;
326
- top: 0;
327
- }
328
-
329
- .rebilly-instruments-select-field::before {
330
- content: '';
331
- position: absolute;
332
- width: 8px;
333
- height: 8px;
334
- border: solid ${STYLES_VARIABLES.text};
335
- border-width: 0 2px 2px 0;
336
- transform: rotate(45deg);
337
- -webkit-transform: rotate(45deg);
338
- right: 16px;
339
- top: 16px;
340
- }
341
-
342
- .rebilly-instruments-checkbox-field {
343
- position: relative;
344
- padding-left: calc(${STYLES_VARIABLES.spaceM} + ${STYLES_VARIABLES.spaceS});
345
- align-items: center;
346
- margin: calc(${STYLES_VARIABLES.spaceM} - ${STYLES_VARIABLES.spaceXXS}) 0;
347
- display: block;
348
- cursor: pointer;
349
- }
350
-
351
- .rebilly-instruments-checkbox-field > * {
352
- cursor: pointer;
353
- }
354
-
355
- .rebilly-instruments-checkbox-field input[type="checkbox"] {
356
- position: absolute;
357
- opacity: 0;
358
- cursor: pointer;
359
- height: 0;
360
- width: 0;
361
- }
362
-
363
- .rebilly-instruments-checkbox-field .rebilly-instruments-checkbox-check {
364
- position: absolute;
365
- top: 0;
366
- left: 0;
367
- height: 24px;
368
- width: 24px;
369
- border-radius: 4px;
370
- box-shadow: inset 0 0 0 1px ${textColorMuted[5].hexString()};
371
- background-color: transparent;
372
- transition: all 200ms;
373
- }
374
-
375
- .rebilly-instruments-checkbox-field .rebilly-instruments-checkbox-check:after {
376
- content: '';
377
- position: absolute;
378
- left: 9px;
379
- top: 4px;
380
- opacity: 0;
381
- width: 5px;
382
- height: 11px;
383
- border: solid ${STYLES_VARIABLES.primary};
384
- border-width: 0 2px 2px 0;
385
- -webkit-transform: rotate(45deg);
386
- -ms-transform: rotate(45deg);
387
- transform: rotate(45deg);
388
- transition: all 200ms;
389
- }
390
-
391
- .rebilly-instruments-checkbox-field input[type="checkbox"]:checked ~ .rebilly-instruments-checkbox-check {
392
- box-shadow: inset 0 0 0 2px ${STYLES_VARIABLES.primary};
393
- }
394
-
395
- .rebilly-instruments-checkbox-field input[type="checkbox"]:checked ~ .rebilly-instruments-checkbox-check:after {
396
- opacity: 1;
397
- }
398
-
399
- .rebilly-instruments-checkbox-field input[type="checkbox"]:focus ~ .rebilly-instruments-checkbox-check {
400
- box-shadow: 0 0 0 2px ${primaryValues.tint(80).hexString()}, inset 0 0 0 1px ${STYLES_VARIABLES.primary};
401
- }
402
-
403
- .rebilly-instruments-divider {
404
- line-height: ${STYLES_VARIABLES.lineHeight};
405
- padding: ${STYLES_VARIABLES.spaceM} 0;
406
- margin: 0;
407
- position: relative;
408
- outline: 0;
409
- border: 0;
410
- text-align: center;
411
- }
412
-
413
- .rebilly-instruments-divider::before {
414
- background: ${textColorMuted[7].hexString()};
415
- content: '';
416
- position: absolute;
417
- left: 0;
418
- top: 50%;
419
- width: 100%;
420
- height: 1px;
421
- }
422
-
423
- .rebilly-instruments-divider .rebilly-instruments-divider-label {
424
- color: ${textColorMuted[2].hexString()};
425
- font-weight: 500;
426
- text-transform: uppercase;
427
- padding: 0 ${STYLES_VARIABLES.spaceS};
428
- line-height: 14px;
429
- background-color: ${STYLES_VARIABLES.background};
430
- font-size: 12px;
431
- position: relative;
432
- display: inline-block;
433
- }
434
-
435
- .rebilly-instruments-select-field-error select,
436
- .rebilly-instruments-input-field-error input {
437
- border-color: ${STYLES_VARIABLES.errorText};
438
- color: ${STYLES_VARIABLES.errorText};
439
- }
440
-
441
- .rebilly-instruments-validation-error-wrapper,
442
- .rebilly-instruments-errors {
443
- margin-top: ${STYLES_VARIABLES.spaceXXS};
444
- margin-bottom: calc(${STYLES_VARIABLES.spaceXXS} + ${STYLES_VARIABLES.spaceS});
445
- padding: 0;
446
- list-style: none;
447
- }
448
-
449
- .rebilly-instruments-validation-error-item,
450
- .rebilly-instruments-errors li {
451
- color: ${STYLES_VARIABLES.errorText};
452
- padding: 0;
453
- }
454
-
455
- .rebilly-instruments-overlay {
456
- position: absolute;
457
- left: 0;
458
- right: 0;
459
- top: 0;
460
- bottom: 0;
461
- background: rgba(0,0,0,0.5);
462
- display: flex;
463
- justify-content: center;
464
- align-items: center;
465
- color: #ffffff;
466
- font-family: "Helvetica Neue";
467
- font-size: 18px;
468
- z-index: 9001
469
- }
470
-
471
- /* Summary */
472
- .rebilly-instruments-summary-container {
473
- color: ${STYLES_VARIABLES.text};
474
- font-size: ${STYLES_VARIABLES.fontSize};
475
- line-height: ${STYLES_VARIABLES.lineHeight};
476
- font-family: ${STYLES_VARIABLES.fontFamily};
477
- background: ${STYLES_VARIABLES.background};
478
- -webkit-font-smoothing: antialiased;
479
- -moz-osx-font-smoothing: grayscale;
480
- text-align: left;
481
- }
482
-
483
- .rebilly-instruments-summary-line-item {
484
- border-bottom: 1px solid ${textColorMuted[7].hexString()};
485
- padding: ${STYLES_VARIABLES.spaceS} 0;
486
- display: flex;
487
- align-items: center;
488
- position: relative;
489
- }
490
-
491
- .rebilly-instruments-summary-line-item:first-child {
492
- padding-top: 0;
493
- }
494
-
495
- .rebilly-instruments-summary-line-item-figure {
496
- margin: 0 ${STYLES_VARIABLES.spaceS} 0 0;
497
- flex: 0 0 auto;
498
- width: 48px;
499
- height: 48px;
500
- border-radius: ${STYLES_VARIABLES.borderRadius};
501
- box-shadow: 0 0 0 1px ${textColorMuted[7].hexString()};
502
- overflow: hidden;
503
- }
504
-
505
- .rebilly-instruments-summary-line-item-figure img {
506
- width: 100%;
507
- }
508
-
509
- .rebilly-instruments-summary-line-item-synopsis {
510
- flex: 1 2 auto;
511
- }
512
-
513
- .rebilly-instruments-summary-line-item-synopsis-title {
514
- margin: 0;
515
- font-weight: 500;
516
- }
517
-
518
- .rebilly-instruments-summary-line-item-synopsis-description {
519
- color: ${textColorMuted[2].hexString()};
520
- margin: 0;
521
- font-size: 14px;
522
- line-height: 14px;
523
- }
524
-
525
- .rebilly-instruments-summary-line-item-price-breakdown {
526
- display: flex;
527
- justify-content: center;
528
- align-items: center;
529
- color: ${textColorMuted[2].hexString()};
530
- margin: 0 ${STYLES_VARIABLES.spaceS};
531
- }
532
-
533
- .rebilly-instruments-summary-line-item-amount {
534
- font-weight: 500;
535
- }
536
-
537
- .rebilly-instruments-summary-breakdown table {
538
- width: 100%;
539
- margin: ${STYLES_VARIABLES.spaceXS} 0;
540
- }
541
-
542
- .rebilly-instruments-summary-breakdown table colgroup col:first-child {
543
- width: 85%;
544
- }
545
-
546
- .rebilly-instruments-summary-breakdown table colgroup col {
547
- width: 15%;
548
- }
549
-
550
- .rebilly-instruments-summary-breakdown table tr td {
551
- text-align: right;
552
- }
553
-
554
- .rebilly-instruments-summary-breakdown table tr td:first-child {
555
- padding-right: ${STYLES_VARIABLES.spaceS};
556
- font-weight: 500;
557
- }
558
-
559
- .rebilly-instruments-summary-breakdown-total {
560
- padding-top: ${STYLES_VARIABLES.spaceXS};
561
- display: flex;
562
- border-top: 1px solid ${textColorMuted[7].hexString()};
563
- align-items: center;
564
- }
565
-
566
- .rebilly-instruments-summary-breakdown-total p {
567
- margin: ${STYLES_VARIABLES.spaceS} 0;
568
- }
569
-
570
- .rebilly-instruments-summary-breakdown-total-amount {
571
- flex: 1 2 80%;
572
- font-size: 24px;
573
- font-weight: 500;
574
- text-align: right;
575
- font-weight: bold;
576
- }
577
-
578
- .rebilly-instruments-summary-breakdown-total-amount-currency {
579
- font-size: ${STYLES_VARIABLES.fontSize};
580
- font-weight: normal;
581
- color: ${textColorMuted[2].hexString()};
582
- margin-right: ${STYLES_VARIABLES.spaceS};
583
- }
584
-
585
- /* Confirmation */
586
- .rebilly-instruments-confirmation {
587
- color: ${STYLES_VARIABLES.text};
588
- background: ${STYLES_VARIABLES.background};
589
- font-size: ${STYLES_VARIABLES.fontSize};
590
- line-height: ${STYLES_VARIABLES.lineHeight};
591
- font-family: ${STYLES_VARIABLES.fontFamily};
592
- -webkit-font-smoothing: antialiased;
593
- -moz-osx-font-smoothing: grayscale;
594
- text-align: left;
595
- transition: all 200ms;
596
- padding: 2px;
597
- }
598
-
599
- .rebilly-instruments-confirmation a {
600
- color: ${STYLES_VARIABLES.primary};
601
- cursor: pointer;
602
- }
603
-
604
- .rebilly-instruments-confirmation a:hover {
605
- text-decoration: none;
606
- }
607
-
608
- .rebilly-instruments-confirmation a svg {
609
- fill: ${STYLES_VARIABLES.primary};
610
- }
611
-
612
- .rebilly-instruments-confirmation-go-back {
613
- display: inline-flex;
614
- margin-bottom: ${STYLES_VARIABLES.spaceM};
615
- }
616
-
617
- .rebilly-instruments-confirmation h2 {
618
- font-size: ${STYLES_VARIABLES.fontSize};
619
- line-height: ${STYLES_VARIABLES.lineHeight};
620
- margin: 0 0 ${STYLES_VARIABLES.spaceS};
621
- font-weight: 500;
622
- }
623
-
624
- .rebilly-instruments-confirmation-addresses-title {
625
- display: flex;
626
- justify-content: flex-start;
627
- }
628
-
629
- .rebilly-instruments-confirmation-addresses-title a {
630
- margin-left: ${STYLES_VARIABLES.spaceS};
631
- font-weight: normal;
632
- }
633
-
634
- .rebilly-instruments-confirmation address {
635
- margin: 0 0 ${STYLES_VARIABLES.spaceM};
636
- color: ${textColorMuted[2].hexString()};
637
- font-style: normal;
638
- }
639
-
640
- .rebilly-instruments-confirmation-address-actions {
641
- display: flex;
642
- }
643
-
644
- .rebilly-instruments-confirmation-address-actions :first-child {
645
- margin: 0 ${STYLES_VARIABLES.spaceXS} 0 0;
646
- }
647
-
648
- .rebilly-instruments-confirmation-address-actions :last-child {
649
- margin: 0 0 0 ${STYLES_VARIABLES.spaceXS};
650
- }
651
-
652
- .rebilly-instruments-confirm-payment-method {
653
- display: inline-flex;
654
- align-items: center;
655
- justify-content: space-between;
656
- height: 26px;
657
- margin: 0 0 ${STYLES_VARIABLES.spaceL};
658
- }
659
-
660
- .rebilly-instruments-confirm-payment-method figure {
661
- margin: 0 ${STYLES_VARIABLES.spaceXXS} 0 0;
662
- height: 26px;
663
- padding: 0;
664
- }
665
-
666
- .rebilly-instruments-confirm-payment-method span {
667
- display: inline-block;
668
- margin: 0 0 0 ${STYLES_VARIABLES.spaceS};
669
- }
670
-
671
- .rebilly-instruments-confirm-payment-method figure img {
672
- width: 42px;
673
- border-radius: ${STYLES_VARIABLES.borderRadius};
674
- }
675
-
676
- .rebilly-instruments-confirm-payment-method-exp {
677
- color: ${textColorMuted[2].hexString()};
678
- }
679
-
680
- /* Results */
681
- .rebilly-instruments-results {
682
- color: ${STYLES_VARIABLES.text};
683
- background: ${STYLES_VARIABLES.background};
684
- font-size: ${STYLES_VARIABLES.fontSize};
685
- line-height: ${STYLES_VARIABLES.lineHeight};
686
- font-family: ${STYLES_VARIABLES.fontFamily};
687
- -webkit-font-smoothing: antialiased;
688
- -moz-osx-font-smoothing: grayscale;
689
- text-align: left;
690
- transition: all 200ms;
691
- }
692
-
693
- .rebilly-instruments-results h1 {
694
- font-size: calc(${STYLES_VARIABLES.fontSize} * 1.5);
695
- line-height: calc(${STYLES_VARIABLES.lineHeight} * 1.5);
696
- text-align: center;
697
- margin: 0;
698
- font-weight: 500;
699
- }
700
-
701
- .rebilly-instruments-results-icon {
702
- width: 160px;
703
- margin: 0 auto ${STYLES_VARIABLES.spaceM} auto;
704
- display: block;
705
- }
706
-
707
- .rebilly-instruments-results-icon g {
708
- stroke: ${STYLES_VARIABLES.primary};
709
- }
710
-
711
- .rebilly-instruments-results-icon.is-error g,
712
- .rebilly-instruments-results-icon.is-error g {
713
- stroke: ${STYLES_VARIABLES.errorText};
714
- }
715
-
716
- .rebilly-instruments-results-icon path {
717
- stroke-linecap: round;
718
- stroke-linejoin: round;
719
- }
720
-
721
- .rebilly-instruments-results-icon path.circle {
722
- stroke-dasharray: 350;
723
- stroke-dashoffset: 0;
724
- animation: 0.6s cubic-bezier(1.0, 0.5, 0.8, 1.0) 1 rebillyDashResultIcon;
725
- }
726
-
727
- .rebilly-instruments-results-icon path.mark {
728
- stroke-dasharray: 350;
729
- stroke-dashoffset: 0;
730
- animation: 1s cubic-bezier(1.0, 0.5, 0.8, 1.0) 1 rebillyDashResultIcon;
731
- }
732
-
733
- @keyframes rebillyDashResultIcon {
734
- from {
735
- stroke-dashoffset: 350;
736
- }
737
- to {
738
- stroke-dashoffset: 0;
739
- }
740
- }
741
- `;