@crewlethq/ui 0.75.4 → 0.76.1
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 +21 -1
- package/dist/AgentHandoffPanel/index.js +3 -3
- package/dist/ArrangeList/index.js +3 -3
- package/dist/ArtifactBar/index.js +4 -4
- package/dist/ArtifactCard/index.js +3 -3
- package/dist/AttachmentChip/index.js +3 -3
- package/dist/AvatarPicker/index.js +5 -5
- package/dist/BriefCard/index.js +4 -4
- package/dist/ChangeList/index.js +3 -3
- package/dist/Checkbox/index.js +2 -2
- package/dist/ChoiceCards/ChoiceCards.d.ts +80 -0
- package/dist/ChoiceCards/index.d.ts +3 -0
- package/dist/ChoiceCards/index.js +3 -0
- package/dist/ChoiceCards-HAGJMK6Q.css +318 -0
- package/dist/ChoiceList/ChoiceList.d.ts +10 -1
- package/dist/ChoiceList/index.js +1 -1
- package/dist/{ChoiceList-Q772QLFX.css → ChoiceList-JN4PPNFW.css} +22 -1
- package/dist/ColorField/index.js +2 -2
- package/dist/Combobox/index.js +2 -2
- package/dist/CommandPalette/index.js +2 -2
- package/dist/CommentThread/index.js +3 -3
- package/dist/Composer/index.js +2 -2
- package/dist/ConfirmField/index.js +2 -2
- package/dist/ContrastBadge/index.js +3 -3
- package/dist/ContrastHelp/index.js +4 -4
- package/dist/DataGrid/index.js +3 -3
- package/dist/DataTable/index.js +3 -3
- package/dist/DataView/index.js +5 -5
- package/dist/DatasetSource/index.js +3 -3
- package/dist/DeepWorkCard/index.js +5 -5
- package/dist/DocTabsEditor/index.js +2 -2
- package/dist/EditingStatus/index.js +2 -2
- package/dist/{Editor-VW5CRDKY.js → Editor-BXOWAV46.js} +1 -1
- package/dist/EntityList/index.js +4 -4
- package/dist/HuePicker/index.js +4 -4
- package/dist/InlineEditor/index.js +3 -3
- package/dist/Input/index.js +1 -1
- package/dist/{Input-GEFFMKBS.css → Input-WSMB7JG2.css} +6 -1
- package/dist/ListInput/index.js +2 -2
- package/dist/LogoSlot/index.js +4 -4
- package/dist/MarkdownEditor/index.js +4 -4
- package/dist/MergeConflicts/index.js +4 -4
- package/dist/OpenInAppCard/index.js +5 -5
- package/dist/PricingCard/index.js +3 -3
- package/dist/PrincipalPicker/index.js +3 -3
- package/dist/ProposalCard/index.js +7 -7
- package/dist/RefusalCard/index.js +4 -4
- package/dist/ResultTableCard/index.js +4 -4
- package/dist/ReviewList/index.js +3 -3
- package/dist/RichEditor/index.js +1 -1
- package/dist/RunChip/index.js +3 -3
- package/dist/SegmentedControl/index.js +3 -3
- package/dist/SettingsTable/index.js +2 -2
- package/dist/SetupWizard/SetupWizard.d.ts +32 -7
- package/dist/SetupWizard/index.js +3 -3
- package/dist/{SetupWizard-WDOFFNIM.css → SetupWizard-Y2PFPBCZ.css} +151 -4
- package/dist/ShareDialog/index.js +1 -1
- package/dist/SheetColumnEditor/index.js +7 -7
- package/dist/SheetGrid/index.js +3 -3
- package/dist/StatusCard/index.js +3 -3
- package/dist/StatusDot/StatusDot.d.ts +7 -0
- package/dist/StatusDot/index.js +1 -1
- package/dist/{StatusDot-7OMCQCZF.css → StatusDot-FJND3CZY.css} +9 -2
- package/dist/Stepper/index.js +2 -2
- package/dist/{Stepper-32INSYF7.css → Stepper-YQBNYCIS.css} +31 -8
- package/dist/Switcher/index.js +2 -2
- package/dist/TableCells/index.js +3 -3
- package/dist/Tabs/index.js +2 -2
- package/dist/Tag/index.js +2 -2
- package/dist/TagsInput/index.js +3 -3
- package/dist/ThemeGallery/index.js +3 -3
- package/dist/ThemeSwitcher/index.js +4 -4
- package/dist/TimeRangePicker/index.js +5 -5
- package/dist/TimeWindowPicker/index.js +2 -2
- package/dist/ValueField/index.js +3 -3
- package/dist/VersionCompare/index.js +4 -4
- package/dist/{chunk-3N36CYTU.js → chunk-2PIH6JHJ.js} +1 -1
- package/dist/{chunk-RNXYNXKN.js → chunk-2STOSJT3.js} +2 -2
- package/dist/{chunk-P64MIA7C.js → chunk-3JXX5S3Z.js} +2 -2
- package/dist/{chunk-H32JW6CZ.js → chunk-45M73G5A.js} +1 -1
- package/dist/{chunk-6C6YK75K.js → chunk-57AKYFML.js} +1 -1
- package/dist/{chunk-4KSCGXLJ.js → chunk-5BOFC5OP.js} +2 -2
- package/dist/{chunk-NXNLAZPK.js → chunk-5CEQ3HLH.js} +1 -1
- package/dist/chunk-5EFLA6BW.js +205 -0
- package/dist/{chunk-VLGGLLKH.js → chunk-624X3RVA.js} +1 -1
- package/dist/{chunk-LWFOX3PB.js → chunk-63GBSOLU.js} +1 -1
- package/dist/{chunk-ZUBFVK6B.js → chunk-6EWNMSS4.js} +1 -1
- package/dist/{chunk-7IW3P6FH.js → chunk-6G6WHTC7.js} +1 -1
- package/dist/{chunk-JXJNX7QQ.js → chunk-6LXS3X7A.js} +1 -1
- package/dist/{chunk-NQABJAUY.js → chunk-6RW2MUTY.js} +15 -8
- package/dist/{chunk-IPUEVTRJ.js → chunk-6THG44LI.js} +1 -1
- package/dist/{chunk-KWLH45YC.js → chunk-7PJFUQMY.js} +1 -1
- package/dist/{chunk-AB6F5YXX.js → chunk-ADGNISEI.js} +1 -1
- package/dist/{chunk-WQRSZMN4.js → chunk-BBD7PTBG.js} +1 -1
- package/dist/{chunk-TYIHFDMP.js → chunk-BKXUZCZX.js} +1 -1
- package/dist/{chunk-NU5RUT7Y.js → chunk-CFTBESST.js} +1 -1
- package/dist/{chunk-WIATRXEJ.js → chunk-CYQBDZ6M.js} +1 -1
- package/dist/{chunk-ZKIEOWR6.js → chunk-D7G2QGET.js} +1 -1
- package/dist/{chunk-3EY5SEGH.js → chunk-DSMQTED5.js} +3 -3
- package/dist/{chunk-5OFRDX66.js → chunk-E35HYQMK.js} +1 -1
- package/dist/{chunk-ETSF7SU6.js → chunk-FB3TCNQP.js} +1 -1
- package/dist/{chunk-BWAUL5MB.js → chunk-GHQG4VZA.js} +3 -3
- package/dist/{chunk-PIAGTZY3.js → chunk-GPFYITOF.js} +1 -1
- package/dist/{chunk-R6K62EXV.js → chunk-H22SR76M.js} +1 -1
- package/dist/{chunk-IO374IX6.js → chunk-HQOEAUDJ.js} +1 -1
- package/dist/{chunk-J5WWMC35.js → chunk-HWPP22XG.js} +2 -2
- package/dist/{chunk-BWFJB5JD.js → chunk-HZDI2CCS.js} +1 -1
- package/dist/{chunk-3WN5HUAK.js → chunk-I3G5FJ54.js} +1 -1
- package/dist/{chunk-TKBFRGUV.js → chunk-IPBSCJIZ.js} +1 -1
- package/dist/{chunk-ERFXYGRF.js → chunk-IQMWMT4V.js} +2 -2
- package/dist/{chunk-GT2OG2XM.js → chunk-JMTBK55P.js} +2 -2
- package/dist/{chunk-FURJVZCT.js → chunk-LCZULGMB.js} +1 -1
- package/dist/{chunk-PBCNINMB.js → chunk-LMQG3VPG.js} +1 -1
- package/dist/chunk-MKFEVHSR.js +83 -0
- package/dist/{chunk-JPQSVECQ.js → chunk-MP7DGKB6.js} +1 -1
- package/dist/{chunk-DO4J4TBZ.js → chunk-NKBKQEKS.js} +1 -1
- package/dist/{chunk-4MVLED6E.js → chunk-OCGIQGYJ.js} +2 -2
- package/dist/{chunk-EOXI3CRG.js → chunk-OOLMTUCO.js} +1 -1
- package/dist/{chunk-YUHKRRWO.js → chunk-OWHETZIU.js} +1 -1
- package/dist/{chunk-VWMB3CJN.js → chunk-PMBJMNBX.js} +1 -1
- package/dist/{chunk-ADSOY7UM.js → chunk-RIAPCEB5.js} +1 -1
- package/dist/{chunk-HJBHP66O.js → chunk-RJWO2PC5.js} +2 -2
- package/dist/{chunk-NTQPJJAN.js → chunk-RTMNULTL.js} +1 -1
- package/dist/{chunk-AQIFKLXY.js → chunk-SK5SLGZH.js} +1 -1
- package/dist/{chunk-7LSSYHOT.js → chunk-T24HBEU6.js} +1 -1
- package/dist/{chunk-W5AXJWOW.js → chunk-TJIBTHWJ.js} +1 -1
- package/dist/{chunk-TWJERLT3.js → chunk-TKUAGWNR.js} +1 -1
- package/dist/{chunk-JVII5264.js → chunk-TPIMOGOZ.js} +1 -1
- package/dist/{chunk-RQHN4J5P.js → chunk-UYF2B2TH.js} +1 -1
- package/dist/{chunk-I5OIKDX2.js → chunk-VERJCAJ4.js} +1 -1
- package/dist/{chunk-PKVWCKS2.js → chunk-VG3SIJ3M.js} +1 -1
- package/dist/{chunk-HEIOLITO.js → chunk-WK4FQPYW.js} +1 -1
- package/dist/{chunk-4RKTZSEW.js → chunk-WL4TC4YZ.js} +1 -1
- package/dist/{chunk-4DL2BQJE.js → chunk-YL7AR6PR.js} +1 -1
- package/dist/{chunk-LQWORB5B.js → chunk-YQDRJZ5J.js} +1 -1
- package/dist/{chunk-OOPOQKZZ.js → chunk-ZKLEAK7M.js} +1 -1
- package/dist/{chunk-KAA3GFTP.js → chunk-ZMIVQGAB.js} +3 -3
- package/dist/{chunk-OXEOC64K.js → chunk-ZW5SRQ5M.js} +1 -1
- package/dist/generated/index.d.ts +1 -0
- package/dist/generated/index.js +80 -79
- package/dist/index.js +80 -79
- package/dist/styles.css +545 -21
- package/package.json +3 -3
- package/dist/chunk-SBHAKX2T.js +0 -124
- /package/dist/{chunk-TWM6G2I2.js → chunk-PCBPDMNU.js} +0 -0
package/dist/styles.css
CHANGED
|
@@ -10353,7 +10353,328 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
10353
10353
|
}
|
|
10354
10354
|
|
|
10355
10355
|
|
|
10356
|
-
/*
|
|
10356
|
+
/* ChoiceCards-HAGJMK6Q.css */
|
|
10357
|
+
/*
|
|
10358
|
+
* Choices a person compares, as cards in a grid that wraps. The chosen card
|
|
10359
|
+
* takes the selected fill and the strong boundary, as a chosen ChoiceList row
|
|
10360
|
+
* does; the radio stays the mark, drawn in the card's corner; and no card is
|
|
10361
|
+
* ringed in the accent except by the focus ring itself.
|
|
10362
|
+
*
|
|
10363
|
+
* ONE LINE A ROW, THE SAME ROWS IN EVERY CARD: the picture, the name and its
|
|
10364
|
+
* tag on the first; the description on the second; then each fact on a line
|
|
10365
|
+
* of its own, its name and its value; and a reason line where any card has
|
|
10366
|
+
* one. Every card spans the same rows of the group's grid and lays its lines
|
|
10367
|
+
* on them as a subgrid, so cards side by side share each row: a description
|
|
10368
|
+
* that wraps in one card moves the facts of all of them, and Runs stays level
|
|
10369
|
+
* with Runs. Facts run together as one line of meta wrapped differently in
|
|
10370
|
+
* each card, and three cards read as three different shapes.
|
|
10371
|
+
*
|
|
10372
|
+
* A card is at least 20rem (24rem at `lg`), the width a fact's name and a
|
|
10373
|
+
* short value keep to one line in: a form's column holds one to a row, and a
|
|
10374
|
+
* wider surface two or three, aligned.
|
|
10375
|
+
*/
|
|
10376
|
+
.crewlet-choice-cards {
|
|
10377
|
+
--crewlet-choice-cards-min: 20rem;
|
|
10378
|
+
--crewlet-choice-cards-radio: 16px;
|
|
10379
|
+
/* How many rows a card spans, set from the options: the name, the description, the most facts, a reason. */
|
|
10380
|
+
--crewlet-choice-cards-rows: 3;
|
|
10381
|
+
display: grid;
|
|
10382
|
+
grid-template-columns: repeat(
|
|
10383
|
+
auto-fit,
|
|
10384
|
+
minmax(min(100%, var(--crewlet-choice-cards-min)), 1fr)
|
|
10385
|
+
);
|
|
10386
|
+
grid-auto-rows: auto;
|
|
10387
|
+
column-gap: var(--spacing-3);
|
|
10388
|
+
row-gap: 0;
|
|
10389
|
+
}
|
|
10390
|
+
|
|
10391
|
+
.crewlet-choice-cards--lg {
|
|
10392
|
+
--crewlet-choice-cards-min: 24rem;
|
|
10393
|
+
}
|
|
10394
|
+
|
|
10395
|
+
/*
|
|
10396
|
+
* THE CARD is a column of its lines. The space under a card is its margin,
|
|
10397
|
+
* the gap between one row of cards and the next; the lines inside a card keep
|
|
10398
|
+
* their own, smaller gap.
|
|
10399
|
+
*
|
|
10400
|
+
* Its first line is as tall as the largest picture a card set draws (a
|
|
10401
|
+
* product's mark), so the radio and every name sit on one line whatever
|
|
10402
|
+
* picture each card has.
|
|
10403
|
+
*/
|
|
10404
|
+
.crewlet-choice-cards__card {
|
|
10405
|
+
--crewlet-choice-cards-title: var(--size-control-sm);
|
|
10406
|
+
|
|
10407
|
+
position: relative;
|
|
10408
|
+
display: flex;
|
|
10409
|
+
flex-direction: column;
|
|
10410
|
+
gap: var(--spacing-1);
|
|
10411
|
+
min-width: 0;
|
|
10412
|
+
margin-block-end: var(--spacing-3);
|
|
10413
|
+
padding: var(--spacing-3);
|
|
10414
|
+
border: 1px solid var(--color-border-default);
|
|
10415
|
+
border-radius: var(--radius-md);
|
|
10416
|
+
background: var(--color-surface-elevated);
|
|
10417
|
+
cursor: pointer;
|
|
10418
|
+
transition:
|
|
10419
|
+
background-color var(--motion-duration-fast) var(--motion-easing-default),
|
|
10420
|
+
border-color var(--motion-duration-fast) var(--motion-easing-default);
|
|
10421
|
+
}
|
|
10422
|
+
|
|
10423
|
+
.crewlet-choice-cards__card:hover {
|
|
10424
|
+
background: var(--color-surface-hover);
|
|
10425
|
+
}
|
|
10426
|
+
|
|
10427
|
+
/*
|
|
10428
|
+
* THE CHOSEN CARD wears the soft selected tint laid OVER the raised surface,
|
|
10429
|
+
* inside an edge in the accent's ink, as a chosen ChoiceButtons option does.
|
|
10430
|
+
* The tint is translucent: laid on its own it let the page's ground through,
|
|
10431
|
+
* darker than the raised cards beside it in dark, and the chosen card looked
|
|
10432
|
+
* recessed. The edge is the accent's ink rather than the strong border,
|
|
10433
|
+
* because the edge is what tells the chosen card from the others at 3:1.
|
|
10434
|
+
*/
|
|
10435
|
+
.crewlet-choice-cards__card.is-checked {
|
|
10436
|
+
border-color: var(--color-brand-accent-ink);
|
|
10437
|
+
background-color: var(--color-surface-elevated);
|
|
10438
|
+
background-image: linear-gradient(var(--color-surface-selected), var(--color-surface-selected));
|
|
10439
|
+
}
|
|
10440
|
+
|
|
10441
|
+
/*
|
|
10442
|
+
* A CARD THAT CANNOT BE CHOSEN stands on the page's own ground and takes no
|
|
10443
|
+
* hover: the subtle surface it took is brighter than the raised one in light,
|
|
10444
|
+
* so the card that could not be chosen read as the most inviting. Its radio is
|
|
10445
|
+
* drawn quiet, as ChoiceList's disabled radio is, and its picture muted; its
|
|
10446
|
+
* words stay at full contrast, and its reason says why.
|
|
10447
|
+
*/
|
|
10448
|
+
.crewlet-choice-cards__card.is-disabled {
|
|
10449
|
+
cursor: not-allowed;
|
|
10450
|
+
background: transparent;
|
|
10451
|
+
}
|
|
10452
|
+
|
|
10453
|
+
.crewlet-choice-cards__card.is-disabled:hover {
|
|
10454
|
+
background: transparent;
|
|
10455
|
+
}
|
|
10456
|
+
|
|
10457
|
+
.crewlet-choice-cards__card.is-disabled .crewlet-choice-cards__radio {
|
|
10458
|
+
border-color: var(--color-border-default);
|
|
10459
|
+
background: var(--color-surface-subtle);
|
|
10460
|
+
}
|
|
10461
|
+
|
|
10462
|
+
.crewlet-choice-cards__card.is-disabled .crewlet-choice-cards__media {
|
|
10463
|
+
color: var(--color-text-tertiary);
|
|
10464
|
+
filter: grayscale(1);
|
|
10465
|
+
}
|
|
10466
|
+
|
|
10467
|
+
/* The ring sits inside the card's own box, over its border, rather than a second line beside it. */
|
|
10468
|
+
.crewlet-choice-cards__card:has(.crewlet-choice-cards__radio:focus-visible) {
|
|
10469
|
+
outline: 2px solid var(--color-focus);
|
|
10470
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
10471
|
+
}
|
|
10472
|
+
|
|
10473
|
+
/* The radio, drawn in the card's top end and centred on the first line: an empty ring, or the accent ring round an accent dot. */
|
|
10474
|
+
.crewlet-choice-cards__radio {
|
|
10475
|
+
appearance: none;
|
|
10476
|
+
position: absolute;
|
|
10477
|
+
inset-block-start: calc(var(--spacing-3) + (var(--crewlet-choice-cards-title) - var(--crewlet-choice-cards-radio)) / 2);
|
|
10478
|
+
inset-inline-end: var(--spacing-3);
|
|
10479
|
+
display: inline-grid;
|
|
10480
|
+
place-content: center;
|
|
10481
|
+
width: var(--crewlet-choice-cards-radio);
|
|
10482
|
+
height: var(--crewlet-choice-cards-radio);
|
|
10483
|
+
margin: 0;
|
|
10484
|
+
border: 1px solid var(--color-border-control);
|
|
10485
|
+
border-radius: var(--radius-circle);
|
|
10486
|
+
background: var(--color-surface-elevated);
|
|
10487
|
+
}
|
|
10488
|
+
|
|
10489
|
+
.crewlet-choice-cards__radio:checked {
|
|
10490
|
+
border-color: var(--color-brand-accent);
|
|
10491
|
+
}
|
|
10492
|
+
|
|
10493
|
+
.crewlet-choice-cards__radio:checked::after {
|
|
10494
|
+
content: "";
|
|
10495
|
+
width: 8px;
|
|
10496
|
+
height: 8px;
|
|
10497
|
+
border-radius: var(--radius-circle);
|
|
10498
|
+
background: var(--color-brand-accent);
|
|
10499
|
+
}
|
|
10500
|
+
|
|
10501
|
+
/*
|
|
10502
|
+
* THE CARD DRAWS THE RING (above), so the radio's own is transparent rather
|
|
10503
|
+
* than off: invisible beside the card's, and still a ring where forced-colors
|
|
10504
|
+
* mode repaints every outline in the system's colour.
|
|
10505
|
+
*/
|
|
10506
|
+
.crewlet-choice-cards__radio:focus-visible {
|
|
10507
|
+
outline: 2px solid transparent;
|
|
10508
|
+
}
|
|
10509
|
+
|
|
10510
|
+
/* The first line: the picture, the name and its tag, stopping short of the radio. */
|
|
10511
|
+
.crewlet-choice-cards__title {
|
|
10512
|
+
display: flex;
|
|
10513
|
+
align-items: center;
|
|
10514
|
+
gap: var(--spacing-2);
|
|
10515
|
+
grid-row: 1;
|
|
10516
|
+
min-width: 0;
|
|
10517
|
+
min-height: var(--crewlet-choice-cards-title);
|
|
10518
|
+
padding-inline-end: calc(var(--spacing-2) + var(--crewlet-choice-cards-radio));
|
|
10519
|
+
}
|
|
10520
|
+
|
|
10521
|
+
.crewlet-choice-cards__media {
|
|
10522
|
+
display: inline-flex;
|
|
10523
|
+
flex: none;
|
|
10524
|
+
color: var(--color-text-secondary);
|
|
10525
|
+
}
|
|
10526
|
+
|
|
10527
|
+
.crewlet-choice-cards__tag {
|
|
10528
|
+
padding: 0 var(--spacing-2);
|
|
10529
|
+
border: 1px solid var(--color-border-default);
|
|
10530
|
+
border-radius: var(--radius-pill);
|
|
10531
|
+
color: var(--color-text-secondary);
|
|
10532
|
+
font-size: var(--font-size-xs);
|
|
10533
|
+
white-space: nowrap;
|
|
10534
|
+
}
|
|
10535
|
+
|
|
10536
|
+
/* On the chosen card's tint the default edge all but vanishes in light, so the tag takes the strong one. */
|
|
10537
|
+
.crewlet-choice-cards__card.is-checked .crewlet-choice-cards__tag {
|
|
10538
|
+
border-color: var(--color-border-strong);
|
|
10539
|
+
}
|
|
10540
|
+
|
|
10541
|
+
.crewlet-choice-cards__label {
|
|
10542
|
+
min-width: 0;
|
|
10543
|
+
color: var(--color-text-primary);
|
|
10544
|
+
font-weight: var(--font-weight-medium);
|
|
10545
|
+
}
|
|
10546
|
+
|
|
10547
|
+
/*
|
|
10548
|
+
* The second row is the description's in every card once any card has one: a
|
|
10549
|
+
* card without one keeps an empty cell there, so its facts stay level with
|
|
10550
|
+
* the facts beside them.
|
|
10551
|
+
*/
|
|
10552
|
+
.crewlet-choice-cards__description {
|
|
10553
|
+
grid-row: 2;
|
|
10554
|
+
color: var(--color-text-secondary);
|
|
10555
|
+
font-size: var(--font-size-sm);
|
|
10556
|
+
}
|
|
10557
|
+
|
|
10558
|
+
/* The facts give each of their lines to the card's grid, one row a fact. */
|
|
10559
|
+
.crewlet-choice-cards__facts {
|
|
10560
|
+
display: contents;
|
|
10561
|
+
}
|
|
10562
|
+
|
|
10563
|
+
/*
|
|
10564
|
+
* A fact: its name in the quiet ink, then its value, on one line while there
|
|
10565
|
+
* is room. Its two parts share one size and line height and align to the top,
|
|
10566
|
+
* so a fact with a dot is no taller than one without: aligned on a baseline,
|
|
10567
|
+
* the dot (a box with no text) gave the line a baseline of its own and the
|
|
10568
|
+
* Needs line stood a pixel taller than Runs.
|
|
10569
|
+
*/
|
|
10570
|
+
.crewlet-choice-cards__fact {
|
|
10571
|
+
display: flex;
|
|
10572
|
+
align-items: flex-start;
|
|
10573
|
+
gap: var(--spacing-2);
|
|
10574
|
+
min-width: 0;
|
|
10575
|
+
font-size: var(--font-size-xs);
|
|
10576
|
+
}
|
|
10577
|
+
|
|
10578
|
+
.crewlet-choice-cards__fact-label {
|
|
10579
|
+
flex: none;
|
|
10580
|
+
color: var(--color-text-tertiary);
|
|
10581
|
+
}
|
|
10582
|
+
|
|
10583
|
+
.crewlet-choice-cards__fact-value {
|
|
10584
|
+
min-width: 0;
|
|
10585
|
+
color: var(--color-text-secondary);
|
|
10586
|
+
}
|
|
10587
|
+
|
|
10588
|
+
/*
|
|
10589
|
+
* A FACT WRAPS RATHER THAN CLIPS. A StatusDot is one line and its word gives
|
|
10590
|
+
* way with an ellipsis, which is right in a table cell and wrong here: a
|
|
10591
|
+
* fact is read to choose between the cards, and a narrow card cut "Docker
|
|
10592
|
+
* 24.0.7 found" to "Docker 24.0..." with nothing to reveal the rest. The word
|
|
10593
|
+
* wraps under itself, and the dot stays on the first line's centre, where it
|
|
10594
|
+
* sat while the fact was one line.
|
|
10595
|
+
*/
|
|
10596
|
+
.crewlet-choice-cards__fact-value > .crewlet-status {
|
|
10597
|
+
display: flex;
|
|
10598
|
+
align-items: flex-start;
|
|
10599
|
+
}
|
|
10600
|
+
|
|
10601
|
+
.crewlet-choice-cards__fact-value > .crewlet-status > .crewlet-status-dot {
|
|
10602
|
+
margin-block-start: calc((1lh - var(--crewlet-status-dot-size)) / 2);
|
|
10603
|
+
}
|
|
10604
|
+
|
|
10605
|
+
.crewlet-choice-cards__fact-value > .crewlet-status > .crewlet-status__label {
|
|
10606
|
+
overflow: visible;
|
|
10607
|
+
white-space: normal;
|
|
10608
|
+
overflow-wrap: anywhere;
|
|
10609
|
+
}
|
|
10610
|
+
|
|
10611
|
+
/* A reason given on a fact's line (`disabledReasonAt`) takes that line's value, in the same ink. */
|
|
10612
|
+
.crewlet-choice-cards__fact.is-reason .crewlet-choice-cards__fact-value {
|
|
10613
|
+
color: var(--color-feedback-warning-ink);
|
|
10614
|
+
}
|
|
10615
|
+
|
|
10616
|
+
/* The reason a disabled card cannot be chosen: the card's last row, in the warning ink. */
|
|
10617
|
+
.crewlet-choice-cards__reason {
|
|
10618
|
+
grid-row: -2;
|
|
10619
|
+
color: var(--color-feedback-warning-ink);
|
|
10620
|
+
font-size: var(--font-size-xs);
|
|
10621
|
+
}
|
|
10622
|
+
|
|
10623
|
+
|
|
10624
|
+
/*
|
|
10625
|
+
* WHERE SUBGRID IS SUPPORTED, every card spans the same rows of the group and
|
|
10626
|
+
* takes them from it, so a row is as tall as its tallest line across the cards
|
|
10627
|
+
* beside it and their facts stand level. Elsewhere each card stays the plain
|
|
10628
|
+
* column above: its lines still read in order, only not level with the next
|
|
10629
|
+
* card's.
|
|
10630
|
+
*/
|
|
10631
|
+
@supports (grid-template-rows: subgrid) {
|
|
10632
|
+
.crewlet-choice-cards__card {
|
|
10633
|
+
display: grid;
|
|
10634
|
+
grid-row: span var(--crewlet-choice-cards-rows);
|
|
10635
|
+
grid-template-rows: subgrid;
|
|
10636
|
+
grid-template-columns: minmax(0, 1fr);
|
|
10637
|
+
row-gap: var(--spacing-1);
|
|
10638
|
+
align-content: start;
|
|
10639
|
+
}
|
|
10640
|
+
}
|
|
10641
|
+
|
|
10642
|
+
/*
|
|
10643
|
+
* UNDER FORCED COLOURS the system repaints every colour above, so the drawn
|
|
10644
|
+
* radio's dot and the tint vanish together: the radio becomes the platform's
|
|
10645
|
+
* own, which marks itself; the chosen card's edge takes the system's
|
|
10646
|
+
* selection colour, twice as wide; and a card that cannot be chosen takes the
|
|
10647
|
+
* system's disabled ink, edge and words, rather than reading as one that can.
|
|
10648
|
+
*/
|
|
10649
|
+
@media (forced-colors: active) {
|
|
10650
|
+
.crewlet-choice-cards__radio {
|
|
10651
|
+
appearance: auto;
|
|
10652
|
+
}
|
|
10653
|
+
|
|
10654
|
+
.crewlet-choice-cards__card.is-checked {
|
|
10655
|
+
border-width: 2px;
|
|
10656
|
+
border-color: Highlight;
|
|
10657
|
+
}
|
|
10658
|
+
|
|
10659
|
+
.crewlet-choice-cards__card.is-disabled {
|
|
10660
|
+
border-color: GrayText;
|
|
10661
|
+
color: GrayText;
|
|
10662
|
+
}
|
|
10663
|
+
|
|
10664
|
+
.crewlet-choice-cards__card.is-disabled :is(.crewlet-choice-cards__label, .crewlet-choice-cards__description, .crewlet-choice-cards__fact-label, .crewlet-choice-cards__fact-value) {
|
|
10665
|
+
color: GrayText;
|
|
10666
|
+
}
|
|
10667
|
+
}
|
|
10668
|
+
|
|
10669
|
+
/* The border's ease into its hover and checked inks is held for a reader who asked for no motion. */
|
|
10670
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10671
|
+
.crewlet-choice-cards__card {
|
|
10672
|
+
transition: none;
|
|
10673
|
+
}
|
|
10674
|
+
}
|
|
10675
|
+
|
|
10676
|
+
|
|
10677
|
+
/* ChoiceList-JN4PPNFW.css */
|
|
10357
10678
|
/*
|
|
10358
10679
|
* A short list of answers in one bordered box: a radio, the label with a line
|
|
10359
10680
|
* of detail under it, and a tag at the row's end. The selected row takes the
|
|
@@ -10457,10 +10778,22 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
10457
10778
|
background: var(--color-surface-selected);
|
|
10458
10779
|
}
|
|
10459
10780
|
|
|
10460
|
-
.crewlet-choice-list.is-disabled .crewlet-choice-list__row
|
|
10781
|
+
.crewlet-choice-list.is-disabled .crewlet-choice-list__row,
|
|
10782
|
+
.crewlet-choice-list__row.is-disabled {
|
|
10461
10783
|
cursor: not-allowed;
|
|
10462
10784
|
}
|
|
10463
10785
|
|
|
10786
|
+
/* A choice that cannot be made takes no hover: the ground would offer it. */
|
|
10787
|
+
.crewlet-choice-list__row.is-disabled:hover {
|
|
10788
|
+
background: none;
|
|
10789
|
+
}
|
|
10790
|
+
|
|
10791
|
+
/* Its ring is drawn on the quiet boundary and ground; its words stay at full contrast. */
|
|
10792
|
+
.crewlet-choice-list__row.is-disabled .crewlet-choice-list__radio {
|
|
10793
|
+
border-color: var(--color-border-default);
|
|
10794
|
+
background: var(--color-surface-subtle);
|
|
10795
|
+
}
|
|
10796
|
+
|
|
10464
10797
|
/*
|
|
10465
10798
|
* THE RADIO IS DRAWN, not the platform's. In a dark palette the platform's
|
|
10466
10799
|
* own radio fills an unchosen answer with a grey disc, which beside the one
|
|
@@ -10519,6 +10852,15 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
10519
10852
|
overflow-wrap: anywhere;
|
|
10520
10853
|
}
|
|
10521
10854
|
|
|
10855
|
+
/* Why a disabled choice cannot be made, after its detail on the same line, in the warning ink. */
|
|
10856
|
+
.crewlet-choice-list__reason {
|
|
10857
|
+
color: var(--color-feedback-warning-ink);
|
|
10858
|
+
}
|
|
10859
|
+
|
|
10860
|
+
.crewlet-choice-list__detail > .crewlet-choice-list__reason:not(:first-child) {
|
|
10861
|
+
margin-inline-start: var(--spacing-2);
|
|
10862
|
+
}
|
|
10863
|
+
|
|
10522
10864
|
/* A tag says something ABOUT an answer ("Suggested"), so it is set in the
|
|
10523
10865
|
tertiary ink: in the accent ink it was a second accent mark on the chosen
|
|
10524
10866
|
row, beside the radio and the fill that already say which one is chosen. */
|
|
@@ -20564,7 +20906,7 @@ a.crewlet-icon-btn {
|
|
|
20564
20906
|
}
|
|
20565
20907
|
|
|
20566
20908
|
|
|
20567
|
-
/* Input-
|
|
20909
|
+
/* Input-WSMB7JG2.css */
|
|
20568
20910
|
/*
|
|
20569
20911
|
* The form row: Input, Textarea, Label, FormField, FormRow, FormSection and
|
|
20570
20912
|
* ReadOnlyField.
|
|
@@ -21113,13 +21455,18 @@ a.crewlet-icon-btn {
|
|
|
21113
21455
|
}
|
|
21114
21456
|
|
|
21115
21457
|
/* Raised over the field it overhangs, so the ring a focused action draws two
|
|
21116
|
-
pixels out from its edge is not painted over by the box under it.
|
|
21458
|
+
pixels out from its edge is not painted over by the box under it. The
|
|
21459
|
+
action is a control, not part of the label, so it keeps its own case and
|
|
21460
|
+
spacing: inside the label's capitals a link read "CLAUDE CODE'S MODEL
|
|
21461
|
+
NAMES", and a button's word was set in capitals no other button has. */
|
|
21117
21462
|
.crewlet-label__action {
|
|
21118
21463
|
position: relative;
|
|
21119
21464
|
z-index: var(--z-index-raised);
|
|
21120
21465
|
display: inline-flex;
|
|
21121
21466
|
align-items: center;
|
|
21122
21467
|
block-size: 1lh;
|
|
21468
|
+
letter-spacing: var(--font-letter-spacing-normal);
|
|
21469
|
+
text-transform: none;
|
|
21123
21470
|
}
|
|
21124
21471
|
|
|
21125
21472
|
/* ── FormField ───────────────────────────────────────────────────────── */
|
|
@@ -31084,7 +31431,7 @@ svg.crewlet-select__chevron {
|
|
|
31084
31431
|
}
|
|
31085
31432
|
|
|
31086
31433
|
|
|
31087
|
-
/* SetupWizard-
|
|
31434
|
+
/* SetupWizard-Y2PFPBCZ.css */
|
|
31088
31435
|
/*
|
|
31089
31436
|
* SetupWizard: a setup walked step by step on a page of its own
|
|
31090
31437
|
* (SetupWizard.tsx).
|
|
@@ -31116,9 +31463,20 @@ svg.crewlet-select__chevron {
|
|
|
31116
31463
|
|
|
31117
31464
|
container-type: inline-size;
|
|
31118
31465
|
min-width: 0;
|
|
31466
|
+
/*
|
|
31467
|
+
* IT FILLS ITS SCREEN, so the footer rests at the bottom of the view on
|
|
31468
|
+
* every step: sized to its content, a short step lifted the footer and its
|
|
31469
|
+
* Continue hundreds of pixels up the page, and the next step dropped them
|
|
31470
|
+
* again, so the button a person pressed moved on every press. Stretched,
|
|
31471
|
+
* the content row takes the slack and the footer stays where it was.
|
|
31472
|
+
*/
|
|
31473
|
+
flex: 1 0 auto;
|
|
31474
|
+
display: flex;
|
|
31475
|
+
flex-direction: column;
|
|
31119
31476
|
}
|
|
31120
31477
|
|
|
31121
31478
|
.crewlet-setup-wizard__frame {
|
|
31479
|
+
flex: 1 0 auto;
|
|
31122
31480
|
display: grid;
|
|
31123
31481
|
grid-template-columns: var(--crewlet-setup-wizard-rail) minmax(0, var(--crewlet-setup-wizard-column));
|
|
31124
31482
|
grid-template-areas:
|
|
@@ -31265,6 +31623,25 @@ svg.crewlet-select__chevron {
|
|
|
31265
31623
|
margin-inline-start: auto;
|
|
31266
31624
|
}
|
|
31267
31625
|
|
|
31626
|
+
/*
|
|
31627
|
+
* THE STEP'S PRIMARY ACTION (`primaryAction`) KEEPS ONE WIDTH on every step.
|
|
31628
|
+
* Sized to its word, "Continue" grew into "Create model" or "Save changes" on
|
|
31629
|
+
* the last step, and every button before it in the row moved 30px to make
|
|
31630
|
+
* room: the Back a person had just pressed was no longer under the pointer.
|
|
31631
|
+
* 8rem holds the longest of those words at the kit's medium button; a longer
|
|
31632
|
+
* one still grows rather than clips. The box carries the width and the button
|
|
31633
|
+
* fills it, so the rule names the primary action rather than whichever
|
|
31634
|
+
* element happens to come last.
|
|
31635
|
+
*/
|
|
31636
|
+
.crewlet-setup-wizard__primary {
|
|
31637
|
+
display: flex;
|
|
31638
|
+
min-inline-size: 8rem;
|
|
31639
|
+
}
|
|
31640
|
+
|
|
31641
|
+
.crewlet-setup-wizard__primary > * {
|
|
31642
|
+
flex: 1 1 auto;
|
|
31643
|
+
}
|
|
31644
|
+
|
|
31268
31645
|
/*
|
|
31269
31646
|
* A GHOST AT THE ROW'S START is pulled out by its padding and edge, as a card
|
|
31270
31647
|
* foot's is (StatusCard.css), so "Exit" starts on the line the title and the
|
|
@@ -31328,7 +31705,14 @@ svg.crewlet-select__chevron {
|
|
|
31328
31705
|
'content'
|
|
31329
31706
|
'aside'
|
|
31330
31707
|
'foot';
|
|
31331
|
-
|
|
31708
|
+
/*
|
|
31709
|
+
* THE CONTENT'S ROW TAKES THE SLACK here too. Every row auto shared a
|
|
31710
|
+
* short step's spare height among all four, the footer's with them, so the
|
|
31711
|
+
* footer stood 20px above the view's bottom on a step shorter than the
|
|
31712
|
+
* view and on it on every step that scrolls: Continue moved under the
|
|
31713
|
+
* thumb between presses.
|
|
31714
|
+
*/
|
|
31715
|
+
grid-template-rows: auto auto 1fr auto auto;
|
|
31332
31716
|
row-gap: var(--spacing-5);
|
|
31333
31717
|
}
|
|
31334
31718
|
|
|
@@ -31338,6 +31722,7 @@ svg.crewlet-select__chevron {
|
|
|
31338
31722
|
'rail'
|
|
31339
31723
|
'content'
|
|
31340
31724
|
'foot';
|
|
31725
|
+
grid-template-rows: auto auto 1fr auto;
|
|
31341
31726
|
}
|
|
31342
31727
|
|
|
31343
31728
|
.crewlet-setup-wizard__rail {
|
|
@@ -31347,6 +31732,114 @@ svg.crewlet-select__chevron {
|
|
|
31347
31732
|
gap: var(--spacing-2);
|
|
31348
31733
|
}
|
|
31349
31734
|
|
|
31735
|
+
/*
|
|
31736
|
+
* THE ROW OF STEPS SCROLLS RATHER THAN WRAPS: eight steps wrapped into three
|
|
31737
|
+
* rows of pills between the position line and the step. The row is as wide
|
|
31738
|
+
* as its steps, inside a scroller of the wizard's own that brings the
|
|
31739
|
+
* current step into view (SetupWizard.tsx), with room above and under the
|
|
31740
|
+
* pills for the 24px band a pill that can be picked is pressed through,
|
|
31741
|
+
* which the scroller would otherwise clip.
|
|
31742
|
+
*
|
|
31743
|
+
* THE SCROLLER SAYS IT SCROLLS: with its bar hidden, an edge that hides
|
|
31744
|
+
* steps fades out, at whichever side has steps beyond it, so a row cut at
|
|
31745
|
+
* the screen's edge reads as more to come rather than as the last step.
|
|
31746
|
+
*
|
|
31747
|
+
* THE FADE NEVER DIMS A FOCUS RING. A mask fades everything the element
|
|
31748
|
+
* paints, its own outline included, so the scroller's ring is drawn by the
|
|
31749
|
+
* frame around it, which is not masked. And a pill that takes focus is
|
|
31750
|
+
* scrolled clear of the faded edges, so its ring is never in the fade
|
|
31751
|
+
* either: `scroll-padding-inline` is the fade's own width, which the wizard
|
|
31752
|
+
* reads to place it (SetupWizard.tsx, `clearOfFade`).
|
|
31753
|
+
*/
|
|
31754
|
+
.crewlet-setup-wizard__steps-frame {
|
|
31755
|
+
--crewlet-setup-wizard-fade: var(--spacing-6);
|
|
31756
|
+
|
|
31757
|
+
min-width: 0;
|
|
31758
|
+
}
|
|
31759
|
+
|
|
31760
|
+
.crewlet-setup-wizard__steps {
|
|
31761
|
+
--crewlet-setup-wizard-fade-left: 0px;
|
|
31762
|
+
--crewlet-setup-wizard-fade-right: 0px;
|
|
31763
|
+
|
|
31764
|
+
min-width: 0;
|
|
31765
|
+
overflow-x: auto;
|
|
31766
|
+
scroll-padding-inline: var(--crewlet-setup-wizard-fade);
|
|
31767
|
+
overscroll-behavior-x: contain;
|
|
31768
|
+
scrollbar-width: none;
|
|
31769
|
+
-webkit-mask-image: linear-gradient(
|
|
31770
|
+
to right,
|
|
31771
|
+
transparent,
|
|
31772
|
+
#000 var(--crewlet-setup-wizard-fade-left),
|
|
31773
|
+
#000 calc(100% - var(--crewlet-setup-wizard-fade-right)),
|
|
31774
|
+
transparent
|
|
31775
|
+
);
|
|
31776
|
+
mask-image: linear-gradient(
|
|
31777
|
+
to right,
|
|
31778
|
+
transparent,
|
|
31779
|
+
#000 var(--crewlet-setup-wizard-fade-left),
|
|
31780
|
+
#000 calc(100% - var(--crewlet-setup-wizard-fade-right)),
|
|
31781
|
+
transparent
|
|
31782
|
+
);
|
|
31783
|
+
}
|
|
31784
|
+
|
|
31785
|
+
.crewlet-setup-wizard__steps::-webkit-scrollbar {
|
|
31786
|
+
display: none;
|
|
31787
|
+
}
|
|
31788
|
+
|
|
31789
|
+
.crewlet-setup-wizard__steps[data-fade-left] {
|
|
31790
|
+
--crewlet-setup-wizard-fade-left: var(--crewlet-setup-wizard-fade);
|
|
31791
|
+
}
|
|
31792
|
+
|
|
31793
|
+
.crewlet-setup-wizard__steps[data-fade-right] {
|
|
31794
|
+
--crewlet-setup-wizard-fade-right: var(--crewlet-setup-wizard-fade);
|
|
31795
|
+
}
|
|
31796
|
+
|
|
31797
|
+
/*
|
|
31798
|
+
* A row that overflows takes the keyboard, so it can be scrolled without a
|
|
31799
|
+
* pointer. Its ring is the frame's, unmasked, inside the frame's edge, and
|
|
31800
|
+
* the frame's ring is the one that carries the focus in a forced-colours
|
|
31801
|
+
* mode too. The scroller's own outline is transparent only to turn off the
|
|
31802
|
+
* browser's default ring, which would sit under the mask, dimmed, beside
|
|
31803
|
+
* the frame's (transparent rather than none, as the kit's focus check asks
|
|
31804
|
+
* of every focus style).
|
|
31805
|
+
*/
|
|
31806
|
+
.crewlet-setup-wizard__steps:focus-visible {
|
|
31807
|
+
outline: 2px solid transparent;
|
|
31808
|
+
}
|
|
31809
|
+
|
|
31810
|
+
.crewlet-setup-wizard__steps-frame:has(> .crewlet-setup-wizard__steps:focus-visible) {
|
|
31811
|
+
outline: 2px solid var(--color-focus);
|
|
31812
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
31813
|
+
}
|
|
31814
|
+
|
|
31815
|
+
.crewlet-setup-wizard__steps .crewlet-stepper {
|
|
31816
|
+
flex-wrap: nowrap;
|
|
31817
|
+
inline-size: max-content;
|
|
31818
|
+
max-inline-size: none;
|
|
31819
|
+
padding-block: calc((var(--size-target-min) - var(--crewlet-stepper-pill-height)) / 2);
|
|
31820
|
+
}
|
|
31821
|
+
|
|
31822
|
+
.crewlet-setup-wizard__steps .crewlet-stepper__step {
|
|
31823
|
+
flex: none;
|
|
31824
|
+
}
|
|
31825
|
+
|
|
31826
|
+
/* How far along, as a thin bar under the position line, in the accent. */
|
|
31827
|
+
.crewlet-setup-wizard__progress {
|
|
31828
|
+
display: block;
|
|
31829
|
+
block-size: 2px;
|
|
31830
|
+
overflow: hidden;
|
|
31831
|
+
border-radius: var(--radius-pill);
|
|
31832
|
+
background: var(--color-border-default);
|
|
31833
|
+
}
|
|
31834
|
+
|
|
31835
|
+
.crewlet-setup-wizard__progress::before {
|
|
31836
|
+
content: '';
|
|
31837
|
+
display: block;
|
|
31838
|
+
block-size: 100%;
|
|
31839
|
+
inline-size: calc(var(--crewlet-setup-wizard-progress, 0) * 100%);
|
|
31840
|
+
background: var(--color-brand-accent);
|
|
31841
|
+
}
|
|
31842
|
+
|
|
31350
31843
|
/*
|
|
31351
31844
|
* THE FOLDED PREVIEW HANGS IN THE GUTTER, as a change list's disclosure
|
|
31352
31845
|
* does: the trigger's padding and the panel's inset stand outside the
|
|
@@ -31377,18 +31870,19 @@ svg.crewlet-select__chevron {
|
|
|
31377
31870
|
display: contents;
|
|
31378
31871
|
}
|
|
31379
31872
|
|
|
31380
|
-
.crewlet-setup-wizard__footer-end > :first-child {
|
|
31873
|
+
.crewlet-setup-wizard__footer-end > :first-child:not(.crewlet-setup-wizard__primary) {
|
|
31381
31874
|
margin-inline-start: auto;
|
|
31382
31875
|
}
|
|
31383
31876
|
|
|
31384
|
-
|
|
31877
|
+
/* The primary action, named, takes the second row; the actions given in `footer` share the first, whatever their count. */
|
|
31878
|
+
.crewlet-setup-wizard__primary {
|
|
31385
31879
|
flex: 1 1 100%;
|
|
31386
31880
|
}
|
|
31387
31881
|
|
|
31388
31882
|
/* The first row's last action ends it, at the row's end: a ghost there is
|
|
31389
31883
|
pulled out as "Exit" is at its start, so the two words stand level with
|
|
31390
31884
|
the primary's edges under them. */
|
|
31391
|
-
.crewlet-setup-wizard__footer-end > .crewlet-btn--ghost.crewlet-btn--medium:
|
|
31885
|
+
.crewlet-setup-wizard__footer-end > .crewlet-btn--ghost.crewlet-btn--medium:has(+ .crewlet-setup-wizard__primary) {
|
|
31392
31886
|
margin-inline-end: calc(-1 * (var(--spacing-3) + 1px));
|
|
31393
31887
|
}
|
|
31394
31888
|
}
|
|
@@ -35368,7 +35862,7 @@ svg.crewlet-select__chevron {
|
|
|
35368
35862
|
}
|
|
35369
35863
|
|
|
35370
35864
|
|
|
35371
|
-
/* StatusDot-
|
|
35865
|
+
/* StatusDot-FJND3CZY.css */
|
|
35372
35866
|
/*
|
|
35373
35867
|
* The status dot: a 7px mark in its tone's fill, beside the word it belongs
|
|
35374
35868
|
* to. See the component doc for why it is hidden from assistive technology.
|
|
@@ -35387,10 +35881,17 @@ svg.crewlet-select__chevron {
|
|
|
35387
35881
|
* reader notice it" difference to. Every soft step does, by 4.48 at the least.
|
|
35388
35882
|
*/
|
|
35389
35883
|
|
|
35884
|
+
/*
|
|
35885
|
+
* The size is a property of the dot rather than two bare numbers so that a
|
|
35886
|
+
* layout placing the dot against a line it does not share a box with (a
|
|
35887
|
+
* ChoiceCards fact that wraps) centres it on that line by the same measure.
|
|
35888
|
+
*/
|
|
35390
35889
|
.crewlet-status-dot {
|
|
35890
|
+
--crewlet-status-dot-size: 7px;
|
|
35891
|
+
|
|
35391
35892
|
display: inline-block;
|
|
35392
|
-
width:
|
|
35393
|
-
height:
|
|
35893
|
+
width: var(--crewlet-status-dot-size);
|
|
35894
|
+
height: var(--crewlet-status-dot-size);
|
|
35394
35895
|
border-radius: var(--radius-circle);
|
|
35395
35896
|
/*
|
|
35396
35897
|
* The quiet state is still a mark, so it takes the tertiary step rather than
|
|
@@ -35679,7 +36180,7 @@ svg.crewlet-select__chevron {
|
|
|
35679
36180
|
}
|
|
35680
36181
|
|
|
35681
36182
|
|
|
35682
|
-
/* Stepper-
|
|
36183
|
+
/* Stepper-YQBNYCIS.css */
|
|
35683
36184
|
/*
|
|
35684
36185
|
* The stepper: where a sequence has got to (Stepper.tsx).
|
|
35685
36186
|
*
|
|
@@ -35703,6 +36204,11 @@ svg.crewlet-select__chevron {
|
|
|
35703
36204
|
a half), named because the gap and the rule both measure by it (see THE
|
|
35704
36205
|
RULE BETWEEN TWO STEPS). */
|
|
35705
36206
|
--crewlet-stepper-rule-clearance: calc(var(--spacing-1) * 1.5);
|
|
36207
|
+
/* The design's 20px pill (and a column's mark), following the density with
|
|
36208
|
+
every other step height in the kit. Declared once, and read where a layout
|
|
36209
|
+
sizes around a pill: SetupWizard's row of steps clears the target band
|
|
36210
|
+
above and under it by this height. Read it; do not set it. */
|
|
36211
|
+
--crewlet-stepper-pill-height: calc(20px * var(--density, 1));
|
|
35706
36212
|
|
|
35707
36213
|
display: flex;
|
|
35708
36214
|
flex-wrap: wrap;
|
|
@@ -35755,9 +36261,9 @@ svg.crewlet-select__chevron {
|
|
|
35755
36261
|
gap: calc(var(--spacing-1) * 1.25);
|
|
35756
36262
|
box-sizing: border-box;
|
|
35757
36263
|
/* The design's 20px pill, which follows the density with every other step
|
|
35758
|
-
height in the kit.
|
|
35759
|
-
|
|
35760
|
-
height:
|
|
36264
|
+
height in the kit. A pill that only labels takes no press; one a reader
|
|
36265
|
+
can pick clears the 24px target floor through the band below. */
|
|
36266
|
+
height: var(--crewlet-stepper-pill-height);
|
|
35761
36267
|
max-width: 100%;
|
|
35762
36268
|
padding: 0 var(--spacing-2);
|
|
35763
36269
|
border: 1px solid var(--color-border-default);
|
|
@@ -35893,12 +36399,30 @@ svg.crewlet-select__chevron {
|
|
|
35893
36399
|
}
|
|
35894
36400
|
|
|
35895
36401
|
.crewlet-stepper__chip.crewlet-stepper__target {
|
|
36402
|
+
position: relative;
|
|
35896
36403
|
font-family: var(--font-family-sans);
|
|
35897
36404
|
font-size: var(--font-size-2xs);
|
|
35898
36405
|
font-weight: var(--font-weight-medium);
|
|
35899
36406
|
line-height: 1;
|
|
35900
36407
|
}
|
|
35901
36408
|
|
|
36409
|
+
/*
|
|
36410
|
+
* A PICKABLE PILL IS PRESSED THROUGH THE TARGET FLOOR, not its own 20px: an
|
|
36411
|
+
* invisible band of --size-target-min, centred on the pill, reaches above and
|
|
36412
|
+
* under it, so a phone's row of steps takes a thumb without the pill growing
|
|
36413
|
+
* past the design's height. The band is sized and centred rather than inset
|
|
36414
|
+
* from the pill: an inset counts from inside the pill's hairline, which left
|
|
36415
|
+
* it 22px.
|
|
36416
|
+
*/
|
|
36417
|
+
.crewlet-stepper__chip.crewlet-stepper__target::after {
|
|
36418
|
+
content: '';
|
|
36419
|
+
position: absolute;
|
|
36420
|
+
inset-inline: 0;
|
|
36421
|
+
top: 50%;
|
|
36422
|
+
height: var(--size-target-min);
|
|
36423
|
+
translate: 0 -50%;
|
|
36424
|
+
}
|
|
36425
|
+
|
|
35902
36426
|
.crewlet-stepper__target:hover {
|
|
35903
36427
|
background: var(--color-surface-hover);
|
|
35904
36428
|
}
|
|
@@ -35939,9 +36463,9 @@ svg.crewlet-select__chevron {
|
|
|
35939
36463
|
.crewlet-stepper--vertical .crewlet-stepper__step:not(:last-child)::after {
|
|
35940
36464
|
content: '';
|
|
35941
36465
|
position: absolute;
|
|
35942
|
-
top: calc(var(--spacing-2) +
|
|
36466
|
+
top: calc(var(--spacing-2) + var(--crewlet-stepper-pill-height) + 4px);
|
|
35943
36467
|
bottom: calc(4px - var(--spacing-2));
|
|
35944
|
-
left: calc(var(--spacing-2) +
|
|
36468
|
+
left: calc(var(--spacing-2) + var(--crewlet-stepper-pill-height) / 2);
|
|
35945
36469
|
width: 1px;
|
|
35946
36470
|
background: var(--color-border-strong);
|
|
35947
36471
|
pointer-events: none;
|
|
@@ -35967,8 +36491,8 @@ svg.crewlet-select__chevron {
|
|
|
35967
36491
|
align-items: center;
|
|
35968
36492
|
justify-content: center;
|
|
35969
36493
|
box-sizing: border-box;
|
|
35970
|
-
width:
|
|
35971
|
-
height:
|
|
36494
|
+
width: var(--crewlet-stepper-pill-height);
|
|
36495
|
+
height: var(--crewlet-stepper-pill-height);
|
|
35972
36496
|
border: 1px solid var(--color-border-default);
|
|
35973
36497
|
border-radius: var(--radius-pill);
|
|
35974
36498
|
font-size: var(--font-size-2xs);
|
|
@@ -35985,7 +36509,7 @@ svg.crewlet-select__chevron {
|
|
|
35985
36509
|
}
|
|
35986
36510
|
|
|
35987
36511
|
.crewlet-stepper__title {
|
|
35988
|
-
line-height:
|
|
36512
|
+
line-height: var(--crewlet-stepper-pill-height);
|
|
35989
36513
|
overflow-wrap: anywhere;
|
|
35990
36514
|
}
|
|
35991
36515
|
|