@crewlethq/ui 0.37.0 → 0.38.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 +58 -0
- package/dist/Accordion/index.js +1 -1
- package/dist/AgentHandoffPanel/index.js +5 -5
- package/dist/AppShell/index.d.ts +1 -0
- package/dist/AppShell/index.js +5 -3
- package/dist/{AppShell-JTSEOA57.css → AppShell-NDU4XMGF.css} +51 -6
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactBar/index.js +9 -7
- package/dist/ArtifactCard/index.js +2 -2
- package/dist/ArtifactCover/index.js +3 -3
- package/dist/ArtifactMakeRow/ArtifactMakeRow.d.ts +3 -1
- package/dist/ArtifactMakeRow/index.d.ts +1 -0
- package/dist/ArtifactMakeRow/index.js +2 -1
- package/dist/{ArtifactMakeRow-XBA2MPSY.css → ArtifactMakeRow-6UX2LTF7.css} +49 -6
- package/dist/AuthLayout/index.js +2 -2
- package/dist/AvatarPicker/index.js +8 -6
- package/dist/Canvas/index.js +4 -3
- package/dist/CanvasBoard/index.js +7 -6
- package/dist/CanvasToolbar/index.js +6 -5
- package/dist/Card/index.js +1 -1
- package/dist/{Card-QOVASQNU.css → Card-G2ZGT5Z6.css} +43 -0
- package/dist/ChangeMark/index.js +4 -3
- package/dist/Checkbox/index.js +3 -3
- package/dist/ChoiceList/index.d.ts +1 -0
- package/dist/ChoiceList/index.js +2 -1
- package/dist/{ChoiceList-EA2W6MOS.css → ChoiceList-KFYFAECP.css} +26 -4
- package/dist/Combobox/index.d.ts +1 -0
- package/dist/Combobox/index.js +6 -5
- package/dist/{Combobox-4FUVYIE7.css → Combobox-YDONYDTM.css} +2 -1
- package/dist/CommandPalette/index.d.ts +1 -0
- package/dist/CommandPalette/index.js +7 -6
- package/dist/{CommandPalette-7CFGVBND.css → CommandPalette-TOZYLWLE.css} +5 -1
- package/dist/CommentThread/index.js +5 -5
- package/dist/Composer/index.js +3 -3
- package/dist/{Composer-PXITWNEK.css → Composer-TXULCPPV.css} +1 -1
- package/dist/ConfirmField/index.js +3 -3
- package/dist/DataTable/index.js +7 -7
- package/dist/DataView/index.js +12 -12
- package/dist/DatasetSource/index.d.ts +1 -0
- package/dist/DatasetSource/index.js +3 -2
- package/dist/{DatasetSource-SMGX4PS5.css → DatasetSource-FFKTD3ZU.css} +16 -1
- package/dist/DateTimePicker/index.js +4 -4
- package/dist/{DateTimePicker-2IVTKFV2.css → DateTimePicker-3A7JIIVL.css} +3 -3
- package/dist/DescriptionList/DescriptionList.d.ts +12 -1
- package/dist/DescriptionList/index.js +1 -1
- package/dist/{DescriptionList-IXMRCSMK.css → DescriptionList-DEZISDLQ.css} +8 -1
- package/dist/Disclosure/index.js +1 -1
- package/dist/{Disclosure-VKBJJIZ7.css → Disclosure-P4FH3C35.css} +28 -2
- package/dist/DocTabsEditor/index.js +6 -6
- package/dist/Document/index.js +2 -2
- package/dist/{Document-YFWTWXJP.css → Document-TZ2NBLOR.css} +2 -2
- package/dist/{Editor-HORWMUM3.js → Editor-QV4JP242.js} +6 -6
- package/dist/FactList/index.js +4 -3
- package/dist/FollowBanner/index.js +3 -2
- package/dist/HitArea/hitArea.d.ts +7 -0
- package/dist/HitArea/index.d.ts +2 -0
- package/dist/HitArea/index.js +2 -0
- package/dist/HitArea-QUOS6ZDJ.css +35 -0
- package/dist/HuePicker/index.js +4 -3
- package/dist/Input/index.js +2 -2
- package/dist/{Input-ABGOFENS.css → Input-OQZBCRX5.css} +9 -4
- package/dist/Layer/index.js +2 -1
- package/dist/LinkInterstitial/index.js +4 -3
- package/dist/ListInput/index.js +5 -5
- package/dist/Listbox/index.js +3 -2
- package/dist/{Listbox-6WJNJQVQ.css → Listbox-NQV6E3FS.css} +3 -0
- package/dist/LivePreview/index.js +1 -1
- package/dist/{LivePreview-BROGKR4N.css → LivePreview-KQEDMQCY.css} +13 -0
- package/dist/MarkdownEditor/index.js +8 -6
- package/dist/Menu/index.js +3 -2
- package/dist/MergeConflicts/index.js +5 -4
- package/dist/Modal/index.js +3 -2
- package/dist/OrgTable/index.js +4 -3
- package/dist/Popover/index.js +3 -2
- package/dist/PresenterView/index.js +4 -3
- package/dist/PricingCard/index.js +2 -2
- package/dist/PrincipalPicker/index.js +7 -6
- package/dist/RichEditor/index.js +1 -1
- package/dist/SegmentedControl/index.d.ts +1 -0
- package/dist/SegmentedControl/index.js +4 -3
- package/dist/{SegmentedControl-FLI45IOW.css → SegmentedControl-B7XCUOML.css} +9 -2
- package/dist/Select/index.d.ts +1 -0
- package/dist/Select/index.js +5 -4
- package/dist/{Select-W3CHTZXP.css → Select-F526HLNR.css} +5 -4
- package/dist/ShareDialog/index.js +7 -6
- package/dist/SheetColumnEditor/index.js +12 -11
- package/dist/SheetGrid/index.js +9 -8
- package/dist/{SheetGrid-YRDXTIIZ.css → SheetGrid-XK7T7M34.css} +9 -4
- package/dist/Shortcut/index.js +3 -2
- package/dist/SidebarNav/index.d.ts +1 -0
- package/dist/SidebarNav/index.js +2 -1
- package/dist/{SidebarNav-KF66MLOM.css → SidebarNav-7SGUZYKK.css} +21 -2
- package/dist/SlideCompare/index.js +4 -3
- package/dist/SlideFilmstrip/index.js +6 -5
- package/dist/SlideGrid/index.js +4 -3
- package/dist/SlideStage/index.js +3 -2
- package/dist/SourceEditor/index.js +2 -2
- package/dist/{SourceEditor-QAYE2JS6.css → SourceEditor-OKPWPFXK.css} +1 -1
- package/dist/StatGroup/StatGroup.d.ts +11 -7
- package/dist/StatGroup/index.js +1 -1
- package/dist/StatGroup-DOFHX5QJ.css +168 -0
- package/dist/Switcher/index.js +8 -8
- package/dist/TableCells/index.js +2 -2
- package/dist/Tabs/index.d.ts +1 -0
- package/dist/Tabs/index.js +2 -1
- package/dist/{Tabs-MMZXV5EF.css → Tabs-WIF7457H.css} +20 -3
- package/dist/Tag/index.js +1 -1
- package/dist/{Tag-SRGTK5KI.css → Tag-2DQOVE6W.css} +15 -5
- package/dist/TagsInput/index.js +6 -6
- package/dist/{TagsInput-7EGBBXHS.css → TagsInput-CLFHP6I2.css} +1 -1
- package/dist/ThemeGallery/index.js +4 -3
- package/dist/ThemeSwitcher/index.js +5 -4
- package/dist/TimeWindowPicker/index.js +8 -7
- package/dist/{TimeWindowPicker-DEFDV77Z.css → TimeWindowPicker-I3HXC74I.css} +3 -3
- package/dist/Toaster/index.js +2 -1
- package/dist/Toolbar/index.js +3 -2
- package/dist/Tooltip/index.js +3 -2
- package/dist/TreeCanvas/index.js +5 -4
- package/dist/TreeGrid/index.js +3 -2
- package/dist/VersionCompare/index.js +5 -4
- package/dist/{chunk-CCAXYHQS.js → chunk-2QZ2VPHR.js} +3 -1
- package/dist/chunk-2YTOOH3A.js +4 -0
- package/dist/{chunk-QWNVSR6G.js → chunk-3KYVFG47.js} +1 -1
- package/dist/{chunk-H5NOLRGH.js → chunk-3V5T5K5H.js} +1 -1
- package/dist/{chunk-BIQDJOJZ.js → chunk-3ZUINC7C.js} +2 -2
- package/dist/{chunk-K4VP6ZKE.js → chunk-4BJK7FE5.js} +1 -1
- package/dist/chunk-4ISUIS6F.js +3 -0
- package/dist/{chunk-FG4O64DV.js → chunk-4L2BWSHR.js} +5 -5
- package/dist/{chunk-PLTCDSTU.js → chunk-4LRAJXHL.js} +1 -1
- package/dist/{chunk-4ZJLOKSS.js → chunk-5BUOMF6N.js} +2 -2
- package/dist/{chunk-47JQAGRV.js → chunk-66X5WDKE.js} +1 -1
- package/dist/{chunk-66NGUD5S.js → chunk-6NNY5WBF.js} +8 -7
- package/dist/{chunk-5RT5O4JR.js → chunk-7CGPPAYR.js} +1 -1
- package/dist/{chunk-F73MC7EZ.js → chunk-7KHM2FZH.js} +2 -2
- package/dist/{chunk-VL6CUNSX.js → chunk-7SDUKCNW.js} +4 -1
- package/dist/{chunk-JML75PGJ.js → chunk-A23KDROH.js} +3 -3
- package/dist/{chunk-PJIPUEJ3.js → chunk-AXS6MBNH.js} +1 -1
- package/dist/{chunk-2FPENTCF.js → chunk-AYHIF6DH.js} +1 -1
- package/dist/{chunk-J6ON5SYE.js → chunk-B5J23C73.js} +1 -1
- package/dist/{chunk-7VAUGG6B.js → chunk-B5UHX5UC.js} +2 -2
- package/dist/{chunk-AOLCZDZ6.js → chunk-BH52LIY6.js} +5 -5
- package/dist/{chunk-WX2NIG4G.js → chunk-BJI3RFXG.js} +1 -1
- package/dist/{chunk-JXRI5YD2.js → chunk-BT5H2THK.js} +2 -1
- package/dist/{chunk-FHHYXZSP.js → chunk-C7OKDYBH.js} +2 -2
- package/dist/{chunk-JBUMD6DS.js → chunk-CFGGE3HO.js} +1 -1
- package/dist/{chunk-WYKWXRJ4.js → chunk-CQFQGAZI.js} +1 -1
- package/dist/{chunk-GMLAKNFY.js → chunk-D2OL3ZSS.js} +1 -1
- package/dist/{chunk-D7GNNID2.js → chunk-D3EJSLCL.js} +2 -2
- package/dist/{chunk-BUVCV3WI.js → chunk-D6FEHY5G.js} +3 -2
- package/dist/{chunk-4BYHAOHH.js → chunk-DAERKOOG.js} +3 -2
- package/dist/{chunk-PGZ2R3ON.js → chunk-DYB66CNM.js} +23 -7
- package/dist/{chunk-PPFX6GRK.js → chunk-EAEJ7CDM.js} +6 -3
- package/dist/{chunk-WZGYIVYH.js → chunk-EAQLI2SO.js} +4 -2
- package/dist/{chunk-GYBDPCRC.js → chunk-ECGGQX2H.js} +2 -2
- package/dist/{chunk-RH2NCQBZ.js → chunk-ETVEGR2Y.js} +2 -2
- package/dist/{chunk-SUXP4OBT.js → chunk-F4LPQA4E.js} +1 -1
- package/dist/{chunk-KYZMN6I6.js → chunk-FBW3Q2OY.js} +2 -2
- package/dist/{chunk-JQLS3MZB.js → chunk-FWBKMPNR.js} +1 -1
- package/dist/{chunk-OOWPSBIS.js → chunk-GMW4ZHST.js} +3 -3
- package/dist/{chunk-R25RGPUB.js → chunk-H5XTJ7GJ.js} +2 -3
- package/dist/{chunk-6ZJ3N7QI.js → chunk-I33UIUZD.js} +1 -1
- package/dist/{chunk-GRYZ5EP3.js → chunk-IPWU6ERC.js} +14 -3
- package/dist/{chunk-W3HYWD63.js → chunk-JZPK4IXR.js} +16 -9
- package/dist/{chunk-K3IJQNB7.js → chunk-KHJIEPZV.js} +3 -2
- package/dist/{chunk-GFV4LJHH.js → chunk-KYIAFNU7.js} +1 -1
- package/dist/{chunk-F2XSYBKH.js → chunk-MFS6F2P7.js} +4 -1
- package/dist/chunk-MICRGE3J.js +1 -0
- package/dist/{chunk-PGRPNDWM.js → chunk-NR4CPM4T.js} +1 -1
- package/dist/{chunk-5WDXPHEW.js → chunk-NRBAXRWE.js} +1 -1
- package/dist/{chunk-YSGLEHND.js → chunk-NUZHC6MM.js} +14 -2
- package/dist/{chunk-WGD2HX2A.js → chunk-OED6LUWE.js} +1 -1
- package/dist/{chunk-MICH6QSJ.js → chunk-OGXHZHRX.js} +1 -1
- package/dist/{chunk-OHA6WSAG.js → chunk-OTCXRJ7D.js} +1 -1
- package/dist/{chunk-N5SKHIAP.js → chunk-PAQXOP2M.js} +8 -6
- package/dist/{chunk-KJW2AS57.js → chunk-PEUGPAKH.js} +1 -1
- package/dist/{chunk-IPAU6FLH.js → chunk-PPHTIKZO.js} +1 -1
- package/dist/{chunk-44WJLPQS.js → chunk-PT6WKXKW.js} +2 -2
- package/dist/{chunk-P6WFZDKS.js → chunk-PWG3VHRQ.js} +2 -2
- package/dist/{chunk-EAKC24BW.js → chunk-R2IBCEU6.js} +16 -4
- package/dist/{chunk-HOIZ6MIS.js → chunk-RLJXVFEH.js} +1 -1
- package/dist/{chunk-NQGPD6NX.js → chunk-RMEBFYL7.js} +1 -1
- package/dist/{chunk-APDKUGSH.js → chunk-S27UBCVX.js} +5 -4
- package/dist/{chunk-XEGZHHRH.js → chunk-SVGARBDY.js} +1 -1
- package/dist/{chunk-UWGUKMBK.js → chunk-SYBYFQTY.js} +2 -2
- package/dist/{chunk-IUYUS2SO.js → chunk-TYONQSOK.js} +2 -2
- package/dist/{chunk-DQSXWQMJ.js → chunk-U3ILLCR2.js} +1 -1
- package/dist/{chunk-L4WZSVMT.js → chunk-UB6MLXUL.js} +3 -3
- package/dist/{chunk-EARDAJQY.js → chunk-UWRBD2YO.js} +2 -2
- package/dist/{chunk-F23N4MVU.js → chunk-UXYEOWG5.js} +1 -1
- package/dist/{chunk-UCCC7YVZ.js → chunk-W7PAIVAP.js} +4 -2
- package/dist/{chunk-T5RQGI6O.js → chunk-X3UYTAOG.js} +1 -1
- package/dist/{chunk-EOQFPZEE.js → chunk-XBURIXHO.js} +2 -2
- package/dist/{chunk-VKKUGZ3G.js → chunk-XQZ6EWOE.js} +8 -5
- package/dist/{chunk-TVRBQMIX.js → chunk-YPMGP2X4.js} +6 -6
- package/dist/{chunk-GS7ZTHPF.js → chunk-YQG4PZGC.js} +7 -7
- package/dist/{chunk-5QXRI35B.js → chunk-ZK3VYY7L.js} +1 -1
- package/dist/{chunk-2QEDJSJC.js → chunk-ZMDYQ2HH.js} +1 -1
- package/dist/{chunk-27GD7LVR.js → chunk-ZMWXE4GT.js} +1 -1
- package/dist/{chunk-RIAZM6L3.js → chunk-ZNOXQACX.js} +1 -1
- package/dist/generated/index.d.ts +1 -0
- package/dist/generated/index.js +106 -104
- package/dist/index.js +106 -104
- package/dist/styles.css +508 -102
- package/dist/utils/focusModality.d.ts +17 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +3 -3
- package/dist/StatGroup-PADTJCUQ.css +0 -86
- package/dist/chunk-WKEPORNM.js +0 -2
- /package/dist/{chunk-PNNYVN52.js → chunk-4QQ3MND5.js} +0 -0
package/dist/styles.css
CHANGED
|
@@ -702,7 +702,7 @@
|
|
|
702
702
|
}
|
|
703
703
|
|
|
704
704
|
|
|
705
|
-
/* AppShell-
|
|
705
|
+
/* AppShell-NDU4XMGF.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.
|
|
@@ -851,10 +851,11 @@
|
|
|
851
851
|
/* The same gutter the nav takes, so what the foot says lines up with the rows
|
|
852
852
|
above it rather than sitting further out. */
|
|
853
853
|
.crewlet-app-shell__rail-foot {
|
|
854
|
+
--crewlet-rail-foot-gap: var(--spacing-1);
|
|
854
855
|
flex: none;
|
|
855
856
|
display: flex;
|
|
856
857
|
flex-direction: column;
|
|
857
|
-
gap: var(--
|
|
858
|
+
gap: var(--crewlet-rail-foot-gap);
|
|
858
859
|
padding: var(--spacing-2) var(--size-nav-gutter);
|
|
859
860
|
border-top: 1px solid var(--color-border-default);
|
|
860
861
|
}
|
|
@@ -885,7 +886,9 @@
|
|
|
885
886
|
* compact density cannot take the target under it.
|
|
886
887
|
*
|
|
887
888
|
* And the boundary is TRANSPARENT rather than absent, spending one pixel of
|
|
888
|
-
* that step rather than adding one on top of it.
|
|
889
|
+
* that step rather than adding one on top of it. It spends a pixel of the row
|
|
890
|
+
* pad too: added to it, the boundary stood the row's mark and words a pixel
|
|
891
|
+
* right of every nav glyph and word above them. A button carries one at every
|
|
889
892
|
* variant so that a bordered variant and a borderless one stand the same
|
|
890
893
|
* height, and the row this package draws carries the same one for the same
|
|
891
894
|
* reason: without it the two rows in one foot are 34px and 36px, and the
|
|
@@ -900,7 +903,7 @@
|
|
|
900
903
|
width: 100%;
|
|
901
904
|
min-width: 0;
|
|
902
905
|
min-height: var(--size-row-sm);
|
|
903
|
-
padding: calc(var(--spacing-2) - 1px) var(--size-nav-row-pad);
|
|
906
|
+
padding: calc(var(--spacing-2) - 1px) calc(var(--size-nav-row-pad) - 1px);
|
|
904
907
|
border: 1px solid transparent;
|
|
905
908
|
border-radius: var(--radius-md);
|
|
906
909
|
background: transparent;
|
|
@@ -914,6 +917,10 @@
|
|
|
914
917
|
|
|
915
918
|
.crewlet-app-shell__rail-row--action,
|
|
916
919
|
.crewlet-app-shell__rail-foot > .crewlet-btn {
|
|
920
|
+
/* Half the foot's gap to each neighbour, so the rows' targets meet
|
|
921
|
+
(HitArea.css), across the row's 1px border; the account row below
|
|
922
|
+
reaches back the same way. */
|
|
923
|
+
--crewlet-hit-area-block: calc(var(--crewlet-rail-foot-gap, 0px) / 2 + 1px);
|
|
917
924
|
cursor: pointer;
|
|
918
925
|
transition:
|
|
919
926
|
background var(--motion-duration-fast) var(--motion-easing-default),
|
|
@@ -1127,13 +1134,22 @@
|
|
|
1127
1134
|
overflow: hidden;
|
|
1128
1135
|
}
|
|
1129
1136
|
|
|
1137
|
+
/*
|
|
1138
|
+
* THE BAR'S INSET IS THE CONTENT'S, so a page's first line starts under the
|
|
1139
|
+
* bar's title and its cards end under the bar's last control. It stood 16px
|
|
1140
|
+
* from each edge over a content column inset 20px, and at its end the
|
|
1141
|
+
* content also gives up the scroller's gutter, which the bar, not scrolling,
|
|
1142
|
+
* did not: with scrollbars drawn in the layout every page's actions ended
|
|
1143
|
+
* 15px past the cards under them. The gutter is measured by the shell
|
|
1144
|
+
* (`--crewlet-app-shell-gutter`, 0 where scrollbars overlay the content).
|
|
1145
|
+
*/
|
|
1130
1146
|
.crewlet-app-shell__topbar {
|
|
1131
1147
|
display: flex;
|
|
1132
1148
|
align-items: center;
|
|
1133
1149
|
gap: var(--spacing-3);
|
|
1134
1150
|
flex: none;
|
|
1135
1151
|
height: var(--crewlet-app-shell-topbar);
|
|
1136
|
-
padding: 0 var(--spacing-
|
|
1152
|
+
padding: 0 calc(var(--spacing-5) + var(--crewlet-app-shell-gutter, 0px)) 0 var(--spacing-5);
|
|
1137
1153
|
border-bottom: 1px solid var(--color-border-default);
|
|
1138
1154
|
background: var(--color-surface-background);
|
|
1139
1155
|
}
|
|
@@ -1316,7 +1332,12 @@
|
|
|
1316
1332
|
}
|
|
1317
1333
|
|
|
1318
1334
|
/* THE TOP BAR'S GUTTER, 16px: the content's 12px stood every page's first
|
|
1319
|
-
line 4px left of the title and the controls over it.
|
|
1335
|
+
line 4px left of the title and the controls over it. The bar and the
|
|
1336
|
+
content take it together. */
|
|
1337
|
+
.crewlet-app-shell__topbar {
|
|
1338
|
+
padding: 0 calc(var(--spacing-4) + var(--crewlet-app-shell-gutter, 0px)) 0 var(--spacing-4);
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1320
1341
|
.crewlet-app-shell__content {
|
|
1321
1342
|
padding: var(--spacing-4) var(--spacing-4) var(--spacing-9);
|
|
1322
1343
|
}
|
|
@@ -1340,11 +1361,12 @@
|
|
|
1340
1361
|
* the controls off the rail.
|
|
1341
1362
|
*/
|
|
1342
1363
|
.crewlet-account-row {
|
|
1364
|
+
--crewlet-account-row-pad: var(--spacing-1);
|
|
1343
1365
|
display: flex;
|
|
1344
1366
|
align-items: center;
|
|
1345
1367
|
gap: var(--spacing-1);
|
|
1346
1368
|
min-width: 0;
|
|
1347
|
-
padding: var(--
|
|
1369
|
+
padding: var(--crewlet-account-row-pad) 0;
|
|
1348
1370
|
}
|
|
1349
1371
|
|
|
1350
1372
|
.crewlet-account-row__who {
|
|
@@ -1361,6 +1383,29 @@
|
|
|
1361
1383
|
transition: background var(--motion-duration-fast) var(--motion-easing-default);
|
|
1362
1384
|
}
|
|
1363
1385
|
|
|
1386
|
+
/*
|
|
1387
|
+
* In the rail's foot, the account row reaches up across its own padding to
|
|
1388
|
+
* half the foot's gap, to meet the row above (HitArea.css).
|
|
1389
|
+
*
|
|
1390
|
+
* AND IT STANDS ON THE NAV'S COLUMNS: the avatar centred on the column every
|
|
1391
|
+
* nav glyph is centred on, and the name starting on the line every nav word
|
|
1392
|
+
* starts on. On a 4px inset with an 8px gap a 26px avatar stood 2px left of
|
|
1393
|
+
* the glyphs above it and the name 2px right of their words. The avatar's box
|
|
1394
|
+
* takes a nav glyph's width (`sm`, 14px) and the badge is centred over it, so
|
|
1395
|
+
* whatever size of badge a caller hands the row, it is centred where a glyph
|
|
1396
|
+
* is, and the row takes the nav row's pad and its glyph-to-word gap.
|
|
1397
|
+
*/
|
|
1398
|
+
.crewlet-app-shell__rail-foot .crewlet-account-row__who {
|
|
1399
|
+
--crewlet-hit-area-block-start: calc(var(--crewlet-rail-foot-gap) / 2 + var(--crewlet-account-row-pad));
|
|
1400
|
+
gap: calc(var(--spacing-2) + var(--spacing-1) / 2);
|
|
1401
|
+
padding-inline-start: var(--size-nav-row-pad);
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
.crewlet-app-shell__rail-foot .crewlet-account-row__avatar {
|
|
1405
|
+
justify-content: center;
|
|
1406
|
+
width: 14px;
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1364
1409
|
/* The row as the reader's menu button: a button drawn as the link is. */
|
|
1365
1410
|
button.crewlet-account-row__who {
|
|
1366
1411
|
width: 100%;
|
|
@@ -3299,7 +3344,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3299
3344
|
.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); }
|
|
3300
3345
|
|
|
3301
3346
|
|
|
3302
|
-
/* ArtifactMakeRow-
|
|
3347
|
+
/* ArtifactMakeRow-6UX2LTF7.css */
|
|
3303
3348
|
/*
|
|
3304
3349
|
* The "Start a new artifact" tray.
|
|
3305
3350
|
*
|
|
@@ -3310,9 +3355,16 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3310
3355
|
*
|
|
3311
3356
|
* THE TRAY SIZES ITSELF BY ITS OWN WIDTH, never the window's: it sits in a
|
|
3312
3357
|
* page column a sidebar narrows, so three steps are container queries on the
|
|
3313
|
-
* tray. Under 560px three across
|
|
3314
|
-
* line,
|
|
3315
|
-
* the mark beside the name and what the kind is for under it.
|
|
3358
|
+
* tray. Under 560px three across, each its mark over its name; from 560px
|
|
3359
|
+
* every kind in one line, still mark over name, so a long name is never cut;
|
|
3360
|
+
* from 920px the mark beside the name and what the kind is for under it.
|
|
3361
|
+
*
|
|
3362
|
+
* AND BY ITS OWN COUNT. A reader is offered the kinds their company runs, so
|
|
3363
|
+
* a tray holds five as often as six, and a grid fixed at six columns left an
|
|
3364
|
+
* empty sixth of dotted field at the end of the line, and three across left a
|
|
3365
|
+
* hole after the fifth. The line takes one column per kind
|
|
3366
|
+
* (`--crewlet-make-row-count`, set from the items), and the narrow tray fills
|
|
3367
|
+
* its rows by the count (`data-count`): see the narrow step below.
|
|
3316
3368
|
*/
|
|
3317
3369
|
|
|
3318
3370
|
.crewlet-make-row {
|
|
@@ -3328,9 +3380,10 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3328
3380
|
}
|
|
3329
3381
|
|
|
3330
3382
|
.crewlet-make-row__list {
|
|
3383
|
+
--crewlet-make-row-gap: var(--spacing-1);
|
|
3331
3384
|
display: grid;
|
|
3332
|
-
grid-template-columns: repeat(
|
|
3333
|
-
gap: var(--
|
|
3385
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3386
|
+
gap: var(--crewlet-make-row-gap);
|
|
3334
3387
|
margin: 0;
|
|
3335
3388
|
padding: var(--spacing-1);
|
|
3336
3389
|
list-style: none;
|
|
@@ -3355,6 +3408,10 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3355
3408
|
color: var(--color-text-primary);
|
|
3356
3409
|
text-decoration: none;
|
|
3357
3410
|
outline: none;
|
|
3411
|
+
/* Half the gap to each neighbour, so the targets meet (HitArea.css), and
|
|
3412
|
+
the 1px border the reach is measured inside of. */
|
|
3413
|
+
--crewlet-hit-area-block: calc(var(--crewlet-make-row-gap) / 2 + 1px);
|
|
3414
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-make-row-gap) / 2 + 1px);
|
|
3358
3415
|
transition:
|
|
3359
3416
|
background-color var(--motion-duration-fast) var(--motion-easing-out),
|
|
3360
3417
|
border-color var(--motion-duration-fast) var(--motion-easing-out),
|
|
@@ -3406,9 +3463,40 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3406
3463
|
line-height: 1.35;
|
|
3407
3464
|
}
|
|
3408
3465
|
|
|
3466
|
+
/*
|
|
3467
|
+
* THE NARROW TRAY, on six tracks, each kind two of them: three a row. A last
|
|
3468
|
+
* row that is short is centred under the full one rather than left with a
|
|
3469
|
+
* hole after it, so five kinds stand three and two, the two in the middle.
|
|
3470
|
+
* Two and four kinds stand two a row, which fills every row, and one kind
|
|
3471
|
+
* takes the tray.
|
|
3472
|
+
*/
|
|
3473
|
+
@container (width < 560px) {
|
|
3474
|
+
.crewlet-make-row__cell {
|
|
3475
|
+
grid-column: span 2;
|
|
3476
|
+
}
|
|
3477
|
+
|
|
3478
|
+
/* One kind short of a full last row: the first of the two moves in a track. */
|
|
3479
|
+
.crewlet-make-row__cell:nth-child(3n + 1):nth-last-child(2) {
|
|
3480
|
+
grid-column: 2 / span 2;
|
|
3481
|
+
}
|
|
3482
|
+
|
|
3483
|
+
/* A last row of one stands in the middle. */
|
|
3484
|
+
.crewlet-make-row__cell:nth-child(3n + 1):last-child {
|
|
3485
|
+
grid-column: 3 / span 2;
|
|
3486
|
+
}
|
|
3487
|
+
|
|
3488
|
+
.crewlet-make-row__list:is([data-count='2'], [data-count='4']) > .crewlet-make-row__cell {
|
|
3489
|
+
grid-column: span 3;
|
|
3490
|
+
}
|
|
3491
|
+
|
|
3492
|
+
.crewlet-make-row__list[data-count='1'] > .crewlet-make-row__cell {
|
|
3493
|
+
grid-column: span 6;
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3496
|
+
|
|
3409
3497
|
@container (width >= 560px) {
|
|
3410
3498
|
.crewlet-make-row__list {
|
|
3411
|
-
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
3499
|
+
grid-template-columns: repeat(var(--crewlet-make-row-count, 6), minmax(0, 1fr));
|
|
3412
3500
|
}
|
|
3413
3501
|
|
|
3414
3502
|
.crewlet-make-row__item {
|
|
@@ -6178,7 +6266,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
6178
6266
|
}
|
|
6179
6267
|
|
|
6180
6268
|
|
|
6181
|
-
/* Card-
|
|
6269
|
+
/* Card-G2ZGT5Z6.css */
|
|
6182
6270
|
/*
|
|
6183
6271
|
* Card, THE surface. Everything on a screen is a card, a row inside one, or a
|
|
6184
6272
|
* control.
|
|
@@ -6633,6 +6721,49 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
6633
6721
|
min-width: 0;
|
|
6634
6722
|
}
|
|
6635
6723
|
|
|
6724
|
+
/*
|
|
6725
|
+
* ON A NARROW CARD THE SUBTITLE TAKES A LINE OF ITS OWN, under the title and
|
|
6726
|
+
* the card's controls, and wraps there rather than ending.
|
|
6727
|
+
*
|
|
6728
|
+
* One line is right while the subtitle has room to say something beside the
|
|
6729
|
+
* title. In a card under 480px wide it had none: on a phone an Agent seats
|
|
6730
|
+
* card drew "Resets today at midnight, the week…" in 202px of a 361px
|
|
6731
|
+
* sentence, and the half it cut was the half that said when. On its own line
|
|
6732
|
+
* the subtitle has the head's whole width, and the title and the controls
|
|
6733
|
+
* keep the first.
|
|
6734
|
+
*
|
|
6735
|
+
* THE CARD IS THE CONTAINER, and only a card whose head has a subtitle, since
|
|
6736
|
+
* that is the one card this changes. Inline-size containment takes a card's
|
|
6737
|
+
* width from where it stands, never from its contents, which is how a panel
|
|
6738
|
+
* is laid out anyway; a card that sized itself to its contents (a tile in a
|
|
6739
|
+
* row that does not stretch it) and carried no subtitle is untouched.
|
|
6740
|
+
*
|
|
6741
|
+
* THE NAME BLOCK TAKES THE FIRST LINE'S ROOM rather than its own width. With
|
|
6742
|
+
* the row free to wrap, a title wider than what the controls leave would
|
|
6743
|
+
* otherwise push the controls onto a second line; from a zero basis it grows
|
|
6744
|
+
* into the room they leave and clips there, exactly as the one-line head does.
|
|
6745
|
+
*/
|
|
6746
|
+
.crewlet-card:has(> .crewlet-card__header > .crewlet-card__subtitle) {
|
|
6747
|
+
container: crewlet-card / inline-size;
|
|
6748
|
+
}
|
|
6749
|
+
|
|
6750
|
+
@container crewlet-card (width < 480px) {
|
|
6751
|
+
.crewlet-card__header:has(> .crewlet-card__subtitle) {
|
|
6752
|
+
flex-wrap: wrap;
|
|
6753
|
+
row-gap: var(--spacing-1);
|
|
6754
|
+
}
|
|
6755
|
+
|
|
6756
|
+
.crewlet-card__header:has(> .crewlet-card__subtitle) > .crewlet-card__header-main {
|
|
6757
|
+
flex: 1 1 0;
|
|
6758
|
+
}
|
|
6759
|
+
|
|
6760
|
+
.crewlet-card__header > .crewlet-card__subtitle {
|
|
6761
|
+
order: 1;
|
|
6762
|
+
flex: 1 1 100%;
|
|
6763
|
+
white-space: normal;
|
|
6764
|
+
}
|
|
6765
|
+
}
|
|
6766
|
+
|
|
6636
6767
|
.crewlet-card__description {
|
|
6637
6768
|
margin: 0;
|
|
6638
6769
|
font-size: var(--font-size-compact);
|
|
@@ -8005,7 +8136,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8005
8136
|
}
|
|
8006
8137
|
|
|
8007
8138
|
|
|
8008
|
-
/* ChoiceList-
|
|
8139
|
+
/* ChoiceList-KFYFAECP.css */
|
|
8009
8140
|
/*
|
|
8010
8141
|
* A short list of answers in one bordered box: a radio, the label with a line
|
|
8011
8142
|
* of detail under it, and a tag at the row's end. The selected row takes the
|
|
@@ -8016,8 +8147,10 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8016
8147
|
.crewlet-choice-list {
|
|
8017
8148
|
/* The platform's radio, sized here so a panel can line up with the text beside it. */
|
|
8018
8149
|
--crewlet-choice-list-radio-size: 13px;
|
|
8150
|
+
/* The step between two answers. Every row's pointer target reaches half of it. */
|
|
8151
|
+
--crewlet-choice-list-gap: var(--spacing-1);
|
|
8019
8152
|
display: grid;
|
|
8020
|
-
gap: var(--
|
|
8153
|
+
gap: var(--crewlet-choice-list-gap);
|
|
8021
8154
|
padding: var(--spacing-1);
|
|
8022
8155
|
border: 1px solid var(--color-border-strong);
|
|
8023
8156
|
border-radius: var(--radius-md);
|
|
@@ -8030,21 +8163,24 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8030
8163
|
|
|
8031
8164
|
.crewlet-choice-list__group {
|
|
8032
8165
|
display: grid;
|
|
8033
|
-
gap: var(--
|
|
8166
|
+
gap: var(--crewlet-choice-list-gap);
|
|
8034
8167
|
}
|
|
8035
8168
|
|
|
8036
8169
|
.crewlet-choice-list__item {
|
|
8037
8170
|
display: grid;
|
|
8038
|
-
gap: var(--
|
|
8171
|
+
gap: var(--crewlet-choice-list-gap);
|
|
8039
8172
|
}
|
|
8040
8173
|
|
|
8041
8174
|
/* The "Something else" a list ends with, set apart by a dashed rule. */
|
|
8042
8175
|
.crewlet-choice-list__item.is-separated {
|
|
8043
|
-
|
|
8176
|
+
--crewlet-choice-list-rule-pad: var(--spacing-1);
|
|
8177
|
+
padding-top: var(--crewlet-choice-list-rule-pad);
|
|
8044
8178
|
border-top: 1px dashed var(--color-border-strong);
|
|
8045
8179
|
}
|
|
8046
8180
|
|
|
8047
8181
|
.crewlet-choice-list__row {
|
|
8182
|
+
/* Half the step to each neighbour, so the targets meet (HitArea.css). */
|
|
8183
|
+
--crewlet-hit-area-block: calc(var(--crewlet-choice-list-gap) / 2);
|
|
8048
8184
|
display: grid;
|
|
8049
8185
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
8050
8186
|
align-items: start;
|
|
@@ -8055,6 +8191,23 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8055
8191
|
transition: background-color var(--motion-duration-fast) var(--motion-easing-default);
|
|
8056
8192
|
}
|
|
8057
8193
|
|
|
8194
|
+
/*
|
|
8195
|
+
* THE ANSWER AFTER THE RULE reaches up across it, so the pointer leaving the
|
|
8196
|
+
* row above lands on this one rather than on the rule: the dashed line sets
|
|
8197
|
+
* the answer apart for the eye, and is no gap for the hand.
|
|
8198
|
+
*/
|
|
8199
|
+
.crewlet-choice-list__item.is-separated > .crewlet-choice-list__row {
|
|
8200
|
+
--crewlet-hit-area-block-start: calc(var(--crewlet-choice-list-gap) / 2 + var(--crewlet-choice-list-rule-pad) + 1px);
|
|
8201
|
+
}
|
|
8202
|
+
|
|
8203
|
+
/*
|
|
8204
|
+
* A ROW WITH ITS PANEL OPEN reaches nothing downward: the panel is part of the
|
|
8205
|
+
* answer and holds controls of its own, which the row must not cover.
|
|
8206
|
+
*/
|
|
8207
|
+
.crewlet-choice-list__item:has(> .crewlet-choice-list__panel) > .crewlet-choice-list__row {
|
|
8208
|
+
--crewlet-hit-area-block-end: 0px;
|
|
8209
|
+
}
|
|
8210
|
+
|
|
8058
8211
|
/* A choice with a picture: the radio, the picture, the words, the tag. The
|
|
8059
8212
|
picture centres on the label and its detail together. */
|
|
8060
8213
|
.crewlet-choice-list__row.has-media {
|
|
@@ -8378,7 +8531,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8378
8531
|
}
|
|
8379
8532
|
|
|
8380
8533
|
|
|
8381
|
-
/* Combobox-
|
|
8534
|
+
/* Combobox-YDONYDTM.css */
|
|
8382
8535
|
/*
|
|
8383
8536
|
* Combobox: a field that offers completions.
|
|
8384
8537
|
*
|
|
@@ -8405,9 +8558,10 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8405
8558
|
overflow-y: auto;
|
|
8406
8559
|
overscroll-behavior: contain;
|
|
8407
8560
|
padding: var(--spacing-1);
|
|
8561
|
+
--crewlet-listbox-gap: 1px;
|
|
8408
8562
|
display: flex;
|
|
8409
8563
|
flex-direction: column;
|
|
8410
|
-
gap:
|
|
8564
|
+
gap: var(--crewlet-listbox-gap);
|
|
8411
8565
|
/*
|
|
8412
8566
|
* OPAQUE, and the product's own panel surface: a translucent list over a
|
|
8413
8567
|
* form puts two sets of words in the same place, and the words underneath
|
|
@@ -8461,7 +8615,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8461
8615
|
}
|
|
8462
8616
|
|
|
8463
8617
|
|
|
8464
|
-
/* CommandPalette-
|
|
8618
|
+
/* CommandPalette-TOZYLWLE.css */
|
|
8465
8619
|
/*
|
|
8466
8620
|
* The command palette: a field, an optional row of scopes, one scroller
|
|
8467
8621
|
* holding the lead and the list, and a key legend.
|
|
@@ -8627,10 +8781,11 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8627
8781
|
* draw and no slider to measure, and the bar is each tab's own edge.
|
|
8628
8782
|
*/
|
|
8629
8783
|
.crewlet-palette__scopes {
|
|
8784
|
+
--crewlet-palette-scope-gap: var(--spacing-4);
|
|
8630
8785
|
flex-shrink: 0;
|
|
8631
8786
|
display: flex;
|
|
8632
8787
|
align-items: stretch;
|
|
8633
|
-
gap: var(--
|
|
8788
|
+
gap: var(--crewlet-palette-scope-gap);
|
|
8634
8789
|
min-height: var(--size-row-md);
|
|
8635
8790
|
padding-inline: var(--spacing-4);
|
|
8636
8791
|
border-bottom: 1px solid var(--color-border-default);
|
|
@@ -8659,6 +8814,9 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8659
8814
|
font-weight: var(--font-weight-medium);
|
|
8660
8815
|
white-space: nowrap;
|
|
8661
8816
|
cursor: pointer;
|
|
8817
|
+
/* Half the gap to each neighbour, so the scopes' targets meet (HitArea.css).
|
|
8818
|
+
The row's own inline padding holds the reach at either end. */
|
|
8819
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-palette-scope-gap) / 2);
|
|
8662
8820
|
}
|
|
8663
8821
|
|
|
8664
8822
|
.crewlet-palette__scope:hover,
|
|
@@ -8873,7 +9031,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8873
9031
|
}
|
|
8874
9032
|
|
|
8875
9033
|
|
|
8876
|
-
/* Composer-
|
|
9034
|
+
/* Composer-TXULCPPV.css */
|
|
8877
9035
|
/*
|
|
8878
9036
|
* A message written in place: the field and its footer strip in one box. The
|
|
8879
9037
|
* BOX takes the focus ring every field in the package draws (see Input.css):
|
|
@@ -8903,7 +9061,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8903
9061
|
outline-offset: -1px;
|
|
8904
9062
|
}
|
|
8905
9063
|
|
|
8906
|
-
:root[data-crewlet-focus='pointer'] .crewlet-composer:has(.crewlet-composer__field:focus-visible) {
|
|
9064
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-composer:has(.crewlet-composer__field:focus-visible) {
|
|
8907
9065
|
outline-width: 1px;
|
|
8908
9066
|
outline-color: var(--color-border-selected);
|
|
8909
9067
|
}
|
|
@@ -11939,7 +12097,7 @@ body.crewlet-data-table-resizing {
|
|
|
11939
12097
|
}
|
|
11940
12098
|
|
|
11941
12099
|
|
|
11942
|
-
/* DatasetSource-
|
|
12100
|
+
/* DatasetSource-FFKTD3ZU.css */
|
|
11943
12101
|
/*
|
|
11944
12102
|
* DatasetSource: one entry of a dashboard's Sources rail. The title and its
|
|
11945
12103
|
* source kind, the definition, then where the rows stand, how many there are
|
|
@@ -11975,6 +12133,20 @@ body.crewlet-data-table-resizing {
|
|
|
11975
12133
|
|
|
11976
12134
|
button.crewlet-dataset-source__summary {
|
|
11977
12135
|
cursor: pointer;
|
|
12136
|
+
/* Half the list's gap to each neighbour, so the entries' targets meet
|
|
12137
|
+
(HitArea.css), across the entry's 1px boundary and the summary's own. */
|
|
12138
|
+
--crewlet-hit-area-block: calc(var(--crewlet-dataset-source-list-gap, 0px) / 2 + 2px);
|
|
12139
|
+
}
|
|
12140
|
+
|
|
12141
|
+
/* The list has no padding, so its first and last entries reach nothing past
|
|
12142
|
+
it; and an open entry's preview holds controls the summary must not cover. */
|
|
12143
|
+
.crewlet-dataset-source-list__item:first-child button.crewlet-dataset-source__summary {
|
|
12144
|
+
--crewlet-hit-area-block-start: 0px;
|
|
12145
|
+
}
|
|
12146
|
+
|
|
12147
|
+
.crewlet-dataset-source-list__item:last-child button.crewlet-dataset-source__summary,
|
|
12148
|
+
.crewlet-dataset-source--open > button.crewlet-dataset-source__summary {
|
|
12149
|
+
--crewlet-hit-area-block-end: 0px;
|
|
11978
12150
|
}
|
|
11979
12151
|
|
|
11980
12152
|
button.crewlet-dataset-source__summary:hover {
|
|
@@ -12100,9 +12272,10 @@ button.crewlet-dataset-source__summary:focus-visible {
|
|
|
12100
12272
|
}
|
|
12101
12273
|
|
|
12102
12274
|
.crewlet-dataset-source-list {
|
|
12275
|
+
--crewlet-dataset-source-list-gap: var(--spacing-1);
|
|
12103
12276
|
display: flex;
|
|
12104
12277
|
flex-direction: column;
|
|
12105
|
-
gap: var(--
|
|
12278
|
+
gap: var(--crewlet-dataset-source-list-gap);
|
|
12106
12279
|
margin: 0;
|
|
12107
12280
|
padding: 0;
|
|
12108
12281
|
list-style: none;
|
|
@@ -12113,7 +12286,7 @@ button.crewlet-dataset-source__summary:focus-visible {
|
|
|
12113
12286
|
}
|
|
12114
12287
|
|
|
12115
12288
|
|
|
12116
|
-
/* DateTimePicker-
|
|
12289
|
+
/* DateTimePicker-3A7JIIVL.css */
|
|
12117
12290
|
/*
|
|
12118
12291
|
* DateTimePicker: a Select-shaped trigger over a calendar dialog.
|
|
12119
12292
|
*
|
|
@@ -12172,8 +12345,8 @@ button.crewlet-dataset-source__summary:focus-visible {
|
|
|
12172
12345
|
}
|
|
12173
12346
|
|
|
12174
12347
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
12175
|
-
:root[data-crewlet-focus='pointer'] .crewlet-datetime:focus-visible,
|
|
12176
|
-
:root[data-crewlet-focus='pointer'] .crewlet-datetime.is-open {
|
|
12348
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-datetime:focus-visible,
|
|
12349
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-datetime.is-open {
|
|
12177
12350
|
outline-width: 1px;
|
|
12178
12351
|
outline-color: var(--color-border-selected);
|
|
12179
12352
|
}
|
|
@@ -12305,7 +12478,7 @@ svg.crewlet-datetime__chevron {
|
|
|
12305
12478
|
}
|
|
12306
12479
|
|
|
12307
12480
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
12308
|
-
:root[data-crewlet-focus='pointer'] .crewlet-datetime__time-input:focus-visible {
|
|
12481
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-datetime__time-input:focus-visible {
|
|
12309
12482
|
outline-width: 1px;
|
|
12310
12483
|
outline-color: var(--color-border-selected);
|
|
12311
12484
|
}
|
|
@@ -12334,18 +12507,25 @@ svg.crewlet-datetime__chevron {
|
|
|
12334
12507
|
}
|
|
12335
12508
|
|
|
12336
12509
|
|
|
12337
|
-
/* DescriptionList-
|
|
12510
|
+
/* DescriptionList-DEZISDLQ.css */
|
|
12338
12511
|
/*
|
|
12339
12512
|
* Metadata pairs on one grid.
|
|
12340
12513
|
*
|
|
12341
12514
|
* The term track is `minmax(120px, max-content)`: wide enough that short terms
|
|
12342
12515
|
* line up with each other, and free to grow for a long one rather than
|
|
12343
12516
|
* wrapping it into two lines beside a one-word value.
|
|
12517
|
+
*
|
|
12518
|
+
* ONE LIST'S TRACK IS ITS OWN, which is wrong for a page of them. Four cards
|
|
12519
|
+
* of limits stacked on one page each sized the column to their own longest
|
|
12520
|
+
* term, so their values started at four different places and the cards did
|
|
12521
|
+
* not read as one table. `--crewlet-description-list-term` names the track
|
|
12522
|
+
* instead, and it is inherited: set once on the page (or passed to each list
|
|
12523
|
+
* as `termWidth`), every list under it shares one column.
|
|
12344
12524
|
*/
|
|
12345
12525
|
|
|
12346
12526
|
.crewlet-description-list {
|
|
12347
12527
|
display: grid;
|
|
12348
|
-
grid-template-columns: minmax(120px, max-content) 1fr;
|
|
12528
|
+
grid-template-columns: var(--crewlet-description-list-term, minmax(120px, max-content)) 1fr;
|
|
12349
12529
|
gap: var(--spacing-2) var(--spacing-4);
|
|
12350
12530
|
margin: 0;
|
|
12351
12531
|
font-size: var(--font-size-compact);
|
|
@@ -12611,7 +12791,7 @@ svg.crewlet-datetime__chevron {
|
|
|
12611
12791
|
}
|
|
12612
12792
|
|
|
12613
12793
|
|
|
12614
|
-
/* Disclosure-
|
|
12794
|
+
/* Disclosure-P4FH3C35.css */
|
|
12615
12795
|
/*
|
|
12616
12796
|
* The disclosure anatomy, declared once for every expander in the package.
|
|
12617
12797
|
*
|
|
@@ -12729,9 +12909,35 @@ svg.crewlet-datetime__chevron {
|
|
|
12729
12909
|
font-variant-ligatures: none;
|
|
12730
12910
|
}
|
|
12731
12911
|
|
|
12732
|
-
/*
|
|
12912
|
+
/*
|
|
12913
|
+
* A fact inside the button: quieter than the title it belongs to, and the
|
|
12914
|
+
* first thing to give up room when the row runs short.
|
|
12915
|
+
*
|
|
12916
|
+
* IT USED TO TAKE NONE. `flex: none` held a fact at its full width while the
|
|
12917
|
+
* title, which may shrink, was the only thing that could, so a long fact (a
|
|
12918
|
+
* log's replay mode, generation, range and size, beside a status badge in the
|
|
12919
|
+
* actions) took the whole trigger: the title shrank to nothing, so a row no
|
|
12920
|
+
* longer said which log it was, and the fact ran out of the button and under
|
|
12921
|
+
* the badge beside it.
|
|
12922
|
+
*
|
|
12923
|
+
* A HUNDRED TO THE TITLE'S ONE, as a card's subtitle gives way to its title:
|
|
12924
|
+
* two items that may shrink give up space in proportion to their widths, so
|
|
12925
|
+
* at that ratio the fact absorbs effectively all of it, and ends in an
|
|
12926
|
+
* ellipsis, before the title gives up a pixel. The fact is still the button's
|
|
12927
|
+
* name in full; only its drawing is cut.
|
|
12928
|
+
*
|
|
12929
|
+
* NEVER TO NOTHING. The floor is one glyph wide, because a fact is often a
|
|
12930
|
+
* mark (a failed call's glyph beside a tool's name), and a mark that shrank
|
|
12931
|
+
* to nothing would say nothing at all. A long fact keeps an ellipsis there,
|
|
12932
|
+
* which says a fact was cut. Once the fact is at its floor the title shrinks
|
|
12933
|
+
* and ends in its own ellipsis.
|
|
12934
|
+
*/
|
|
12733
12935
|
.crewlet-disclosure__meta {
|
|
12734
|
-
flex:
|
|
12936
|
+
flex: 0 100 auto;
|
|
12937
|
+
min-width: 1.5em;
|
|
12938
|
+
overflow: hidden;
|
|
12939
|
+
text-overflow: ellipsis;
|
|
12940
|
+
white-space: nowrap;
|
|
12735
12941
|
color: var(--color-text-tertiary);
|
|
12736
12942
|
font-size: var(--font-size-xs);
|
|
12737
12943
|
}
|
|
@@ -13022,7 +13228,7 @@ svg.crewlet-datetime__chevron {
|
|
|
13022
13228
|
}
|
|
13023
13229
|
|
|
13024
13230
|
|
|
13025
|
-
/* Document-
|
|
13231
|
+
/* Document-TZ2NBLOR.css */
|
|
13026
13232
|
/*
|
|
13027
13233
|
* Rendered markdown, set as a document (Document.tsx).
|
|
13028
13234
|
*
|
|
@@ -13398,7 +13604,7 @@ svg.crewlet-datetime__chevron {
|
|
|
13398
13604
|
outline: 2px solid transparent;
|
|
13399
13605
|
}
|
|
13400
13606
|
|
|
13401
|
-
:root[data-crewlet-focus='pointer'] .crewlet-document-title-field:focus-visible {
|
|
13607
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-document-title-field:focus-visible {
|
|
13402
13608
|
border-block-end-color: var(--color-border-selected);
|
|
13403
13609
|
box-shadow: none;
|
|
13404
13610
|
}
|
|
@@ -13411,7 +13617,7 @@ svg.crewlet-datetime__chevron {
|
|
|
13411
13617
|
box-shadow: 0 1px 0 var(--color-feedback-danger);
|
|
13412
13618
|
}
|
|
13413
13619
|
|
|
13414
|
-
:root[data-crewlet-focus='pointer'] .crewlet-document-title-field[aria-invalid='true']:focus-visible {
|
|
13620
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-document-title-field[aria-invalid='true']:focus-visible {
|
|
13415
13621
|
border-block-end-color: var(--color-feedback-danger);
|
|
13416
13622
|
}
|
|
13417
13623
|
|
|
@@ -14214,6 +14420,44 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
14214
14420
|
}
|
|
14215
14421
|
|
|
14216
14422
|
|
|
14423
|
+
/* HitArea-QUOS6ZDJ.css */
|
|
14424
|
+
/*
|
|
14425
|
+
* A ROW'S TARGET RUNS TO ITS NEIGHBOUR'S. The rows of one list are drawn a
|
|
14426
|
+
* step apart, and the gap between them belonged to no row: a pointer crossing
|
|
14427
|
+
* the list slowly met the list itself there, so the hand turned into the arrow
|
|
14428
|
+
* and the hover fill went out between every two rows and came back on the
|
|
14429
|
+
* next, which a reader sees as the cursor flickering. Each row that carries
|
|
14430
|
+
* this class reaches half the gap on each side with an empty `::after`, so the
|
|
14431
|
+
* targets meet in the middle of every gap and the drawn rows keep their
|
|
14432
|
+
* spacing. The pseudo-element is part of its row: it takes the row's cursor,
|
|
14433
|
+
* makes the row `:hover`, and a press on it is a press on the row.
|
|
14434
|
+
*
|
|
14435
|
+
* The reach is set on the ROW, from the gap its list is laid out with, as
|
|
14436
|
+
* `--crewlet-hit-area-block` and `--crewlet-hit-area-inline` (each side may be
|
|
14437
|
+
* set alone with the `-start` and `-end` forms). A row that sets none reaches
|
|
14438
|
+
* nowhere. It stays inside the list's own padding, so no scroller grows.
|
|
14439
|
+
*
|
|
14440
|
+
* IT IS MEASURED FROM THE ROW'S PADDING EDGE, which is where an absolutely
|
|
14441
|
+
* placed box starts, so a row drawn with a border (a transparent one
|
|
14442
|
+
* included) adds the border's width to its reach.
|
|
14443
|
+
*
|
|
14444
|
+
* `position: relative` is at zero specificity, so a row positioned on purpose
|
|
14445
|
+
* keeps its own position and is still the pseudo-element's containing block.
|
|
14446
|
+
*/
|
|
14447
|
+
:where(.crewlet-hit-area) {
|
|
14448
|
+
position: relative;
|
|
14449
|
+
}
|
|
14450
|
+
|
|
14451
|
+
.crewlet-hit-area::after {
|
|
14452
|
+
content: '';
|
|
14453
|
+
position: absolute;
|
|
14454
|
+
top: calc(var(--crewlet-hit-area-block-start, var(--crewlet-hit-area-block, 0px)) * -1);
|
|
14455
|
+
bottom: calc(var(--crewlet-hit-area-block-end, var(--crewlet-hit-area-block, 0px)) * -1);
|
|
14456
|
+
inset-inline-start: calc(var(--crewlet-hit-area-inline-start, var(--crewlet-hit-area-inline, 0px)) * -1);
|
|
14457
|
+
inset-inline-end: calc(var(--crewlet-hit-area-inline-end, var(--crewlet-hit-area-inline, 0px)) * -1);
|
|
14458
|
+
}
|
|
14459
|
+
|
|
14460
|
+
|
|
14217
14461
|
/* HuePicker-PAIGH6LR.css */
|
|
14218
14462
|
/*
|
|
14219
14463
|
* A hue's swatch: the hue itself, as a dot beside its name. The name carries
|
|
@@ -14999,7 +15243,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
14999
15243
|
}
|
|
15000
15244
|
|
|
15001
15245
|
|
|
15002
|
-
/* Input-
|
|
15246
|
+
/* Input-OQZBCRX5.css */
|
|
15003
15247
|
/*
|
|
15004
15248
|
* The form row: Input, Textarea, Label, FormField, FormRow, FormSection and
|
|
15005
15249
|
* ReadOnlyField.
|
|
@@ -15126,8 +15370,13 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15126
15370
|
* round it before anybody had touched a key. A refused field keeps its own
|
|
15127
15371
|
* colour under a pointer too (below). A document that tracks nothing keeps
|
|
15128
15372
|
* the keyboard's ring.
|
|
15373
|
+
*
|
|
15374
|
+
* The modality is matched inside :where(), here and in every field's narrowing
|
|
15375
|
+
* rule, so it narrows a ring and never outranks a variant's own: at the
|
|
15376
|
+
* attribute's specificity it beat `.crewlet-input--command`, and the palette's
|
|
15377
|
+
* borderless search field drew a square accent hairline round its text.
|
|
15129
15378
|
*/
|
|
15130
|
-
:root[data-crewlet-focus='pointer'] .crewlet-input:has(.crewlet-input__control:focus-visible) {
|
|
15379
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-input:has(.crewlet-input__control:focus-visible) {
|
|
15131
15380
|
outline-width: 1px;
|
|
15132
15381
|
outline-color: var(--color-border-selected);
|
|
15133
15382
|
}
|
|
@@ -15152,7 +15401,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15152
15401
|
outline-color: var(--color-feedback-danger);
|
|
15153
15402
|
}
|
|
15154
15403
|
|
|
15155
|
-
:root[data-crewlet-focus='pointer'] .crewlet-input.is-error:has(.crewlet-input__control:focus-visible) {
|
|
15404
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-input.is-error:has(.crewlet-input__control:focus-visible) {
|
|
15156
15405
|
outline-color: var(--color-feedback-danger);
|
|
15157
15406
|
}
|
|
15158
15407
|
|
|
@@ -15397,7 +15646,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15397
15646
|
}
|
|
15398
15647
|
|
|
15399
15648
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
15400
|
-
:root[data-crewlet-focus='pointer'] .crewlet-textarea:focus-visible {
|
|
15649
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-textarea:focus-visible {
|
|
15401
15650
|
outline-width: 1px;
|
|
15402
15651
|
outline-color: var(--color-border-selected);
|
|
15403
15652
|
}
|
|
@@ -15410,7 +15659,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15410
15659
|
outline-color: var(--color-feedback-danger);
|
|
15411
15660
|
}
|
|
15412
15661
|
|
|
15413
|
-
:root[data-crewlet-focus='pointer'] .crewlet-textarea.is-error:focus-visible {
|
|
15662
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-textarea.is-error:focus-visible {
|
|
15414
15663
|
outline-color: var(--color-feedback-danger);
|
|
15415
15664
|
}
|
|
15416
15665
|
|
|
@@ -16632,7 +16881,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16632
16881
|
}
|
|
16633
16882
|
|
|
16634
16883
|
|
|
16635
|
-
/* Listbox-
|
|
16884
|
+
/* Listbox-NQV6E3FS.css */
|
|
16636
16885
|
/*
|
|
16637
16886
|
* The listbox register: one look for every list a field offers.
|
|
16638
16887
|
*
|
|
@@ -16707,6 +16956,9 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16707
16956
|
cursor: pointer;
|
|
16708
16957
|
/* A row is chosen by the arrows as often as by the pointer, so the highlight
|
|
16709
16958
|
lands with no transition: a fade would lag a held arrow key. */
|
|
16959
|
+
/* Where a list sets its rows apart, each row's target reaches half the gap
|
|
16960
|
+
(HitArea.css), so the pointer never falls between two of them. */
|
|
16961
|
+
--crewlet-hit-area-block: calc(var(--crewlet-listbox-gap, 0px) / 2);
|
|
16710
16962
|
}
|
|
16711
16963
|
|
|
16712
16964
|
/*
|
|
@@ -16848,7 +17100,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16848
17100
|
}
|
|
16849
17101
|
|
|
16850
17102
|
|
|
16851
|
-
/* LivePreview-
|
|
17103
|
+
/* LivePreview-KQEDMQCY.css */
|
|
16852
17104
|
/*
|
|
16853
17105
|
* A live preview: the stand-in, the still copy of what the content drew and
|
|
16854
17106
|
* the live layer it is drawn in, stacked in that order in one box. The box
|
|
@@ -16903,6 +17155,19 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16903
17155
|
transition: none !important;
|
|
16904
17156
|
}
|
|
16905
17157
|
|
|
17158
|
+
/* NOR DOES ANYTHING IN IT SCROLL: a copy of a box that scrolled (a sheet
|
|
17159
|
+
wider than the card, a long list) is a picture of its first view, so it
|
|
17160
|
+
draws no scrollbar. Shown, the bar sat across the card as a stray band.
|
|
17161
|
+
The live layer it is copied from draws none either, so what is laid out
|
|
17162
|
+
there (a sheet's room for a bar included) is what the copy shows. */
|
|
17163
|
+
:is(.crewlet-live-preview__live, .crewlet-live-preview__still) * {
|
|
17164
|
+
scrollbar-width: none !important;
|
|
17165
|
+
}
|
|
17166
|
+
|
|
17167
|
+
:is(.crewlet-live-preview__live, .crewlet-live-preview__still) *::-webkit-scrollbar {
|
|
17168
|
+
display: none;
|
|
17169
|
+
}
|
|
17170
|
+
|
|
16906
17171
|
/* THE LIVE LAYER renders out of sight: content that is copied is never seen
|
|
16907
17172
|
live, only its copy is. A frame's page is kept rather than copied, so a
|
|
16908
17173
|
framed preview's live layer is what fades in once it has drawn. */
|
|
@@ -21832,7 +22097,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21832
22097
|
}
|
|
21833
22098
|
|
|
21834
22099
|
|
|
21835
|
-
/* SegmentedControl-
|
|
22100
|
+
/* SegmentedControl-B7XCUOML.css */
|
|
21836
22101
|
/*
|
|
21837
22102
|
* SegmentedControl: the pill row, drawn with the Tabs classes.
|
|
21838
22103
|
*
|
|
@@ -21860,8 +22125,10 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21860
22125
|
* equal weight in a file that happens to come later takes them back.
|
|
21861
22126
|
*/
|
|
21862
22127
|
.crewlet-tabs.crewlet-segmented--cards {
|
|
22128
|
+
--crewlet-tabs-gap: var(--spacing-2);
|
|
22129
|
+
--crewlet-tabs-row-gap: var(--spacing-2);
|
|
21863
22130
|
display: grid;
|
|
21864
|
-
gap: var(--
|
|
22131
|
+
gap: var(--crewlet-tabs-gap);
|
|
21865
22132
|
width: 100%;
|
|
21866
22133
|
align-items: stretch;
|
|
21867
22134
|
}
|
|
@@ -21872,6 +22139,9 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21872
22139
|
* surface inside a panel of the same surface reads as a second panel.
|
|
21873
22140
|
*/
|
|
21874
22141
|
.crewlet-segmented--cards .crewlet-segmented__option {
|
|
22142
|
+
/* A card's 1px border is inside the reach (HitArea.css). */
|
|
22143
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-tabs-gap) / 2 + 1px);
|
|
22144
|
+
--crewlet-hit-area-block: calc(var(--crewlet-tabs-row-gap) / 2 + 1px);
|
|
21875
22145
|
justify-content: flex-start;
|
|
21876
22146
|
text-align: left;
|
|
21877
22147
|
/* A sentence under a name is a sentence: it wraps rather than being cut. */
|
|
@@ -21916,7 +22186,8 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21916
22186
|
/* No gap between ROWS: each chip's target already overhangs its drawing by
|
|
21917
22187
|
half a step above and below, so two rows' drawings stand a whole step
|
|
21918
22188
|
apart while their targets meet. */
|
|
21919
|
-
gap:
|
|
22189
|
+
--crewlet-tabs-gap: var(--spacing-1);
|
|
22190
|
+
gap: 0 var(--crewlet-tabs-gap);
|
|
21920
22191
|
}
|
|
21921
22192
|
|
|
21922
22193
|
/*
|
|
@@ -22020,6 +22291,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22020
22291
|
* every option stays visible and inside the focus ring's room.
|
|
22021
22292
|
*/
|
|
22022
22293
|
.crewlet-tabs--pill.crewlet-segmented {
|
|
22294
|
+
--crewlet-tabs-row-gap: var(--crewlet-tabs-gap);
|
|
22023
22295
|
flex-wrap: wrap;
|
|
22024
22296
|
min-width: 0;
|
|
22025
22297
|
max-width: 100%;
|
|
@@ -22138,7 +22410,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22138
22410
|
}
|
|
22139
22411
|
|
|
22140
22412
|
|
|
22141
|
-
/* Select-
|
|
22413
|
+
/* Select-F526HLNR.css */
|
|
22142
22414
|
/*
|
|
22143
22415
|
* Select: one chrome over two controls, and the product's only dropdown.
|
|
22144
22416
|
*
|
|
@@ -22217,7 +22489,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22217
22489
|
}
|
|
22218
22490
|
|
|
22219
22491
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
22220
|
-
:root[data-crewlet-focus='pointer'] .crewlet-select:focus-within {
|
|
22492
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-select:focus-within {
|
|
22221
22493
|
outline-width: 1px;
|
|
22222
22494
|
outline-color: var(--color-border-selected);
|
|
22223
22495
|
}
|
|
@@ -22280,7 +22552,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22280
22552
|
outline-color: var(--color-feedback-danger);
|
|
22281
22553
|
}
|
|
22282
22554
|
|
|
22283
|
-
:root[data-crewlet-focus='pointer'] .crewlet-select.is-error:focus-within {
|
|
22555
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-select.is-error:focus-within {
|
|
22284
22556
|
outline-color: var(--color-feedback-danger);
|
|
22285
22557
|
}
|
|
22286
22558
|
|
|
@@ -22427,9 +22699,10 @@ svg.crewlet-select__chevron {
|
|
|
22427
22699
|
}
|
|
22428
22700
|
|
|
22429
22701
|
.crewlet-select__group {
|
|
22702
|
+
--crewlet-listbox-gap: 1px;
|
|
22430
22703
|
display: flex;
|
|
22431
22704
|
flex-direction: column;
|
|
22432
|
-
gap:
|
|
22705
|
+
gap: var(--crewlet-listbox-gap);
|
|
22433
22706
|
}
|
|
22434
22707
|
|
|
22435
22708
|
.crewlet-select__option {
|
|
@@ -22582,7 +22855,7 @@ svg.crewlet-select__chevron {
|
|
|
22582
22855
|
}
|
|
22583
22856
|
|
|
22584
22857
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
22585
|
-
:root[data-crewlet-focus='pointer'] .crewlet-select__search:focus-within {
|
|
22858
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-select__search:focus-within {
|
|
22586
22859
|
outline-width: 1px;
|
|
22587
22860
|
outline-color: var(--color-border-selected);
|
|
22588
22861
|
}
|
|
@@ -22857,7 +23130,7 @@ svg.crewlet-select__chevron {
|
|
|
22857
23130
|
}
|
|
22858
23131
|
|
|
22859
23132
|
|
|
22860
|
-
/* SheetGrid-
|
|
23133
|
+
/* SheetGrid-XK7T7M34.css */
|
|
22861
23134
|
/*
|
|
22862
23135
|
* The editable sheet (SheetGrid.tsx) and its cells (cells.tsx).
|
|
22863
23136
|
*
|
|
@@ -23309,16 +23582,21 @@ svg.crewlet-select__chevron {
|
|
|
23309
23582
|
/* ADD COLUMN stands beside the header row, outside the grid's roles: the
|
|
23310
23583
|
scroller lays the grid and the control side by side, the grid's last track
|
|
23311
23584
|
still takes the slack up to the control, and the control sticks to the top
|
|
23312
|
-
with the header while the rows scroll under it.
|
|
23585
|
+
with the header while the rows scroll under it. Its track is the control's
|
|
23586
|
+
own square plus an inset on each side, so the square never fills the track
|
|
23587
|
+
edge to edge. THE GRID GROWS INTO WHATEVER THE CONTROL LEAVES rather than
|
|
23588
|
+
into a width assumed for it: held to 100% less an assumed width, it
|
|
23589
|
+
overflowed by the difference whenever the control drew wider, and the
|
|
23590
|
+
sheet scrolled sideways by a few pixels. */
|
|
23313
23591
|
.crewlet-sheet-grid__scroller--add-column {
|
|
23314
|
-
--crewlet-sheet-add-column-width: var(--size-
|
|
23592
|
+
--crewlet-sheet-add-column-width: calc(var(--size-control-sm) + 2 * var(--spacing-1));
|
|
23315
23593
|
display: flex;
|
|
23316
23594
|
align-items: flex-start;
|
|
23317
23595
|
}
|
|
23318
23596
|
|
|
23319
23597
|
.crewlet-sheet-grid__scroller--add-column > .crewlet-sheet-grid__grid {
|
|
23320
|
-
flex:
|
|
23321
|
-
min-width:
|
|
23598
|
+
flex: 1 0 auto;
|
|
23599
|
+
min-width: 0;
|
|
23322
23600
|
}
|
|
23323
23601
|
|
|
23324
23602
|
.crewlet-sheet-grid__add-column {
|
|
@@ -23713,7 +23991,7 @@ svg.crewlet-select__chevron {
|
|
|
23713
23991
|
}
|
|
23714
23992
|
|
|
23715
23993
|
|
|
23716
|
-
/* SidebarNav-
|
|
23994
|
+
/* SidebarNav-7SGUZYKK.css */
|
|
23717
23995
|
/*
|
|
23718
23996
|
* The rail's navigation.
|
|
23719
23997
|
*
|
|
@@ -23744,9 +24022,12 @@ svg.crewlet-select__chevron {
|
|
|
23744
24022
|
* old step, so the gap is paid for many times over by the row it sits beside.
|
|
23745
24023
|
*/
|
|
23746
24024
|
.crewlet-nav-group {
|
|
24025
|
+
--crewlet-nav-group-gap: calc(var(--spacing-1) / 2);
|
|
24026
|
+
/* What a row reaches across (HitArea.css): its own list's gap. */
|
|
24027
|
+
--crewlet-nav-row-gap: var(--crewlet-nav-group-gap);
|
|
23747
24028
|
display: flex;
|
|
23748
24029
|
flex-direction: column;
|
|
23749
|
-
gap:
|
|
24030
|
+
gap: var(--crewlet-nav-group-gap);
|
|
23750
24031
|
min-width: 0;
|
|
23751
24032
|
}
|
|
23752
24033
|
|
|
@@ -23891,6 +24172,20 @@ svg.crewlet-select__chevron {
|
|
|
23891
24172
|
transition:
|
|
23892
24173
|
background var(--motion-duration-fast) var(--motion-easing-default),
|
|
23893
24174
|
color var(--motion-duration-fast) var(--motion-easing-default);
|
|
24175
|
+
/* Half the gap to each neighbour, so the targets meet (HitArea.css). */
|
|
24176
|
+
--crewlet-hit-area-block: calc(var(--crewlet-nav-row-gap, 0px) / 2);
|
|
24177
|
+
}
|
|
24178
|
+
|
|
24179
|
+
/*
|
|
24180
|
+
* AN OPEN ROW AND ITS FIRST NESTED ROW ABUT, with no gap between them to
|
|
24181
|
+
* cross, so neither reaches into the other.
|
|
24182
|
+
*/
|
|
24183
|
+
.crewlet-nav-item:has(> .crewlet-nav-item__children:not([hidden])) > .crewlet-nav-item__head > .crewlet-nav-item__row {
|
|
24184
|
+
--crewlet-hit-area-block-end: 0px;
|
|
24185
|
+
}
|
|
24186
|
+
|
|
24187
|
+
.crewlet-nav-item__children > .crewlet-nav-item:first-child > .crewlet-nav-item__head > .crewlet-nav-item__row {
|
|
24188
|
+
--crewlet-hit-area-block-start: 0px;
|
|
23894
24189
|
}
|
|
23895
24190
|
|
|
23896
24191
|
.crewlet-nav-item__row:hover {
|
|
@@ -24102,9 +24397,11 @@ svg.crewlet-select__chevron {
|
|
|
24102
24397
|
* rail keeps for the one count that asks the reader to act.
|
|
24103
24398
|
*/
|
|
24104
24399
|
.crewlet-nav-item__children {
|
|
24400
|
+
--crewlet-nav-children-gap: var(--spacing-1);
|
|
24401
|
+
--crewlet-nav-row-gap: var(--crewlet-nav-children-gap);
|
|
24105
24402
|
display: flex;
|
|
24106
24403
|
flex-direction: column;
|
|
24107
|
-
gap: var(--
|
|
24404
|
+
gap: var(--crewlet-nav-children-gap);
|
|
24108
24405
|
margin-left: var(--size-nav-row-pad);
|
|
24109
24406
|
padding-left: var(--spacing-2);
|
|
24110
24407
|
border-left: 1px solid var(--color-border-default);
|
|
@@ -25136,7 +25433,7 @@ svg.crewlet-select__chevron {
|
|
|
25136
25433
|
}
|
|
25137
25434
|
|
|
25138
25435
|
|
|
25139
|
-
/* SourceEditor-
|
|
25436
|
+
/* SourceEditor-OKPWPFXK.css */
|
|
25140
25437
|
/*
|
|
25141
25438
|
* Source text written in place: a gutter of line numbers beside a real
|
|
25142
25439
|
* textarea, and the marks a checker placed drawn behind the text. The gutter,
|
|
@@ -25176,7 +25473,7 @@ svg.crewlet-select__chevron {
|
|
|
25176
25473
|
outline-offset: -1px;
|
|
25177
25474
|
}
|
|
25178
25475
|
|
|
25179
|
-
:root[data-crewlet-focus='pointer'] .crewlet-source-editor:has(.crewlet-source-editor__field:focus-visible) {
|
|
25476
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-source-editor:has(.crewlet-source-editor__field:focus-visible) {
|
|
25180
25477
|
outline-width: 1px;
|
|
25181
25478
|
outline-color: var(--color-border-selected);
|
|
25182
25479
|
}
|
|
@@ -25540,7 +25837,7 @@ svg.crewlet-select__chevron {
|
|
|
25540
25837
|
.crewlet-statcard--info .crewlet-statcard__value { color: var(--color-feedback-info-ink); }
|
|
25541
25838
|
|
|
25542
25839
|
|
|
25543
|
-
/* StatGroup-
|
|
25840
|
+
/* StatGroup-DOFHX5QJ.css */
|
|
25544
25841
|
/*
|
|
25545
25842
|
* A row of stat tiles.
|
|
25546
25843
|
*
|
|
@@ -25548,11 +25845,29 @@ svg.crewlet-select__chevron {
|
|
|
25548
25845
|
* tiles appeared and vanished moved every number on the page for a reason that
|
|
25549
25846
|
* had nothing to do with the numbers, which is exactly what a reader watching
|
|
25550
25847
|
* a live board is trying not to have happen.
|
|
25848
|
+
*
|
|
25849
|
+
* IT FOLDS BY ITS OWN WIDTH, never the window's. The row used to drop to two
|
|
25850
|
+
* columns under a 1024px viewport, but a row's width is whatever its column
|
|
25851
|
+
* leaves it: beside the rail and a settings column at exactly 1024 a
|
|
25852
|
+
* four-column row was 489px wide, its tiles about 120px each, and its figures
|
|
25853
|
+
* were cut ("Not s…", "1.6 …"), while on a phone a three-column row folded to
|
|
25854
|
+
* two and left its third tile alone on a row of its own. So the row is a size
|
|
25855
|
+
* container, and the tiles take their place from the row's own width.
|
|
25856
|
+
*
|
|
25857
|
+
* TWELVE TRACKS, AND EACH TILE SPANS ITS SHARE. A container query styles what
|
|
25858
|
+
* is inside the container, never the container itself, so the row cannot
|
|
25859
|
+
* change its own column count by its own width. Its tiles can change how many
|
|
25860
|
+
* of its twelve tracks they span, which is the same layout: twelve divides by
|
|
25861
|
+
* every count a row takes (one, two, three and four a row).
|
|
25862
|
+
*
|
|
25863
|
+
* The row's width comes from where it stands, as a block's does: inline-size
|
|
25864
|
+
* containment means its contents never widen it.
|
|
25551
25865
|
*/
|
|
25552
25866
|
|
|
25553
25867
|
.crewlet-stat-group {
|
|
25868
|
+
container: crewlet-stat-group / inline-size;
|
|
25554
25869
|
display: grid;
|
|
25555
|
-
grid-template-columns: repeat(
|
|
25870
|
+
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
25556
25871
|
/* The flush-panel recipe: the card's surface, its hairline and its 12px
|
|
25557
25872
|
corner, flat as every card is, and `overflow: hidden`, which is what lets
|
|
25558
25873
|
the tiles inside sit against the corners without their own hairlines
|
|
@@ -25563,8 +25878,19 @@ svg.crewlet-select__chevron {
|
|
|
25563
25878
|
overflow: hidden;
|
|
25564
25879
|
}
|
|
25565
25880
|
|
|
25566
|
-
/*
|
|
25567
|
-
.
|
|
25881
|
+
/*
|
|
25882
|
+
* Inside another card: the card's surface and edge are the row's.
|
|
25883
|
+
*
|
|
25884
|
+
* A ROW STANDING IN A CARD IS FLUSH WHETHER OR NOT ITS CALLER SAID SO. Six
|
|
25885
|
+
* settings pages wrapped a row in a card without `flush`, and each drew the
|
|
25886
|
+
* row's own edge and 12px corner one pixel inside the card's: a box inside a
|
|
25887
|
+
* box, and inside a padded body a third frame. A row that is a card's content,
|
|
25888
|
+
* or its body's, is that card's row; `flush` is for a host that is not a
|
|
25889
|
+
* Card (a widget's frame, a panel of an application's own).
|
|
25890
|
+
*/
|
|
25891
|
+
.crewlet-stat-group--flush,
|
|
25892
|
+
.crewlet-card > .crewlet-stat-group,
|
|
25893
|
+
.crewlet-card__body > .crewlet-stat-group {
|
|
25568
25894
|
background: transparent;
|
|
25569
25895
|
border: 0;
|
|
25570
25896
|
border-radius: var(--radius-none);
|
|
@@ -25590,40 +25916,93 @@ svg.crewlet-select__chevron {
|
|
|
25590
25916
|
}
|
|
25591
25917
|
|
|
25592
25918
|
/*
|
|
25593
|
-
*
|
|
25919
|
+
* Each tile spans its share of the twelve tracks: the row's `columns`, set on
|
|
25920
|
+
* it as `--crewlet-stat-group-cols`, a row.
|
|
25921
|
+
*/
|
|
25922
|
+
.crewlet-stat-group > * {
|
|
25923
|
+
grid-column: span calc(12 / var(--crewlet-stat-group-cols, 4));
|
|
25924
|
+
}
|
|
25925
|
+
|
|
25926
|
+
/*
|
|
25927
|
+
* The hairlines between tiles: one before every tile that does not start a
|
|
25928
|
+
* row, and one above every tile that is not on the first.
|
|
25594
25929
|
*
|
|
25595
25930
|
* NAMED TWICE, ON PURPOSE. The rule above clears the tile's own border and
|
|
25596
25931
|
* weighs two classes, so a one-class selector here loses to it and the row
|
|
25597
25932
|
* of numbers runs together with nothing between the columns. The first
|
|
25598
|
-
* selector matches whatever a caller puts in the row; the second
|
|
25599
|
-
*
|
|
25933
|
+
* selector of each pair matches whatever a caller puts in the row; the second
|
|
25934
|
+
* weighs at least as much as the rule it has to beat, and sits after it.
|
|
25600
25935
|
*/
|
|
25601
25936
|
.crewlet-stat-group > * + *,
|
|
25602
25937
|
.crewlet-stat-group > .crewlet-statcard + .crewlet-statcard {
|
|
25603
25938
|
border-left: 1px solid var(--color-border-default);
|
|
25604
25939
|
}
|
|
25605
25940
|
|
|
25941
|
+
.crewlet-stat-group[data-columns='2'] > :nth-child(2n + 1),
|
|
25942
|
+
.crewlet-stat-group[data-columns='2'] > .crewlet-statcard:nth-child(2n + 1),
|
|
25943
|
+
.crewlet-stat-group[data-columns='3'] > :nth-child(3n + 1),
|
|
25944
|
+
.crewlet-stat-group[data-columns='3'] > .crewlet-statcard:nth-child(3n + 1),
|
|
25945
|
+
.crewlet-stat-group[data-columns='4'] > :nth-child(4n + 1),
|
|
25946
|
+
.crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(4n + 1) {
|
|
25947
|
+
border-left: 0;
|
|
25948
|
+
}
|
|
25949
|
+
|
|
25950
|
+
.crewlet-stat-group[data-columns='2'] > :nth-child(n + 3),
|
|
25951
|
+
.crewlet-stat-group[data-columns='2'] > .crewlet-statcard:nth-child(n + 3),
|
|
25952
|
+
.crewlet-stat-group[data-columns='3'] > :nth-child(n + 4),
|
|
25953
|
+
.crewlet-stat-group[data-columns='3'] > .crewlet-statcard:nth-child(n + 4),
|
|
25954
|
+
.crewlet-stat-group[data-columns='4'] > :nth-child(n + 5),
|
|
25955
|
+
.crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(n + 5) {
|
|
25956
|
+
border-top: 1px solid var(--color-border-default);
|
|
25957
|
+
}
|
|
25958
|
+
|
|
25606
25959
|
/*
|
|
25607
|
-
*
|
|
25608
|
-
*
|
|
25609
|
-
*
|
|
25610
|
-
*
|
|
25611
|
-
* rules are written for the general case rather than per column count: the
|
|
25612
|
-
* first tile of each pair loses its left hairline, and everything on the
|
|
25613
|
-
* second row and below gains a top one.
|
|
25960
|
+
* FOUR A ROW FOLD TO TWO under 640px of row (the phone breakpoint's number):
|
|
25961
|
+
* four tiles of 160px is the narrowest at which a six-character figure and a
|
|
25962
|
+
* two-word label still stand on one line each. Two by two keeps every row
|
|
25963
|
+
* full.
|
|
25614
25964
|
*/
|
|
25615
|
-
@
|
|
25616
|
-
.crewlet-stat-group
|
|
25617
|
-
|
|
25965
|
+
@container crewlet-stat-group (width < 640px) {
|
|
25966
|
+
.crewlet-stat-group[data-columns='4'] > *,
|
|
25967
|
+
.crewlet-stat-group[data-columns='4'] > .crewlet-statcard {
|
|
25968
|
+
grid-column: span 6;
|
|
25618
25969
|
}
|
|
25619
25970
|
|
|
25620
|
-
.crewlet-stat-group >
|
|
25621
|
-
.crewlet-stat-group > .crewlet-statcard:nth-child(odd) {
|
|
25971
|
+
.crewlet-stat-group[data-columns='4'] > :nth-child(odd),
|
|
25972
|
+
.crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(odd) {
|
|
25622
25973
|
border-left: 0;
|
|
25623
25974
|
}
|
|
25624
25975
|
|
|
25625
|
-
.crewlet-stat-group >
|
|
25626
|
-
.crewlet-stat-group > .crewlet-statcard:nth-child(
|
|
25976
|
+
.crewlet-stat-group[data-columns='4'] > :nth-child(even),
|
|
25977
|
+
.crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(even) {
|
|
25978
|
+
border-left: 1px solid var(--color-border-default);
|
|
25979
|
+
}
|
|
25980
|
+
|
|
25981
|
+
.crewlet-stat-group[data-columns='4'] > :nth-child(n + 3),
|
|
25982
|
+
.crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(n + 3) {
|
|
25983
|
+
border-top: 1px solid var(--color-border-default);
|
|
25984
|
+
}
|
|
25985
|
+
}
|
|
25986
|
+
|
|
25987
|
+
/*
|
|
25988
|
+
* THREE A ROW STACK under 480px of row (the small breakpoint's number), at the
|
|
25989
|
+
* same 160px a tile. Folded to two, three tiles stood two and one, the last
|
|
25990
|
+
* alone at double width and a different height, which read as a tile that had
|
|
25991
|
+
* failed to load; one a row leaves no row short.
|
|
25992
|
+
*/
|
|
25993
|
+
@container crewlet-stat-group (width < 480px) {
|
|
25994
|
+
.crewlet-stat-group[data-columns='3'] > *,
|
|
25995
|
+
.crewlet-stat-group[data-columns='3'] > .crewlet-statcard {
|
|
25996
|
+
grid-column: span 12;
|
|
25997
|
+
}
|
|
25998
|
+
|
|
25999
|
+
.crewlet-stat-group[data-columns='3'] > *,
|
|
26000
|
+
.crewlet-stat-group[data-columns='3'] > .crewlet-statcard + .crewlet-statcard {
|
|
26001
|
+
border-left: 0;
|
|
26002
|
+
}
|
|
26003
|
+
|
|
26004
|
+
.crewlet-stat-group[data-columns='3'] > :nth-child(n + 2),
|
|
26005
|
+
.crewlet-stat-group[data-columns='3'] > .crewlet-statcard:nth-child(n + 2) {
|
|
25627
26006
|
border-top: 1px solid var(--color-border-default);
|
|
25628
26007
|
}
|
|
25629
26008
|
}
|
|
@@ -26806,7 +27185,7 @@ b.crewlet-switcher__match {
|
|
|
26806
27185
|
}
|
|
26807
27186
|
|
|
26808
27187
|
|
|
26809
|
-
/* Tabs-
|
|
27188
|
+
/* Tabs-WIF7457H.css */
|
|
26810
27189
|
/*
|
|
26811
27190
|
* The pill register: Tabs and SegmentedControl.
|
|
26812
27191
|
*
|
|
@@ -26837,8 +27216,9 @@ b.crewlet-switcher__match {
|
|
|
26837
27216
|
* row is reachable by the arrow keys either way.
|
|
26838
27217
|
*/
|
|
26839
27218
|
.crewlet-tabs--underline {
|
|
27219
|
+
--crewlet-tabs-gap: var(--spacing-2);
|
|
26840
27220
|
display: flex;
|
|
26841
|
-
gap: var(--
|
|
27221
|
+
gap: var(--crewlet-tabs-gap);
|
|
26842
27222
|
border-bottom: 1px solid var(--color-border-default);
|
|
26843
27223
|
position: relative;
|
|
26844
27224
|
width: 100%;
|
|
@@ -26912,8 +27292,9 @@ b.crewlet-switcher__match {
|
|
|
26912
27292
|
*/
|
|
26913
27293
|
.crewlet-tabs--pill {
|
|
26914
27294
|
--crewlet-tabs-pill-inset: 1px;
|
|
27295
|
+
--crewlet-tabs-gap: var(--crewlet-tabs-pill-inset);
|
|
26915
27296
|
|
|
26916
|
-
gap: var(--crewlet-tabs-
|
|
27297
|
+
gap: var(--crewlet-tabs-gap);
|
|
26917
27298
|
padding: var(--crewlet-tabs-pill-inset);
|
|
26918
27299
|
background: var(--color-surface-elevated);
|
|
26919
27300
|
border: 1px solid var(--color-border-default);
|
|
@@ -26974,6 +27355,20 @@ b.crewlet-switcher__match {
|
|
|
26974
27355
|
background-color var(--motion-duration-fast) var(--motion-easing-default),
|
|
26975
27356
|
color var(--motion-duration-fast) var(--motion-easing-default),
|
|
26976
27357
|
box-shadow var(--motion-duration-fast) var(--motion-easing-default);
|
|
27358
|
+
/* Half the gap to each neighbour, so the targets meet (HitArea.css). A row
|
|
27359
|
+
that wraps reaches across its rows' gap too. */
|
|
27360
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-tabs-gap, 0px) / 2);
|
|
27361
|
+
--crewlet-hit-area-block: calc(var(--crewlet-tabs-row-gap, 0px) / 2);
|
|
27362
|
+
}
|
|
27363
|
+
|
|
27364
|
+
/* The row's two ends reach nothing past it: the underline row is a scroller,
|
|
27365
|
+
and a target past its last tab would be width it scrolls by. */
|
|
27366
|
+
.crewlet-tabs__tab:first-child {
|
|
27367
|
+
--crewlet-hit-area-inline-start: 0px;
|
|
27368
|
+
}
|
|
27369
|
+
|
|
27370
|
+
.crewlet-tabs__tab:last-child {
|
|
27371
|
+
--crewlet-hit-area-inline-end: 0px;
|
|
26977
27372
|
}
|
|
26978
27373
|
|
|
26979
27374
|
/*
|
|
@@ -27120,9 +27515,10 @@ b.crewlet-switcher__match {
|
|
|
27120
27515
|
* (FilterChip draws the same pair).
|
|
27121
27516
|
*/
|
|
27122
27517
|
.crewlet-tabs--chip {
|
|
27518
|
+
--crewlet-tabs-gap: calc(var(--spacing-1) / 2);
|
|
27123
27519
|
display: inline-flex;
|
|
27124
27520
|
align-items: center;
|
|
27125
|
-
gap:
|
|
27521
|
+
gap: var(--crewlet-tabs-gap);
|
|
27126
27522
|
}
|
|
27127
27523
|
|
|
27128
27524
|
.crewlet-tabs--chip .crewlet-tabs__tab {
|
|
@@ -27238,7 +27634,7 @@ b.crewlet-switcher__match {
|
|
|
27238
27634
|
}
|
|
27239
27635
|
|
|
27240
27636
|
|
|
27241
|
-
/* Tag-
|
|
27637
|
+
/* Tag-2DQOVE6W.css */
|
|
27242
27638
|
/*
|
|
27243
27639
|
* The tag: a small pill naming a state, a category or a value.
|
|
27244
27640
|
*
|
|
@@ -27518,12 +27914,22 @@ b.crewlet-switcher__match {
|
|
|
27518
27914
|
--crewlet-tag-line: var(--color-border-strong-hover);
|
|
27519
27915
|
}
|
|
27520
27916
|
|
|
27521
|
-
/*
|
|
27522
|
-
|
|
27523
|
-
|
|
27524
|
-
|
|
27917
|
+
/*
|
|
27918
|
+
* The neutral outline: the neutral pill's own boundary with no fill, and the
|
|
27919
|
+
* tertiary ink, which is a quieter register than the tinted outlines keep. It
|
|
27920
|
+
* is the appearance for a value that is not a state at all, so it says less
|
|
27921
|
+
* than its neighbours on purpose, by its ink and its empty ground.
|
|
27922
|
+
*
|
|
27923
|
+
* NOT BY A FAINTER EDGE. It used to take the plain hairline, the line that
|
|
27924
|
+
* finds a card, and on the card it so often stands on that line measured
|
|
27925
|
+
* 1.07:1 in dark: Limits' "Off" beside a filled "Default", an audit row's
|
|
27926
|
+
* machine and open, a tool's "builtin", all read as loose words rather than
|
|
27927
|
+
* as pills. The strong step is the edge the neutral soft pill already draws
|
|
27928
|
+
* (1.49:1 dark, 1.52:1 light on the card), so the two neutral pills differ by
|
|
27929
|
+
* their fill alone and both read as pills.
|
|
27930
|
+
*/
|
|
27525
27931
|
.crewlet-tag--neutral.crewlet-tag--outline {
|
|
27526
|
-
border-color: var(--color-border-
|
|
27932
|
+
border-color: var(--color-border-strong);
|
|
27527
27933
|
--crewlet-tag-ink: var(--color-text-tertiary);
|
|
27528
27934
|
}
|
|
27529
27935
|
|
|
@@ -27817,7 +28223,7 @@ b.crewlet-switcher__match {
|
|
|
27817
28223
|
}
|
|
27818
28224
|
|
|
27819
28225
|
|
|
27820
|
-
/* TagsInput-
|
|
28226
|
+
/* TagsInput-CLFHP6I2.css */
|
|
27821
28227
|
/*
|
|
27822
28228
|
* TagsInput: several values in one field.
|
|
27823
28229
|
*
|
|
@@ -27897,7 +28303,7 @@ b.crewlet-switcher__match {
|
|
|
27897
28303
|
}
|
|
27898
28304
|
|
|
27899
28305
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
27900
|
-
:root[data-crewlet-focus='pointer'] .crewlet-tags-input__box:focus-visible {
|
|
28306
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-tags-input__box:focus-visible {
|
|
27901
28307
|
outline-width: 1px;
|
|
27902
28308
|
outline-color: var(--color-border-selected);
|
|
27903
28309
|
}
|
|
@@ -28547,7 +28953,7 @@ b.crewlet-switcher__match {
|
|
|
28547
28953
|
}
|
|
28548
28954
|
|
|
28549
28955
|
|
|
28550
|
-
/* TimeWindowPicker-
|
|
28956
|
+
/* TimeWindowPicker-I3HXC74I.css */
|
|
28551
28957
|
/*
|
|
28552
28958
|
* TimeWindowPicker: one trigger over one panel.
|
|
28553
28959
|
*
|
|
@@ -28602,8 +29008,8 @@ b.crewlet-switcher__match {
|
|
|
28602
29008
|
}
|
|
28603
29009
|
|
|
28604
29010
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
28605
|
-
:root[data-crewlet-focus='pointer'] .crewlet-time-window:focus-visible,
|
|
28606
|
-
:root[data-crewlet-focus='pointer'] .crewlet-time-window.is-open {
|
|
29011
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-time-window:focus-visible,
|
|
29012
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-time-window.is-open {
|
|
28607
29013
|
outline-width: 1px;
|
|
28608
29014
|
outline-color: var(--color-border-selected);
|
|
28609
29015
|
}
|
|
@@ -28880,7 +29286,7 @@ svg.crewlet-time-window__tick {
|
|
|
28880
29286
|
}
|
|
28881
29287
|
|
|
28882
29288
|
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
28883
|
-
:root[data-crewlet-focus='pointer'] .crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
|
|
29289
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
|
|
28884
29290
|
outline-width: 1px;
|
|
28885
29291
|
outline-color: var(--color-border-selected);
|
|
28886
29292
|
}
|