special-forms 3.2.2 → 4.0.1

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 (34) hide show
  1. package/esm2020/lib/components/special-autocomplete/special-autocomplete.component.mjs +5 -5
  2. package/esm2020/lib/components/special-checkbox/special-checkbox.component.mjs +5 -5
  3. package/esm2020/lib/components/special-checkbox/special-checkbox.interface.mjs +1 -1
  4. package/esm2020/lib/components/special-datepicker/special-datepicker.component.mjs +5 -5
  5. package/esm2020/lib/components/special-dropdown/special-dropdown.component.mjs +5 -5
  6. package/esm2020/lib/components/special-form/special-form.component.mjs +12 -12
  7. package/esm2020/lib/components/special-form/special-form.module.mjs +5 -5
  8. package/esm2020/lib/components/special-input/special-input.component.mjs +5 -5
  9. package/esm2020/lib/components/special-label/special-label.component.mjs +5 -5
  10. package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +5 -5
  11. package/esm2020/lib/components/special-richtext/special-richtext.component.mjs +5 -5
  12. package/esm2020/lib/components/special-text-area/special-text-area.component.mjs +5 -5
  13. package/esm2020/lib/components/special-upload/special-upload.component.mjs +14 -12
  14. package/esm2020/lib/components/special-upload/special-upload.interface.mjs +1 -1
  15. package/esm2020/lib/core/interfaces/form.interfaces.mjs +1 -1
  16. package/esm2020/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +3 -3
  17. package/esm2020/lib/core/pipes/controls-list-pipe/controls-list.pipe.module.mjs +4 -4
  18. package/esm2020/lib/core/pipes/error-message-pipe/error.pipe.mjs +3 -3
  19. package/esm2020/lib/core/pipes/error-message-pipe/error.pipe.module.mjs +4 -4
  20. package/esm2020/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +3 -3
  21. package/esm2020/lib/core/pipes/text-by-function/text-by-function.pipe.module.mjs +4 -4
  22. package/esm2020/lib/core/services/special-form-builder/special-form-builder.service.mjs +3 -3
  23. package/fesm2015/special-forms.mjs +88 -85
  24. package/fesm2015/special-forms.mjs.map +1 -1
  25. package/fesm2020/special-forms.mjs +87 -85
  26. package/fesm2020/special-forms.mjs.map +1 -1
  27. package/lib/components/special-checkbox/special-checkbox.interface.d.ts +2 -0
  28. package/lib/components/special-upload/special-upload.component.d.ts +3 -3
  29. package/lib/components/special-upload/special-upload.interface.d.ts +1 -0
  30. package/lib/core/interfaces/form.interfaces.d.ts +2 -0
  31. package/package.json +4 -7
  32. package/src/lib/assets/final.scss +2 -0
  33. package/src/lib/assets/styles-config.scss +11 -7
  34. package/src/lib/assets/tailwind-final.scss +577 -0
@@ -1,8 +1,10 @@
1
+ import { ThemePalette } from '@angular/material/core';
1
2
  import { EControlTypes } from '../../core/aux-data/control-types.enum';
2
3
  import { IFieldData } from '../../core/interfaces/field-basics.interfaces';
3
4
  export type ICheckboxSettings = {
4
5
  labelPosition?: 'before' | 'after';
5
6
  indeterminate?: boolean;
7
+ color?: ThemePalette;
6
8
  };
7
9
  export interface ICheckboxField extends IFieldData {
8
10
  settings: ICheckboxSettings;
@@ -1,4 +1,4 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { OnInit } from '@angular/core';
2
2
  import { SpecialFormControl } from '../../core/forms/special-forms';
3
3
  import { IUploadSettings } from './special-upload.interface';
4
4
  import { DomSanitizer } from '@angular/platform-browser';
@@ -7,15 +7,15 @@ export declare class SpecialUploadComponent implements OnInit {
7
7
  private sanitizer;
8
8
  control: SpecialFormControl<IUploadSettings>;
9
9
  set controlSetter(control: SpecialFormControl<IUploadSettings>);
10
- onSelect: EventEmitter<any>;
11
10
  previewImages: any[];
12
11
  constructor(sanitizer: DomSanitizer);
13
12
  ngOnInit(): void;
14
13
  onSelectMultiple(event: any): void;
15
14
  onSelectOne(event: any): void;
15
+ private onselectFile;
16
16
  fixFileName(file: File): File;
17
17
  clean(): void;
18
18
  onRemove(file: File): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialUploadComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialUploadComponent, "sp-upload", never, { "controlSetter": "control"; }, { "onSelect": "onSelect"; }, never, never, true, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialUploadComponent, "sp-upload", never, { "controlSetter": "control"; }, {}, never, never, true, never>;
21
21
  }
@@ -3,6 +3,7 @@ import { IFieldData } from '../../core/interfaces/field-basics.interfaces';
3
3
  export type IUploadSettings = {
4
4
  accept?: string;
5
5
  multiple?: boolean;
6
+ onSelectFile?: (value: any) => void;
6
7
  };
7
8
  export interface IUploadField extends IFieldData {
8
9
  settings: IUploadSettings;
@@ -21,6 +21,8 @@ export interface IFormField extends IFieldData {
21
21
  type: EControlTypes.form;
22
22
  }
23
23
  export type IArraySettings = {
24
+ addActionLabel?: string;
25
+ removeActionLabel?: string;
24
26
  formFields: IFormStructure;
25
27
  withFormHeader?: boolean;
26
28
  withActionButtons?: boolean;
package/package.json CHANGED
@@ -1,17 +1,14 @@
1
1
  {
2
2
  "name": "special-forms",
3
- "version": "3.2.2",
3
+ "version": "4.0.1",
4
4
  "peerDependencies": {
5
- "@angular/common": "^15.1.0",
6
- "@angular/core": "^15.1.0",
7
- "tailwindcss": "^3.2.7",
8
- "autoprefixer": "^10.4.13",
9
- "postcss": "^8.4.21",
5
+ "@angular/common": "^15.2.7",
6
+ "@angular/core": "^15.2.7",
10
7
  "@ngneat/input-mask": "6.1.0",
11
8
  "inputmask": "^5.0.7",
12
9
  "ngx-dropzone": "^3.1.0",
13
10
  "ngx-editor": "^15.2.0",
14
- "@angular/material": "15.1.5"
11
+ "@angular/material": "15.2.7"
15
12
  },
16
13
  "dependencies": {
17
14
  "tslib": "^2.3.0"
@@ -0,0 +1,2 @@
1
+ @import "./styles-config.scss";
2
+ @import "./tailwind-final.scss";
@@ -1,14 +1,18 @@
1
- @mixin dark-theme-config($back-color, $dark-text) {
1
+ @mixin dark-theme-config($back-color, $dark-text, $back-color-over) {
2
2
  .mat-mdc-autocomplete-panel,
3
3
  .mat-mdc-menu-content,
4
4
  .mat-mdc-select-panel,
5
- .mat-datepicker-content,
6
- .special_upload__dropzone,
7
- .mat-mdc-autocomplete-panel {
8
- background: $back-color;
5
+ .mat-datepicker-content {
6
+ background: $back-color-over !important;
9
7
  }
10
8
 
11
- .special_upload__dropzone {
12
- border-color: $dark-text;
9
+ .mat-mdc-text-field-wrapper,
10
+ .special-upload__dropzone {
11
+ background: $back-color !important;
12
+ }
13
+
14
+ .special-upload__dropzone {
15
+ border-color: $dark-text !important;
16
+ color: $dark-text !important;
13
17
  }
14
18
  }
@@ -0,0 +1,577 @@
1
+ *, ::before, ::after {
2
+ --tw-border-spacing-x: 0;
3
+ --tw-border-spacing-y: 0;
4
+ --tw-translate-x: 0;
5
+ --tw-translate-y: 0;
6
+ --tw-rotate: 0;
7
+ --tw-skew-x: 0;
8
+ --tw-skew-y: 0;
9
+ --tw-scale-x: 1;
10
+ --tw-scale-y: 1;
11
+ --tw-pan-x: ;
12
+ --tw-pan-y: ;
13
+ --tw-pinch-zoom: ;
14
+ --tw-scroll-snap-strictness: proximity;
15
+ --tw-ordinal: ;
16
+ --tw-slashed-zero: ;
17
+ --tw-numeric-figure: ;
18
+ --tw-numeric-spacing: ;
19
+ --tw-numeric-fraction: ;
20
+ --tw-ring-inset: ;
21
+ --tw-ring-offset-width: 0px;
22
+ --tw-ring-offset-color: #fff;
23
+ --tw-ring-color: rgb(59 130 246 / 0.5);
24
+ --tw-ring-offset-shadow: 0 0 #0000;
25
+ --tw-ring-shadow: 0 0 #0000;
26
+ --tw-shadow: 0 0 #0000;
27
+ --tw-shadow-colored: 0 0 #0000;
28
+ --tw-blur: ;
29
+ --tw-brightness: ;
30
+ --tw-contrast: ;
31
+ --tw-grayscale: ;
32
+ --tw-hue-rotate: ;
33
+ --tw-invert: ;
34
+ --tw-saturate: ;
35
+ --tw-sepia: ;
36
+ --tw-drop-shadow: ;
37
+ --tw-backdrop-blur: ;
38
+ --tw-backdrop-brightness: ;
39
+ --tw-backdrop-contrast: ;
40
+ --tw-backdrop-grayscale: ;
41
+ --tw-backdrop-hue-rotate: ;
42
+ --tw-backdrop-invert: ;
43
+ --tw-backdrop-opacity: ;
44
+ --tw-backdrop-saturate: ;
45
+ --tw-backdrop-sepia:
46
+ }
47
+
48
+ ::backdrop {
49
+ --tw-border-spacing-x: 0;
50
+ --tw-border-spacing-y: 0;
51
+ --tw-translate-x: 0;
52
+ --tw-translate-y: 0;
53
+ --tw-rotate: 0;
54
+ --tw-skew-x: 0;
55
+ --tw-skew-y: 0;
56
+ --tw-scale-x: 1;
57
+ --tw-scale-y: 1;
58
+ --tw-pan-x: ;
59
+ --tw-pan-y: ;
60
+ --tw-pinch-zoom: ;
61
+ --tw-scroll-snap-strictness: proximity;
62
+ --tw-ordinal: ;
63
+ --tw-slashed-zero: ;
64
+ --tw-numeric-figure: ;
65
+ --tw-numeric-spacing: ;
66
+ --tw-numeric-fraction: ;
67
+ --tw-ring-inset: ;
68
+ --tw-ring-offset-width: 0px;
69
+ --tw-ring-offset-color: #fff;
70
+ --tw-ring-color: rgb(59 130 246 / 0.5);
71
+ --tw-ring-offset-shadow: 0 0 #0000;
72
+ --tw-ring-shadow: 0 0 #0000;
73
+ --tw-shadow: 0 0 #0000;
74
+ --tw-shadow-colored: 0 0 #0000;
75
+ --tw-blur: ;
76
+ --tw-brightness: ;
77
+ --tw-contrast: ;
78
+ --tw-grayscale: ;
79
+ --tw-hue-rotate: ;
80
+ --tw-invert: ;
81
+ --tw-saturate: ;
82
+ --tw-sepia: ;
83
+ --tw-drop-shadow: ;
84
+ --tw-backdrop-blur: ;
85
+ --tw-backdrop-brightness: ;
86
+ --tw-backdrop-contrast: ;
87
+ --tw-backdrop-grayscale: ;
88
+ --tw-backdrop-hue-rotate: ;
89
+ --tw-backdrop-invert: ;
90
+ --tw-backdrop-opacity: ;
91
+ --tw-backdrop-saturate: ;
92
+ --tw-backdrop-sepia:
93
+ }
94
+
95
+ .container {
96
+ width: 100%
97
+ }
98
+
99
+ @media (min-width: 640px) {
100
+ .container {
101
+ max-width: 640px
102
+ }
103
+ }
104
+
105
+ @media (min-width: 768px) {
106
+ .container {
107
+ max-width: 768px
108
+ }
109
+ }
110
+
111
+ @media (min-width: 1024px) {
112
+ .container {
113
+ max-width: 1024px
114
+ }
115
+ }
116
+
117
+ @media (min-width: 1280px) {
118
+ .container {
119
+ max-width: 1280px
120
+ }
121
+ }
122
+
123
+ @media (min-width: 1536px) {
124
+ .container {
125
+ max-width: 1536px
126
+ }
127
+ }
128
+
129
+ .col-span-12 {
130
+ grid-column: span 12 / span 12
131
+ }
132
+
133
+ .col-start-1 {
134
+ grid-column-start: 1
135
+ }
136
+
137
+ .col-start-10 {
138
+ grid-column-start: 10
139
+ }
140
+
141
+ .col-start-11 {
142
+ grid-column-start: 11
143
+ }
144
+
145
+ .col-start-12 {
146
+ grid-column-start: 12
147
+ }
148
+
149
+ .col-start-13 {
150
+ grid-column-start: 13
151
+ }
152
+
153
+ .col-start-14 {
154
+ grid-column-start: 14
155
+ }
156
+
157
+ .col-start-15 {
158
+ grid-column-start: 15
159
+ }
160
+
161
+ .col-start-16 {
162
+ grid-column-start: 16
163
+ }
164
+
165
+ .col-start-2 {
166
+ grid-column-start: 2
167
+ }
168
+
169
+ .col-start-3 {
170
+ grid-column-start: 3
171
+ }
172
+
173
+ .col-start-4 {
174
+ grid-column-start: 4
175
+ }
176
+
177
+ .col-start-5 {
178
+ grid-column-start: 5
179
+ }
180
+
181
+ .col-start-6 {
182
+ grid-column-start: 6
183
+ }
184
+
185
+ .col-start-7 {
186
+ grid-column-start: 7
187
+ }
188
+
189
+ .col-start-8 {
190
+ grid-column-start: 8
191
+ }
192
+
193
+ .col-start-9 {
194
+ grid-column-start: 9
195
+ }
196
+
197
+ .col-start-auto {
198
+ grid-column-start: auto
199
+ }
200
+
201
+ .col-end-1 {
202
+ grid-column-end: 1
203
+ }
204
+
205
+ .col-end-10 {
206
+ grid-column-end: 10
207
+ }
208
+
209
+ .col-end-11 {
210
+ grid-column-end: 11
211
+ }
212
+
213
+ .col-end-12 {
214
+ grid-column-end: 12
215
+ }
216
+
217
+ .col-end-13 {
218
+ grid-column-end: 13
219
+ }
220
+
221
+ .col-end-14 {
222
+ grid-column-end: 14
223
+ }
224
+
225
+ .col-end-15 {
226
+ grid-column-end: 15
227
+ }
228
+
229
+ .col-end-16 {
230
+ grid-column-end: 16
231
+ }
232
+
233
+ .col-end-2 {
234
+ grid-column-end: 2
235
+ }
236
+
237
+ .col-end-3 {
238
+ grid-column-end: 3
239
+ }
240
+
241
+ .col-end-4 {
242
+ grid-column-end: 4
243
+ }
244
+
245
+ .col-end-5 {
246
+ grid-column-end: 5
247
+ }
248
+
249
+ .col-end-6 {
250
+ grid-column-end: 6
251
+ }
252
+
253
+ .col-end-7 {
254
+ grid-column-end: 7
255
+ }
256
+
257
+ .col-end-8 {
258
+ grid-column-end: 8
259
+ }
260
+
261
+ .col-end-9 {
262
+ grid-column-end: 9
263
+ }
264
+
265
+ .col-end-auto {
266
+ grid-column-end: auto
267
+ }
268
+
269
+ .mx-1 {
270
+ margin-left: 0.25rem;
271
+ margin-right: 0.25rem
272
+ }
273
+
274
+ .my-auto {
275
+ margin-top: auto;
276
+ margin-bottom: auto
277
+ }
278
+
279
+ .mb-3 {
280
+ margin-bottom: 0.75rem
281
+ }
282
+
283
+ .ml-auto {
284
+ margin-left: auto
285
+ }
286
+
287
+ .mt-2 {
288
+ margin-top: 0.5rem
289
+ }
290
+
291
+ .mt-4 {
292
+ margin-top: 1rem
293
+ }
294
+
295
+ .box-border {
296
+ box-sizing: border-box
297
+ }
298
+
299
+ .block {
300
+ display: block
301
+ }
302
+
303
+ .flex {
304
+ display: flex
305
+ }
306
+
307
+ .grid {
308
+ display: grid
309
+ }
310
+
311
+ .hidden {
312
+ display: none
313
+ }
314
+
315
+ .w-8 {
316
+ width: 2rem
317
+ }
318
+
319
+ .w-full {
320
+ width: 100%
321
+ }
322
+
323
+ .transform {
324
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
325
+ }
326
+
327
+ .cursor-pointer {
328
+ cursor: pointer
329
+ }
330
+
331
+ .grid-cols-1 {
332
+ grid-template-columns: repeat(1, minmax(0, 1fr))
333
+ }
334
+
335
+ .grid-cols-10 {
336
+ grid-template-columns: repeat(10, minmax(0, 1fr))
337
+ }
338
+
339
+ .grid-cols-11 {
340
+ grid-template-columns: repeat(11, minmax(0, 1fr))
341
+ }
342
+
343
+ .grid-cols-12 {
344
+ grid-template-columns: repeat(12, minmax(0, 1fr))
345
+ }
346
+
347
+ .grid-cols-13 {
348
+ grid-template-columns: repeat(13, minmax(0, 1fr))
349
+ }
350
+
351
+ .grid-cols-14 {
352
+ grid-template-columns: repeat(14, minmax(0, 1fr))
353
+ }
354
+
355
+ .grid-cols-15 {
356
+ grid-template-columns: repeat(15, minmax(0, 1fr))
357
+ }
358
+
359
+ .grid-cols-16 {
360
+ grid-template-columns: repeat(16, minmax(0, 1fr))
361
+ }
362
+
363
+ .grid-cols-2 {
364
+ grid-template-columns: repeat(2, minmax(0, 1fr))
365
+ }
366
+
367
+ .grid-cols-3 {
368
+ grid-template-columns: repeat(3, minmax(0, 1fr))
369
+ }
370
+
371
+ .grid-cols-4 {
372
+ grid-template-columns: repeat(4, minmax(0, 1fr))
373
+ }
374
+
375
+ .grid-cols-5 {
376
+ grid-template-columns: repeat(5, minmax(0, 1fr))
377
+ }
378
+
379
+ .grid-cols-6 {
380
+ grid-template-columns: repeat(6, minmax(0, 1fr))
381
+ }
382
+
383
+ .grid-cols-7 {
384
+ grid-template-columns: repeat(7, minmax(0, 1fr))
385
+ }
386
+
387
+ .grid-cols-8 {
388
+ grid-template-columns: repeat(8, minmax(0, 1fr))
389
+ }
390
+
391
+ .grid-cols-9 {
392
+ grid-template-columns: repeat(9, minmax(0, 1fr))
393
+ }
394
+
395
+ .grid-cols-none {
396
+ grid-template-columns: none
397
+ }
398
+
399
+ .flex-col {
400
+ flex-direction: column
401
+ }
402
+
403
+ .flex-wrap {
404
+ flex-wrap: wrap
405
+ }
406
+
407
+ .items-center {
408
+ align-items: center
409
+ }
410
+
411
+ .justify-end {
412
+ justify-content: flex-end
413
+ }
414
+
415
+ .gap-4 {
416
+ gap: 1rem
417
+ }
418
+
419
+ .divide-x-0 > :not([hidden]) ~ :not([hidden]) {
420
+ --tw-divide-x-reverse: 0;
421
+ border-right-width: calc(0px * var(--tw-divide-x-reverse));
422
+ border-left-width: calc(0px * calc(1 - var(--tw-divide-x-reverse)))
423
+ }
424
+
425
+ .divide-y > :not([hidden]) ~ :not([hidden]) {
426
+ --tw-divide-y-reverse: 0;
427
+ border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
428
+ border-bottom-width: calc(1px * var(--tw-divide-y-reverse))
429
+ }
430
+
431
+ .divide-solid > :not([hidden]) ~ :not([hidden]) {
432
+ border-style: solid
433
+ }
434
+
435
+ .divide-slate-200 > :not([hidden]) ~ :not([hidden]) {
436
+ --tw-divide-opacity: 1;
437
+ border-color: rgb(226 232 240 / var(--tw-divide-opacity))
438
+ }
439
+
440
+ .overflow-y-auto {
441
+ overflow-y: auto
442
+ }
443
+
444
+ .border {
445
+ border-width: 1px
446
+ }
447
+
448
+ .border-solid {
449
+ border-style: solid
450
+ }
451
+
452
+ .border-slate-200 {
453
+ --tw-border-opacity: 1;
454
+ border-color: rgb(226 232 240 / var(--tw-border-opacity))
455
+ }
456
+
457
+ .bg-red-500 {
458
+ --tw-bg-opacity: 1;
459
+ background-color: rgb(239 68 68 / var(--tw-bg-opacity))
460
+ }
461
+
462
+ .object-contain {
463
+ -o-object-fit: contain;
464
+ object-fit: contain
465
+ }
466
+
467
+ .p-2 {
468
+ padding: 0.5rem
469
+ }
470
+
471
+ .p-3 {
472
+ padding: 0.75rem
473
+ }
474
+
475
+ .p-5 {
476
+ padding: 1.25rem
477
+ }
478
+
479
+ .px-2 {
480
+ padding-left: 0.5rem;
481
+ padding-right: 0.5rem
482
+ }
483
+
484
+ .py-3 {
485
+ padding-top: 0.75rem;
486
+ padding-bottom: 0.75rem
487
+ }
488
+
489
+ .pb-5 {
490
+ padding-bottom: 1.25rem
491
+ }
492
+
493
+ .pl-2 {
494
+ padding-left: 0.5rem
495
+ }
496
+
497
+ .pr-2 {
498
+ padding-right: 0.5rem
499
+ }
500
+
501
+ .pt-5 {
502
+ padding-top: 1.25rem
503
+ }
504
+
505
+ .text-base {
506
+ font-size: 1rem;
507
+ line-height: 1.5rem
508
+ }
509
+
510
+ .font-bold {
511
+ font-weight: 700
512
+ }
513
+
514
+ .italic {
515
+ font-style: italic
516
+ }
517
+
518
+ .text-blue-600 {
519
+ --tw-text-opacity: 1;
520
+ color: rgb(37 99 235 / var(--tw-text-opacity))
521
+ }
522
+
523
+ .underline {
524
+ text-decoration-line: underline
525
+ }
526
+
527
+ .outline {
528
+ outline-style: solid
529
+ }
530
+
531
+ .blur {
532
+ --tw-blur: blur(8px);
533
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
534
+ }
535
+
536
+ .filter {
537
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
538
+ }
539
+
540
+ .hover\:text-blue-700:hover {
541
+ --tw-text-opacity: 1;
542
+ color: rgb(29 78 216 / var(--tw-text-opacity))
543
+ }
544
+
545
+ @media (min-width: 768px) {
546
+ .md\:col-span-4 {
547
+ grid-column: span 4 / span 4
548
+ }
549
+
550
+ .md\:col-span-6 {
551
+ grid-column: span 6 / span 6
552
+ }
553
+
554
+ .md\:col-start-13 {
555
+ grid-column-start: 13
556
+ }
557
+
558
+ .md\:col-end-16 {
559
+ grid-column-end: 16
560
+ }
561
+
562
+ .md\:m-auto {
563
+ margin: auto
564
+ }
565
+
566
+ .md\:w-1\/4 {
567
+ width: 25%
568
+ }
569
+
570
+ .md\:w-2\/4 {
571
+ width: 50%
572
+ }
573
+
574
+ .md\:grid-cols-15 {
575
+ grid-template-columns: repeat(15, minmax(0, 1fr))
576
+ }
577
+ }