@nascentdigital/funnel-ui 4.4.20 → 4.5.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 (88) hide show
  1. package/dist/Tailwind.d.ts +5 -1
  2. package/dist/Tailwind.js +9 -0
  3. package/dist/server/blocks/Block.d.ts +42 -2
  4. package/dist/server/blocks/Block.js +88 -0
  5. package/dist/server/blocks/Clients.d.ts +20 -29
  6. package/dist/server/blocks/Clients.js +13 -57
  7. package/dist/server/blocks/MediaLayout.d.ts +10 -5
  8. package/dist/server/blocks/MediaLayout.js +41 -22
  9. package/dist/server/blocks/Message.d.ts +9 -67
  10. package/dist/server/blocks/Message.js +15 -292
  11. package/dist/server/blocks/Outcome.d.ts +22 -82
  12. package/dist/server/blocks/Outcome.js +20 -474
  13. package/dist/server/blocks/Testimonial.d.ts +81 -16
  14. package/dist/server/blocks/Testimonial.js +59 -27
  15. package/dist/server/blocks/Testimonials.d.ts +41 -0
  16. package/dist/server/blocks/Testimonials.js +90 -0
  17. package/dist/server/blocks/ValueProp.d.ts +19 -38
  18. package/dist/server/blocks/ValueProp.js +14 -100
  19. package/dist/server/blocks/index.d.ts +1 -0
  20. package/dist/server/blocks/index.js +1 -0
  21. package/dist/server/blocks/summary/Statement.d.ts +304 -0
  22. package/dist/server/blocks/summary/Statement.js +52 -0
  23. package/dist/server/blocks/summary/Summary.d.ts +18 -0
  24. package/dist/server/blocks/summary/Summary.js +34 -0
  25. package/dist/server/blocks/summary/index.d.ts +1 -0
  26. package/dist/server/blocks/summary/index.js +17 -0
  27. package/dist/server/entities/Person.d.ts +27 -2
  28. package/dist/server/entities/Person.js +55 -5
  29. package/dist/server/layouts/BrickLayout.d.ts +290 -0
  30. package/dist/server/layouts/BrickLayout.js +25 -0
  31. package/dist/server/layouts/CardLayout.d.ts +291 -0
  32. package/dist/server/layouts/CardLayout.js +25 -0
  33. package/dist/server/layouts/FlexWrapLayout.d.ts +290 -0
  34. package/dist/server/layouts/FlexWrapLayout.js +41 -0
  35. package/dist/server/layouts/StackLayout.d.ts +290 -0
  36. package/dist/server/layouts/StackLayout.js +25 -0
  37. package/dist/server/layouts/grid/GridItem.d.ts +8 -0
  38. package/dist/server/layouts/grid/GridItem.js +9 -0
  39. package/dist/server/layouts/grid/GridLayout.d.ts +293 -0
  40. package/dist/server/layouts/grid/GridLayout.js +25 -0
  41. package/dist/server/layouts/grid/index.d.ts +2 -0
  42. package/dist/server/layouts/grid/index.js +18 -0
  43. package/dist/server/layouts/index.d.ts +5 -0
  44. package/dist/server/layouts/index.js +21 -0
  45. package/dist/server/panels/BlockPanel.d.ts +80 -1
  46. package/dist/server/panels/BlockPanel.js +831 -0
  47. package/dist/server/panels/ListPanel.d.ts +62 -0
  48. package/dist/server/panels/ListPanel.js +137 -0
  49. package/dist/server/panels/MessagePanel.d.ts +69 -5
  50. package/dist/server/panels/MessagePanel.js +128 -5
  51. package/dist/server/panels/TestimonialPanel.d.ts +47 -0
  52. package/dist/server/panels/TestimonialPanel.js +71 -0
  53. package/dist/server/panels/VisualPanel.d.ts +45 -13
  54. package/dist/server/panels/VisualPanel.js +75 -16
  55. package/dist/server/panels/index.d.ts +2 -0
  56. package/dist/server/panels/index.js +2 -0
  57. package/dist/server/schema/BlockConfig.d.ts +3 -1
  58. package/dist/server/schema/BlockConfig.js +2 -1
  59. package/dist/server/schema/ItemAlignment.d.ts +2 -0
  60. package/dist/server/schema/ItemPosition.d.ts +1 -0
  61. package/dist/server/schema/ItemSize.d.ts +2 -1
  62. package/dist/server/schema/ItemSize.js +2 -1
  63. package/dist/server/schema/ListPanelLayout.d.ts +34 -0
  64. package/dist/server/schema/ListPanelLayout.js +24 -0
  65. package/dist/server/schema/PanelLayout.d.ts +14 -0
  66. package/dist/server/schema/PanelLayout.js +70 -0
  67. package/dist/server/schema/SlotVariation.d.ts +9 -0
  68. package/dist/server/schema/SlotVariation.js +48 -0
  69. package/dist/server/schema/TextAlignment.d.ts +1 -0
  70. package/dist/server/schema/index.d.ts +3 -0
  71. package/dist/server/schema/index.js +3 -0
  72. package/dist/styles/blocks/Clients.css +0 -1
  73. package/dist/styles/blocks/Message.css +0 -343
  74. package/dist/styles/blocks/Outcome.css +13 -50
  75. package/dist/styles/blocks/Summary.css +15 -0
  76. package/dist/styles/blocks/Testimonial.css +1 -318
  77. package/dist/styles/blocks/ValueProp.css +0 -126
  78. package/dist/styles/blocks/_index.css +1 -0
  79. package/dist/styles/layouts/BrickLayout.css +43 -0
  80. package/dist/styles/layouts/CardLayout.css +46 -0
  81. package/dist/styles/layouts/FlexWrapLayout.css +38 -0
  82. package/dist/styles/layouts/GridLayout.css +25 -0
  83. package/dist/styles/layouts/StackLayout.css +46 -0
  84. package/dist/styles/layouts/_index.css +6 -1
  85. package/dist/styles/panels/ListPanel.css +3 -0
  86. package/dist/styles/panels/TestimonialPanel.css +64 -0
  87. package/dist/styles/panels/_index.css +2 -0
  88. package/package.json +3 -2
@@ -1,323 +1,6 @@
1
1
  @layer components {
2
2
 
3
- :root {
4
- --nd-testimonial-copy-gap: theme('spacing.l8');
5
- --nd-testimonial-ctas-gap: theme('spacing.l8');
6
-
7
- --nd-testimonial-visual-rounding: 0px;
8
- --nd-testimonial-visual-gap-x: theme('spacing.l5');
9
- --nd-testimonial-visual-gap-y: theme('spacing.l11');
10
- --nd-testimonial-visual-padding: theme('spacing.l15');
11
-
12
- @media screen(sm) {
13
- --nd-testimonial-visual-gap-x: theme('spacing.l8');
14
- --nd-testimonial-visual-gap-y: theme('spacing.l11');
15
- --nd-testimonial-visual-padding: theme('spacing.l15');
16
- }
17
- @media screen(md) {
18
- --nd-testimonial-visual-gap-x: theme('spacing.l12');
19
- --nd-testimonial-visual-gap-y: theme('spacing.l13');
20
- --nd-testimonial-visual-padding: theme('spacing.l18');
21
- }
22
- @media screen(lg) {
23
- --nd-testimonial-visual-gap-x: theme('spacing.l15');
24
- --nd-testimonial-visual-gap-y: theme('spacing.l13');
25
- --nd-testimonial-visual-padding: theme('spacing.l18');
26
- }
27
- }
28
-
29
- /* base */
3
+ /* testimonial */
30
4
  .nd-Testimonial {
31
- @apply flex items-center;
32
-
33
- .nd-Testimonial-content {
34
- @apply w-full;
35
- }
36
- .nd-Testimonial-visual {
37
- @apply block;
38
- }
39
- .nd-Testimonial-copy {
40
- @apply flex flex-col gap-[var(--nd-testimonial-copy-gap)];
41
- }
42
- .nd-Testimonial-ctas {
43
- @apply flex flex-wrap items-center gap-[var(--nd-testimonial-ctas-gap)] mt-l6;
44
- }
45
- }
46
-
47
-
48
- /* visual layouts */
49
- ._nd-Testimonial-visual-x-mobile {
50
- .nd-Testimonial-content {
51
- @apply flex flex-col gap-[var(--nd-testimonial-visual-gap-y)];
52
- }
53
-
54
- .nd-Testimonial-visualWrap {
55
- @apply order-last;
56
- }
57
- .nd-Testimonial-copyWrap {
58
- @apply container-p;
59
- }
60
- .nd-Testimonial-copy {
61
- @apply items-center text-center;
62
- }
63
- .nd-Testimonial-ctas {
64
- @apply justify-center;
65
- }
66
-
67
- &:not(.nd-Block-fullbleed) {
68
- .nd-Testimonial-visualWrap {
69
- @apply container-p;
70
- }
71
- .nd-Testimonial-visual {
72
- @apply overflow-hidden;
73
- border-radius: var(--nd-testimonial-visual-rounding);
74
- }
75
- }
76
- }
77
- ._nd-Testimonial-visual-x-desktop {
78
- .nd-Testimonial-content {
79
- @apply stacked;
80
- }
81
-
82
- .nd-Testimonial-visualWrap {
83
- @apply grid grid-cols-12 items-center gap-[var(--nd-testimonial-visual-gap-x)];
84
- }
85
- .nd-Testimonial-visual {
86
- @apply col-span-6;
87
- }
88
- .nd-Testimonial-copyWrap {
89
- @apply container-p grid grid-cols-12 items-center gap-[var(--nd-testimonial-visual-gap-x)];
90
- }
91
- .nd-Testimonial-copy {
92
- @apply col-span-6 items-start text-left;
93
- }
94
-
95
- &:not(:has(.nd-Testimonial-visual)) {
96
- .nd-Testimonial-copy {
97
- @apply col-span-full;
98
- }
99
- }
100
-
101
- &:not(.nd-Block-fullbleed) {
102
- .nd-Testimonial-visualWrap {
103
- @apply container-p;
104
- }
105
- .nd-Testimonial-visual {
106
- @apply overflow-hidden;
107
- border-radius: var(--nd-testimonial-visual-rounding);
108
- }
109
- }
110
- }
111
- .nd-Testimonial.nd-Block-visual-left {
112
- @apply max-md:_nd-Testimonial-visual-x-mobile md:_nd-Testimonial-visual-x-desktop;
113
-
114
- .nd-Testimonial-visual {
115
- @apply md:col-start-1;
116
- }
117
- .nd-Testimonial-copy {
118
- @apply md:col-start-7;
119
- }
120
- }
121
- .nd-Testimonial.nd-Block-visual-right {
122
- @apply max-md:_nd-Testimonial-visual-x-mobile md:_nd-Testimonial-visual-x-desktop;
123
-
124
- .nd-Testimonial-visual {
125
- @apply md:col-start-7;
126
- }
127
- .nd-Testimonial-copy {
128
- @apply md:col-start-1;
129
- }
130
- }
131
- ._nd-Testimonial-visual-y {
132
- .nd-Testimonial-content {
133
- @apply flex flex-col gap-[var(--nd-testimonial-visual-gap-y)];
134
- }
135
-
136
- .nd-Testimonial-visual > * {
137
- @apply mx-auto;
138
- }
139
- .nd-Testimonial-copyWrap {
140
- @apply container-p grid grid-cols-12;
141
- }
142
- .nd-Testimonial-copy {
143
- @apply col-start-1 col-span-full items-center text-center;
144
- }
145
-
146
- &:not(.nd-Block-fullbleed) {
147
- .nd-Testimonial-visualWrap {
148
- @apply container-p;
149
- }
150
- .nd-Testimonial-visual {
151
- @apply overflow-hidden;
152
- border-radius: var(--nd-testimonial-visual-rounding);
153
- }
154
- }
155
- }
156
- .nd-Testimonial.nd-Block-visual-top {
157
- @apply _nd-Testimonial-visual-y;
158
- }
159
- .nd-Testimonial.nd-Block-visual-btm {
160
- @apply _nd-Testimonial-visual-y;
161
-
162
- .nd-Testimonial-visualWrap {
163
- @apply order-last;
164
- }
165
- }
166
- ._nd-Testimonial-visual-bg-mobile {
167
- .nd-Testimonial-content {
168
- @apply stacked;
169
- }
170
-
171
- .nd-Testimonial-visual img,
172
- .nd-Testimonial-visual video {
173
- @apply min-h-lvh object-cover;
174
- }
175
- .nd-Testimonial-copyWrap {
176
- @apply z-overlay;
177
- @apply container-p grid grid-cols-12 items-center py-[var(--nd-testimonial-visual-padding)];
178
- }
179
- .nd-Testimonial-copy {
180
- @apply col-start-1 col-span-full items-center text-center;
181
- }
182
- &:not(.nd-Block-fullbleed) {
183
- .nd-Testimonial-visualWrap {
184
- @apply container-p;
185
- }
186
- .nd-Testimonial-visual {
187
- @apply overflow-hidden;
188
- border-radius: var(--nd-testimonial-visual-rounding);
189
- }
190
- }
191
-
192
- /* copy placement */
193
- &.nd-Block-copy-center {
194
- }
195
- &.nd-Block-copy-top .nd-Testimonial-copyWrap {
196
- @apply items-start;
197
- }
198
- &.nd-Block-copy-btm .nd-Testimonial-copyWrap {
199
- @apply items-end;
200
- }
201
- &.nd-Block-copy-left .nd-Testimonial-copy {
202
- @apply col-start-1 items-start text-left;
203
- }
204
- &.nd-Block-copy-left-top {
205
- .nd-Testimonial-copyWrap {
206
- @apply items-start;
207
- }
208
- .nd-Testimonial-copy {
209
- @apply col-start-1 items-start text-left;
210
- }
211
- }
212
- &.nd-Block-copy-left-btm {
213
- .nd-Testimonial-copyWrap {
214
- @apply items-end;
215
- }
216
- .nd-Testimonial-copy {
217
- @apply col-start-1 items-start text-left;
218
- }
219
- }
220
- &.nd-Block-copy-right .nd-Testimonial-copy {
221
- @apply col-end-12 items-end text-right;
222
- }
223
- &.nd-Block-copy-right-top {
224
- .nd-Testimonial-copyWrap {
225
- @apply items-start;
226
- }
227
- .nd-Testimonial-copy {
228
- @apply col-end-12 items-end text-right;
229
- }
230
- }
231
- &.nd-Block-copy-right-btm {
232
- .nd-Testimonial-copyWrap {
233
- @apply items-end;
234
- }
235
- .nd-Testimonial-copy {
236
- @apply col-end-12 items-end text-right;
237
- }
238
- }
239
- }
240
- ._nd-Testimonial-visual-bg-desktop {
241
- .nd-Testimonial-content {
242
- @apply stacked;
243
- }
244
-
245
- &:not(.nd-Block-fullbleed) {
246
- .nd-Testimonial-visualWrap {
247
- @apply container-p;
248
- }
249
- .nd-Testimonial-visual {
250
- @apply overflow-hidden;
251
- border-radius: var(--nd-testimonial-visual-rounding);
252
- }
253
- }
254
- .nd-Testimonial-copyWrap {
255
- @apply z-overlay;
256
- @apply container-p grid grid-cols-12 items-center py-[var(--nd-testimonial-visual-padding)];
257
- }
258
- .nd-Testimonial-copy {
259
- @apply col-start-3 col-span-8 items-center text-center;
260
- }
261
-
262
- /* copy placement */
263
- &.nd-Block-copy-center {
264
- }
265
- &.nd-Block-copy-top .nd-Testimonial-copyWrap {
266
- @apply items-start;
267
- }
268
- &.nd-Block-copy-btm .nd-Testimonial-copyWrap {
269
- @apply items-end;
270
- }
271
- &.nd-Block-copy-left .nd-Testimonial-copy {
272
- @apply col-start-1 items-start text-left;
273
- }
274
- &.nd-Block-copy-left-top {
275
- .nd-Testimonial-copyWrap {
276
- @apply items-start;
277
- }
278
- .nd-Testimonial-copy {
279
- @apply col-start-1 items-start text-left;
280
- }
281
- }
282
- &.nd-Block-copy-left-btm {
283
- .nd-Testimonial-copyWrap {
284
- @apply items-end;
285
- }
286
- .nd-Testimonial-copy {
287
- @apply col-start-1 items-start text-left;
288
- }
289
- }
290
- &.nd-Block-copy-right .nd-Testimonial-copy {
291
- @apply col-end-12 items-end text-right;
292
- }
293
- &.nd-Block-copy-right-top {
294
- .nd-Testimonial-copyWrap {
295
- @apply items-start;
296
- }
297
- .nd-Testimonial-copy {
298
- @apply col-end-12 items-end text-right;
299
- }
300
- }
301
- &.nd-Block-copy-right-btm {
302
- .nd-Testimonial-copyWrap {
303
- @apply items-end;
304
- }
305
- .nd-Testimonial-copy {
306
- @apply col-end-12 items-end text-right;
307
- }
308
- }
309
- }
310
- .nd-Testimonial.nd-Block-visual-bg {
311
- @apply max-md:_nd-Testimonial-visual-bg-mobile md:_nd-Testimonial-visual-bg-desktop;
312
-
313
- &.nd-Block-fullbleed {
314
- @apply min-h-0;
315
-
316
- .nd-Testimonial-visual {
317
- img, video {
318
- @apply w-full object-cover;
319
- }
320
- }
321
- }
322
5
  }
323
6
  }
@@ -1,135 +1,9 @@
1
1
  @layer components {
2
2
 
3
3
  :root {
4
- --nd-valueprop-content-gap: theme('spacing.l12');
5
- --nd-valueprop-copy-gap: theme('spacing.l6');
6
- --nd-valueprop-cards-gap-usp: theme('spacing.l8');
7
- --nd-valueprop-riverflow-gap-copy: theme('spacing.l10');
8
- --nd-valueprop-riverflow-gap-usp: theme('spacing.l11');
9
- --nd-valueprop-lineup-gap: theme('spacing.l13');
10
-
11
- @media screen(sm) {
12
- --nd-valueprop-content-gap: theme('spacing.l13');
13
- --nd-valueprop-cards-gap-usp: theme('spacing.l8');
14
- --nd-valueprop-riverflow-gap-usp: theme('spacing.l13');
15
- }
16
- @media screen(md) {
17
- --nd-valueprop-content-gap: theme('spacing.l16');
18
- --nd-valueprop-cards-gap-usp: theme('spacing.l8');
19
- --nd-valueprop-riverflow-gap-usp: theme('spacing.l15');
20
- --nd-valueprop-lineup-gap: theme('spacing.l12');
21
- }
22
- @media screen(lg) {
23
- --nd-valueprop-content-gap: theme('spacing.l16');
24
- --nd-valueprop-cards-gap-usp: theme('spacing.l9');
25
- --nd-valueprop-riverflow-gap-usp: theme('spacing.l16');
26
- }
27
4
  }
28
5
 
29
6
  /* base */
30
7
  .nd-ValueProp {
31
8
  }
32
- .nd-ValueProp-content {
33
- @apply container-p flex flex-col gap-[var(--nd-valueprop-content-gap)];
34
- }
35
- .nd-ValueProp-copy {
36
- @apply flex flex-col gap-[var(--nd-valueprop-copy-gap)];
37
- }
38
-
39
- /* layout: cards */
40
- ._nd-ValueProp-cards-mobile {
41
- .nd-ValueProp-usps {
42
- @apply flex flex-col gap-[var(--nd-valueprop-cards-gap-usp)];
43
- }
44
- .nd-UniqueSellingPoint {
45
- @apply flex flex-col gap-[var(--nd-valueprop-cards-gap-copy)];
46
- }
47
- }
48
- ._nd-ValueProp-cards-desktop {
49
-
50
- .nd-ValueProp-usps {
51
- @apply grid grid-cols-3 auto-cols-fr gap-[--nd-valueprop-cards-gap-usp];
52
- }
53
-
54
- .nd-UniqueSellingPoint {
55
-
56
- .nd-UniqueSellingPoint-content {
57
- @apply flex flex-col;
58
- }
59
- .nd-UniqueSellingPoint-copyWrap {
60
- }
61
- .nd-UniqueSellingPoint-visualWrap {
62
- }
63
- }
64
- }
65
- .nd-ValueProp.nd-ValueProp-layout-cards {
66
- @apply max-md:_nd-ValueProp-cards-mobile md:_nd-ValueProp-cards-desktop;
67
- }
68
-
69
- /* layout: riverflow */
70
- ._nd-ValueProp-riverflow-mobile {
71
- .nd-ValueProp-usps {
72
- @apply flex flex-col gap-[var(--nd-valueprop-riverflow-gap-usp)];
73
- }
74
- .nd-UniqueSellingPoint {
75
- @apply flex flex-col gap-[var(--nd-valueprop-riverflow-gap-copy)];
76
-
77
- .nd-UniqueSellingPoint-visualWrap {
78
- @apply order-last;
79
- }
80
- }
81
- }
82
- ._nd-ValueProp-riverflow-desktop {
83
-
84
- .nd-ValueProp-usps {
85
- @apply flex flex-col gap-[--nd-valueprop-riverflow-gap-usp];
86
- }
87
-
88
- .nd-UniqueSellingPoint {
89
-
90
- /* base */
91
- .nd-UniqueSellingPoint-content {
92
- @apply grid grid-cols-12 items-center gap-[var(--nd-valueprop-content-copy-gap)];
93
- }
94
- .nd-UniqueSellingPoint-copyWrap {
95
- @apply col-start-1 col-span-6 row-start-1;
96
- }
97
- .nd-UniqueSellingPoint-visualWrap {
98
- @apply col-start-7 col-span-6 row-start-1;
99
- }
100
-
101
- /* even items */
102
- &:nth-child(even) {
103
- .nd-UniqueSellingPoint-copyWrap {
104
- @apply col-start-7;
105
- }
106
-
107
- .nd-UniqueSellingPoint-visualWrap {
108
- @apply col-start-1;
109
- }
110
- }
111
- }
112
- }
113
- .nd-ValueProp.nd-ValueProp-layout-riverflow {
114
- @apply max-md:_nd-ValueProp-riverflow-mobile md:_nd-ValueProp-riverflow-desktop;
115
- }
116
-
117
-
118
- /* layout: lineup */
119
- ._nd-ValueProp-lineup-mobile {
120
- .nd-ValueProp-usps {
121
- @apply flex flex-col gap-[var(--nd-valueprop-lineup-gap)];
122
- }
123
- }
124
- ._nd-ValueProp-lineup-desktop {
125
- .nd-ValueProp-usps {
126
- @apply grid grid-cols-12 gap-[var(--nd-valueprop-lineup-gap)];
127
- }
128
- .nd-ValueProp-usp {
129
- @apply col-span-4;
130
- }
131
- }
132
- .nd-ValueProp.nd-ValueProp-layout-lineup {
133
- @apply max-md:_nd-ValueProp-lineup-mobile md:_nd-ValueProp-lineup-desktop;
134
- }
135
9
  }
@@ -10,5 +10,6 @@
10
10
  @import "./Projects.css";
11
11
  @import "./Stat.css";
12
12
  @import "./Stats.css";
13
+ @import "./Summary.css";
13
14
  @import "./Testimonial.css";
14
15
  @import "./ValueProp.css";
@@ -0,0 +1,43 @@
1
+ @layer components {
2
+
3
+ :root {
4
+ --nd-brick-layout-gap: theme('spacing.l8');
5
+ --nd-brick-layout-gap-x: var(--nd-brick-layout-gap);
6
+ --nd-brick-layout-gap-y: var(--nd-brick-layout-gap);
7
+ }
8
+
9
+ ._nd-BrickLayout-mobile {
10
+ grid-template-columns: 1fr;
11
+ }
12
+
13
+ ._nd-BrickLayout-desktop {
14
+ grid-template-columns: 1fr 1fr;
15
+
16
+ &.nd-BrickLayout-flipped {
17
+ > * {
18
+
19
+ /* third */
20
+ &:nth-child(3n + 3) {
21
+ @apply col-span-full;
22
+ }
23
+ }
24
+ }
25
+ &:not(.nd-BrickLayout-flipped) {
26
+ > * {
27
+
28
+ /* first */
29
+ &:nth-child(3n + 1) {
30
+ @apply col-span-full;
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ .nd-BrickLayout {
37
+ display: grid;
38
+ column-gap: var(--nd-brick-layout-gap-x);
39
+ row-gap: var(--nd-brick-layout-gap-y);
40
+
41
+ @apply _nd-BrickLayout-mobile @panel-md:_nd-BrickLayout-desktop;
42
+ }
43
+ }
@@ -0,0 +1,46 @@
1
+ @layer components {
2
+
3
+ :root {
4
+ --nd-card-layout-gap: theme('spacing.l8');
5
+ --nd-card-layout-gap-x: var(--nd-card-layout-gap);
6
+ --nd-card-layout-gap-y: var(--nd-card-layout-gap);
7
+ }
8
+
9
+ ._nd-CardLayout-mobile {
10
+ grid-template-columns: 1fr;
11
+ }
12
+ ._nd_CardLayout-md {
13
+ grid-template-columns: repeat(var(--nd-card-layout-columns, 3), minmax(0, 1fr));
14
+
15
+ &[data-card-count="1"],
16
+ &[data-card-count="2"],
17
+ &[data-card-count="4"] {--nd-card-layout-columns: 2}
18
+ }
19
+ ._nd_CardLayout-lg {
20
+ grid-template-columns: repeat(var(--nd-card-layout-columns, 3), minmax(0, 1fr));
21
+
22
+ &[data-card-count="4"],
23
+ &[data-card-count="7"],
24
+ &[data-card-count="8"],
25
+ &[data-card-count="10"] {--nd-card-layout-columns: 4}
26
+ }
27
+
28
+ .nd-CardLayout {
29
+ display: grid;
30
+ column-gap: var(--nd-card-layout-gap-x);
31
+ row-gap: var(--nd-card-layout-gap-y);
32
+
33
+ /* base layout */
34
+ @apply _nd-CardLayout-mobile;
35
+
36
+ /* small item sizes */
37
+ &.nd-CardLayout-itemSize-sm {
38
+ @apply @panel-md:_nd_CardLayout-md @panel-lg:_nd_CardLayout-lg;
39
+ }
40
+
41
+ /* large item sizes */
42
+ &.nd-CardLayout-itemSize-md {
43
+ @apply @panel-md:_nd_CardLayout-md;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,38 @@
1
+ @layer components {
2
+
3
+ :root {
4
+ --nd-flex-wrap-layout-gap: theme('spacing.l8');
5
+ --nd-flex-wrap-layout-gap-x: var(--nd-flex-wrap-layout-gap);
6
+ --nd-flex-wrap-layout-gap-y: var(--nd-flex-wrap-layout-gap);
7
+ }
8
+
9
+ ._nd-FlexWrapLayout-mobile {
10
+ .nd-FlexWrapLayout-trailing {
11
+ @apply contents;
12
+ }
13
+ }
14
+
15
+ ._nd-FlexWrapLayout-desktop {
16
+ .nd-FlexWrapLayout-trailing {
17
+ @apply block;
18
+ }
19
+ }
20
+
21
+ .nd-FlexWrapLayout {
22
+ @apply flex flex-row flex-wrap items-center;
23
+ @apply gap-x-[var(--nd-flex-wrap-layout-gap-x)] gap-y-[--nd-flex-wrap-layout-gap-y];
24
+
25
+ /* item alignment */
26
+ &.nd-FlexWrapLayout-itemAlignment-start {
27
+ @apply justify-start;
28
+ }
29
+ &.nd-FlexWrapLayout-itemAlignment-center {
30
+ @apply justify-center;
31
+ }
32
+ &.nd-FlexWrapLayout-itemAlignment-end {
33
+ @apply justify-end;
34
+ }
35
+
36
+ @apply _nd-FlexWrapLayout-mobile @panel-md:_nd-FlexWrapLayout-desktop;
37
+ }
38
+ }
@@ -0,0 +1,25 @@
1
+ @layer components {
2
+
3
+ :root {
4
+ --nd-grid-layout-gap: theme('spacing.l8');
5
+ --nd-grid-layout-gap-x: var(--nd-grid-layout-gap);
6
+ --nd-grid-layout-gap-y: var(--nd-grid-layout-gap);
7
+ --nd-grid-layout-columns: unset; /* set via js */
8
+ }
9
+
10
+ ._nd-GridLayout-mobile {
11
+ grid-template-columns: 1fr;
12
+ }
13
+
14
+ ._nd-GridLayout-desktop {
15
+ grid-template-columns: repeat(var(--nd-grid-layout-columns), minmax(0, 1fr));
16
+ }
17
+
18
+ .nd-GridLayout {
19
+ display: grid;
20
+ column-gap: var(--nd-grid-layout-gap-x);
21
+ row-gap: var(--nd-grid-layout-gap-y);
22
+
23
+ @apply _nd-GridLayout-mobile @panel-md:_nd-GridLayout-desktop;
24
+ }
25
+ }
@@ -0,0 +1,46 @@
1
+ @layer components {
2
+
3
+ :root {
4
+ --nd-stack-layout-gap: theme('spacing.l8');
5
+ }
6
+
7
+ ._nd-StackLayout-mobile {
8
+ grid-auto-flow: row;
9
+ }
10
+
11
+ ._nd-StackLayout-desktop {
12
+ grid-auto-flow: column;
13
+
14
+ &.nd-StackLayout-direction-horizontal {
15
+ &.nd-StackLayout-itemDistribution-equal {
16
+ grid-auto-columns: minmax(0, 1fr);
17
+ }
18
+ &.nd-StackLayout-itemDistribution-even {
19
+ grid-auto-columns: auto;
20
+ }
21
+ &.nd-StackLayout-itemDistribution-none {
22
+ grid-auto-columns: auto;
23
+ justify-content: start;
24
+ }
25
+ }
26
+
27
+ &.nd-StackLayout-direction-vertical {
28
+ grid-auto-flow: row;
29
+
30
+ &.nd-StackLayout-itemDistribution-equal {
31
+ grid-auto-rows: minmax(0, 1fr);
32
+ }
33
+ &.nd-StackLayout-itemDistribution-even {
34
+ }
35
+ &.nd-StackLayout-itemDistribution-none {
36
+ }
37
+ }
38
+ }
39
+
40
+ .nd-StackLayout {
41
+ display: grid;
42
+ gap: var(--nd-stack-layout-gap);
43
+
44
+ @apply _nd-StackLayout-mobile @panel-md:_nd-StackLayout-desktop;
45
+ }
46
+ }
@@ -1 +1,6 @@
1
- @import "./MasonryLayout.css";
1
+ @import "./CardLayout.css";
2
+ @import "./BrickLayout.css";
3
+ @import "./FlexWrapLayout.css";
4
+ @import "./GridLayout.css";
5
+ @import "./MasonryLayout.css";
6
+ @import "./StackLayout.css";
@@ -0,0 +1,3 @@
1
+ @layer components {
2
+
3
+ }