@woodylab/payload 0.0.119 → 0.0.121

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 (78) hide show
  1. package/dist/config/fieldCss.js +445 -65
  2. package/dist/config/fields/tailwindField.d.ts +3 -0
  3. package/dist/config/fields/tailwindField.js +26 -0
  4. package/dist/config/fields/tailwindFieldSelectors.d.ts +179 -1
  5. package/dist/config/fields/tailwindFieldSelectors.js +1167 -1
  6. package/dist/config/fields/tailwindSelectorVariants.d.ts +4 -0
  7. package/dist/config/fields/tailwindSelectorVariants.js +69 -0
  8. package/dist/config/index.cjs.js +1 -1
  9. package/dist/config/index.cjs.js.map +1 -1
  10. package/dist/config/index.d.ts +2 -0
  11. package/dist/config/index.esm.js +1 -1
  12. package/dist/config/index.esm.js.map +1 -1
  13. package/dist/config/index.js +3 -0
  14. package/dist/config/utils/getValueFromClassNameField.js +23 -14
  15. package/dist/generateCssVars.js +50 -11
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.cjs.js.map +1 -1
  18. package/dist/index.esm.js +1 -1
  19. package/dist/index.esm.js.map +1 -1
  20. package/dist/utils/generateCssVars.d.ts +10 -0
  21. package/dist/utils/generateCssVars.js +110 -0
  22. package/dist/utils/index.cjs.js +2 -0
  23. package/dist/utils/index.cjs.js.map +1 -0
  24. package/dist/utils/index.d.ts +1 -0
  25. package/dist/utils/index.esm.js +2 -0
  26. package/dist/utils/index.esm.js.map +1 -0
  27. package/dist/utils/index.js +1 -0
  28. package/package.json +1 -1
  29. package/dist/config/fields/fieldAlignContent.d.ts +0 -2
  30. package/dist/config/fields/fieldAlignContent.js +0 -19
  31. package/dist/config/fields/fieldAlignItems.d.ts +0 -2
  32. package/dist/config/fields/fieldAlignItems.js +0 -18
  33. package/dist/config/fields/fieldAspectRatio.d.ts +0 -2
  34. package/dist/config/fields/fieldAspectRatio.js +0 -18
  35. package/dist/config/fields/fieldDisplay.d.ts +0 -2
  36. package/dist/config/fields/fieldDisplay.js +0 -15
  37. package/dist/config/fields/fieldFlexBasis.d.ts +0 -2
  38. package/dist/config/fields/fieldFlexBasis.js +0 -19
  39. package/dist/config/fields/fieldFlexDirection.d.ts +0 -2
  40. package/dist/config/fields/fieldFlexDirection.js +0 -17
  41. package/dist/config/fields/fieldFlexGap.d.ts +0 -2
  42. package/dist/config/fields/fieldFlexGap.js +0 -22
  43. package/dist/config/fields/fieldFlexGrow.d.ts +0 -2
  44. package/dist/config/fields/fieldFlexGrow.js +0 -16
  45. package/dist/config/fields/fieldFlexShrink.d.ts +0 -2
  46. package/dist/config/fields/fieldFlexShrink.js +0 -16
  47. package/dist/config/fields/fieldFlexWrap.d.ts +0 -2
  48. package/dist/config/fields/fieldFlexWrap.js +0 -16
  49. package/dist/config/fields/fieldHeight.d.ts +0 -2
  50. package/dist/config/fields/fieldHeight.js +0 -19
  51. package/dist/config/fields/fieldIsolation.d.ts +0 -2
  52. package/dist/config/fields/fieldIsolation.js +0 -17
  53. package/dist/config/fields/fieldJustifyContent.d.ts +0 -2
  54. package/dist/config/fields/fieldJustifyContent.js +0 -22
  55. package/dist/config/fields/fieldMargins.d.ts +0 -2
  56. package/dist/config/fields/fieldMargins.js +0 -66
  57. package/dist/config/fields/fieldMaxHeight.d.ts +0 -2
  58. package/dist/config/fields/fieldMaxHeight.js +0 -20
  59. package/dist/config/fields/fieldMaxWidth.d.ts +0 -2
  60. package/dist/config/fields/fieldMaxWidth.js +0 -20
  61. package/dist/config/fields/fieldMinHeight.d.ts +0 -2
  62. package/dist/config/fields/fieldMinHeight.js +0 -20
  63. package/dist/config/fields/fieldMinWidth.d.ts +0 -2
  64. package/dist/config/fields/fieldMinWidth.js +0 -20
  65. package/dist/config/fields/fieldOrder.d.ts +0 -2
  66. package/dist/config/fields/fieldOrder.js +0 -25
  67. package/dist/config/fields/fieldOverflow.d.ts +0 -2
  68. package/dist/config/fields/fieldOverflow.js +0 -20
  69. package/dist/config/fields/fieldPaddings.d.ts +0 -2
  70. package/dist/config/fields/fieldPaddings.js +0 -64
  71. package/dist/config/fields/fieldPosition.d.ts +0 -2
  72. package/dist/config/fields/fieldPosition.js +0 -20
  73. package/dist/config/fields/fieldWidth.d.ts +0 -2
  74. package/dist/config/fields/fieldWidth.js +0 -22
  75. package/dist/config/fields/fieldZIndex.d.ts +0 -2
  76. package/dist/config/fields/fieldZIndex.js +0 -27
  77. package/dist/config/utils/getNumberValueFromClassNameString.d.ts +0 -2
  78. package/dist/config/utils/getNumberValueFromClassNameString.js +0 -15
@@ -1,28 +1,5 @@
1
- import { fieldMargins } from './fields/fieldMargins';
2
- import { fieldPaddings } from './fields/fieldPaddings';
3
- import { fieldWidth } from './fields/fieldWidth';
4
- import { fieldHeight } from './fields/fieldHeight';
5
- import { fieldMinWidth } from './fields/fieldMinWidth';
6
- import { fieldMaxWidth } from './fields/fieldMaxWidth';
7
- import { fieldMinHeight } from './fields/fieldMinHeight';
8
- import { fieldMaxHeight } from './fields/fieldMaxHeight';
9
- import { fieldAspectRatio } from './fields/fieldAspectRatio';
10
- import { fieldOverflow } from './fields/fieldOverflow';
11
- import { fieldDisplay } from './fields/fieldDisplay';
12
- import { fieldPosition } from './fields/fieldPosition';
13
- import { fieldZIndex } from './fields/fieldZIndex';
14
- import { fieldIsolation } from './fields/fieldIsolation';
15
- import { fieldFlexDirection } from './fields/fieldFlexDirection';
16
- import { fieldFlexWrap } from './fields/fieldFlexWrap';
17
- import { fieldJustifyContent } from './fields/fieldJustifyContent';
18
- import { fieldAlignItems } from './fields/fieldAlignItems';
19
- import { fieldAlignContent } from './fields/fieldAlignContent';
20
- import { fieldFlexGap } from './fields/fieldFlexGap';
21
- import { fieldFlexGrow } from './fields/fieldFlexGrow';
22
- import { fieldFlexShrink } from './fields/fieldFlexShrink';
23
- import { fieldFlexBasis } from './fields/fieldFlexBasis';
24
- import { fieldOrder } from './fields/fieldOrder';
25
- const pureSelectors = ['display', 'position', 'isolation', 'flexDirection', 'flexWrap'];
1
+ import { tailwindField } from './fields/tailwindField';
2
+ import { tailwindSelectorVariants } from './fields/tailwindSelectorVariants';
26
3
  // #TODO cambiare gestione recupero valore campi se pureSelectors o meno D: MALEDIZIONE!!!
27
4
  //#TODO aggiungere elenco campi e relativi valori per permettere recupero e binding dopo recupero valori form.
28
5
  export const concatCssFields = (args) => {
@@ -38,11 +15,7 @@ export const concatCssFields = (args) => {
38
15
  return;
39
16
  if (typeof val === 'string' && val.trim() === '')
40
17
  return;
41
- if (pureSelectors.includes(key)) {
42
- classes.push(val);
43
- return;
44
- }
45
- classes.push(`${key}-${val}`);
18
+ classes.push(val);
46
19
  });
47
20
  return classes.join(' ');
48
21
  };
@@ -68,61 +41,468 @@ export const fieldCss = () => {
68
41
  label: 'Box',
69
42
  fields: [
70
43
  {
71
- type: 'row',
72
- fields: [
73
- fieldMargins,
74
- fieldPaddings,
75
- fieldWidth,
76
- fieldMinWidth,
77
- fieldMaxWidth,
78
- fieldHeight,
79
- fieldMinHeight,
80
- fieldMaxHeight,
81
- fieldAspectRatio,
82
- ],
44
+ type: 'tabs',
45
+ tabs: tailwindSelectorVariants.map((bp) => {
46
+ return {
47
+ label: bp.label,
48
+ fields: [
49
+ {
50
+ type: 'row',
51
+ fields: [
52
+ tailwindField('width', bp.value),
53
+ tailwindField('minWidth', bp.value),
54
+ tailwindField('maxWidth', bp.value),
55
+ tailwindField('height', bp.value),
56
+ tailwindField('minHeight', bp.value),
57
+ tailwindField('maxHeight', bp.value),
58
+ tailwindField('aspectRatio', bp.value),
59
+ {
60
+ type: 'collapsible',
61
+ label: 'Margins',
62
+ admin: {
63
+ width: '50%',
64
+ },
65
+ fields: [
66
+ tailwindField('margin', bp.value),
67
+ tailwindField('marginX', bp.value),
68
+ tailwindField('marginY', bp.value),
69
+ tailwindField('marginTop', bp.value),
70
+ tailwindField('marginEnd', bp.value),
71
+ tailwindField('marginBottom', bp.value),
72
+ tailwindField('marginStart', bp.value),
73
+ ],
74
+ },
75
+ {
76
+ type: 'collapsible',
77
+ label: 'Paddings',
78
+ admin: {
79
+ width: '50%',
80
+ },
81
+ fields: [
82
+ tailwindField('padding', bp.value),
83
+ tailwindField('paddingX', bp.value),
84
+ tailwindField('paddingY', bp.value),
85
+ tailwindField('paddingTop', bp.value),
86
+ tailwindField('paddingEnd', bp.value),
87
+ tailwindField('paddingBottom', bp.value),
88
+ tailwindField('paddingStart', bp.value),
89
+ // # TODO OK funzionalità in aggiunta dei tab
90
+ // GESTIRE LAYOUT DECENTE UNA VOLTA PER TUTTI I BP
91
+ ],
92
+ },
93
+ ],
94
+ },
95
+ ],
96
+ };
97
+ }),
83
98
  },
84
99
  ],
85
100
  },
86
101
  {
87
- label: 'Layout',
102
+ label: 'Display',
88
103
  fields: [
89
104
  {
90
- type: 'row',
91
- fields: [fieldDisplay, fieldPosition, fieldZIndex, fieldOverflow, fieldIsolation],
105
+ type: 'tabs',
106
+ tabs: tailwindSelectorVariants.map((bp) => {
107
+ return {
108
+ label: bp.label,
109
+ fields: [
110
+ {
111
+ type: 'row',
112
+ fields: [
113
+ // BASE DISPLAY
114
+ tailwindField('display', bp.value),
115
+ tailwindField('visibility', bp.value),
116
+ tailwindField('isolation', bp.value),
117
+ // FLOW / OVERFLOW
118
+ tailwindField('overflow', bp.value),
119
+ tailwindField('overflowX', bp.value),
120
+ tailwindField('overflowY', bp.value),
121
+ // FLOAT / CLEAR
122
+ tailwindField('float', bp.value),
123
+ tailwindField('clear', bp.value),
124
+ // FLEX
125
+ tailwindField('flexWrap', bp.value),
126
+ tailwindField('justifyContent', bp.value),
127
+ tailwindField('alignItems', bp.value),
128
+ tailwindField('alignContent', bp.value),
129
+ tailwindField('alignSelf', bp.value),
130
+ tailwindField('flexGrow', bp.value),
131
+ tailwindField('flexShrink', bp.value),
132
+ tailwindField('flexBasis', bp.value),
133
+ tailwindField('order', bp.value),
134
+ tailwindField('gap', bp.value),
135
+ //tailwindField('rowGap', bp.value),
136
+ tailwindField('columnGap', bp.value),
137
+ // GRID
138
+ tailwindField('gridTemplateColumns', bp.value),
139
+ tailwindField('gridTemplateRows', bp.value),
140
+ tailwindField('gridColumn', bp.value),
141
+ tailwindField('gridRow', bp.value),
142
+ tailwindField('gridAutoFlow', bp.value),
143
+ tailwindField('gridAutoColumns', bp.value),
144
+ tailwindField('gridAutoRows', bp.value),
145
+ tailwindField('justifyItems', bp.value),
146
+ tailwindField('justifySelf', bp.value),
147
+ tailwindField('placeItems', bp.value),
148
+ tailwindField('placeContent', bp.value),
149
+ // TABLE
150
+ tailwindField('tableLayout', bp.value),
151
+ tailwindField('captionSide', bp.value),
152
+ // OBJECT / MEDIA
153
+ tailwindField('objectFit', bp.value),
154
+ tailwindField('objectPosition', bp.value),
155
+ // COLUMNS
156
+ tailwindField('columns', bp.value),
157
+ tailwindField('breakBefore', bp.value),
158
+ tailwindField('breakAfter', bp.value),
159
+ tailwindField('breakInside', bp.value),
160
+ ],
161
+ },
162
+ ],
163
+ };
164
+ }),
92
165
  },
93
166
  ],
94
167
  },
95
168
  {
96
- label: 'Flex',
169
+ label: 'Position',
97
170
  fields: [
98
171
  {
99
- type: 'row',
100
- fields: [
101
- fieldFlexDirection,
102
- fieldFlexWrap,
103
- fieldJustifyContent,
104
- fieldAlignItems,
105
- fieldAlignContent,
106
- fieldFlexGap,
107
- fieldFlexGrow,
108
- fieldFlexShrink,
109
- fieldFlexBasis,
110
- fieldOrder,
111
- ],
172
+ type: 'tabs',
173
+ tabs: tailwindSelectorVariants.map((bp) => {
174
+ return {
175
+ label: bp.label,
176
+ fields: [
177
+ {
178
+ type: 'row',
179
+ fields: [
180
+ tailwindField('position', bp.value),
181
+ // inset / offsets
182
+ // #TODO Aggiungere ipotetico campo tailwindNumeric per selezione valore numerico tipo gli offset delle position
183
+ //tailwindField('top', bp.value),
184
+ //tailwindField('right', bp.value),
185
+ //tailwindField('bottom', bp.value),
186
+ //tailwindField('left', bp.value),
187
+ //tailwindField('inset', bp.value),
188
+ //tailwindField('insetX', bp.value),
189
+ //tailwindField('insetY', bp.value),
190
+ // z-index / stacking
191
+ tailwindField('zIndex', bp.value),
192
+ // translate (layout-related movement)
193
+ //tailwindField('translateX', bp.value),
194
+ //tailwindField('translateY', bp.value),
195
+ ],
196
+ },
197
+ ],
198
+ };
199
+ }),
112
200
  },
113
201
  ],
114
202
  },
115
203
  {
116
- label: 'Grid',
117
- fields: [],
204
+ label: 'Typography',
205
+ fields: [
206
+ {
207
+ type: 'tabs',
208
+ tabs: tailwindSelectorVariants.map((bp) => {
209
+ return {
210
+ label: bp.label,
211
+ fields: [
212
+ {
213
+ type: 'row',
214
+ fields: [
215
+ tailwindField('fontFamily', bp.value),
216
+ tailwindField('fontSize', bp.value),
217
+ tailwindField('fontWeight', bp.value),
218
+ tailwindField('fontStyle', bp.value),
219
+ // text layout
220
+ tailwindField('lineHeight', bp.value),
221
+ tailwindField('letterSpacing', bp.value),
222
+ tailwindField('textAlign', bp.value),
223
+ tailwindField('verticalAlign', bp.value),
224
+ // text transform & decoration
225
+ tailwindField('textTransform', bp.value),
226
+ tailwindField('textDecoration', bp.value),
227
+ tailwindField('textDecorationStyle', bp.value),
228
+ tailwindField('textDecorationThickness', bp.value),
229
+ tailwindField('textUnderlineOffset', bp.value),
230
+ // text behavior
231
+ tailwindField('textOverflow', bp.value),
232
+ tailwindField('whiteSpace', bp.value),
233
+ tailwindField('wordBreak', bp.value),
234
+ tailwindField('hyphens', bp.value),
235
+ // list
236
+ tailwindField('listStyleType', bp.value),
237
+ tailwindField('listStylePosition', bp.value),
238
+ ],
239
+ },
240
+ ],
241
+ };
242
+ }),
243
+ },
244
+ ],
118
245
  },
119
246
  {
120
- label: 'Position',
121
- fields: [],
247
+ label: 'Color',
248
+ fields: [
249
+ {
250
+ type: 'tabs',
251
+ tabs: tailwindSelectorVariants.map((bp) => {
252
+ return {
253
+ label: bp.label,
254
+ fields: [
255
+ {
256
+ type: 'row',
257
+ fields: [
258
+ tailwindField('textColor', bp.value),
259
+ //tailwindField('placeholderColor', bp.value),
260
+ tailwindField('caretColor', bp.value),
261
+ // background
262
+ tailwindField('backgroundColor', bp.value),
263
+ // border & divide
264
+ tailwindField('borderColor', bp.value),
265
+ tailwindField('divideColor', bp.value),
266
+ // accents
267
+ tailwindField('accentColor', bp.value),
268
+ ],
269
+ },
270
+ ],
271
+ };
272
+ }),
273
+ },
274
+ ],
122
275
  },
123
276
  {
124
- label: 'Typography',
125
- fields: [],
277
+ label: 'Background',
278
+ fields: [
279
+ {
280
+ type: 'tabs',
281
+ tabs: tailwindSelectorVariants.map((bp) => {
282
+ return {
283
+ label: bp.label,
284
+ fields: [
285
+ {
286
+ type: 'row',
287
+ fields: [
288
+ // background image & gradients
289
+ tailwindField('backgroundImage', bp.value),
290
+ // #TODO gestire possibilità di caricare una immagine (capire quindi gestione url dell'immagine da referenziare)
291
+ //tailwindField('backgroundGradientFrom', bp.value),
292
+ //tailwindField('backgroundGradientVia', bp.value),
293
+ //tailwindField('backgroundGradientTo', bp.value),
294
+ // background behavior
295
+ tailwindField('backgroundSize', bp.value),
296
+ tailwindField('backgroundPosition', bp.value),
297
+ tailwindField('backgroundRepeat', bp.value),
298
+ tailwindField('backgroundAttachment', bp.value),
299
+ // clipping & origin
300
+ tailwindField('backgroundClip', bp.value),
301
+ tailwindField('backgroundOrigin', bp.value),
302
+ ],
303
+ },
304
+ ],
305
+ };
306
+ }),
307
+ },
308
+ ],
309
+ },
310
+ {
311
+ label: 'Border',
312
+ fields: [
313
+ {
314
+ type: 'tabs',
315
+ tabs: tailwindSelectorVariants.map((bp) => {
316
+ return {
317
+ label: bp.label,
318
+ fields: [
319
+ {
320
+ type: 'row',
321
+ fields: [
322
+ // border width
323
+ tailwindField('borderWidth', bp.value),
324
+ // #TODO ADD
325
+ //tailwindField('borderWidthX', bp.value),
326
+ //tailwindField('borderWidthY', bp.value),
327
+ //tailwindField('borderWidthTop', bp.value),
328
+ //tailwindField('borderWidthRight', bp.value),
329
+ //tailwindField('borderWidthBottom', bp.value),
330
+ //tailwindField('borderWidthLeft', bp.value),
331
+ // border style & radius
332
+ tailwindField('borderStyle', bp.value),
333
+ tailwindField('borderRadius', bp.value),
334
+ // #TODO ADD
335
+ //tailwindField('borderRadiusTop', bp.value),
336
+ //tailwindField('borderRadiusRight', bp.value),
337
+ //tailwindField('borderRadiusBottom', bp.value),
338
+ //tailwindField('borderRadiusLeft', bp.value),
339
+ // divide
340
+ tailwindField('divideWidth', bp.value),
341
+ tailwindField('divideStyle', bp.value),
342
+ // outline & ring
343
+ tailwindField('outline', bp.value),
344
+ tailwindField('outlineOffset', bp.value),
345
+ tailwindField('ringWidth', bp.value),
346
+ tailwindField('ringOffsetWidth', bp.value),
347
+ ],
348
+ },
349
+ ],
350
+ };
351
+ }),
352
+ },
353
+ ],
354
+ },
355
+ {
356
+ label: 'Shadow',
357
+ fields: [
358
+ {
359
+ type: 'tabs',
360
+ tabs: tailwindSelectorVariants.map((bp) => {
361
+ return {
362
+ label: bp.label,
363
+ fields: [
364
+ {
365
+ type: 'row',
366
+ fields: [
367
+ tailwindField('boxShadow', bp.value),
368
+ //tailwindField('dropShadow', bp.value),
369
+ ],
370
+ },
371
+ ],
372
+ };
373
+ }),
374
+ },
375
+ ],
376
+ },
377
+ {
378
+ label: 'Effects',
379
+ fields: [
380
+ {
381
+ type: 'tabs',
382
+ tabs: tailwindSelectorVariants.map((bp) => {
383
+ return {
384
+ label: bp.label,
385
+ fields: [
386
+ {
387
+ type: 'row',
388
+ fields: [
389
+ // opacity & blending
390
+ tailwindField('opacity', bp.value),
391
+ tailwindField('mixBlendMode', bp.value),
392
+ //tailwindField('backgroundBlendMode', bp.value),
393
+ // filters
394
+ //tailwindField('blur', bp.value),
395
+ //tailwindField('brightness', bp.value),
396
+ //tailwindField('contrast', bp.value),
397
+ //tailwindField('grayscale', bp.value),
398
+ //tailwindField('hueRotate', bp.value),
399
+ //tailwindField('invert', bp.value),
400
+ //tailwindField('saturate', bp.value),
401
+ //tailwindField('sepia', bp.value),
402
+ // backdrop filters
403
+ tailwindField('backdropBlur', bp.value),
404
+ tailwindField('backdropBrightness', bp.value),
405
+ tailwindField('backdropContrast', bp.value),
406
+ tailwindField('backdropGrayscale', bp.value),
407
+ tailwindField('backdropHueRotate', bp.value),
408
+ tailwindField('backdropInvert', bp.value),
409
+ tailwindField('backdropOpacity', bp.value),
410
+ tailwindField('backdropSaturate', bp.value),
411
+ tailwindField('backdropSepia', bp.value),
412
+ ],
413
+ },
414
+ ],
415
+ };
416
+ }),
417
+ },
418
+ ],
419
+ },
420
+ {
421
+ label: 'Transform',
422
+ fields: [
423
+ {
424
+ type: 'tabs',
425
+ tabs: tailwindSelectorVariants.map((bp) => {
426
+ return {
427
+ label: bp.label,
428
+ fields: [
429
+ {
430
+ type: 'row',
431
+ fields: [
432
+ tailwindField('scale', bp.value),
433
+ // #TODO ADD
434
+ //tailwindField('scaleX', bp.value),
435
+ //tailwindField('scaleY', bp.value),
436
+ tailwindField('rotate', bp.value),
437
+ //tailwindField('translateX', bp.value),
438
+ //tailwindField('translateY', bp.value),
439
+ //tailwindField('skewX', bp.value),
440
+ //tailwindField('skewY', bp.value),
441
+ tailwindField('transformOrigin', bp.value),
442
+ ],
443
+ },
444
+ ],
445
+ };
446
+ }),
447
+ },
448
+ ],
449
+ },
450
+ {
451
+ label: 'Animation',
452
+ fields: [
453
+ {
454
+ type: 'tabs',
455
+ tabs: tailwindSelectorVariants.map((bp) => {
456
+ return {
457
+ label: bp.label,
458
+ fields: [
459
+ {
460
+ type: 'row',
461
+ fields: [
462
+ // transition
463
+ tailwindField('transitionProperty', bp.value),
464
+ tailwindField('transitionDuration', bp.value),
465
+ tailwindField('transitionTimingFunction', bp.value),
466
+ tailwindField('transitionDelay', bp.value),
467
+ // animation
468
+ tailwindField('animation', bp.value),
469
+ ],
470
+ },
471
+ ],
472
+ };
473
+ }),
474
+ },
475
+ ],
476
+ },
477
+ {
478
+ label: 'Interaction',
479
+ fields: [
480
+ {
481
+ type: 'tabs',
482
+ tabs: tailwindSelectorVariants.map((bp) => {
483
+ return {
484
+ label: bp.label,
485
+ fields: [
486
+ {
487
+ type: 'row',
488
+ fields: [
489
+ tailwindField('cursor', bp.value),
490
+ tailwindField('pointerEvents', bp.value),
491
+ tailwindField('userSelect', bp.value),
492
+ tailwindField('resize', bp.value),
493
+ tailwindField('scrollBehavior', bp.value),
494
+ tailwindField('scrollMargin', bp.value),
495
+ tailwindField('scrollPadding', bp.value),
496
+ tailwindField('scrollSnapType', bp.value),
497
+ tailwindField('scrollSnapAlign', bp.value),
498
+ tailwindField('scrollSnapStop', bp.value),
499
+ ],
500
+ },
501
+ ],
502
+ };
503
+ }),
504
+ },
505
+ ],
126
506
  },
127
507
  ],
128
508
  },
@@ -0,0 +1,3 @@
1
+ import type { SelectField } from 'payload';
2
+ import { tailwindFieldsSelectors } from './tailwindFieldSelectors';
3
+ export declare const tailwindField: <T extends keyof typeof tailwindFieldsSelectors>(fieldName: T, breakPoint?: string, overrides?: Partial<SelectField>) => SelectField;
@@ -0,0 +1,26 @@
1
+ import { tailwindFieldsSelectors } from './tailwindFieldSelectors';
2
+ import { getValueFromClassNameString } from '../utils/getValueFromClassNameField';
3
+ export const tailwindField = (fieldName, breakPoint = '', overrides = {}) => {
4
+ // @ts-ignore
5
+ const values = tailwindFieldsSelectors[fieldName];
6
+ if (!values) {
7
+ throw new Error(`Tailwind property "${String(fieldName)}" not found`);
8
+ }
9
+ return {
10
+ name: breakPoint + fieldName,
11
+ type: 'select',
12
+ options: values.map((value) => ({
13
+ label: value,
14
+ value: `${breakPoint}${value}`,
15
+ })),
16
+ virtual: true,
17
+ admin: {
18
+ width: '25%',
19
+ },
20
+ required: false,
21
+ hooks: {
22
+ afterRead: [getValueFromClassNameString],
23
+ },
24
+ ...overrides,
25
+ };
26
+ };