@nok-integration/storefront-react 0.12.0 → 0.14.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.
- package/dist/index.d.ts +79 -0
- package/dist/index.mjs +879 -493
- package/dist/standalone/storefront.mjs +879 -493
- package/dist/standalone/styles.css +357 -17
- package/dist/styles.css +357 -17
- package/package.json +1 -1
|
@@ -47,6 +47,11 @@
|
|
|
47
47
|
--color-state-text-success: #147e4a;
|
|
48
48
|
--color-state-surface-success-soft: #def1e9;
|
|
49
49
|
--color-state-surface-critical-default: #d12424;
|
|
50
|
+
/* semantic/state/text/critical + .../surface/critical/soft. Same hex as the surface
|
|
51
|
+
token above, and a separate token in DAZN's library: one paints a solid critical
|
|
52
|
+
surface, the other writes critical text on a pale one. Keep them apart. */
|
|
53
|
+
--color-state-text-critical: #d12424;
|
|
54
|
+
--color-state-surface-critical-soft: #f5e5e5;
|
|
50
55
|
--color-state-text-warning: #ff9600;
|
|
51
56
|
--color-state-surface-warning-soft: #fcf1e1;
|
|
52
57
|
|
|
@@ -1162,6 +1167,196 @@
|
|
|
1162
1167
|
._summaryCard_1eqkm_275 > :last-child {
|
|
1163
1168
|
padding: 0 var(--space-16);
|
|
1164
1169
|
}
|
|
1170
|
+
/*
|
|
1171
|
+
* Figma `mobile/order/status-badge` — 24px tall, 2px radius, 12px bold uppercase.
|
|
1172
|
+
* Squarer and tighter than the catalogue `Badge`, which is a pill; they are separate
|
|
1173
|
+
* components in the design system and stay separate here.
|
|
1174
|
+
*/
|
|
1175
|
+
._badge_ghd02_6 {
|
|
1176
|
+
display: inline-flex;
|
|
1177
|
+
align-items: center;
|
|
1178
|
+
justify-content: center;
|
|
1179
|
+
gap: var(--space-4);
|
|
1180
|
+
height: 24px;
|
|
1181
|
+
min-width: 20px;
|
|
1182
|
+
padding: var(--space-4) var(--space-6);
|
|
1183
|
+
border-radius: var(--radius-2);
|
|
1184
|
+
font-size: var(--type-trimmed-xs-size);
|
|
1185
|
+
line-height: 1;
|
|
1186
|
+
font-weight: var(--font-weight-bold);
|
|
1187
|
+
text-transform: uppercase;
|
|
1188
|
+
white-space: nowrap;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
._progress_ghd02_22 {
|
|
1192
|
+
background: var(--color-state-surface-warning-soft);
|
|
1193
|
+
color: var(--color-state-text-warning);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
._delivered_ghd02_27 {
|
|
1197
|
+
background: var(--color-state-surface-success-soft);
|
|
1198
|
+
color: var(--color-state-text-success);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
._cancelled_ghd02_32 {
|
|
1202
|
+
background: var(--color-state-surface-critical-soft);
|
|
1203
|
+
color: var(--color-state-text-critical);
|
|
1204
|
+
}
|
|
1205
|
+
/* Figma `mobile/order/list` (4024:58594). */
|
|
1206
|
+
._page_y686q_2 {
|
|
1207
|
+
list-style: none;
|
|
1208
|
+
margin: 0;
|
|
1209
|
+
display: flex;
|
|
1210
|
+
flex-direction: column;
|
|
1211
|
+
gap: var(--space-12);
|
|
1212
|
+
padding: var(--space-16) var(--space-16) var(--space-24);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
._empty_y686q_11 {
|
|
1216
|
+
display: flex;
|
|
1217
|
+
align-items: center;
|
|
1218
|
+
justify-content: center;
|
|
1219
|
+
/* The design centres the empty state in the whole screen below the header, not at the
|
|
1220
|
+
top of an otherwise blank page. */
|
|
1221
|
+
min-height: 60dvh;
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
/* `mobile/button`, the design's own dark CTA. Not the shared `Button` primary, whose
|
|
1225
|
+
shape is the cart's; this one is content-width with a 48px floor. */
|
|
1226
|
+
._cta_y686q_22 {
|
|
1227
|
+
display: inline-flex;
|
|
1228
|
+
align-items: center;
|
|
1229
|
+
justify-content: center;
|
|
1230
|
+
gap: var(--space-8);
|
|
1231
|
+
min-height: 48px;
|
|
1232
|
+
padding: var(--space-12);
|
|
1233
|
+
border: 0;
|
|
1234
|
+
border-radius: var(--radius-8);
|
|
1235
|
+
background: var(--color-surface-max);
|
|
1236
|
+
color: var(--color-text-strong);
|
|
1237
|
+
font-family: inherit;
|
|
1238
|
+
font-size: var(--type-trimmed-md-size);
|
|
1239
|
+
font-weight: var(--font-weight-bold);
|
|
1240
|
+
line-height: 1;
|
|
1241
|
+
cursor: pointer;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
._cta_y686q_22:focus-visible {
|
|
1245
|
+
outline: none;
|
|
1246
|
+
box-shadow: var(--focus-ring);
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
._card_y686q_45 {
|
|
1250
|
+
display: flex;
|
|
1251
|
+
flex-direction: column;
|
|
1252
|
+
gap: var(--space-24);
|
|
1253
|
+
width: 100%;
|
|
1254
|
+
padding: var(--space-16);
|
|
1255
|
+
border: 0;
|
|
1256
|
+
border-radius: var(--radius-12);
|
|
1257
|
+
background: var(--color-surface-soft);
|
|
1258
|
+
color: inherit;
|
|
1259
|
+
font-family: inherit;
|
|
1260
|
+
text-align: left;
|
|
1261
|
+
overflow: hidden;
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
._tappable_y686q_60 {
|
|
1265
|
+
cursor: pointer;
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
._tappable_y686q_60:focus-visible {
|
|
1269
|
+
outline: none;
|
|
1270
|
+
box-shadow: var(--focus-ring);
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
._head_y686q_69 {
|
|
1274
|
+
display: flex;
|
|
1275
|
+
align-items: flex-start;
|
|
1276
|
+
justify-content: space-between;
|
|
1277
|
+
gap: var(--space-8);
|
|
1278
|
+
width: 100%;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
._heading_y686q_77 {
|
|
1282
|
+
display: flex;
|
|
1283
|
+
flex: 1 1 auto;
|
|
1284
|
+
flex-direction: column;
|
|
1285
|
+
gap: var(--space-8);
|
|
1286
|
+
min-width: 0;
|
|
1287
|
+
color: var(--color-text-default);
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
._title_y686q_86 {
|
|
1291
|
+
font-size: var(--type-heading-md-size);
|
|
1292
|
+
font-weight: var(--font-weight-bold);
|
|
1293
|
+
/* The frame's own 1.32, not the token's 1.25 — that value was set from a different
|
|
1294
|
+
screen and moving it would reflow every heading in the package. */
|
|
1295
|
+
line-height: 1.32;
|
|
1296
|
+
overflow: hidden;
|
|
1297
|
+
text-overflow: ellipsis;
|
|
1298
|
+
white-space: nowrap;
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
._date_y686q_97 {
|
|
1302
|
+
font-size: var(--type-trimmed-sm-size);
|
|
1303
|
+
line-height: 1;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
._bottom_y686q_102 {
|
|
1307
|
+
display: flex;
|
|
1308
|
+
align-items: center;
|
|
1309
|
+
justify-content: space-between;
|
|
1310
|
+
gap: var(--space-8);
|
|
1311
|
+
width: 100%;
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
._strip_y686q_110 {
|
|
1315
|
+
display: flex;
|
|
1316
|
+
gap: var(--space-6);
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
._tile_y686q_115 {
|
|
1320
|
+
position: relative;
|
|
1321
|
+
flex: 0 0 56px;
|
|
1322
|
+
width: 56px;
|
|
1323
|
+
height: 56px;
|
|
1324
|
+
border-radius: var(--radius-6);
|
|
1325
|
+
overflow: hidden;
|
|
1326
|
+
background: var(--color-surface-subtle);
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
._image_y686q_125 {
|
|
1330
|
+
object-fit: cover;
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
._placeholder_y686q_129 {
|
|
1334
|
+
/* No picture resolved for any line. A flat tile keeps the row's rhythm rather than
|
|
1335
|
+
collapsing the strip and shifting the chevron. */
|
|
1336
|
+
background: var(--color-surface-subtle);
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
/* The "+N" tile: the last thumbnail, dimmed, with the count over it. */
|
|
1340
|
+
._more_y686q_136 {
|
|
1341
|
+
position: absolute;
|
|
1342
|
+
inset: 0;
|
|
1343
|
+
display: flex;
|
|
1344
|
+
align-items: center;
|
|
1345
|
+
justify-content: center;
|
|
1346
|
+
background: rgba(0, 0, 0, 0.54);
|
|
1347
|
+
color: #f9fafa;
|
|
1348
|
+
font-size: var(--type-trimmed-md-size);
|
|
1349
|
+
font-weight: var(--font-weight-bold);
|
|
1350
|
+
line-height: 1;
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
._chevron_y686q_149 {
|
|
1354
|
+
display: inline-flex;
|
|
1355
|
+
flex: 0 0 24px;
|
|
1356
|
+
width: 24px;
|
|
1357
|
+
height: 24px;
|
|
1358
|
+
color: var(--color-text-default);
|
|
1359
|
+
}
|
|
1165
1360
|
/* 8 where Figma declares 12, for the reason set out on `.titlePrice` below: the gap sits
|
|
1166
1361
|
against a text layer whose CSS line box carries leading that Figma's does not. */
|
|
1167
1362
|
._tile_1u9l8_3 {
|
|
@@ -1830,18 +2025,18 @@
|
|
|
1830
2025
|
* left, and `.body` absorbs the slack so the bar is pushed onto the bottom edge on a short
|
|
1831
2026
|
* cart and still sticks on a long one.
|
|
1832
2027
|
*/
|
|
1833
|
-
.
|
|
2028
|
+
._surface_1wfue_15 {
|
|
1834
2029
|
display: flex;
|
|
1835
2030
|
flex-direction: column;
|
|
1836
2031
|
}
|
|
1837
2032
|
|
|
1838
|
-
.
|
|
2033
|
+
._screen_1wfue_20 {
|
|
1839
2034
|
display: flex;
|
|
1840
2035
|
flex-direction: column;
|
|
1841
2036
|
flex: 1 1 auto;
|
|
1842
2037
|
}
|
|
1843
2038
|
|
|
1844
|
-
.
|
|
2039
|
+
._body_1wfue_12 {
|
|
1845
2040
|
display: flex;
|
|
1846
2041
|
flex-direction: column;
|
|
1847
2042
|
gap: var(--space-20);
|
|
@@ -1849,26 +2044,26 @@
|
|
|
1849
2044
|
flex: 1 1 auto;
|
|
1850
2045
|
}
|
|
1851
2046
|
|
|
1852
|
-
.
|
|
2047
|
+
._items_1wfue_34 {
|
|
1853
2048
|
display: flex;
|
|
1854
2049
|
flex-direction: column;
|
|
1855
2050
|
gap: var(--space-20);
|
|
1856
2051
|
}
|
|
1857
2052
|
|
|
1858
|
-
.
|
|
2053
|
+
._sectionHeader_1wfue_40 {
|
|
1859
2054
|
display: flex;
|
|
1860
2055
|
align-items: center;
|
|
1861
2056
|
gap: var(--space-12);
|
|
1862
2057
|
}
|
|
1863
2058
|
|
|
1864
|
-
.
|
|
2059
|
+
._sectionTitle_1wfue_46 {
|
|
1865
2060
|
margin: 0;
|
|
1866
2061
|
font-size: var(--type-heading-md-size);
|
|
1867
2062
|
line-height: 1.38;
|
|
1868
2063
|
font-weight: var(--font-weight-bold);
|
|
1869
2064
|
}
|
|
1870
2065
|
|
|
1871
|
-
.
|
|
2066
|
+
._count_1wfue_53 {
|
|
1872
2067
|
display: inline-flex;
|
|
1873
2068
|
align-items: center;
|
|
1874
2069
|
justify-content: center;
|
|
@@ -1888,7 +2083,7 @@
|
|
|
1888
2083
|
* every line, so the space under "Items" and the space between two lines are the same
|
|
1889
2084
|
* measurement — 148 → 268 → 388, on 100px lines.
|
|
1890
2085
|
*/
|
|
1891
|
-
.
|
|
2086
|
+
._lines_1wfue_73 {
|
|
1892
2087
|
list-style: none;
|
|
1893
2088
|
margin: 0;
|
|
1894
2089
|
padding: 0;
|
|
@@ -1897,15 +2092,6 @@
|
|
|
1897
2092
|
gap: var(--space-20);
|
|
1898
2093
|
}
|
|
1899
2094
|
|
|
1900
|
-
._lockNotice_1t90m_82 {
|
|
1901
|
-
margin: 0;
|
|
1902
|
-
padding: var(--space-12) var(--space-16);
|
|
1903
|
-
background: var(--color-state-surface-warning-soft);
|
|
1904
|
-
color: var(--color-text-default);
|
|
1905
|
-
border-bottom: 1px solid var(--color-border-subtle);
|
|
1906
|
-
font-size: 14px;
|
|
1907
|
-
line-height: 1.4;
|
|
1908
|
-
}
|
|
1909
2095
|
._gallery_h8m00_1 {
|
|
1910
2096
|
position: relative;
|
|
1911
2097
|
display: flex;
|
|
@@ -3302,3 +3488,157 @@
|
|
|
3302
3488
|
font-variant-numeric: tabular-nums;
|
|
3303
3489
|
pointer-events: none;
|
|
3304
3490
|
}
|
|
3491
|
+
/*
|
|
3492
|
+
* Figma `Settings` (636:51006): the card is anchored under the 96px header, inset 16px on
|
|
3493
|
+
* each side, and sized by its content — not a bottom sheet, despite the frame's name.
|
|
3494
|
+
*/
|
|
3495
|
+
._overlay_lm5qk_5 {
|
|
3496
|
+
position: fixed;
|
|
3497
|
+
inset: 0;
|
|
3498
|
+
z-index: 900;
|
|
3499
|
+
display: flex;
|
|
3500
|
+
align-items: flex-start;
|
|
3501
|
+
justify-content: center;
|
|
3502
|
+
/* Clears the header the design draws this beneath. `env()` on top so a notch does not
|
|
3503
|
+
put the card under the status bar in the embed. */
|
|
3504
|
+
padding: calc(96px + env(safe-area-inset-top, 0px)) var(--space-16) var(--space-16);
|
|
3505
|
+
}
|
|
3506
|
+
|
|
3507
|
+
._scrim_lm5qk_17 {
|
|
3508
|
+
position: absolute;
|
|
3509
|
+
inset: 0;
|
|
3510
|
+
background: rgba(8, 14, 18, 0.5);
|
|
3511
|
+
}
|
|
3512
|
+
|
|
3513
|
+
._sheet_lm5qk_23 {
|
|
3514
|
+
position: relative;
|
|
3515
|
+
width: 100%;
|
|
3516
|
+
max-width: 343px;
|
|
3517
|
+
max-height: calc(100dvh - 128px);
|
|
3518
|
+
overflow-y: auto;
|
|
3519
|
+
background: var(--color-surface-default);
|
|
3520
|
+
border: 1px solid var(--color-border-transparent-soft);
|
|
3521
|
+
border-radius: var(--radius-12);
|
|
3522
|
+
display: flex;
|
|
3523
|
+
flex-direction: column;
|
|
3524
|
+
animation: _menu-in_lm5qk_1 160ms ease;
|
|
3525
|
+
}
|
|
3526
|
+
|
|
3527
|
+
@keyframes _menu-in_lm5qk_1 {
|
|
3528
|
+
from {
|
|
3529
|
+
opacity: 0;
|
|
3530
|
+
transform: translateY(-8px);
|
|
3531
|
+
}
|
|
3532
|
+
to {
|
|
3533
|
+
opacity: 1;
|
|
3534
|
+
transform: translateY(0);
|
|
3535
|
+
}
|
|
3536
|
+
}
|
|
3537
|
+
|
|
3538
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3539
|
+
._sheet_lm5qk_23 {
|
|
3540
|
+
animation: none;
|
|
3541
|
+
}
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
/* `.sheet-header`: 48px, its own bottom rule, and the close control alone on the right.
|
|
3545
|
+
The left and centre slots the component defines are empty in this instance. */
|
|
3546
|
+
._header_lm5qk_56 {
|
|
3547
|
+
display: flex;
|
|
3548
|
+
justify-content: flex-end;
|
|
3549
|
+
border-bottom: 1px solid var(--color-border-transparent-soft);
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
._close_lm5qk_62 {
|
|
3553
|
+
display: inline-flex;
|
|
3554
|
+
align-items: center;
|
|
3555
|
+
justify-content: center;
|
|
3556
|
+
width: 48px;
|
|
3557
|
+
height: 48px;
|
|
3558
|
+
padding: var(--space-12);
|
|
3559
|
+
border: 0;
|
|
3560
|
+
background: none;
|
|
3561
|
+
color: inherit;
|
|
3562
|
+
cursor: pointer;
|
|
3563
|
+
}
|
|
3564
|
+
|
|
3565
|
+
._close_lm5qk_62:focus-visible {
|
|
3566
|
+
outline: none;
|
|
3567
|
+
box-shadow: var(--focus-ring);
|
|
3568
|
+
border-radius: var(--radius-4);
|
|
3569
|
+
}
|
|
3570
|
+
|
|
3571
|
+
._list_lm5qk_81 {
|
|
3572
|
+
list-style: none;
|
|
3573
|
+
margin: 0;
|
|
3574
|
+
padding: var(--space-6) 0;
|
|
3575
|
+
display: flex;
|
|
3576
|
+
flex-direction: column;
|
|
3577
|
+
}
|
|
3578
|
+
|
|
3579
|
+
._row_lm5qk_89 {
|
|
3580
|
+
display: flex;
|
|
3581
|
+
align-items: center;
|
|
3582
|
+
gap: var(--space-8);
|
|
3583
|
+
width: 100%;
|
|
3584
|
+
padding: var(--space-12) var(--space-16);
|
|
3585
|
+
border: 0;
|
|
3586
|
+
border-bottom: 1px solid var(--color-border-transparent-soft);
|
|
3587
|
+
background: none;
|
|
3588
|
+
color: inherit;
|
|
3589
|
+
font-family: inherit;
|
|
3590
|
+
text-align: left;
|
|
3591
|
+
cursor: pointer;
|
|
3592
|
+
}
|
|
3593
|
+
|
|
3594
|
+
/*
|
|
3595
|
+
* An inert row still looks exactly as designed. It is not greyed out, because it is not
|
|
3596
|
+
* unavailable to this fan for a reason they could act on — the destination does not exist
|
|
3597
|
+
* yet on either side, which is our problem and not something to dress up as their
|
|
3598
|
+
* permission. `aria-disabled` carries the truth to a screen reader.
|
|
3599
|
+
*/
|
|
3600
|
+
._row_lm5qk_89[disabled] {
|
|
3601
|
+
cursor: default;
|
|
3602
|
+
}
|
|
3603
|
+
|
|
3604
|
+
._row_lm5qk_89:focus-visible {
|
|
3605
|
+
outline: none;
|
|
3606
|
+
box-shadow: var(--focus-ring);
|
|
3607
|
+
}
|
|
3608
|
+
|
|
3609
|
+
._icon_lm5qk_119 {
|
|
3610
|
+
display: inline-flex;
|
|
3611
|
+
flex: 0 0 24px;
|
|
3612
|
+
width: 24px;
|
|
3613
|
+
height: 24px;
|
|
3614
|
+
color: var(--color-text-default);
|
|
3615
|
+
}
|
|
3616
|
+
|
|
3617
|
+
._text_lm5qk_127 {
|
|
3618
|
+
display: flex;
|
|
3619
|
+
flex: 1 1 auto;
|
|
3620
|
+
flex-direction: column;
|
|
3621
|
+
gap: var(--space-2);
|
|
3622
|
+
min-width: 0;
|
|
3623
|
+
}
|
|
3624
|
+
|
|
3625
|
+
._title_lm5qk_135 {
|
|
3626
|
+
font-size: var(--type-paragraph-size);
|
|
3627
|
+
font-weight: var(--font-weight-bold);
|
|
3628
|
+
line-height: 1;
|
|
3629
|
+
color: var(--color-text-default);
|
|
3630
|
+
}
|
|
3631
|
+
|
|
3632
|
+
._subtitle_lm5qk_142 {
|
|
3633
|
+
font-size: var(--type-trimmed-xs-size);
|
|
3634
|
+
line-height: 1.52;
|
|
3635
|
+
color: var(--color-text-subtle);
|
|
3636
|
+
}
|
|
3637
|
+
|
|
3638
|
+
._chevron_lm5qk_148 {
|
|
3639
|
+
display: inline-flex;
|
|
3640
|
+
flex: 0 0 16px;
|
|
3641
|
+
width: 16px;
|
|
3642
|
+
height: 16px;
|
|
3643
|
+
color: var(--color-text-subtle);
|
|
3644
|
+
}
|