groovinads-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.babelrc +3 -0
  2. package/.storybook/main.js +19 -0
  3. package/.storybook/preview.js +13 -0
  4. package/.yarn/install-state.gz +0 -0
  5. package/.yarn/releases/yarn-4.1.1.cjs +893 -0
  6. package/.yarnrc.yml +3 -0
  7. package/package.json +40 -0
  8. package/src/components/Button/Button.jsx +104 -0
  9. package/src/components/Button/index.jsx +3 -0
  10. package/src/index.jsx +3 -0
  11. package/src/scss/abstracts/_borders-radius.scss +6 -0
  12. package/src/scss/abstracts/_colors.scss +33 -0
  13. package/src/scss/abstracts/_fonts.scss +8 -0
  14. package/src/scss/abstracts/_helpers.scss +7 -0
  15. package/src/scss/abstracts/_media-queries.scss +6 -0
  16. package/src/scss/abstracts/_mixins.scss +143 -0
  17. package/src/scss/abstracts/_spinner-duration.scss +1 -0
  18. package/src/scss/abstracts/_variables.scss +2 -0
  19. package/src/scss/animations/_alertToUp.scss +10 -0
  20. package/src/scss/animations/_aurora.scss +17 -0
  21. package/src/scss/animations/_colors.scss +15 -0
  22. package/src/scss/animations/_dash.scss +13 -0
  23. package/src/scss/animations/_fadeCopyFromLeft.scss +10 -0
  24. package/src/scss/animations/_goAndBack.scss +8 -0
  25. package/src/scss/animations/_inputUp.scss +10 -0
  26. package/src/scss/animations/_shake.scss +22 -0
  27. package/src/scss/animations/_showIn.scss +8 -0
  28. package/src/scss/animations/_showMenu.scss +12 -0
  29. package/src/scss/animations/_statusLine.scss +9 -0
  30. package/src/scss/animations/_toDown.scss +8 -0
  31. package/src/scss/animations/_toastFromLeft.scss +10 -0
  32. package/src/scss/animations/_toastFromRight.scss +10 -0
  33. package/src/scss/base/_base.scss +14 -0
  34. package/src/scss/base/_typography.scss +188 -0
  35. package/src/scss/components/_alerts.scss +115 -0
  36. package/src/scss/components/_breadcrumb.scss +30 -0
  37. package/src/scss/components/_buttons.scss +808 -0
  38. package/src/scss/components/_checks.scss +105 -0
  39. package/src/scss/components/_dropdown-deck.scss +115 -0
  40. package/src/scss/components/_dropdowns.scss +131 -0
  41. package/src/scss/components/_img-404.scss +6 -0
  42. package/src/scss/components/_inputs.scss +279 -0
  43. package/src/scss/components/_login-source.scss +19 -0
  44. package/src/scss/components/_modals.scss +89 -0
  45. package/src/scss/components/_nav-tabs.scss +38 -0
  46. package/src/scss/components/_pills.scss +88 -0
  47. package/src/scss/components/_radio.scss +102 -0
  48. package/src/scss/components/_shadows.scss +18 -0
  49. package/src/scss/components/_spinner.scss +20 -0
  50. package/src/scss/components/_status-icon.scss +61 -0
  51. package/src/scss/components/_switch.scss +77 -0
  52. package/src/scss/components/_tabulator.scss +386 -0
  53. package/src/scss/components/_textareas.scss +22 -0
  54. package/src/scss/components/_toast.scss +129 -0
  55. package/src/scss/custom/_campaign-id.scss +56 -0
  56. package/src/scss/custom/_img-not-found.scss +7 -0
  57. package/src/scss/custom/_modal-edit.scss +10 -0
  58. package/src/scss/index.jsx +0 -0
  59. package/src/scss/index.scss +9 -0
  60. package/src/scss/layout/_aurora.scss +39 -0
  61. package/src/scss/layout/_authentication.scss +65 -0
  62. package/src/scss/layout/_footer.scss +21 -0
  63. package/src/scss/layout/_main.scss +41 -0
  64. package/src/scss/layout/_navbar.scss +64 -0
  65. package/src/scss/views/_skeleton.scss +266 -0
  66. package/src/stories/Button.stories.jsx +11 -0
@@ -0,0 +1,386 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ // Forward
5
+ @forward '../animations/inputUp';
6
+ @forward '../components/shadows';
7
+ @forward '../components/buttons';
8
+
9
+ .tabulator {
10
+ @include h.font-family(h.$font-family-secondary, 1rem, h.$grey-dark, 400);
11
+ background-color: h.$white;
12
+ border-radius: h.$border-radius-sm;
13
+ margin-bottom: 0;
14
+ border: none;
15
+ @extend .shadow-1;
16
+
17
+ // Header
18
+ .tabulator-header {
19
+ text-transform: uppercase;
20
+ font-size: 0.75rem;
21
+ letter-spacing: 1.25px;
22
+ color: h.$grey-dark;
23
+ border-bottom-color: rgba(h.$ga-brand-dark, 20%);
24
+ border-top-left-radius: h.$border-radius-sm;
25
+ border-top-right-radius: h.$border-radius-sm;
26
+
27
+ .tabulator-frozen {
28
+ &.tabulator-frozen {
29
+ border: none;
30
+ }
31
+ }
32
+
33
+ .tabulator-col {
34
+ padding: 0;
35
+ border-right: 0;
36
+
37
+ &.tabulator-sortable {
38
+ .tabulator-col-content {
39
+ .tabulator-col-sorter {
40
+ .tabulator-arrow {
41
+ color: h.$grey-dark;
42
+ border: none;
43
+ position: relative;
44
+ width: 1em;
45
+ height: 1em;
46
+ border: none;
47
+
48
+ &::before {
49
+ content: '\f063';
50
+ font-family: h.$font-family-icon;
51
+ width: 1em;
52
+ height: 1em;
53
+ display: inline-block;
54
+ transform-origin: 50% 50%;
55
+ text-align: center;
56
+ @include h.transition(transform color, 0.15s, ease-in-out);
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ &[aria-sort='none'] {
63
+ .tabulator-col-content {
64
+ .tabulator-col-sorter {
65
+ .tabulator-arrow {
66
+ border: none;
67
+
68
+ &::before {
69
+ color: transparent;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ &[aria-sort='asc'] {
77
+ .tabulator-col-content {
78
+ .tabulator-col-sorter {
79
+ .tabulator-arrow {
80
+ border: none;
81
+
82
+ &::before {
83
+ transform: rotate(180deg);
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ &[aria-sort='desc'] {
91
+ .tabulator-col-content {
92
+ .tabulator-col-sorter {
93
+ .tabulator-arrow {
94
+ border: none;
95
+
96
+ &::before {
97
+ transform: rotate(0deg);
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ &:hover {
105
+ background-color: transparent;
106
+
107
+ .tabulator-col-content {
108
+ .tabulator-col-sorter {
109
+ .tabulator-arrow {
110
+ &::before {
111
+ color: h.$grey-dark;
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
118
+
119
+ .tabulator-col-content {
120
+ padding: 1rem;
121
+ line-height: 1;
122
+ position: relative;
123
+
124
+ &::after {
125
+ content: '';
126
+ clear: both;
127
+ display: block;
128
+ position: absolute;
129
+ top: 1rem;
130
+ right: 0;
131
+ width: 1px;
132
+ min-height: 1em;
133
+ background-color: currentcolor;
134
+ }
135
+
136
+ &:has(.form-check) {
137
+ padding: 0.6rem 0.75rem;
138
+ }
139
+ }
140
+
141
+ &:last-child {
142
+ .tabulator-col-content {
143
+ &::after {
144
+ display: none;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ // Body
152
+ .tabulator-tableholder {
153
+ overflow: auto;
154
+ height: calc(100% - 39px);
155
+ max-height: calc(100% - 39px);
156
+ border-bottom-left-radius: h.$border-radius-sm;
157
+ border-bottom-right-radius: h.$border-radius-sm;
158
+
159
+ .tabulator-table {
160
+ min-width: 100%;
161
+
162
+ .tabulator-row {
163
+ color: h.$secondary-dark;
164
+ border-color: rgba(h.$ga-brand-dark, 20%);
165
+
166
+ &.tabulator-row-odd {
167
+ background-color: h.$grey-light;
168
+
169
+ .tabulator-cell {
170
+ color: h.$secondary-dark;
171
+ }
172
+ }
173
+
174
+ &:hover {
175
+ background-color: rgba(h.$ga-brand-dark, 20%);
176
+ }
177
+
178
+ .tabulator-cell {
179
+ padding: 0.5rem 1rem;
180
+ border-right: none;
181
+ line-height: 2rem;
182
+ display: inline-block !important;
183
+
184
+ img {
185
+ width: auto;
186
+ height: 48px;
187
+ border-radius: h.$border-radius-xs;
188
+ }
189
+
190
+ &:has(.formatterCell) {
191
+ padding: 0.3125rem 1rem;
192
+ }
193
+
194
+ &.tabulator-editing {
195
+ border: none;
196
+ }
197
+
198
+ &.tabulator-frozen {
199
+ &.tabulator-frozen-left {
200
+ border-right: 2px solid rgba(h.$ga-brand-dark, 20%);
201
+ }
202
+
203
+ &.tabulator-frozen-right {
204
+ border-left: 2px solid rgba(h.$ga-brand-dark, 20%);
205
+ }
206
+ }
207
+
208
+ &:has(.dropdown) {
209
+ overflow: visible;
210
+ }
211
+
212
+ .tabulator-row-handle-box {
213
+ width: 1rem;
214
+ height: 1rem;
215
+ }
216
+
217
+ input {
218
+ &[type='text'],
219
+ &[type='number'] {
220
+ border-color: h.$grey-dark;
221
+ border-radius: h.$border-radius-sm;
222
+ height: 100%;
223
+ background-color: h.$white;
224
+
225
+ &:focus {
226
+ border-color: h.$secondary-violet;
227
+ box-shadow: 0 0 0 2px h.$secondary-violet;
228
+ color: h.$ga-brand-dark;
229
+ outline: none;
230
+ }
231
+ }
232
+ }
233
+
234
+ .formatterCell {
235
+ display: inline-flex;
236
+ width: 100%;
237
+ height: 100%;
238
+ justify-content: center;
239
+ align-items: center;
240
+ }
241
+ }
242
+
243
+ &.tabulator-selected {
244
+ background-color: rgba(h.$ga-brand-dark, 20%);
245
+ }
246
+
247
+ &:last-of-type {
248
+ border-bottom: 0;
249
+ }
250
+ }
251
+ }
252
+ }
253
+
254
+ // Footer
255
+ .tabulator-footer {
256
+ display: flex;
257
+ justify-content: center;
258
+ padding: 0.5rem;
259
+
260
+ .tabulator-paginator {
261
+ display: flex;
262
+ gap: 0.5rem;
263
+ align-items: center;
264
+
265
+ .tabulator-page {
266
+ @extend #{'.btn','.btn-terciary', '.btn-xs'};
267
+ margin: 0;
268
+ line-height: 1;
269
+ height: auto;
270
+ }
271
+
272
+ .tabulator-pages {
273
+ display: flex;
274
+ margin: 0;
275
+ gap: 0.25rem;
276
+
277
+ .tabulator-page {
278
+ &.active {
279
+ background-color: h.$ga-brand-midtone;
280
+ color: h.$white;
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
286
+
287
+ &:has(.tabulator-footer) {
288
+ .tabulator-tableholder {
289
+ border-bottom-left-radius: 0;
290
+ border-bottom-right-radius: 0;
291
+ }
292
+ }
293
+ }
294
+
295
+ .not-validated {
296
+ .tabulator {
297
+ border: 1px solid h.$error;
298
+ overflow: visible;
299
+ border-top-right-radius: 0;
300
+ @include h.shadow(1, h.$error, y);
301
+
302
+ .tabulator-header {
303
+ border-bottom-color: h.$error;
304
+ border-top-right-radius: 0;
305
+
306
+ .tabulator-col-title {
307
+ color: h.$error;
308
+ }
309
+ .tabulator-col {
310
+ background-color: lighten(h.$error, 40%);
311
+
312
+ .tabulator-col-content {
313
+ &::after {
314
+ background-color: h.$error;
315
+ }
316
+ }
317
+
318
+ &.tabulator-sortable {
319
+ &:hover {
320
+ background-color: lighten(h.$error, 40%);
321
+ }
322
+ }
323
+
324
+ &.tabulator-sortable[aria-sort=asc],
325
+ &.tabulator-sortable[aria-sort=desc] {
326
+ .tabulator-col-content {
327
+ .tabulator-col-sorter {
328
+ .tabulator-arrow {
329
+ color: h.$error;
330
+ &::before {
331
+ color: h.$error;
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ }
339
+
340
+ .tabulator-tableholder {
341
+ .tabulator-table {
342
+ .tabulator-row {
343
+ color: h.$error;
344
+ border-color: h.$error;
345
+
346
+ &.tabulator-row-odd {
347
+ background-color: h.$grey-light;
348
+ background-color: lighten(h.$error, 35%);
349
+
350
+ .tabulator-cell {
351
+ color: h.$error;
352
+ }
353
+ }
354
+
355
+ &:hover {
356
+ background-color: lighten(h.$error, 25%);
357
+ }
358
+ }
359
+ }
360
+ }
361
+
362
+ .form-check {
363
+ .outer {
364
+ border-color: h.$error;
365
+ }
366
+ }
367
+
368
+ &::after {
369
+ content: attr(data-error);
370
+ position: absolute;
371
+ bottom: 100%;
372
+ right: -1px;
373
+ padding: 0.125rem 0.5rem;
374
+ font-size: 0.618rem;
375
+ line-height: 1;
376
+ color: h.$white;
377
+ background-color: h.$error;
378
+ border-radius: h.$border-radius-xs h.$border-radius-xs 0 0;
379
+ animation: inputUp .2s ease-out both;
380
+ }
381
+
382
+ [class^='fa-'] {
383
+ color: h.$error !important;
384
+ }
385
+ }
386
+ }
@@ -0,0 +1,22 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ .form-floating {
5
+ position: unset;
6
+
7
+ & > textarea.form-control {
8
+ resize: none;
9
+ height: 6rem;
10
+
11
+ // Sizes
12
+ &.form-control-xs {
13
+ height: 4rem;
14
+ }
15
+
16
+ &.form-control-lg {
17
+ height: 8rem;
18
+ }
19
+ }
20
+ }
21
+
22
+
@@ -0,0 +1,129 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ // Forward
5
+ @forward '../animations/toastFromLeft';
6
+ @forward '../animations/toastFromRight';
7
+
8
+ .toast-container {
9
+ padding: 2rem 1rem;
10
+ overflow: hidden;
11
+ margin-top: 4rem;
12
+ position: fixed;
13
+
14
+ .toast {
15
+ color: h.$secondary-blue;
16
+ border: none;
17
+ background-color: rgba(h.$white, 0.85);
18
+ backdrop-filter: blur(12px);
19
+
20
+ &.bottom-start,
21
+ &.top-start {
22
+ animation: toastFromLeft 0.35s cubic-bezier(0.21, 1.02, 0.73, 1);
23
+ }
24
+
25
+ &.bottom-end,
26
+ &.top-end {
27
+ animation: toastFromRight 0.35s cubic-bezier(0.21, 1.02, 0.73, 1);
28
+ }
29
+
30
+ &.info {
31
+ .icon {
32
+ color: h.$secondary-blue-light;
33
+ }
34
+ }
35
+
36
+ &.warning {
37
+ .icon {
38
+ color: h.$warning;
39
+ }
40
+ }
41
+
42
+ &.success {
43
+ .icon {
44
+ color: h.$success;
45
+ }
46
+ }
47
+
48
+ &.error {
49
+ .icon {
50
+ color: h.$error;
51
+ }
52
+ }
53
+
54
+ .toast-body {
55
+ display: flex;
56
+ position: relative;
57
+ flex-direction: row;
58
+ gap: 1rem;
59
+ align-items: center;
60
+ justify-content: space-between;
61
+ padding: 1rem;
62
+ border-radius: h.$border-radius-sm;
63
+ overflow: hidden;
64
+
65
+ i {
66
+ width: 1rem;
67
+ height: 1rem;
68
+ line-height: 1rem;
69
+ }
70
+
71
+ p {
72
+ margin-bottom: 0;
73
+ line-height: 1rem;
74
+ @include h.font-family(h.$font-family-secondary, 1rem, h.$secondary-blue, 400);
75
+ }
76
+
77
+ .toast-wrapper {
78
+ display: flex;
79
+ flex-direction: row;
80
+ gap: 1rem;
81
+ align-items: center;
82
+ }
83
+
84
+ .btn-close {
85
+ background: none;
86
+ opacity: 1;
87
+ display: flex;
88
+ }
89
+
90
+ // Progress bar
91
+ .progress {
92
+ position: absolute;
93
+ width: 100%;
94
+ height: 0.375rem;
95
+ top: 0;
96
+ left: 0;
97
+ border-radius: 0;
98
+ background-color: rgba(h.$secondary-dark, 5%);
99
+
100
+ .progress-bar {
101
+ background-color: h.$ga-brand-light;
102
+ }
103
+ }
104
+
105
+ .uploading-wrapper {
106
+ display: flex;
107
+ flex-direction: row;
108
+ gap: 1rem;
109
+ min-height: 2.375rem;
110
+ align-items: center;
111
+
112
+ .fa-spin {
113
+ color: h.$ga-brand-light;
114
+ font-size: 1rem;
115
+ animation-duration: h.$spinner-duration;
116
+ }
117
+
118
+ .fa-circle-check {
119
+ color: h.$success;
120
+ }
121
+
122
+ .progress-percentage {
123
+ color: h.$secondary-dark;
124
+ font-weight: 700;
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,56 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ // Forward
5
+ @forward '../animations/fadeCopyFromLeft';
6
+
7
+
8
+ .campaign-id {
9
+ padding: 0.1em 0.2em;
10
+ border-radius: h.$border-radius-xs;
11
+ position: relative;
12
+ display: flex;
13
+ justify-content: center;
14
+ color: h.$grey-dark;
15
+ cursor: pointer;
16
+ @include h.transition(color background-color, 0.1s, ease-in-out);
17
+
18
+ &:hover {
19
+ background-color: rgba(h.$ga-brand-dark, 0.1);
20
+ color: h.$secondary-dark;
21
+
22
+ &::after {
23
+ content: attr(data-copy);
24
+ font-weight: 700;
25
+ font-size: 0.7rem;
26
+ position: absolute;
27
+ top: 50%;
28
+ text-align: center;
29
+ display: inline-block;
30
+ white-space: nowrap;
31
+ background-color: rgba(h.$secondary-dark, 0.8);
32
+ color: h.$white;
33
+ padding: 0.1em 0.5em;
34
+ line-height: 1.618em;
35
+ border-radius: h.$border-radius-xs;
36
+ animation: fadeCopyFromLeft 0.2s ease-out forwards;
37
+ @include h.shadow(1, h.$secondary-dark, y);
38
+ }
39
+ }
40
+
41
+ &.copied {
42
+ &::after {
43
+ color: h.$safeSuccess;
44
+ background-color: h.$success-bg;
45
+ @include h.transition(background-color color width, 0.1s, ease);
46
+ }
47
+ }
48
+
49
+ &.error {
50
+ &::after {
51
+ color: h.$white;
52
+ background-color: h.$error;
53
+ @include h.transition(background-color color width, 0.1s, ease);
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,7 @@
1
+ img {
2
+ &.not-found {
3
+ max-width: 250px;
4
+ width: 100%;
5
+ height: auto;
6
+ }
7
+ }
@@ -0,0 +1,10 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ .id {
5
+ margin-bottom: 0.5rem;
6
+
7
+ h4 {
8
+ color: h.$grey-dark;
9
+ }
10
+ }
File without changes
@@ -0,0 +1,9 @@
1
+ // Abstracts
2
+ @use 'abstracts/helpers';
3
+
4
+ // Base
5
+ @use 'base/base';
6
+ @use 'base/typography';
7
+
8
+ // Import Bootstrap and its default variables
9
+ //@use '~bootstrap/scss/bootstrap';
@@ -0,0 +1,39 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ // Forward
5
+ @forward '../animations/aurora';
6
+
7
+ .aurora {
8
+ position: absolute;
9
+ width: 100%;
10
+ height: 100%;
11
+ top: 0;
12
+
13
+ &.outer {
14
+ background: linear-gradient(
15
+ 30deg,
16
+ lighten(h.$ga-brand-light, 30%) 0%,
17
+ lighten(h.$secondary-violet, 30%) 50%,
18
+ lighten(h.$secondary-blue, 30%) 100%
19
+ );
20
+ background-size: 200%;
21
+
22
+ @include h.respond-to(h.$md) {
23
+ animation: aurora 7s infinite;
24
+ }
25
+ }
26
+
27
+ &.inner {
28
+ background: radial-gradient(rgba(h.$white, 0), rgba(h.$white, 0.15));
29
+ background-size: 200%;
30
+
31
+ @include h.respond-to(h.$md) {
32
+ animation: aurora 5s infinite;
33
+ }
34
+ }
35
+
36
+ &.overlay {
37
+ background: linear-gradient(180deg, h.$white 0%, transparent 30%);
38
+ }
39
+ }
@@ -0,0 +1,65 @@
1
+ // Use
2
+ @use '../abstracts/helpers' as h;
3
+
4
+ // Forward
5
+ @forward 'aurora';
6
+ @forward '../animations/shake';
7
+ @forward '../animations/showIn';
8
+
9
+ .authentication {
10
+ text-align: center;
11
+ display: flex;
12
+ align-items: center;
13
+ height: 100vh;
14
+
15
+ .sign-in {
16
+ width: 100%;
17
+ max-width: 90vw;
18
+
19
+ @include h.respond-to(h.$md){
20
+ max-width: 400px;
21
+ }
22
+
23
+ padding: 2rem;
24
+ margin: auto;
25
+ border-radius: h.$border-radius-md;
26
+ background-color: h.$white;
27
+ box-shadow: 0 14px 28px rgba(h.$ga-brand-midtone,0.25), 0 10px 10px rgba(h.$ga-brand-light,0.22);
28
+ z-index: 1;
29
+
30
+ .login-header {
31
+ display: flex;
32
+ width: 100%;
33
+ justify-content: space-around;
34
+ margin-bottom: 2rem;
35
+
36
+ .ga-logo {
37
+ max-width: 163px;
38
+ width: 100%;
39
+ height: auto;
40
+ }
41
+ }
42
+
43
+ .login-body {
44
+ text-align: left;
45
+
46
+ h3 {
47
+ margin-bottom: 2rem;
48
+ }
49
+ }
50
+
51
+ &.shake {
52
+ animation: shakeIt 0.82s cubic-bezier(.36,.07,.19,.97) both;
53
+ }
54
+
55
+ .processing {
56
+ display: flex;
57
+ justify-content: center;
58
+ gap: 1rem;
59
+ }
60
+ }
61
+
62
+ .showIn {
63
+ animation: showIn 0.25s ease-in;
64
+ }
65
+ }