@crewlethq/ui 0.48.3 → 0.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -0
- package/dist/AgentHandoffPanel/index.js +3 -3
- package/dist/ArrangeList/index.js +2 -2
- package/dist/ArtifactBar/index.js +4 -4
- package/dist/{ArtifactBar-6PGWGKN2.css → ArtifactBar-UMZCTARR.css} +9 -0
- package/dist/ArtifactCard/ArtifactCard.d.ts +30 -1
- package/dist/ArtifactCard/index.js +10 -3
- package/dist/{ArtifactCard-OGTMO2KI.css → ArtifactCard-SOB63NV5.css} +72 -1
- package/dist/ArtifactCover/index.js +2 -2
- package/dist/ArtifactIcon/index.js +2 -2
- package/dist/ArtifactKindGlyph/ArtifactKindGlyph.d.ts +7 -3
- package/dist/ArtifactKindGlyph/index.js +1 -1
- package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +4 -3
- package/dist/ArtifactKindIllustration/index.js +1 -1
- package/dist/{ArtifactKinds-CVD3FCYO.css → ArtifactKinds-O3CALPVX.css} +1 -0
- package/dist/ArtifactMakeRow/index.js +2 -2
- package/dist/ArtifactNameCell/ArtifactNameCell.d.ts +14 -1
- package/dist/ArtifactNameCell/index.d.ts +1 -1
- package/dist/ArtifactNameCell/index.js +2 -2
- package/dist/{ArtifactNameCell-RTVP4LO4.css → ArtifactNameCell-3AHLUSE5.css} +12 -0
- package/dist/BrandChip/BrandChip.d.ts +26 -0
- package/dist/BrandChip/index.d.ts +3 -0
- package/dist/BrandChip/index.js +2 -0
- package/dist/BrandChip-SQWBC2WU.css +81 -0
- package/dist/BrandSample/BrandSample.d.ts +75 -0
- package/dist/BrandSample/index.d.ts +3 -0
- package/dist/BrandSample/index.js +5 -0
- package/dist/BrandSample-G5V7GKR2.css +185 -0
- package/dist/BrandScope/BrandScope.d.ts +61 -0
- package/dist/BrandScope/index.d.ts +4 -0
- package/dist/BrandScope/index.js +4 -0
- package/dist/BrandScope-H2KZHGT7.css +29 -0
- package/dist/Checkbox/Checkbox.d.ts +8 -0
- package/dist/Checkbox/index.js +1 -1
- package/dist/{Checkbox-ALWG3WV2.css → Checkbox-MB22OW6P.css} +18 -0
- package/dist/ColorField/ColorField.d.ts +63 -0
- package/dist/ColorField/index.d.ts +3 -0
- package/dist/ColorField/index.js +11 -0
- package/dist/ColorField-2OIOWT3Z.css +68 -0
- package/dist/ColorSwatch/ColorSwatch.d.ts +43 -0
- package/dist/ColorSwatch/index.d.ts +3 -0
- package/dist/ColorSwatch/index.js +9 -0
- package/dist/ColorSwatch-DNMUFHNS.css +83 -0
- package/dist/Combobox/Combobox.d.ts +45 -4
- package/dist/Combobox/index.d.ts +1 -1
- package/dist/Combobox/index.js +1 -1
- package/dist/Combobox-GBCWXWEB.css +163 -0
- package/dist/CommandPalette/index.js +3 -3
- package/dist/CommentThread/index.js +3 -3
- package/dist/Composer/index.js +2 -2
- package/dist/ContrastBadge/ContrastBadge.d.ts +63 -0
- package/dist/ContrastBadge/index.d.ts +3 -0
- package/dist/ContrastBadge/index.js +6 -0
- package/dist/ContrastBadge-CBZPGG3G.css +47 -0
- package/dist/DataGrid/DataGrid.d.ts +28 -1
- package/dist/DataGrid/index.js +8 -1
- package/dist/{DataGrid-AQKPJD7W.css → DataGrid-VNGQESJA.css} +15 -0
- package/dist/DataTable/index.js +3 -3
- package/dist/DataView/index.js +8 -8
- package/dist/DateTimePicker/index.js +2 -2
- package/dist/FolderTile/FolderTile.d.ts +91 -0
- package/dist/FolderTile/index.d.ts +3 -0
- package/dist/FolderTile/index.js +7 -0
- package/dist/FolderTile-FDT5Y63Z.css +231 -0
- package/dist/LinkInterstitial/index.js +2 -2
- package/dist/ListInput/index.js +2 -2
- package/dist/LogoSlot/LogoSlot.d.ts +84 -0
- package/dist/LogoSlot/index.d.ts +3 -0
- package/dist/LogoSlot/index.js +9 -0
- package/dist/LogoSlot-T2UFOJXU.css +159 -0
- package/dist/Modal/Modal.d.ts +13 -0
- package/dist/Modal/index.js +1 -1
- package/dist/{Modal-TOEWHDCQ.css → Modal-3HMP7WAZ.css} +30 -0
- package/dist/PresenterView/index.js +2 -2
- package/dist/PrincipalPicker/index.js +2 -2
- package/dist/SelectionBar/SelectionBar.d.ts +50 -0
- package/dist/SelectionBar/index.d.ts +3 -0
- package/dist/SelectionBar/index.js +9 -0
- package/dist/SelectionBar-XPWKUOSC.css +61 -0
- package/dist/ShareDialog/index.js +3 -3
- package/dist/SheetColumnEditor/index.js +3 -3
- package/dist/SheetGrid/index.js +2 -2
- package/dist/Switcher/index.js +2 -2
- package/dist/ThemeGallery/ThemeGallery.d.ts +13 -2
- package/dist/ThemeGallery/index.js +3 -1
- package/dist/{ThemeGallery-X35Y25EX.css → ThemeGallery-UEFZRT6W.css} +21 -0
- package/dist/TimeWindowPicker/index.js +2 -2
- package/dist/TypeSpecimen/TypeSpecimen.d.ts +49 -0
- package/dist/TypeSpecimen/index.d.ts +3 -0
- package/dist/TypeSpecimen/index.js +3 -0
- package/dist/TypeSpecimen-WK6YNHL7.css +96 -0
- package/dist/chunk-5SGHW42B.js +23 -0
- package/dist/{chunk-ILDNJHRU.js → chunk-AVL52EME.js} +1 -1
- package/dist/chunk-B235ANDO.js +66 -0
- package/dist/{chunk-2MYSESZF.js → chunk-FB5CFQTG.js} +82 -12
- package/dist/{chunk-DY4DQ7EB.js → chunk-GP4YWZFO.js} +1 -1
- package/dist/{chunk-LIJQT74Y.js → chunk-H55D66IK.js} +1 -1
- package/dist/{chunk-6EBGPCAW.js → chunk-H7NMJ5AI.js} +1 -1
- package/dist/chunk-ITI2Z44C.js +139 -0
- package/dist/{chunk-P5VGSVWG.js → chunk-J24Q4HTD.js} +17 -8
- package/dist/{chunk-5EBDOE3C.js → chunk-JFDIMO3A.js} +1 -1
- package/dist/chunk-JKAFEFFC.js +44 -0
- package/dist/{chunk-32TGEMQQ.js → chunk-KHZYAEGZ.js} +1 -1
- package/dist/chunk-M4QM477B.js +80 -0
- package/dist/{chunk-TWZEWXNW.js → chunk-MIEBOO7Y.js} +2 -2
- package/dist/{chunk-SMOFYZJ5.js → chunk-NAWUXCBC.js} +3 -3
- package/dist/{chunk-F57N6ZJG.js → chunk-NCHKKYPQ.js} +5 -2
- package/dist/chunk-OCRVY42T.js +50 -0
- package/dist/chunk-OEEYL2CM.js +73 -0
- package/dist/chunk-P3OIM6OC.js +38 -0
- package/dist/{chunk-FWBKMPNR.js → chunk-P3QWT5VR.js} +1 -1
- package/dist/chunk-P5JBDHWC.js +206 -0
- package/dist/{chunk-OKE5YSLD.js → chunk-Q44X36QC.js} +79 -35
- package/dist/{chunk-R2IBCEU6.js → chunk-R3BA3C4Y.js} +2 -2
- package/dist/{chunk-CE2THTQR.js → chunk-RSKW25Y5.js} +4 -3
- package/dist/{chunk-UBZDYOCA.js → chunk-RV6XB5UV.js} +12 -1
- package/dist/{chunk-E4BOVKNJ.js → chunk-UTESMBPL.js} +5 -3
- package/dist/chunk-UZMNR366.js +9 -0
- package/dist/{chunk-CWKWMIIJ.js → chunk-V7GOOXPK.js} +1 -1
- package/dist/{chunk-7JED2NYP.js → chunk-VBIM6HFC.js} +1 -1
- package/dist/{chunk-U4HOKU6P.js → chunk-VN47PYUF.js} +5 -5
- package/dist/{chunk-MUQJCH2Y.js → chunk-VTSJMDGP.js} +2 -2
- package/dist/chunk-W6FOEBIL.js +119 -0
- package/dist/chunk-WLSEAIVC.js +48 -0
- package/dist/{chunk-AS2BMY3E.js → chunk-WQ7S7CKZ.js} +2 -2
- package/dist/{chunk-6AKG2VLR.js → chunk-YCC2S7DF.js} +4 -1
- package/dist/chunk-ZH77BXMA.js +14 -0
- package/dist/generated/index.d.ts +10 -0
- package/dist/generated/index.js +80 -68
- package/dist/index.js +80 -68
- package/dist/styles.css +1414 -85
- package/dist/utils/fontFamily.d.ts +29 -0
- package/dist/utils/hexColour.d.ts +12 -0
- package/package.json +3 -3
- package/scripts/check-css-variables.mjs +18 -2
- package/dist/Combobox-YDONYDTM.css +0 -81
- package/dist/chunk-OOJTPR7N.js +0 -137
- package/dist/{chunk-245IXG5P.js → chunk-3WMOEGEL.js} +0 -0
- package/dist/{chunk-ISDEXIXH.js → chunk-E6HXFFWO.js} +1 -1
- package/dist/{chunk-6R5BSA36.js → chunk-GHY63X4C.js} +1 -1
- package/dist/{chunk-ICVS3U4S.js → chunk-PGR2PKH6.js} +1 -1
- package/dist/{chunk-VKFG4FLE.js → chunk-R6R2UHVG.js} +1 -1
- package/dist/{chunk-OO7QJCJQ.js → chunk-WXOYHVWG.js} +1 -1
- package/dist/{chunk-UFXLNC2N.js → chunk-ZFM5L7M4.js} +1 -1
package/dist/styles.css
CHANGED
|
@@ -2474,7 +2474,7 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2474
2474
|
}
|
|
2475
2475
|
|
|
2476
2476
|
|
|
2477
|
-
/* ArtifactBar-
|
|
2477
|
+
/* ArtifactBar-UMZCTARR.css */
|
|
2478
2478
|
/*
|
|
2479
2479
|
* One row, one hairline under it, the height of a large row. The lead (the
|
|
2480
2480
|
* way back, the glyph, the title, the version) takes what the end leaves it
|
|
@@ -2581,6 +2581,15 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2581
2581
|
overflow: visible;
|
|
2582
2582
|
}
|
|
2583
2583
|
|
|
2584
|
+
/* A read-only title's words: the block that takes the ellipsis, which the
|
|
2585
|
+
flex heading around it cannot. */
|
|
2586
|
+
.crewlet-artifact-bar__text {
|
|
2587
|
+
min-width: 0;
|
|
2588
|
+
overflow: hidden;
|
|
2589
|
+
text-overflow: ellipsis;
|
|
2590
|
+
white-space: nowrap;
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2584
2593
|
.crewlet-artifact-bar__rename {
|
|
2585
2594
|
min-width: 0;
|
|
2586
2595
|
max-width: 100%;
|
|
@@ -2904,7 +2913,7 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2904
2913
|
}
|
|
2905
2914
|
|
|
2906
2915
|
|
|
2907
|
-
/* ArtifactCard-
|
|
2916
|
+
/* ArtifactCard-SOB63NV5.css */
|
|
2908
2917
|
/*
|
|
2909
2918
|
* A card in a gallery: the preview on top at a fixed ratio, so a grid of them
|
|
2910
2919
|
* lines up whatever each preview is, the kind's badge over its foot, then the
|
|
@@ -3179,9 +3188,80 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
3179
3188
|
}
|
|
3180
3189
|
}
|
|
3181
3190
|
|
|
3191
|
+
/*
|
|
3192
|
+
* PICKED, as every chosen option in the package is drawn: the selected edge
|
|
3193
|
+
* over the selected fill, laid as an image over the card's own ground so the
|
|
3194
|
+
* card keeps it. Never the accent, which is the focus ring's hue.
|
|
3195
|
+
*/
|
|
3196
|
+
.crewlet-artifact-card--card.is-selected {
|
|
3197
|
+
border-color: var(--color-border-selected);
|
|
3198
|
+
background-image: linear-gradient(var(--color-surface-selected), var(--color-surface-selected));
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
/*
|
|
3202
|
+
* THE SELECTION BOX STANDS ON THE PREVIEW'S FOOT, opposite the kind's badge
|
|
3203
|
+
* and drawn as its twin: half over the picture and half over the card, on a
|
|
3204
|
+
* raised square in the badge's own size, hairline and shadow. A cover's own
|
|
3205
|
+
* title starts at its top corner, and a box over that corner hid its first
|
|
3206
|
+
* words; the foot's far corner is where a cover has the least to say.
|
|
3207
|
+
*
|
|
3208
|
+
* Its anchor has the preview's shape (the card's width at 16:9) and takes no
|
|
3209
|
+
* pointer, so the box is placed against the preview's foot at any width
|
|
3210
|
+
* without being nested in the link the preview belongs to. Hidden until the
|
|
3211
|
+
* card is hovered or holds focus, and always there once the card is picked,
|
|
3212
|
+
* while the gallery is choosing, and on a screen with no hover.
|
|
3213
|
+
*/
|
|
3214
|
+
.crewlet-artifact-card__select-anchor {
|
|
3215
|
+
position: absolute;
|
|
3216
|
+
inset: 0 0 auto 0;
|
|
3217
|
+
aspect-ratio: 16 / 9;
|
|
3218
|
+
pointer-events: none;
|
|
3219
|
+
}
|
|
3220
|
+
|
|
3221
|
+
.crewlet-artifact-card__select {
|
|
3222
|
+
position: absolute;
|
|
3223
|
+
right: var(--spacing-4);
|
|
3224
|
+
bottom: 0;
|
|
3225
|
+
display: inline-flex;
|
|
3226
|
+
align-items: center;
|
|
3227
|
+
justify-content: center;
|
|
3228
|
+
width: 32px;
|
|
3229
|
+
height: 32px;
|
|
3230
|
+
box-sizing: border-box;
|
|
3231
|
+
border: 1px solid var(--color-border-default);
|
|
3232
|
+
border-radius: var(--radius-md);
|
|
3233
|
+
background: var(--color-surface-background);
|
|
3234
|
+
box-shadow: var(--shadow-sm);
|
|
3235
|
+
transform: translateY(50%);
|
|
3236
|
+
pointer-events: auto;
|
|
3237
|
+
opacity: 0;
|
|
3238
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-out);
|
|
3239
|
+
}
|
|
3240
|
+
|
|
3241
|
+
.crewlet-artifact-card--card:hover .crewlet-artifact-card__select,
|
|
3242
|
+
.crewlet-artifact-card--card:focus-within .crewlet-artifact-card__select,
|
|
3243
|
+
.crewlet-artifact-card--card.is-selected .crewlet-artifact-card__select,
|
|
3244
|
+
.crewlet-artifact-card--selecting .crewlet-artifact-card__select {
|
|
3245
|
+
opacity: 1;
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
@media (hover: none) {
|
|
3249
|
+
.crewlet-artifact-card__select {
|
|
3250
|
+
opacity: 1;
|
|
3251
|
+
}
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
/* WHILE CHOOSING, THE BODY PICKS: the pointer says so, and a Shift-press
|
|
3255
|
+
for a range selects no text on the way. */
|
|
3256
|
+
.crewlet-artifact-card--selecting .crewlet-artifact-card__link {
|
|
3257
|
+
cursor: pointer;
|
|
3258
|
+
user-select: none;
|
|
3259
|
+
}
|
|
3260
|
+
|
|
3182
3261
|
@media (prefers-reduced-motion: reduce) {
|
|
3183
3262
|
.crewlet-artifact-card--card,
|
|
3184
|
-
.crewlet-artifact-card__actions
|
|
3263
|
+
.crewlet-artifact-card__actions,
|
|
3264
|
+
.crewlet-artifact-card__select {
|
|
3185
3265
|
transition: none;
|
|
3186
3266
|
}
|
|
3187
3267
|
}
|
|
@@ -3521,7 +3601,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3521
3601
|
}
|
|
3522
3602
|
|
|
3523
3603
|
|
|
3524
|
-
/* ArtifactKinds-
|
|
3604
|
+
/* ArtifactKinds-O3CALPVX.css */
|
|
3525
3605
|
/*
|
|
3526
3606
|
* A kind's colours, set once per kind on `--crewlet-kind-*` by its class
|
|
3527
3607
|
* (`crewlet-kind--<kind>`): the hue, its Fill and Line steps and the ink a
|
|
@@ -3536,6 +3616,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3536
3616
|
.crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); }
|
|
3537
3617
|
.crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); }
|
|
3538
3618
|
.crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); }
|
|
3619
|
+
.crewlet-kind--brand { --crewlet-kind-hue: var(--color-artifact-kind-brand); --crewlet-kind-fill: var(--color-artifact-kind-brand-fill); --crewlet-kind-line: var(--color-artifact-kind-brand-line); --crewlet-kind-ink: var(--color-artifact-kind-brand-ink); }
|
|
3539
3620
|
.crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); }
|
|
3540
3621
|
|
|
3541
3622
|
|
|
@@ -3752,7 +3833,7 @@ a.crewlet-make-row__item:active {
|
|
|
3752
3833
|
}
|
|
3753
3834
|
|
|
3754
3835
|
|
|
3755
|
-
/* ArtifactNameCell-
|
|
3836
|
+
/* ArtifactNameCell-3AHLUSE5.css */
|
|
3756
3837
|
/*
|
|
3757
3838
|
* An artifact's name in a list: the kind's mark on its tint, the title over
|
|
3758
3839
|
* one quiet line. Every colour is a token: the mark reads the kind's own Fill,
|
|
@@ -3792,6 +3873,18 @@ a.crewlet-make-row__item:active {
|
|
|
3792
3873
|
box-shadow: inset 0 0 0 1px var(--crewlet-kind-hue);
|
|
3793
3874
|
}
|
|
3794
3875
|
|
|
3876
|
+
/* A FOLDER'S MARK IS NEUTRAL: a folder is not a kind, so it takes the inset
|
|
3877
|
+
ground and the plain hairline, and its hover takes the hover hairline. */
|
|
3878
|
+
.crewlet-artifact-name__mark--folder {
|
|
3879
|
+
background: var(--color-surface-inset);
|
|
3880
|
+
box-shadow: inset 0 0 0 1px var(--color-border-default);
|
|
3881
|
+
color: var(--color-text-secondary);
|
|
3882
|
+
}
|
|
3883
|
+
|
|
3884
|
+
:is(tr, [role='row']):hover .crewlet-artifact-name__mark--folder {
|
|
3885
|
+
box-shadow: inset 0 0 0 1px var(--color-border-hover);
|
|
3886
|
+
}
|
|
3887
|
+
|
|
3795
3888
|
.crewlet-artifact-name--trashed .crewlet-artifact-name__mark {
|
|
3796
3889
|
background: var(--color-surface-inset);
|
|
3797
3890
|
box-shadow: inset 0 0 0 1px var(--color-border-default);
|
|
@@ -4617,6 +4710,90 @@ button.crewlet-avatar-picker:hover .crewlet-avatar-picker__pip {
|
|
|
4617
4710
|
}
|
|
4618
4711
|
|
|
4619
4712
|
|
|
4713
|
+
/* BrandChip-SQWBC2WU.css */
|
|
4714
|
+
/*
|
|
4715
|
+
* The company's brand as a small link: the mark, the name, a chevron. A quiet
|
|
4716
|
+
* chip at a small control's height, inside the default hairline, that steps
|
|
4717
|
+
* its hairline up under the pointer and moves nothing.
|
|
4718
|
+
*/
|
|
4719
|
+
.crewlet-brand-chip {
|
|
4720
|
+
display: inline-flex;
|
|
4721
|
+
align-items: center;
|
|
4722
|
+
gap: var(--spacing-2);
|
|
4723
|
+
min-width: 0;
|
|
4724
|
+
max-width: 100%;
|
|
4725
|
+
min-height: var(--size-control-sm);
|
|
4726
|
+
box-sizing: border-box;
|
|
4727
|
+
padding: 2px var(--spacing-2) 2px 2px;
|
|
4728
|
+
border: 1px solid var(--color-border-default);
|
|
4729
|
+
border-radius: var(--radius-pill);
|
|
4730
|
+
background: var(--color-surface-subtle);
|
|
4731
|
+
color: var(--color-text-secondary);
|
|
4732
|
+
font-size: var(--font-size-compact);
|
|
4733
|
+
font-weight: var(--font-weight-medium);
|
|
4734
|
+
text-decoration: none;
|
|
4735
|
+
transition:
|
|
4736
|
+
border-color var(--motion-duration-fast) var(--motion-easing-out),
|
|
4737
|
+
color var(--motion-duration-fast) var(--motion-easing-out);
|
|
4738
|
+
}
|
|
4739
|
+
|
|
4740
|
+
.crewlet-brand-chip:hover {
|
|
4741
|
+
border-color: var(--color-border-hover);
|
|
4742
|
+
color: var(--color-text-primary);
|
|
4743
|
+
text-decoration: none;
|
|
4744
|
+
}
|
|
4745
|
+
|
|
4746
|
+
.crewlet-brand-chip:focus-visible {
|
|
4747
|
+
outline: 2px solid var(--color-focus);
|
|
4748
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
4749
|
+
}
|
|
4750
|
+
|
|
4751
|
+
/* THE MARK ON ITS OWN PLATE, so a mark drawn for a light ground still reads
|
|
4752
|
+
on a dark theme: the brand's square logo at the chip's inner height. */
|
|
4753
|
+
.crewlet-brand-chip__mark {
|
|
4754
|
+
display: inline-flex;
|
|
4755
|
+
flex: none;
|
|
4756
|
+
align-items: center;
|
|
4757
|
+
justify-content: center;
|
|
4758
|
+
width: calc(var(--size-control-sm) - 6px);
|
|
4759
|
+
height: calc(var(--size-control-sm) - 6px);
|
|
4760
|
+
overflow: hidden;
|
|
4761
|
+
border-radius: var(--radius-circle);
|
|
4762
|
+
background: var(--color-surface-inset);
|
|
4763
|
+
box-shadow: inset 0 0 0 1px var(--color-border-default);
|
|
4764
|
+
}
|
|
4765
|
+
|
|
4766
|
+
.crewlet-brand-chip__mark--glyph {
|
|
4767
|
+
color: var(--color-text-tertiary);
|
|
4768
|
+
}
|
|
4769
|
+
|
|
4770
|
+
.crewlet-brand-chip__image {
|
|
4771
|
+
display: block;
|
|
4772
|
+
width: 100%;
|
|
4773
|
+
height: 100%;
|
|
4774
|
+
object-fit: contain;
|
|
4775
|
+
}
|
|
4776
|
+
|
|
4777
|
+
.crewlet-brand-chip__label {
|
|
4778
|
+
min-width: 0;
|
|
4779
|
+
overflow: hidden;
|
|
4780
|
+
text-overflow: ellipsis;
|
|
4781
|
+
white-space: nowrap;
|
|
4782
|
+
}
|
|
4783
|
+
|
|
4784
|
+
.crewlet-brand-chip__chevron {
|
|
4785
|
+
display: inline-flex;
|
|
4786
|
+
flex: none;
|
|
4787
|
+
color: var(--color-text-tertiary);
|
|
4788
|
+
}
|
|
4789
|
+
|
|
4790
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4791
|
+
.crewlet-brand-chip {
|
|
4792
|
+
transition: none;
|
|
4793
|
+
}
|
|
4794
|
+
}
|
|
4795
|
+
|
|
4796
|
+
|
|
4620
4797
|
/* BrandLockup-JKGXFCZF.css */
|
|
4621
4798
|
/*
|
|
4622
4799
|
* The brand lockup at the head of the rail.
|
|
@@ -4734,6 +4911,226 @@ button.crewlet-avatar-picker:hover .crewlet-avatar-picker__pip {
|
|
|
4734
4911
|
}
|
|
4735
4912
|
|
|
4736
4913
|
|
|
4914
|
+
/* BrandSample-G5V7GKR2.css */
|
|
4915
|
+
/*
|
|
4916
|
+
* A company's brand, drawn: a doc's opening or a title slide, in a 16:9 frame
|
|
4917
|
+
* that sets every length against its own width, so one drawing reads at a
|
|
4918
|
+
* gallery cover's size and at a preview's.
|
|
4919
|
+
*
|
|
4920
|
+
* It paints with the public tokens, which the sample's BrandScope (pinned to
|
|
4921
|
+
* the sample's mode) sets from the brand through the artifact kit's own
|
|
4922
|
+
* mapping: the ground, the text, the accent, the highlight and the two faces,
|
|
4923
|
+
* and the quiet line in the tertiary text of the sample's pinned mode.
|
|
4924
|
+
*/
|
|
4925
|
+
.crewlet-brand-sample {
|
|
4926
|
+
/* The frame's corner. A host drawing the sample edge to edge in a cover
|
|
4927
|
+
that clips its own corners sets it to its own. */
|
|
4928
|
+
--crewlet-brand-sample-radius: var(--radius-lg);
|
|
4929
|
+
|
|
4930
|
+
/* THE SAMPLE IS ITS OWN CONTAINER, so `cqi` inside it is its own width. */
|
|
4931
|
+
container-type: inline-size;
|
|
4932
|
+
position: relative;
|
|
4933
|
+
display: block;
|
|
4934
|
+
width: 100%;
|
|
4935
|
+
aspect-ratio: 16 / 9;
|
|
4936
|
+
overflow: hidden;
|
|
4937
|
+
border-radius: var(--crewlet-brand-sample-radius);
|
|
4938
|
+
background: var(--color-surface-background);
|
|
4939
|
+
/* AN EDGE OF ITS OWN, inside the frame, so a ground that matches the page
|
|
4940
|
+
is still a frame. */
|
|
4941
|
+
box-shadow: inset 0 0 0 1px var(--color-border-hover);
|
|
4942
|
+
color: var(--color-text-primary);
|
|
4943
|
+
font-family: var(--font-family-sans);
|
|
4944
|
+
line-height: var(--font-line-height-snug);
|
|
4945
|
+
user-select: none;
|
|
4946
|
+
}
|
|
4947
|
+
|
|
4948
|
+
.crewlet-brand-sample__page,
|
|
4949
|
+
.crewlet-brand-sample__slide {
|
|
4950
|
+
position: absolute;
|
|
4951
|
+
inset: 0;
|
|
4952
|
+
display: flex;
|
|
4953
|
+
flex-direction: column;
|
|
4954
|
+
box-sizing: border-box;
|
|
4955
|
+
min-width: 0;
|
|
4956
|
+
}
|
|
4957
|
+
|
|
4958
|
+
/* ---- the doc's opening ---- */
|
|
4959
|
+
|
|
4960
|
+
.crewlet-brand-sample__page {
|
|
4961
|
+
align-items: flex-start;
|
|
4962
|
+
gap: 2.4cqi;
|
|
4963
|
+
padding: 6cqi 7cqi;
|
|
4964
|
+
}
|
|
4965
|
+
|
|
4966
|
+
.crewlet-brand-sample__brand {
|
|
4967
|
+
display: flex;
|
|
4968
|
+
align-items: center;
|
|
4969
|
+
height: 6cqi;
|
|
4970
|
+
max-width: 40%;
|
|
4971
|
+
margin-bottom: 1.6cqi;
|
|
4972
|
+
}
|
|
4973
|
+
|
|
4974
|
+
.crewlet-brand-sample__logo {
|
|
4975
|
+
display: block;
|
|
4976
|
+
max-width: 100%;
|
|
4977
|
+
max-height: 100%;
|
|
4978
|
+
object-fit: contain;
|
|
4979
|
+
}
|
|
4980
|
+
|
|
4981
|
+
/* WHERE THERE IS NO LOGO, the company's name in the heading face. */
|
|
4982
|
+
.crewlet-brand-sample__wordmark {
|
|
4983
|
+
overflow: hidden;
|
|
4984
|
+
font-family: var(--font-family-display);
|
|
4985
|
+
font-size: 3.4cqi;
|
|
4986
|
+
font-weight: var(--font-weight-semibold);
|
|
4987
|
+
text-overflow: ellipsis;
|
|
4988
|
+
white-space: nowrap;
|
|
4989
|
+
}
|
|
4990
|
+
|
|
4991
|
+
.crewlet-brand-sample__heading {
|
|
4992
|
+
max-width: 100%;
|
|
4993
|
+
overflow: hidden;
|
|
4994
|
+
font-family: var(--font-family-display);
|
|
4995
|
+
font-size: 6cqi;
|
|
4996
|
+
font-weight: var(--font-weight-semibold);
|
|
4997
|
+
letter-spacing: var(--font-letter-spacing-tight);
|
|
4998
|
+
line-height: 1.1;
|
|
4999
|
+
text-overflow: ellipsis;
|
|
5000
|
+
white-space: nowrap;
|
|
5001
|
+
}
|
|
5002
|
+
|
|
5003
|
+
/* THE ACCENT RULE under the heading, in the brand's main colour for the mode. */
|
|
5004
|
+
.crewlet-brand-sample__rule {
|
|
5005
|
+
display: block;
|
|
5006
|
+
width: 12cqi;
|
|
5007
|
+
height: 0.8cqi;
|
|
5008
|
+
border-radius: var(--radius-pill);
|
|
5009
|
+
background: var(--color-brand-accent);
|
|
5010
|
+
}
|
|
5011
|
+
|
|
5012
|
+
.crewlet-brand-sample__body {
|
|
5013
|
+
max-width: 82%;
|
|
5014
|
+
font-size: 2.8cqi;
|
|
5015
|
+
line-height: var(--font-line-height-normal);
|
|
5016
|
+
}
|
|
5017
|
+
|
|
5018
|
+
/* A LINK, DRAWN: the accent ink and its underline, and nothing to follow. */
|
|
5019
|
+
.crewlet-brand-sample__link {
|
|
5020
|
+
color: var(--color-brand-accent);
|
|
5021
|
+
text-decoration: underline;
|
|
5022
|
+
text-decoration-thickness: 0.2cqi;
|
|
5023
|
+
text-underline-offset: 0.5cqi;
|
|
5024
|
+
}
|
|
5025
|
+
|
|
5026
|
+
.crewlet-brand-sample__byline {
|
|
5027
|
+
margin-top: auto;
|
|
5028
|
+
color: var(--color-text-tertiary);
|
|
5029
|
+
font-size: 2.2cqi;
|
|
5030
|
+
}
|
|
5031
|
+
|
|
5032
|
+
/* ---- the title slide ---- */
|
|
5033
|
+
|
|
5034
|
+
.crewlet-brand-sample__slide {
|
|
5035
|
+
justify-content: flex-end;
|
|
5036
|
+
gap: 2.4cqi;
|
|
5037
|
+
padding: 6.5cqi 7cqi;
|
|
5038
|
+
}
|
|
5039
|
+
|
|
5040
|
+
/* The mark in the slide's top corner, square, at the slide's own scale. */
|
|
5041
|
+
.crewlet-brand-sample__slide .crewlet-brand-sample__brand {
|
|
5042
|
+
position: absolute;
|
|
5043
|
+
top: 6.5cqi;
|
|
5044
|
+
left: 7cqi;
|
|
5045
|
+
height: 7cqi;
|
|
5046
|
+
max-width: 30%;
|
|
5047
|
+
margin: 0;
|
|
5048
|
+
}
|
|
5049
|
+
|
|
5050
|
+
.crewlet-brand-sample__logo--mark {
|
|
5051
|
+
width: 7cqi;
|
|
5052
|
+
height: 7cqi;
|
|
5053
|
+
}
|
|
5054
|
+
|
|
5055
|
+
/* THE ACCENT BAR: the brand's main colour, then its second where it has one. */
|
|
5056
|
+
.crewlet-brand-sample__bar {
|
|
5057
|
+
display: flex;
|
|
5058
|
+
gap: 0.8cqi;
|
|
5059
|
+
height: 1cqi;
|
|
5060
|
+
}
|
|
5061
|
+
|
|
5062
|
+
.crewlet-brand-sample__bar-primary,
|
|
5063
|
+
.crewlet-brand-sample__bar-secondary {
|
|
5064
|
+
display: block;
|
|
5065
|
+
height: 100%;
|
|
5066
|
+
border-radius: var(--radius-pill);
|
|
5067
|
+
}
|
|
5068
|
+
|
|
5069
|
+
.crewlet-brand-sample__bar-primary {
|
|
5070
|
+
width: 12cqi;
|
|
5071
|
+
background: var(--color-brand-accent);
|
|
5072
|
+
}
|
|
5073
|
+
|
|
5074
|
+
.crewlet-brand-sample__bar-secondary {
|
|
5075
|
+
width: 4cqi;
|
|
5076
|
+
background: var(--color-brand-highlight);
|
|
5077
|
+
}
|
|
5078
|
+
|
|
5079
|
+
/* TWO LINES AT MOST, set large: a title slide's heading. */
|
|
5080
|
+
.crewlet-brand-sample__heading--slide {
|
|
5081
|
+
display: -webkit-box;
|
|
5082
|
+
max-width: 48%;
|
|
5083
|
+
font-size: 7.5cqi;
|
|
5084
|
+
line-height: 1.05;
|
|
5085
|
+
white-space: normal;
|
|
5086
|
+
-webkit-box-orient: vertical;
|
|
5087
|
+
-webkit-line-clamp: 2;
|
|
5088
|
+
}
|
|
5089
|
+
|
|
5090
|
+
.crewlet-brand-sample__footer {
|
|
5091
|
+
margin-top: 3cqi;
|
|
5092
|
+
overflow: hidden;
|
|
5093
|
+
color: var(--color-text-tertiary);
|
|
5094
|
+
font-size: 2cqi;
|
|
5095
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
5096
|
+
text-overflow: ellipsis;
|
|
5097
|
+
text-transform: uppercase;
|
|
5098
|
+
white-space: nowrap;
|
|
5099
|
+
}
|
|
5100
|
+
|
|
5101
|
+
|
|
5102
|
+
/* BrandScope-H2KZHGT7.css */
|
|
5103
|
+
/*
|
|
5104
|
+
* A region in a company's brand. The mapping itself (the captured page values
|
|
5105
|
+
* on `.crewlet-brand-scope`, the brand's steps and public tokens on
|
|
5106
|
+
* `.crewlet-brand-scope__layer`) is @crewlethq/tokens' css/brand-scope,
|
|
5107
|
+
* imported beside this file and built from the one source the artifact kit's
|
|
5108
|
+
* brand layer is built from. This file is only the two elements' own shape.
|
|
5109
|
+
*/
|
|
5110
|
+
|
|
5111
|
+
/* The outer element carries the inputs and the capture, and draws no box. */
|
|
5112
|
+
.crewlet-brand-scope {
|
|
5113
|
+
display: contents;
|
|
5114
|
+
}
|
|
5115
|
+
|
|
5116
|
+
/* THE BOX, with the body text and face of the brand, so plain text inside it
|
|
5117
|
+
follows the brand without a rule of its own. It paints no ground. */
|
|
5118
|
+
.crewlet-brand-scope__layer {
|
|
5119
|
+
color: var(--color-text-primary);
|
|
5120
|
+
font-family: var(--font-family-sans);
|
|
5121
|
+
}
|
|
5122
|
+
|
|
5123
|
+
/* A PINNED MODE is that mode for the platform's own drawing too: a native
|
|
5124
|
+
control or a scrollbar inside a light preview on a dark page is light. */
|
|
5125
|
+
.crewlet-brand-scope[data-mode='light'] > .crewlet-brand-scope__layer {
|
|
5126
|
+
color-scheme: light;
|
|
5127
|
+
}
|
|
5128
|
+
|
|
5129
|
+
.crewlet-brand-scope[data-mode='dark'] > .crewlet-brand-scope__layer {
|
|
5130
|
+
color-scheme: dark;
|
|
5131
|
+
}
|
|
5132
|
+
|
|
5133
|
+
|
|
4737
5134
|
/* Breadcrumb-YMWVM3SV.css */
|
|
4738
5135
|
/*
|
|
4739
5136
|
* The trail in a top bar.
|
|
@@ -8445,7 +8842,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
8445
8842
|
}
|
|
8446
8843
|
|
|
8447
8844
|
|
|
8448
|
-
/* Checkbox-
|
|
8845
|
+
/* Checkbox-MB22OW6P.css */
|
|
8449
8846
|
/*
|
|
8450
8847
|
* Checkbox: a box, its label and its consequence as one target.
|
|
8451
8848
|
*
|
|
@@ -8574,6 +8971,24 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
8574
8971
|
font-size: var(--font-size-compact);
|
|
8575
8972
|
}
|
|
8576
8973
|
|
|
8974
|
+
/*
|
|
8975
|
+
* THE BARE BOX (`hideLabel`): no words beside it, so the row's floor and its
|
|
8976
|
+
* gap go, and the box is centred on a square the pointer floor allows. The
|
|
8977
|
+
* label is still its name, said rather than printed.
|
|
8978
|
+
*/
|
|
8979
|
+
.crewlet-checkbox--bare {
|
|
8980
|
+
display: inline-flex;
|
|
8981
|
+
align-items: center;
|
|
8982
|
+
justify-content: center;
|
|
8983
|
+
gap: 0;
|
|
8984
|
+
min-width: var(--size-target-min);
|
|
8985
|
+
min-height: var(--size-target-min);
|
|
8986
|
+
}
|
|
8987
|
+
|
|
8988
|
+
.crewlet-checkbox--bare .crewlet-checkbox__control {
|
|
8989
|
+
margin: 0;
|
|
8990
|
+
}
|
|
8991
|
+
|
|
8577
8992
|
.crewlet-checkbox.is-disabled,
|
|
8578
8993
|
.crewlet-checkbox.is-disabled .crewlet-checkbox__control {
|
|
8579
8994
|
cursor: not-allowed;
|
|
@@ -9158,7 +9573,164 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
9158
9573
|
}
|
|
9159
9574
|
|
|
9160
9575
|
|
|
9161
|
-
/*
|
|
9576
|
+
/* ColorField-2OIOWT3Z.css */
|
|
9577
|
+
/*
|
|
9578
|
+
* A colour a person chooses: the swatch that opens the platform's picker,
|
|
9579
|
+
* beside the hex field. The swatch's fill is the one value that is not a
|
|
9580
|
+
* token, and it arrives through `--crewlet-color-field-value` only after it
|
|
9581
|
+
* has passed `#rrggbb`.
|
|
9582
|
+
*/
|
|
9583
|
+
.crewlet-color-field__row {
|
|
9584
|
+
display: flex;
|
|
9585
|
+
align-items: center;
|
|
9586
|
+
gap: var(--spacing-2);
|
|
9587
|
+
min-width: 0;
|
|
9588
|
+
}
|
|
9589
|
+
|
|
9590
|
+
/*
|
|
9591
|
+
* THE SWATCH IS THE PICKER: the platform's colour input lies over the chip,
|
|
9592
|
+
* transparent, so a press anywhere on the chip opens it and the chip is what
|
|
9593
|
+
* the reader sees, the same in every browser. Its edge is its own, so a
|
|
9594
|
+
* colour that matches the page is still a chip.
|
|
9595
|
+
*/
|
|
9596
|
+
.crewlet-color-field__swatch {
|
|
9597
|
+
/* The hatch of no colour, as a colour swatch draws it. */
|
|
9598
|
+
--crewlet-color-field-hatch: repeating-linear-gradient(
|
|
9599
|
+
-45deg,
|
|
9600
|
+
var(--color-border-hatch) 0 1px,
|
|
9601
|
+
transparent 1px var(--spacing-2)
|
|
9602
|
+
);
|
|
9603
|
+
|
|
9604
|
+
position: relative;
|
|
9605
|
+
display: inline-flex;
|
|
9606
|
+
flex: none;
|
|
9607
|
+
width: var(--size-control-md);
|
|
9608
|
+
height: var(--size-control-md);
|
|
9609
|
+
box-sizing: border-box;
|
|
9610
|
+
border-radius: var(--radius-md);
|
|
9611
|
+
background: var(--crewlet-color-field-value, var(--color-surface-inset));
|
|
9612
|
+
box-shadow: inset 0 0 0 1px var(--color-border-field);
|
|
9613
|
+
}
|
|
9614
|
+
|
|
9615
|
+
.crewlet-color-field__swatch.is-empty {
|
|
9616
|
+
background: var(--crewlet-color-field-hatch);
|
|
9617
|
+
}
|
|
9618
|
+
|
|
9619
|
+
.crewlet-color-field__swatch.is-disabled {
|
|
9620
|
+
opacity: 0.6;
|
|
9621
|
+
}
|
|
9622
|
+
|
|
9623
|
+
.crewlet-color-field__picker {
|
|
9624
|
+
position: absolute;
|
|
9625
|
+
inset: 0;
|
|
9626
|
+
width: 100%;
|
|
9627
|
+
height: 100%;
|
|
9628
|
+
margin: 0;
|
|
9629
|
+
padding: 0;
|
|
9630
|
+
border: 0;
|
|
9631
|
+
opacity: 0;
|
|
9632
|
+
cursor: pointer;
|
|
9633
|
+
}
|
|
9634
|
+
|
|
9635
|
+
.crewlet-color-field__picker:disabled {
|
|
9636
|
+
cursor: not-allowed;
|
|
9637
|
+
}
|
|
9638
|
+
|
|
9639
|
+
/* THE RING IS THE CHIP'S: the input under it is transparent, so the ring a
|
|
9640
|
+
keyboard needs is drawn on what the reader sees. */
|
|
9641
|
+
.crewlet-color-field__swatch:has(.crewlet-color-field__picker:focus-visible) {
|
|
9642
|
+
outline: 2px solid var(--color-focus);
|
|
9643
|
+
outline-offset: 0;
|
|
9644
|
+
}
|
|
9645
|
+
|
|
9646
|
+
|
|
9647
|
+
/* ColorSwatch-DNMUFHNS.css */
|
|
9648
|
+
/*
|
|
9649
|
+
* One colour of a brand: a chip of it over its role and its value. The chip's
|
|
9650
|
+
* fill is the one value that is not a token, and it arrives through
|
|
9651
|
+
* `--crewlet-color-swatch-value` only after it has passed `#rrggbb`. Every
|
|
9652
|
+
* other colour here is a token.
|
|
9653
|
+
*/
|
|
9654
|
+
.crewlet-color-swatch {
|
|
9655
|
+
/* The hatch of no colour, as one value: the same lines an arranged page's
|
|
9656
|
+
ground draws, so "nothing here" reads one way across the package. */
|
|
9657
|
+
--crewlet-color-swatch-hatch: repeating-linear-gradient(
|
|
9658
|
+
-45deg,
|
|
9659
|
+
var(--color-border-hatch) 0 1px,
|
|
9660
|
+
transparent 1px var(--spacing-2)
|
|
9661
|
+
);
|
|
9662
|
+
|
|
9663
|
+
display: flex;
|
|
9664
|
+
flex-direction: column;
|
|
9665
|
+
gap: var(--spacing-2);
|
|
9666
|
+
min-width: 0;
|
|
9667
|
+
}
|
|
9668
|
+
|
|
9669
|
+
/* THE CHIP HAS AN EDGE OF ITS OWN, so a colour that matches the page is
|
|
9670
|
+
still a chip rather than a gap. */
|
|
9671
|
+
.crewlet-color-swatch__chip {
|
|
9672
|
+
display: block;
|
|
9673
|
+
width: 100%;
|
|
9674
|
+
height: var(--size-row-lg);
|
|
9675
|
+
box-sizing: border-box;
|
|
9676
|
+
border-radius: var(--radius-md);
|
|
9677
|
+
background: var(--crewlet-color-swatch-value, var(--color-surface-inset));
|
|
9678
|
+
box-shadow: inset 0 0 0 1px var(--color-border-hover);
|
|
9679
|
+
}
|
|
9680
|
+
|
|
9681
|
+
.crewlet-color-swatch__chip.is-empty {
|
|
9682
|
+
background: var(--crewlet-color-swatch-hatch);
|
|
9683
|
+
}
|
|
9684
|
+
|
|
9685
|
+
.crewlet-color-swatch__words {
|
|
9686
|
+
display: flex;
|
|
9687
|
+
flex-direction: column;
|
|
9688
|
+
gap: 2px;
|
|
9689
|
+
min-width: 0;
|
|
9690
|
+
}
|
|
9691
|
+
|
|
9692
|
+
.crewlet-color-swatch__name {
|
|
9693
|
+
overflow: hidden;
|
|
9694
|
+
color: var(--color-text-primary);
|
|
9695
|
+
font-size: var(--font-size-sm);
|
|
9696
|
+
font-weight: var(--font-weight-medium);
|
|
9697
|
+
text-overflow: ellipsis;
|
|
9698
|
+
white-space: nowrap;
|
|
9699
|
+
}
|
|
9700
|
+
|
|
9701
|
+
.crewlet-color-swatch__description {
|
|
9702
|
+
color: var(--color-text-tertiary);
|
|
9703
|
+
font-size: var(--font-size-xs);
|
|
9704
|
+
}
|
|
9705
|
+
|
|
9706
|
+
.crewlet-color-swatch__value--plain {
|
|
9707
|
+
color: var(--color-text-secondary);
|
|
9708
|
+
font-family: var(--font-family-mono);
|
|
9709
|
+
font-size: var(--font-size-xs);
|
|
9710
|
+
}
|
|
9711
|
+
|
|
9712
|
+
.crewlet-color-swatch__empty {
|
|
9713
|
+
color: var(--color-text-tertiary);
|
|
9714
|
+
font-size: var(--font-size-xs);
|
|
9715
|
+
}
|
|
9716
|
+
|
|
9717
|
+
/* ---- sm: a chip beside the words, for a dense list ---- */
|
|
9718
|
+
|
|
9719
|
+
.crewlet-color-swatch--sm {
|
|
9720
|
+
flex-direction: row;
|
|
9721
|
+
align-items: center;
|
|
9722
|
+
gap: var(--spacing-2);
|
|
9723
|
+
}
|
|
9724
|
+
|
|
9725
|
+
.crewlet-color-swatch--sm .crewlet-color-swatch__chip {
|
|
9726
|
+
flex: none;
|
|
9727
|
+
width: var(--size-control-sm);
|
|
9728
|
+
height: var(--size-control-sm);
|
|
9729
|
+
border-radius: var(--radius-sm);
|
|
9730
|
+
}
|
|
9731
|
+
|
|
9732
|
+
|
|
9733
|
+
/* Combobox-GBCWXWEB.css */
|
|
9162
9734
|
/*
|
|
9163
9735
|
* Combobox: a field that offers completions.
|
|
9164
9736
|
*
|
|
@@ -9241,6 +9813,88 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
9241
9813
|
cursor: not-allowed;
|
|
9242
9814
|
}
|
|
9243
9815
|
|
|
9816
|
+
/* ---- inline (`inline`): the list is the surface's body ------------------
|
|
9817
|
+
Always on screen, in the flow under the field, at ONE HEIGHT: the box is
|
|
9818
|
+
`rows` one-line rows tall (`--crewlet-combobox-rows`, set by the component)
|
|
9819
|
+
whatever the filter leaves in it, so nothing under it moves as somebody
|
|
9820
|
+
types, and it scrolls past that. It sits on the surface's own ground inside
|
|
9821
|
+
a hairline, because it is part of the surface rather than a panel over it. */
|
|
9822
|
+
.crewlet-combobox--inline {
|
|
9823
|
+
display: flex;
|
|
9824
|
+
flex-direction: column;
|
|
9825
|
+
gap: var(--spacing-2);
|
|
9826
|
+
}
|
|
9827
|
+
|
|
9828
|
+
.crewlet-combobox__list {
|
|
9829
|
+
/* ONE ROW IS ONE ROW STEP, exactly: a row's own height is held to it
|
|
9830
|
+
below, so a label that draws a glyph beside its words is no taller than
|
|
9831
|
+
one that does not, and `rows` rows fill the box to the pixel. */
|
|
9832
|
+
--crewlet-combobox-row: var(--size-row-md);
|
|
9833
|
+
--crewlet-listbox-gap: 1px;
|
|
9834
|
+
|
|
9835
|
+
height: calc(
|
|
9836
|
+
var(--crewlet-combobox-rows) * var(--crewlet-combobox-row) + (var(--crewlet-combobox-rows) - 1) * var(--crewlet-listbox-gap) +
|
|
9837
|
+
var(--spacing-1) * 2 + 2px
|
|
9838
|
+
);
|
|
9839
|
+
box-sizing: border-box;
|
|
9840
|
+
overflow: hidden;
|
|
9841
|
+
border: 1px solid var(--color-border-default);
|
|
9842
|
+
border-radius: var(--radius-md);
|
|
9843
|
+
}
|
|
9844
|
+
|
|
9845
|
+
.crewlet-combobox__options {
|
|
9846
|
+
display: flex;
|
|
9847
|
+
flex-direction: column;
|
|
9848
|
+
gap: var(--crewlet-listbox-gap);
|
|
9849
|
+
height: 100%;
|
|
9850
|
+
box-sizing: border-box;
|
|
9851
|
+
padding: var(--spacing-1);
|
|
9852
|
+
overflow-y: auto;
|
|
9853
|
+
overscroll-behavior: contain;
|
|
9854
|
+
}
|
|
9855
|
+
|
|
9856
|
+
.crewlet-combobox__list.is-mono .crewlet-combobox__label {
|
|
9857
|
+
font-family: var(--font-family-mono);
|
|
9858
|
+
font-size: var(--font-size-compact);
|
|
9859
|
+
}
|
|
9860
|
+
|
|
9861
|
+
.crewlet-combobox__options .crewlet-listbox__option {
|
|
9862
|
+
height: var(--crewlet-combobox-row);
|
|
9863
|
+
min-height: 0;
|
|
9864
|
+
padding-block: 0;
|
|
9865
|
+
border-radius: var(--radius-xs);
|
|
9866
|
+
}
|
|
9867
|
+
|
|
9868
|
+
/* The row the arrows or the pointer are on, in the hover tint, as the popup
|
|
9869
|
+
draws it. Scoped to the list for the same reason as the panel's. */
|
|
9870
|
+
.crewlet-combobox__options .crewlet-listbox__option.is-highlight,
|
|
9871
|
+
.crewlet-combobox__options .crewlet-listbox__option:hover {
|
|
9872
|
+
background: var(--color-surface-hover);
|
|
9873
|
+
color: var(--color-text-primary);
|
|
9874
|
+
}
|
|
9875
|
+
|
|
9876
|
+
/*
|
|
9877
|
+
* THE CHOSEN ROW (`chosen`), as every chosen option in the package is drawn:
|
|
9878
|
+
* the selected fill, never the accent, with a tick in the accent's ink so the
|
|
9879
|
+
* choice never rests on the tint. It keeps its fill under the arrows too.
|
|
9880
|
+
*/
|
|
9881
|
+
.crewlet-combobox__options .crewlet-listbox__option[aria-selected='true'] {
|
|
9882
|
+
background: var(--color-surface-selected);
|
|
9883
|
+
color: var(--color-text-primary);
|
|
9884
|
+
}
|
|
9885
|
+
|
|
9886
|
+
.crewlet-combobox__check {
|
|
9887
|
+
display: inline-flex;
|
|
9888
|
+
flex: none;
|
|
9889
|
+
color: var(--color-brand-accent-ink);
|
|
9890
|
+
}
|
|
9891
|
+
|
|
9892
|
+
.crewlet-combobox__options .crewlet-listbox__option.is-disabled {
|
|
9893
|
+
background: transparent;
|
|
9894
|
+
color: var(--color-text-tertiary);
|
|
9895
|
+
cursor: not-allowed;
|
|
9896
|
+
}
|
|
9897
|
+
|
|
9244
9898
|
|
|
9245
9899
|
/* CommandPalette-TOZYLWLE.css */
|
|
9246
9900
|
/*
|
|
@@ -9820,30 +10474,80 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
9820
10474
|
max-width: 1440px;
|
|
9821
10475
|
}
|
|
9822
10476
|
|
|
9823
|
-
/*
|
|
9824
|
-
* The console width. It reads the content-max token rather than restating the
|
|
9825
|
-
* number, because the shell and this container have to agree about where a
|
|
9826
|
-
* pane stops or a screen's own header sits at a different width from the
|
|
9827
|
-
* screen under it.
|
|
9828
|
-
*/
|
|
9829
|
-
.crewlet-container--2xl {
|
|
9830
|
-
max-width: var(--size-content-max);
|
|
10477
|
+
/*
|
|
10478
|
+
* The console width. It reads the content-max token rather than restating the
|
|
10479
|
+
* number, because the shell and this container have to agree about where a
|
|
10480
|
+
* pane stops or a screen's own header sits at a different width from the
|
|
10481
|
+
* screen under it.
|
|
10482
|
+
*/
|
|
10483
|
+
.crewlet-container--2xl {
|
|
10484
|
+
max-width: var(--size-content-max);
|
|
10485
|
+
}
|
|
10486
|
+
|
|
10487
|
+
/*
|
|
10488
|
+
* No measure, and the gutter kept. A canvas, a wide grid or a table that
|
|
10489
|
+
* genuinely wants the viewport still needs its content off the window edge.
|
|
10490
|
+
*/
|
|
10491
|
+
.crewlet-container--full {
|
|
10492
|
+
max-width: none;
|
|
10493
|
+
}
|
|
10494
|
+
|
|
10495
|
+
/* A PHONE'S GUTTER IS THE SHELL'S, 16px, the top bar's own inset: a narrower
|
|
10496
|
+
one stood a page's content left of the title over it. */
|
|
10497
|
+
@media (max-width: 480px) {
|
|
10498
|
+
.crewlet-container {
|
|
10499
|
+
padding-inline: var(--spacing-4);
|
|
10500
|
+
}
|
|
10501
|
+
}
|
|
10502
|
+
|
|
10503
|
+
|
|
10504
|
+
/* ContrastBadge-CBZPGG3G.css */
|
|
10505
|
+
/*
|
|
10506
|
+
* Whether one colour reads on another: a sample of the pair, the ratio and
|
|
10507
|
+
* the level. The sample's two colours are the only values here that are not
|
|
10508
|
+
* tokens, and they arrive through `--crewlet-contrast-badge-ink` and
|
|
10509
|
+
* `--crewlet-contrast-badge-ground` only once both have passed `#rrggbb`.
|
|
10510
|
+
*/
|
|
10511
|
+
.crewlet-contrast-badge {
|
|
10512
|
+
display: inline-flex;
|
|
10513
|
+
flex-wrap: wrap;
|
|
10514
|
+
align-items: center;
|
|
10515
|
+
gap: var(--spacing-2);
|
|
10516
|
+
min-width: 0;
|
|
10517
|
+
font-size: var(--font-size-xs);
|
|
10518
|
+
}
|
|
10519
|
+
|
|
10520
|
+
/* THE SAMPLE HAS AN EDGE OF ITS OWN, so a ground that matches the page is
|
|
10521
|
+
still a sample. */
|
|
10522
|
+
.crewlet-contrast-badge__sample {
|
|
10523
|
+
display: inline-flex;
|
|
10524
|
+
flex: none;
|
|
10525
|
+
align-items: center;
|
|
10526
|
+
justify-content: center;
|
|
10527
|
+
width: var(--size-control-sm);
|
|
10528
|
+
height: var(--size-control-sm);
|
|
10529
|
+
box-sizing: border-box;
|
|
10530
|
+
border-radius: var(--radius-sm);
|
|
10531
|
+
background: var(--crewlet-contrast-badge-ground, var(--color-surface-inset));
|
|
10532
|
+
box-shadow: inset 0 0 0 1px var(--color-border-hover);
|
|
10533
|
+
color: var(--crewlet-contrast-badge-ink, var(--color-text-tertiary));
|
|
10534
|
+
font-size: var(--font-size-xs);
|
|
10535
|
+
font-weight: var(--font-weight-semibold);
|
|
10536
|
+
line-height: 1;
|
|
10537
|
+
}
|
|
10538
|
+
|
|
10539
|
+
.crewlet-contrast-badge__label {
|
|
10540
|
+
color: var(--color-text-secondary);
|
|
9831
10541
|
}
|
|
9832
10542
|
|
|
9833
|
-
|
|
9834
|
-
|
|
9835
|
-
|
|
9836
|
-
|
|
9837
|
-
.crewlet-container--full {
|
|
9838
|
-
max-width: none;
|
|
10543
|
+
.crewlet-contrast-badge__ratio {
|
|
10544
|
+
color: var(--color-text-primary);
|
|
10545
|
+
font-family: var(--font-family-mono);
|
|
10546
|
+
font-variant-numeric: tabular-nums;
|
|
9839
10547
|
}
|
|
9840
10548
|
|
|
9841
|
-
|
|
9842
|
-
|
|
9843
|
-
@media (max-width: 480px) {
|
|
9844
|
-
.crewlet-container {
|
|
9845
|
-
padding-inline: var(--spacing-4);
|
|
9846
|
-
}
|
|
10549
|
+
.crewlet-contrast-badge__unmeasured {
|
|
10550
|
+
color: var(--color-text-tertiary);
|
|
9847
10551
|
}
|
|
9848
10552
|
|
|
9849
10553
|
|
|
@@ -10241,7 +10945,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
10241
10945
|
}
|
|
10242
10946
|
|
|
10243
10947
|
|
|
10244
|
-
/* DataGrid-
|
|
10948
|
+
/* DataGrid-VNGQESJA.css */
|
|
10245
10949
|
/*
|
|
10246
10950
|
* DataGrid: a list as columns, one track list on the grid.
|
|
10247
10951
|
*
|
|
@@ -10439,6 +11143,21 @@ button.crewlet-data-grid__row-link {
|
|
|
10439
11143
|
background: var(--color-brand-accent-soft);
|
|
10440
11144
|
}
|
|
10441
11145
|
|
|
11146
|
+
/*
|
|
11147
|
+
* PICKED FOR A BULK ACTION (`selection`), as every chosen option is drawn:
|
|
11148
|
+
* the selected fill, never the accent. One fill, so the hover overlay does not
|
|
11149
|
+
* stack on it, and its box says it as well.
|
|
11150
|
+
*/
|
|
11151
|
+
.crewlet-data-grid__row--picked,
|
|
11152
|
+
.crewlet-data-grid__row--picked:hover {
|
|
11153
|
+
background: var(--color-surface-selected);
|
|
11154
|
+
}
|
|
11155
|
+
|
|
11156
|
+
/* The selection box, centred in its track and standing above the row's link. */
|
|
11157
|
+
.crewlet-data-grid__select {
|
|
11158
|
+
display: inline-flex;
|
|
11159
|
+
}
|
|
11160
|
+
|
|
10442
11161
|
.crewlet-data-grid__row--cursor {
|
|
10443
11162
|
box-shadow: inset 2px 0 0 var(--color-brand-accent);
|
|
10444
11163
|
}
|
|
@@ -15686,6 +16405,240 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15686
16405
|
}
|
|
15687
16406
|
|
|
15688
16407
|
|
|
16408
|
+
/* FolderTile-FDT5Y63Z.css */
|
|
16409
|
+
/*
|
|
16410
|
+
* A folder in a gallery: a short tile on Card (no preview), the folder glyph
|
|
16411
|
+
* on a neutral tint over the name and one quiet line, and a More menu in the
|
|
16412
|
+
* top corner outside the link. `row` is the full width, 44px row a phone
|
|
16413
|
+
* takes, and a tile becomes one under the phone breakpoint.
|
|
16414
|
+
*
|
|
16415
|
+
* ON TOP OF CARD, so every rule that changes Card's own layout carries Card's
|
|
16416
|
+
* class too: the two sheets meet at equal weight and the bundle orders them by
|
|
16417
|
+
* file name, which puts Card's after this one.
|
|
16418
|
+
*/
|
|
16419
|
+
|
|
16420
|
+
/*
|
|
16421
|
+
* THE ARTIFACT CARD'S CORNER, so a folder tile and the cards below it read as
|
|
16422
|
+
* one gallery, and Card's own hover step (the hairline darkens, nothing
|
|
16423
|
+
* lifts). The chosen state is Card's (`selected`): the selected edge over the
|
|
16424
|
+
* selected fill.
|
|
16425
|
+
*/
|
|
16426
|
+
.crewlet-card.crewlet-folder-tile {
|
|
16427
|
+
/*
|
|
16428
|
+
* THE TWO SHAPES ARE ONE LAYOUT AT TWO SIZES, so the row (and a tile under
|
|
16429
|
+
* the phone breakpoint) restates these and nothing else.
|
|
16430
|
+
*/
|
|
16431
|
+
--crewlet-folder-tile-radius: var(--radius-xl);
|
|
16432
|
+
--crewlet-folder-tile-gap: var(--spacing-3);
|
|
16433
|
+
--crewlet-folder-tile-pad-block: var(--spacing-4);
|
|
16434
|
+
--crewlet-folder-tile-pad-inline: var(--spacing-4);
|
|
16435
|
+
--crewlet-folder-tile-floor: auto;
|
|
16436
|
+
--crewlet-folder-tile-glyph: 40px;
|
|
16437
|
+
--crewlet-folder-tile-glyph-radius: var(--radius-md);
|
|
16438
|
+
--crewlet-folder-tile-name: var(--font-size-md);
|
|
16439
|
+
--crewlet-folder-tile-facts: var(--font-size-sm);
|
|
16440
|
+
--crewlet-folder-tile-actions-inset: var(--spacing-3);
|
|
16441
|
+
/*
|
|
16442
|
+
* A TILE STACKS: the glyph on top with the More menu level with it in the
|
|
16443
|
+
* other corner, then the name and the facts the full width of the tile,
|
|
16444
|
+
* where a gallery four across has room for "Everyone · 12 artifacts · 2
|
|
16445
|
+
* folders". A row is one line of glyph and words with the menu centred on
|
|
16446
|
+
* it, and only the row gives the menu room.
|
|
16447
|
+
*/
|
|
16448
|
+
--crewlet-folder-tile-direction: column;
|
|
16449
|
+
--crewlet-folder-tile-align: flex-start;
|
|
16450
|
+
--crewlet-folder-tile-actions-top: calc(
|
|
16451
|
+
var(--crewlet-folder-tile-pad-block) + (var(--crewlet-folder-tile-glyph) - var(--size-control-sm)) / 2
|
|
16452
|
+
);
|
|
16453
|
+
--crewlet-folder-tile-actions-shift: 0;
|
|
16454
|
+
--crewlet-folder-tile-reserve-link: 0px;
|
|
16455
|
+
|
|
16456
|
+
flex-direction: row;
|
|
16457
|
+
align-items: stretch;
|
|
16458
|
+
min-width: 0;
|
|
16459
|
+
border-radius: var(--crewlet-folder-tile-radius);
|
|
16460
|
+
}
|
|
16461
|
+
|
|
16462
|
+
/* ---- the row: a phone's, full width at 44px ---- */
|
|
16463
|
+
|
|
16464
|
+
.crewlet-card.crewlet-folder-tile--row {
|
|
16465
|
+
--crewlet-folder-tile-radius: var(--radius-lg);
|
|
16466
|
+
--crewlet-folder-tile-gap: var(--spacing-2);
|
|
16467
|
+
--crewlet-folder-tile-pad-block: var(--spacing-1);
|
|
16468
|
+
--crewlet-folder-tile-pad-inline: var(--spacing-3);
|
|
16469
|
+
--crewlet-folder-tile-floor: var(--size-control-lg);
|
|
16470
|
+
--crewlet-folder-tile-glyph: 28px;
|
|
16471
|
+
--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);
|
|
16474
|
+
--crewlet-folder-tile-actions-inset: var(--spacing-2);
|
|
16475
|
+
--crewlet-folder-tile-direction: row;
|
|
16476
|
+
--crewlet-folder-tile-align: center;
|
|
16477
|
+
--crewlet-folder-tile-actions-top: 50%;
|
|
16478
|
+
--crewlet-folder-tile-actions-shift: -50%;
|
|
16479
|
+
--crewlet-folder-tile-reserve-link: calc(var(--size-control-sm) + var(--spacing-1));
|
|
16480
|
+
}
|
|
16481
|
+
|
|
16482
|
+
/* UNDER THE PHONE BREAKPOINT A TILE IS THE ROW, strictly under, as the
|
|
16483
|
+
package switches there everywhere else. */
|
|
16484
|
+
@media (width < 640px) {
|
|
16485
|
+
.crewlet-card.crewlet-folder-tile--tile {
|
|
16486
|
+
--crewlet-folder-tile-radius: var(--radius-lg);
|
|
16487
|
+
--crewlet-folder-tile-gap: var(--spacing-2);
|
|
16488
|
+
--crewlet-folder-tile-pad-block: var(--spacing-1);
|
|
16489
|
+
--crewlet-folder-tile-pad-inline: var(--spacing-3);
|
|
16490
|
+
--crewlet-folder-tile-floor: var(--size-control-lg);
|
|
16491
|
+
--crewlet-folder-tile-glyph: 28px;
|
|
16492
|
+
--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);
|
|
16495
|
+
--crewlet-folder-tile-actions-inset: var(--spacing-2);
|
|
16496
|
+
--crewlet-folder-tile-direction: row;
|
|
16497
|
+
--crewlet-folder-tile-align: center;
|
|
16498
|
+
--crewlet-folder-tile-actions-top: 50%;
|
|
16499
|
+
--crewlet-folder-tile-actions-shift: -50%;
|
|
16500
|
+
--crewlet-folder-tile-reserve-link: calc(var(--size-control-sm) + var(--spacing-1));
|
|
16501
|
+
}
|
|
16502
|
+
}
|
|
16503
|
+
|
|
16504
|
+
/*
|
|
16505
|
+
* SOMETHING HELD OVER IT WOULD LAND IN IT: the accent edge over the accent's
|
|
16506
|
+
* soft fill, the same pair a file drop target takes while files are over it,
|
|
16507
|
+
* so "let go here" reads one way across the package.
|
|
16508
|
+
*/
|
|
16509
|
+
.crewlet-card.crewlet-folder-tile.is-drop-target {
|
|
16510
|
+
border-color: var(--color-brand-accent);
|
|
16511
|
+
background-color: var(--color-brand-accent-soft);
|
|
16512
|
+
}
|
|
16513
|
+
|
|
16514
|
+
.crewlet-card.crewlet-folder-tile:has(.crewlet-folder-tile__link:focus-visible) {
|
|
16515
|
+
outline: 2px solid var(--color-focus);
|
|
16516
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
16517
|
+
}
|
|
16518
|
+
|
|
16519
|
+
/* THE LINK IS THE TILE: it fills it, and the ring is drawn on the tile. */
|
|
16520
|
+
.crewlet-folder-tile__link,
|
|
16521
|
+
.crewlet-folder-tile__link:hover {
|
|
16522
|
+
text-decoration: none;
|
|
16523
|
+
}
|
|
16524
|
+
|
|
16525
|
+
.crewlet-folder-tile__link {
|
|
16526
|
+
display: flex;
|
|
16527
|
+
flex: 1 1 auto;
|
|
16528
|
+
flex-direction: var(--crewlet-folder-tile-direction);
|
|
16529
|
+
align-items: var(--crewlet-folder-tile-align);
|
|
16530
|
+
gap: var(--crewlet-folder-tile-gap);
|
|
16531
|
+
min-width: 0;
|
|
16532
|
+
min-height: var(--crewlet-folder-tile-floor);
|
|
16533
|
+
padding: var(--crewlet-folder-tile-pad-block) var(--crewlet-folder-tile-pad-inline);
|
|
16534
|
+
border-radius: inherit;
|
|
16535
|
+
color: inherit;
|
|
16536
|
+
outline: none;
|
|
16537
|
+
}
|
|
16538
|
+
|
|
16539
|
+
/* Room for the More menu on a row, where it sits beside the words. */
|
|
16540
|
+
.crewlet-folder-tile--with-actions .crewlet-folder-tile__link {
|
|
16541
|
+
padding-inline-end: calc(var(--crewlet-folder-tile-pad-inline) + var(--crewlet-folder-tile-reserve-link));
|
|
16542
|
+
}
|
|
16543
|
+
|
|
16544
|
+
/* A NEUTRAL TINT, never a kind's: a folder is not a kind. */
|
|
16545
|
+
.crewlet-folder-tile__glyph {
|
|
16546
|
+
display: inline-flex;
|
|
16547
|
+
flex: none;
|
|
16548
|
+
align-items: center;
|
|
16549
|
+
justify-content: center;
|
|
16550
|
+
width: var(--crewlet-folder-tile-glyph);
|
|
16551
|
+
height: var(--crewlet-folder-tile-glyph);
|
|
16552
|
+
box-sizing: border-box;
|
|
16553
|
+
border-radius: var(--crewlet-folder-tile-glyph-radius);
|
|
16554
|
+
background: var(--color-surface-inset);
|
|
16555
|
+
box-shadow: inset 0 0 0 1px var(--color-border-default);
|
|
16556
|
+
color: var(--color-text-secondary);
|
|
16557
|
+
}
|
|
16558
|
+
|
|
16559
|
+
.crewlet-folder-tile__body {
|
|
16560
|
+
display: flex;
|
|
16561
|
+
flex-direction: column;
|
|
16562
|
+
gap: 2px;
|
|
16563
|
+
min-width: 0;
|
|
16564
|
+
max-width: 100%;
|
|
16565
|
+
}
|
|
16566
|
+
|
|
16567
|
+
.crewlet-folder-tile__name {
|
|
16568
|
+
overflow: hidden;
|
|
16569
|
+
color: var(--color-text-primary);
|
|
16570
|
+
font-size: var(--crewlet-folder-tile-name);
|
|
16571
|
+
font-weight: var(--font-weight-medium);
|
|
16572
|
+
line-height: 1.35;
|
|
16573
|
+
text-overflow: ellipsis;
|
|
16574
|
+
white-space: nowrap;
|
|
16575
|
+
}
|
|
16576
|
+
|
|
16577
|
+
/*
|
|
16578
|
+
* THE FACTS WRAP, NEVER CUT. "Everyone" and "Nothing you can open yet" are
|
|
16579
|
+
* both things a reader has to read, and four tiles across a laptop's page do
|
|
16580
|
+
* not have room for them on one line: the count moves under who can see the
|
|
16581
|
+
* folder rather than losing its end to an ellipsis. The two are told apart by
|
|
16582
|
+
* the visibility glyph and the gap between them, not by a separator, so a
|
|
16583
|
+
* line that breaks never opens on a stray dot.
|
|
16584
|
+
*/
|
|
16585
|
+
.crewlet-folder-tile__facts {
|
|
16586
|
+
display: flex;
|
|
16587
|
+
flex-wrap: wrap;
|
|
16588
|
+
align-items: center;
|
|
16589
|
+
gap: 2px var(--spacing-3);
|
|
16590
|
+
min-width: 0;
|
|
16591
|
+
color: var(--color-text-tertiary);
|
|
16592
|
+
font-size: var(--crewlet-folder-tile-facts);
|
|
16593
|
+
line-height: 1.35;
|
|
16594
|
+
}
|
|
16595
|
+
|
|
16596
|
+
.crewlet-folder-tile__visibility {
|
|
16597
|
+
display: inline-flex;
|
|
16598
|
+
flex: none;
|
|
16599
|
+
align-items: center;
|
|
16600
|
+
}
|
|
16601
|
+
|
|
16602
|
+
.crewlet-folder-tile__contents {
|
|
16603
|
+
min-width: 0;
|
|
16604
|
+
overflow-wrap: anywhere;
|
|
16605
|
+
}
|
|
16606
|
+
|
|
16607
|
+
/*
|
|
16608
|
+
* THE TILE'S OWN CONTROLS, at its trailing edge and outside the link: hidden
|
|
16609
|
+
* until the tile is hovered or holds focus, so a gallery rests as names, and
|
|
16610
|
+
* always there on a screen with no hover or while their menu is open.
|
|
16611
|
+
*/
|
|
16612
|
+
.crewlet-folder-tile__actions {
|
|
16613
|
+
position: absolute;
|
|
16614
|
+
top: var(--crewlet-folder-tile-actions-top);
|
|
16615
|
+
right: var(--crewlet-folder-tile-actions-inset);
|
|
16616
|
+
display: inline-flex;
|
|
16617
|
+
gap: var(--spacing-1);
|
|
16618
|
+
transform: translateY(var(--crewlet-folder-tile-actions-shift));
|
|
16619
|
+
opacity: 0;
|
|
16620
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-out);
|
|
16621
|
+
}
|
|
16622
|
+
|
|
16623
|
+
.crewlet-folder-tile:hover .crewlet-folder-tile__actions,
|
|
16624
|
+
.crewlet-folder-tile:focus-within .crewlet-folder-tile__actions,
|
|
16625
|
+
.crewlet-folder-tile__actions:has([aria-expanded='true']) {
|
|
16626
|
+
opacity: 1;
|
|
16627
|
+
}
|
|
16628
|
+
|
|
16629
|
+
@media (hover: none) {
|
|
16630
|
+
.crewlet-folder-tile__actions {
|
|
16631
|
+
opacity: 1;
|
|
16632
|
+
}
|
|
16633
|
+
}
|
|
16634
|
+
|
|
16635
|
+
@media (prefers-reduced-motion: reduce) {
|
|
16636
|
+
.crewlet-folder-tile__actions {
|
|
16637
|
+
transition: none;
|
|
16638
|
+
}
|
|
16639
|
+
}
|
|
16640
|
+
|
|
16641
|
+
|
|
15689
16642
|
/* Highlight-DXLV2R6L.css */
|
|
15690
16643
|
/*
|
|
15691
16644
|
* Words a search matched (Highlight.tsx).
|
|
@@ -18855,87 +19808,249 @@ a.crewlet-icon-btn {
|
|
|
18855
19808
|
scrollbar-width: none !important;
|
|
18856
19809
|
}
|
|
18857
19810
|
|
|
18858
|
-
:is(.crewlet-live-preview__live, .crewlet-live-preview__still) *::-webkit-scrollbar {
|
|
18859
|
-
display: none;
|
|
19811
|
+
:is(.crewlet-live-preview__live, .crewlet-live-preview__still) *::-webkit-scrollbar {
|
|
19812
|
+
display: none;
|
|
19813
|
+
}
|
|
19814
|
+
|
|
19815
|
+
/* THE LIVE LAYER renders out of sight: content that is copied is never seen
|
|
19816
|
+
live, only its copy is. A frame's page is kept rather than copied, so a
|
|
19817
|
+
framed preview's live layer is what fades in once it has drawn. */
|
|
19818
|
+
.crewlet-live-preview__live {
|
|
19819
|
+
position: absolute;
|
|
19820
|
+
inset: 0;
|
|
19821
|
+
display: block;
|
|
19822
|
+
overflow: hidden;
|
|
19823
|
+
opacity: 0;
|
|
19824
|
+
pointer-events: none;
|
|
19825
|
+
user-select: none;
|
|
19826
|
+
}
|
|
19827
|
+
|
|
19828
|
+
.crewlet-live-preview[data-frame] > .crewlet-live-preview__live {
|
|
19829
|
+
transition: opacity var(--motion-duration-base) var(--motion-easing-out);
|
|
19830
|
+
}
|
|
19831
|
+
|
|
19832
|
+
.crewlet-live-preview[data-frame][data-state='ready'] > .crewlet-live-preview__live {
|
|
19833
|
+
opacity: 1;
|
|
19834
|
+
}
|
|
19835
|
+
|
|
19836
|
+
/* LAID OUT AT ITS OWN SIZE from the top left corner, and scaled from there:
|
|
19837
|
+
to the box's width, its top left the box's, or whole and centred. */
|
|
19838
|
+
.crewlet-preview-scale {
|
|
19839
|
+
position: absolute;
|
|
19840
|
+
inset: 0;
|
|
19841
|
+
display: block;
|
|
19842
|
+
overflow: hidden;
|
|
19843
|
+
}
|
|
19844
|
+
|
|
19845
|
+
.crewlet-preview-scale__layer {
|
|
19846
|
+
position: absolute;
|
|
19847
|
+
top: 0;
|
|
19848
|
+
left: 0;
|
|
19849
|
+
display: block;
|
|
19850
|
+
overflow: hidden;
|
|
19851
|
+
transform-origin: 0 0;
|
|
19852
|
+
}
|
|
19853
|
+
|
|
19854
|
+
/* WHAT IS UNDER A DRAWING is hidden only once it has faded in. Fading the
|
|
19855
|
+
stand-in out at the same time showed both at half strength halfway
|
|
19856
|
+
through: a double exposure. */
|
|
19857
|
+
.crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__fallback {
|
|
19858
|
+
visibility: hidden;
|
|
19859
|
+
/* Visibility is discrete and stays visible for the whole of a transition
|
|
19860
|
+
to hidden, so this holds it exactly as long as the fade above. A copy
|
|
19861
|
+
given back from the store is ready from its first style, which runs no
|
|
19862
|
+
transition, so its stand-in is never shown at all. */
|
|
19863
|
+
transition: visibility var(--motion-duration-base) linear;
|
|
19864
|
+
}
|
|
19865
|
+
|
|
19866
|
+
@media (prefers-reduced-motion: reduce) {
|
|
19867
|
+
.crewlet-live-preview[data-fresh] > .crewlet-live-preview__still,
|
|
19868
|
+
.crewlet-live-preview[data-frame] > .crewlet-live-preview__live,
|
|
19869
|
+
.crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__fallback {
|
|
19870
|
+
animation: none;
|
|
19871
|
+
transition: none;
|
|
19872
|
+
}
|
|
19873
|
+
}
|
|
19874
|
+
|
|
19875
|
+
|
|
19876
|
+
/* LockedLabel-VQEGEB7G.css */
|
|
19877
|
+
/*
|
|
19878
|
+
* LockedLabel: a place's words with the key after them. The words keep their
|
|
19879
|
+
* own ink and size; the key takes the quiet step, a step closer to the words
|
|
19880
|
+
* than the words are to anything else.
|
|
19881
|
+
*/
|
|
19882
|
+
.crewlet-locked-label {
|
|
19883
|
+
display: inline-flex;
|
|
19884
|
+
align-items: center;
|
|
19885
|
+
gap: var(--spacing-1);
|
|
19886
|
+
min-width: 0;
|
|
19887
|
+
}
|
|
19888
|
+
|
|
19889
|
+
.crewlet-locked-label__key {
|
|
19890
|
+
flex: none;
|
|
19891
|
+
color: var(--color-text-tertiary);
|
|
19892
|
+
}
|
|
19893
|
+
|
|
19894
|
+
|
|
19895
|
+
/* LogoSlot-T2UFOJXU.css */
|
|
19896
|
+
/*
|
|
19897
|
+
* One of a brand's logos on the ground it is made for. The ground and the ink
|
|
19898
|
+
* of its guide are the only values here that are not tokens: they arrive
|
|
19899
|
+
* through `--crewlet-logo-slot-ground` (the brand's own `#rrggbb`, or a
|
|
19900
|
+
* palette's sheet read from the tokens package) and `--crewlet-logo-slot-ink`
|
|
19901
|
+
* (whichever palette's text reads better on that ground).
|
|
19902
|
+
*/
|
|
19903
|
+
.crewlet-logo-slot {
|
|
19904
|
+
/* Every stage is one height, so three slots side by side line up whatever
|
|
19905
|
+
their logos' shapes. */
|
|
19906
|
+
--crewlet-logo-slot-height: calc(var(--size-row-lg) * 3);
|
|
19907
|
+
--crewlet-logo-slot-padding: var(--spacing-5);
|
|
19908
|
+
--crewlet-logo-slot-clear: var(--spacing-3);
|
|
19909
|
+
|
|
19910
|
+
display: flex;
|
|
19911
|
+
flex-direction: column;
|
|
19912
|
+
gap: var(--spacing-2);
|
|
19913
|
+
min-width: 0;
|
|
19914
|
+
}
|
|
19915
|
+
|
|
19916
|
+
.crewlet-logo-slot__head {
|
|
19917
|
+
display: flex;
|
|
19918
|
+
align-items: flex-start;
|
|
19919
|
+
justify-content: space-between;
|
|
19920
|
+
gap: var(--spacing-2);
|
|
19921
|
+
min-width: 0;
|
|
19922
|
+
}
|
|
19923
|
+
|
|
19924
|
+
.crewlet-logo-slot__words {
|
|
19925
|
+
display: flex;
|
|
19926
|
+
flex-direction: column;
|
|
19927
|
+
gap: 2px;
|
|
19928
|
+
min-width: 0;
|
|
19929
|
+
}
|
|
19930
|
+
|
|
19931
|
+
.crewlet-logo-slot__label {
|
|
19932
|
+
color: var(--color-text-primary);
|
|
19933
|
+
font-size: var(--font-size-sm);
|
|
19934
|
+
font-weight: var(--font-weight-medium);
|
|
19935
|
+
}
|
|
19936
|
+
|
|
19937
|
+
.crewlet-logo-slot__description {
|
|
19938
|
+
color: var(--color-text-tertiary);
|
|
19939
|
+
font-size: var(--font-size-xs);
|
|
19940
|
+
}
|
|
19941
|
+
|
|
19942
|
+
.crewlet-logo-slot__download {
|
|
19943
|
+
display: inline-flex;
|
|
19944
|
+
flex: none;
|
|
18860
19945
|
}
|
|
18861
19946
|
|
|
18862
|
-
/*
|
|
18863
|
-
|
|
18864
|
-
|
|
18865
|
-
.
|
|
18866
|
-
|
|
18867
|
-
|
|
18868
|
-
display:
|
|
19947
|
+
/*
|
|
19948
|
+
* THE STAGE: the logo's own ground, at one height, inside the page's hairline
|
|
19949
|
+
* so a ground that matches the page is still a stage. An empty one draws its
|
|
19950
|
+
* edge dashed, a place waiting to be filled.
|
|
19951
|
+
*/
|
|
19952
|
+
.crewlet-logo-slot__stage {
|
|
19953
|
+
display: flex;
|
|
19954
|
+
align-items: center;
|
|
19955
|
+
justify-content: center;
|
|
19956
|
+
height: var(--crewlet-logo-slot-height);
|
|
19957
|
+
box-sizing: border-box;
|
|
19958
|
+
padding: var(--crewlet-logo-slot-padding);
|
|
18869
19959
|
overflow: hidden;
|
|
18870
|
-
|
|
18871
|
-
|
|
18872
|
-
|
|
19960
|
+
border: 1px solid var(--color-border-hover);
|
|
19961
|
+
border-radius: var(--radius-lg);
|
|
19962
|
+
background: var(--crewlet-logo-slot-ground);
|
|
19963
|
+
color: var(--crewlet-logo-slot-ink);
|
|
18873
19964
|
}
|
|
18874
19965
|
|
|
18875
|
-
.crewlet-
|
|
18876
|
-
|
|
19966
|
+
.crewlet-logo-slot__stage.is-empty {
|
|
19967
|
+
border-style: dashed;
|
|
19968
|
+
border-color: var(--color-border-strong);
|
|
18877
19969
|
}
|
|
18878
19970
|
|
|
18879
|
-
|
|
18880
|
-
|
|
19971
|
+
/*
|
|
19972
|
+
* THE SPACE THE LOGO KEEPS: padding round it at the clear space, and with the
|
|
19973
|
+
* guide on, a dashed line at that edge in the ground's ink, half strength so
|
|
19974
|
+
* it reads as a guide and never as part of the logo.
|
|
19975
|
+
*/
|
|
19976
|
+
.crewlet-logo-slot__space {
|
|
19977
|
+
position: relative;
|
|
19978
|
+
display: inline-flex;
|
|
19979
|
+
align-items: center;
|
|
19980
|
+
justify-content: center;
|
|
19981
|
+
max-width: 100%;
|
|
19982
|
+
box-sizing: border-box;
|
|
19983
|
+
padding: var(--crewlet-logo-slot-clear);
|
|
18881
19984
|
}
|
|
18882
19985
|
|
|
18883
|
-
|
|
18884
|
-
|
|
18885
|
-
.crewlet-preview-scale {
|
|
19986
|
+
.crewlet-logo-slot__space.has-guide::after {
|
|
19987
|
+
content: '';
|
|
18886
19988
|
position: absolute;
|
|
18887
19989
|
inset: 0;
|
|
18888
|
-
|
|
18889
|
-
|
|
19990
|
+
border: 1px dashed var(--crewlet-logo-slot-ink);
|
|
19991
|
+
border-radius: var(--radius-xs);
|
|
19992
|
+
opacity: 0.5;
|
|
19993
|
+
pointer-events: none;
|
|
18890
19994
|
}
|
|
18891
19995
|
|
|
18892
|
-
.crewlet-
|
|
18893
|
-
position: absolute;
|
|
18894
|
-
top: 0;
|
|
18895
|
-
left: 0;
|
|
19996
|
+
.crewlet-logo-slot__image {
|
|
18896
19997
|
display: block;
|
|
18897
|
-
|
|
18898
|
-
|
|
19998
|
+
max-width: 100%;
|
|
19999
|
+
max-height: calc(var(--crewlet-logo-slot-height) - 2 * var(--crewlet-logo-slot-padding) - 2 * var(--crewlet-logo-slot-clear));
|
|
20000
|
+
object-fit: contain;
|
|
18899
20001
|
}
|
|
18900
20002
|
|
|
18901
|
-
/*
|
|
18902
|
-
|
|
18903
|
-
|
|
18904
|
-
|
|
18905
|
-
|
|
18906
|
-
|
|
18907
|
-
|
|
18908
|
-
|
|
18909
|
-
|
|
18910
|
-
transition: visibility var(--motion-duration-base) linear;
|
|
20003
|
+
/* WHERE A LOGO WOULD GO, at the shape it would take: a wordmark's band or a
|
|
20004
|
+
mark's square, with the image glyph in the ground's ink. */
|
|
20005
|
+
.crewlet-logo-slot__placeholder {
|
|
20006
|
+
display: inline-flex;
|
|
20007
|
+
align-items: center;
|
|
20008
|
+
justify-content: center;
|
|
20009
|
+
width: calc(var(--size-row-lg) * 3);
|
|
20010
|
+
height: var(--size-row-lg);
|
|
20011
|
+
opacity: 0.7;
|
|
18911
20012
|
}
|
|
18912
20013
|
|
|
18913
|
-
|
|
18914
|
-
|
|
18915
|
-
.crewlet-live-preview[data-frame] > .crewlet-live-preview__live,
|
|
18916
|
-
.crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__fallback {
|
|
18917
|
-
animation: none;
|
|
18918
|
-
transition: none;
|
|
18919
|
-
}
|
|
20014
|
+
.crewlet-logo-slot__stage--square .crewlet-logo-slot__placeholder {
|
|
20015
|
+
width: var(--size-row-lg);
|
|
18920
20016
|
}
|
|
18921
20017
|
|
|
20018
|
+
.crewlet-logo-slot__stage.is-uploading .crewlet-logo-slot__space {
|
|
20019
|
+
opacity: 0.5;
|
|
20020
|
+
}
|
|
18922
20021
|
|
|
18923
|
-
|
|
18924
|
-
|
|
18925
|
-
|
|
18926
|
-
|
|
18927
|
-
|
|
18928
|
-
|
|
18929
|
-
.
|
|
18930
|
-
|
|
18931
|
-
|
|
20022
|
+
.crewlet-logo-slot__empty {
|
|
20023
|
+
margin: 0;
|
|
20024
|
+
color: var(--color-text-tertiary);
|
|
20025
|
+
font-size: var(--font-size-xs);
|
|
20026
|
+
}
|
|
20027
|
+
|
|
20028
|
+
/* A REFUSAL, in the danger ink with its glyph, so it never rests on the hue. */
|
|
20029
|
+
.crewlet-logo-slot__error {
|
|
20030
|
+
display: flex;
|
|
20031
|
+
align-items: flex-start;
|
|
18932
20032
|
gap: var(--spacing-1);
|
|
18933
|
-
|
|
20033
|
+
margin: 0;
|
|
20034
|
+
color: var(--color-feedback-danger-ink);
|
|
20035
|
+
font-size: var(--font-size-xs);
|
|
20036
|
+
line-height: var(--font-line-height-normal);
|
|
18934
20037
|
}
|
|
18935
20038
|
|
|
18936
|
-
.crewlet-
|
|
20039
|
+
.crewlet-logo-slot__error > svg {
|
|
18937
20040
|
flex: none;
|
|
20041
|
+
margin-top: 1px;
|
|
20042
|
+
}
|
|
20043
|
+
|
|
20044
|
+
.crewlet-logo-slot__foot {
|
|
20045
|
+
display: flex;
|
|
20046
|
+
flex-wrap: wrap;
|
|
20047
|
+
align-items: center;
|
|
20048
|
+
gap: var(--spacing-2);
|
|
20049
|
+
}
|
|
20050
|
+
|
|
20051
|
+
.crewlet-logo-slot__hint {
|
|
18938
20052
|
color: var(--color-text-tertiary);
|
|
20053
|
+
font-size: var(--font-size-xs);
|
|
18939
20054
|
}
|
|
18940
20055
|
|
|
18941
20056
|
|
|
@@ -19586,7 +20701,7 @@ a.crewlet-icon-btn {
|
|
|
19586
20701
|
}
|
|
19587
20702
|
|
|
19588
20703
|
|
|
19589
|
-
/* Modal-
|
|
20704
|
+
/* Modal-3HMP7WAZ.css */
|
|
19590
20705
|
/*
|
|
19591
20706
|
* The modal surface: the veil, the frame, and the three bands inside it.
|
|
19592
20707
|
*
|
|
@@ -19701,6 +20816,32 @@ a.crewlet-icon-btn {
|
|
|
19701
20816
|
animation: crewlet-modal-lift var(--motion-duration-moderate) var(--motion-easing-emphasized);
|
|
19702
20817
|
}
|
|
19703
20818
|
|
|
20819
|
+
/*
|
|
20820
|
+
* THE PHONE SHEET (`phoneSheet`), strictly under the phone breakpoint as the
|
|
20821
|
+
* package switches there everywhere else: the dialog takes the whole window,
|
|
20822
|
+
* with no inset and no corners, so a long list in its body has the screen's
|
|
20823
|
+
* height to scroll in between a head and a foot that stay put. It rises from
|
|
20824
|
+
* the bottom edge as the bottom sheet does, and its foot stays clear of the
|
|
20825
|
+
* home indicator. Above the breakpoint nothing here applies, and the dialog
|
|
20826
|
+
* keeps its placement.
|
|
20827
|
+
*/
|
|
20828
|
+
@media (width < 640px) {
|
|
20829
|
+
.crewlet-modal-overlay--dialog.crewlet-modal-overlay--phone-sheet {
|
|
20830
|
+
align-items: stretch;
|
|
20831
|
+
padding: 0;
|
|
20832
|
+
}
|
|
20833
|
+
|
|
20834
|
+
.crewlet-modal-overlay--phone-sheet > .crewlet-modal--dialog {
|
|
20835
|
+
width: 100%;
|
|
20836
|
+
height: 100%;
|
|
20837
|
+
max-height: none;
|
|
20838
|
+
border: none;
|
|
20839
|
+
border-radius: 0;
|
|
20840
|
+
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
20841
|
+
animation: crewlet-modal-lift var(--motion-duration-moderate) var(--motion-easing-emphasized);
|
|
20842
|
+
}
|
|
20843
|
+
}
|
|
20844
|
+
|
|
19704
20845
|
/*
|
|
19705
20846
|
* The sheet's veil fades over the same span the sheet itself travels, so the
|
|
19706
20847
|
* two are one movement rather than a ground that lands and a panel that
|
|
@@ -20173,6 +21314,10 @@ a.crewlet-icon-btn {
|
|
|
20173
21314
|
.crewlet-modal-overlay--bottom > .crewlet-modal--dialog {
|
|
20174
21315
|
animation: none;
|
|
20175
21316
|
}
|
|
21317
|
+
|
|
21318
|
+
.crewlet-modal-overlay--phone-sheet > .crewlet-modal--dialog {
|
|
21319
|
+
animation: none;
|
|
21320
|
+
}
|
|
20176
21321
|
}
|
|
20177
21322
|
|
|
20178
21323
|
|
|
@@ -24977,6 +26122,70 @@ svg.crewlet-select__chevron {
|
|
|
24977
26122
|
}
|
|
24978
26123
|
|
|
24979
26124
|
|
|
26125
|
+
/* SelectionBar-XPWKUOSC.css */
|
|
26126
|
+
/*
|
|
26127
|
+
* What is picked and what can be done to it: the count, the bulk actions and
|
|
26128
|
+
* Clear, on the raised rung inside the strong hairline so it reads as a bar
|
|
26129
|
+
* laid over the list rather than a row of it.
|
|
26130
|
+
*
|
|
26131
|
+
* ON TOP OF TOOLBAR, so the rules that change Toolbar's own layout carry
|
|
26132
|
+
* Toolbar's class too: the bundle orders the two sheets by file name.
|
|
26133
|
+
*/
|
|
26134
|
+
.crewlet-toolbar.crewlet-selection-bar {
|
|
26135
|
+
position: sticky;
|
|
26136
|
+
top: var(--crewlet-selection-bar-top, var(--spacing-0));
|
|
26137
|
+
z-index: var(--z-index-sticky);
|
|
26138
|
+
flex-wrap: nowrap;
|
|
26139
|
+
gap: var(--spacing-3);
|
|
26140
|
+
min-height: var(--size-row-lg);
|
|
26141
|
+
padding: var(--spacing-1) var(--spacing-2) var(--spacing-1) var(--spacing-4);
|
|
26142
|
+
border: 1px solid var(--color-border-strong);
|
|
26143
|
+
border-radius: var(--radius-lg);
|
|
26144
|
+
background: var(--color-surface-elevated);
|
|
26145
|
+
box-shadow: var(--shadow-sm);
|
|
26146
|
+
}
|
|
26147
|
+
|
|
26148
|
+
.crewlet-selection-bar__count {
|
|
26149
|
+
flex: none;
|
|
26150
|
+
color: var(--color-text-primary);
|
|
26151
|
+
font-size: var(--font-size-sm);
|
|
26152
|
+
font-weight: var(--font-weight-medium);
|
|
26153
|
+
font-variant-numeric: tabular-nums;
|
|
26154
|
+
white-space: nowrap;
|
|
26155
|
+
}
|
|
26156
|
+
|
|
26157
|
+
.crewlet-selection-bar__actions {
|
|
26158
|
+
display: flex;
|
|
26159
|
+
align-items: center;
|
|
26160
|
+
flex-wrap: wrap;
|
|
26161
|
+
gap: var(--spacing-2);
|
|
26162
|
+
min-width: 0;
|
|
26163
|
+
}
|
|
26164
|
+
|
|
26165
|
+
.crewlet-selection-bar__spacer {
|
|
26166
|
+
flex: 1 1 auto;
|
|
26167
|
+
}
|
|
26168
|
+
|
|
26169
|
+
/*
|
|
26170
|
+
* DOCKED TO THE FOOT ON A PHONE, strictly under the phone breakpoint: over the
|
|
26171
|
+
* list at the bottom edge, inside the safe area, where a thumb reaches it and
|
|
26172
|
+
* the picks it acts on stay in view above it.
|
|
26173
|
+
*/
|
|
26174
|
+
@media (width < 640px) {
|
|
26175
|
+
.crewlet-toolbar.crewlet-selection-bar {
|
|
26176
|
+
position: fixed;
|
|
26177
|
+
top: auto;
|
|
26178
|
+
right: var(--spacing-3);
|
|
26179
|
+
bottom: calc(var(--spacing-3) + env(safe-area-inset-bottom, var(--spacing-0)));
|
|
26180
|
+
left: var(--spacing-3);
|
|
26181
|
+
z-index: var(--z-index-overlay);
|
|
26182
|
+
gap: var(--spacing-2);
|
|
26183
|
+
padding-inline-start: var(--spacing-3);
|
|
26184
|
+
box-shadow: var(--shadow-lg);
|
|
26185
|
+
}
|
|
26186
|
+
}
|
|
26187
|
+
|
|
26188
|
+
|
|
24980
26189
|
/* SettingsTable-6DUFAFXG.css */
|
|
24981
26190
|
/*
|
|
24982
26191
|
* SettingsTable: a read-only table of settings, one row each, on one grid.
|
|
@@ -30999,7 +32208,7 @@ b.crewlet-switcher__match {
|
|
|
30999
32208
|
}
|
|
31000
32209
|
|
|
31001
32210
|
|
|
31002
|
-
/* ThemeGallery-
|
|
32211
|
+
/* ThemeGallery-UEFZRT6W.css */
|
|
31003
32212
|
/*
|
|
31004
32213
|
* The gallery of themes: each group's heading over a grid of cards.
|
|
31005
32214
|
*
|
|
@@ -31104,6 +32313,27 @@ b.crewlet-switcher__match {
|
|
|
31104
32313
|
white-space: nowrap;
|
|
31105
32314
|
}
|
|
31106
32315
|
|
|
32316
|
+
/*
|
|
32317
|
+
* THE TAG, DRAWN WHERE A THEME ASKS (`tagTone`), under the name: `quiet` on
|
|
32318
|
+
* the tertiary step and a step smaller, cut to one line with the whole of it
|
|
32319
|
+
* on hover, and `brand` as the accent's pill, so a reader picking a deck's
|
|
32320
|
+
* theme finds their brand among the product's at a glance. A theme that sets
|
|
32321
|
+
* no tone has its tag said with its name and nothing drawn.
|
|
32322
|
+
*/
|
|
32323
|
+
.crewlet-theme-gallery__tag {
|
|
32324
|
+
overflow: hidden;
|
|
32325
|
+
color: var(--color-text-tertiary);
|
|
32326
|
+
font-size: var(--font-size-2xs);
|
|
32327
|
+
line-height: var(--font-line-height-tight);
|
|
32328
|
+
text-overflow: ellipsis;
|
|
32329
|
+
white-space: nowrap;
|
|
32330
|
+
}
|
|
32331
|
+
|
|
32332
|
+
.crewlet-theme-gallery__tag--brand {
|
|
32333
|
+
display: flex;
|
|
32334
|
+
min-width: 0;
|
|
32335
|
+
}
|
|
32336
|
+
|
|
31107
32337
|
/*
|
|
31108
32338
|
* FORCED COLORS keeps the border and drops the accent, so the chosen card
|
|
31109
32339
|
* would look like every other; the system's own selected colour says it.
|
|
@@ -33905,6 +35135,105 @@ svg.crewlet-time-window__tick {
|
|
|
33905
35135
|
}
|
|
33906
35136
|
|
|
33907
35137
|
|
|
35138
|
+
/* TypeSpecimen-WK6YNHL7.css */
|
|
35139
|
+
/*
|
|
35140
|
+
* A face, shown: its role and name in the interface's own type, then "Aa" and
|
|
35141
|
+
* a line set in the face itself (`--crewlet-type-specimen-family`, which
|
|
35142
|
+
* always ends in the package's sans).
|
|
35143
|
+
*/
|
|
35144
|
+
.crewlet-type-specimen {
|
|
35145
|
+
display: grid;
|
|
35146
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
35147
|
+
grid-template-areas:
|
|
35148
|
+
'glyphs caption'
|
|
35149
|
+
'sample sample';
|
|
35150
|
+
align-items: center;
|
|
35151
|
+
gap: var(--spacing-2) var(--spacing-4);
|
|
35152
|
+
min-width: 0;
|
|
35153
|
+
margin: 0;
|
|
35154
|
+
}
|
|
35155
|
+
|
|
35156
|
+
.crewlet-type-specimen__caption {
|
|
35157
|
+
grid-area: caption;
|
|
35158
|
+
display: flex;
|
|
35159
|
+
flex-direction: column;
|
|
35160
|
+
gap: 2px;
|
|
35161
|
+
min-width: 0;
|
|
35162
|
+
}
|
|
35163
|
+
|
|
35164
|
+
.crewlet-type-specimen__label {
|
|
35165
|
+
color: var(--color-text-tertiary);
|
|
35166
|
+
font-size: var(--font-size-2xs);
|
|
35167
|
+
font-weight: var(--font-weight-medium);
|
|
35168
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
35169
|
+
text-transform: uppercase;
|
|
35170
|
+
}
|
|
35171
|
+
|
|
35172
|
+
.crewlet-type-specimen__family {
|
|
35173
|
+
overflow: hidden;
|
|
35174
|
+
color: var(--color-text-primary);
|
|
35175
|
+
font-size: var(--font-size-sm);
|
|
35176
|
+
font-weight: var(--font-weight-medium);
|
|
35177
|
+
text-overflow: ellipsis;
|
|
35178
|
+
white-space: nowrap;
|
|
35179
|
+
}
|
|
35180
|
+
|
|
35181
|
+
.crewlet-type-specimen__detail {
|
|
35182
|
+
color: var(--color-text-tertiary);
|
|
35183
|
+
font-size: var(--font-size-xs);
|
|
35184
|
+
}
|
|
35185
|
+
|
|
35186
|
+
.crewlet-type-specimen__glyphs {
|
|
35187
|
+
grid-area: glyphs;
|
|
35188
|
+
color: var(--color-text-primary);
|
|
35189
|
+
font-family: var(--crewlet-type-specimen-family);
|
|
35190
|
+
font-size: var(--font-size-4xl);
|
|
35191
|
+
line-height: 1;
|
|
35192
|
+
}
|
|
35193
|
+
|
|
35194
|
+
.crewlet-type-specimen__sample {
|
|
35195
|
+
grid-area: sample;
|
|
35196
|
+
overflow: hidden;
|
|
35197
|
+
color: var(--color-text-secondary);
|
|
35198
|
+
font-family: var(--crewlet-type-specimen-family);
|
|
35199
|
+
font-size: var(--font-size-md);
|
|
35200
|
+
line-height: var(--font-line-height-snug);
|
|
35201
|
+
text-overflow: ellipsis;
|
|
35202
|
+
white-space: nowrap;
|
|
35203
|
+
}
|
|
35204
|
+
|
|
35205
|
+
.crewlet-type-specimen--regular :is(.crewlet-type-specimen__glyphs, .crewlet-type-specimen__sample) {
|
|
35206
|
+
font-weight: var(--font-weight-regular);
|
|
35207
|
+
}
|
|
35208
|
+
|
|
35209
|
+
.crewlet-type-specimen--medium :is(.crewlet-type-specimen__glyphs, .crewlet-type-specimen__sample) {
|
|
35210
|
+
font-weight: var(--font-weight-medium);
|
|
35211
|
+
}
|
|
35212
|
+
|
|
35213
|
+
.crewlet-type-specimen--semibold :is(.crewlet-type-specimen__glyphs, .crewlet-type-specimen__sample) {
|
|
35214
|
+
font-weight: var(--font-weight-semibold);
|
|
35215
|
+
}
|
|
35216
|
+
|
|
35217
|
+
.crewlet-type-specimen--bold :is(.crewlet-type-specimen__glyphs, .crewlet-type-specimen__sample) {
|
|
35218
|
+
font-weight: var(--font-weight-bold);
|
|
35219
|
+
}
|
|
35220
|
+
|
|
35221
|
+
/* ---- sm: a select option's lead, the letters smaller and the line gone ---- */
|
|
35222
|
+
|
|
35223
|
+
.crewlet-type-specimen--sm {
|
|
35224
|
+
grid-template-areas: 'glyphs caption';
|
|
35225
|
+
gap: var(--spacing-3);
|
|
35226
|
+
}
|
|
35227
|
+
|
|
35228
|
+
.crewlet-type-specimen--sm .crewlet-type-specimen__glyphs {
|
|
35229
|
+
font-size: var(--font-size-2xl);
|
|
35230
|
+
}
|
|
35231
|
+
|
|
35232
|
+
.crewlet-type-specimen--sm .crewlet-type-specimen__sample {
|
|
35233
|
+
display: none;
|
|
35234
|
+
}
|
|
35235
|
+
|
|
35236
|
+
|
|
33908
35237
|
/* VersionCompare-UUZOPTQO.css */
|
|
33909
35238
|
/* VersionCompare: a head naming the two versions with the lens switch at its
|
|
33910
35239
|
end, then the changes or the two versions. */
|