@crewlethq/ui 0.49.0 → 0.50.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/README.md +18 -0
- package/dist/ContrastBadge/ContrastBadge.d.ts +25 -3
- package/dist/ContrastBadge/index.d.ts +1 -1
- package/dist/ContrastBadge/index.js +1 -1
- package/dist/EditingStatus/EditingStatus.d.ts +15 -1
- package/dist/EditingStatus/index.js +3 -1
- package/dist/InlineEditor/index.js +4 -2
- package/dist/LogoSlot/index.js +2 -2
- package/dist/SetupWizard/SetupWizard.d.ts +77 -0
- package/dist/SetupWizard/index.d.ts +3 -0
- package/dist/SetupWizard/index.js +11 -0
- package/dist/SetupWizard-Y5BTXZX5.css +197 -0
- package/dist/Stepper/Stepper.d.ts +60 -11
- package/dist/Stepper/index.d.ts +1 -1
- package/dist/Stepper/index.js +1 -1
- package/dist/Stepper-QEJI5RGX.css +355 -0
- package/dist/{chunk-ITI2Z44C.js → chunk-BEAXJARF.js} +1 -1
- package/dist/chunk-KKHCUHWS.js +107 -0
- package/dist/chunk-LDGQIDIZ.js +129 -0
- package/dist/{chunk-MULOZYHL.js → chunk-MMOXWAUG.js} +16 -4
- package/dist/{chunk-B235ANDO.js → chunk-NSSOWQCJ.js} +20 -5
- package/dist/{chunk-7P336RA5.js → chunk-QGRA2RHC.js} +1 -1
- package/dist/generated/index.d.ts +1 -0
- package/dist/generated/index.js +21 -20
- package/dist/index.js +21 -20
- package/dist/styles.css +391 -12
- package/package.json +3 -3
- package/dist/Stepper-HW4JM3YH.css +0 -176
- package/dist/chunk-5QWIJSQM.js +0 -73
- /package/dist/{chunk-3WMOEGEL.js → chunk-HNQ2EIMR.js} +0 -0
package/dist/styles.css
CHANGED
|
@@ -26349,6 +26349,206 @@ svg.crewlet-select__chevron {
|
|
|
26349
26349
|
}
|
|
26350
26350
|
|
|
26351
26351
|
|
|
26352
|
+
/* SetupWizard-Y5BTXZX5.css */
|
|
26353
|
+
/*
|
|
26354
|
+
* SetupWizard: a setup walked step by step on a page of its own
|
|
26355
|
+
* (SetupWizard.tsx).
|
|
26356
|
+
*
|
|
26357
|
+
* THE GRID. The header across the top, the footer across the bottom, and
|
|
26358
|
+
* between them the rail (240px), the content (one column, at most 640px) and,
|
|
26359
|
+
* from 70rem of the wizard's own width, the aside (320px). Under 70rem the
|
|
26360
|
+
* aside takes the row under the content and the rail runs down beside both.
|
|
26361
|
+
* Under the phone breakpoint every part is one column, in reading order.
|
|
26362
|
+
*/
|
|
26363
|
+
|
|
26364
|
+
.crewlet-setup-wizard {
|
|
26365
|
+
container-type: inline-size;
|
|
26366
|
+
min-width: 0;
|
|
26367
|
+
}
|
|
26368
|
+
|
|
26369
|
+
.crewlet-setup-wizard__frame {
|
|
26370
|
+
display: grid;
|
|
26371
|
+
grid-template-columns: 240px minmax(0, 1fr);
|
|
26372
|
+
grid-template-areas:
|
|
26373
|
+
'head head'
|
|
26374
|
+
'rail content'
|
|
26375
|
+
'rail aside'
|
|
26376
|
+
'foot foot';
|
|
26377
|
+
grid-template-rows: auto auto 1fr auto;
|
|
26378
|
+
column-gap: var(--spacing-8);
|
|
26379
|
+
row-gap: var(--spacing-6);
|
|
26380
|
+
min-width: 0;
|
|
26381
|
+
}
|
|
26382
|
+
|
|
26383
|
+
.crewlet-setup-wizard__head {
|
|
26384
|
+
display: flex;
|
|
26385
|
+
flex-direction: column;
|
|
26386
|
+
gap: var(--spacing-2);
|
|
26387
|
+
grid-area: head;
|
|
26388
|
+
min-width: 0;
|
|
26389
|
+
}
|
|
26390
|
+
|
|
26391
|
+
.crewlet-setup-wizard__status {
|
|
26392
|
+
display: inline-flex;
|
|
26393
|
+
align-items: center;
|
|
26394
|
+
}
|
|
26395
|
+
|
|
26396
|
+
/*
|
|
26397
|
+
* THE RAIL stays in view while the content scrolls past it, as a column of
|
|
26398
|
+
* the steps a reader can go back to.
|
|
26399
|
+
*/
|
|
26400
|
+
.crewlet-setup-wizard__rail {
|
|
26401
|
+
position: sticky;
|
|
26402
|
+
top: var(--spacing-5);
|
|
26403
|
+
align-self: start;
|
|
26404
|
+
grid-area: rail;
|
|
26405
|
+
min-width: 0;
|
|
26406
|
+
}
|
|
26407
|
+
|
|
26408
|
+
.crewlet-setup-wizard__content {
|
|
26409
|
+
display: flex;
|
|
26410
|
+
flex-direction: column;
|
|
26411
|
+
grid-area: content;
|
|
26412
|
+
box-sizing: border-box;
|
|
26413
|
+
width: 100%;
|
|
26414
|
+
max-width: 640px;
|
|
26415
|
+
min-width: 0;
|
|
26416
|
+
}
|
|
26417
|
+
|
|
26418
|
+
.crewlet-setup-wizard__heading {
|
|
26419
|
+
margin: 0;
|
|
26420
|
+
color: var(--color-text-primary);
|
|
26421
|
+
font-family: var(--font-family-sans);
|
|
26422
|
+
font-size: var(--font-size-lg);
|
|
26423
|
+
font-weight: var(--font-weight-semibold);
|
|
26424
|
+
line-height: var(--font-line-height-tight);
|
|
26425
|
+
}
|
|
26426
|
+
|
|
26427
|
+
/*
|
|
26428
|
+
* The heading takes focus when the step changes. It keeps the browser's own
|
|
26429
|
+
* focus treatment: after a press nothing is drawn, and after a key the ring
|
|
26430
|
+
* shows where the reader now is.
|
|
26431
|
+
*/
|
|
26432
|
+
|
|
26433
|
+
.crewlet-setup-wizard__lead {
|
|
26434
|
+
margin: var(--spacing-2) 0 0;
|
|
26435
|
+
max-width: var(--size-measure);
|
|
26436
|
+
color: var(--color-text-secondary);
|
|
26437
|
+
font-family: var(--font-family-sans);
|
|
26438
|
+
font-size: var(--font-size-sm);
|
|
26439
|
+
line-height: var(--font-line-height-body);
|
|
26440
|
+
}
|
|
26441
|
+
|
|
26442
|
+
.crewlet-setup-wizard__body {
|
|
26443
|
+
display: flex;
|
|
26444
|
+
flex-direction: column;
|
|
26445
|
+
gap: var(--spacing-6);
|
|
26446
|
+
margin-top: var(--spacing-6);
|
|
26447
|
+
min-width: 0;
|
|
26448
|
+
}
|
|
26449
|
+
|
|
26450
|
+
/* UNDER THE CONTENT, the aside is set off by one hairline, as AsideLayout's is. */
|
|
26451
|
+
.crewlet-setup-wizard__aside {
|
|
26452
|
+
display: flex;
|
|
26453
|
+
flex-direction: column;
|
|
26454
|
+
gap: var(--spacing-4);
|
|
26455
|
+
grid-area: aside;
|
|
26456
|
+
box-sizing: border-box;
|
|
26457
|
+
max-width: 640px;
|
|
26458
|
+
min-width: 0;
|
|
26459
|
+
padding-top: var(--spacing-6);
|
|
26460
|
+
border-top: 1px solid var(--color-border-default);
|
|
26461
|
+
}
|
|
26462
|
+
|
|
26463
|
+
/*
|
|
26464
|
+
* THE FOOTER holds the step's actions at the bottom of the view while the
|
|
26465
|
+
* content scrolls under it, on the sheet's own ground with a hairline above,
|
|
26466
|
+
* and clears the device's safe area where it has one.
|
|
26467
|
+
*/
|
|
26468
|
+
.crewlet-setup-wizard__footer {
|
|
26469
|
+
position: sticky;
|
|
26470
|
+
bottom: 0;
|
|
26471
|
+
z-index: var(--z-index-sticky);
|
|
26472
|
+
display: flex;
|
|
26473
|
+
flex-wrap: wrap;
|
|
26474
|
+
align-items: center;
|
|
26475
|
+
justify-content: flex-end;
|
|
26476
|
+
gap: var(--spacing-2);
|
|
26477
|
+
grid-area: foot;
|
|
26478
|
+
padding: var(--spacing-3) 0 calc(var(--spacing-3) + env(safe-area-inset-bottom, var(--spacing-0)));
|
|
26479
|
+
border-top: 1px solid var(--color-border-default);
|
|
26480
|
+
background: var(--color-surface-background);
|
|
26481
|
+
}
|
|
26482
|
+
|
|
26483
|
+
/* BESIDE THE CONTENT, from 70rem of the wizard's own width: the aside holds in view. */
|
|
26484
|
+
@container (min-width: 70rem) {
|
|
26485
|
+
.crewlet-setup-wizard__frame {
|
|
26486
|
+
grid-template-columns: 240px minmax(0, 1fr) 320px;
|
|
26487
|
+
grid-template-areas:
|
|
26488
|
+
'head head head'
|
|
26489
|
+
'rail content aside'
|
|
26490
|
+
'foot foot foot';
|
|
26491
|
+
grid-template-rows: auto 1fr auto;
|
|
26492
|
+
}
|
|
26493
|
+
|
|
26494
|
+
.crewlet-setup-wizard__aside {
|
|
26495
|
+
position: sticky;
|
|
26496
|
+
top: var(--spacing-5);
|
|
26497
|
+
align-self: start;
|
|
26498
|
+
padding-top: 0;
|
|
26499
|
+
border-top: 0;
|
|
26500
|
+
}
|
|
26501
|
+
}
|
|
26502
|
+
|
|
26503
|
+
/*
|
|
26504
|
+
* ON A PHONE, one column in reading order: where the reader is, the step, the
|
|
26505
|
+
* folded preview, and the actions. The rail is a row of steps under the
|
|
26506
|
+
* position line, and scrolls away with the page rather than covering it.
|
|
26507
|
+
*/
|
|
26508
|
+
@media (width < 640px) {
|
|
26509
|
+
.crewlet-setup-wizard__frame {
|
|
26510
|
+
grid-template-columns: minmax(0, 1fr);
|
|
26511
|
+
grid-template-areas:
|
|
26512
|
+
'head'
|
|
26513
|
+
'rail'
|
|
26514
|
+
'content'
|
|
26515
|
+
'aside'
|
|
26516
|
+
'foot';
|
|
26517
|
+
grid-template-rows: auto;
|
|
26518
|
+
row-gap: var(--spacing-5);
|
|
26519
|
+
}
|
|
26520
|
+
|
|
26521
|
+
.crewlet-setup-wizard__rail {
|
|
26522
|
+
position: static;
|
|
26523
|
+
display: flex;
|
|
26524
|
+
flex-direction: column;
|
|
26525
|
+
gap: var(--spacing-2);
|
|
26526
|
+
}
|
|
26527
|
+
|
|
26528
|
+
.crewlet-setup-wizard__preview {
|
|
26529
|
+
grid-area: aside;
|
|
26530
|
+
min-width: 0;
|
|
26531
|
+
}
|
|
26532
|
+
|
|
26533
|
+
.crewlet-setup-wizard__preview .crewlet-setup-wizard__aside {
|
|
26534
|
+
padding-top: 0;
|
|
26535
|
+
border-top: 0;
|
|
26536
|
+
}
|
|
26537
|
+
}
|
|
26538
|
+
|
|
26539
|
+
.crewlet-setup-wizard__position {
|
|
26540
|
+
margin: 0;
|
|
26541
|
+
color: var(--color-text-secondary);
|
|
26542
|
+
font-family: var(--font-family-sans);
|
|
26543
|
+
font-size: var(--font-size-xs);
|
|
26544
|
+
font-weight: var(--font-weight-medium);
|
|
26545
|
+
}
|
|
26546
|
+
|
|
26547
|
+
.crewlet-setup-wizard__position-step {
|
|
26548
|
+
color: var(--color-text-primary);
|
|
26549
|
+
}
|
|
26550
|
+
|
|
26551
|
+
|
|
26352
26552
|
/* ShareDialog-4QDCBWMH.css */
|
|
26353
26553
|
/*
|
|
26354
26554
|
* Three blocks under the title: who to add and at what role, who has access,
|
|
@@ -29751,7 +29951,7 @@ svg.crewlet-select__chevron {
|
|
|
29751
29951
|
}
|
|
29752
29952
|
|
|
29753
29953
|
|
|
29754
|
-
/* Stepper-
|
|
29954
|
+
/* Stepper-QEJI5RGX.css */
|
|
29755
29955
|
/*
|
|
29756
29956
|
* The stepper: where a sequence has got to (Stepper.tsx).
|
|
29757
29957
|
*
|
|
@@ -29841,41 +30041,65 @@ svg.crewlet-select__chevron {
|
|
|
29841
30041
|
}
|
|
29842
30042
|
|
|
29843
30043
|
/*
|
|
29844
|
-
* THE CURRENT STEP, in its tone
|
|
29845
|
-
* away, so the pill keeps its box and
|
|
29846
|
-
* current step advances along it, and
|
|
29847
|
-
* transparent border in the system's own
|
|
30044
|
+
* THE CURRENT STEP, in its tone: the pill in a row, the mark in a column. The
|
|
30045
|
+
* hairline goes transparent rather than away, so the pill keeps its box and
|
|
30046
|
+
* the row does not move by a pixel as the current step advances along it, and
|
|
30047
|
+
* so forced-colors mode, which draws a transparent border in the system's own
|
|
30048
|
+
* colour, still outlines it.
|
|
29848
30049
|
*/
|
|
29849
|
-
.crewlet-stepper--info .crewlet-stepper__step--current > .crewlet-stepper__chip
|
|
30050
|
+
.crewlet-stepper--info .crewlet-stepper__step--current > .crewlet-stepper__chip,
|
|
30051
|
+
.crewlet-stepper--info .crewlet-stepper__step--current .crewlet-stepper__mark {
|
|
29850
30052
|
border-color: transparent;
|
|
29851
30053
|
background: var(--color-feedback-info-soft);
|
|
29852
30054
|
color: var(--color-feedback-info-ink);
|
|
29853
30055
|
}
|
|
29854
30056
|
|
|
29855
|
-
.crewlet-stepper--success .crewlet-stepper__step--current > .crewlet-stepper__chip
|
|
30057
|
+
.crewlet-stepper--success .crewlet-stepper__step--current > .crewlet-stepper__chip,
|
|
30058
|
+
.crewlet-stepper--success .crewlet-stepper__step--current .crewlet-stepper__mark {
|
|
29856
30059
|
border-color: transparent;
|
|
29857
30060
|
background: var(--color-feedback-success-soft);
|
|
29858
30061
|
color: var(--color-feedback-success-ink);
|
|
29859
30062
|
}
|
|
29860
30063
|
|
|
29861
|
-
.crewlet-stepper--warning .crewlet-stepper__step--current > .crewlet-stepper__chip
|
|
30064
|
+
.crewlet-stepper--warning .crewlet-stepper__step--current > .crewlet-stepper__chip,
|
|
30065
|
+
.crewlet-stepper--warning .crewlet-stepper__step--current .crewlet-stepper__mark {
|
|
29862
30066
|
border-color: transparent;
|
|
29863
30067
|
background: var(--color-feedback-warning-soft);
|
|
29864
30068
|
color: var(--color-feedback-warning-ink);
|
|
29865
30069
|
}
|
|
29866
30070
|
|
|
29867
|
-
.crewlet-stepper--danger .crewlet-stepper__step--current > .crewlet-stepper__chip
|
|
30071
|
+
.crewlet-stepper--danger .crewlet-stepper__step--current > .crewlet-stepper__chip,
|
|
30072
|
+
.crewlet-stepper--danger .crewlet-stepper__step--current .crewlet-stepper__mark {
|
|
29868
30073
|
border-color: transparent;
|
|
29869
30074
|
background: var(--color-feedback-danger-soft);
|
|
29870
30075
|
color: var(--color-feedback-danger-ink);
|
|
29871
30076
|
}
|
|
29872
30077
|
|
|
29873
|
-
.crewlet-stepper--brand .crewlet-stepper__step--current > .crewlet-stepper__chip
|
|
30078
|
+
.crewlet-stepper--brand .crewlet-stepper__step--current > .crewlet-stepper__chip,
|
|
30079
|
+
.crewlet-stepper--brand .crewlet-stepper__step--current .crewlet-stepper__mark {
|
|
29874
30080
|
border-color: transparent;
|
|
29875
30081
|
background: var(--color-brand-accent-soft);
|
|
29876
30082
|
color: var(--color-brand-accent-ink);
|
|
29877
30083
|
}
|
|
29878
30084
|
|
|
30085
|
+
/*
|
|
30086
|
+
* A STEP THAT NEEDS ATTENTION is the warning tint under the warning ink, the
|
|
30087
|
+
* pair the palette suite holds to 4.5:1 over every rung, with the warning
|
|
30088
|
+
* glyph: the pill of a step that is not current, and the mark of any step in
|
|
30089
|
+
* a column. A CURRENT pill keeps its tone, so the row still says which step
|
|
30090
|
+
* the reader is on, and carries the glyph in that tone's ink.
|
|
30091
|
+
*/
|
|
30092
|
+
.crewlet-stepper .crewlet-stepper__step--attention:not(.crewlet-stepper__step--current) > .crewlet-stepper__chip,
|
|
30093
|
+
.crewlet-stepper .crewlet-stepper__step--attention .crewlet-stepper__mark {
|
|
30094
|
+
border-color: transparent;
|
|
30095
|
+
background: var(--color-feedback-warning-soft);
|
|
30096
|
+
color: var(--color-feedback-warning-ink);
|
|
30097
|
+
}
|
|
30098
|
+
|
|
30099
|
+
.crewlet-stepper__warning {
|
|
30100
|
+
flex: none;
|
|
30101
|
+
}
|
|
30102
|
+
|
|
29879
30103
|
/*
|
|
29880
30104
|
* INSIDE THE PILL THE DOT IS THE PILL'S OWN INK, as a Tag's is, and for the
|
|
29881
30105
|
* Tag's reason: StatusDot paints the fill step, measured as a mark on the
|
|
@@ -29908,8 +30132,157 @@ svg.crewlet-select__chevron {
|
|
|
29908
30132
|
* emulated). Opting out also keeps shadows, so the pulsing dot's halo, which
|
|
29909
30133
|
* is the tone's soft tint and no system colour, is held still inside it.
|
|
29910
30134
|
*/
|
|
30135
|
+
/*
|
|
30136
|
+
* A STEP THAT CAN BE PICKED is a button with no look of its own: the pill or
|
|
30137
|
+
* the row it carries draws it, and a hover lays the kit's hover overlay over
|
|
30138
|
+
* a step at rest. The current step keeps its tint under the pointer, since a
|
|
30139
|
+
* tone rule weighs more than the hover. The ring sits inside the step's own
|
|
30140
|
+
* box, over the pill's hairline rather than a second line beside it.
|
|
30141
|
+
*/
|
|
30142
|
+
.crewlet-stepper__target {
|
|
30143
|
+
appearance: none;
|
|
30144
|
+
margin: 0;
|
|
30145
|
+
background: transparent;
|
|
30146
|
+
font: inherit;
|
|
30147
|
+
text-align: start;
|
|
30148
|
+
cursor: pointer;
|
|
30149
|
+
}
|
|
30150
|
+
|
|
30151
|
+
.crewlet-stepper__chip.crewlet-stepper__target {
|
|
30152
|
+
font-family: var(--font-family-sans);
|
|
30153
|
+
font-size: var(--font-size-2xs);
|
|
30154
|
+
font-weight: var(--font-weight-medium);
|
|
30155
|
+
line-height: 1;
|
|
30156
|
+
}
|
|
30157
|
+
|
|
30158
|
+
.crewlet-stepper__target:hover {
|
|
30159
|
+
background: var(--color-surface-hover);
|
|
30160
|
+
}
|
|
30161
|
+
|
|
30162
|
+
.crewlet-stepper__target:focus-visible {
|
|
30163
|
+
outline: 2px solid var(--color-focus);
|
|
30164
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
30165
|
+
}
|
|
30166
|
+
|
|
30167
|
+
/*
|
|
30168
|
+
* THE COLUMN, a setup wizard's rail. Each step is a row: a 20px mark (the
|
|
30169
|
+
* check, the dot, the warning glyph, or the step's number for one still to
|
|
30170
|
+
* come) and beside it the label, with the description and the status words
|
|
30171
|
+
* under it. A hairline in the strong hairline's colour joins one mark to the
|
|
30172
|
+
* next, 4px clear of each, drawn by the step it leaves so nothing trails the
|
|
30173
|
+
* last. The mark is the pills' 20px, following the density as they do, and
|
|
30174
|
+
* the label's line is the mark's height so the two stand level. The row's words follow the same three inks as the pills: the current
|
|
30175
|
+
* step primary and medium, a finished one secondary, the rest tertiary.
|
|
30176
|
+
*/
|
|
30177
|
+
.crewlet-stepper--vertical {
|
|
30178
|
+
flex-direction: column;
|
|
30179
|
+
flex-wrap: nowrap;
|
|
30180
|
+
align-items: stretch;
|
|
30181
|
+
gap: 0;
|
|
30182
|
+
}
|
|
30183
|
+
|
|
30184
|
+
.crewlet-stepper--vertical .crewlet-stepper__step {
|
|
30185
|
+
position: relative;
|
|
30186
|
+
display: block;
|
|
30187
|
+
}
|
|
30188
|
+
|
|
30189
|
+
.crewlet-stepper--vertical .crewlet-stepper__step + .crewlet-stepper__step::before {
|
|
30190
|
+
content: none;
|
|
30191
|
+
}
|
|
30192
|
+
|
|
30193
|
+
.crewlet-stepper--vertical .crewlet-stepper__step:not(:last-child)::after {
|
|
30194
|
+
content: '';
|
|
30195
|
+
position: absolute;
|
|
30196
|
+
top: calc(var(--spacing-2) + 20px * var(--density, 1) + 4px);
|
|
30197
|
+
bottom: calc(4px - var(--spacing-2));
|
|
30198
|
+
left: calc(var(--spacing-2) + 10px * var(--density, 1));
|
|
30199
|
+
width: 1px;
|
|
30200
|
+
background: var(--color-border-strong);
|
|
30201
|
+
pointer-events: none;
|
|
30202
|
+
}
|
|
30203
|
+
|
|
30204
|
+
.crewlet-stepper__row {
|
|
30205
|
+
display: flex;
|
|
30206
|
+
align-items: flex-start;
|
|
30207
|
+
gap: var(--spacing-3);
|
|
30208
|
+
box-sizing: border-box;
|
|
30209
|
+
width: 100%;
|
|
30210
|
+
padding: var(--spacing-2);
|
|
30211
|
+
border: 0;
|
|
30212
|
+
border-radius: var(--radius-md);
|
|
30213
|
+
color: var(--color-text-tertiary);
|
|
30214
|
+
font-family: var(--font-family-sans);
|
|
30215
|
+
font-size: var(--font-size-sm);
|
|
30216
|
+
}
|
|
30217
|
+
|
|
30218
|
+
.crewlet-stepper__mark {
|
|
30219
|
+
display: inline-flex;
|
|
30220
|
+
flex: none;
|
|
30221
|
+
align-items: center;
|
|
30222
|
+
justify-content: center;
|
|
30223
|
+
box-sizing: border-box;
|
|
30224
|
+
width: calc(20px * var(--density, 1));
|
|
30225
|
+
height: calc(20px * var(--density, 1));
|
|
30226
|
+
border: 1px solid var(--color-border-default);
|
|
30227
|
+
border-radius: var(--radius-pill);
|
|
30228
|
+
font-size: var(--font-size-2xs);
|
|
30229
|
+
font-weight: var(--font-weight-medium);
|
|
30230
|
+
font-variant-numeric: tabular-nums;
|
|
30231
|
+
line-height: 1;
|
|
30232
|
+
}
|
|
30233
|
+
|
|
30234
|
+
.crewlet-stepper__text {
|
|
30235
|
+
display: flex;
|
|
30236
|
+
flex-direction: column;
|
|
30237
|
+
gap: var(--spacing-1);
|
|
30238
|
+
min-width: 0;
|
|
30239
|
+
}
|
|
30240
|
+
|
|
30241
|
+
.crewlet-stepper__title {
|
|
30242
|
+
line-height: calc(20px * var(--density, 1));
|
|
30243
|
+
overflow-wrap: anywhere;
|
|
30244
|
+
}
|
|
30245
|
+
|
|
30246
|
+
.crewlet-stepper__row .crewlet-stepper__label {
|
|
30247
|
+
overflow: visible;
|
|
30248
|
+
}
|
|
30249
|
+
|
|
30250
|
+
.crewlet-stepper__description,
|
|
30251
|
+
.crewlet-stepper__note {
|
|
30252
|
+
color: var(--color-text-tertiary);
|
|
30253
|
+
font-size: var(--font-size-xs);
|
|
30254
|
+
line-height: var(--font-line-height-snug);
|
|
30255
|
+
}
|
|
30256
|
+
|
|
30257
|
+
.crewlet-stepper__step--attention .crewlet-stepper__note {
|
|
30258
|
+
color: var(--color-text-secondary);
|
|
30259
|
+
}
|
|
30260
|
+
|
|
30261
|
+
.crewlet-stepper__step--done > .crewlet-stepper__row {
|
|
30262
|
+
color: var(--color-text-secondary);
|
|
30263
|
+
}
|
|
30264
|
+
|
|
30265
|
+
/*
|
|
30266
|
+
* THE CURRENT ROW is lifted as the rail's current row is (SidebarNav): the
|
|
30267
|
+
* elevated rung inside a one-pixel hairline drawn as an outline, so forced
|
|
30268
|
+
* colors keeps it, and it does not move the row by a pixel.
|
|
30269
|
+
*/
|
|
30270
|
+
.crewlet-stepper__step--current > .crewlet-stepper__row {
|
|
30271
|
+
outline: 1px solid var(--color-border-default);
|
|
30272
|
+
outline-offset: -1px;
|
|
30273
|
+
background: var(--color-surface-elevated);
|
|
30274
|
+
color: var(--color-text-primary);
|
|
30275
|
+
font-weight: var(--font-weight-medium);
|
|
30276
|
+
}
|
|
30277
|
+
|
|
30278
|
+
.crewlet-stepper__step--current .crewlet-stepper__description,
|
|
30279
|
+
.crewlet-stepper__step--current .crewlet-stepper__note {
|
|
30280
|
+
font-weight: var(--font-weight-regular);
|
|
30281
|
+
}
|
|
30282
|
+
|
|
29911
30283
|
@media (forced-colors: active) {
|
|
29912
|
-
.crewlet-stepper .crewlet-stepper__step--current > .crewlet-stepper__chip
|
|
30284
|
+
.crewlet-stepper .crewlet-stepper__step--current > .crewlet-stepper__chip,
|
|
30285
|
+
.crewlet-stepper .crewlet-stepper__step--current .crewlet-stepper__mark {
|
|
29913
30286
|
forced-color-adjust: none;
|
|
29914
30287
|
border-color: Highlight;
|
|
29915
30288
|
background: Highlight;
|
|
@@ -29924,9 +30297,15 @@ svg.crewlet-select__chevron {
|
|
|
29924
30297
|
animation: none;
|
|
29925
30298
|
}
|
|
29926
30299
|
|
|
29927
|
-
.crewlet-stepper__step + .crewlet-stepper__step::before
|
|
30300
|
+
.crewlet-stepper__step + .crewlet-stepper__step::before,
|
|
30301
|
+
.crewlet-stepper--vertical .crewlet-stepper__step:not(:last-child)::after {
|
|
29928
30302
|
background: GrayText;
|
|
29929
30303
|
}
|
|
30304
|
+
|
|
30305
|
+
.crewlet-stepper__target:hover {
|
|
30306
|
+
outline: 1px solid Highlight;
|
|
30307
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
30308
|
+
}
|
|
29930
30309
|
}
|
|
29931
30310
|
|
|
29932
30311
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewlethq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.50.0",
|
|
4
4
|
"description": "Crewlet shared React components built on @crewlethq/tokens and @crewlethq/icons.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"clean": "rm -rf dist src/generated"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@crewlethq/icons": "0.
|
|
46
|
-
"@crewlethq/tokens": "0.
|
|
45
|
+
"@crewlethq/icons": "0.50.0",
|
|
46
|
+
"@crewlethq/tokens": "0.50.0",
|
|
47
47
|
"prosemirror-commands": "1.7.2",
|
|
48
48
|
"prosemirror-gapcursor": "1.4.1",
|
|
49
49
|
"prosemirror-history": "1.5.1",
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* The stepper: where a sequence has got to (Stepper.tsx).
|
|
3
|
-
*
|
|
4
|
-
* THE APPROVED DESIGN'S STEP ROW. Each step is a 20px pill inside the default
|
|
5
|
-
* hairline, the 11px step at the medium weight, 8px inside each end and 5px
|
|
6
|
-
* between a mark and the word; two pills are joined by a 10px rule in the
|
|
7
|
-
* strong hairline's colour with 6px either side of it. A finished step is the
|
|
8
|
-
* secondary ink behind a check, the current step its tone's soft tint under
|
|
9
|
-
* its ink behind its dot, and a step still to come the tertiary ink.
|
|
10
|
-
*
|
|
11
|
-
* EVERY INK IS A MEASURED PAIR. The secondary and tertiary steps are held to
|
|
12
|
-
* 4.5:1 on every opaque rung, and each tone's ink to 4.5:1 on its own soft
|
|
13
|
-
* tint over every rung, by the palette suite in @crewlethq/tokens; the pill
|
|
14
|
-
* draws nothing else. The current pill is the design's `work-soft` under
|
|
15
|
-
* `work-ink` in the default tone, and a Tag's colours in every tone, which is
|
|
16
|
-
* what a chip naming a state is in this kit.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
.crewlet-stepper {
|
|
20
|
-
display: flex;
|
|
21
|
-
flex-wrap: wrap;
|
|
22
|
-
align-items: center;
|
|
23
|
-
/* The design's 6px between a pill and the rule beside it: a step and a half. */
|
|
24
|
-
gap: calc(var(--spacing-1) * 1.5);
|
|
25
|
-
min-width: 0;
|
|
26
|
-
margin: 0;
|
|
27
|
-
padding: 0;
|
|
28
|
-
list-style: none;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.crewlet-stepper__step {
|
|
32
|
-
display: inline-flex;
|
|
33
|
-
align-items: center;
|
|
34
|
-
gap: calc(var(--spacing-1) * 1.5);
|
|
35
|
-
min-width: 0;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/*
|
|
39
|
-
* THE RULE BETWEEN TWO STEPS is drawn by the second of them, so a sequence of
|
|
40
|
-
* one draws none and nothing trails the last. A pseudo-element, because it is
|
|
41
|
-
* furniture: it carries nothing a reader has to be told, and the list already
|
|
42
|
-
* says the steps are in order. 10px by a hairline, the measure of this one
|
|
43
|
-
* mark, and fixed at every density as a hairline is.
|
|
44
|
-
*/
|
|
45
|
-
.crewlet-stepper__step + .crewlet-stepper__step::before {
|
|
46
|
-
content: '';
|
|
47
|
-
flex: none;
|
|
48
|
-
width: 10px;
|
|
49
|
-
height: 1px;
|
|
50
|
-
background: var(--color-border-strong);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.crewlet-stepper__chip {
|
|
54
|
-
display: inline-flex;
|
|
55
|
-
align-items: center;
|
|
56
|
-
/* The design's 5px between the check or the dot and the word. */
|
|
57
|
-
gap: calc(var(--spacing-1) * 1.25);
|
|
58
|
-
box-sizing: border-box;
|
|
59
|
-
/* The design's 20px pill, which follows the density with every other step
|
|
60
|
-
height in the kit. It labels and takes no press, so the 24px target floor
|
|
61
|
-
is not its to clear. */
|
|
62
|
-
height: calc(20px * var(--density, 1));
|
|
63
|
-
max-width: 100%;
|
|
64
|
-
padding: 0 var(--spacing-2);
|
|
65
|
-
border: 1px solid var(--color-border-default);
|
|
66
|
-
border-radius: var(--radius-pill);
|
|
67
|
-
color: var(--color-text-tertiary);
|
|
68
|
-
font-family: var(--font-family-sans);
|
|
69
|
-
font-size: var(--font-size-2xs);
|
|
70
|
-
font-weight: var(--font-weight-medium);
|
|
71
|
-
line-height: 1;
|
|
72
|
-
white-space: nowrap;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.crewlet-stepper__label {
|
|
76
|
-
min-width: 0;
|
|
77
|
-
overflow: hidden;
|
|
78
|
-
text-overflow: ellipsis;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.crewlet-stepper__check {
|
|
82
|
-
flex: none;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.crewlet-stepper__step--done > .crewlet-stepper__chip {
|
|
86
|
-
color: var(--color-text-secondary);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/*
|
|
90
|
-
* THE CURRENT STEP, in its tone. The hairline goes transparent rather than
|
|
91
|
-
* away, so the pill keeps its box and the row does not move by a pixel as the
|
|
92
|
-
* current step advances along it, and so forced-colors mode, which draws a
|
|
93
|
-
* transparent border in the system's own colour, still outlines it.
|
|
94
|
-
*/
|
|
95
|
-
.crewlet-stepper--info .crewlet-stepper__step--current > .crewlet-stepper__chip {
|
|
96
|
-
border-color: transparent;
|
|
97
|
-
background: var(--color-feedback-info-soft);
|
|
98
|
-
color: var(--color-feedback-info-ink);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.crewlet-stepper--success .crewlet-stepper__step--current > .crewlet-stepper__chip {
|
|
102
|
-
border-color: transparent;
|
|
103
|
-
background: var(--color-feedback-success-soft);
|
|
104
|
-
color: var(--color-feedback-success-ink);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.crewlet-stepper--warning .crewlet-stepper__step--current > .crewlet-stepper__chip {
|
|
108
|
-
border-color: transparent;
|
|
109
|
-
background: var(--color-feedback-warning-soft);
|
|
110
|
-
color: var(--color-feedback-warning-ink);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.crewlet-stepper--danger .crewlet-stepper__step--current > .crewlet-stepper__chip {
|
|
114
|
-
border-color: transparent;
|
|
115
|
-
background: var(--color-feedback-danger-soft);
|
|
116
|
-
color: var(--color-feedback-danger-ink);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.crewlet-stepper--brand .crewlet-stepper__step--current > .crewlet-stepper__chip {
|
|
120
|
-
border-color: transparent;
|
|
121
|
-
background: var(--color-brand-accent-soft);
|
|
122
|
-
color: var(--color-brand-accent-ink);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/*
|
|
126
|
-
* INSIDE THE PILL THE DOT IS THE PILL'S OWN INK, as a Tag's is, and for the
|
|
127
|
-
* Tag's reason: StatusDot paints the fill step, measured as a mark on the
|
|
128
|
-
* opaque rungs, and here it stands on the tone's soft tint instead, where
|
|
129
|
-
* nothing measures it. The ink is the step that IS measured on that tint, at
|
|
130
|
-
* 4.5:1, and the colour of the word beside it. A pulsing dot keeps
|
|
131
|
-
* StatusDot's halo, the same soft step drawn once more over the pill, which
|
|
132
|
-
* stands dE 3.92 off it at the least (the light warning pill on the frame).
|
|
133
|
-
*
|
|
134
|
-
* Two classes deep, so it beats StatusDot's own tone rule whichever order the
|
|
135
|
-
* bundle writes the two files in.
|
|
136
|
-
*/
|
|
137
|
-
.crewlet-stepper .crewlet-stepper__dot {
|
|
138
|
-
background: currentColor;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/*
|
|
142
|
-
* FORCED COLORS repaints every background to Canvas, which takes the current
|
|
143
|
-
* step's tint and its dot, so the one step the row is about would read like
|
|
144
|
-
* any other. The current pill is drawn as the system draws a selection,
|
|
145
|
-
* HighlightText on Highlight, with its dot in the same ink, and the rule
|
|
146
|
-
* between two steps in GrayText; the chips' hairlines are borders, which the
|
|
147
|
-
* mode keeps in its own colour.
|
|
148
|
-
*
|
|
149
|
-
* THE CURRENT PILL OPTS OUT OF THE ADJUSTMENT, which is safe only because
|
|
150
|
-
* every colour it draws in that mode is a system colour. Left to it, Chromium
|
|
151
|
-
* paints a Canvas backplate behind every run of text, and HighlightText is
|
|
152
|
-
* written for Highlight, not for Canvas: in a dark high-contrast theme the
|
|
153
|
-
* step's words drew black on black (measured in Chromium 153 with the mode
|
|
154
|
-
* emulated). Opting out also keeps shadows, so the pulsing dot's halo, which
|
|
155
|
-
* is the tone's soft tint and no system colour, is held still inside it.
|
|
156
|
-
*/
|
|
157
|
-
@media (forced-colors: active) {
|
|
158
|
-
.crewlet-stepper .crewlet-stepper__step--current > .crewlet-stepper__chip {
|
|
159
|
-
forced-color-adjust: none;
|
|
160
|
-
border-color: Highlight;
|
|
161
|
-
background: Highlight;
|
|
162
|
-
color: HighlightText;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.crewlet-stepper .crewlet-stepper__dot {
|
|
166
|
-
background: HighlightText;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
.crewlet-stepper .crewlet-stepper__dot.is-pulsing::after {
|
|
170
|
-
animation: none;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.crewlet-stepper__step + .crewlet-stepper__step::before {
|
|
174
|
-
background: GrayText;
|
|
175
|
-
}
|
|
176
|
-
}
|