@crewlethq/ui 0.48.2 → 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 +60 -0
- package/dist/AgentHandoffPanel/index.js +4 -4
- package/dist/AppShell/index.js +4 -4
- package/dist/{AppShell-5P575KYA.css → AppShell-BIUFNT3J.css} +30 -11
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactBar/index.js +9 -9
- package/dist/{ArtifactBar-6PGWGKN2.css → ArtifactBar-UMZCTARR.css} +9 -0
- package/dist/ArtifactCard/ArtifactCard.d.ts +30 -1
- package/dist/ArtifactCard/index.js +12 -5
- 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/AvatarPicker/index.js +7 -7
- 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/Canvas/index.js +2 -2
- package/dist/CanvasBoard/index.js +4 -4
- package/dist/CanvasToolbar/index.js +3 -3
- package/dist/Checkbox/Checkbox.d.ts +8 -0
- package/dist/Checkbox/index.js +3 -3
- 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 +3 -3
- package/dist/Combobox-GBCWXWEB.css +163 -0
- package/dist/CommandPalette/index.js +5 -5
- package/dist/CommentThread/index.js +5 -5
- package/dist/Composer/index.js +3 -3
- package/dist/ConfirmField/index.js +3 -3
- 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 +6 -6
- package/dist/DataView/index.js +10 -10
- package/dist/DateTimePicker/index.js +3 -3
- package/dist/DocTabsEditor/index.js +4 -4
- package/dist/{Editor-6U4BJ25W.js → Editor-MLGK3KOG.js} +3 -3
- 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/HuePicker/index.js +6 -6
- package/dist/Input/index.js +2 -2
- package/dist/LinkInterstitial/index.js +3 -3
- package/dist/ListInput/index.js +3 -3
- 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/MarkdownEditor/index.js +6 -6
- package/dist/Menu/index.js +2 -2
- package/dist/MergeConflicts/index.js +6 -6
- package/dist/Modal/Modal.d.ts +13 -0
- package/dist/Modal/index.js +2 -2
- package/dist/{Modal-TOEWHDCQ.css → Modal-3HMP7WAZ.css} +30 -0
- package/dist/OrgTable/index.js +1 -1
- package/dist/PresenterView/index.js +3 -3
- package/dist/PrincipalPicker/index.js +4 -4
- package/dist/RichEditor/index.js +1 -1
- package/dist/SegmentedControl/index.js +5 -5
- package/dist/Select/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 +6 -6
- package/dist/SheetColumnEditor/index.js +10 -10
- package/dist/SheetGrid/index.js +4 -4
- package/dist/SlideFilmstrip/index.js +3 -3
- package/dist/Switcher/index.js +4 -4
- package/dist/Tabs/index.js +4 -4
- package/dist/TagsInput/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/ThemeSwitcher/index.js +6 -6
- package/dist/TimeWindowPicker/index.js +6 -6
- package/dist/TreeCanvas/index.js +3 -3
- package/dist/TreeGrid/index.js +1 -1
- 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/VersionCompare/index.js +6 -6
- package/dist/{chunk-RBUA7ZNK.js → chunk-34RMTXDZ.js} +1 -1
- package/dist/{chunk-YFUG6ARA.js → chunk-3QSKDZR5.js} +1 -1
- package/dist/chunk-5SGHW42B.js +23 -0
- package/dist/{chunk-R2EOET5Q.js → chunk-627KFRON.js} +2 -2
- package/dist/{chunk-SMVWDO72.js → chunk-6FVGSWLS.js} +1 -1
- package/dist/{chunk-ILDNJHRU.js → chunk-AVL52EME.js} +1 -1
- package/dist/chunk-B235ANDO.js +66 -0
- package/dist/{chunk-MZ3QFQDL.js → chunk-CAVWDJF4.js} +1 -1
- package/dist/{chunk-BLQRC7QR.js → chunk-D6MTBXAJ.js} +2 -2
- package/dist/{chunk-2MYSESZF.js → chunk-FB5CFQTG.js} +82 -12
- package/dist/{chunk-KNMQS3JY.js → chunk-GHY63X4C.js} +1 -1
- package/dist/{chunk-DY4DQ7EB.js → chunk-GP4YWZFO.js} +1 -1
- package/dist/{chunk-NRWJUGNA.js → chunk-H55D66IK.js} +1 -1
- package/dist/{chunk-JNFTFAPN.js → chunk-H7NMJ5AI.js} +2 -2
- package/dist/{chunk-GKRPPSWY.js → chunk-ILFEWRLG.js} +1 -1
- package/dist/chunk-ITI2Z44C.js +139 -0
- package/dist/{chunk-P5VGSVWG.js → chunk-J24Q4HTD.js} +17 -8
- package/dist/{chunk-2FDTSARB.js → chunk-JFDIMO3A.js} +2 -2
- package/dist/chunk-JKAFEFFC.js +44 -0
- package/dist/{chunk-6HYPQ5PY.js → chunk-JWNYI7UD.js} +1 -1
- package/dist/{chunk-WT5UPL6P.js → chunk-KHZYAEGZ.js} +1 -1
- package/dist/chunk-M4QM477B.js +80 -0
- package/dist/{chunk-YUDUYMZB.js → chunk-MIEBOO7Y.js} +2 -2
- package/dist/{chunk-IVA7ZWDS.js → chunk-NAWUXCBC.js} +5 -5
- package/dist/{chunk-YUAQSWNW.js → chunk-NCHKKYPQ.js} +6 -3
- 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-WQJSOTEO.js → chunk-PGR2PKH6.js} +1 -1
- package/dist/{chunk-U2XAJONO.js → chunk-Q44X36QC.js} +80 -36
- package/dist/{chunk-R2IBCEU6.js → chunk-R3BA3C4Y.js} +2 -2
- package/dist/{chunk-HDMLHJFI.js → chunk-R6R2UHVG.js} +4 -4
- package/dist/{chunk-VBEMIZIJ.js → chunk-RFPCHMSX.js} +1 -1
- package/dist/{chunk-CE2THTQR.js → chunk-RSKW25Y5.js} +4 -3
- package/dist/{chunk-UBZDYOCA.js → chunk-RV6XB5UV.js} +12 -1
- package/dist/{chunk-LXCRHVMZ.js → chunk-SEPSXOGJ.js} +1 -1
- package/dist/{chunk-K2FNW3MK.js → chunk-SQ4JFHO7.js} +1 -1
- package/dist/{chunk-F45VSK2M.js → chunk-SS4XCUUJ.js} +2 -2
- package/dist/{chunk-E4BOVKNJ.js → chunk-UTESMBPL.js} +5 -3
- package/dist/chunk-UZMNR366.js +9 -0
- package/dist/{chunk-GQXVLFQB.js → chunk-V7GOOXPK.js} +1 -1
- package/dist/{chunk-KMNY3KEB.js → chunk-VBIM6HFC.js} +2 -2
- package/dist/{chunk-Z5RZXVQ7.js → chunk-VN47PYUF.js} +7 -7
- package/dist/{chunk-CNTBUK24.js → chunk-VP2ODUCC.js} +2 -2
- package/dist/{chunk-VIAQW6RK.js → chunk-VTSJMDGP.js} +5 -5
- package/dist/chunk-W6FOEBIL.js +119 -0
- package/dist/chunk-WLSEAIVC.js +48 -0
- package/dist/{chunk-DETVVKAH.js → chunk-WQ7S7CKZ.js} +3 -3
- package/dist/{chunk-OKUULQ22.js → chunk-WXOYHVWG.js} +2 -2
- package/dist/{chunk-NILOJV62.js → chunk-X4NIE7CI.js} +1 -1
- package/dist/{chunk-PZZHO6OS.js → chunk-XS2FJVMT.js} +1 -1
- package/dist/{chunk-6AKG2VLR.js → chunk-YCC2S7DF.js} +4 -1
- package/dist/{chunk-5CLWBPB5.js → chunk-ZCIL5IHU.js} +1 -1
- package/dist/chunk-ZH77BXMA.js +14 -0
- package/dist/generated/index.d.ts +10 -0
- package/dist/generated/index.js +101 -89
- package/dist/index.js +101 -89
- package/dist/styles.css +1370 -22
- 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-LOBV4QON.js +0 -137
- package/dist/{chunk-245IXG5P.js → chunk-3WMOEGEL.js} +0 -0
- package/dist/{chunk-ICPQIAD6.js → chunk-D7Q5MQRF.js} +1 -1
- package/dist/{chunk-ISDEXIXH.js → chunk-E6HXFFWO.js} +1 -1
- package/dist/{chunk-D4EOPIFL.js → chunk-EXRRTKWT.js} +1 -1
- package/dist/{chunk-S6J3EWDP.js → chunk-SXBJMBSV.js} +1 -1
- package/dist/{chunk-3JIZ2A6K.js → chunk-TMM32U7D.js} +1 -1
- package/dist/{chunk-LD3GEVQU.js → chunk-XQZ6EWOE.js} +1 -1
- package/dist/{chunk-K77LKW3X.js → chunk-ZFM5L7M4.js} +2 -2
package/dist/styles.css
CHANGED
|
@@ -702,7 +702,7 @@
|
|
|
702
702
|
}
|
|
703
703
|
|
|
704
704
|
|
|
705
|
-
/* AppShell-
|
|
705
|
+
/* AppShell-BIUFNT3J.css */
|
|
706
706
|
/*
|
|
707
707
|
* The application frame: a rail on the FRAME, and the screen on a SHEET that
|
|
708
708
|
* floats beside it.
|
|
@@ -1511,14 +1511,21 @@
|
|
|
1511
1511
|
* half the foot's gap, to meet the row above (HitArea.css).
|
|
1512
1512
|
*
|
|
1513
1513
|
* IT IS THE ONE TALL ROW IN THE FOOT. Who is signed in is the row a reader
|
|
1514
|
-
* looks for, so it stands
|
|
1515
|
-
*
|
|
1516
|
-
*
|
|
1517
|
-
*
|
|
1518
|
-
*
|
|
1519
|
-
*
|
|
1520
|
-
*
|
|
1521
|
-
* ring
|
|
1514
|
+
* looks for, so it stands half a spacing step under the large control step
|
|
1515
|
+
* (`--crewlet-account-row-height`, 42px) around a medium badge (`size="md"`,
|
|
1516
|
+
* 32px), where the rows above it keep the compact step. At 44px it read as
|
|
1517
|
+
* cramped against the foot's edges, so it gives up the half step and the
|
|
1518
|
+
* space around it grows instead (`--crewlet-account-row-pad`, one step above
|
|
1519
|
+
* and below, where it was none): the row is slimmer and the foot breathes
|
|
1520
|
+
* more. It goes no lower than 42px because the badge's ring (1.5px, 2px out)
|
|
1521
|
+
* takes 39px of it, and 42 keeps the ring 1.5px clear of the row's hover fill
|
|
1522
|
+
* where 40 would leave half a pixel, which reads as the ring touching it. The
|
|
1523
|
+
* badge stands in a column of its own width (`--crewlet-account-row-badge`),
|
|
1524
|
+
* centred in it, so a smaller badge a caller hands the row lands where a
|
|
1525
|
+
* medium one would, and the column is inset 6px from the row's start, so the
|
|
1526
|
+
* badge's ring clears the row's edge on that side too. A 32px badge cannot
|
|
1527
|
+
* stand on the nav's 14px glyph column: centred there, its ring (1.5px, 2px
|
|
1528
|
+
* out) would cross the row's own edge.
|
|
1522
1529
|
*
|
|
1523
1530
|
* The name takes the body's size (`--font-size-compact`, the nav's words) and
|
|
1524
1531
|
* both lines take the body's leading, a step a 36px row had no room for.
|
|
@@ -1533,9 +1540,17 @@
|
|
|
1533
1540
|
* after the name is the half step, and the controls beside the link
|
|
1534
1541
|
* (Settings, Preferences) are half a step apart and half a step off it.
|
|
1535
1542
|
* Outside a rail's foot the row keeps its chevron.
|
|
1543
|
+
*
|
|
1544
|
+
* THE CONTROLS STAND AS TALL AS THE ROW. Beside a 42px row, the small step's
|
|
1545
|
+
* 26px squares floated in the middle of it as two smaller boxes, and their
|
|
1546
|
+
* hover fill ended short of the row's on both sides. They take the row's
|
|
1547
|
+
* height (`--crewlet-account-row-height`) and keep the small step's width and
|
|
1548
|
+
* glyph, so the fill lines up with the row's top and bottom and the words
|
|
1549
|
+
* keep every pixel of their column.
|
|
1536
1550
|
*/
|
|
1537
1551
|
.crewlet-app-shell__rail-foot .crewlet-account-row {
|
|
1538
|
-
--crewlet-account-row-pad: var(--spacing-
|
|
1552
|
+
--crewlet-account-row-pad: var(--spacing-1);
|
|
1553
|
+
--crewlet-account-row-height: calc(var(--size-control-lg) - var(--spacing-1) / 2);
|
|
1539
1554
|
--crewlet-account-row-badge: 32px;
|
|
1540
1555
|
gap: calc(var(--spacing-1) / 2);
|
|
1541
1556
|
}
|
|
@@ -1543,8 +1558,8 @@
|
|
|
1543
1558
|
.crewlet-app-shell__rail-foot .crewlet-account-row__who {
|
|
1544
1559
|
--crewlet-hit-area-block-start: calc(var(--crewlet-rail-foot-gap) / 2 + var(--crewlet-account-row-pad));
|
|
1545
1560
|
gap: 0;
|
|
1546
|
-
min-height: var(--
|
|
1547
|
-
padding-block: var(--spacing-1);
|
|
1561
|
+
min-height: var(--crewlet-account-row-height);
|
|
1562
|
+
padding-block: calc(var(--spacing-1) / 2);
|
|
1548
1563
|
padding-inline: calc(var(--spacing-1) + var(--spacing-1) / 2) calc(var(--spacing-1) / 2);
|
|
1549
1564
|
}
|
|
1550
1565
|
|
|
@@ -1570,6 +1585,10 @@
|
|
|
1570
1585
|
gap: calc(var(--spacing-1) / 2);
|
|
1571
1586
|
}
|
|
1572
1587
|
|
|
1588
|
+
.crewlet-app-shell__rail-foot .crewlet-account-row__actions .crewlet-icon-btn {
|
|
1589
|
+
height: var(--crewlet-account-row-height);
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1573
1592
|
/* The row as the reader's menu button: a button drawn as the link is. */
|
|
1574
1593
|
button.crewlet-account-row__who {
|
|
1575
1594
|
width: 100%;
|
|
@@ -2455,7 +2474,7 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2455
2474
|
}
|
|
2456
2475
|
|
|
2457
2476
|
|
|
2458
|
-
/* ArtifactBar-
|
|
2477
|
+
/* ArtifactBar-UMZCTARR.css */
|
|
2459
2478
|
/*
|
|
2460
2479
|
* One row, one hairline under it, the height of a large row. The lead (the
|
|
2461
2480
|
* way back, the glyph, the title, the version) takes what the end leaves it
|
|
@@ -2562,6 +2581,15 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2562
2581
|
overflow: visible;
|
|
2563
2582
|
}
|
|
2564
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
|
+
|
|
2565
2593
|
.crewlet-artifact-bar__rename {
|
|
2566
2594
|
min-width: 0;
|
|
2567
2595
|
max-width: 100%;
|
|
@@ -2885,7 +2913,7 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2885
2913
|
}
|
|
2886
2914
|
|
|
2887
2915
|
|
|
2888
|
-
/* ArtifactCard-
|
|
2916
|
+
/* ArtifactCard-SOB63NV5.css */
|
|
2889
2917
|
/*
|
|
2890
2918
|
* A card in a gallery: the preview on top at a fixed ratio, so a grid of them
|
|
2891
2919
|
* lines up whatever each preview is, the kind's badge over its foot, then the
|
|
@@ -3160,9 +3188,80 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
3160
3188
|
}
|
|
3161
3189
|
}
|
|
3162
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
|
+
|
|
3163
3261
|
@media (prefers-reduced-motion: reduce) {
|
|
3164
3262
|
.crewlet-artifact-card--card,
|
|
3165
|
-
.crewlet-artifact-card__actions
|
|
3263
|
+
.crewlet-artifact-card__actions,
|
|
3264
|
+
.crewlet-artifact-card__select {
|
|
3166
3265
|
transition: none;
|
|
3167
3266
|
}
|
|
3168
3267
|
}
|
|
@@ -3502,7 +3601,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3502
3601
|
}
|
|
3503
3602
|
|
|
3504
3603
|
|
|
3505
|
-
/* ArtifactKinds-
|
|
3604
|
+
/* ArtifactKinds-O3CALPVX.css */
|
|
3506
3605
|
/*
|
|
3507
3606
|
* A kind's colours, set once per kind on `--crewlet-kind-*` by its class
|
|
3508
3607
|
* (`crewlet-kind--<kind>`): the hue, its Fill and Line steps and the ink a
|
|
@@ -3517,6 +3616,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3517
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); }
|
|
3518
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); }
|
|
3519
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); }
|
|
3520
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); }
|
|
3521
3621
|
|
|
3522
3622
|
|
|
@@ -3733,7 +3833,7 @@ a.crewlet-make-row__item:active {
|
|
|
3733
3833
|
}
|
|
3734
3834
|
|
|
3735
3835
|
|
|
3736
|
-
/* ArtifactNameCell-
|
|
3836
|
+
/* ArtifactNameCell-3AHLUSE5.css */
|
|
3737
3837
|
/*
|
|
3738
3838
|
* An artifact's name in a list: the kind's mark on its tint, the title over
|
|
3739
3839
|
* one quiet line. Every colour is a token: the mark reads the kind's own Fill,
|
|
@@ -3773,6 +3873,18 @@ a.crewlet-make-row__item:active {
|
|
|
3773
3873
|
box-shadow: inset 0 0 0 1px var(--crewlet-kind-hue);
|
|
3774
3874
|
}
|
|
3775
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
|
+
|
|
3776
3888
|
.crewlet-artifact-name--trashed .crewlet-artifact-name__mark {
|
|
3777
3889
|
background: var(--color-surface-inset);
|
|
3778
3890
|
box-shadow: inset 0 0 0 1px var(--color-border-default);
|
|
@@ -4598,6 +4710,90 @@ button.crewlet-avatar-picker:hover .crewlet-avatar-picker__pip {
|
|
|
4598
4710
|
}
|
|
4599
4711
|
|
|
4600
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
|
+
|
|
4601
4797
|
/* BrandLockup-JKGXFCZF.css */
|
|
4602
4798
|
/*
|
|
4603
4799
|
* The brand lockup at the head of the rail.
|
|
@@ -4715,6 +4911,226 @@ button.crewlet-avatar-picker:hover .crewlet-avatar-picker__pip {
|
|
|
4715
4911
|
}
|
|
4716
4912
|
|
|
4717
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
|
+
|
|
4718
5134
|
/* Breadcrumb-YMWVM3SV.css */
|
|
4719
5135
|
/*
|
|
4720
5136
|
* The trail in a top bar.
|
|
@@ -8426,7 +8842,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
8426
8842
|
}
|
|
8427
8843
|
|
|
8428
8844
|
|
|
8429
|
-
/* Checkbox-
|
|
8845
|
+
/* Checkbox-MB22OW6P.css */
|
|
8430
8846
|
/*
|
|
8431
8847
|
* Checkbox: a box, its label and its consequence as one target.
|
|
8432
8848
|
*
|
|
@@ -8555,6 +8971,24 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
8555
8971
|
font-size: var(--font-size-compact);
|
|
8556
8972
|
}
|
|
8557
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
|
+
|
|
8558
8992
|
.crewlet-checkbox.is-disabled,
|
|
8559
8993
|
.crewlet-checkbox.is-disabled .crewlet-checkbox__control {
|
|
8560
8994
|
cursor: not-allowed;
|
|
@@ -9139,7 +9573,164 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
9139
9573
|
}
|
|
9140
9574
|
|
|
9141
9575
|
|
|
9142
|
-
/*
|
|
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 */
|
|
9143
9734
|
/*
|
|
9144
9735
|
* Combobox: a field that offers completions.
|
|
9145
9736
|
*
|
|
@@ -9222,6 +9813,88 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
9222
9813
|
cursor: not-allowed;
|
|
9223
9814
|
}
|
|
9224
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
|
+
|
|
9225
9898
|
|
|
9226
9899
|
/* CommandPalette-TOZYLWLE.css */
|
|
9227
9900
|
/*
|
|
@@ -9828,6 +10501,56 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
9828
10501
|
}
|
|
9829
10502
|
|
|
9830
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);
|
|
10541
|
+
}
|
|
10542
|
+
|
|
10543
|
+
.crewlet-contrast-badge__ratio {
|
|
10544
|
+
color: var(--color-text-primary);
|
|
10545
|
+
font-family: var(--font-family-mono);
|
|
10546
|
+
font-variant-numeric: tabular-nums;
|
|
10547
|
+
}
|
|
10548
|
+
|
|
10549
|
+
.crewlet-contrast-badge__unmeasured {
|
|
10550
|
+
color: var(--color-text-tertiary);
|
|
10551
|
+
}
|
|
10552
|
+
|
|
10553
|
+
|
|
9831
10554
|
/* Copyable-5PNRFOLS.css */
|
|
9832
10555
|
/*
|
|
9833
10556
|
* Copyable: a value and the one control that copies it.
|
|
@@ -10222,7 +10945,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
|
|
|
10222
10945
|
}
|
|
10223
10946
|
|
|
10224
10947
|
|
|
10225
|
-
/* DataGrid-
|
|
10948
|
+
/* DataGrid-VNGQESJA.css */
|
|
10226
10949
|
/*
|
|
10227
10950
|
* DataGrid: a list as columns, one track list on the grid.
|
|
10228
10951
|
*
|
|
@@ -10420,6 +11143,21 @@ button.crewlet-data-grid__row-link {
|
|
|
10420
11143
|
background: var(--color-brand-accent-soft);
|
|
10421
11144
|
}
|
|
10422
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
|
+
|
|
10423
11161
|
.crewlet-data-grid__row--cursor {
|
|
10424
11162
|
box-shadow: inset 2px 0 0 var(--color-brand-accent);
|
|
10425
11163
|
}
|
|
@@ -15667,6 +16405,240 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15667
16405
|
}
|
|
15668
16406
|
|
|
15669
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
|
+
|
|
15670
16642
|
/* Highlight-DXLV2R6L.css */
|
|
15671
16643
|
/*
|
|
15672
16644
|
* Words a search matched (Highlight.tsx).
|
|
@@ -18920,6 +19892,168 @@ a.crewlet-icon-btn {
|
|
|
18920
19892
|
}
|
|
18921
19893
|
|
|
18922
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;
|
|
19945
|
+
}
|
|
19946
|
+
|
|
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);
|
|
19959
|
+
overflow: hidden;
|
|
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);
|
|
19964
|
+
}
|
|
19965
|
+
|
|
19966
|
+
.crewlet-logo-slot__stage.is-empty {
|
|
19967
|
+
border-style: dashed;
|
|
19968
|
+
border-color: var(--color-border-strong);
|
|
19969
|
+
}
|
|
19970
|
+
|
|
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);
|
|
19984
|
+
}
|
|
19985
|
+
|
|
19986
|
+
.crewlet-logo-slot__space.has-guide::after {
|
|
19987
|
+
content: '';
|
|
19988
|
+
position: absolute;
|
|
19989
|
+
inset: 0;
|
|
19990
|
+
border: 1px dashed var(--crewlet-logo-slot-ink);
|
|
19991
|
+
border-radius: var(--radius-xs);
|
|
19992
|
+
opacity: 0.5;
|
|
19993
|
+
pointer-events: none;
|
|
19994
|
+
}
|
|
19995
|
+
|
|
19996
|
+
.crewlet-logo-slot__image {
|
|
19997
|
+
display: block;
|
|
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;
|
|
20001
|
+
}
|
|
20002
|
+
|
|
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;
|
|
20012
|
+
}
|
|
20013
|
+
|
|
20014
|
+
.crewlet-logo-slot__stage--square .crewlet-logo-slot__placeholder {
|
|
20015
|
+
width: var(--size-row-lg);
|
|
20016
|
+
}
|
|
20017
|
+
|
|
20018
|
+
.crewlet-logo-slot__stage.is-uploading .crewlet-logo-slot__space {
|
|
20019
|
+
opacity: 0.5;
|
|
20020
|
+
}
|
|
20021
|
+
|
|
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;
|
|
20032
|
+
gap: var(--spacing-1);
|
|
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);
|
|
20037
|
+
}
|
|
20038
|
+
|
|
20039
|
+
.crewlet-logo-slot__error > svg {
|
|
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 {
|
|
20052
|
+
color: var(--color-text-tertiary);
|
|
20053
|
+
font-size: var(--font-size-xs);
|
|
20054
|
+
}
|
|
20055
|
+
|
|
20056
|
+
|
|
18923
20057
|
/* MarkdownEditor-WOKV7CLK.css */
|
|
18924
20058
|
/*
|
|
18925
20059
|
* Writing markdown (MarkdownEditor.tsx): the bar, the source or its preview,
|
|
@@ -19567,7 +20701,7 @@ a.crewlet-icon-btn {
|
|
|
19567
20701
|
}
|
|
19568
20702
|
|
|
19569
20703
|
|
|
19570
|
-
/* Modal-
|
|
20704
|
+
/* Modal-3HMP7WAZ.css */
|
|
19571
20705
|
/*
|
|
19572
20706
|
* The modal surface: the veil, the frame, and the three bands inside it.
|
|
19573
20707
|
*
|
|
@@ -19682,6 +20816,32 @@ a.crewlet-icon-btn {
|
|
|
19682
20816
|
animation: crewlet-modal-lift var(--motion-duration-moderate) var(--motion-easing-emphasized);
|
|
19683
20817
|
}
|
|
19684
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
|
+
|
|
19685
20845
|
/*
|
|
19686
20846
|
* The sheet's veil fades over the same span the sheet itself travels, so the
|
|
19687
20847
|
* two are one movement rather than a ground that lands and a panel that
|
|
@@ -20154,6 +21314,10 @@ a.crewlet-icon-btn {
|
|
|
20154
21314
|
.crewlet-modal-overlay--bottom > .crewlet-modal--dialog {
|
|
20155
21315
|
animation: none;
|
|
20156
21316
|
}
|
|
21317
|
+
|
|
21318
|
+
.crewlet-modal-overlay--phone-sheet > .crewlet-modal--dialog {
|
|
21319
|
+
animation: none;
|
|
21320
|
+
}
|
|
20157
21321
|
}
|
|
20158
21322
|
|
|
20159
21323
|
|
|
@@ -24958,6 +26122,70 @@ svg.crewlet-select__chevron {
|
|
|
24958
26122
|
}
|
|
24959
26123
|
|
|
24960
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
|
+
|
|
24961
26189
|
/* SettingsTable-6DUFAFXG.css */
|
|
24962
26190
|
/*
|
|
24963
26191
|
* SettingsTable: a read-only table of settings, one row each, on one grid.
|
|
@@ -30980,7 +32208,7 @@ b.crewlet-switcher__match {
|
|
|
30980
32208
|
}
|
|
30981
32209
|
|
|
30982
32210
|
|
|
30983
|
-
/* ThemeGallery-
|
|
32211
|
+
/* ThemeGallery-UEFZRT6W.css */
|
|
30984
32212
|
/*
|
|
30985
32213
|
* The gallery of themes: each group's heading over a grid of cards.
|
|
30986
32214
|
*
|
|
@@ -31085,6 +32313,27 @@ b.crewlet-switcher__match {
|
|
|
31085
32313
|
white-space: nowrap;
|
|
31086
32314
|
}
|
|
31087
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
|
+
|
|
31088
32337
|
/*
|
|
31089
32338
|
* FORCED COLORS keeps the border and drops the accent, so the chosen card
|
|
31090
32339
|
* would look like every other; the system's own selected colour says it.
|
|
@@ -33886,6 +35135,105 @@ svg.crewlet-time-window__tick {
|
|
|
33886
35135
|
}
|
|
33887
35136
|
|
|
33888
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
|
+
|
|
33889
35237
|
/* VersionCompare-UUZOPTQO.css */
|
|
33890
35238
|
/* VersionCompare: a head naming the two versions with the lens switch at its
|
|
33891
35239
|
end, then the changes or the two versions. */
|