b4um_generators 0.1.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 (87) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +28 -0
  4. data/CHANGELOG.md +5 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.de.md +821 -0
  7. data/README.md +815 -0
  8. data/Rakefile +12 -0
  9. data/b4um_generators.gemspec +30 -0
  10. data/bin/console +11 -0
  11. data/bin/setup +8 -0
  12. data/lib/b4um_generators/version.rb +5 -0
  13. data/lib/b4um_generators.rb +8 -0
  14. data/lib/generators/b4um/bento/bento_generator.rb +81 -0
  15. data/lib/generators/b4um/bento/templates/_alternating.html.erb.tt +15 -0
  16. data/lib/generators/b4um/bento/templates/_bento.html.erb.tt +26 -0
  17. data/lib/generators/b4um/bento/templates/_grid.html.erb.tt +13 -0
  18. data/lib/generators/b4um/bento/templates/_list.html.erb.tt +15 -0
  19. data/lib/generators/b4um/comments/comments_generator.rb +259 -0
  20. data/lib/generators/b4um/comments/templates/_comments.html.erb.tt +63 -0
  21. data/lib/generators/b4um/comments/templates/comment.rb.tt +5 -0
  22. data/lib/generators/b4um/comments/templates/comments_controller.rb.tt +45 -0
  23. data/lib/generators/b4um/comments/templates/create_comments.rb.tt +14 -0
  24. data/lib/generators/b4um/controller/controller_generator.rb +397 -0
  25. data/lib/generators/b4um/help/help_generator.rb +755 -0
  26. data/lib/generators/b4um/infinite_scroll/infinite_scroll_generator.rb +199 -0
  27. data/lib/generators/b4um/infinite_scroll/templates/infinite_scroll_controller.js +61 -0
  28. data/lib/generators/b4um/install/install_generator.rb +492 -0
  29. data/lib/generators/b4um/install/templates/_cookie_consent.html.erb +27 -0
  30. data/lib/generators/b4um/install/templates/_footer.html.erb +17 -0
  31. data/lib/generators/b4um/install/templates/_hero.html.erb +33 -0
  32. data/lib/generators/b4um/install/templates/_navigation.html.erb +31 -0
  33. data/lib/generators/b4um/install/templates/_sitemap.html.erb +48 -0
  34. data/lib/generators/b4um/install/templates/_theme_switcher.html.erb +57 -0
  35. data/lib/generators/b4um/install/templates/b4um/badges.css +43 -0
  36. data/lib/generators/b4um/install/templates/b4um/base.css +42 -0
  37. data/lib/generators/b4um/install/templates/b4um/callouts.css +58 -0
  38. data/lib/generators/b4um/install/templates/b4um/cards.css +401 -0
  39. data/lib/generators/b4um/install/templates/b4um/comments.css +52 -0
  40. data/lib/generators/b4um/install/templates/b4um/cookie-consent.css +83 -0
  41. data/lib/generators/b4um/install/templates/b4um/empty-state.css +26 -0
  42. data/lib/generators/b4um/install/templates/b4um/flash.css +86 -0
  43. data/lib/generators/b4um/install/templates/b4um/footer.css +338 -0
  44. data/lib/generators/b4um/install/templates/b4um/forms.css +924 -0
  45. data/lib/generators/b4um/install/templates/b4um/hero.css +149 -0
  46. data/lib/generators/b4um/install/templates/b4um/layout.css +166 -0
  47. data/lib/generators/b4um/install/templates/b4um/lightbox.css +268 -0
  48. data/lib/generators/b4um/install/templates/b4um/navigation.css +257 -0
  49. data/lib/generators/b4um/install/templates/b4um/pagination.css +85 -0
  50. data/lib/generators/b4um/install/templates/b4um/resources.css +121 -0
  51. data/lib/generators/b4um/install/templates/b4um/search.css +41 -0
  52. data/lib/generators/b4um/install/templates/b4um/tables.css +67 -0
  53. data/lib/generators/b4um/install/templates/b4um/theme-switcher.css +178 -0
  54. data/lib/generators/b4um/install/templates/b4um/theme.css +132 -0
  55. data/lib/generators/b4um/install/templates/b4um.css +20 -0
  56. data/lib/generators/b4um/install/templates/b4um.yml +12 -0
  57. data/lib/generators/b4um/install/templates/b4um_helper.rb +27 -0
  58. data/lib/generators/b4um/install/templates/cookie_consent_controller.js +76 -0
  59. data/lib/generators/b4um/install/templates/dismissible_controller.js +7 -0
  60. data/lib/generators/b4um/install/templates/image_lightbox_controller.js +414 -0
  61. data/lib/generators/b4um/install/templates/image_preview_controller.js +85 -0
  62. data/lib/generators/b4um/install/templates/navigation_controller.js +25 -0
  63. data/lib/generators/b4um/install/templates/navigation_helper.rb +26 -0
  64. data/lib/generators/b4um/install/templates/sitemap_controller.js +35 -0
  65. data/lib/generators/b4um/install/templates/theme_controller.js +122 -0
  66. data/lib/generators/b4um/pagination/pagination_generator.rb +179 -0
  67. data/lib/generators/b4um/pagination/templates/_pagination.html.erb.tt +48 -0
  68. data/lib/generators/b4um/pagination/templates/pagination.rb +36 -0
  69. data/lib/generators/b4um/scaffold/scaffold_generator.rb +333 -0
  70. data/lib/generators/b4um/scaffold/templates/_bento.html.erb.tt +26 -0
  71. data/lib/generators/b4um/scaffold/templates/_form.html.erb.tt +218 -0
  72. data/lib/generators/b4um/scaffold/templates/_resource.html.erb.tt +144 -0
  73. data/lib/generators/b4um/scaffold/templates/_table.html.erb.tt +40 -0
  74. data/lib/generators/b4um/scaffold/templates/edit.html.erb.tt +21 -0
  75. data/lib/generators/b4um/scaffold/templates/index.html.erb.tt +24 -0
  76. data/lib/generators/b4um/scaffold/templates/new.html.erb.tt +17 -0
  77. data/lib/generators/b4um/scaffold/templates/show.html.erb.tt +31 -0
  78. data/lib/generators/b4um/search/search_generator.rb +165 -0
  79. data/lib/generators/b4um/search/templates/search.rb +34 -0
  80. data/lib/generators/b4um/search/templates/search_form.html.erb.tt +15 -0
  81. data/lib/generators/b4um/table/table_generator.rb +63 -0
  82. data/lib/generators/b4um/table/templates/_table.html.erb.tt +40 -0
  83. data/lib/generators/b4um/trix/templates/b4um_rich_text_helper.rb +58 -0
  84. data/lib/generators/b4um/trix/templates/b4um_trix.js +551 -0
  85. data/lib/generators/b4um/trix/trix_generator.rb +383 -0
  86. data/sig/b4um_generators.rbs +4 -0
  87. metadata +148 -0
@@ -0,0 +1,43 @@
1
+ .b4um-badge {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+
6
+ padding: 0.3rem 0.65rem;
7
+
8
+ font-size: 0.8rem;
9
+ font-weight: 600;
10
+ line-height: 1;
11
+
12
+ color: var(--b4um-text);
13
+ background-color: var(--b4um-surface-soft);
14
+
15
+ border: 1px solid var(--b4um-border-light);
16
+ border-radius: 999px;
17
+
18
+ white-space: nowrap;
19
+ }
20
+
21
+ .b4um-badge--success {
22
+ color: var(--b4um-text);
23
+ background-color: var(--b4um-success-background);
24
+ border-color: var(--b4um-success-border);
25
+ }
26
+
27
+ .b4um-badge--warning {
28
+ color: var(--b4um-warning);
29
+ background-color: var(--b4um-warning-background);
30
+ border-color: var(--b4um-warning-border);
31
+ }
32
+
33
+ .b4um-badge--danger {
34
+ color: var(--b4um-danger);
35
+ background-color: var(--b4um-danger-background);
36
+ border-color: var(--b4um-danger-soft-border);
37
+ }
38
+
39
+ .b4um-badge--muted {
40
+ color: var(--b4um-text-muted);
41
+ background-color: var(--b4um-neutral-background);
42
+ border-color: var(--b4um-border-light);
43
+ }
@@ -0,0 +1,42 @@
1
+ /* -------------------------------------------------------
2
+ Base
3
+ ------------------------------------------------------- */
4
+
5
+ html {
6
+ min-height: 100%;
7
+ }
8
+
9
+ body {
10
+ display: flex;
11
+ flex-direction: column;
12
+
13
+ min-height: 100vh;
14
+ margin: 0;
15
+
16
+ background-color: var(--b4um-page-background);
17
+ color: var(--b4um-text);
18
+
19
+ font-family: Verdana, Helvetica, Arial, sans-serif;
20
+ font-size: 14px;
21
+ }
22
+
23
+ main {
24
+ flex: 1 0 auto;
25
+ }
26
+
27
+ .b4um-footer {
28
+ flex-shrink: 0;
29
+ }
30
+
31
+ a {
32
+ color: var(--b4um-link);
33
+ }
34
+
35
+ a:active,
36
+ a:visited {
37
+ color: var(--b4um-link-visited);
38
+ }
39
+
40
+ a img {
41
+ border: none;
42
+ }
@@ -0,0 +1,58 @@
1
+ /* -------------------------------------------------------
2
+ Callouts
3
+ ------------------------------------------------------- */
4
+
5
+ .b4um-callout {
6
+ padding: 1rem 1.25rem;
7
+
8
+ color: var(--b4um-text);
9
+ background-color: var(--b4um-surface-soft);
10
+
11
+ border: 1px solid var(--b4um-border);
12
+ border-left: 4px solid var(--b4um-primary);
13
+ border-radius: var(--b4um-radius);
14
+ }
15
+
16
+ .b4um-callout__title {
17
+ margin: 0;
18
+
19
+ font-size: 1rem;
20
+ font-weight: 600;
21
+ }
22
+
23
+ .b4um-callout__text {
24
+ margin: 0.4rem 0 0;
25
+
26
+ color: var(--b4um-text-secondary);
27
+ line-height: 1.5;
28
+ }
29
+
30
+ /* Info */
31
+
32
+ .b4um-callout--info {
33
+ border-left-color: var(--b4um-primary);
34
+ }
35
+
36
+ /* Success */
37
+
38
+ .b4um-callout--success {
39
+ background-color: var(--b4um-success-background);
40
+ border-color: var(--b4um-success-border);
41
+ border-left-color: var(--b4um-success-border);
42
+ }
43
+
44
+ /* Warning */
45
+
46
+ .b4um-callout--warning {
47
+ background-color: var(--b4um-warning-background);
48
+ border-color: var(--b4um-warning-border);
49
+ border-left-color: var(--b4um-warning);
50
+ }
51
+
52
+ /* Danger */
53
+
54
+ .b4um-callout--danger {
55
+ background-color: var(--b4um-danger-background);
56
+ border-color: var(--b4um-danger-soft-border);
57
+ border-left-color: var(--b4um-danger);
58
+ }
@@ -0,0 +1,401 @@
1
+ /* -------------------------------------------------------
2
+ Bento grid
3
+ ------------------------------------------------------- */
4
+
5
+ .b4um-grid {
6
+ display: grid;
7
+ grid-template-columns: repeat(12, minmax(0, 1fr));
8
+ gap: 20px;
9
+
10
+ width: 100%;
11
+ margin: 32px 0;
12
+ }
13
+
14
+ /* -------------------------------------------------------
15
+ Card grid
16
+ ------------------------------------------------------- */
17
+
18
+ .b4um-card-grid {
19
+ display: grid;
20
+ grid-template-columns: repeat(3, minmax(0, 1fr));
21
+ gap: 20px;
22
+
23
+ width: 100%;
24
+ margin: 32px 0;
25
+ }
26
+
27
+ .b4um-card-grid > .b4um-card {
28
+ display: flex;
29
+ flex-direction: column;
30
+
31
+ grid-column: auto;
32
+ grid-row: auto;
33
+
34
+ min-width: 0;
35
+ }
36
+
37
+ .b4um-card-grid > .b4um-card .b4um-card__actions {
38
+ margin-top: auto;
39
+ padding-top: 22px;
40
+ }
41
+
42
+ /* -------------------------------------------------------
43
+ Cards
44
+ ------------------------------------------------------- */
45
+
46
+ .b4um-card {
47
+ grid-column: span 4;
48
+
49
+ min-width: 0;
50
+ padding: 28px;
51
+
52
+ box-sizing: border-box;
53
+
54
+ border: 1px solid var(--b4um-border-light);
55
+ border-radius: var(--b4um-radius);
56
+
57
+ background-color: var(--b4um-surface);
58
+ box-shadow: 0 6px 20px var(--b4um-primary-shadow-soft);
59
+
60
+ transition:
61
+ border-color 0.18s ease,
62
+ box-shadow 0.18s ease,
63
+ transform 0.18s ease;
64
+ }
65
+
66
+ .b4um-card:hover {
67
+ border-color: var(--b4um-border);
68
+ box-shadow: 0 10px 30px var(--b4um-primary-shadow);
69
+ }
70
+
71
+ /* -------------------------------------------------------
72
+ Card sizes
73
+ ------------------------------------------------------- */
74
+
75
+ .b4um-card--wide {
76
+ grid-column: span 8;
77
+ }
78
+
79
+ .b4um-card--large {
80
+ grid-column: span 8;
81
+ grid-row: span 2;
82
+ }
83
+
84
+ .b4um-card--full {
85
+ grid-column: 1 / -1;
86
+ }
87
+
88
+ /* -------------------------------------------------------
89
+ Card content
90
+ ------------------------------------------------------- */
91
+
92
+ .b4um-card__eyebrow {
93
+ margin: 0 0 8px;
94
+
95
+ color: var(--b4um-primary);
96
+
97
+ font-size: 0.8rem;
98
+ font-weight: 700;
99
+ letter-spacing: 0.08em;
100
+ text-transform: uppercase;
101
+ }
102
+
103
+ .b4um-card__title {
104
+ margin: 0;
105
+
106
+ color: var(--b4um-text);
107
+
108
+ font-size: 1.35rem;
109
+ line-height: 1.25;
110
+ }
111
+
112
+ .b4um-card__text {
113
+ margin: 12px 0 0;
114
+
115
+ color: var(--b4um-text-secondary);
116
+
117
+ line-height: 1.6;
118
+ }
119
+
120
+ .b4um-card__actions {
121
+ display: flex;
122
+ flex-wrap: wrap;
123
+ gap: 10px;
124
+
125
+ margin-top: 22px;
126
+ }
127
+
128
+ /* -------------------------------------------------------
129
+ Card media
130
+ ------------------------------------------------------- */
131
+
132
+ .b4um-card__media {
133
+ margin: -28px -28px 24px;
134
+
135
+ overflow: hidden;
136
+
137
+ border-radius: var(--b4um-radius) var(--b4um-radius) 0 0;
138
+ }
139
+
140
+ .b4um-card__image {
141
+ display: block;
142
+
143
+ width: 100%;
144
+ height: 220px;
145
+
146
+ object-fit: cover;
147
+ }
148
+
149
+ .b4um-card--large .b4um-card__image {
150
+ height: 320px;
151
+ }
152
+
153
+ /* -------------------------------------------------------
154
+ Soft card
155
+ ------------------------------------------------------- */
156
+
157
+ .b4um-card--soft {
158
+ border-color: transparent;
159
+
160
+ background-color: var(--b4um-surface-soft);
161
+
162
+ box-shadow: none;
163
+ }
164
+
165
+ .b4um-card--soft:hover {
166
+ border-color: transparent;
167
+
168
+ box-shadow: 0 8px 24px var(--b4um-primary-shadow-soft);
169
+ }
170
+
171
+ /* -------------------------------------------------------
172
+ List
173
+ ------------------------------------------------------- */
174
+
175
+ .b4um-list {
176
+ display: flex;
177
+ flex-direction: column;
178
+ gap: 12px;
179
+
180
+ width: 100%;
181
+ margin: 32px 0;
182
+ }
183
+
184
+ .b4um-list__item {
185
+ display: flex;
186
+ align-items: center;
187
+ gap: 24px;
188
+
189
+ width: 100%;
190
+ min-width: 0;
191
+ padding: 20px 24px;
192
+
193
+ box-sizing: border-box;
194
+
195
+ border: 1px solid var(--b4um-border-light);
196
+ border-radius: var(--b4um-radius);
197
+
198
+ background-color: var(--b4um-surface);
199
+ box-shadow: 0 4px 14px var(--b4um-primary-shadow-soft);
200
+
201
+ transition:
202
+ border-color 0.18s ease,
203
+ box-shadow 0.18s ease;
204
+ }
205
+
206
+ .b4um-list__item:hover {
207
+ border-color: var(--b4um-border);
208
+ box-shadow: 0 8px 22px var(--b4um-primary-shadow);
209
+ }
210
+
211
+ .b4um-list__content {
212
+ flex: 1 1 auto;
213
+
214
+ min-width: 0;
215
+ }
216
+
217
+ .b4um-list__actions {
218
+ flex: 0 0 auto;
219
+ }
220
+
221
+ /* -------------------------------------------------------
222
+ Alternating
223
+ ------------------------------------------------------- */
224
+
225
+ .b4um-alternating {
226
+ display: flex;
227
+ flex-direction: column;
228
+ gap: 20px;
229
+
230
+ width: 100%;
231
+ margin: 32px 0;
232
+ }
233
+
234
+ .b4um-alternating__item {
235
+ display: grid;
236
+ grid-template-columns: minmax(0, 3fr) minmax(180px, 1fr);
237
+ align-items: stretch;
238
+ gap: 0;
239
+
240
+ min-width: 0;
241
+ overflow: hidden;
242
+
243
+ border: 1px solid var(--b4um-border-light);
244
+ border-radius: var(--b4um-radius);
245
+
246
+ background-color: var(--b4um-surface);
247
+ box-shadow: 0 6px 20px var(--b4um-primary-shadow-soft);
248
+
249
+ transition:
250
+ border-color 0.18s ease,
251
+ box-shadow 0.18s ease;
252
+ }
253
+
254
+ .b4um-alternating__item:hover {
255
+ border-color: var(--b4um-border);
256
+ box-shadow: 0 10px 30px var(--b4um-primary-shadow);
257
+ }
258
+
259
+ .b4um-alternating__content {
260
+ min-width: 0;
261
+ padding: 28px;
262
+ }
263
+
264
+ .b4um-alternating__actions {
265
+ display: flex;
266
+ align-items: center;
267
+ justify-content: center;
268
+
269
+ padding: 28px;
270
+
271
+ border-left: 1px solid var(--b4um-border-light);
272
+ background-color: var(--b4um-surface-soft);
273
+ }
274
+
275
+ .b4um-alternating__actions .button {
276
+ width: 100%;
277
+ }
278
+
279
+ .b4um-alternating__item--reverse {
280
+ grid-template-columns: minmax(180px, 1fr) minmax(0, 3fr);
281
+ }
282
+
283
+ .b4um-alternating__item--reverse .b4um-alternating__content {
284
+ order: 2;
285
+ }
286
+
287
+ .b4um-alternating__item--reverse .b4um-alternating__actions {
288
+ order: 1;
289
+
290
+ border-right: 1px solid var(--b4um-border-light);
291
+ border-left: 0;
292
+ }
293
+
294
+ /* -------------------------------------------------------
295
+ Responsive
296
+ ------------------------------------------------------- */
297
+
298
+ @media (max-width: 900px) {
299
+ .b4um-card-grid {
300
+ grid-template-columns: repeat(2, minmax(0, 1fr));
301
+ }
302
+
303
+ .b4um-card,
304
+ .b4um-card--wide,
305
+ .b4um-card--large {
306
+ grid-column: span 6;
307
+ }
308
+
309
+ .b4um-card--full {
310
+ grid-column: 1 / -1;
311
+ }
312
+ }
313
+
314
+ @media (max-width: 600px) {
315
+ .b4um-card-grid {
316
+ grid-template-columns: minmax(0, 1fr);
317
+ gap: 16px;
318
+
319
+ margin: 24px 0;
320
+ }
321
+
322
+ .b4um-list {
323
+ gap: 10px;
324
+
325
+ margin: 24px 0;
326
+ }
327
+
328
+ .b4um-list__item {
329
+ flex-direction: column;
330
+ align-items: stretch;
331
+ gap: 16px;
332
+
333
+ padding: 20px;
334
+ }
335
+
336
+ .b4um-list__actions {
337
+ display: flex;
338
+ }
339
+
340
+ .b4um-list__actions .button {
341
+ width: 100%;
342
+ }
343
+
344
+ .b4um-alternating {
345
+ gap: 16px;
346
+
347
+ margin: 24px 0;
348
+ }
349
+
350
+ .b4um-alternating__item,
351
+ .b4um-alternating__item--reverse {
352
+ grid-template-columns: minmax(0, 1fr);
353
+ }
354
+
355
+ .b4um-alternating__content,
356
+ .b4um-alternating__item--reverse .b4um-alternating__content {
357
+ order: 1;
358
+
359
+ padding: 22px;
360
+ }
361
+
362
+ .b4um-alternating__actions,
363
+ .b4um-alternating__item--reverse .b4um-alternating__actions {
364
+ order: 2;
365
+
366
+ padding: 0 22px 22px;
367
+
368
+ border: 0;
369
+ background-color: transparent;
370
+ }
371
+
372
+ .b4um-grid {
373
+ grid-template-columns: minmax(0, 1fr);
374
+ gap: 16px;
375
+
376
+ margin: 24px 0;
377
+ }
378
+
379
+ .b4um-card,
380
+ .b4um-card--wide,
381
+ .b4um-card--large,
382
+ .b4um-card--full {
383
+ grid-column: 1;
384
+ grid-row: auto;
385
+
386
+ padding: 22px;
387
+
388
+ border-radius: var(--b4um-radius);
389
+ }
390
+
391
+ .b4um-card__media {
392
+ margin: -22px -22px 20px;
393
+
394
+ border-radius: var(--b4um-radius) var(--b4um-radius) 0 0;
395
+ }
396
+
397
+ .b4um-card__image,
398
+ .b4um-card--large .b4um-card__image {
399
+ height: 220px;
400
+ }
401
+ }
@@ -0,0 +1,52 @@
1
+ .b4um-comments {
2
+ margin-top: 2rem;
3
+ }
4
+
5
+ .b4um-comments__list {
6
+ display: grid;
7
+ gap: 0;
8
+ }
9
+
10
+ .b4um-comments__item {
11
+ padding: 1.25rem 0;
12
+ border-bottom: 1px solid var(--b4um-border);
13
+ }
14
+
15
+ .b4um-comments__item:first-child {
16
+ padding-top: 0;
17
+ }
18
+
19
+ .b4um-comments__body {
20
+ margin: 0;
21
+ }
22
+
23
+ .b4um-comments__body > :first-child {
24
+ margin-top: 0;
25
+ }
26
+
27
+ .b4um-comments__body > :last-child {
28
+ margin-bottom: 0;
29
+ }
30
+
31
+ .b4um-comments__meta {
32
+ margin-top: 0.5rem;
33
+ font-size: 0.875rem;
34
+ color: var(--b4um-text-muted);
35
+ }
36
+
37
+ .b4um-comments__actions {
38
+ margin-top: 0.75rem;
39
+ }
40
+
41
+ .b4um-comments__empty {
42
+ margin: 0;
43
+ color: var(--b4um-text-muted);
44
+ }
45
+
46
+ .b4um-comments__form {
47
+ margin-top: 2rem;
48
+ }
49
+
50
+ .b4um-comments__form h3 {
51
+ margin-top: 0;
52
+ }
@@ -0,0 +1,83 @@
1
+ /* -------------------------------------------------------
2
+ Cookie Consent
3
+ ------------------------------------------------------- */
4
+
5
+ .b4um-cookie-consent {
6
+ position: fixed;
7
+ right: 1rem;
8
+ bottom: 1rem;
9
+ left: 1rem;
10
+
11
+ z-index: 1000;
12
+
13
+ display: flex;
14
+ justify-content: center;
15
+
16
+ pointer-events: none;
17
+ }
18
+
19
+ .b4um-cookie-consent[hidden] {
20
+ display: none;
21
+ }
22
+
23
+ .b4um-cookie-consent__content {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ gap: 1.5rem;
28
+
29
+ width: 100%;
30
+ max-width: 960px;
31
+
32
+ padding: 1rem 1.25rem;
33
+
34
+ color: var(--b4um-text);
35
+ background-color: var(--b4um-surface);
36
+
37
+ border: 1px solid var(--b4um-border);
38
+ border-radius: var(--b4um-radius);
39
+
40
+ box-shadow: 0 12px 32px rgb(0 0 0 / 18%);
41
+
42
+ pointer-events: auto;
43
+ }
44
+
45
+ .b4um-cookie-consent__text {
46
+ flex: 1;
47
+
48
+ margin: 0;
49
+
50
+ line-height: 1.5;
51
+ }
52
+
53
+ .b4um-cookie-consent__actions {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 0.75rem;
57
+
58
+ flex-shrink: 0;
59
+ }
60
+
61
+ @media (max-width: 640px) {
62
+ .b4um-cookie-consent {
63
+ right: 0.75rem;
64
+ bottom: 0.75rem;
65
+ left: 0.75rem;
66
+ }
67
+
68
+ .b4um-cookie-consent__content {
69
+ flex-direction: column;
70
+ align-items: stretch;
71
+ gap: 1rem;
72
+
73
+ padding: 1rem;
74
+ }
75
+
76
+ .b4um-cookie-consent__actions {
77
+ width: 100%;
78
+ }
79
+
80
+ .b4um-cookie-consent__actions .button {
81
+ flex: 1;
82
+ }
83
+ }
@@ -0,0 +1,26 @@
1
+ .b4um-empty-state {
2
+ grid-column: 1 / -1;
3
+
4
+ padding: 3rem 2rem;
5
+
6
+ text-align: center;
7
+
8
+ background: var(--b4um-surface);
9
+ border: 1px dashed var(--b4um-border);
10
+ border-radius: var(--b4um-radius);
11
+ }
12
+
13
+ .b4um-empty-state__title {
14
+ margin: 0;
15
+
16
+ font-size: 1.25rem;
17
+ font-weight: 600;
18
+ }
19
+
20
+ .b4um-empty-state__text {
21
+ max-width: 34rem;
22
+
23
+ margin: 0.75rem auto 0;
24
+
25
+ color: var(--b4um-text-muted);
26
+ }