@openwarelabs/blocks 0.0.0-stage → 0.6.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 (39) hide show
  1. package/README.md +45 -2
  2. package/dist/heroes/Hero01/Hero01.d.cts +3 -0
  3. package/dist/heroes/Hero01/Hero01.d.ts +3 -0
  4. package/dist/heroes/Hero01/Hero01.types.d.cts +18 -0
  5. package/dist/heroes/Hero01/Hero01.types.d.ts +18 -0
  6. package/dist/heroes/Hero02/Hero02.d.cts +3 -0
  7. package/dist/heroes/Hero02/Hero02.d.ts +3 -0
  8. package/dist/heroes/Hero02/Hero02.types.d.cts +18 -0
  9. package/dist/heroes/Hero02/Hero02.types.d.ts +18 -0
  10. package/dist/heroes/Hero03/Hero03.d.cts +3 -0
  11. package/dist/heroes/Hero03/Hero03.d.ts +3 -0
  12. package/dist/heroes/Hero03/Hero03.types.d.cts +40 -0
  13. package/dist/heroes/Hero03/Hero03.types.d.ts +40 -0
  14. package/dist/heroes/Hero04/Hero04.d.cts +3 -0
  15. package/dist/heroes/Hero04/Hero04.d.ts +3 -0
  16. package/dist/heroes/Hero04/Hero04.types.d.cts +21 -0
  17. package/dist/heroes/Hero04/Hero04.types.d.ts +21 -0
  18. package/dist/heroes/Hero05/Hero05.d.cts +3 -0
  19. package/dist/heroes/Hero05/Hero05.d.ts +3 -0
  20. package/dist/heroes/Hero05/Hero05.types.d.cts +24 -0
  21. package/dist/heroes/Hero05/Hero05.types.d.ts +24 -0
  22. package/dist/heroes/Hero06/Hero06.d.cts +3 -0
  23. package/dist/heroes/Hero06/Hero06.d.ts +3 -0
  24. package/dist/heroes/Hero06/Hero06.types.d.cts +37 -0
  25. package/dist/heroes/Hero06/Hero06.types.d.ts +37 -0
  26. package/dist/index.cjs +370 -0
  27. package/dist/index.cjs.map +7 -0
  28. package/dist/index.d.cts +13 -0
  29. package/dist/index.d.ts +13 -0
  30. package/dist/index.js +347 -0
  31. package/dist/index.js.map +7 -0
  32. package/dist/shared/BlockActions.d.cts +5 -0
  33. package/dist/shared/BlockActions.d.ts +5 -0
  34. package/dist/shared/icons.d.cts +4 -0
  35. package/dist/shared/icons.d.ts +4 -0
  36. package/dist/shared/shared.types.d.cts +38 -0
  37. package/dist/shared/shared.types.d.ts +38 -0
  38. package/dist/styles.css +569 -0
  39. package/package.json +56 -5
@@ -0,0 +1,569 @@
1
+ /* @openwarelabs/blocks: import after @openwarelabs/ui/styles.css. */
2
+ /* heroes/Hero01/Hero01.css */
3
+ .ow-hero01,
4
+ .ow-hero01 *,
5
+ .ow-hero01 *::before,
6
+ .ow-hero01 *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .ow-hero01 {
11
+ overflow: hidden;
12
+ background: var(--ow-paper);
13
+ padding: 112px var(--ow-page-gutter) 0;
14
+ }
15
+
16
+ .ow-hero01__inner {
17
+ display: flex;
18
+ max-width: 880px;
19
+ flex-direction: column;
20
+ align-items: center;
21
+ margin: 0 auto;
22
+ text-align: center;
23
+ }
24
+
25
+ .ow-hero01__title {
26
+ margin-top: 24px;
27
+ }
28
+
29
+ .ow-hero01__lead {
30
+ margin-top: 22px;
31
+ }
32
+
33
+ .ow-hero01__actions {
34
+ display: flex;
35
+ flex-wrap: wrap;
36
+ justify-content: center;
37
+ gap: var(--ow-space-lg);
38
+ margin-top: 34px;
39
+ }
40
+
41
+ .ow-hero01__note {
42
+ margin-top: 16px;
43
+ }
44
+
45
+ /* The product, cropped at the bottom so it runs on into the page. */
46
+
47
+ .ow-hero01__visual {
48
+ max-width: 1080px;
49
+ margin: 72px auto 0;
50
+ -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
51
+ mask-image: linear-gradient(to bottom, #000 70%, transparent);
52
+ }
53
+
54
+ @media (max-width: 760px) {
55
+ .ow-hero01 {
56
+ padding-top: 72px;
57
+ }
58
+ .ow-hero01__actions {
59
+ width: 100%;
60
+ flex-direction: column;
61
+ align-items: stretch;
62
+ }
63
+ .ow-hero01__visual {
64
+ margin-top: 48px;
65
+ }
66
+ }
67
+
68
+ /* heroes/Hero02/Hero02.css */
69
+ .ow-hero02,
70
+ .ow-hero02 *,
71
+ .ow-hero02 *::before,
72
+ .ow-hero02 *::after {
73
+ box-sizing: border-box;
74
+ }
75
+
76
+ .ow-hero02 {
77
+ overflow: hidden;
78
+ background: var(--ow-paper);
79
+ padding: 112px 32px 120px;
80
+ color: var(--ow-text);
81
+ }
82
+
83
+ .ow-hero02__inner {
84
+ display: grid;
85
+ max-width: var(--ow-page-max);
86
+ grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
87
+ align-items: center;
88
+ gap: 72px;
89
+ margin: 0 auto;
90
+ }
91
+
92
+ .ow-hero02__text {
93
+ display: flex;
94
+ flex-direction: column;
95
+ align-items: flex-start;
96
+ }
97
+
98
+ .ow-hero02__title {
99
+ margin-top: 24px;
100
+ }
101
+
102
+ .ow-hero02__lead {
103
+ max-width: 500px;
104
+ margin-top: 22px;
105
+ }
106
+
107
+ .ow-hero02__actions {
108
+ display: flex;
109
+ flex-wrap: wrap;
110
+ gap: var(--ow-space-lg);
111
+ margin-top: 34px;
112
+ }
113
+
114
+ .ow-hero02__points {
115
+ display: grid;
116
+ gap: 8px;
117
+ margin: 32px 0 0;
118
+ padding: 0;
119
+ list-style: none;
120
+ }
121
+
122
+ .ow-hero02__point {
123
+ display: inline-flex;
124
+ align-items: center;
125
+ gap: 7px;
126
+ }
127
+
128
+ .ow-hero02__points svg {
129
+ color: var(--ow-primary-text);
130
+ }
131
+
132
+ @media (max-width: 960px) {
133
+ .ow-hero02 {
134
+ padding-top: 88px;
135
+ }
136
+ .ow-hero02__inner {
137
+ grid-template-columns: minmax(0, 1fr);
138
+ gap: 56px;
139
+ }
140
+ .ow-hero02__lead {
141
+ max-width: 580px;
142
+ }
143
+ .ow-hero02__points {
144
+ display: flex;
145
+ flex-wrap: wrap;
146
+ gap: 8px 22px;
147
+ }
148
+ }
149
+
150
+ @media (max-width: 760px) {
151
+ .ow-hero02 {
152
+ padding: 72px var(--ow-page-gutter) 80px;
153
+ }
154
+ .ow-hero02__inner {
155
+ gap: 48px;
156
+ }
157
+ .ow-hero02__actions {
158
+ width: 100%;
159
+ flex-direction: column;
160
+ align-items: stretch;
161
+ }
162
+ .ow-hero02__points {
163
+ display: grid;
164
+ }
165
+ }
166
+
167
+ /* heroes/Hero03/Hero03.css */
168
+ .ow-hero03,
169
+ .ow-hero03 *,
170
+ .ow-hero03 *::before,
171
+ .ow-hero03 *::after {
172
+ box-sizing: border-box;
173
+ }
174
+
175
+ .ow-hero03 {
176
+ overflow: hidden;
177
+ background: var(--ow-paper);
178
+ padding: 120px var(--ow-page-gutter) 112px;
179
+ color: var(--ow-text);
180
+ }
181
+
182
+ .ow-hero03__inner {
183
+ display: flex;
184
+ max-width: 760px;
185
+ flex-direction: column;
186
+ align-items: center;
187
+ margin: 0 auto;
188
+ text-align: center;
189
+ }
190
+
191
+ .ow-hero03__title {
192
+ margin-top: 24px;
193
+ }
194
+
195
+ .ow-hero03__lead {
196
+ margin-top: 22px;
197
+ }
198
+
199
+ /* The form: a pill-shaped field and its button on one line. */
200
+
201
+ .ow-hero03__form {
202
+ width: 100%;
203
+ max-width: 480px;
204
+ margin-top: 36px;
205
+ }
206
+
207
+ .ow-hero03__row {
208
+ display: flex;
209
+ gap: var(--ow-space-sm);
210
+ }
211
+
212
+ .ow-hero03 .ow-hero03__input {
213
+ height: 46px;
214
+ flex: 1;
215
+ border-radius: var(--ow-radius-pill);
216
+ padding-left: 18px;
217
+ box-shadow: var(--ow-shadow-control);
218
+ font-size: 15px;
219
+ }
220
+
221
+ .ow-hero03__error {
222
+ margin: 10px 0 0 18px;
223
+ text-align: left;
224
+ }
225
+
226
+ .ow-hero03__note {
227
+ margin-top: 14px;
228
+ }
229
+
230
+ /* What's left in place of the form once someone has joined. */
231
+
232
+ .ow-hero03__done {
233
+ display: flex;
234
+ width: 100%;
235
+ max-width: 480px;
236
+ align-items: center;
237
+ gap: 12px;
238
+ margin-top: 36px;
239
+ border: 1px solid var(--ow-border);
240
+ border-radius: var(--ow-radius-card);
241
+ background: var(--ow-surface);
242
+ padding: 14px 14px 14px 16px;
243
+ text-align: left;
244
+ animation: ow-hero03-in var(--ow-duration-slow) var(--ow-ease-emphasized);
245
+ }
246
+
247
+ .ow-hero03__done-icon {
248
+ display: inline-flex;
249
+ width: 32px;
250
+ height: 32px;
251
+ flex-shrink: 0;
252
+ align-items: center;
253
+ justify-content: center;
254
+ border-radius: 50%;
255
+ background: var(--ow-success-surface);
256
+ color: var(--ow-success-text);
257
+ }
258
+
259
+ .ow-hero03__done-text {
260
+ display: grid;
261
+ min-width: 0;
262
+ flex: 1;
263
+ gap: 2px;
264
+ }
265
+
266
+ .ow-hero03__done-detail {
267
+ overflow-wrap: anywhere;
268
+ }
269
+
270
+ @keyframes ow-hero03-in {
271
+ from {
272
+ opacity: 0;
273
+ transform: translateY(4px);
274
+ }
275
+ }
276
+
277
+ @media (max-width: 760px) {
278
+ .ow-hero03 {
279
+ padding: 72px var(--ow-page-gutter) 80px;
280
+ }
281
+ .ow-hero03__row {
282
+ flex-direction: column;
283
+ }
284
+ .ow-hero03 .ow-hero03__input {
285
+ flex: none;
286
+ }
287
+ }
288
+
289
+ @media (prefers-reduced-motion: reduce) {
290
+ .ow-hero03__done {
291
+ animation: none;
292
+ }
293
+ }
294
+
295
+ /* heroes/Hero04/Hero04.css */
296
+ .ow-hero04,
297
+ .ow-hero04 *,
298
+ .ow-hero04 *::before,
299
+ .ow-hero04 *::after {
300
+ box-sizing: border-box;
301
+ }
302
+
303
+ .ow-hero04 {
304
+ overflow: hidden;
305
+ background: var(--ow-paper);
306
+ color: var(--ow-text);
307
+ }
308
+
309
+ .ow-hero04__grid {
310
+ padding: 128px 32px 136px;
311
+ }
312
+
313
+ /* The headline in the middle column; the sample work sits either side of it on wide screens. */
314
+
315
+ .ow-hero04__layout {
316
+ display: grid;
317
+ max-width: var(--ow-page-max);
318
+ grid-template-columns: minmax(0, 1fr) minmax(0, 640px) minmax(0, 1fr);
319
+ align-items: center;
320
+ gap: 40px;
321
+ margin: 0 auto;
322
+ }
323
+
324
+ .ow-hero04__text {
325
+ display: flex;
326
+ flex-direction: column;
327
+ align-items: center;
328
+ }
329
+
330
+ .ow-hero04__title {
331
+ margin-top: 24px;
332
+ }
333
+
334
+ .ow-hero04__lead {
335
+ margin-top: 22px;
336
+ }
337
+
338
+ .ow-hero04__actions {
339
+ display: flex;
340
+ flex-wrap: wrap;
341
+ justify-content: center;
342
+ gap: var(--ow-space-lg);
343
+ margin-top: 34px;
344
+ }
345
+
346
+ @media (max-width: 1180px) {
347
+ .ow-hero04__layout {
348
+ grid-template-columns: minmax(0, 1fr);
349
+ }
350
+ }
351
+
352
+ @media (max-width: 760px) {
353
+ .ow-hero04__grid {
354
+ padding: 80px var(--ow-page-gutter) 88px;
355
+ }
356
+ .ow-hero04__actions {
357
+ width: 100%;
358
+ flex-direction: column;
359
+ align-items: stretch;
360
+ }
361
+ }
362
+
363
+ /* heroes/Hero05/Hero05.css */
364
+ .ow-hero05,
365
+ .ow-hero05 *,
366
+ .ow-hero05 *::before,
367
+ .ow-hero05 *::after {
368
+ box-sizing: border-box;
369
+ }
370
+
371
+ .ow-hero05 {
372
+ background: var(--ow-paper);
373
+ padding: 128px 32px 88px;
374
+ color: var(--ow-text);
375
+ }
376
+
377
+ .ow-hero05__inner {
378
+ max-width: var(--ow-page-max);
379
+ margin: 0 auto;
380
+ }
381
+
382
+ /* The headline on the left, the lead and the buttons on the right, sharing a baseline at the bottom. */
383
+
384
+ .ow-hero05__top {
385
+ display: grid;
386
+ grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
387
+ align-items: end;
388
+ gap: 64px;
389
+ }
390
+
391
+ .ow-hero05__heading {
392
+ display: flex;
393
+ flex-direction: column;
394
+ align-items: flex-start;
395
+ }
396
+
397
+ .ow-hero05__title {
398
+ margin-top: 24px;
399
+ }
400
+
401
+ .ow-hero05__actions {
402
+ display: flex;
403
+ flex-wrap: wrap;
404
+ gap: var(--ow-space-lg);
405
+ margin-top: 28px;
406
+ }
407
+
408
+ /* The first proof: who already uses it. */
409
+
410
+ .ow-hero05__proof {
411
+ margin-top: 104px;
412
+ border-top: 1px solid var(--ow-border);
413
+ padding-top: 36px;
414
+ }
415
+
416
+ .ow-hero05__list {
417
+ display: flex;
418
+ flex-wrap: wrap;
419
+ align-items: center;
420
+ justify-content: space-between;
421
+ gap: 28px 40px;
422
+ margin: 28px 0 0;
423
+ padding: 0;
424
+ list-style: none;
425
+ }
426
+
427
+ /* Each logo sits on its own, as tall as it is, so a row of them lines up on its centres. */
428
+ .ow-hero05__logo {
429
+ display: flex;
430
+ align-items: center;
431
+ }
432
+
433
+ @media (max-width: 1024px) {
434
+ .ow-hero05 {
435
+ padding-top: 104px;
436
+ }
437
+ .ow-hero05__top {
438
+ grid-template-columns: minmax(0, 1fr);
439
+ gap: 28px;
440
+ }
441
+ .ow-hero05__list {
442
+ display: grid;
443
+ grid-template-columns: repeat(4, minmax(0, 1fr));
444
+ justify-items: start;
445
+ }
446
+ }
447
+
448
+ @media (max-width: 760px) {
449
+ .ow-hero05 {
450
+ padding: 72px var(--ow-page-gutter) 64px;
451
+ }
452
+ .ow-hero05__actions {
453
+ flex-direction: column;
454
+ align-items: stretch;
455
+ }
456
+ .ow-hero05__proof {
457
+ margin-top: 64px;
458
+ padding-top: 28px;
459
+ }
460
+ .ow-hero05__list {
461
+ grid-template-columns: repeat(2, minmax(0, 1fr));
462
+ gap: 28px 16px;
463
+ }
464
+ }
465
+
466
+ /* heroes/Hero06/Hero06.css */
467
+ .ow-hero06,
468
+ .ow-hero06 *,
469
+ .ow-hero06 *::before,
470
+ .ow-hero06 *::after {
471
+ box-sizing: border-box;
472
+ }
473
+
474
+ .ow-hero06 {
475
+ overflow: hidden;
476
+ background: var(--ow-paper);
477
+ padding: 112px 32px 120px;
478
+ color: var(--ow-text);
479
+ }
480
+
481
+ .ow-hero06__inner {
482
+ display: grid;
483
+ max-width: var(--ow-page-max);
484
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
485
+ align-items: center;
486
+ gap: 72px;
487
+ margin: 0 auto;
488
+ }
489
+
490
+ .ow-hero06__text {
491
+ display: flex;
492
+ flex-direction: column;
493
+ align-items: flex-start;
494
+ }
495
+
496
+ .ow-hero06__title {
497
+ margin-top: 24px;
498
+ }
499
+
500
+ .ow-hero06__lead {
501
+ max-width: 480px;
502
+ margin-top: 22px;
503
+ }
504
+
505
+ .ow-hero06__buttons {
506
+ display: flex;
507
+ flex-wrap: wrap;
508
+ gap: var(--ow-space-sm);
509
+ margin-top: 34px;
510
+ }
511
+
512
+ .ow-hero06__meta {
513
+ display: flex;
514
+ flex-wrap: wrap;
515
+ align-items: center;
516
+ gap: 4px 14px;
517
+ margin-top: 18px;
518
+ }
519
+
520
+ .ow-hero06__meta > span + span::before {
521
+ content: "";
522
+ display: inline-block;
523
+ width: 3px;
524
+ height: 3px;
525
+ margin-right: 14px;
526
+ border-radius: 50%;
527
+ background: var(--ow-border-strong);
528
+ vertical-align: middle;
529
+ }
530
+
531
+ @media (max-width: 960px) {
532
+ .ow-hero06 {
533
+ padding-top: 88px;
534
+ }
535
+ .ow-hero06__inner {
536
+ grid-template-columns: minmax(0, 1fr);
537
+ gap: 48px;
538
+ }
539
+ .ow-hero06__lead {
540
+ max-width: 560px;
541
+ }
542
+ }
543
+
544
+ @media (max-width: 760px) {
545
+ .ow-hero06 {
546
+ padding: 72px var(--ow-page-gutter) 80px;
547
+ }
548
+ .ow-hero06__buttons {
549
+ width: 100%;
550
+ }
551
+ .ow-hero06__buttons > :first-child {
552
+ width: 100%;
553
+ }
554
+ .ow-hero06__buttons > :not(:first-child) {
555
+ flex: 1;
556
+ }
557
+ .ow-hero06__meta {
558
+ gap: 6px 12px;
559
+ }
560
+ .ow-hero06__meta > span + span::before {
561
+ margin-right: 12px;
562
+ }
563
+ .ow-hero06__meta > .ow-hero06__other {
564
+ flex-basis: 100%;
565
+ }
566
+ .ow-hero06__meta > .ow-hero06__other::before {
567
+ display: none;
568
+ }
569
+ }
package/package.json CHANGED
@@ -1,6 +1,57 @@
1
1
  {
2
- "name": "@openwarelabs/blocks",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
2
+ "name": "@openwarelabs/blocks",
3
+ "version": "0.6.0",
4
+ "description": "Openware UI blocks: whole page sections (heroes and more) as React components that take their content as props.",
5
+ "license": "MIT",
6
+ "author": "Alexander Silver",
7
+ "homepage": "https://github.com/openwarelabs/ui/tree/main/blocks#readme",
8
+ "bugs": {
9
+ "url": "https://github.com/openwarelabs/ui/issues"
10
+ },
11
+ "type": "module",
12
+ "sideEffects": [
13
+ "**/*.css"
14
+ ],
15
+ "main": "./dist/index.cjs",
16
+ "module": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "import": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "require": {
25
+ "types": "./dist/index.d.cts",
26
+ "default": "./dist/index.cjs"
27
+ }
28
+ },
29
+ "./styles.css": "./dist/styles.css",
30
+ "./package.json": "./package.json"
31
+ },
32
+ "files": [
33
+ "dist",
34
+ "README.md"
35
+ ],
36
+ "peerDependencies": {
37
+ "@openwarelabs/ui": "^0.6.0",
38
+ "react": ">=18",
39
+ "react-dom": ">=18"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "git+https://github.com/openwarelabs/ui.git",
47
+ "directory": "blocks"
48
+ },
49
+ "keywords": [
50
+ "react",
51
+ "components",
52
+ "blocks",
53
+ "hero",
54
+ "landing-page",
55
+ "openware-ui"
56
+ ]
57
+ }