@crewlethq/ui 0.84.2 → 0.86.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 (103) hide show
  1. package/README.md +53 -5
  2. package/dist/Accordion/index.js +1 -1
  3. package/dist/AgentHandoffPanel/index.js +2 -2
  4. package/dist/ArtifactBar/index.js +1 -1
  5. package/dist/AttentionList/AttentionList.d.ts +82 -0
  6. package/dist/AttentionList/index.d.ts +3 -0
  7. package/dist/AttentionList/index.js +9 -0
  8. package/dist/AttentionList-LVX7KRET.css +212 -0
  9. package/dist/AvatarPicker/index.js +2 -2
  10. package/dist/ChangeList/index.js +2 -2
  11. package/dist/ChoiceCards/ChoiceCards.d.ts +35 -6
  12. package/dist/ChoiceCards/index.d.ts +1 -1
  13. package/dist/ChoiceCards/index.js +1 -1
  14. package/dist/{ChoiceCards-TVMBO3HZ.css → ChoiceCards-KHJW2FKO.css} +49 -0
  15. package/dist/ChoiceList/ChoiceList.d.ts +2 -2
  16. package/dist/ChoiceList/index.js +1 -1
  17. package/dist/{ChoiceList-JN4PPNFW.css → ChoiceList-ZQMZTEZX.css} +33 -17
  18. package/dist/CodeBlock/index.js +2 -2
  19. package/dist/ColorSwatch/index.js +2 -2
  20. package/dist/ContrastBadge/index.js +2 -2
  21. package/dist/ContrastHelp/index.js +3 -3
  22. package/dist/Copyable/index.js +1 -1
  23. package/dist/{Copyable-IS3MHMPL.css → Copyable-P5AMRHFX.css} +18 -4
  24. package/dist/DataGrid/index.js +1 -1
  25. package/dist/{DataGrid-Q26F2V5Q.css → DataGrid-SAHEL4SN.css} +57 -0
  26. package/dist/DataView/index.js +2 -2
  27. package/dist/DeepWorkCard/index.js +3 -3
  28. package/dist/Disclosure/Disclosure.d.ts +10 -1
  29. package/dist/Disclosure/index.js +1 -1
  30. package/dist/{Disclosure-D727FN5X.css → Disclosure-RJSKKO7Z.css} +20 -0
  31. package/dist/KeyValueRows/KeyValueRows.d.ts +125 -0
  32. package/dist/KeyValueRows/index.d.ts +3 -0
  33. package/dist/KeyValueRows/index.js +12 -0
  34. package/dist/KeyValueRows-US5KW7JK.css +44 -0
  35. package/dist/LogoSlot/index.js +3 -3
  36. package/dist/MarkdownEditor/index.js +1 -1
  37. package/dist/MemberPicker/MemberPicker.d.ts +86 -0
  38. package/dist/MemberPicker/index.d.ts +3 -0
  39. package/dist/MemberPicker/index.js +11 -0
  40. package/dist/MemberPicker-ZD35VEK6.css +162 -0
  41. package/dist/MergeConflicts/index.js +1 -1
  42. package/dist/PresenterView/index.js +2 -2
  43. package/dist/ProposalCard/index.js +3 -3
  44. package/dist/RailList/RailList.d.ts +74 -0
  45. package/dist/RailList/index.d.ts +3 -0
  46. package/dist/RailList/index.js +17 -0
  47. package/dist/RailList-N2ZBPRM2.css +97 -0
  48. package/dist/RelatedRow/index.js +2 -2
  49. package/dist/RichEditor/index.js +1 -1
  50. package/dist/RunChip/index.js +3 -3
  51. package/dist/SegmentedControl/index.js +1 -1
  52. package/dist/{SegmentedControl-B7XCUOML.css → SegmentedControl-7GY2KM44.css} +11 -0
  53. package/dist/SetupWizard/index.js +3 -3
  54. package/dist/ShareDialog/index.js +3 -3
  55. package/dist/{StepList-A4YVU4JI.css → StepList-OAJ45IBX.css} +12 -1
  56. package/dist/Stepper/StepList.d.ts +7 -4
  57. package/dist/Stepper/index.js +1 -1
  58. package/dist/TableCells/TableCells.d.ts +60 -0
  59. package/dist/TableCells/index.d.ts +2 -2
  60. package/dist/TableCells/index.js +2 -1
  61. package/dist/{TableCells-TKSNLRK3.css → TableCells-ZALZLLEF.css} +28 -0
  62. package/dist/Text/Text.d.ts +25 -3
  63. package/dist/Text/index.js +1 -1
  64. package/dist/ThemeSwitcher/index.js +1 -1
  65. package/dist/TimeRangePicker/index.js +1 -1
  66. package/dist/VersionCompare/index.js +1 -1
  67. package/dist/{chunk-CV2LU2T2.js → chunk-35CKF77R.js} +2 -2
  68. package/dist/{chunk-AUSFKGKL.js → chunk-3AMWXJQX.js} +1 -1
  69. package/dist/{chunk-AFLS26AC.js → chunk-3CALM534.js} +36 -2
  70. package/dist/{chunk-AOJ6ZA77.js → chunk-3MFRTZH6.js} +1 -1
  71. package/dist/{chunk-QSWQJX27.js → chunk-4ME4J3YY.js} +1 -1
  72. package/dist/{chunk-6FBPFG3C.js → chunk-6EZX26BD.js} +1 -1
  73. package/dist/chunk-AELKT34H.js +121 -0
  74. package/dist/{chunk-X7VZQKIW.js → chunk-AQ7ZV3CH.js} +1 -1
  75. package/dist/{chunk-EAHEJNVJ.js → chunk-CL3FWLDO.js} +1 -1
  76. package/dist/{chunk-XNC3M4IN.js → chunk-E2QPZGLG.js} +1 -1
  77. package/dist/{chunk-T5GBTXNC.js → chunk-ETNQYT5O.js} +1 -1
  78. package/dist/{chunk-36WK24AI.js → chunk-EVM6GYZ2.js} +1 -1
  79. package/dist/{chunk-B7NX425Z.js → chunk-JDMJVVVQ.js} +12 -4
  80. package/dist/chunk-KA4RBKQV.js +148 -0
  81. package/dist/{chunk-ABRWL5FJ.js → chunk-L2QRKIL4.js} +3 -2
  82. package/dist/{chunk-P7HMY3BQ.js → chunk-M33DABTW.js} +2 -2
  83. package/dist/{chunk-LVJGN5II.js → chunk-NAHA62WD.js} +3 -1
  84. package/dist/{chunk-QP2P6GDQ.js → chunk-O5CEG7TQ.js} +14 -0
  85. package/dist/{chunk-6SFDL4QH.js → chunk-P3LNA6G4.js} +1 -1
  86. package/dist/chunk-REWKR3S4.js +73 -0
  87. package/dist/{chunk-WMO722J2.js → chunk-TBQFZV4H.js} +1 -1
  88. package/dist/{chunk-RJWO2PC5.js → chunk-TMML7BHT.js} +14 -5
  89. package/dist/chunk-TRZS7DLB.js +159 -0
  90. package/dist/{chunk-K6RWEQ6P.js → chunk-WRZPO4YL.js} +2 -2
  91. package/dist/{chunk-DD7RBNT4.js → chunk-XH55NRHO.js} +1 -1
  92. package/dist/{chunk-6RW2MUTY.js → chunk-XU7RQNT6.js} +1 -1
  93. package/dist/{chunk-AQNP3KQU.js → chunk-Y7PPKQFQ.js} +1 -1
  94. package/dist/generated/index.d.ts +4 -0
  95. package/dist/generated/index.js +92 -88
  96. package/dist/index.js +92 -88
  97. package/dist/styles.css +763 -30
  98. package/package.json +3 -3
  99. package/dist/{Editor-5D5Z3LBQ.js → Editor-VGNB35NJ.js} +1 -1
  100. package/dist/{chunk-22CU7V4J.js → chunk-K2HEYQJL.js} +1 -1
  101. package/dist/{chunk-REEZQCML.js → chunk-PAGITACP.js} +0 -0
  102. package/dist/{chunk-LMEMH6DO.js → chunk-WCJTOKTY.js} +1 -1
  103. package/dist/{chunk-2ZSCHQOA.js → chunk-WMSXPF7T.js} +1 -1
package/dist/styles.css CHANGED
@@ -5026,6 +5026,221 @@ a.crewlet-make-row__item:active {
5026
5026
  }
5027
5027
 
5028
5028
 
5029
+ /* AttentionList-LVX7KRET.css */
5030
+ /*
5031
+ * What needs a person: a card like the page's other panels (Card supplies the
5032
+ * surface, the hairline, the corner and the header), rows a line or two high,
5033
+ * and the tone in each row's glyph alone. Nothing here tints the frame: the
5034
+ * row's action is the page's own button, and the panel sits as calmly as the
5035
+ * cards beside it.
5036
+ */
5037
+
5038
+ /* The header's counts: each tone's glyph in its ink beside a figure in the
5039
+ header's quiet type, so the summary reads as the rows' glyphs, small. */
5040
+ .crewlet-attention-list__counts {
5041
+ display: inline-flex;
5042
+ align-items: center;
5043
+ gap: var(--spacing-3);
5044
+ }
5045
+
5046
+ .crewlet-attention-list__count {
5047
+ display: inline-flex;
5048
+ align-items: center;
5049
+ gap: var(--spacing-1);
5050
+ color: var(--color-text-secondary);
5051
+ font-size: var(--font-size-xs);
5052
+ font-variant-numeric: tabular-nums;
5053
+ }
5054
+
5055
+ .crewlet-attention-list__count.is-danger svg {
5056
+ color: var(--color-feedback-danger-ink);
5057
+ }
5058
+
5059
+ .crewlet-attention-list__count.is-warning svg {
5060
+ color: var(--color-feedback-warning-ink);
5061
+ }
5062
+
5063
+ .crewlet-attention-list__count.is-info svg {
5064
+ color: var(--color-feedback-info-ink);
5065
+ }
5066
+
5067
+ /*
5068
+ * ONE SET OF COLUMNS FOR EVERY ROW. The list holds the tracks and each row is
5069
+ * a subgrid of them, so a Details and a fix stand in one column down the
5070
+ * panel whatever the width of each fix, every title starts on one line
5071
+ * whether or not its row has a mark, and the body that opens under a row
5072
+ * starts on that line too. The mark's track is there only when a row has a
5073
+ * mark (`--media`), since an empty track still takes a gap each side.
5074
+ */
5075
+ .crewlet-attention-list__rows {
5076
+ --crewlet-attention-list-line: calc(var(--font-size-sm) * var(--font-line-height-normal));
5077
+
5078
+ display: grid;
5079
+ grid-template-columns: [glyph] auto [text] minmax(0, 1fr) [details] auto [action] auto [end];
5080
+ column-gap: var(--spacing-2);
5081
+ margin: 0;
5082
+ padding: 0;
5083
+ list-style: none;
5084
+ }
5085
+
5086
+ .crewlet-attention-list__rows--media {
5087
+ grid-template-columns: [glyph] auto [media] auto [text] minmax(0, 1fr) [details] auto [action] auto [end];
5088
+ }
5089
+
5090
+ .crewlet-attention-list__item {
5091
+ display: grid;
5092
+ grid-column: 1 / -1;
5093
+ grid-template-columns: subgrid;
5094
+ }
5095
+
5096
+ .crewlet-attention-list__item + .crewlet-attention-list__item {
5097
+ border-top: 1px solid var(--color-border-default);
5098
+ }
5099
+
5100
+ /* A ghost Details takes no gutter back here: it stands in a column of its
5101
+ own, and pulled out it would reach into the words before it. */
5102
+ .crewlet-attention-list__row {
5103
+ --crewlet-btn-flush-outdent: 0px;
5104
+
5105
+ display: grid;
5106
+ grid-column: 1 / -1;
5107
+ grid-template-columns: subgrid;
5108
+ align-items: center;
5109
+ min-height: var(--size-row-lg);
5110
+ padding: var(--spacing-2) var(--spacing-4);
5111
+ }
5112
+
5113
+ /* THE GLYPH STANDS ON THE TITLE'S LINE, as a Callout's does: a box one title
5114
+ line tall at the row's top, the glyph centred in it. Centred on the row, it
5115
+ would sit beside the second line of a title that wraps (a phone's width
5116
+ wraps them). A row of one line is centred whole, since its line is the
5117
+ row's middle. */
5118
+ .crewlet-attention-list__glyph {
5119
+ display: inline-flex;
5120
+ grid-column: glyph;
5121
+ align-self: start;
5122
+ align-items: center;
5123
+ block-size: var(--crewlet-attention-list-line);
5124
+ }
5125
+
5126
+ .crewlet-attention-list__row:not(:has(.crewlet-attention-list__meta)) .crewlet-attention-list__glyph {
5127
+ align-self: center;
5128
+ }
5129
+
5130
+ .crewlet-attention-list__glyph.is-danger {
5131
+ color: var(--color-feedback-danger-ink);
5132
+ }
5133
+
5134
+ .crewlet-attention-list__glyph.is-warning {
5135
+ color: var(--color-feedback-warning-ink);
5136
+ }
5137
+
5138
+ .crewlet-attention-list__glyph.is-info {
5139
+ color: var(--color-feedback-info-ink);
5140
+ }
5141
+
5142
+ /* A MARK IS CENTRED ON THE TWO LINES, as a table row centres its mark: it is
5143
+ the height of the pair, not of a title's line. */
5144
+ .crewlet-attention-list__media {
5145
+ display: inline-flex;
5146
+ grid-column: media;
5147
+ }
5148
+
5149
+ .crewlet-attention-list__text {
5150
+ display: flex;
5151
+ grid-column: text;
5152
+ flex-direction: column;
5153
+ min-width: 0;
5154
+ }
5155
+
5156
+ .crewlet-attention-list__line {
5157
+ overflow: hidden;
5158
+ color: var(--color-text-primary);
5159
+ font-size: var(--font-size-sm);
5160
+ font-weight: var(--font-weight-medium);
5161
+ line-height: var(--font-line-height-normal);
5162
+ text-overflow: ellipsis;
5163
+ white-space: nowrap;
5164
+ }
5165
+
5166
+ .crewlet-attention-list__meta {
5167
+ overflow: hidden;
5168
+ color: var(--color-text-secondary);
5169
+ font-size: var(--font-size-xs);
5170
+ text-overflow: ellipsis;
5171
+ white-space: nowrap;
5172
+ }
5173
+
5174
+ /* Details and the fix are each a column of their own (see the rows). */
5175
+ .crewlet-attention-list__end {
5176
+ display: contents;
5177
+ }
5178
+
5179
+ .crewlet-attention-list__details {
5180
+ grid-column: details;
5181
+ }
5182
+
5183
+ .crewlet-attention-list__action {
5184
+ display: inline-flex;
5185
+ grid-column: action;
5186
+ justify-self: end;
5187
+ }
5188
+
5189
+ .crewlet-attention-list__details[aria-expanded='true'] svg {
5190
+ transform: rotate(180deg);
5191
+ }
5192
+
5193
+ /* What opens under a row starts on its title's line and keeps the card's edge. */
5194
+ .crewlet-attention-list__body {
5195
+ grid-column: text / end;
5196
+ padding: 0 var(--spacing-4) var(--spacing-3) 0;
5197
+ color: var(--color-text-secondary);
5198
+ font-size: var(--font-size-xs);
5199
+ overflow-wrap: anywhere;
5200
+ }
5201
+
5202
+ /* The fold's control on a row of its own, its words on the card's text edge,
5203
+ where every glyph stands. */
5204
+ .crewlet-attention-list__foot {
5205
+ padding: var(--spacing-1) var(--spacing-4);
5206
+ border-top: 1px solid var(--color-border-default);
5207
+ }
5208
+
5209
+ @media (width < 640px) {
5210
+ /* No mark, and Details and the fix wrap onto a line of their own under the
5211
+ words, Details first on the title's line. */
5212
+ .crewlet-attention-list__rows,
5213
+ .crewlet-attention-list__rows--media {
5214
+ grid-template-columns: [glyph] auto [text] minmax(0, 1fr) [end];
5215
+ }
5216
+
5217
+ .crewlet-attention-list__row {
5218
+ --crewlet-btn-flush-outdent: initial;
5219
+ }
5220
+
5221
+ .crewlet-attention-list__media {
5222
+ display: none;
5223
+ }
5224
+
5225
+ .crewlet-attention-list__line,
5226
+ .crewlet-attention-list__meta {
5227
+ white-space: normal;
5228
+ }
5229
+
5230
+ .crewlet-attention-list__row:not(:has(.crewlet-attention-list__meta)) .crewlet-attention-list__glyph {
5231
+ align-self: start;
5232
+ }
5233
+
5234
+ .crewlet-attention-list__end {
5235
+ display: flex;
5236
+ grid-column: text / end;
5237
+ flex-wrap: wrap;
5238
+ align-items: center;
5239
+ gap: var(--spacing-2);
5240
+ }
5241
+ }
5242
+
5243
+
5029
5244
  /* AuthLayout-ODHBUPHQ.css */
5030
5245
  /*
5031
5246
  * The sign-in page: one narrow column near the top of the window.
@@ -11939,7 +12154,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
11939
12154
  }
11940
12155
 
11941
12156
 
11942
- /* ChoiceCards-TVMBO3HZ.css */
12157
+ /* ChoiceCards-KHJW2FKO.css */
11943
12158
  /*
11944
12159
  * Choices a person compares, as cards in a grid that wraps. The chosen card
11945
12160
  * takes the selected fill and the strong boundary, as a chosen ChoiceList row
@@ -11970,10 +12185,17 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
11970
12185
  minmax(min(100%, var(--crewlet-choice-cards-min)), 1fr)
11971
12186
  );
11972
12187
  grid-auto-rows: auto;
12188
+ /* DENSE, for a chosen card's detail: it spans every column after its card,
12189
+ and the cards after it on that row pack back in before it (see below). */
12190
+ grid-auto-flow: row dense;
11973
12191
  column-gap: var(--spacing-3);
11974
12192
  row-gap: 0;
11975
12193
  }
11976
12194
 
12195
+ .crewlet-choice-cards--xs {
12196
+ --crewlet-choice-cards-min: 8rem;
12197
+ }
12198
+
11977
12199
  .crewlet-choice-cards--sm {
11978
12200
  --crewlet-choice-cards-min: 15rem;
11979
12201
  }
@@ -12136,6 +12358,32 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
12136
12358
  border-color: var(--color-border-strong);
12137
12359
  }
12138
12360
 
12361
+ /* A TAG THAT SAYS A STATE takes its feedback ink and line, in the card's own
12362
+ pill: a kit Tag handed in drew a second pill inside this one. */
12363
+ .crewlet-choice-cards__tag.is-success,
12364
+ .crewlet-choice-cards__card.is-checked .crewlet-choice-cards__tag.is-success {
12365
+ border-color: var(--color-feedback-success-line);
12366
+ color: var(--color-feedback-success-ink);
12367
+ }
12368
+
12369
+ .crewlet-choice-cards__tag.is-warning,
12370
+ .crewlet-choice-cards__card.is-checked .crewlet-choice-cards__tag.is-warning {
12371
+ border-color: var(--color-feedback-warning-line);
12372
+ color: var(--color-feedback-warning-ink);
12373
+ }
12374
+
12375
+ .crewlet-choice-cards__tag.is-danger,
12376
+ .crewlet-choice-cards__card.is-checked .crewlet-choice-cards__tag.is-danger {
12377
+ border-color: var(--color-feedback-danger-line);
12378
+ color: var(--color-feedback-danger-ink);
12379
+ }
12380
+
12381
+ .crewlet-choice-cards__tag.is-info,
12382
+ .crewlet-choice-cards__card.is-checked .crewlet-choice-cards__tag.is-info {
12383
+ border-color: var(--color-feedback-info-line);
12384
+ color: var(--color-feedback-info-ink);
12385
+ }
12386
+
12139
12387
  /*
12140
12388
  * THE NAME IS THE TITLE LINE'S STRUT: at least the title step tall, its words
12141
12389
  * centred in it. The title wraps (a tag that does not fit takes a line of its
@@ -12314,8 +12562,24 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
12314
12562
  }
12315
12563
  }
12316
12564
 
12565
+ /*
12566
+ * A CHOSEN CARD'S DETAIL: the narrower choice it opens, on a line of its own
12567
+ * straight under the chosen card's row (an item of the grid after its card,
12568
+ * across every column, packed densely), so it reads as part of that choice and
12569
+ * not as a second question. NO FRAME OF ITS OWN: what it holds is usually a
12570
+ * framed list, and a tinted, bordered panel round it was a box in a box. It
12571
+ * keeps the gap a row of cards keeps below it.
12572
+ */
12573
+ .crewlet-choice-cards__detail {
12574
+ display: grid;
12575
+ grid-column: 1 / -1;
12576
+ gap: var(--spacing-2);
12577
+ min-width: 0;
12578
+ margin-block-end: var(--spacing-3);
12579
+ }
12580
+
12317
12581
 
12318
- /* ChoiceList-JN4PPNFW.css */
12582
+ /* ChoiceList-ZQMZTEZX.css */
12319
12583
  /*
12320
12584
  * A short list of answers in one bordered box: a radio, the label with a line
12321
12585
  * of detail under it, and a tag at the row's end. The selected row takes the
@@ -12324,8 +12588,14 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
12324
12588
  * which is the focus ring's colour.
12325
12589
  */
12326
12590
  .crewlet-choice-list {
12327
- /* The platform's radio, sized here so a panel can line up with the text beside it. */
12328
- --crewlet-choice-list-radio-size: 13px;
12591
+ /*
12592
+ * THE COMPACT CONTROL STEP, the box a compact Checkbox draws beside the same
12593
+ * 13px words: a control takes the step of the text it sits beside (16px
12594
+ * beside 14px, 14px beside 13px), and at 13px this radio matched no other
12595
+ * control in the kit, so a list nested under a card's 16px radio, or beside
12596
+ * a compact checkbox, drew a third size.
12597
+ */
12598
+ --crewlet-choice-list-radio-size: 14px;
12329
12599
  /* The step between two answers. Every row's pointer target reaches half of it. */
12330
12600
  --crewlet-choice-list-gap: var(--spacing-1);
12331
12601
  /*
@@ -12451,7 +12721,8 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
12451
12721
  box-sizing: border-box;
12452
12722
  width: var(--crewlet-choice-list-radio-size);
12453
12723
  height: var(--crewlet-choice-list-radio-size);
12454
- margin: 3px 0 0;
12724
+ /* Centred on the label's first line: its 13px in the body's leading. */
12725
+ margin: calc((var(--font-size-compact) * var(--font-line-height-body) - var(--crewlet-choice-list-radio-size)) / 2) 0 0;
12455
12726
  border: 1px solid var(--color-border-control);
12456
12727
  border-radius: 50%;
12457
12728
  background: transparent;
@@ -12493,28 +12764,37 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
12493
12764
  overflow-wrap: anywhere;
12494
12765
  }
12495
12766
 
12496
- /* Why a disabled choice cannot be made, after its detail on the same line, in the warning ink. */
12767
+ /*
12768
+ * WHY A DISABLED CHOICE CANNOT BE MADE, on a line of its own under the
12769
+ * detail, in the warning ink, as a ChoiceCards card puts it on its own row.
12770
+ * Run on after the detail, it read as the detail's next clause, and in a
12771
+ * narrow column it wrapped wherever the detail happened to end.
12772
+ */
12497
12773
  .crewlet-choice-list__reason {
12774
+ display: block;
12498
12775
  color: var(--color-feedback-warning-ink);
12499
12776
  }
12500
12777
 
12501
- .crewlet-choice-list__detail > .crewlet-choice-list__reason:not(:first-child) {
12502
- margin-inline-start: var(--spacing-2);
12503
- }
12504
-
12505
- /* A tag says something ABOUT an answer ("Suggested"), so it is set in the
12506
- tertiary ink: in the accent ink it was a second accent mark on the chosen
12507
- row, beside the radio and the fill that already say which one is chosen. */
12778
+ /* A tag says something ABOUT an answer ("Recommended"), so it is set in a
12779
+ quiet ink: in the accent ink it was a second accent mark on the chosen row,
12780
+ beside the radio and the fill that already say which one is chosen. It is
12781
+ the pill a ChoiceCards card draws its tag in, so one word beside a choice's
12782
+ name reads the same in a list as on a card in the same step, where it was an
12783
+ 11px capital label here and a pill there. It stands on the label's line. */
12508
12784
  .crewlet-choice-list__tag {
12509
- padding-top: 2px;
12510
- font-size: var(--font-size-2xs);
12511
- font-weight: 500;
12512
- letter-spacing: 0.05em;
12513
- text-transform: uppercase;
12514
- color: var(--color-text-tertiary);
12785
+ padding: 0 var(--spacing-2);
12786
+ border: 1px solid var(--color-border-default);
12787
+ border-radius: var(--radius-pill);
12788
+ color: var(--color-text-secondary);
12789
+ font-size: var(--font-size-xs);
12515
12790
  white-space: nowrap;
12516
12791
  }
12517
12792
 
12793
+ /* On the selected fill the default edge all but vanishes in light, so the tag takes the strong one, as a chosen card's does. */
12794
+ .crewlet-choice-list__row.is-checked .crewlet-choice-list__tag {
12795
+ border-color: var(--color-border-strong);
12796
+ }
12797
+
12518
12798
  /* A SELECTED CHOICE'S PANEL is part of the choice: it continues the row's
12519
12799
  fill under it, and its content starts where the label does, not under the
12520
12800
  radio. */
@@ -14435,7 +14715,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
14435
14715
  }
14436
14716
 
14437
14717
 
14438
- /* Copyable-IS3MHMPL.css */
14718
+ /* Copyable-P5AMRHFX.css */
14439
14719
  /*
14440
14720
  * Copyable: a value and the one control that copies it.
14441
14721
  *
@@ -14516,11 +14796,15 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
14516
14796
 
14517
14797
  /* ---- inline ------------------------------------------------------------ */
14518
14798
 
14799
+ /* INLINE TAKES THE ROW'S OWN REGISTER: in a detail row it is one of the
14800
+ row's values, so it is their size and ink, in the mono face. At a fixed
14801
+ 12px in the secondary ink, an address was the one value in its list a step
14802
+ smaller and quieter than the values around it. */
14519
14803
  .crewlet-copyable--inline .crewlet-copyable__value {
14520
- font-size: var(--font-size-xs);
14804
+ font-size: inherit;
14521
14805
  background: transparent;
14522
14806
  padding: 0;
14523
- color: var(--color-text-secondary);
14807
+ color: inherit;
14524
14808
  }
14525
14809
 
14526
14810
  /* ---- block ------------------------------------------------------------- */
@@ -14541,13 +14825,23 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
14541
14825
  padding: var(--spacing-2) var(--spacing-3);
14542
14826
  }
14543
14827
 
14828
+ /*
14829
+ * A BLOCK SHOWS ITS VALUE WHOLE, wrapped at any character and with every
14830
+ * space kept: it is the variant for an address a reader must allowlist or a
14831
+ * command they must check before running it. Held to one line, it scrolled
14832
+ * past a phone's width behind an ellipsis, with no scrollbar to say there was
14833
+ * more, and the reader saw "https://example.com/webho…" of the address they
14834
+ * were asked to copy into a vendor's form.
14835
+ */
14544
14836
  .crewlet-copyable--block .crewlet-copyable__value {
14545
14837
  font-size: var(--font-size-compact);
14546
14838
  color: var(--color-text-primary);
14547
14839
  background: transparent;
14548
14840
  padding: 0;
14549
- white-space: nowrap;
14550
- overflow-x: auto;
14841
+ white-space: pre-wrap;
14842
+ overflow: visible;
14843
+ overflow-wrap: anywhere;
14844
+ text-overflow: clip;
14551
14845
  flex: 1;
14552
14846
  }
14553
14847
 
@@ -14859,7 +15153,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
14859
15153
  }
14860
15154
 
14861
15155
 
14862
- /* DataGrid-Q26F2V5Q.css */
15156
+ /* DataGrid-SAHEL4SN.css */
14863
15157
  /*
14864
15158
  * DataGrid: a list as columns, one track list on the grid.
14865
15159
  *
@@ -15527,6 +15821,63 @@ button.crewlet-data-grid__row-link {
15527
15821
  overflow-wrap: anywhere;
15528
15822
  }
15529
15823
 
15824
+ /* A VALUE THAT LEADS WITH A PICTURE IS NAMED ON ITS WORDS' LINE. The name
15825
+ stands on the value's first baseline, and a row of a mark beside two lines
15826
+ (a vendor's mark beside a name and its host) reads its baseline off its
15827
+ first item, the picture, whose baseline is its bottom edge: the name stood
15828
+ on the second line. The words after the picture take part in baseline
15829
+ alignment instead, so the row's baseline is theirs; beside a picture no
15830
+ taller than they are, they keep the place they had.
15831
+ ONLY A PICTURE WITH NO WORDS OF ITS OWN: an svg or an img, or a box that
15832
+ holds nothing but one. A monogram avatar or an avatar stack has its
15833
+ initials' baseline already, and its name stood on its line; matched by its
15834
+ role, the shorter words beside it rose to the top of the row, off the
15835
+ picture's centre. */
15836
+ :where(.crewlet-data-grid[data-stacked])
15837
+ .crewlet-data-grid__cell
15838
+ > *
15839
+ > :is(svg, img, :has(> :is(svg, img)):not(:has(> :not(svg, img)))):first-child
15840
+ + * {
15841
+ align-self: baseline;
15842
+ }
15843
+
15844
+ /* THE ROW'S ACTIONS STAND ON ITS FIRST LINE, at its end, as a card's head
15845
+ carries its menu. On a line of their own after every value they sat alone
15846
+ under the names, with nothing beside them to say whose they were. */
15847
+ :where(.crewlet-data-grid[data-stacked]:not([data-phone-rows='compact']))
15848
+ .crewlet-data-grid__row:has(> .crewlet-data-grid__cell--action) {
15849
+ display: grid;
15850
+ grid-template-columns: minmax(0, 1fr) auto;
15851
+ align-items: start;
15852
+ column-gap: var(--spacing-2);
15853
+ }
15854
+
15855
+ :where(.crewlet-data-grid[data-stacked]:not([data-phone-rows='compact']))
15856
+ .crewlet-data-grid__row:has(> .crewlet-data-grid__cell--action)
15857
+ > .crewlet-data-grid__cell:not(.crewlet-data-grid__cell--action) {
15858
+ grid-column: 1;
15859
+ }
15860
+
15861
+ /* ONLY THE FIRST LINE SHARES ITS WIDTH WITH THE ACTIONS. Their track is sized
15862
+ to them, and a line held to the other track gave that width up with nothing
15863
+ beside it: every line of a card ended a third of a phone's row short of its
15864
+ edge, and its value wrapped. Every line after the first (a value with
15865
+ nothing in it draws none) spans the row. */
15866
+ :where(.crewlet-data-grid[data-stacked]:not([data-phone-rows='compact']))
15867
+ .crewlet-data-grid__row:has(> .crewlet-data-grid__cell--action)
15868
+ > .crewlet-data-grid__cell:not(.crewlet-data-grid__cell--action):not(:empty)
15869
+ ~ .crewlet-data-grid__cell:not(.crewlet-data-grid__cell--action) {
15870
+ grid-column: 1 / -1;
15871
+ }
15872
+
15873
+ :where(.crewlet-data-grid[data-stacked]:not([data-phone-rows='compact']))
15874
+ .crewlet-data-grid__row
15875
+ > .crewlet-data-grid__cell--action {
15876
+ grid-column: 2;
15877
+ grid-row: 1;
15878
+ align-self: center;
15879
+ }
15880
+
15530
15881
  /* ---- THE COMPACT ROW (`phoneRows="compact"`) ---------------------------
15531
15882
  TWO LINES, NO LABELS: what the row is, then its marks. One flex run that
15532
15883
  breaks once: the lead cells first, a zero-height full-width `::after`
@@ -19258,7 +19609,7 @@ svg.crewlet-datetime__chevron {
19258
19609
  }
19259
19610
 
19260
19611
 
19261
- /* Disclosure-D727FN5X.css */
19612
+ /* Disclosure-RJSKKO7Z.css */
19262
19613
  /*
19263
19614
  * The disclosure anatomy, declared once for every expander in the package.
19264
19615
  *
@@ -19478,6 +19829,26 @@ svg.crewlet-datetime__chevron {
19478
19829
  padding: var(--spacing-1) var(--spacing-2);
19479
19830
  }
19480
19831
 
19832
+ /*
19833
+ * FLUSH: the chevron and the panel start on the line the words around the
19834
+ * section start on. The trigger's start inset is taken back (its hover ground
19835
+ * and its inset ring reach into the gutter instead, as a flush Button's do),
19836
+ * and the panel keeps no inset of either side. Inset, a section opened under
19837
+ * a sentence put its chevron and its content a step in from that sentence.
19838
+ */
19839
+ .crewlet-disclosure--flush .crewlet-disclosure__trigger {
19840
+ margin-inline-start: calc(-1 * var(--spacing-2));
19841
+ width: calc(100% + var(--spacing-2));
19842
+ }
19843
+
19844
+ .crewlet-disclosure--flush .crewlet-disclosure__bar > .crewlet-disclosure__trigger {
19845
+ width: auto;
19846
+ }
19847
+
19848
+ .crewlet-disclosure--flush .crewlet-disclosure__panel {
19849
+ padding-inline: 0;
19850
+ }
19851
+
19481
19852
  /*
19482
19853
  * An aside: what was considered, not what was decided. The rule down its edge
19483
19854
  * is what lets a reader skip the block by its shape.
@@ -24088,6 +24459,53 @@ a.crewlet-icon-btn {
24088
24459
  }
24089
24460
 
24090
24461
 
24462
+ /* KeyValueRows-US5KW7JK.css */
24463
+ /*
24464
+ * KeyValueRows: keys and their values as rows under one column head
24465
+ * (KeyValueRows.tsx).
24466
+ */
24467
+
24468
+ /* The rows, then Add under them, a row's gap apart. */
24469
+ .crewlet-key-value-rows__body,
24470
+ .crewlet-key-value-rows__table {
24471
+ display: flex;
24472
+ flex-direction: column;
24473
+ gap: var(--spacing-2);
24474
+ min-width: 0;
24475
+ }
24476
+
24477
+ /*
24478
+ * EVERY ROW STANDS ON ITS FIELDS' TOP EDGE, so a key's error grows its own
24479
+ * cell downward and nothing beside it moves. The last track is the remove
24480
+ * button's, a square the fields' height, and the head keeps it empty so the
24481
+ * value's name stands over the value column.
24482
+ */
24483
+ .crewlet-key-value-rows__head,
24484
+ .crewlet-key-value-rows__row {
24485
+ display: grid;
24486
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) var(--size-control-md);
24487
+ align-items: start;
24488
+ gap: var(--spacing-2);
24489
+ }
24490
+
24491
+ /* The head stands over the first row at a field label's distance from its field. */
24492
+ .crewlet-key-value-rows__head {
24493
+ margin-block-end: calc(var(--spacing-1) - var(--spacing-2));
24494
+ }
24495
+
24496
+ .crewlet-key-value-rows__empty {
24497
+ margin: 0;
24498
+ font-size: var(--font-size-compact);
24499
+ line-height: var(--font-line-height-normal);
24500
+ color: var(--color-text-secondary);
24501
+ }
24502
+
24503
+ /* Add hugs its words, on the fields' start edge, rather than spanning the list. */
24504
+ .crewlet-key-value-rows__add {
24505
+ display: flex;
24506
+ }
24507
+
24508
+
24091
24509
  /* Layer-J222IFNX.css */
24092
24510
  /*
24093
24511
  * The portal target a LayerHost provides.
@@ -26382,6 +26800,171 @@ a.crewlet-link-card:hover .crewlet-link-card__title {
26382
26800
  }
26383
26801
 
26384
26802
 
26803
+ /* MemberPicker-ZD35VEK6.css */
26804
+ /*
26805
+ * Who gets something, as one list: a group row with its box, its name and
26806
+ * its count, opening to its members, each a row of face, name and one quiet
26807
+ * line. Rows stand at the kit's compact list height; the only colour is the
26808
+ * box's own accent and a left-out member's quieter ink.
26809
+ *
26810
+ * A LIST'S TYPE, NOT A FORM'S: names in the 13px every list and table row
26811
+ * sets a name in, at the medium weight a group's name takes, and every box the
26812
+ * compact Checkbox's (14px beside 13px words). At the body's 14px, with a
26813
+ * 16px box over 14px ones, it read a step larger than every list around it.
26814
+ */
26815
+ .crewlet-member-picker {
26816
+ display: grid;
26817
+ gap: var(--spacing-2);
26818
+ min-width: 0;
26819
+ }
26820
+
26821
+ .crewlet-member-picker__summary {
26822
+ margin: 0;
26823
+ color: var(--color-text-secondary);
26824
+ font-size: var(--font-size-compact);
26825
+ font-variant-numeric: tabular-nums;
26826
+ }
26827
+
26828
+ .crewlet-member-picker__list,
26829
+ .crewlet-member-picker__members {
26830
+ display: grid;
26831
+ margin: 0;
26832
+ padding: 0;
26833
+ list-style: none;
26834
+ }
26835
+
26836
+ .crewlet-member-picker__list {
26837
+ border: 1px solid var(--color-border-default);
26838
+ border-radius: var(--radius-md);
26839
+ overflow: hidden;
26840
+ }
26841
+
26842
+ .crewlet-member-picker__group + .crewlet-member-picker__group {
26843
+ border-top: 1px solid var(--color-border-default);
26844
+ }
26845
+
26846
+ .crewlet-member-picker__group-row {
26847
+ display: grid;
26848
+ grid-template-columns: auto minmax(0, 1fr) auto;
26849
+ align-items: center;
26850
+ gap: var(--spacing-2);
26851
+ padding: var(--spacing-2) var(--spacing-3) var(--spacing-2) var(--spacing-1);
26852
+ }
26853
+
26854
+ /* The open control is the kit's small ghost IconButton; only its chevron
26855
+ turns here, a quarter turn once the group is open. */
26856
+ .crewlet-member-picker__toggle svg {
26857
+ transition: transform var(--motion-duration-fast) var(--motion-easing-default);
26858
+ }
26859
+
26860
+ .crewlet-member-picker__group.is-open .crewlet-member-picker__toggle svg {
26861
+ transform: rotate(90deg);
26862
+ }
26863
+
26864
+ @media (prefers-reduced-motion: reduce) {
26865
+ .crewlet-member-picker__toggle svg {
26866
+ transition: none;
26867
+ }
26868
+ }
26869
+
26870
+ .crewlet-member-picker__count {
26871
+ color: var(--color-text-tertiary);
26872
+ font-size: var(--font-size-xs);
26873
+ font-variant-numeric: tabular-nums;
26874
+ white-space: nowrap;
26875
+ }
26876
+
26877
+ .crewlet-member-picker__members {
26878
+ border-top: 1px solid var(--color-border-default);
26879
+ background: var(--color-surface-subtle);
26880
+ }
26881
+
26882
+ .crewlet-member-picker__member {
26883
+ display: grid;
26884
+ grid-template-columns: auto auto minmax(0, 1fr) auto;
26885
+ align-items: center;
26886
+ gap: var(--spacing-2);
26887
+ min-height: var(--size-control-lg);
26888
+ /* Each member's box under its group's, past the open control and its gap. */
26889
+ padding: var(--spacing-1) var(--spacing-3) var(--spacing-1) calc(var(--spacing-1) + var(--size-control-sm) + var(--spacing-2));
26890
+ }
26891
+
26892
+ /* A MEMBER'S BOX STANDS UNDER ITS GROUP'S. The bare Checkbox centres its box
26893
+ on the square the pointer floor allows, which set the box half the
26894
+ difference in from the row's edge, a few pixels right of the group's box
26895
+ above it. That inset is taken back, and the pointer square reaches into
26896
+ the row's padding instead. */
26897
+ .crewlet-member-picker__members:not(.is-ungrouped) .crewlet-checkbox--bare {
26898
+ margin-inline-start: calc((var(--crewlet-checkbox-size) - var(--size-target-min)) / 2);
26899
+ }
26900
+
26901
+ .crewlet-member-picker__members.is-ungrouped {
26902
+ border-top: 0;
26903
+ background: transparent;
26904
+ }
26905
+
26906
+ .crewlet-member-picker__members.is-ungrouped .crewlet-member-picker__member {
26907
+ padding-inline-start: var(--spacing-3);
26908
+ }
26909
+
26910
+ .crewlet-member-picker__avatar {
26911
+ display: inline-flex;
26912
+ flex: none;
26913
+ }
26914
+
26915
+ /* The name and its line label the member's box, so they take the pointer a
26916
+ Checkbox's own words take. */
26917
+ .crewlet-member-picker__text {
26918
+ display: flex;
26919
+ flex-direction: column;
26920
+ min-width: 0;
26921
+ cursor: pointer;
26922
+ }
26923
+
26924
+ .crewlet-member-picker__name {
26925
+ overflow: hidden;
26926
+ color: var(--color-text-primary);
26927
+ font-size: var(--font-size-compact);
26928
+ text-overflow: ellipsis;
26929
+ white-space: nowrap;
26930
+ }
26931
+
26932
+ .crewlet-member-picker__detail {
26933
+ overflow: hidden;
26934
+ color: var(--color-text-tertiary);
26935
+ font-size: var(--font-size-xs);
26936
+ text-overflow: ellipsis;
26937
+ white-space: nowrap;
26938
+ }
26939
+
26940
+ .crewlet-member-picker__mark {
26941
+ color: var(--color-text-secondary);
26942
+ font-size: var(--font-size-xs);
26943
+ white-space: nowrap;
26944
+ }
26945
+
26946
+ .crewlet-member-picker__member.is-left-out .crewlet-member-picker__name,
26947
+ .crewlet-member-picker__mark.is-left-out {
26948
+ color: var(--color-text-tertiary);
26949
+ }
26950
+
26951
+ @media (width < 480px) {
26952
+ .crewlet-member-picker__member {
26953
+ grid-template-columns: auto auto minmax(0, 1fr);
26954
+ padding-inline-start: var(--spacing-3);
26955
+ }
26956
+
26957
+ .crewlet-member-picker__mark {
26958
+ grid-column: 3;
26959
+ }
26960
+ }
26961
+
26962
+ /* A group's name is the row's title: the medium weight, at the list's 13px. */
26963
+ .crewlet-member-picker__group-row .crewlet-checkbox__label {
26964
+ font-weight: var(--font-weight-medium);
26965
+ }
26966
+
26967
+
26385
26968
  /* MentionChip-W7MZZVRZ.css */
26386
26969
  /*
26387
26970
  * A mention in a message's words: a chip in the line, in the info tone's
@@ -31194,6 +31777,106 @@ button.crewlet-presence-stack__member:focus-visible {
31194
31777
  }
31195
31778
 
31196
31779
 
31780
+ /* RailList-N2ZBPRM2.css */
31781
+ /*
31782
+ * RailList: a directory in a card, a rail of groups beside the chosen
31783
+ * group's list, folding into a picker where the card is narrow
31784
+ * (RailList.tsx).
31785
+ *
31786
+ * SIZED BY ITS OWN WIDTH, NOT THE WINDOW'S, because the same directory stands
31787
+ * in a page and in a sheet: the root is an inline-size container, and under
31788
+ * the rail's room (44rem) the rail goes and the picker shows. Both are always
31789
+ * rendered and the stylesheet decides, so the fold costs no measurement and
31790
+ * never draws the wrong one first.
31791
+ */
31792
+ .crewlet-rail-list {
31793
+ container: crewlet-rail-list / inline-size;
31794
+ min-width: 0;
31795
+ }
31796
+
31797
+ /* The bar across the card's top: the caller's search and chips, and the folded picker. */
31798
+ .crewlet-rail-list__bar {
31799
+ display: flex;
31800
+ flex-wrap: wrap;
31801
+ align-items: center;
31802
+ gap: var(--spacing-2);
31803
+ padding: var(--spacing-3);
31804
+ border-block-end: 1px solid var(--color-border-default);
31805
+ }
31806
+
31807
+ /* Wide, the rail is the choice: the picker and a bar that holds nothing else are not drawn. */
31808
+ .crewlet-rail-list__picker,
31809
+ .crewlet-rail-list__bar--picker-only {
31810
+ display: none;
31811
+ }
31812
+
31813
+ /* The rail at a fixed width (13rem by default), the list taking the rest. */
31814
+ .crewlet-rail-list__body {
31815
+ display: grid;
31816
+ grid-template-columns: var(--crewlet-rail-list-rail, 13rem) minmax(0, 1fr);
31817
+ min-width: 0;
31818
+ }
31819
+
31820
+ /* The rail on a hairline of its own, its note a step under its rows. */
31821
+ .crewlet-rail-list__rail {
31822
+ display: flex;
31823
+ flex-direction: column;
31824
+ gap: var(--spacing-3);
31825
+ min-width: 0;
31826
+ padding: var(--spacing-2);
31827
+ border-inline-end: 1px solid var(--color-border-default);
31828
+ }
31829
+
31830
+ /* The note starts on the rows' words, inside the dense rail's own inset. */
31831
+ .crewlet-rail-list__note {
31832
+ margin: 0;
31833
+ padding-inline: var(--spacing-2);
31834
+ }
31835
+
31836
+ .crewlet-rail-list__list {
31837
+ display: flex;
31838
+ flex-direction: column;
31839
+ min-width: 0;
31840
+ }
31841
+
31842
+ /* What the chosen group holds, over its list on a hairline, at the list's own inset. */
31843
+ .crewlet-rail-list__about {
31844
+ margin: 0;
31845
+ padding: var(--spacing-2) var(--spacing-4);
31846
+ border-block-end: 1px solid var(--color-border-default);
31847
+ }
31848
+
31849
+ /*
31850
+ * A GRID AT THE LIST'S TOP TAKES NO RULE OF ITS OWN. A grid in a card draws
31851
+ * one rule above its head to part it from the card's head (DataGrid.css);
31852
+ * here the bar's hairline, the description's or the card's own edge is
31853
+ * already that rule, and the grid's drew a second line under it.
31854
+ */
31855
+ .crewlet-rail-list__list > .crewlet-data-grid:first-child,
31856
+ .crewlet-rail-list__about + .crewlet-data-grid {
31857
+ border-top: 0;
31858
+ }
31859
+
31860
+ /* Under the rail's room the list takes the card, and the picker takes the rail's place in the bar. */
31861
+ @container crewlet-rail-list (width < 44rem) {
31862
+ .crewlet-rail-list__body {
31863
+ grid-template-columns: minmax(0, 1fr);
31864
+ }
31865
+
31866
+ .crewlet-rail-list__rail {
31867
+ display: none;
31868
+ }
31869
+
31870
+ .crewlet-rail-list__picker {
31871
+ display: inline-flex;
31872
+ }
31873
+
31874
+ .crewlet-rail-list__bar--picker-only {
31875
+ display: flex;
31876
+ }
31877
+ }
31878
+
31879
+
31197
31880
  /* ReactionBar-XXI4V7XG.css */
31198
31881
  /*
31199
31882
  * A message's reactions: one pill to an emoji, then the add pill. A pill at
@@ -33165,7 +33848,7 @@ button.crewlet-presence-stack__member:focus-visible {
33165
33848
  }
33166
33849
 
33167
33850
 
33168
- /* SegmentedControl-B7XCUOML.css */
33851
+ /* SegmentedControl-7GY2KM44.css */
33169
33852
  /*
33170
33853
  * SegmentedControl: the pill row, drawn with the Tabs classes.
33171
33854
  *
@@ -33304,6 +33987,17 @@ button.crewlet-presence-stack__member:focus-visible {
33304
33987
  background: var(--color-brand-accent);
33305
33988
  }
33306
33989
 
33990
+ /* A COUNT IN A CHIP IS A FIGURE IN THE CHIP'S OWN INK, as on a FilterChip and
33991
+ a lens chip: no pill of its own, since a box inside a box beside its word
33992
+ says nothing more. On the chosen chip the inset pill's tertiary figure lay
33993
+ on the accent fill at 1.4:1; inheriting, it is the label's on-accent ink. */
33994
+ .crewlet-segmented--chips .crewlet-count {
33995
+ min-width: 0;
33996
+ padding: 0;
33997
+ background: none;
33998
+ color: inherit;
33999
+ }
34000
+
33307
34001
  /* What completes the last choice sits in the row, at the chips' own height
33308
34002
  and in their face: a field at its own control step stood taller than every
33309
34003
  chip beside it. */
@@ -39208,7 +39902,7 @@ svg.crewlet-select__chevron {
39208
39902
  }
39209
39903
 
39210
39904
 
39211
- /* StepList-A4YVU4JI.css */
39905
+ /* StepList-OAJ45IBX.css */
39212
39906
  /*
39213
39907
  * A request's steps: a well on the inset ground, an ordered list of steps
39214
39908
  * each on a three-track grid (the 16px state column, the words, the
@@ -39246,7 +39940,8 @@ svg.crewlet-select__chevron {
39246
39940
  }
39247
39941
 
39248
39942
  .crewlet-step-mark--refused,
39249
- .crewlet-step-mark--stopped {
39943
+ .crewlet-step-mark--stopped,
39944
+ .crewlet-step-mark--pending {
39250
39945
  color: var(--color-text-tertiary);
39251
39946
  }
39252
39947
 
@@ -39299,6 +39994,16 @@ svg.crewlet-select__chevron {
39299
39994
  overflow-wrap: anywhere;
39300
39995
  }
39301
39996
 
39997
+ /*
39998
+ * A STEP THAT HAS NOT STARTED IS QUIET THROUGH: its words take the tertiary
39999
+ * ink its mark and its detail already have, so the whole step reads as one
40000
+ * thing still to come rather than as a label in full ink beside a dimmed
40001
+ * mark.
40002
+ */
40003
+ .crewlet-step-list__step--pending .crewlet-step-list__label {
40004
+ color: var(--color-text-tertiary);
40005
+ }
40006
+
39302
40007
  /*
39303
40008
  * WHAT THE STEP ASKED FOR, in the mono face. Each piece between separators is
39304
40009
  * one inline block, so a line breaks only between pieces (at a space, or
@@ -40675,7 +41380,7 @@ b.crewlet-switcher__match {
40675
41380
  }
40676
41381
 
40677
41382
 
40678
- /* TableCells-TKSNLRK3.css */
41383
+ /* TableCells-ZALZLLEF.css */
40679
41384
  /* The read-only table cells. Each one holds a single line and shrinks inside
40680
41385
  its column (`min-width: 0`), so a long value is cut with an ellipsis and
40681
41386
  its whole text on the title rather than standing the row two lines tall. */
@@ -40791,6 +41496,34 @@ b.crewlet-switcher__match {
40791
41496
  font-variant-numeric: tabular-nums;
40792
41497
  }
40793
41498
 
41499
+ /*
41500
+ * A VALUE OVER A QUIETER LINE (TableTwoLineCell), each line its own block cut
41501
+ * on one line. A column of boxes rather than two runs of text, so neither
41502
+ * line takes the line box of the words around it, and the cell is exactly
41503
+ * the two lines tall. `min-width: 0` lets the column shrink inside a grid's
41504
+ * cell, which is what cuts the lines rather than pushing the column wider.
41505
+ */
41506
+ .crewlet-table-cell__lines {
41507
+ display: flex;
41508
+ flex-direction: column;
41509
+ min-width: 0;
41510
+ max-width: 100%;
41511
+ }
41512
+
41513
+ /* The mark is centred against both lines, as an entity's badge is against its name. */
41514
+ .crewlet-table-cell__two-line {
41515
+ display: inline-flex;
41516
+ align-items: center;
41517
+ gap: var(--spacing-2);
41518
+ min-width: 0;
41519
+ max-width: 100%;
41520
+ }
41521
+
41522
+ /* The mark keeps its size: the lines give way to the column, never the mark. */
41523
+ .crewlet-table-cell__two-line > :first-child {
41524
+ flex: none;
41525
+ }
41526
+
40794
41527
 
40795
41528
  /* Tabs-M2ELSU3V.css */
40796
41529
  /*