@nok-integration/storefront-react 0.13.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 +867 -477
- package/dist/standalone/storefront.mjs +867 -477
- package/dist/standalone/styles.css +349 -0
- package/dist/styles.css +349 -0
- 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 {
|
|
@@ -3293,3 +3488,157 @@
|
|
|
3293
3488
|
font-variant-numeric: tabular-nums;
|
|
3294
3489
|
pointer-events: none;
|
|
3295
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
|
+
}
|
package/dist/styles.css
CHANGED
|
@@ -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 {
|
|
@@ -3293,3 +3488,157 @@
|
|
|
3293
3488
|
font-variant-numeric: tabular-nums;
|
|
3294
3489
|
pointer-events: none;
|
|
3295
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
|
+
}
|