@necrolab/dashboard 0.4.61 → 0.4.209

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 (133) hide show
  1. package/.prettierrc +1 -27
  2. package/.vscode/extensions.json +1 -1
  3. package/README.md +2 -64
  4. package/backend/api.js +48 -40
  5. package/backend/auth.js +3 -3
  6. package/backend/batching.js +1 -1
  7. package/backend/endpoints.js +76 -12
  8. package/backend/index.js +2 -2
  9. package/backend/mock-data.js +36 -27
  10. package/backend/mock-src/classes/logger.js +8 -8
  11. package/backend/mock-src/classes/utils.js +3 -7
  12. package/backend/mock-src/database.js +0 -0
  13. package/backend/mock-src/ticketmaster.js +79 -79
  14. package/backend/validator.js +2 -2
  15. package/config/configs.json +3 -2
  16. package/config/filter.json +3 -2
  17. package/index.html +8 -79
  18. package/index.js +1 -1
  19. package/package.json +25 -40
  20. package/postcss.config.js +1 -1
  21. package/postinstall.js +17 -98
  22. package/public/android-chrome-192x192.png +0 -0
  23. package/public/android-chrome-512x512.png +0 -0
  24. package/public/apple-touch-icon.png +0 -0
  25. package/public/favicon-16x16.png +0 -0
  26. package/public/favicon-32x32.png +0 -0
  27. package/public/favicon.ico +0 -0
  28. package/public/manifest.json +7 -12
  29. package/public/sw.js +2 -0
  30. package/public/workbox-49fdaf31.js +2 -0
  31. package/public/workbox-49fdaf31.js.map +1 -0
  32. package/public/workbox-88575b92.js +2 -0
  33. package/public/workbox-88575b92.js.map +1 -0
  34. package/public/workbox-a67a7b11.js +2 -0
  35. package/public/workbox-a67a7b11.js.map +1 -0
  36. package/public/workbox-d4314735.js +2 -0
  37. package/public/workbox-d4314735.js.map +1 -0
  38. package/public/workbox-e0f89ef3.js +2 -0
  39. package/public/workbox-e0f89ef3.js.map +1 -0
  40. package/run +9 -176
  41. package/src/App.vue +85 -498
  42. package/src/assets/css/_input.scss +99 -144
  43. package/src/assets/css/main.scss +99 -450
  44. package/src/assets/img/background.svg +2 -2
  45. package/src/assets/img/logo_icon.png +0 -0
  46. package/src/components/Auth/LoginForm.vue +11 -62
  47. package/src/components/Editors/Account/Account.vue +40 -116
  48. package/src/components/Editors/Account/AccountCreator.vue +39 -88
  49. package/src/components/Editors/Account/AccountView.vue +34 -102
  50. package/src/components/Editors/Account/CreateAccount.vue +32 -80
  51. package/src/components/Editors/Profile/CreateProfile.vue +83 -269
  52. package/src/components/Editors/Profile/Profile.vue +47 -132
  53. package/src/components/Editors/Profile/ProfileCountryChooser.vue +20 -82
  54. package/src/components/Editors/Profile/ProfileView.vue +34 -91
  55. package/src/components/Editors/TagLabel.vue +6 -67
  56. package/src/components/Filter/Filter.vue +72 -289
  57. package/src/components/Filter/FilterPreview.vue +30 -171
  58. package/src/components/Filter/PriceSortToggle.vue +4 -74
  59. package/src/components/Table/Header.vue +1 -1
  60. package/src/components/Table/Row.vue +1 -1
  61. package/src/components/Table/Table.vue +2 -19
  62. package/src/components/Tasks/CheckStock.vue +13 -28
  63. package/src/components/Tasks/Controls/DesktopControls.vue +17 -17
  64. package/src/components/Tasks/Controls/MobileControls.vue +45 -8
  65. package/src/components/Tasks/CreateTaskAXS.vue +73 -79
  66. package/src/components/Tasks/CreateTaskTM.vue +142 -94
  67. package/src/components/Tasks/MassEdit.vue +7 -9
  68. package/src/components/Tasks/QuickSettings.vue +55 -169
  69. package/src/components/Tasks/ScrapeVenue.vue +4 -7
  70. package/src/components/Tasks/Stats.vue +23 -52
  71. package/src/components/Tasks/Task.vue +135 -377
  72. package/src/components/Tasks/TaskView.vue +47 -107
  73. package/src/components/Tasks/Utilities.vue +6 -5
  74. package/src/components/icons/Bag.vue +1 -1
  75. package/src/components/icons/Loyalty.vue +1 -1
  76. package/src/components/icons/Mail.vue +2 -2
  77. package/src/components/icons/Play.vue +2 -2
  78. package/src/components/icons/Reload.vue +5 -4
  79. package/src/components/icons/Sandclock.vue +2 -2
  80. package/src/components/icons/Stadium.vue +1 -1
  81. package/src/components/icons/index.js +1 -24
  82. package/src/components/ui/Modal.vue +13 -105
  83. package/src/components/ui/Navbar.vue +37 -170
  84. package/src/components/ui/ReconnectIndicator.vue +55 -351
  85. package/src/components/ui/Splash.vue +35 -5
  86. package/src/components/ui/controls/CountryChooser.vue +62 -200
  87. package/src/components/ui/controls/atomic/Checkbox.vue +10 -119
  88. package/src/components/ui/controls/atomic/Dropdown.vue +39 -208
  89. package/src/components/ui/controls/atomic/MultiDropdown.vue +37 -300
  90. package/src/libs/Filter.js +170 -200
  91. package/src/registerServiceWorker.js +1 -1
  92. package/src/stores/connection.js +53 -51
  93. package/src/stores/logger.js +3 -11
  94. package/src/stores/sampleData.js +201 -173
  95. package/src/stores/ui.js +44 -112
  96. package/src/stores/utils.js +6 -90
  97. package/src/views/Accounts.vue +35 -44
  98. package/src/views/Console.vue +90 -341
  99. package/src/views/Editor.vue +123 -1176
  100. package/src/views/FilterBuilder.vue +251 -607
  101. package/src/views/Login.vue +14 -76
  102. package/src/views/Profiles.vue +25 -44
  103. package/src/views/Tasks.vue +100 -187
  104. package/static/offline.html +50 -192
  105. package/tailwind.config.js +26 -104
  106. package/vite.config.js +16 -73
  107. package/vue.config.js +32 -0
  108. package/workbox-config.js +11 -0
  109. package/artwork/image.png +0 -0
  110. package/dev-server.js +0 -136
  111. package/exit +0 -209
  112. package/jsconfig.json +0 -16
  113. package/src/assets/css/_utilities.scss +0 -388
  114. package/src/assets/img/background.svg.backup +0 -11
  115. package/src/components/icons/Check.vue +0 -5
  116. package/src/components/icons/Close.vue +0 -21
  117. package/src/components/icons/CloseX.vue +0 -5
  118. package/src/components/icons/Key.vue +0 -21
  119. package/src/components/icons/Pencil.vue +0 -21
  120. package/src/components/icons/Profile.vue +0 -18
  121. package/src/components/icons/Sell.vue +0 -21
  122. package/src/components/icons/Spinner.vue +0 -42
  123. package/src/components/icons/SquareCheck.vue +0 -18
  124. package/src/components/icons/SquareUncheck.vue +0 -18
  125. package/src/components/icons/Wildcard.vue +0 -18
  126. package/src/components/ui/controls/atomic/LoadingButton.vue +0 -45
  127. package/src/composables/useClickOutside.js +0 -21
  128. package/src/composables/useDropdownPosition.js +0 -174
  129. package/src/types/index.js +0 -41
  130. package/src/utils/debug.js +0 -1
  131. package/switch-branch.sh +0 -41
  132. package/workbox-config.cjs +0 -63
  133. /package/src/assets/img/{logo_icon-old.png → logo_icon_2.png} +0 -0
@@ -1,372 +1,125 @@
1
1
  @use "input";
2
- @use "utilities";
3
-
4
- /* ==========================================================================
5
- GLOBAL RESETS & BASE STYLES
6
- ========================================================================== */
7
-
8
- input,
9
- textarea,
10
- select,
11
- button {
12
- -webkit-tap-highlight-color: transparent;
13
- -webkit-touch-callout: none;
14
- outline: none;
15
- }
16
-
17
- input,
18
- textarea,
19
- select {
20
- -webkit-appearance: none;
21
- -moz-appearance: none;
22
- appearance: none;
23
- }
24
-
25
- input:focus,
26
- textarea:focus,
27
- select:focus {
28
- outline: none !important;
29
- -webkit-tap-highlight-color: transparent !important;
30
- box-shadow: none !important;
31
- }
32
-
33
- /* ==========================================================================
34
- SCROLL PREVENTION & TOUCH HANDLING
35
- ========================================================================== */
36
2
 
37
3
  html {
38
- overflow: hidden !important;
39
- overscroll-behavior: none !important;
40
- height: 100% !important;
41
- width: 100% !important;
4
+ // margin-top: 50px;
5
+ overscroll-behavior: contain;
42
6
  }
43
7
 
44
8
  * {
45
- @apply hidden-scrollbars;
46
- -webkit-user-select: none;
47
- -moz-user-select: none;
48
- -ms-user-select: none;
49
- user-select: none;
50
- overscroll-behavior: none !important;
51
- }
52
-
53
- textarea,
54
- .code-editor,
55
- .proxy-editor {
56
- -webkit-user-select: text !important;
57
- -moz-user-select: text !important;
58
- -ms-user-select: text !important;
59
- user-select: text !important;
60
- overscroll-behavior: auto !important;
61
- touch-action: pan-y !important;
62
- }
63
-
64
- .dropdown-menu,
65
- .dropdown-menu *,
66
- .dropdown-content-portal,
67
- .dropdown-content-portal *,
68
- .option-list,
69
- .option-list *,
70
- .console,
71
- .console * {
72
- overscroll-behavior: auto !important;
73
- touch-action: pan-y !important;
74
- -webkit-overflow-scrolling: touch !important;
75
- }
76
-
77
- /* Specific overrides for dropdown content portals */
78
- .dropdown-content-portal {
79
- overflow: auto !important;
80
- overflow-y: auto !important;
81
- overscroll-behavior: auto !important;
82
- touch-action: pan-y !important;
83
- -webkit-overflow-scrolling: touch !important;
84
- scroll-behavior: smooth !important;
85
- }
86
-
87
- .dropdown-content-portal * {
88
- overflow: auto !important;
89
- overscroll-behavior: auto !important;
90
- touch-action: pan-y !important;
91
- -webkit-overflow-scrolling: touch !important;
92
- user-select: auto !important;
93
- -webkit-user-select: auto !important;
94
- -moz-user-select: auto !important;
95
- -ms-user-select: auto !important;
96
- }
97
-
98
- /* Ultra-specific overrides to beat the global * selector */
99
- body .dropdown-content-portal,
100
- html .dropdown-content-portal,
101
- div .dropdown-content-portal {
102
- overflow: auto !important;
103
- overflow-y: auto !important;
104
- overscroll-behavior: auto !important;
105
- touch-action: pan-y !important;
106
- -webkit-overflow-scrolling: touch !important;
107
- }
108
-
109
- /* Force scrolling on teleported dropdown content */
110
- body > .dropdown-content-portal,
111
- [data-v-app] .dropdown-content-portal {
112
- overflow: auto !important;
113
- overflow-y: auto !important;
114
- overscroll-behavior: auto !important;
115
- touch-action: pan-y !important;
116
- -webkit-overflow-scrolling: touch !important;
9
+ @apply hidden-scrollbars
117
10
  }
118
11
 
119
- .code-editor,
120
- .proxy-editor,
121
- .editor-container,
122
- .proxy-editor-container {
123
- overscroll-behavior: auto !important;
124
- touch-action: pan-y !important;
125
- -webkit-overflow-scrolling: touch !important;
126
- }
127
-
128
- /* ==========================================================================
129
- BODY & LAYOUT
130
- ========================================================================== */
131
-
132
12
  body {
133
- font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
134
- background-color: #1a1b1e;
135
- min-height: 100vh;
136
- overflow: hidden !important;
137
- overscroll-behavior: none !important;
138
- width: 100% !important;
139
- height: 100% !important;
13
+ font-family: "Inter", sans-serif;
14
+ background: url("@/assets/img/background.svg") center center;
15
+ background-size: cover;
16
+ background-attachment: fixed;
17
+ padding-top: 10px;
18
+ overscroll-behavior-y: contain;
19
+ // overscroll-behavior: none;
20
+
140
21
  -webkit-font-smoothing: antialiased;
141
22
  -moz-osx-font-smoothing: grayscale;
142
- touch-action: none !important;
143
- color: #e2e2e5;
144
- position: relative;
145
- @apply bg-dark-300;
146
-
147
- &::before {
148
- content: "";
149
- position: fixed;
150
- top: 0;
151
- left: 0;
152
- right: 0;
153
- bottom: 0;
154
- background-image: url("@/assets/img/background.svg");
155
- background-position: center center;
156
- background-size: cover;
157
- background-repeat: no-repeat;
158
- -webkit-background-size: cover;
159
- z-index: -1;
160
- pointer-events: none;
161
- will-change: transform;
162
- -webkit-transform: translateZ(0);
163
- transform: translateZ(0);
164
- }
165
- }
166
-
167
- img {
168
- pointer-events: none;
169
- }
170
-
171
- /* ==========================================================================
172
- UTILITY CLASSES
173
- ========================================================================== */
174
-
175
- .flex-center {
176
- @apply flex items-center justify-center;
177
- }
178
-
179
- .flex-between {
180
- @apply flex items-center justify-between;
181
- }
182
-
183
- .flex-col-center {
184
- @apply flex flex-col items-center justify-center;
185
- }
186
-
187
- .text-heading {
188
- @apply text-base font-semibold;
189
- color: #e2e2e5;
190
- }
191
-
192
- .text-subheading {
193
- @apply text-sm font-medium;
194
- color: #d0d0d3;
195
- }
196
-
197
- .text-muted {
198
- @apply text-xs;
199
- color: #a0a0a6;
200
- }
201
-
202
- .card-dark {
203
- @apply bg-dark-400 border border-dark-650 rounded shadow-sm;
204
- }
205
-
206
- .grid-tasks {
207
- @apply grid grid-cols-12 gap-2 items-center;
23
+ @apply bg-cover bg-dark-300;
24
+ touch-action: pan-x pan-y;
208
25
  }
209
26
 
210
- .grid-responsive {
211
- @apply grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4;
27
+ .ios-wrapper {
28
+ // width: 100%;
29
+ // padding-left: calc(env(safe-area-inset-left));
212
30
  }
213
31
 
214
- .form-grid {
215
- @apply grid grid-cols-1 md:grid-cols-2 gap-4;
32
+ // Used for table heights
33
+ .max-h-big {
34
+ max-height: 36rem;
216
35
  }
217
36
 
218
- /* ==========================================================================
219
- BUTTON COMPONENTS
220
- ========================================================================== */
221
-
222
- .btn-primary {
223
- @apply bg-dark-550 hover:bg-dark-650 text-white font-medium px-4 py-2 rounded transition-all duration-150;
224
- border: 1px solid #44454b;
225
-
226
- &:hover {
227
- border-color: #4b4c53;
37
+ @media only screen and (min-device-width: 768px) and (max-device-width: 1366px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2) {
38
+ .max-h-big {
39
+ max-height: 44rem;
228
40
  }
229
41
  }
230
42
 
231
- .btn-secondary {
232
- @apply bg-dark-500 hover:bg-dark-550 font-medium px-4 py-2 rounded transition-all duration-150 border border-dark-650 hover:border-dark-700;
233
- color: #e2e2e5;
234
- }
235
-
236
- .btn-danger {
237
- @apply bg-red-400 hover:bg-red-500 text-white font-medium px-4 py-2 rounded transition-all duration-150;
238
- border: 1px solid #f14c4c;
43
+ @media only screen and (min-device-width: 768px) and (max-device-width: 1366px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) {
44
+ .max-h-big {
45
+ max-height: 68rem;
46
+ }
239
47
  }
240
48
 
241
- .btn-icon {
242
- @apply p-1 rounded transition-all duration-150 flex-center hover:bg-dark-500 border border-transparent;
243
- color: #d0d0d3;
244
-
245
- &:hover {
246
- color: #ffffff;
247
- border-color: #3d3e44;
49
+ @media screen and (max-device-height: 500px) {
50
+ .max-h-big {
51
+ max-height: 11.7rem;
248
52
  }
249
53
  }
250
54
 
251
- .btn-action {
252
- @apply bg-dark-500 hover:bg-dark-550 text-xs px-4 h-10 rounded flex-center gap-x-2 transition-all duration-150 font-medium border border-dark-650 hover:border-dark-700;
253
- color: #e2e2e5;
55
+ .top-3\,5 {
56
+ top: 1.1rem;
254
57
  }
255
58
 
256
- /* ==========================================================================
257
- COMPONENT UTILITIES
258
- ========================================================================== */
259
59
 
260
- .smooth-hover {
261
- @apply transition-all duration-200 hover:opacity-80;
262
- }
60
+ .fade-enter-active,
61
+ .fade-leave-active {
62
+ will-change: transform, opacity, filter;
263
63
 
264
- .status-indicator {
265
- @apply w-2 h-2 rounded-full flex-shrink-0;
266
- min-width: 4px;
267
- min-height: 4px;
64
+ transition: opacity 0.15s ease;
268
65
  }
269
66
 
270
- .mobile-icons {
271
- @apply flex lg:hidden ml-auto items-center gap-x-2;
272
-
273
- button {
274
- @apply w-8 h-8 flex-center bg-dark-500 rounded transition-all duration-150 border border-dark-650 hover:bg-dark-550;
275
- color: #d0d0d3;
67
+ .fade-enter-from,
68
+ .fade-leave-to {
69
+ will-change: transform, opacity, filter;
276
70
 
277
- &:hover {
278
- color: #ffffff;
279
- }
280
- }
71
+ opacity: 0;
281
72
  }
282
73
 
283
- .loading-spinner {
284
- @apply animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full;
74
+ /* Disable zoom */
75
+ :root {
76
+ touch-action: pan-x pan-y;
77
+ height: 100%;
285
78
  }
286
79
 
287
- /* ==========================================================================
288
- LABEL & ICON STYLING
289
- ========================================================================== */
80
+ .hidden-scrollbars::-webkit-scrollbar
290
81
 
291
- .label-override {
292
- @apply flex items-center text-xs mb-2;
293
- color: #a0a0a6;
294
-
295
- svg {
296
- @apply ml-2;
297
- color: #a0a0a6 !important;
298
- width: 16px;
299
- height: 16px;
300
- fill: #a0a0a6 !important;
301
- }
302
- }
303
-
304
- .switch-wrapper svg {
305
- color: #a0a0a6 !important;
306
- fill: #a0a0a6 !important;
82
+ /* Hide scrollbar for Chrome, Safari and Opera */ {
83
+ display: none;
307
84
  }
308
85
 
309
- /* ==========================================================================
310
- SCROLLBAR UTILITIES
311
- ========================================================================== */
312
-
86
+ /* Hide scrollbar for IE, Edge and Firefox */
313
87
  .hidden-scrollbars {
314
- scrollbar-width: none;
315
88
  -ms-overflow-style: none;
316
-
317
- &::-webkit-scrollbar {
318
- display: none;
319
- }
320
- }
321
-
322
- /* ==========================================================================
323
- DYNAMIC HEIGHTS & RESPONSIVE DESIGN
324
- ========================================================================== */
325
-
326
- .max-h-big {
327
- max-height: calc(100vh - 12rem);
328
- min-height: 8rem;
329
- overflow: hidden;
330
- }
331
-
332
- @screen xl {
333
- .max-h-big {
334
- max-height: calc(100vh - 11rem);
335
- }
336
- }
337
-
338
- @screen h-sm {
339
- .max-h-big {
340
- max-height: calc(100vh - 12rem);
341
- min-height: 8rem;
342
- }
89
+ /* IE and Edge */
90
+ scrollbar-width: none;
91
+ /* Firefox */
343
92
  }
344
93
 
345
- /* ==========================================================================
346
- TRANSITIONS & ANIMATIONS
347
- ========================================================================== */
348
-
349
- .fade-enter-active,
350
- .fade-leave-active {
351
- transition: opacity 0.15s ease;
352
- }
94
+ /* Make text not selectable (request from xsonoro) */
353
95
 
354
- .fade-enter-from,
355
- .fade-leave-to {
356
- opacity: 0;
96
+ * {
97
+ -webkit-user-select: none;
98
+ /* Safari */
99
+ -moz-user-select: none;
100
+ /* Firefox */
101
+ -ms-user-select: none;
102
+ /* IE10+/Edge */
103
+ user-select: none;
104
+ /* Standard */
357
105
  }
358
106
 
359
- .will-change-auto {
360
- will-change: auto;
107
+ img {
108
+ pointer-events: none;
361
109
  }
362
110
 
363
- /* ==========================================================================
364
- TOAST NOTIFICATIONS
365
- ========================================================================== */
366
-
111
+ /** Toast Design **/
367
112
  .Toastify__toast-theme--colored.Toastify__toast--default,
368
113
  .Toastify__toast-theme--light {
369
- @apply bg-dark-550 text-white;
114
+ @apply bg-dark-400 text-white;
115
+ }
116
+
117
+ .Toastify__toast-icon {
118
+ svg {
119
+ path {
120
+ // fill: white !important;
121
+ }
122
+ }
370
123
  }
371
124
 
372
125
  .Toastify__toast-icon {
@@ -374,163 +127,59 @@ img {
374
127
  border-radius: 100%;
375
128
  }
376
129
 
377
- .Toastify__close-button.Toastify__close-button--light {
130
+ button.Toastify__close-button.Toastify__close-button--light {
378
131
  margin-top: 1px;
379
132
  padding-left: 0.1rem;
380
133
  @apply border-2 border-white flex border-solid w-6 h-6 items-center justify-center rounded-full;
381
- }
382
134
 
383
- .Toastify__close-button.Toastify__close-button--light svg {
384
- color: white;
385
- }
386
-
387
- .Toastify__close-button.Toastify__close-button--light svg path {
388
- fill: currentColor !important;
389
- }
390
-
391
- .Toastify__toast-container {
392
- pointer-events: none;
393
- --toastify-toast-bd-radius: 6px;
135
+ svg {
136
+ path {
137
+ fill: white !important;
138
+ }
139
+ }
394
140
  }
395
141
 
396
142
  .Toastify__toast {
397
143
  min-height: 50px !important;
398
144
  height: 50px !important;
399
- pointer-events: auto !important;
400
- margin-bottom: 6px !important;
401
-
402
- transition: transform 0.18s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 0.12s cubic-bezier(0.25, 0.1, 0.25, 1) !important;
403
- transform: translate3d(0, 0, 0);
404
-
405
- &.Toastify__slide-enter-active {
406
- animation: slideInRight 0.22s cubic-bezier(0.25, 0.1, 0.25, 1);
407
- }
408
-
409
- &.Toastify__slide-exit-active {
410
- animation: slideOutRight 0.12s cubic-bezier(0.4, 0, 1, 1);
411
- }
412
-
413
- &-body > div:last-child {
414
- font-family: "Inter", sans-serif;
415
- @apply font-medium;
416
- }
417
-
418
- &--error {
419
- .Toastify__progress-bar {
420
- @apply bg-red-400;
421
- }
422
- }
423
- }
424
-
425
- @keyframes slideInRight {
426
- 0% {
427
- transform: translateX(110%);
428
- opacity: 0;
429
- }
430
- 100% {
431
- transform: translateX(0);
432
- opacity: 1;
433
- }
434
145
  }
435
146
 
436
- @keyframes slideOutRight {
437
- 0% {
438
- transform: translateX(0);
439
- opacity: 1;
440
- }
441
- 100% {
442
- transform: translateX(110%);
443
- opacity: 0;
444
- }
445
- }
446
-
447
- .Toastify__toast--error svg {
448
- color: #ee8282;
449
- }
450
-
451
- .Toastify__toast--error svg path {
452
- fill: currentColor !important;
453
- }
454
-
455
- .Toastify__toast--success .Toastify__progress-bar {
456
- @apply bg-green-400;
147
+ .Toastify__toast-body > div:last-child {
148
+ font-family: "Inter", sans-serif;
149
+ @apply font-medium;
457
150
  }
458
151
 
459
152
  .Toastify__progress-bar {
460
153
  height: 2px;
461
- transition: width 0.08s cubic-bezier(0.25, 0.1, 0.25, 1);
462
154
  }
463
155
 
464
- /* ==========================================================================
465
- ROOT CONFIGURATION & iOS OPTIMIZATIONS
466
- ========================================================================== */
467
-
468
- :root {
469
- touch-action: pan-x pan-y;
470
- height: 100%;
471
- --toastify-toast-width: 520px;
472
- }
473
-
474
- @supports (-webkit-appearance: none) {
475
- .component-container,
476
- .card-dark,
477
- h1,
478
- h2,
479
- h3,
480
- h4,
481
- h5,
482
- h6 {
483
- transform: translate3d(0, 0, 0);
484
- }
485
- }
486
-
487
- /* ==========================================================================
488
- MOBILE RESPONSIVE OPTIMIZATIONS - CONSOLIDATED
489
- ========================================================================== */
490
-
491
- @screen md {
492
- .text-heading {
493
- @apply text-sm;
156
+ .Toastify__toast--error {
157
+ svg {
158
+ path {
159
+ fill: #ee8282 !important;
160
+ }
494
161
  }
495
162
 
496
- .btn-primary,
497
- .btn-secondary {
498
- @apply text-sm px-3 py-1.5;
163
+ .Toastify__progress-bar {
164
+ @apply bg-red-400;
499
165
  }
166
+ }
500
167
 
501
- .btn-action {
502
- @apply text-sm px-6 h-12;
503
- min-height: 48px;
168
+ .Toastify__toast--success {
169
+ .Toastify__progress-bar {
170
+ @apply bg-green-400;
504
171
  }
172
+ }
505
173
 
506
- .status-indicator {
507
- width: 6px;
508
- height: 6px;
509
- min-width: 6px;
510
- min-height: 6px;
511
- }
174
+ :root {
175
+ --toastify-toast-width: 520px;
512
176
  }
513
177
 
514
- @screen mobile-portrait {
515
- .btn-action {
516
- @apply text-base px-8 h-14;
517
- min-height: 56px;
518
- font-weight: 600;
519
- border-radius: 8px;
520
- }
521
178
 
522
- .status-indicator {
523
- width: 5px;
524
- height: 5px;
525
- min-width: 5px;
526
- min-height: 5px;
527
- }
528
- }
179
+ .mobile-icons {
180
+ @apply flex lg:hidden ml-auto items-center gap-x-2;
529
181
 
530
- @screen mobile-landscape {
531
- .btn-action {
532
- @apply text-base px-8 h-14;
533
- min-height: 56px;
534
- font-weight: 600;
182
+ button {
183
+ @apply text-white text-2xl rounded bg-dark-500 border-2 border-dark-550 shadow-lg w-9 h-9 flex items-center justify-center;
535
184
  }
536
185
  }