@gnar-engine/cli 1.0.0 → 1.0.2

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 (230) hide show
  1. package/assets/gnar-engine-logo-white.svg +9 -0
  2. package/bootstrap/deploy.localdev.yml +51 -0
  3. package/bootstrap/secrets.localdev.yml +27 -0
  4. package/bootstrap/services/agent/Dockerfile +23 -0
  5. package/bootstrap/services/agent/notes.md +28 -0
  6. package/bootstrap/services/agent/package.json +16 -0
  7. package/bootstrap/services/agent/src/app.js +52 -0
  8. package/bootstrap/services/agent/src/commands/agent.handler.js +104 -0
  9. package/bootstrap/services/agent/src/config.js +52 -0
  10. package/bootstrap/services/agent/src/controllers/http.controller.js +44 -0
  11. package/bootstrap/services/agent/src/controllers/message.controller.js +51 -0
  12. package/bootstrap/services/agent/src/db/migrations/01-init.js +50 -0
  13. package/bootstrap/services/agent/src/db/migrations/02-agent-service-init.js +36 -0
  14. package/bootstrap/services/agent/src/policies/agent.policy.js +13 -0
  15. package/bootstrap/services/agent/src/schema/Agent.schema.js +17 -0
  16. package/bootstrap/services/agent/src/services/agent.service.js +259 -0
  17. package/bootstrap/services/agent/src/services/chatgpt.service.js +46 -0
  18. package/bootstrap/services/agent/src/services/manifest.service.js +21 -0
  19. package/bootstrap/services/control/Dockerfile +23 -0
  20. package/bootstrap/services/control/Dockerfile.prod +37 -0
  21. package/bootstrap/services/control/README.md +25 -0
  22. package/bootstrap/services/control/package.json +16 -0
  23. package/bootstrap/services/control/src/app.js +45 -0
  24. package/bootstrap/services/control/src/commands/control.handler.js +231 -0
  25. package/bootstrap/services/control/src/commands/service.handler.js +81 -0
  26. package/bootstrap/services/control/src/commands/task.handler.js +247 -0
  27. package/bootstrap/services/control/src/config.js +55 -0
  28. package/bootstrap/services/control/src/controllers/http.controller.js +228 -0
  29. package/bootstrap/services/control/src/controllers/message.controller.js +40 -0
  30. package/bootstrap/services/control/src/db/migrations/01-init.js +50 -0
  31. package/bootstrap/services/control/src/db/migrations/02-control-service-init.js +60 -0
  32. package/bootstrap/services/control/src/db/migrations/03-alter-tasks.js +29 -0
  33. package/bootstrap/services/control/src/policies/task.policy.js +53 -0
  34. package/bootstrap/services/control/src/schema/control.schema.js +42 -0
  35. package/bootstrap/services/control/src/services/registry.service.js +83 -0
  36. package/bootstrap/services/control/src/services/reset.service.js +28 -0
  37. package/bootstrap/services/control/src/services/task.service.js +153 -0
  38. package/bootstrap/services/control/src/tests/control.test.js +50 -0
  39. package/bootstrap/services/notification/Dockerfile +23 -0
  40. package/bootstrap/services/notification/Dockerfile.prod +37 -0
  41. package/bootstrap/services/notification/README.md +3 -0
  42. package/bootstrap/services/notification/package.json +34 -0
  43. package/bootstrap/services/notification/src/app.js +51 -0
  44. package/bootstrap/services/notification/src/commands/command-bus.js +20 -0
  45. package/bootstrap/services/notification/src/commands/handlers/control.handler.js +18 -0
  46. package/bootstrap/services/notification/src/commands/handlers/notification.handler.js +157 -0
  47. package/bootstrap/services/notification/src/config.js +15 -0
  48. package/bootstrap/services/notification/src/controllers/message.controller.js +82 -0
  49. package/bootstrap/services/notification/src/services/logger.service.js +16 -0
  50. package/bootstrap/services/notification/src/services/ses.service.js +23 -0
  51. package/bootstrap/services/notification/src/templates/admin-order-recieved.hbs +136 -0
  52. package/bootstrap/services/notification/src/templates/admin-subscription-failed.hbs +87 -0
  53. package/bootstrap/services/notification/src/templates/customer-order-recieved.hbs +132 -0
  54. package/bootstrap/services/notification/src/templates/customer-subscription-failed.hbs +77 -0
  55. package/bootstrap/services/notification/src/tests/notification.test.js +0 -0
  56. package/bootstrap/services/portal/Dockerfile +23 -0
  57. package/bootstrap/services/portal/Dockerfile.remote +40 -0
  58. package/bootstrap/services/portal/README.md +22 -0
  59. package/bootstrap/services/portal/nginx.conf +12 -0
  60. package/bootstrap/services/portal/package.json +59 -0
  61. package/bootstrap/services/portal/public/favicon.ico +0 -0
  62. package/bootstrap/services/portal/public/gnar-white.png +0 -0
  63. package/bootstrap/services/portal/public/gnarengine-logo-black.png +0 -0
  64. package/bootstrap/services/portal/public/index.html +43 -0
  65. package/bootstrap/services/portal/public/logo192.png +0 -0
  66. package/bootstrap/services/portal/public/logo512.png +0 -0
  67. package/bootstrap/services/portal/public/manifest.json +25 -0
  68. package/bootstrap/services/portal/public/robots.txt +3 -0
  69. package/bootstrap/services/portal/src/App.js +56 -0
  70. package/bootstrap/services/portal/src/assets/Logo_Anchord_Black.svg +1 -0
  71. package/bootstrap/services/portal/src/assets/Logo_Anchord_Black_Green.svg +1 -0
  72. package/bootstrap/services/portal/src/assets/Logo_Anchord_White_Green.svg +1 -0
  73. package/bootstrap/services/portal/src/assets/activity.svg +3 -0
  74. package/bootstrap/services/portal/src/assets/arrow.svg +3 -0
  75. package/bootstrap/services/portal/src/assets/bin-white.svg +3 -0
  76. package/bootstrap/services/portal/src/assets/bin.svg +3 -0
  77. package/bootstrap/services/portal/src/assets/check.svg +3 -0
  78. package/bootstrap/services/portal/src/assets/chevron.svg +3 -0
  79. package/bootstrap/services/portal/src/assets/contact.svg +3 -0
  80. package/bootstrap/services/portal/src/assets/dots-vertical.svg +5 -0
  81. package/bootstrap/services/portal/src/assets/eye-off.svg +3 -0
  82. package/bootstrap/services/portal/src/assets/eye.svg +4 -0
  83. package/bootstrap/services/portal/src/assets/gnar-engine-black.svg +47 -0
  84. package/bootstrap/services/portal/src/assets/gnar-engine-white.svg +47 -0
  85. package/bootstrap/services/portal/src/assets/gnar_engine.svg +3 -0
  86. package/bootstrap/services/portal/src/assets/gnarengine-logo-black.png +0 -0
  87. package/bootstrap/services/portal/src/assets/home.svg +3 -0
  88. package/bootstrap/services/portal/src/assets/link.svg +3 -0
  89. package/bootstrap/services/portal/src/assets/lock.svg +3 -0
  90. package/bootstrap/services/portal/src/assets/package.svg +4 -0
  91. package/bootstrap/services/portal/src/assets/raffle.svg +3 -0
  92. package/bootstrap/services/portal/src/assets/settings.svg +4 -0
  93. package/bootstrap/services/portal/src/assets/shopping-bag.svg +3 -0
  94. package/bootstrap/services/portal/src/assets/user-black.svg +3 -0
  95. package/bootstrap/services/portal/src/assets/user.svg +3 -0
  96. package/bootstrap/services/portal/src/assets/users.svg +3 -0
  97. package/bootstrap/services/portal/src/assets/wallet.svg +3 -0
  98. package/bootstrap/services/portal/src/css/style.css +1007 -0
  99. package/bootstrap/services/portal/src/data/data.js +70 -0
  100. package/bootstrap/services/portal/src/features/attributeFormRow/AttributeFormRow.jsx +32 -0
  101. package/bootstrap/services/portal/src/features/billingShipping/BillingShipping.jsx +160 -0
  102. package/bootstrap/services/portal/src/features/crud/crudEdit.less +230 -0
  103. package/bootstrap/services/portal/src/features/crud/crudList.less +134 -0
  104. package/bootstrap/services/portal/src/features/crud/crudPage.less +31 -0
  105. package/bootstrap/services/portal/src/features/crudContact/CrudContactList.jsx +108 -0
  106. package/bootstrap/services/portal/src/features/crudContact/CrudContactSingle.jsx +243 -0
  107. package/bootstrap/services/portal/src/features/crudOrder/CrudOrderList.jsx +109 -0
  108. package/bootstrap/services/portal/src/features/crudOrder/CrudOrderSingle.jsx +315 -0
  109. package/bootstrap/services/portal/src/features/crudProducts/CrudProductList.jsx +104 -0
  110. package/bootstrap/services/portal/src/features/crudProducts/CrudProductSingle.jsx +388 -0
  111. package/bootstrap/services/portal/src/features/crudRaffles/CrudRafflesList.jsx +104 -0
  112. package/bootstrap/services/portal/src/features/crudRaffles/CrudRafflesSingle.jsx +208 -0
  113. package/bootstrap/services/portal/src/features/crudSubscription/CrudSubscriptionList.jsx +110 -0
  114. package/bootstrap/services/portal/src/features/crudSubscription/CrudSubscriptionSingle.jsx +261 -0
  115. package/bootstrap/services/portal/src/features/crudUser/CrudUserList.jsx +107 -0
  116. package/bootstrap/services/portal/src/features/crudUser/CrudUserSingle.jsx +402 -0
  117. package/bootstrap/services/portal/src/features/inventoryFormRow/InventoryFormRow.jsx +30 -0
  118. package/bootstrap/services/portal/src/features/lineItems/LineItems.jsx +113 -0
  119. package/bootstrap/services/portal/src/features/loginForm/LoginForm.jsx +56 -0
  120. package/bootstrap/services/portal/src/features/loginForm/loginForm.less +56 -0
  121. package/bootstrap/services/portal/src/features/notes/Notes.jsx +18 -0
  122. package/bootstrap/services/portal/src/features/passwordReset/PasswordResetForm.jsx +96 -0
  123. package/bootstrap/services/portal/src/features/passwordReset/PasswordResetRequestForm.jsx +74 -0
  124. package/bootstrap/services/portal/src/features/priceFormRow/PriceFormRow.jsx +102 -0
  125. package/bootstrap/services/portal/src/features/priceFormRow/priceFormRow.less +24 -0
  126. package/bootstrap/services/portal/src/features/raffleEntriesList/RaffleEntriesList.jsx +99 -0
  127. package/bootstrap/services/portal/src/features/raffleProductFormRow/RaffleProductFormRow.jsx +46 -0
  128. package/bootstrap/services/portal/src/features/sidebar/Sidebar.jsx +64 -0
  129. package/bootstrap/services/portal/src/features/sidebar/sidebar.less +49 -0
  130. package/bootstrap/services/portal/src/features/skus/Skus.jsx +109 -0
  131. package/bootstrap/services/portal/src/features/subscriptionSchedule/SubscriptionSchedule.jsx +44 -0
  132. package/bootstrap/services/portal/src/features/taxonomyFormRow/TaxonomyFormRow.jsx +32 -0
  133. package/bootstrap/services/portal/src/features/user/User.jsx +54 -0
  134. package/bootstrap/services/portal/src/features/user/user.less +57 -0
  135. package/bootstrap/services/portal/src/includes/utilities.js +259 -0
  136. package/bootstrap/services/portal/src/index.js +14 -0
  137. package/bootstrap/services/portal/src/layouts/CrudLayout.jsx +50 -0
  138. package/bootstrap/services/portal/src/layouts/LoginLayout.jsx +17 -0
  139. package/bootstrap/services/portal/src/layouts/PortalLayout.jsx +48 -0
  140. package/bootstrap/services/portal/src/layouts/loginLayout.less +33 -0
  141. package/bootstrap/services/portal/src/layouts/portalLayout.less +67 -0
  142. package/bootstrap/services/portal/src/pages/contacts/Contacts.jsx +199 -0
  143. package/bootstrap/services/portal/src/pages/dashboard/Dashboard.jsx +17 -0
  144. package/bootstrap/services/portal/src/pages/integrations/Integrations.jsx +10 -0
  145. package/bootstrap/services/portal/src/pages/login/Login.jsx +15 -0
  146. package/bootstrap/services/portal/src/pages/login/login.less +10 -0
  147. package/bootstrap/services/portal/src/pages/orders/Orders.jsx +199 -0
  148. package/bootstrap/services/portal/src/pages/passwordReset/PasswordResetPage.jsx +15 -0
  149. package/bootstrap/services/portal/src/pages/passwordResetRequest/PasswordResetRequestPage.jsx +15 -0
  150. package/bootstrap/services/portal/src/pages/payments/Payments.jsx +10 -0
  151. package/bootstrap/services/portal/src/pages/portal/Portal.jsx +43 -0
  152. package/bootstrap/services/portal/src/pages/products/Products.jsx +212 -0
  153. package/bootstrap/services/portal/src/pages/raffleEntries/RaffleEntries.jsx +124 -0
  154. package/bootstrap/services/portal/src/pages/raffles/Raffles.jsx +186 -0
  155. package/bootstrap/services/portal/src/pages/reports/Reports.jsx +10 -0
  156. package/bootstrap/services/portal/src/pages/settings/Settings.jsx +10 -0
  157. package/bootstrap/services/portal/src/pages/subscriptions/Subscriptions.jsx +199 -0
  158. package/bootstrap/services/portal/src/pages/users/Users.jsx +193 -0
  159. package/bootstrap/services/portal/src/pages/users/users.less +25 -0
  160. package/bootstrap/services/portal/src/slices/authSlice.js +71 -0
  161. package/bootstrap/services/portal/src/store/configureStore.js +12 -0
  162. package/bootstrap/services/portal/src/styles/global.less +159 -0
  163. package/bootstrap/services/portal/src/styles/inputs.less +157 -0
  164. package/bootstrap/services/portal/src/styles/main.less +26 -0
  165. package/bootstrap/services/portal/src/ui/collapsible/Collapsible.jsx +97 -0
  166. package/bootstrap/services/portal/src/ui/collapsible/collapsible.less +23 -0
  167. package/bootstrap/services/portal/src/ui/customCheckbox/CustomCheckbox.jsx +17 -0
  168. package/bootstrap/services/portal/src/ui/customCheckbox/customCheckbox.less +42 -0
  169. package/bootstrap/services/portal/src/ui/customMultiSelect/CustomMultiSelect.jsx +63 -0
  170. package/bootstrap/services/portal/src/ui/customMultiSelect/CustomMultiSelectPeriod.jsx +63 -0
  171. package/bootstrap/services/portal/src/ui/customSelect/CustomSelect.jsx +63 -0
  172. package/bootstrap/services/portal/src/ui/customSelect/customSelect.less +92 -0
  173. package/bootstrap/services/portal/src/ui/goBack/GoBack.jsx +19 -0
  174. package/bootstrap/services/portal/src/ui/loader/Loader.jsx +12 -0
  175. package/bootstrap/services/portal/src/ui/pagination/Pagination.jsx +23 -0
  176. package/bootstrap/services/portal/src/ui/repeater/Repeater.jsx +29 -0
  177. package/bootstrap/services/portal/src/ui/saveButton/SaveButton.jsx +69 -0
  178. package/bootstrap/services/portal/src/ui/saveButton/saveButton.less +0 -0
  179. package/bootstrap/services/rabbit-mq/Dockerfile.prod +9 -0
  180. package/bootstrap/services/user/Dockerfile +23 -0
  181. package/bootstrap/services/user/Dockerfile.prod +37 -0
  182. package/bootstrap/services/user/README.md +8 -0
  183. package/bootstrap/services/user/package.json +16 -0
  184. package/bootstrap/services/user/src/app.js +45 -0
  185. package/bootstrap/services/user/src/commands/session.handler.js +23 -0
  186. package/bootstrap/services/user/src/commands/user.handler.js +286 -0
  187. package/bootstrap/services/user/src/config.js +73 -0
  188. package/bootstrap/services/user/src/controllers/http.controller.js +156 -0
  189. package/bootstrap/services/user/src/controllers/message.controller.js +51 -0
  190. package/bootstrap/services/user/src/db/migrations/01-init.js +50 -0
  191. package/bootstrap/services/user/src/db/migrations/02-user-service-init.js +63 -0
  192. package/bootstrap/services/user/src/db/migrations/03-unauth-sessions.js +43 -0
  193. package/bootstrap/services/user/src/db/seeders/development/01-root-user.js +29 -0
  194. package/bootstrap/services/user/src/db/seeders/development/02-portal-admin-user.js +27 -0
  195. package/bootstrap/services/user/src/db/seeders/production/01-root-user.js +29 -0
  196. package/bootstrap/services/user/src/policies/user.policy.js +81 -0
  197. package/bootstrap/services/user/src/schema/user.schema.js +69 -0
  198. package/bootstrap/services/user/src/services/authentication.service.js +127 -0
  199. package/bootstrap/services/user/src/services/session.service.js +58 -0
  200. package/bootstrap/services/user/src/services/user.service.js +130 -0
  201. package/bootstrap/services/user/src/tests/user.test.js +126 -0
  202. package/package.json +3 -7
  203. package/src/agent/agent.client.js +28 -0
  204. package/src/agent/commands.js +48 -0
  205. package/src/cli.js +30 -0
  206. package/src/config.js +8 -0
  207. package/src/control/commands.js +156 -0
  208. package/src/control/control.client.js +127 -0
  209. package/src/dev/commands.js +71 -0
  210. package/src/dev/dev.service.js +320 -0
  211. package/src/engine/infra.js +142 -0
  212. package/src/helpers/helpers.js +63 -0
  213. package/src/profiles/command.js +170 -0
  214. package/src/profiles/profiles.client.js +101 -0
  215. package/src/scaffolder/commands.js +123 -0
  216. package/src/scaffolder/scaffolder.handler.js +252 -0
  217. package/src/services/client.js +174 -0
  218. package/templates/service/Dockerfile.hbs +20 -0
  219. package/templates/service/app.js.hbs +38 -0
  220. package/templates/service/commands/{{serviceName}}.handler.js.hbs +97 -0
  221. package/templates/service/config.js.hbs +48 -0
  222. package/templates/service/controllers/http.controller.js.hbs +87 -0
  223. package/templates/service/controllers/message.controller.js.hbs +51 -0
  224. package/templates/service/db/migrations/01-init.js.hbs +50 -0
  225. package/templates/service/db/migrations/02-{{lowerCase serviceName}}-service-init.js.hbs +23 -0
  226. package/templates/service/package.json.hbs +18 -0
  227. package/templates/service/policies/{{serviceName}}.policy.js.hbs +49 -0
  228. package/templates/service/schema/{{serviceName}}.schema.js.hbs +14 -0
  229. package/templates/service/services/{{serviceName}}.service.js.hbs +32 -0
  230. package/dist/cli.js +0 -18
@@ -0,0 +1,1007 @@
1
+ /* vars */
2
+ /* Fonts */
3
+ body {
4
+ font-family: ubuntu, sans-serif;
5
+ color: #3C5063;
6
+ font-size: 14px;
7
+ }
8
+ /* Global styles */
9
+ h1 {
10
+ margin-top: 0px;
11
+ font-size: 28px;
12
+ font-weight: 600;
13
+ }
14
+ h2 {
15
+ font-size: 15px;
16
+ font-weight: 500;
17
+ }
18
+ body {
19
+ margin: 0px;
20
+ }
21
+ body,
22
+ body #root {
23
+ min-height: 100vh;
24
+ }
25
+ .separator {
26
+ margin-top: 20px;
27
+ margin-bottom: 20px;
28
+ height: 0px;
29
+ border-top: 1px solid #E4E4E4;
30
+ }
31
+ .content-wrap {
32
+ display: flex;
33
+ justify-content: center;
34
+ }
35
+ .content {
36
+ width: 100%;
37
+ max-width: 1550px;
38
+ margin-left: auto;
39
+ margin-right: auto;
40
+ padding-left: 20px;
41
+ padding-right: 20px;
42
+ }
43
+ .instruction {
44
+ font-size: 12px;
45
+ margin-top: 10px;
46
+ margin-bottom: 10px;
47
+ }
48
+ .flex-row {
49
+ display: flex;
50
+ flex-direction: row;
51
+ justify-content: space-between;
52
+ gap: 20px;
53
+ }
54
+ .flex-row-end {
55
+ align-items: flex-end;
56
+ }
57
+ .form-cont {
58
+ width: 100%;
59
+ margin-bottom: 30px;
60
+ }
61
+ .full-width-select-cont,
62
+ .full-width-select-cont .custom-select {
63
+ min-width: 100%;
64
+ }
65
+ .flex-row-select-cont {
66
+ min-width: 100%;
67
+ display: flex;
68
+ flex-direction: row;
69
+ justify-content: space-between;
70
+ gap: 20px;
71
+ }
72
+ .flex-row-select-cont .custom-select {
73
+ width: 100%;
74
+ max-width: unset;
75
+ }
76
+ .flex-row-checkbox-cont {
77
+ min-width: 100%;
78
+ display: flex;
79
+ flex-direction: row;
80
+ justify-content: space-between;
81
+ gap: 20px;
82
+ }
83
+ .flex-row-checkbox-cont label {
84
+ display: inline-block;
85
+ }
86
+ .flex-row-buttons-cont {
87
+ display: flex;
88
+ flex-direction: row;
89
+ justify-content: flex-end;
90
+ gap: 20px;
91
+ }
92
+ .button.button-loading {
93
+ background: #E4E4E4 !important;
94
+ cursor: not-allowed !important;
95
+ }
96
+ .button.button-loading:disabled {
97
+ cursor: not-allowed;
98
+ opacity: 0.5;
99
+ }
100
+ .card {
101
+ background: #FFFFFF;
102
+ border: 1px solid #E4E4E4;
103
+ border-radius: 10px;
104
+ margin-top: 20px;
105
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
106
+ }
107
+ .card .card-header {
108
+ width: 100%;
109
+ background-color: #434343;
110
+ color: #FFFFFF;
111
+ border-top-left-radius: 10px;
112
+ border-top-right-radius: 10px;
113
+ display: flex;
114
+ justify-content: space-between;
115
+ }
116
+ .card .card-header h2 {
117
+ padding: 20px;
118
+ margin: 0px;
119
+ }
120
+ .card .card-content {
121
+ padding: 20px;
122
+ }
123
+ input[type="text"],
124
+ input[type="password"],
125
+ input[type="email"],
126
+ input[type="number"] {
127
+ width: 100%;
128
+ padding: 6px 10px;
129
+ margin: 10px 0;
130
+ border: 1px solid #E4E4E4;
131
+ background: #FFFFFF;
132
+ border-radius: 25px;
133
+ box-sizing: border-box;
134
+ font-size: 14px;
135
+ color: #3C5063;
136
+ }
137
+ input:focus {
138
+ outline: none;
139
+ border: 1px solid #479E78;
140
+ }
141
+ textarea {
142
+ font-family: 'Roboto', sans-serif;
143
+ width: 100%;
144
+ padding: 10px;
145
+ margin: 10px 0;
146
+ border: 1px solid #E4E4E4;
147
+ background: #FFFFFF;
148
+ border-radius: 4px;
149
+ box-sizing: border-box;
150
+ font-size: 14px;
151
+ color: #3C5063;
152
+ }
153
+ button,
154
+ .mainButton {
155
+ padding: 6px 10px;
156
+ margin: 10px 0;
157
+ border: none;
158
+ background: #479E78;
159
+ color: #FFFFFF;
160
+ border-radius: 25px;
161
+ font-size: 14px;
162
+ cursor: pointer;
163
+ transition-duration: 0.4s;
164
+ width: 150px;
165
+ border: 1px solid #479E78;
166
+ text-decoration: none;
167
+ max-height: 40px;
168
+ }
169
+ button.wide,
170
+ .mainButton.wide {
171
+ width: 215px;
172
+ }
173
+ button:hover,
174
+ .mainButton:hover {
175
+ opacity: 0.9;
176
+ cursor: pointer;
177
+ }
178
+ .secondaryButton {
179
+ padding: 6px 10px;
180
+ margin: 10px 0;
181
+ border: none;
182
+ background: #434343;
183
+ color: #FFFFFF;
184
+ border-radius: 25px;
185
+ font-size: 14px;
186
+ cursor: pointer;
187
+ transition-duration: 0.4s;
188
+ width: 150px;
189
+ border: 1px solid #434343;
190
+ text-decoration: none;
191
+ max-height: 40px;
192
+ }
193
+ .secondaryButton.wide {
194
+ width: 215px;
195
+ }
196
+ .secondaryButton:hover {
197
+ opacity: 0.9;
198
+ cursor: pointer;
199
+ }
200
+ .button-cont {
201
+ width: 100%;
202
+ display: inline-block;
203
+ }
204
+ .button-cont.right {
205
+ text-align: right;
206
+ }
207
+ .arrowButton {
208
+ width: 30px;
209
+ height: 30px;
210
+ background: #479E78;
211
+ color: #FFFFFF;
212
+ border: none;
213
+ border-radius: 50%;
214
+ cursor: pointer;
215
+ }
216
+ button.bin-icon {
217
+ background: none;
218
+ border: none;
219
+ width: 30px;
220
+ height: 30px;
221
+ }
222
+ button.bin-icon.white {
223
+ padding-right: 50px;
224
+ }
225
+ .pdfButton {
226
+ display: inline-block;
227
+ text-align: center;
228
+ line-height: 1.2em;
229
+ box-sizing: border-box;
230
+ }
231
+ button.success::after {
232
+ content: '✔';
233
+ color: #3C5063;
234
+ margin-left: 8px;
235
+ font-size: 14px;
236
+ }
237
+ button.error::after {
238
+ content: '✘';
239
+ color: #c73939;
240
+ margin-left: 8px;
241
+ font-size: 16px;
242
+ }
243
+ button.grey-btn {
244
+ color: #479E78;
245
+ border: 1px solid #E4E4E4;
246
+ background: #F6F8F9;
247
+ }
248
+ .date-selector-cont {
249
+ width: 100%;
250
+ display: inline-block;
251
+ }
252
+ .react-datepicker-wrapper {
253
+ width: 300px;
254
+ margin-bottom: 10px;
255
+ }
256
+ .react-datepicker-wrapper .react-datepicker__input-container {
257
+ width: 100%;
258
+ }
259
+ .text-button {
260
+ background: none;
261
+ border: none;
262
+ color: #479E78;
263
+ padding: 0px;
264
+ width: auto !important;
265
+ }
266
+ .text-button:hover {
267
+ cursor: pointer;
268
+ opacity: 0.8;
269
+ }
270
+ .login-layout {
271
+ min-height: 100vh;
272
+ background: #434343;
273
+ display: flex;
274
+ flex-direction: row;
275
+ position: relative;
276
+ }
277
+ .login-layout .left-cont {
278
+ min-width: 50%;
279
+ max-width: 50%;
280
+ min-height: 100%;
281
+ display: flex;
282
+ justify-content: center;
283
+ align-items: center;
284
+ }
285
+ .login-layout .left-cont img {
286
+ max-width: 60%;
287
+ min-width: 60%;
288
+ }
289
+ .login-layout .right-cont {
290
+ background: #F6F8F9;
291
+ min-height: 100%;
292
+ min-width: 50%;
293
+ max-width: 50%;
294
+ display: flex;
295
+ flex-direction: column;
296
+ justify-content: center;
297
+ flex-wrap: nowrap;
298
+ padding: 50px;
299
+ box-sizing: border-box;
300
+ }
301
+ .portal-layout {
302
+ min-height: 101vh;
303
+ background: linear-gradient(to right, #E7E7E7 0%, #E7E7E7 49%, #f7f7f7 51%, #f7f7f7 100%);
304
+ }
305
+ .portal-layout .header {
306
+ background: #434343;
307
+ height: 30px;
308
+ padding-top: 20px;
309
+ padding-bottom: 20px;
310
+ box-sizing: border-box;
311
+ display: flex;
312
+ flex-direction: row;
313
+ align-items: center;
314
+ }
315
+ .portal-layout .header .content-wrap {
316
+ max-height: 100%;
317
+ }
318
+ .portal-layout .header .content {
319
+ display: flex;
320
+ flex-direction: row;
321
+ flex-wrap: nowrap;
322
+ justify-content: space-between;
323
+ max-height: 100%;
324
+ align-items: center;
325
+ }
326
+ .portal-layout .main {
327
+ min-height: calc(100vh - 197px);
328
+ position: relative;
329
+ }
330
+ .portal-layout .main .content-wrap,
331
+ .portal-layout .main .content {
332
+ height: 100%;
333
+ min-height: 100%;
334
+ }
335
+ .portal-layout .main .content {
336
+ display: flex;
337
+ flex-direction: row;
338
+ flex-wrap: nowrap;
339
+ }
340
+ .portal-layout .main .main-page {
341
+ background: #f7f7f7;
342
+ width: 100%;
343
+ height: 100%;
344
+ min-height: calc(100vh - 100px);
345
+ padding: 30px 40px;
346
+ }
347
+ .portal-layout .main .main-page .header-details {
348
+ display: flex;
349
+ flex-direction: row;
350
+ align-items: center;
351
+ justify-content: space-between;
352
+ padding-bottom: 20px;
353
+ }
354
+ .portal-layout .main .main-page .header-logo {
355
+ max-height: 100%;
356
+ width: 180px;
357
+ display: flex;
358
+ align-items: center;
359
+ justify-content: center;
360
+ }
361
+ .login-layout h1 {
362
+ margin-bottom: 10px;
363
+ }
364
+ .login-layout h2 {
365
+ margin-top: 0px;
366
+ margin-bottom: 10px;
367
+ }
368
+ .crud-page .crud-list-cont .crud-list-header {
369
+ text-align: right;
370
+ }
371
+ .crud-page .crud-list-cont .crud-list-controls {
372
+ display: flex;
373
+ justify-content: space-between;
374
+ align-items: center;
375
+ margin-bottom: 20px;
376
+ }
377
+ .crud-page .crud-list-cont .crud-list-controls .controls-left-col {
378
+ display: flex;
379
+ gap: 20px;
380
+ }
381
+ .crud-page .crud-list-cont .crud-list-controls .controls-right-col {
382
+ display: flex;
383
+ gap: 20px;
384
+ }
385
+ .login {
386
+ display: flex;
387
+ flex-direction: column;
388
+ align-items: center;
389
+ justify-content: center;
390
+ }
391
+ .login .login-form {
392
+ display: flex;
393
+ flex-direction: column;
394
+ width: 400px;
395
+ }
396
+ .login .login-form #login-message {
397
+ color: #c73939;
398
+ min-height: 40px;
399
+ }
400
+ .login .login-form button.loading {
401
+ opacity: 0.6;
402
+ cursor: not-allowed;
403
+ }
404
+ .login .login-form a {
405
+ text-decoration: none;
406
+ color: #479E78;
407
+ margin-left: 10px;
408
+ }
409
+ .login .login-form .input-container {
410
+ position: relative;
411
+ }
412
+ .login .login-form .input-container input {
413
+ padding-left: 50px;
414
+ }
415
+ .login .login-form .input-container::before {
416
+ content: '';
417
+ position: absolute;
418
+ top: 50%;
419
+ left: 18px;
420
+ transform: translateY(-50%);
421
+ width: 20px;
422
+ height: 20px;
423
+ background-size: contain;
424
+ background-repeat: no-repeat;
425
+ }
426
+ .login .login-form .input-container:nth-child(1)::before {
427
+ background-image: url('../assets/user-black.svg');
428
+ }
429
+ .login .login-form .input-container:nth-child(2)::before {
430
+ background-image: url('../assets/lock.svg');
431
+ }
432
+ .sidebar {
433
+ min-width: 240px;
434
+ max-width: 240px;
435
+ padding-top: 30px;
436
+ box-sizing: border-box;
437
+ }
438
+ .sidebar .collapsible-cont {
439
+ margin-bottom: 30px;
440
+ }
441
+ .sidebar .collapsible-content-inner {
442
+ padding-left: 32px;
443
+ }
444
+ .sidebar a {
445
+ text-decoration: none;
446
+ color: #3C5063;
447
+ font-size: 18px;
448
+ font-weight: 400;
449
+ padding-top: 12px;
450
+ padding-bottom: 12px;
451
+ display: inline-block;
452
+ min-width: 100%;
453
+ }
454
+ .sidebar .menu-item {
455
+ display: flex;
456
+ align-items: center;
457
+ gap: 10px;
458
+ padding-left: 16px;
459
+ padding-right: 16px;
460
+ transition: all 0.3s;
461
+ }
462
+ .sidebar .menu-item.active {
463
+ color: #479E78;
464
+ padding-left: 30px;
465
+ }
466
+ .sidebar .menu-item.active img {
467
+ filter: none;
468
+ }
469
+ .sidebar .menu-item img {
470
+ filter: grayscale(60%) brightness(0.5);
471
+ width: 35px;
472
+ height: 35px;
473
+ }
474
+ .user-avatar-container {
475
+ display: flex;
476
+ justify-content: center;
477
+ flex-direction: column;
478
+ align-items: flex-end;
479
+ padding-bottom: 10px;
480
+ }
481
+ .user-avatar-container .user-info {
482
+ display: flex;
483
+ flex-direction: column;
484
+ align-items: center;
485
+ justify-content: center;
486
+ }
487
+ .user-avatar-container .user-info .userAvatar {
488
+ width: 40px;
489
+ height: 40px;
490
+ border-radius: 50%;
491
+ border: 2px solid #37936B;
492
+ background: #479E78;
493
+ display: flex;
494
+ justify-content: center;
495
+ align-items: center;
496
+ }
497
+ .user-avatar-container .user-info .userAvatar span {
498
+ text-transform: uppercase;
499
+ font-size: 18px;
500
+ font-weight: 400;
501
+ color: #479E78;
502
+ }
503
+ .user-avatar-container .user-info .userAvatar span img {
504
+ width: 30px;
505
+ height: 30px;
506
+ }
507
+ .user-avatar-container .user-info span {
508
+ color: #479E78;
509
+ font-size: 14px;
510
+ }
511
+ .user-avatar-container .user-info .log-out {
512
+ color: #3C5063;
513
+ transition-duration: 0.4s;
514
+ }
515
+ .user-avatar-container .user-info .log-out:hover {
516
+ cursor: pointer;
517
+ opacity: 0.9;
518
+ }
519
+ .crud-list {
520
+ width: 100%;
521
+ /* Adjust width as needed */
522
+ margin-bottom: 20px;
523
+ /* Adjust margin as needed */
524
+ }
525
+ .crud-list .custom-table {
526
+ width: 100%;
527
+ border-collapse: collapse;
528
+ border-spacing: 0px;
529
+ border: none;
530
+ }
531
+ .crud-list .custom-table .separator-row {
532
+ display: inline-block;
533
+ }
534
+ .crud-list .custom-table .checkbox {
535
+ display: flex;
536
+ align-items: center;
537
+ }
538
+ .crud-list .custom-table th {
539
+ background-color: #434343;
540
+ color: #FFFFFF;
541
+ text-align: left;
542
+ padding: 10px;
543
+ text-transform: capitalize;
544
+ }
545
+ .crud-list .custom-table th:first-child {
546
+ border-top-left-radius: 10px;
547
+ }
548
+ .crud-list .custom-table th:last-child {
549
+ border-top-right-radius: 10px;
550
+ width: 12%;
551
+ }
552
+ .crud-list .custom-table td {
553
+ padding: 5px 10px;
554
+ border: none;
555
+ }
556
+ .crud-list .custom-table td:last-child {
557
+ border-bottom: none;
558
+ }
559
+ .crud-list .custom-table td.edit-dots {
560
+ text-align: start;
561
+ }
562
+ .crud-list .custom-table tbody button {
563
+ width: 20px;
564
+ background: none;
565
+ border: none;
566
+ margin: 0;
567
+ }
568
+ .crud-list .custom-table tbody tr {
569
+ border-top: 1px solid transparent;
570
+ border-bottom: 1px solid transparent;
571
+ }
572
+ .crud-list .custom-table tbody tr td {
573
+ line-height: 1em;
574
+ }
575
+ .crud-list .custom-table tbody tr td:first-child {
576
+ border-left: 1px solid #E4E4E4;
577
+ }
578
+ .crud-list .custom-table tbody tr td:last-child {
579
+ border-right: 1px solid #E4E4E4;
580
+ }
581
+ .crud-list .custom-table tbody tr:first-of-type td {
582
+ border-top: 1px solid #E4E4E4;
583
+ }
584
+ .crud-list .custom-table tbody tr:first-of-type td:first-child {
585
+ border-left: 1px solid #E4E4E4;
586
+ }
587
+ .crud-list .custom-table tbody tr:first-of-type td:last-child {
588
+ border-right: 1px solid #E4E4E4;
589
+ }
590
+ .crud-list .custom-table tbody tr:last-of-type td {
591
+ border-bottom: 1px solid #E4E4E4;
592
+ }
593
+ .crud-list .custom-table tbody tr:last-of-type td:first-child {
594
+ border-left: 1px solid #E4E4E4;
595
+ border-bottom-left-radius: 10px;
596
+ }
597
+ .crud-list .custom-table tbody tr:last-of-type td:last-child {
598
+ border-right: 1px solid #E4E4E4;
599
+ border-bottom-right-radius: 10px;
600
+ }
601
+ .crud-list .custom-table tbody tr:nth-child(even) td {
602
+ background-color: #f1f1f1;
603
+ }
604
+ .crud-list .custom-table tbody tr:hover td {
605
+ border-top: 1px solid #479E78;
606
+ border-bottom: 1px solid #479E78;
607
+ cursor: pointer;
608
+ }
609
+ .crud-list .custom-table tbody tr:hover td:first-child {
610
+ border-left: 1px solid #479E78;
611
+ cursor: pointer;
612
+ }
613
+ .crud-list .custom-table tbody tr:hover td:last-child {
614
+ border-right: 1px solid #479E78;
615
+ cursor: pointer;
616
+ }
617
+ .pagination-labels-cont {
618
+ display: flex;
619
+ flex-direction: row;
620
+ justify-content: space-between;
621
+ align-items: center;
622
+ }
623
+ .pagination-count {
624
+ margin-bottom: 20px;
625
+ text-align: left;
626
+ font-size: 12px;
627
+ }
628
+ .crud-edit .edit-heading {
629
+ display: flex;
630
+ justify-content: space-between;
631
+ }
632
+ .single-edit .single-edit-header {
633
+ display: flex;
634
+ justify-content: space-between;
635
+ margin-bottom: 20px;
636
+ }
637
+ .single-edit.subscriptions .subscriptions-table {
638
+ width: 100%;
639
+ border-collapse: collapse;
640
+ }
641
+ .single-edit.subscriptions .subscriptions-table thead {
642
+ border-bottom: 1px solid #434343;
643
+ }
644
+ .single-edit.subscriptions .subscriptions-table th,
645
+ .single-edit.subscriptions .subscriptions-table td {
646
+ padding: 8px;
647
+ text-align: left;
648
+ }
649
+ .single-edit.order .billing-shipping-cont,
650
+ .single-edit.subscriptions .billing-shipping-cont {
651
+ display: flex;
652
+ justify-content: space-between;
653
+ margin-bottom: 20px;
654
+ }
655
+ .single-edit.order .billing-shipping-cont .billing-cont,
656
+ .single-edit.subscriptions .billing-shipping-cont .billing-cont,
657
+ .single-edit.order .billing-shipping-cont .shipping-cont,
658
+ .single-edit.subscriptions .billing-shipping-cont .shipping-cont {
659
+ width: 50%;
660
+ padding-right: 20px;
661
+ }
662
+ .single-edit.order .line-items-totals-cont .line-items-cont,
663
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont {
664
+ margin-bottom: 40px;
665
+ }
666
+ .single-edit.order .line-items-totals-cont .line-items-cont .line-items-table,
667
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .line-items-table,
668
+ .single-edit.order .line-items-totals-cont .line-items-cont .totals-table,
669
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .totals-table {
670
+ width: 100%;
671
+ border-collapse: collapse;
672
+ }
673
+ .single-edit.order .line-items-totals-cont .line-items-cont .line-items-table th,
674
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .line-items-table th,
675
+ .single-edit.order .line-items-totals-cont .line-items-cont .totals-table th,
676
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .totals-table th {
677
+ border-bottom: 1px solid #434343;
678
+ }
679
+ .single-edit.order .line-items-totals-cont .line-items-cont .line-items-table th,
680
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .line-items-table th,
681
+ .single-edit.order .line-items-totals-cont .line-items-cont .totals-table th,
682
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .totals-table th,
683
+ .single-edit.order .line-items-totals-cont .line-items-cont .line-items-table td,
684
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .line-items-table td,
685
+ .single-edit.order .line-items-totals-cont .line-items-cont .totals-table td,
686
+ .single-edit.subscriptions .line-items-totals-cont .line-items-cont .totals-table td {
687
+ padding: 8px;
688
+ text-align: left;
689
+ }
690
+ .single-edit.order .totals-cont,
691
+ .single-edit.subscriptions .totals-cont {
692
+ display: flex;
693
+ justify-content: flex-end;
694
+ }
695
+ .single-edit.order .totals-cont .totals-table tr td,
696
+ .single-edit.subscriptions .totals-cont .totals-table tr td {
697
+ padding: 8px 0px 8px 15px;
698
+ text-align: right;
699
+ }
700
+ .single-edit.order .totals-cont .totals-table .order-total,
701
+ .single-edit.subscriptions .totals-cont .totals-table .order-total {
702
+ font-weight: bold;
703
+ }
704
+ .single-edit.order .subscription-details-cont,
705
+ .single-edit.subscriptions .subscription-details-cont {
706
+ display: flex;
707
+ justify-content: space-between;
708
+ margin-bottom: 20px;
709
+ }
710
+ .single-edit.order .order-notes-cont .note-item,
711
+ .single-edit.subscriptions .order-notes-cont .note-item {
712
+ display: flex;
713
+ margin-bottom: 20px;
714
+ width: 100%;
715
+ justify-content: space-between;
716
+ }
717
+ .single-edit.order .order-notes-cont .note-item .note-item-body,
718
+ .single-edit.subscriptions .order-notes-cont .note-item .note-item-body {
719
+ flex: 1;
720
+ display: flex;
721
+ }
722
+ .single-edit.order .order-notes-cont .note-item .note-item-body textarea,
723
+ .single-edit.subscriptions .order-notes-cont .note-item .note-item-body textarea {
724
+ width: 100%;
725
+ flex-grow: 1;
726
+ }
727
+ .single-edit .account form,
728
+ .single-edit .contacts form {
729
+ display: flex;
730
+ gap: 20px;
731
+ align-items: flex-end;
732
+ }
733
+ .single-edit .user-form {
734
+ display: flex;
735
+ gap: 20px;
736
+ align-items: flex-end;
737
+ }
738
+ .single-edit .api-key form {
739
+ width: 100%;
740
+ }
741
+ .single-edit .api-key form input {
742
+ width: 100%;
743
+ }
744
+ .single-edit .single-inner-cont {
745
+ position: relative;
746
+ }
747
+ .single-edit .single-inner-cont .repeater-cont {
748
+ width: 100%;
749
+ margin-top: 15px;
750
+ }
751
+ .single-edit .single-inner-cont .repeater-cont table {
752
+ width: 100%;
753
+ border-collapse: separate;
754
+ border-spacing: 10px;
755
+ }
756
+ .single-edit .single-inner-cont .repeater-cont table th {
757
+ min-width: 100%;
758
+ color: #3C5063;
759
+ opacity: 0.5;
760
+ font-size: 10px;
761
+ line-height: 1.1em;
762
+ font-style: italic;
763
+ }
764
+ .single-edit .single-inner-cont .repeater-cont table .contacts-bin-icon {
765
+ cursor: pointer;
766
+ margin-top: 15px;
767
+ }
768
+ .single-edit .single-inner-cont .repeater-cont table th,
769
+ .single-edit .single-inner-cont .repeater-cont table td {
770
+ text-align: left;
771
+ vertical-align: top;
772
+ }
773
+ .single-edit .single-inner-cont .repeater-cont table th input,
774
+ .single-edit .single-inner-cont .repeater-cont table td input {
775
+ width: 100%;
776
+ }
777
+ .single-edit .single-inner-cont .repeater-cont table .react-datepicker-wrapper {
778
+ width: 100%;
779
+ }
780
+ .single-edit .single-inner-cont .repeater-cont td.period-name {
781
+ width: 100%;
782
+ display: block;
783
+ }
784
+ .single-edit .single-inner-cont .react-datepicker-popper {
785
+ z-index: 99;
786
+ }
787
+ .single-edit .field-instruction {
788
+ min-width: 100%;
789
+ display: inline-block;
790
+ color: #3C5063;
791
+ opacity: 0.5;
792
+ font-size: 10px;
793
+ line-height: 1.1em;
794
+ font-style: italic;
795
+ }
796
+ .single-edit .error-messages {
797
+ width: 100%;
798
+ background: #ffeeee;
799
+ border: 1px solid #c73939;
800
+ border-radius: 5px;
801
+ padding: 15px;
802
+ margin-bottom: 20px;
803
+ box-sizing: border-box;
804
+ }
805
+ .single-edit .error-messages p {
806
+ color: #c73939;
807
+ line-height: 1em;
808
+ margin-top: 3px;
809
+ margin-bottom: 3px;
810
+ }
811
+ .single-edit form label {
812
+ display: block;
813
+ }
814
+ .single-edit form input {
815
+ width: 300px;
816
+ }
817
+ .single-edit form input#marketingOptIn {
818
+ width: 15px;
819
+ height: 15px;
820
+ }
821
+ .crud-page,
822
+ .manage-students {
823
+ position: relative;
824
+ }
825
+ .crud-page .flex-row-select-cont,
826
+ .manage-students .flex-row-select-cont {
827
+ margin-top: 50px;
828
+ }
829
+ .crud-page .clear-filters-btn,
830
+ .manage-students .clear-filters-btn {
831
+ position: absolute;
832
+ top: 65px;
833
+ right: 5px;
834
+ }
835
+ .crud-page .clear-filters-btn:hover,
836
+ .manage-students .clear-filters-btn:hover {
837
+ cursor: pointer;
838
+ opacity: 0.8;
839
+ }
840
+ .crud-page .password-reset-btn,
841
+ .manage-students .password-reset-btn {
842
+ display: block;
843
+ position: relative;
844
+ color: #479E78;
845
+ text-decoration: underline;
846
+ }
847
+ .crud-page .password-reset-btn:hover,
848
+ .manage-students .password-reset-btn:hover {
849
+ cursor: pointer;
850
+ opacity: 0.8;
851
+ }
852
+ .form-row {
853
+ display: flex;
854
+ justify-content: space-between;
855
+ margin-bottom: 10px;
856
+ gap: 20px;
857
+ align-items: center;
858
+ flex-wrap: wrap;
859
+ }
860
+ .form-row .input-cont {
861
+ display: flex;
862
+ flex-direction: column;
863
+ }
864
+ .form-row .input-cont input {
865
+ width: 250px;
866
+ }
867
+ .form-group.categories {
868
+ width: 100%;
869
+ }
870
+ .form-group.categories .custom-select-input {
871
+ min-width: 500px !important;
872
+ }
873
+ .collapsible-header {
874
+ display: flex;
875
+ justify-content: space-between;
876
+ }
877
+ .collapsible-header h3 {
878
+ margin: 0px;
879
+ }
880
+ .collapsible-header:hover {
881
+ cursor: pointer;
882
+ }
883
+ .collapsible-content {
884
+ overflow: hidden;
885
+ transition-duration: 0.5s;
886
+ }
887
+ .collapsible-content-open {
888
+ margin-top: 30px;
889
+ }
890
+ .collapsible-content-inner ul {
891
+ margin: 0px;
892
+ }
893
+ .custom-checkbox {
894
+ position: relative;
895
+ margin-top: 15px;
896
+ margin-bottom: 10px;
897
+ }
898
+ .custom-checkbox input {
899
+ opacity: 0;
900
+ position: absolute;
901
+ left: 0px;
902
+ min-width: 18px;
903
+ min-height: 18px;
904
+ }
905
+ .custom-checkbox input:hover {
906
+ cursor: pointer;
907
+ }
908
+ .custom-checkbox label {
909
+ padding-left: 20px;
910
+ transition-duration: 0.1s;
911
+ box-sizing: border-box;
912
+ }
913
+ .custom-checkbox label:hover {
914
+ cursor: pointer;
915
+ opacity: 0.8;
916
+ }
917
+ .custom-checkbox:before {
918
+ content: '';
919
+ min-width: 18px;
920
+ min-height: 18px;
921
+ background: #F6F8F9;
922
+ border: 1px solid #E4E4E4;
923
+ border-radius: 6px;
924
+ position: absolute;
925
+ left: 0px;
926
+ }
927
+ .custom-checkbox.checked:before {
928
+ content: '';
929
+ background: #F6F8F9 url('../assets/check.svg') no-repeat center center;
930
+ }
931
+ .custom-select {
932
+ max-width: 215px;
933
+ min-width: 215px;
934
+ position: relative;
935
+ }
936
+ .custom-select .custom-select-input {
937
+ position: relative;
938
+ width: 100%;
939
+ padding: 6px 10px;
940
+ margin: 10px 0;
941
+ border: 1px solid #E4E4E4;
942
+ background: #FFFFFF;
943
+ border-radius: 25px;
944
+ box-sizing: border-box;
945
+ font-size: 15px;
946
+ color: #3C5063;
947
+ z-index: 3;
948
+ }
949
+ .custom-select .custom-select-input:hover {
950
+ cursor: pointer;
951
+ }
952
+ .custom-select .custom-select-input:after {
953
+ content: url('../assets/chevron.svg');
954
+ transition-duration: 0.1s;
955
+ position: absolute;
956
+ right: 8px;
957
+ top: 5px;
958
+ transform-origin: center;
959
+ height: 20px;
960
+ }
961
+ .custom-select .custom-select-options {
962
+ position: absolute;
963
+ width: 100%;
964
+ top: 10px;
965
+ left: 0px;
966
+ max-height: 200px;
967
+ height: 0px !important;
968
+ overflow: hidden;
969
+ background: #FFFFFF;
970
+ border: 1px solid #E4E4E4;
971
+ box-sizing: border-box;
972
+ border-radius: 15px;
973
+ z-index: 2;
974
+ transition-duration: 0.3s;
975
+ }
976
+ .custom-select .custom-select-options .custom-select-options-inner {
977
+ min-height: 200px;
978
+ max-height: 200px;
979
+ overflow-y: auto;
980
+ }
981
+ .custom-select .custom-select-options .custom-select-option:first-child {
982
+ margin-top: 30px;
983
+ }
984
+ .custom-select .custom-select-options .custom-select-option {
985
+ padding: 10px;
986
+ opacity: 0.8;
987
+ transition-duration: 0.1s;
988
+ color: #3C5063;
989
+ font-size: 15px;
990
+ }
991
+ .custom-select .custom-select-options .custom-select-option:hover {
992
+ opacity: 1;
993
+ cursor: pointer;
994
+ color: #E8896D;
995
+ }
996
+ .custom-select.open {
997
+ z-index: 5;
998
+ }
999
+ .custom-select.open .custom-select-options {
1000
+ height: 400px !important;
1001
+ }
1002
+ .custom-select.open .custom-select-input:after {
1003
+ transform: rotate(180deg);
1004
+ }
1005
+ .custom-select.closing {
1006
+ z-index: 5;
1007
+ }