@crewlethq/ui 0.49.1 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +34 -0
  2. package/dist/ArtifactCard/index.js +1 -1
  3. package/dist/{ArtifactCard-SOB63NV5.css → ArtifactCard-F7IVRL3A.css} +3 -0
  4. package/dist/AvatarPicker/index.js +2 -2
  5. package/dist/BrandSample/index.js +3 -3
  6. package/dist/BrandScope/index.js +2 -2
  7. package/dist/Callout/index.js +1 -1
  8. package/dist/{Callout-ZAVG3P66.css → Callout-G3N3IE6M.css} +9 -0
  9. package/dist/ColorChip/ColorChip.d.ts +26 -0
  10. package/dist/ColorChip/index.d.ts +3 -0
  11. package/dist/ColorChip/index.js +3 -0
  12. package/dist/ColorChip-A5XHTH3J.css +46 -0
  13. package/dist/ColorField/ColorField.d.ts +16 -8
  14. package/dist/ColorField/index.js +2 -2
  15. package/dist/ColorSwatch/index.js +2 -2
  16. package/dist/ContrastBadge/ContrastBadge.d.ts +38 -3
  17. package/dist/ContrastBadge/index.d.ts +2 -2
  18. package/dist/ContrastBadge/index.js +2 -2
  19. package/dist/ContrastHelp/ContrastHelp.d.ts +40 -0
  20. package/dist/ContrastHelp/index.d.ts +3 -0
  21. package/dist/ContrastHelp/index.js +12 -0
  22. package/dist/ContrastHelp-MZCAW5WQ.css +43 -0
  23. package/dist/DataView/index.js +2 -2
  24. package/dist/EditingStatus/EditingStatus.d.ts +13 -1
  25. package/dist/EditingStatus/index.js +3 -1
  26. package/dist/{EditingStatus-NNA2CKIL.css → EditingStatus-YU7EGM6Y.css} +22 -7
  27. package/dist/FolderTile/index.js +1 -1
  28. package/dist/{FolderTile-FDT5Y63Z.css → FolderTile-MIUEB7SO.css} +12 -5
  29. package/dist/FollowBanner/index.js +2 -2
  30. package/dist/InlineEditor/index.js +4 -2
  31. package/dist/LinkInterstitial/index.js +2 -2
  32. package/dist/ListInput/ListInput.d.ts +3 -1
  33. package/dist/ListInput/index.js +1 -1
  34. package/dist/{ListInput-WUP2YITQ.css → ListInput-P2ECUQJ2.css} +1 -1
  35. package/dist/LogoSlot/index.js +3 -3
  36. package/dist/RichEditor/index.js +2 -2
  37. package/dist/SandboxedFrame/index.js +2 -2
  38. package/dist/SetupWizard/SetupWizard.d.ts +87 -0
  39. package/dist/SetupWizard/index.d.ts +3 -0
  40. package/dist/SetupWizard/index.js +11 -0
  41. package/dist/SetupWizard-GZK5UDKC.css +223 -0
  42. package/dist/ShareDialog/index.js +2 -2
  43. package/dist/Stepper/Stepper.d.ts +60 -11
  44. package/dist/Stepper/index.d.ts +1 -1
  45. package/dist/Stepper/index.js +1 -1
  46. package/dist/Stepper-QEJI5RGX.css +355 -0
  47. package/dist/{chunk-ITI2Z44C.js → chunk-2UFUP2ZH.js} +2 -2
  48. package/dist/{chunk-4A4QG6UC.js → chunk-34C7NYIQ.js} +1 -1
  49. package/dist/chunk-6GTTRJWJ.js +24 -0
  50. package/dist/{chunk-7P336RA5.js → chunk-6RMZH7P7.js} +1 -1
  51. package/dist/{chunk-W6FOEBIL.js → chunk-73WHPLWQ.js} +24 -15
  52. package/dist/chunk-7W3LYIOC.js +27 -0
  53. package/dist/{chunk-OEEYL2CM.js → chunk-AVMQMY66.js} +2 -2
  54. package/dist/{chunk-SZZRIHGT.js → chunk-BPCY7ZID.js} +1 -1
  55. package/dist/chunk-DTSZUH6H.js +124 -0
  56. package/dist/chunk-EJWPYEG4.js +38 -0
  57. package/dist/{chunk-M4QM477B.js → chunk-FXHWOXGD.js} +1 -1
  58. package/dist/{chunk-7PCDKRNB.js → chunk-KHP7TJF7.js} +2 -2
  59. package/dist/chunk-KIRQZG3G.js +53 -0
  60. package/dist/chunk-LDGQIDIZ.js +129 -0
  61. package/dist/{chunk-JFDIMO3A.js → chunk-PGYIDNGG.js} +1 -1
  62. package/dist/{chunk-WLSEAIVC.js → chunk-RHPBTE3F.js} +1 -1
  63. package/dist/{chunk-Q44X36QC.js → chunk-S63QOMXC.js} +1 -1
  64. package/dist/{chunk-GP4YWZFO.js → chunk-U3LNU4B2.js} +1 -1
  65. package/dist/{chunk-PGR2PKH6.js → chunk-UUTEWGO6.js} +10 -10
  66. package/dist/{chunk-356JNSER.js → chunk-WQQ5T5SA.js} +1 -1
  67. package/dist/{chunk-B235ANDO.js → chunk-WW7TU6HE.js} +34 -16
  68. package/dist/{chunk-P3OIM6OC.js → chunk-X7WEE3EK.js} +1 -1
  69. package/dist/generated/index.d.ts +3 -0
  70. package/dist/generated/index.js +76 -73
  71. package/dist/index.js +76 -73
  72. package/dist/styles.css +564 -30
  73. package/dist/utils/hexColour.d.ts +13 -0
  74. package/package.json +3 -3
  75. package/dist/Stepper-HW4JM3YH.css +0 -176
  76. package/dist/chunk-5QWIJSQM.js +0 -73
  77. package/dist/chunk-MULOZYHL.js +0 -30
  78. package/dist/chunk-UZMNR366.js +0 -9
  79. package/dist/{Editor-ZYDXHGJE.js → Editor-MLGK3KOG.js} +1 -1
  80. package/dist/{chunk-3QSKDZR5.js → chunk-EW2N4FOD.js} +1 -1
  81. package/dist/{chunk-3WMOEGEL.js → chunk-P432I5DQ.js} +0 -0
  82. package/dist/{chunk-NAWUXCBC.js → chunk-WX6IJJ4U.js} +1 -1
package/dist/styles.css CHANGED
@@ -2913,7 +2913,7 @@ button.crewlet-account-row__who:focus-visible {
2913
2913
  }
2914
2914
 
2915
2915
 
2916
- /* ArtifactCard-SOB63NV5.css */
2916
+ /* ArtifactCard-F7IVRL3A.css */
2917
2917
  /*
2918
2918
  * A card in a gallery: the preview on top at a fixed ratio, so a grid of them
2919
2919
  * lines up whatever each preview is, the kind's badge over its foot, then the
@@ -3131,6 +3131,9 @@ button.crewlet-account-row__who:focus-visible {
3131
3131
 
3132
3132
  .crewlet-artifact-card--card .crewlet-artifact-card__facts {
3133
3133
  font-size: var(--font-size-sm);
3134
+ /* The title's line height, so a card's words and a folder tile's beside it
3135
+ keep one rhythm. */
3136
+ line-height: 1.35;
3134
3137
  }
3135
3138
 
3136
3139
  .crewlet-artifact-card__meta {
@@ -5812,7 +5815,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
5812
5815
  }
5813
5816
 
5814
5817
 
5815
- /* Callout-ZAVG3P66.css */
5818
+ /* Callout-G3N3IE6M.css */
5816
5819
  /*
5817
5820
  * The callout: a status that stays in the content flow.
5818
5821
  *
@@ -5892,7 +5895,16 @@ a.crewlet-breadcrumb__crumb:focus-visible {
5892
5895
  font-weight: var(--font-weight-semibold);
5893
5896
  }
5894
5897
 
5898
+ /*
5899
+ * THE ACTIONS ARE A ROW one step apart, wrapping when there is no room, so a
5900
+ * callout with two (Continue setting up, Review and adopt) never draws them
5901
+ * touching, whatever the host wraps them in.
5902
+ */
5895
5903
  .crewlet-callout__action {
5904
+ display: flex;
5905
+ flex-wrap: wrap;
5906
+ align-items: center;
5907
+ gap: var(--spacing-2);
5896
5908
  grid-column: 3;
5897
5909
  grid-row: 1;
5898
5910
  align-self: center;
@@ -9573,6 +9585,55 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
9573
9585
  }
9574
9586
 
9575
9587
 
9588
+ /* ColorChip-A5XHTH3J.css */
9589
+ /*
9590
+ * A colour as a small chip (ColorChip.tsx). Its fill is the one value that is
9591
+ * not a token, and it arrives through `--crewlet-color-chip-value` only after
9592
+ * it has passed `#rrggbb`.
9593
+ */
9594
+ .crewlet-color-chip {
9595
+ display: inline-block;
9596
+ flex: none;
9597
+ box-sizing: border-box;
9598
+ width: var(--spacing-3);
9599
+ height: var(--spacing-3);
9600
+ background: var(--crewlet-color-chip-value, var(--color-surface-inset));
9601
+ /* An edge of its own, so a colour that matches its ground is still a chip. */
9602
+ box-shadow: inset 0 0 0 1px var(--color-border-hover);
9603
+ vertical-align: middle;
9604
+ }
9605
+
9606
+ .crewlet-color-chip--sm {
9607
+ width: var(--spacing-4);
9608
+ height: var(--spacing-4);
9609
+ }
9610
+
9611
+ .crewlet-color-chip--round {
9612
+ border-radius: var(--radius-circle);
9613
+ }
9614
+
9615
+ .crewlet-color-chip--square {
9616
+ border-radius: var(--radius-xs);
9617
+ }
9618
+
9619
+ /* The hatch of no colour, as every swatch in the package draws it. */
9620
+ .crewlet-color-chip.is-empty {
9621
+ background: repeating-linear-gradient(-45deg, var(--color-border-hatch) 0 1px, transparent 1px var(--spacing-1));
9622
+ }
9623
+
9624
+ /*
9625
+ * FORCED COLORS drops backgrounds, which is all a chip is, so the mode keeps
9626
+ * this one: the colour is the information, and the edge is drawn in the
9627
+ * system's text colour so the chip still has a boundary.
9628
+ */
9629
+ @media (forced-colors: active) {
9630
+ .crewlet-color-chip {
9631
+ forced-color-adjust: none;
9632
+ box-shadow: inset 0 0 0 1px CanvasText;
9633
+ }
9634
+ }
9635
+
9636
+
9576
9637
  /* ColorField-2OIOWT3Z.css */
9577
9638
  /*
9578
9639
  * A colour a person chooses: the swatch that opens the platform's picker,
@@ -10551,6 +10612,52 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10551
10612
  }
10552
10613
 
10553
10614
 
10615
+ /* ContrastHelp-MZCAW5WQ.css */
10616
+ /*
10617
+ * ContrastHelp: what the contrast levels mean, in a short panel opened from an
10618
+ * info button (ContrastHelp.tsx).
10619
+ */
10620
+ .crewlet-contrast-help {
10621
+ display: flex;
10622
+ flex-direction: column;
10623
+ gap: var(--spacing-2);
10624
+ padding: var(--spacing-3);
10625
+ font-family: var(--font-family-sans);
10626
+ font-size: var(--font-size-xs);
10627
+ line-height: var(--font-line-height-snug);
10628
+ }
10629
+
10630
+ .crewlet-contrast-help__title {
10631
+ margin: 0;
10632
+ color: var(--color-text-primary);
10633
+ font-size: var(--font-size-sm);
10634
+ font-weight: var(--font-weight-semibold);
10635
+ }
10636
+
10637
+ .crewlet-contrast-help__intro {
10638
+ margin: 0;
10639
+ color: var(--color-text-secondary);
10640
+ }
10641
+
10642
+ /* Each level's word as the badge draws it, beside what it means. */
10643
+ .crewlet-contrast-help__levels {
10644
+ display: grid;
10645
+ grid-template-columns: max-content minmax(0, 1fr);
10646
+ align-items: baseline;
10647
+ gap: var(--spacing-2) var(--spacing-3);
10648
+ margin: 0;
10649
+ }
10650
+
10651
+ .crewlet-contrast-help__levels dt,
10652
+ .crewlet-contrast-help__levels dd {
10653
+ margin: 0;
10654
+ }
10655
+
10656
+ .crewlet-contrast-help__levels dd {
10657
+ color: var(--color-text-secondary);
10658
+ }
10659
+
10660
+
10554
10661
  /* Copyable-5PNRFOLS.css */
10555
10662
  /*
10556
10663
  * Copyable: a value and the one control that copies it.
@@ -15678,7 +15785,7 @@ svg.crewlet-datetime__chevron {
15678
15785
  }
15679
15786
 
15680
15787
 
15681
- /* EditingStatus-NNA2CKIL.css */
15788
+ /* EditingStatus-YU7EGM6Y.css */
15682
15789
  /*
15683
15790
  * The editing status (EditingStatus.tsx): a word and a dot, in the bar's own
15684
15791
  * small step, quiet until something is unsaved.
@@ -15707,20 +15814,32 @@ svg.crewlet-datetime__chevron {
15707
15814
  background: var(--color-brand-accent);
15708
15815
  }
15709
15816
 
15817
+ /*
15818
+ * THE WORDS RUN AS TEXT, not as flex items, so the space between the label
15819
+ * and the state (which the ear needs) and the space before the time are real
15820
+ * spaces, and the row is cut with an ellipsis rather than squeezed.
15821
+ */
15822
+ .crewlet-editing-status__text {
15823
+ min-width: 0;
15824
+ overflow: hidden;
15825
+ text-overflow: ellipsis;
15826
+ }
15827
+
15710
15828
  .crewlet-editing-status__label {
15711
15829
  color: var(--color-text-primary);
15712
15830
  font-weight: var(--font-weight-medium);
15713
15831
  }
15714
15832
 
15715
- .crewlet-editing-status__state {
15716
- overflow: hidden;
15833
+ .crewlet-editing-status__state,
15834
+ .crewlet-editing-status__ago {
15717
15835
  color: var(--color-text-tertiary);
15718
- text-overflow: ellipsis;
15719
15836
  }
15720
15837
 
15838
+ /* The dot between the label and the state: drawn, never read. The space
15839
+ before it in the text gives it the step on its left. */
15721
15840
  .crewlet-editing-status__state::before {
15722
15841
  content: '\00b7';
15723
- margin-right: var(--spacing-2);
15842
+ margin-inline: var(--spacing-1) var(--spacing-2);
15724
15843
  }
15725
15844
 
15726
15845
  /*
@@ -15734,7 +15853,8 @@ svg.crewlet-datetime__chevron {
15734
15853
  * "Editing" folds too, and Cancel and Save beside the dot say an edit is open.
15735
15854
  */
15736
15855
  @media (width < 480px) {
15737
- .crewlet-editing-status__state {
15856
+ .crewlet-editing-status__state,
15857
+ .crewlet-editing-status__ago {
15738
15858
  position: absolute;
15739
15859
  width: 1px;
15740
15860
  height: 1px;
@@ -15745,7 +15865,8 @@ svg.crewlet-datetime__chevron {
15745
15865
  }
15746
15866
 
15747
15867
  @container crewlet-artifact-bar (width < 900px) {
15748
- .crewlet-editing-status__state {
15868
+ .crewlet-editing-status__state,
15869
+ .crewlet-editing-status__ago {
15749
15870
  position: absolute;
15750
15871
  width: 1px;
15751
15872
  height: 1px;
@@ -15757,7 +15878,8 @@ svg.crewlet-datetime__chevron {
15757
15878
 
15758
15879
  @container crewlet-artifact-bar (width < 640px) {
15759
15880
  .crewlet-editing-status__label,
15760
- .crewlet-editing-status__state {
15881
+ .crewlet-editing-status__state,
15882
+ .crewlet-editing-status__ago {
15761
15883
  position: absolute;
15762
15884
  width: 1px;
15763
15885
  height: 1px;
@@ -16405,7 +16527,7 @@ button.crewlet-finding-list__row:focus-visible {
16405
16527
  }
16406
16528
 
16407
16529
 
16408
- /* FolderTile-FDT5Y63Z.css */
16530
+ /* FolderTile-MIUEB7SO.css */
16409
16531
  /*
16410
16532
  * A folder in a gallery: a short tile on Card (no preview), the folder glyph
16411
16533
  * on a neutral tint over the name and one quiet line, and a More menu in the
@@ -16435,8 +16557,17 @@ button.crewlet-finding-list__row:focus-visible {
16435
16557
  --crewlet-folder-tile-floor: auto;
16436
16558
  --crewlet-folder-tile-glyph: 40px;
16437
16559
  --crewlet-folder-tile-glyph-radius: var(--radius-md);
16560
+ /*
16561
+ * THE WORDS ARE SET AS THE CARDS BESIDE THEM: a tile's name at a gallery
16562
+ * card's title step and weight, its facts at the card's facts step, one
16563
+ * line height for both and the card's step between them. The row (and a
16564
+ * tile on a phone, which is the row) keeps the same two steps, since the
16565
+ * cards it stands above keep theirs there too, with a tighter step between
16566
+ * the lines so it stays one compact row.
16567
+ */
16438
16568
  --crewlet-folder-tile-name: var(--font-size-md);
16439
16569
  --crewlet-folder-tile-facts: var(--font-size-sm);
16570
+ --crewlet-folder-tile-words-gap: var(--spacing-1);
16440
16571
  --crewlet-folder-tile-actions-inset: var(--spacing-3);
16441
16572
  /*
16442
16573
  * A TILE STACKS: the glyph on top with the More menu level with it in the
@@ -16469,8 +16600,7 @@ button.crewlet-finding-list__row:focus-visible {
16469
16600
  --crewlet-folder-tile-floor: var(--size-control-lg);
16470
16601
  --crewlet-folder-tile-glyph: 28px;
16471
16602
  --crewlet-folder-tile-glyph-radius: var(--radius-sm);
16472
- --crewlet-folder-tile-name: var(--font-size-sm);
16473
- --crewlet-folder-tile-facts: var(--font-size-xs);
16603
+ --crewlet-folder-tile-words-gap: 2px;
16474
16604
  --crewlet-folder-tile-actions-inset: var(--spacing-2);
16475
16605
  --crewlet-folder-tile-direction: row;
16476
16606
  --crewlet-folder-tile-align: center;
@@ -16490,8 +16620,7 @@ button.crewlet-finding-list__row:focus-visible {
16490
16620
  --crewlet-folder-tile-floor: var(--size-control-lg);
16491
16621
  --crewlet-folder-tile-glyph: 28px;
16492
16622
  --crewlet-folder-tile-glyph-radius: var(--radius-sm);
16493
- --crewlet-folder-tile-name: var(--font-size-sm);
16494
- --crewlet-folder-tile-facts: var(--font-size-xs);
16623
+ --crewlet-folder-tile-words-gap: 2px;
16495
16624
  --crewlet-folder-tile-actions-inset: var(--spacing-2);
16496
16625
  --crewlet-folder-tile-direction: row;
16497
16626
  --crewlet-folder-tile-align: center;
@@ -16559,7 +16688,7 @@ button.crewlet-finding-list__row:focus-visible {
16559
16688
  .crewlet-folder-tile__body {
16560
16689
  display: flex;
16561
16690
  flex-direction: column;
16562
- gap: 2px;
16691
+ gap: var(--crewlet-folder-tile-words-gap);
16563
16692
  min-width: 0;
16564
16693
  max-width: 100%;
16565
16694
  }
@@ -19230,7 +19359,7 @@ a.crewlet-icon-btn {
19230
19359
  }
19231
19360
 
19232
19361
 
19233
- /* ListInput-WUP2YITQ.css */
19362
+ /* ListInput-P2ECUQJ2.css */
19234
19363
  /*
19235
19364
  * ListInput: an ordered list of sentences, written in the box at the top and
19236
19365
  * listed under it.
@@ -19490,7 +19619,7 @@ a.crewlet-icon-btn {
19490
19619
  }
19491
19620
  }
19492
19621
 
19493
- /* With a hidden legend the add control stands at the end of the box's row. */
19622
+ /* The Add button ends the box's row: the field and its Add read as one control. */
19494
19623
  .crewlet-list-input__add-control {
19495
19624
  display: inline-flex;
19496
19625
  flex: none;
@@ -26349,6 +26478,232 @@ svg.crewlet-select__chevron {
26349
26478
  }
26350
26479
 
26351
26480
 
26481
+ /* SetupWizard-GZK5UDKC.css */
26482
+ /*
26483
+ * SetupWizard: a setup walked step by step on a page of its own
26484
+ * (SetupWizard.tsx).
26485
+ *
26486
+ * THE GRID. The header across the top, the footer across the bottom, and
26487
+ * between them the rail (240px), the content (one column, at most 640px) and,
26488
+ * from 70rem of the wizard's own width, the aside (320px). Under 70rem the
26489
+ * aside takes the row under the content and the rail runs down beside both.
26490
+ * Under the phone breakpoint every part is one column, in reading order.
26491
+ */
26492
+
26493
+ .crewlet-setup-wizard {
26494
+ container-type: inline-size;
26495
+ min-width: 0;
26496
+ }
26497
+
26498
+ .crewlet-setup-wizard__frame {
26499
+ display: grid;
26500
+ grid-template-columns: 240px minmax(0, 1fr);
26501
+ grid-template-areas:
26502
+ 'head head'
26503
+ 'rail content'
26504
+ 'rail aside'
26505
+ 'foot foot';
26506
+ grid-template-rows: auto auto 1fr auto;
26507
+ column-gap: var(--spacing-8);
26508
+ row-gap: var(--spacing-6);
26509
+ min-width: 0;
26510
+ }
26511
+
26512
+ .crewlet-setup-wizard__head {
26513
+ display: flex;
26514
+ flex-direction: column;
26515
+ gap: var(--spacing-2);
26516
+ grid-area: head;
26517
+ min-width: 0;
26518
+ }
26519
+
26520
+ .crewlet-setup-wizard__status {
26521
+ display: inline-flex;
26522
+ align-items: center;
26523
+ }
26524
+
26525
+ /*
26526
+ * THE RAIL stays in view while the content scrolls past it, as a column of
26527
+ * the steps a reader can go back to.
26528
+ */
26529
+ .crewlet-setup-wizard__rail {
26530
+ position: sticky;
26531
+ top: var(--spacing-5);
26532
+ align-self: start;
26533
+ grid-area: rail;
26534
+ min-width: 0;
26535
+ }
26536
+
26537
+ .crewlet-setup-wizard__content {
26538
+ display: flex;
26539
+ flex-direction: column;
26540
+ grid-area: content;
26541
+ box-sizing: border-box;
26542
+ width: 100%;
26543
+ max-width: 640px;
26544
+ min-width: 0;
26545
+ }
26546
+
26547
+ .crewlet-setup-wizard__heading {
26548
+ margin: 0;
26549
+ color: var(--color-text-primary);
26550
+ font-family: var(--font-family-sans);
26551
+ font-size: var(--font-size-lg);
26552
+ font-weight: var(--font-weight-semibold);
26553
+ line-height: var(--font-line-height-tight);
26554
+ }
26555
+
26556
+ /*
26557
+ * The heading takes focus when the step changes. It keeps the browser's own
26558
+ * focus treatment: after a press nothing is drawn, and after a key the ring
26559
+ * shows where the reader now is.
26560
+ */
26561
+
26562
+ .crewlet-setup-wizard__lead {
26563
+ margin: var(--spacing-2) 0 0;
26564
+ max-width: var(--size-measure);
26565
+ color: var(--color-text-secondary);
26566
+ font-family: var(--font-family-sans);
26567
+ font-size: var(--font-size-sm);
26568
+ line-height: var(--font-line-height-body);
26569
+ }
26570
+
26571
+ .crewlet-setup-wizard__body {
26572
+ display: flex;
26573
+ flex-direction: column;
26574
+ gap: var(--spacing-6);
26575
+ margin-top: var(--spacing-6);
26576
+ min-width: 0;
26577
+ }
26578
+
26579
+ /* UNDER THE CONTENT, the aside is set off by one hairline, as AsideLayout's is. */
26580
+ .crewlet-setup-wizard__aside {
26581
+ display: flex;
26582
+ flex-direction: column;
26583
+ gap: var(--spacing-4);
26584
+ grid-area: aside;
26585
+ box-sizing: border-box;
26586
+ max-width: 640px;
26587
+ min-width: 0;
26588
+ padding-top: var(--spacing-6);
26589
+ border-top: 1px solid var(--color-border-default);
26590
+ }
26591
+
26592
+ /*
26593
+ * THE FOOTER holds the step's actions at the bottom of the view while the
26594
+ * content scrolls under it, on the sheet's own ground with a hairline above,
26595
+ * and clears the device's safe area where it has one.
26596
+ */
26597
+ .crewlet-setup-wizard__footer {
26598
+ position: sticky;
26599
+ bottom: 0;
26600
+ z-index: var(--z-index-sticky);
26601
+ display: flex;
26602
+ flex-wrap: wrap;
26603
+ align-items: center;
26604
+ gap: var(--spacing-2);
26605
+ grid-area: foot;
26606
+ padding: var(--spacing-3) 0 calc(var(--spacing-3) + env(safe-area-inset-bottom, var(--spacing-0)));
26607
+ border-top: 1px solid var(--color-border-default);
26608
+ background: var(--color-surface-background);
26609
+ }
26610
+
26611
+ /* The way out at the start of the row, the step's actions at its end. */
26612
+ .crewlet-setup-wizard__footer-start,
26613
+ .crewlet-setup-wizard__footer-end {
26614
+ display: flex;
26615
+ flex-wrap: wrap;
26616
+ align-items: center;
26617
+ gap: var(--spacing-2);
26618
+ }
26619
+
26620
+ .crewlet-setup-wizard__footer-end {
26621
+ margin-inline-start: auto;
26622
+ }
26623
+
26624
+ /* A WIDE STEP lays out columns of its own across the whole width beside the rail. */
26625
+ .crewlet-setup-wizard--wide .crewlet-setup-wizard__content {
26626
+ max-width: none;
26627
+ }
26628
+
26629
+ /* BESIDE THE CONTENT, from 70rem of the wizard's own width: the aside holds in view. */
26630
+ @container (min-width: 70rem) {
26631
+ .crewlet-setup-wizard__frame {
26632
+ grid-template-columns: 240px minmax(0, 1fr) 320px;
26633
+ grid-template-areas:
26634
+ 'head head head'
26635
+ 'rail content aside'
26636
+ 'foot foot foot';
26637
+ grid-template-rows: auto 1fr auto;
26638
+ }
26639
+
26640
+ /* With no aside, nothing is held for one: the content takes its column too. */
26641
+ .crewlet-setup-wizard--no-aside .crewlet-setup-wizard__frame {
26642
+ grid-template-columns: 240px minmax(0, 1fr);
26643
+ grid-template-areas:
26644
+ 'head head'
26645
+ 'rail content'
26646
+ 'foot foot';
26647
+ }
26648
+
26649
+ .crewlet-setup-wizard__aside {
26650
+ position: sticky;
26651
+ top: var(--spacing-5);
26652
+ align-self: start;
26653
+ padding-top: 0;
26654
+ border-top: 0;
26655
+ }
26656
+ }
26657
+
26658
+ /*
26659
+ * ON A PHONE, one column in reading order: where the reader is, the step, the
26660
+ * folded preview, and the actions. The rail is a row of steps under the
26661
+ * position line, and scrolls away with the page rather than covering it.
26662
+ */
26663
+ @media (width < 640px) {
26664
+ .crewlet-setup-wizard__frame {
26665
+ grid-template-columns: minmax(0, 1fr);
26666
+ grid-template-areas:
26667
+ 'head'
26668
+ 'rail'
26669
+ 'content'
26670
+ 'aside'
26671
+ 'foot';
26672
+ grid-template-rows: auto;
26673
+ row-gap: var(--spacing-5);
26674
+ }
26675
+
26676
+ .crewlet-setup-wizard__rail {
26677
+ position: static;
26678
+ display: flex;
26679
+ flex-direction: column;
26680
+ gap: var(--spacing-2);
26681
+ }
26682
+
26683
+ .crewlet-setup-wizard__preview {
26684
+ grid-area: aside;
26685
+ min-width: 0;
26686
+ }
26687
+
26688
+ .crewlet-setup-wizard__preview .crewlet-setup-wizard__aside {
26689
+ padding-top: 0;
26690
+ border-top: 0;
26691
+ }
26692
+ }
26693
+
26694
+ .crewlet-setup-wizard__position {
26695
+ margin: 0;
26696
+ color: var(--color-text-secondary);
26697
+ font-family: var(--font-family-sans);
26698
+ font-size: var(--font-size-xs);
26699
+ font-weight: var(--font-weight-medium);
26700
+ }
26701
+
26702
+ .crewlet-setup-wizard__position-step {
26703
+ color: var(--color-text-primary);
26704
+ }
26705
+
26706
+
26352
26707
  /* ShareDialog-4QDCBWMH.css */
26353
26708
  /*
26354
26709
  * Three blocks under the title: who to add and at what role, who has access,
@@ -29751,7 +30106,7 @@ svg.crewlet-select__chevron {
29751
30106
  }
29752
30107
 
29753
30108
 
29754
- /* Stepper-HW4JM3YH.css */
30109
+ /* Stepper-QEJI5RGX.css */
29755
30110
  /*
29756
30111
  * The stepper: where a sequence has got to (Stepper.tsx).
29757
30112
  *
@@ -29841,41 +30196,65 @@ svg.crewlet-select__chevron {
29841
30196
  }
29842
30197
 
29843
30198
  /*
29844
- * THE CURRENT STEP, in its tone. The hairline goes transparent rather than
29845
- * away, so the pill keeps its box and the row does not move by a pixel as the
29846
- * current step advances along it, and so forced-colors mode, which draws a
29847
- * transparent border in the system's own colour, still outlines it.
30199
+ * THE CURRENT STEP, in its tone: the pill in a row, the mark in a column. The
30200
+ * hairline goes transparent rather than away, so the pill keeps its box and
30201
+ * the row does not move by a pixel as the current step advances along it, and
30202
+ * so forced-colors mode, which draws a transparent border in the system's own
30203
+ * colour, still outlines it.
29848
30204
  */
29849
- .crewlet-stepper--info .crewlet-stepper__step--current > .crewlet-stepper__chip {
30205
+ .crewlet-stepper--info .crewlet-stepper__step--current > .crewlet-stepper__chip,
30206
+ .crewlet-stepper--info .crewlet-stepper__step--current .crewlet-stepper__mark {
29850
30207
  border-color: transparent;
29851
30208
  background: var(--color-feedback-info-soft);
29852
30209
  color: var(--color-feedback-info-ink);
29853
30210
  }
29854
30211
 
29855
- .crewlet-stepper--success .crewlet-stepper__step--current > .crewlet-stepper__chip {
30212
+ .crewlet-stepper--success .crewlet-stepper__step--current > .crewlet-stepper__chip,
30213
+ .crewlet-stepper--success .crewlet-stepper__step--current .crewlet-stepper__mark {
29856
30214
  border-color: transparent;
29857
30215
  background: var(--color-feedback-success-soft);
29858
30216
  color: var(--color-feedback-success-ink);
29859
30217
  }
29860
30218
 
29861
- .crewlet-stepper--warning .crewlet-stepper__step--current > .crewlet-stepper__chip {
30219
+ .crewlet-stepper--warning .crewlet-stepper__step--current > .crewlet-stepper__chip,
30220
+ .crewlet-stepper--warning .crewlet-stepper__step--current .crewlet-stepper__mark {
29862
30221
  border-color: transparent;
29863
30222
  background: var(--color-feedback-warning-soft);
29864
30223
  color: var(--color-feedback-warning-ink);
29865
30224
  }
29866
30225
 
29867
- .crewlet-stepper--danger .crewlet-stepper__step--current > .crewlet-stepper__chip {
30226
+ .crewlet-stepper--danger .crewlet-stepper__step--current > .crewlet-stepper__chip,
30227
+ .crewlet-stepper--danger .crewlet-stepper__step--current .crewlet-stepper__mark {
29868
30228
  border-color: transparent;
29869
30229
  background: var(--color-feedback-danger-soft);
29870
30230
  color: var(--color-feedback-danger-ink);
29871
30231
  }
29872
30232
 
29873
- .crewlet-stepper--brand .crewlet-stepper__step--current > .crewlet-stepper__chip {
30233
+ .crewlet-stepper--brand .crewlet-stepper__step--current > .crewlet-stepper__chip,
30234
+ .crewlet-stepper--brand .crewlet-stepper__step--current .crewlet-stepper__mark {
29874
30235
  border-color: transparent;
29875
30236
  background: var(--color-brand-accent-soft);
29876
30237
  color: var(--color-brand-accent-ink);
29877
30238
  }
29878
30239
 
30240
+ /*
30241
+ * A STEP THAT NEEDS ATTENTION is the warning tint under the warning ink, the
30242
+ * pair the palette suite holds to 4.5:1 over every rung, with the warning
30243
+ * glyph: the pill of a step that is not current, and the mark of any step in
30244
+ * a column. A CURRENT pill keeps its tone, so the row still says which step
30245
+ * the reader is on, and carries the glyph in that tone's ink.
30246
+ */
30247
+ .crewlet-stepper .crewlet-stepper__step--attention:not(.crewlet-stepper__step--current) > .crewlet-stepper__chip,
30248
+ .crewlet-stepper .crewlet-stepper__step--attention .crewlet-stepper__mark {
30249
+ border-color: transparent;
30250
+ background: var(--color-feedback-warning-soft);
30251
+ color: var(--color-feedback-warning-ink);
30252
+ }
30253
+
30254
+ .crewlet-stepper__warning {
30255
+ flex: none;
30256
+ }
30257
+
29879
30258
  /*
29880
30259
  * INSIDE THE PILL THE DOT IS THE PILL'S OWN INK, as a Tag's is, and for the
29881
30260
  * Tag's reason: StatusDot paints the fill step, measured as a mark on the
@@ -29908,8 +30287,157 @@ svg.crewlet-select__chevron {
29908
30287
  * emulated). Opting out also keeps shadows, so the pulsing dot's halo, which
29909
30288
  * is the tone's soft tint and no system colour, is held still inside it.
29910
30289
  */
30290
+ /*
30291
+ * A STEP THAT CAN BE PICKED is a button with no look of its own: the pill or
30292
+ * the row it carries draws it, and a hover lays the kit's hover overlay over
30293
+ * a step at rest. The current step keeps its tint under the pointer, since a
30294
+ * tone rule weighs more than the hover. The ring sits inside the step's own
30295
+ * box, over the pill's hairline rather than a second line beside it.
30296
+ */
30297
+ .crewlet-stepper__target {
30298
+ appearance: none;
30299
+ margin: 0;
30300
+ background: transparent;
30301
+ font: inherit;
30302
+ text-align: start;
30303
+ cursor: pointer;
30304
+ }
30305
+
30306
+ .crewlet-stepper__chip.crewlet-stepper__target {
30307
+ font-family: var(--font-family-sans);
30308
+ font-size: var(--font-size-2xs);
30309
+ font-weight: var(--font-weight-medium);
30310
+ line-height: 1;
30311
+ }
30312
+
30313
+ .crewlet-stepper__target:hover {
30314
+ background: var(--color-surface-hover);
30315
+ }
30316
+
30317
+ .crewlet-stepper__target:focus-visible {
30318
+ outline: 2px solid var(--color-focus);
30319
+ outline-offset: var(--size-focus-ring-inset-offset);
30320
+ }
30321
+
30322
+ /*
30323
+ * THE COLUMN, a setup wizard's rail. Each step is a row: a 20px mark (the
30324
+ * check, the dot, the warning glyph, or the step's number for one still to
30325
+ * come) and beside it the label, with the description and the status words
30326
+ * under it. A hairline in the strong hairline's colour joins one mark to the
30327
+ * next, 4px clear of each, drawn by the step it leaves so nothing trails the
30328
+ * last. The mark is the pills' 20px, following the density as they do, and
30329
+ * 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
30330
+ * step primary and medium, a finished one secondary, the rest tertiary.
30331
+ */
30332
+ .crewlet-stepper--vertical {
30333
+ flex-direction: column;
30334
+ flex-wrap: nowrap;
30335
+ align-items: stretch;
30336
+ gap: 0;
30337
+ }
30338
+
30339
+ .crewlet-stepper--vertical .crewlet-stepper__step {
30340
+ position: relative;
30341
+ display: block;
30342
+ }
30343
+
30344
+ .crewlet-stepper--vertical .crewlet-stepper__step + .crewlet-stepper__step::before {
30345
+ content: none;
30346
+ }
30347
+
30348
+ .crewlet-stepper--vertical .crewlet-stepper__step:not(:last-child)::after {
30349
+ content: '';
30350
+ position: absolute;
30351
+ top: calc(var(--spacing-2) + 20px * var(--density, 1) + 4px);
30352
+ bottom: calc(4px - var(--spacing-2));
30353
+ left: calc(var(--spacing-2) + 10px * var(--density, 1));
30354
+ width: 1px;
30355
+ background: var(--color-border-strong);
30356
+ pointer-events: none;
30357
+ }
30358
+
30359
+ .crewlet-stepper__row {
30360
+ display: flex;
30361
+ align-items: flex-start;
30362
+ gap: var(--spacing-3);
30363
+ box-sizing: border-box;
30364
+ width: 100%;
30365
+ padding: var(--spacing-2);
30366
+ border: 0;
30367
+ border-radius: var(--radius-md);
30368
+ color: var(--color-text-tertiary);
30369
+ font-family: var(--font-family-sans);
30370
+ font-size: var(--font-size-sm);
30371
+ }
30372
+
30373
+ .crewlet-stepper__mark {
30374
+ display: inline-flex;
30375
+ flex: none;
30376
+ align-items: center;
30377
+ justify-content: center;
30378
+ box-sizing: border-box;
30379
+ width: calc(20px * var(--density, 1));
30380
+ height: calc(20px * var(--density, 1));
30381
+ border: 1px solid var(--color-border-default);
30382
+ border-radius: var(--radius-pill);
30383
+ font-size: var(--font-size-2xs);
30384
+ font-weight: var(--font-weight-medium);
30385
+ font-variant-numeric: tabular-nums;
30386
+ line-height: 1;
30387
+ }
30388
+
30389
+ .crewlet-stepper__text {
30390
+ display: flex;
30391
+ flex-direction: column;
30392
+ gap: var(--spacing-1);
30393
+ min-width: 0;
30394
+ }
30395
+
30396
+ .crewlet-stepper__title {
30397
+ line-height: calc(20px * var(--density, 1));
30398
+ overflow-wrap: anywhere;
30399
+ }
30400
+
30401
+ .crewlet-stepper__row .crewlet-stepper__label {
30402
+ overflow: visible;
30403
+ }
30404
+
30405
+ .crewlet-stepper__description,
30406
+ .crewlet-stepper__note {
30407
+ color: var(--color-text-tertiary);
30408
+ font-size: var(--font-size-xs);
30409
+ line-height: var(--font-line-height-snug);
30410
+ }
30411
+
30412
+ .crewlet-stepper__step--attention .crewlet-stepper__note {
30413
+ color: var(--color-text-secondary);
30414
+ }
30415
+
30416
+ .crewlet-stepper__step--done > .crewlet-stepper__row {
30417
+ color: var(--color-text-secondary);
30418
+ }
30419
+
30420
+ /*
30421
+ * THE CURRENT ROW is lifted as the rail's current row is (SidebarNav): the
30422
+ * elevated rung inside a one-pixel hairline drawn as an outline, so forced
30423
+ * colors keeps it, and it does not move the row by a pixel.
30424
+ */
30425
+ .crewlet-stepper__step--current > .crewlet-stepper__row {
30426
+ outline: 1px solid var(--color-border-default);
30427
+ outline-offset: -1px;
30428
+ background: var(--color-surface-elevated);
30429
+ color: var(--color-text-primary);
30430
+ font-weight: var(--font-weight-medium);
30431
+ }
30432
+
30433
+ .crewlet-stepper__step--current .crewlet-stepper__description,
30434
+ .crewlet-stepper__step--current .crewlet-stepper__note {
30435
+ font-weight: var(--font-weight-regular);
30436
+ }
30437
+
29911
30438
  @media (forced-colors: active) {
29912
- .crewlet-stepper .crewlet-stepper__step--current > .crewlet-stepper__chip {
30439
+ .crewlet-stepper .crewlet-stepper__step--current > .crewlet-stepper__chip,
30440
+ .crewlet-stepper .crewlet-stepper__step--current .crewlet-stepper__mark {
29913
30441
  forced-color-adjust: none;
29914
30442
  border-color: Highlight;
29915
30443
  background: Highlight;
@@ -29924,9 +30452,15 @@ svg.crewlet-select__chevron {
29924
30452
  animation: none;
29925
30453
  }
29926
30454
 
29927
- .crewlet-stepper__step + .crewlet-stepper__step::before {
30455
+ .crewlet-stepper__step + .crewlet-stepper__step::before,
30456
+ .crewlet-stepper--vertical .crewlet-stepper__step:not(:last-child)::after {
29928
30457
  background: GrayText;
29929
30458
  }
30459
+
30460
+ .crewlet-stepper__target:hover {
30461
+ outline: 1px solid Highlight;
30462
+ outline-offset: var(--size-focus-ring-inset-offset);
30463
+ }
29930
30464
  }
29931
30465
 
29932
30466