@crewlethq/ui 0.37.0 → 0.37.1
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 +24 -0
- package/dist/AgentHandoffPanel/index.js +4 -4
- package/dist/AppShell/index.d.ts +1 -0
- package/dist/AppShell/index.js +5 -3
- package/dist/{AppShell-JTSEOA57.css → AppShell-JBCZSSX3.css} +14 -2
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactBar/index.js +9 -7
- package/dist/ArtifactCover/index.js +3 -3
- package/dist/ArtifactMakeRow/index.d.ts +1 -0
- package/dist/ArtifactMakeRow/index.js +2 -1
- package/dist/{ArtifactMakeRow-XBA2MPSY.css → ArtifactMakeRow-W3RD5YWZ.css} +6 -1
- 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/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 +2 -1
- 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/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/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 +8 -7
- 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/Switcher/index.js +8 -8
- 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/TagsInput/index.js +5 -5
- 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-AOLCZDZ6.js → chunk-3SBM4DGI.js} +4 -4
- package/dist/{chunk-H5NOLRGH.js → chunk-3V5T5K5H.js} +1 -1
- package/dist/chunk-4ISUIS6F.js +3 -0
- 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-N5SKHIAP.js → chunk-A72JPXIV.js} +8 -6
- 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-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-BIQDJOJZ.js → chunk-DOLATMGF.js} +2 -2
- package/dist/{chunk-W3HYWD63.js → chunk-DZSBFITC.js} +15 -8
- 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-FG4O64DV.js → chunk-F3WZ5AKM.js} +5 -5
- 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-PGZ2R3ON.js → chunk-HDHZWIFL.js} +8 -6
- package/dist/{chunk-GRYZ5EP3.js → chunk-HMLAWVG6.js} +13 -2
- package/dist/{chunk-6ZJ3N7QI.js → chunk-I33UIUZD.js} +1 -1
- package/dist/{chunk-RH2NCQBZ.js → chunk-ISA2O2BK.js} +2 -2
- package/dist/{chunk-K3IJQNB7.js → chunk-KHJIEPZV.js} +3 -2
- package/dist/{chunk-GS7ZTHPF.js → chunk-MG3HTY6F.js} +7 -7
- package/dist/chunk-MICRGE3J.js +1 -0
- package/dist/{chunk-44WJLPQS.js → chunk-MMPKN7WV.js} +2 -2
- package/dist/{chunk-PGRPNDWM.js → chunk-NR4CPM4T.js} +1 -1
- package/dist/{chunk-5WDXPHEW.js → chunk-NRBAXRWE.js} +1 -1
- package/dist/{chunk-EAKC24BW.js → chunk-NS4NSHVX.js} +5 -3
- package/dist/{chunk-YSGLEHND.js → chunk-NUZHC6MM.js} +14 -2
- package/dist/{chunk-WGD2HX2A.js → chunk-OED6LUWE.js} +1 -1
- package/dist/{chunk-KJW2AS57.js → chunk-PEUGPAKH.js} +1 -1
- package/dist/{chunk-IPAU6FLH.js → chunk-PPHTIKZO.js} +1 -1
- package/dist/{chunk-P6WFZDKS.js → chunk-PWG3VHRQ.js} +2 -2
- 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-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-VKKUGZ3G.js → chunk-XQZ6EWOE.js} +8 -5
- package/dist/{chunk-TVRBQMIX.js → chunk-YPMGP2X4.js} +6 -6
- package/dist/{chunk-EOQFPZEE.js → chunk-YSG3DW7W.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/generated/index.d.ts +1 -0
- package/dist/generated/index.js +97 -95
- package/dist/index.js +97 -95
- package/dist/styles.css +227 -60
- 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/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-JBCZSSX3.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
|
}
|
|
@@ -914,6 +915,10 @@
|
|
|
914
915
|
|
|
915
916
|
.crewlet-app-shell__rail-row--action,
|
|
916
917
|
.crewlet-app-shell__rail-foot > .crewlet-btn {
|
|
918
|
+
/* Half the foot's gap to each neighbour, so the rows' targets meet
|
|
919
|
+
(HitArea.css), across the row's 1px border; the account row below
|
|
920
|
+
reaches back the same way. */
|
|
921
|
+
--crewlet-hit-area-block: calc(var(--crewlet-rail-foot-gap, 0px) / 2 + 1px);
|
|
917
922
|
cursor: pointer;
|
|
918
923
|
transition:
|
|
919
924
|
background var(--motion-duration-fast) var(--motion-easing-default),
|
|
@@ -1340,11 +1345,12 @@
|
|
|
1340
1345
|
* the controls off the rail.
|
|
1341
1346
|
*/
|
|
1342
1347
|
.crewlet-account-row {
|
|
1348
|
+
--crewlet-account-row-pad: var(--spacing-1);
|
|
1343
1349
|
display: flex;
|
|
1344
1350
|
align-items: center;
|
|
1345
1351
|
gap: var(--spacing-1);
|
|
1346
1352
|
min-width: 0;
|
|
1347
|
-
padding: var(--
|
|
1353
|
+
padding: var(--crewlet-account-row-pad) 0;
|
|
1348
1354
|
}
|
|
1349
1355
|
|
|
1350
1356
|
.crewlet-account-row__who {
|
|
@@ -1361,6 +1367,12 @@
|
|
|
1361
1367
|
transition: background var(--motion-duration-fast) var(--motion-easing-default);
|
|
1362
1368
|
}
|
|
1363
1369
|
|
|
1370
|
+
/* In the rail's foot, the account row reaches up across its own padding to
|
|
1371
|
+
half the foot's gap, to meet the row above (HitArea.css). */
|
|
1372
|
+
.crewlet-app-shell__rail-foot .crewlet-account-row__who {
|
|
1373
|
+
--crewlet-hit-area-block-start: calc(var(--crewlet-rail-foot-gap) / 2 + var(--crewlet-account-row-pad));
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1364
1376
|
/* The row as the reader's menu button: a button drawn as the link is. */
|
|
1365
1377
|
button.crewlet-account-row__who {
|
|
1366
1378
|
width: 100%;
|
|
@@ -3299,7 +3311,7 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3299
3311
|
.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
3312
|
|
|
3301
3313
|
|
|
3302
|
-
/* ArtifactMakeRow-
|
|
3314
|
+
/* ArtifactMakeRow-W3RD5YWZ.css */
|
|
3303
3315
|
/*
|
|
3304
3316
|
* The "Start a new artifact" tray.
|
|
3305
3317
|
*
|
|
@@ -3328,9 +3340,10 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3328
3340
|
}
|
|
3329
3341
|
|
|
3330
3342
|
.crewlet-make-row__list {
|
|
3343
|
+
--crewlet-make-row-gap: var(--spacing-1);
|
|
3331
3344
|
display: grid;
|
|
3332
3345
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3333
|
-
gap: var(--
|
|
3346
|
+
gap: var(--crewlet-make-row-gap);
|
|
3334
3347
|
margin: 0;
|
|
3335
3348
|
padding: var(--spacing-1);
|
|
3336
3349
|
list-style: none;
|
|
@@ -3355,6 +3368,10 @@ a.crewlet-kind-tile:hover .crewlet-kind-tile__frame,
|
|
|
3355
3368
|
color: var(--color-text-primary);
|
|
3356
3369
|
text-decoration: none;
|
|
3357
3370
|
outline: none;
|
|
3371
|
+
/* Half the gap to each neighbour, so the targets meet (HitArea.css), and
|
|
3372
|
+
the 1px border the reach is measured inside of. */
|
|
3373
|
+
--crewlet-hit-area-block: calc(var(--crewlet-make-row-gap) / 2 + 1px);
|
|
3374
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-make-row-gap) / 2 + 1px);
|
|
3358
3375
|
transition:
|
|
3359
3376
|
background-color var(--motion-duration-fast) var(--motion-easing-out),
|
|
3360
3377
|
border-color var(--motion-duration-fast) var(--motion-easing-out),
|
|
@@ -8005,7 +8022,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8005
8022
|
}
|
|
8006
8023
|
|
|
8007
8024
|
|
|
8008
|
-
/* ChoiceList-
|
|
8025
|
+
/* ChoiceList-KFYFAECP.css */
|
|
8009
8026
|
/*
|
|
8010
8027
|
* A short list of answers in one bordered box: a radio, the label with a line
|
|
8011
8028
|
* of detail under it, and a tag at the row's end. The selected row takes the
|
|
@@ -8016,8 +8033,10 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8016
8033
|
.crewlet-choice-list {
|
|
8017
8034
|
/* The platform's radio, sized here so a panel can line up with the text beside it. */
|
|
8018
8035
|
--crewlet-choice-list-radio-size: 13px;
|
|
8036
|
+
/* The step between two answers. Every row's pointer target reaches half of it. */
|
|
8037
|
+
--crewlet-choice-list-gap: var(--spacing-1);
|
|
8019
8038
|
display: grid;
|
|
8020
|
-
gap: var(--
|
|
8039
|
+
gap: var(--crewlet-choice-list-gap);
|
|
8021
8040
|
padding: var(--spacing-1);
|
|
8022
8041
|
border: 1px solid var(--color-border-strong);
|
|
8023
8042
|
border-radius: var(--radius-md);
|
|
@@ -8030,21 +8049,24 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8030
8049
|
|
|
8031
8050
|
.crewlet-choice-list__group {
|
|
8032
8051
|
display: grid;
|
|
8033
|
-
gap: var(--
|
|
8052
|
+
gap: var(--crewlet-choice-list-gap);
|
|
8034
8053
|
}
|
|
8035
8054
|
|
|
8036
8055
|
.crewlet-choice-list__item {
|
|
8037
8056
|
display: grid;
|
|
8038
|
-
gap: var(--
|
|
8057
|
+
gap: var(--crewlet-choice-list-gap);
|
|
8039
8058
|
}
|
|
8040
8059
|
|
|
8041
8060
|
/* The "Something else" a list ends with, set apart by a dashed rule. */
|
|
8042
8061
|
.crewlet-choice-list__item.is-separated {
|
|
8043
|
-
|
|
8062
|
+
--crewlet-choice-list-rule-pad: var(--spacing-1);
|
|
8063
|
+
padding-top: var(--crewlet-choice-list-rule-pad);
|
|
8044
8064
|
border-top: 1px dashed var(--color-border-strong);
|
|
8045
8065
|
}
|
|
8046
8066
|
|
|
8047
8067
|
.crewlet-choice-list__row {
|
|
8068
|
+
/* Half the step to each neighbour, so the targets meet (HitArea.css). */
|
|
8069
|
+
--crewlet-hit-area-block: calc(var(--crewlet-choice-list-gap) / 2);
|
|
8048
8070
|
display: grid;
|
|
8049
8071
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
8050
8072
|
align-items: start;
|
|
@@ -8055,6 +8077,23 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8055
8077
|
transition: background-color var(--motion-duration-fast) var(--motion-easing-default);
|
|
8056
8078
|
}
|
|
8057
8079
|
|
|
8080
|
+
/*
|
|
8081
|
+
* THE ANSWER AFTER THE RULE reaches up across it, so the pointer leaving the
|
|
8082
|
+
* row above lands on this one rather than on the rule: the dashed line sets
|
|
8083
|
+
* the answer apart for the eye, and is no gap for the hand.
|
|
8084
|
+
*/
|
|
8085
|
+
.crewlet-choice-list__item.is-separated > .crewlet-choice-list__row {
|
|
8086
|
+
--crewlet-hit-area-block-start: calc(var(--crewlet-choice-list-gap) / 2 + var(--crewlet-choice-list-rule-pad) + 1px);
|
|
8087
|
+
}
|
|
8088
|
+
|
|
8089
|
+
/*
|
|
8090
|
+
* A ROW WITH ITS PANEL OPEN reaches nothing downward: the panel is part of the
|
|
8091
|
+
* answer and holds controls of its own, which the row must not cover.
|
|
8092
|
+
*/
|
|
8093
|
+
.crewlet-choice-list__item:has(> .crewlet-choice-list__panel) > .crewlet-choice-list__row {
|
|
8094
|
+
--crewlet-hit-area-block-end: 0px;
|
|
8095
|
+
}
|
|
8096
|
+
|
|
8058
8097
|
/* A choice with a picture: the radio, the picture, the words, the tag. The
|
|
8059
8098
|
picture centres on the label and its detail together. */
|
|
8060
8099
|
.crewlet-choice-list__row.has-media {
|
|
@@ -8378,7 +8417,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8378
8417
|
}
|
|
8379
8418
|
|
|
8380
8419
|
|
|
8381
|
-
/* Combobox-
|
|
8420
|
+
/* Combobox-YDONYDTM.css */
|
|
8382
8421
|
/*
|
|
8383
8422
|
* Combobox: a field that offers completions.
|
|
8384
8423
|
*
|
|
@@ -8405,9 +8444,10 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8405
8444
|
overflow-y: auto;
|
|
8406
8445
|
overscroll-behavior: contain;
|
|
8407
8446
|
padding: var(--spacing-1);
|
|
8447
|
+
--crewlet-listbox-gap: 1px;
|
|
8408
8448
|
display: flex;
|
|
8409
8449
|
flex-direction: column;
|
|
8410
|
-
gap:
|
|
8450
|
+
gap: var(--crewlet-listbox-gap);
|
|
8411
8451
|
/*
|
|
8412
8452
|
* OPAQUE, and the product's own panel surface: a translucent list over a
|
|
8413
8453
|
* form puts two sets of words in the same place, and the words underneath
|
|
@@ -8461,7 +8501,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8461
8501
|
}
|
|
8462
8502
|
|
|
8463
8503
|
|
|
8464
|
-
/* CommandPalette-
|
|
8504
|
+
/* CommandPalette-TOZYLWLE.css */
|
|
8465
8505
|
/*
|
|
8466
8506
|
* The command palette: a field, an optional row of scopes, one scroller
|
|
8467
8507
|
* holding the lead and the list, and a key legend.
|
|
@@ -8627,10 +8667,11 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8627
8667
|
* draw and no slider to measure, and the bar is each tab's own edge.
|
|
8628
8668
|
*/
|
|
8629
8669
|
.crewlet-palette__scopes {
|
|
8670
|
+
--crewlet-palette-scope-gap: var(--spacing-4);
|
|
8630
8671
|
flex-shrink: 0;
|
|
8631
8672
|
display: flex;
|
|
8632
8673
|
align-items: stretch;
|
|
8633
|
-
gap: var(--
|
|
8674
|
+
gap: var(--crewlet-palette-scope-gap);
|
|
8634
8675
|
min-height: var(--size-row-md);
|
|
8635
8676
|
padding-inline: var(--spacing-4);
|
|
8636
8677
|
border-bottom: 1px solid var(--color-border-default);
|
|
@@ -8659,6 +8700,9 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8659
8700
|
font-weight: var(--font-weight-medium);
|
|
8660
8701
|
white-space: nowrap;
|
|
8661
8702
|
cursor: pointer;
|
|
8703
|
+
/* Half the gap to each neighbour, so the scopes' targets meet (HitArea.css).
|
|
8704
|
+
The row's own inline padding holds the reach at either end. */
|
|
8705
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-palette-scope-gap) / 2);
|
|
8662
8706
|
}
|
|
8663
8707
|
|
|
8664
8708
|
.crewlet-palette__scope:hover,
|
|
@@ -8873,7 +8917,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8873
8917
|
}
|
|
8874
8918
|
|
|
8875
8919
|
|
|
8876
|
-
/* Composer-
|
|
8920
|
+
/* Composer-TXULCPPV.css */
|
|
8877
8921
|
/*
|
|
8878
8922
|
* A message written in place: the field and its footer strip in one box. The
|
|
8879
8923
|
* BOX takes the focus ring every field in the package draws (see Input.css):
|
|
@@ -8903,7 +8947,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
8903
8947
|
outline-offset: -1px;
|
|
8904
8948
|
}
|
|
8905
8949
|
|
|
8906
|
-
:root[data-crewlet-focus='pointer'] .crewlet-composer:has(.crewlet-composer__field:focus-visible) {
|
|
8950
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-composer:has(.crewlet-composer__field:focus-visible) {
|
|
8907
8951
|
outline-width: 1px;
|
|
8908
8952
|
outline-color: var(--color-border-selected);
|
|
8909
8953
|
}
|
|
@@ -11939,7 +11983,7 @@ body.crewlet-data-table-resizing {
|
|
|
11939
11983
|
}
|
|
11940
11984
|
|
|
11941
11985
|
|
|
11942
|
-
/* DatasetSource-
|
|
11986
|
+
/* DatasetSource-FFKTD3ZU.css */
|
|
11943
11987
|
/*
|
|
11944
11988
|
* DatasetSource: one entry of a dashboard's Sources rail. The title and its
|
|
11945
11989
|
* source kind, the definition, then where the rows stand, how many there are
|
|
@@ -11975,6 +12019,20 @@ body.crewlet-data-table-resizing {
|
|
|
11975
12019
|
|
|
11976
12020
|
button.crewlet-dataset-source__summary {
|
|
11977
12021
|
cursor: pointer;
|
|
12022
|
+
/* Half the list's gap to each neighbour, so the entries' targets meet
|
|
12023
|
+
(HitArea.css), across the entry's 1px boundary and the summary's own. */
|
|
12024
|
+
--crewlet-hit-area-block: calc(var(--crewlet-dataset-source-list-gap, 0px) / 2 + 2px);
|
|
12025
|
+
}
|
|
12026
|
+
|
|
12027
|
+
/* The list has no padding, so its first and last entries reach nothing past
|
|
12028
|
+
it; and an open entry's preview holds controls the summary must not cover. */
|
|
12029
|
+
.crewlet-dataset-source-list__item:first-child button.crewlet-dataset-source__summary {
|
|
12030
|
+
--crewlet-hit-area-block-start: 0px;
|
|
12031
|
+
}
|
|
12032
|
+
|
|
12033
|
+
.crewlet-dataset-source-list__item:last-child button.crewlet-dataset-source__summary,
|
|
12034
|
+
.crewlet-dataset-source--open > button.crewlet-dataset-source__summary {
|
|
12035
|
+
--crewlet-hit-area-block-end: 0px;
|
|
11978
12036
|
}
|
|
11979
12037
|
|
|
11980
12038
|
button.crewlet-dataset-source__summary:hover {
|
|
@@ -12100,9 +12158,10 @@ button.crewlet-dataset-source__summary:focus-visible {
|
|
|
12100
12158
|
}
|
|
12101
12159
|
|
|
12102
12160
|
.crewlet-dataset-source-list {
|
|
12161
|
+
--crewlet-dataset-source-list-gap: var(--spacing-1);
|
|
12103
12162
|
display: flex;
|
|
12104
12163
|
flex-direction: column;
|
|
12105
|
-
gap: var(--
|
|
12164
|
+
gap: var(--crewlet-dataset-source-list-gap);
|
|
12106
12165
|
margin: 0;
|
|
12107
12166
|
padding: 0;
|
|
12108
12167
|
list-style: none;
|
|
@@ -12113,7 +12172,7 @@ button.crewlet-dataset-source__summary:focus-visible {
|
|
|
12113
12172
|
}
|
|
12114
12173
|
|
|
12115
12174
|
|
|
12116
|
-
/* DateTimePicker-
|
|
12175
|
+
/* DateTimePicker-3A7JIIVL.css */
|
|
12117
12176
|
/*
|
|
12118
12177
|
* DateTimePicker: a Select-shaped trigger over a calendar dialog.
|
|
12119
12178
|
*
|
|
@@ -12172,8 +12231,8 @@ button.crewlet-dataset-source__summary:focus-visible {
|
|
|
12172
12231
|
}
|
|
12173
12232
|
|
|
12174
12233
|
/* 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 {
|
|
12234
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-datetime:focus-visible,
|
|
12235
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-datetime.is-open {
|
|
12177
12236
|
outline-width: 1px;
|
|
12178
12237
|
outline-color: var(--color-border-selected);
|
|
12179
12238
|
}
|
|
@@ -12305,7 +12364,7 @@ svg.crewlet-datetime__chevron {
|
|
|
12305
12364
|
}
|
|
12306
12365
|
|
|
12307
12366
|
/* 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 {
|
|
12367
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-datetime__time-input:focus-visible {
|
|
12309
12368
|
outline-width: 1px;
|
|
12310
12369
|
outline-color: var(--color-border-selected);
|
|
12311
12370
|
}
|
|
@@ -13022,7 +13081,7 @@ svg.crewlet-datetime__chevron {
|
|
|
13022
13081
|
}
|
|
13023
13082
|
|
|
13024
13083
|
|
|
13025
|
-
/* Document-
|
|
13084
|
+
/* Document-TZ2NBLOR.css */
|
|
13026
13085
|
/*
|
|
13027
13086
|
* Rendered markdown, set as a document (Document.tsx).
|
|
13028
13087
|
*
|
|
@@ -13398,7 +13457,7 @@ svg.crewlet-datetime__chevron {
|
|
|
13398
13457
|
outline: 2px solid transparent;
|
|
13399
13458
|
}
|
|
13400
13459
|
|
|
13401
|
-
:root[data-crewlet-focus='pointer'] .crewlet-document-title-field:focus-visible {
|
|
13460
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-document-title-field:focus-visible {
|
|
13402
13461
|
border-block-end-color: var(--color-border-selected);
|
|
13403
13462
|
box-shadow: none;
|
|
13404
13463
|
}
|
|
@@ -13411,7 +13470,7 @@ svg.crewlet-datetime__chevron {
|
|
|
13411
13470
|
box-shadow: 0 1px 0 var(--color-feedback-danger);
|
|
13412
13471
|
}
|
|
13413
13472
|
|
|
13414
|
-
:root[data-crewlet-focus='pointer'] .crewlet-document-title-field[aria-invalid='true']:focus-visible {
|
|
13473
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-document-title-field[aria-invalid='true']:focus-visible {
|
|
13415
13474
|
border-block-end-color: var(--color-feedback-danger);
|
|
13416
13475
|
}
|
|
13417
13476
|
|
|
@@ -14214,6 +14273,44 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
14214
14273
|
}
|
|
14215
14274
|
|
|
14216
14275
|
|
|
14276
|
+
/* HitArea-QUOS6ZDJ.css */
|
|
14277
|
+
/*
|
|
14278
|
+
* A ROW'S TARGET RUNS TO ITS NEIGHBOUR'S. The rows of one list are drawn a
|
|
14279
|
+
* step apart, and the gap between them belonged to no row: a pointer crossing
|
|
14280
|
+
* the list slowly met the list itself there, so the hand turned into the arrow
|
|
14281
|
+
* and the hover fill went out between every two rows and came back on the
|
|
14282
|
+
* next, which a reader sees as the cursor flickering. Each row that carries
|
|
14283
|
+
* this class reaches half the gap on each side with an empty `::after`, so the
|
|
14284
|
+
* targets meet in the middle of every gap and the drawn rows keep their
|
|
14285
|
+
* spacing. The pseudo-element is part of its row: it takes the row's cursor,
|
|
14286
|
+
* makes the row `:hover`, and a press on it is a press on the row.
|
|
14287
|
+
*
|
|
14288
|
+
* The reach is set on the ROW, from the gap its list is laid out with, as
|
|
14289
|
+
* `--crewlet-hit-area-block` and `--crewlet-hit-area-inline` (each side may be
|
|
14290
|
+
* set alone with the `-start` and `-end` forms). A row that sets none reaches
|
|
14291
|
+
* nowhere. It stays inside the list's own padding, so no scroller grows.
|
|
14292
|
+
*
|
|
14293
|
+
* IT IS MEASURED FROM THE ROW'S PADDING EDGE, which is where an absolutely
|
|
14294
|
+
* placed box starts, so a row drawn with a border (a transparent one
|
|
14295
|
+
* included) adds the border's width to its reach.
|
|
14296
|
+
*
|
|
14297
|
+
* `position: relative` is at zero specificity, so a row positioned on purpose
|
|
14298
|
+
* keeps its own position and is still the pseudo-element's containing block.
|
|
14299
|
+
*/
|
|
14300
|
+
:where(.crewlet-hit-area) {
|
|
14301
|
+
position: relative;
|
|
14302
|
+
}
|
|
14303
|
+
|
|
14304
|
+
.crewlet-hit-area::after {
|
|
14305
|
+
content: '';
|
|
14306
|
+
position: absolute;
|
|
14307
|
+
top: calc(var(--crewlet-hit-area-block-start, var(--crewlet-hit-area-block, 0px)) * -1);
|
|
14308
|
+
bottom: calc(var(--crewlet-hit-area-block-end, var(--crewlet-hit-area-block, 0px)) * -1);
|
|
14309
|
+
inset-inline-start: calc(var(--crewlet-hit-area-inline-start, var(--crewlet-hit-area-inline, 0px)) * -1);
|
|
14310
|
+
inset-inline-end: calc(var(--crewlet-hit-area-inline-end, var(--crewlet-hit-area-inline, 0px)) * -1);
|
|
14311
|
+
}
|
|
14312
|
+
|
|
14313
|
+
|
|
14217
14314
|
/* HuePicker-PAIGH6LR.css */
|
|
14218
14315
|
/*
|
|
14219
14316
|
* A hue's swatch: the hue itself, as a dot beside its name. The name carries
|
|
@@ -14999,7 +15096,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
14999
15096
|
}
|
|
15000
15097
|
|
|
15001
15098
|
|
|
15002
|
-
/* Input-
|
|
15099
|
+
/* Input-OQZBCRX5.css */
|
|
15003
15100
|
/*
|
|
15004
15101
|
* The form row: Input, Textarea, Label, FormField, FormRow, FormSection and
|
|
15005
15102
|
* ReadOnlyField.
|
|
@@ -15126,8 +15223,13 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15126
15223
|
* round it before anybody had touched a key. A refused field keeps its own
|
|
15127
15224
|
* colour under a pointer too (below). A document that tracks nothing keeps
|
|
15128
15225
|
* the keyboard's ring.
|
|
15226
|
+
*
|
|
15227
|
+
* The modality is matched inside :where(), here and in every field's narrowing
|
|
15228
|
+
* rule, so it narrows a ring and never outranks a variant's own: at the
|
|
15229
|
+
* attribute's specificity it beat `.crewlet-input--command`, and the palette's
|
|
15230
|
+
* borderless search field drew a square accent hairline round its text.
|
|
15129
15231
|
*/
|
|
15130
|
-
:root[data-crewlet-focus='pointer'] .crewlet-input:has(.crewlet-input__control:focus-visible) {
|
|
15232
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-input:has(.crewlet-input__control:focus-visible) {
|
|
15131
15233
|
outline-width: 1px;
|
|
15132
15234
|
outline-color: var(--color-border-selected);
|
|
15133
15235
|
}
|
|
@@ -15152,7 +15254,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15152
15254
|
outline-color: var(--color-feedback-danger);
|
|
15153
15255
|
}
|
|
15154
15256
|
|
|
15155
|
-
:root[data-crewlet-focus='pointer'] .crewlet-input.is-error:has(.crewlet-input__control:focus-visible) {
|
|
15257
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-input.is-error:has(.crewlet-input__control:focus-visible) {
|
|
15156
15258
|
outline-color: var(--color-feedback-danger);
|
|
15157
15259
|
}
|
|
15158
15260
|
|
|
@@ -15397,7 +15499,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15397
15499
|
}
|
|
15398
15500
|
|
|
15399
15501
|
/* 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 {
|
|
15502
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-textarea:focus-visible {
|
|
15401
15503
|
outline-width: 1px;
|
|
15402
15504
|
outline-color: var(--color-border-selected);
|
|
15403
15505
|
}
|
|
@@ -15410,7 +15512,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
15410
15512
|
outline-color: var(--color-feedback-danger);
|
|
15411
15513
|
}
|
|
15412
15514
|
|
|
15413
|
-
:root[data-crewlet-focus='pointer'] .crewlet-textarea.is-error:focus-visible {
|
|
15515
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-textarea.is-error:focus-visible {
|
|
15414
15516
|
outline-color: var(--color-feedback-danger);
|
|
15415
15517
|
}
|
|
15416
15518
|
|
|
@@ -16632,7 +16734,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16632
16734
|
}
|
|
16633
16735
|
|
|
16634
16736
|
|
|
16635
|
-
/* Listbox-
|
|
16737
|
+
/* Listbox-NQV6E3FS.css */
|
|
16636
16738
|
/*
|
|
16637
16739
|
* The listbox register: one look for every list a field offers.
|
|
16638
16740
|
*
|
|
@@ -16707,6 +16809,9 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16707
16809
|
cursor: pointer;
|
|
16708
16810
|
/* A row is chosen by the arrows as often as by the pointer, so the highlight
|
|
16709
16811
|
lands with no transition: a fade would lag a held arrow key. */
|
|
16812
|
+
/* Where a list sets its rows apart, each row's target reaches half the gap
|
|
16813
|
+
(HitArea.css), so the pointer never falls between two of them. */
|
|
16814
|
+
--crewlet-hit-area-block: calc(var(--crewlet-listbox-gap, 0px) / 2);
|
|
16710
16815
|
}
|
|
16711
16816
|
|
|
16712
16817
|
/*
|
|
@@ -16848,7 +16953,7 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16848
16953
|
}
|
|
16849
16954
|
|
|
16850
16955
|
|
|
16851
|
-
/* LivePreview-
|
|
16956
|
+
/* LivePreview-KQEDMQCY.css */
|
|
16852
16957
|
/*
|
|
16853
16958
|
* A live preview: the stand-in, the still copy of what the content drew and
|
|
16854
16959
|
* the live layer it is drawn in, stacked in that order in one box. The box
|
|
@@ -16903,6 +17008,19 @@ button.crewlet-finding-list__row:focus-visible {
|
|
|
16903
17008
|
transition: none !important;
|
|
16904
17009
|
}
|
|
16905
17010
|
|
|
17011
|
+
/* NOR DOES ANYTHING IN IT SCROLL: a copy of a box that scrolled (a sheet
|
|
17012
|
+
wider than the card, a long list) is a picture of its first view, so it
|
|
17013
|
+
draws no scrollbar. Shown, the bar sat across the card as a stray band.
|
|
17014
|
+
The live layer it is copied from draws none either, so what is laid out
|
|
17015
|
+
there (a sheet's room for a bar included) is what the copy shows. */
|
|
17016
|
+
:is(.crewlet-live-preview__live, .crewlet-live-preview__still) * {
|
|
17017
|
+
scrollbar-width: none !important;
|
|
17018
|
+
}
|
|
17019
|
+
|
|
17020
|
+
:is(.crewlet-live-preview__live, .crewlet-live-preview__still) *::-webkit-scrollbar {
|
|
17021
|
+
display: none;
|
|
17022
|
+
}
|
|
17023
|
+
|
|
16906
17024
|
/* THE LIVE LAYER renders out of sight: content that is copied is never seen
|
|
16907
17025
|
live, only its copy is. A frame's page is kept rather than copied, so a
|
|
16908
17026
|
framed preview's live layer is what fades in once it has drawn. */
|
|
@@ -21832,7 +21950,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21832
21950
|
}
|
|
21833
21951
|
|
|
21834
21952
|
|
|
21835
|
-
/* SegmentedControl-
|
|
21953
|
+
/* SegmentedControl-B7XCUOML.css */
|
|
21836
21954
|
/*
|
|
21837
21955
|
* SegmentedControl: the pill row, drawn with the Tabs classes.
|
|
21838
21956
|
*
|
|
@@ -21860,8 +21978,10 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21860
21978
|
* equal weight in a file that happens to come later takes them back.
|
|
21861
21979
|
*/
|
|
21862
21980
|
.crewlet-tabs.crewlet-segmented--cards {
|
|
21981
|
+
--crewlet-tabs-gap: var(--spacing-2);
|
|
21982
|
+
--crewlet-tabs-row-gap: var(--spacing-2);
|
|
21863
21983
|
display: grid;
|
|
21864
|
-
gap: var(--
|
|
21984
|
+
gap: var(--crewlet-tabs-gap);
|
|
21865
21985
|
width: 100%;
|
|
21866
21986
|
align-items: stretch;
|
|
21867
21987
|
}
|
|
@@ -21872,6 +21992,9 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21872
21992
|
* surface inside a panel of the same surface reads as a second panel.
|
|
21873
21993
|
*/
|
|
21874
21994
|
.crewlet-segmented--cards .crewlet-segmented__option {
|
|
21995
|
+
/* A card's 1px border is inside the reach (HitArea.css). */
|
|
21996
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-tabs-gap) / 2 + 1px);
|
|
21997
|
+
--crewlet-hit-area-block: calc(var(--crewlet-tabs-row-gap) / 2 + 1px);
|
|
21875
21998
|
justify-content: flex-start;
|
|
21876
21999
|
text-align: left;
|
|
21877
22000
|
/* A sentence under a name is a sentence: it wraps rather than being cut. */
|
|
@@ -21916,7 +22039,8 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
21916
22039
|
/* No gap between ROWS: each chip's target already overhangs its drawing by
|
|
21917
22040
|
half a step above and below, so two rows' drawings stand a whole step
|
|
21918
22041
|
apart while their targets meet. */
|
|
21919
|
-
gap:
|
|
22042
|
+
--crewlet-tabs-gap: var(--spacing-1);
|
|
22043
|
+
gap: 0 var(--crewlet-tabs-gap);
|
|
21920
22044
|
}
|
|
21921
22045
|
|
|
21922
22046
|
/*
|
|
@@ -22020,6 +22144,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22020
22144
|
* every option stays visible and inside the focus ring's room.
|
|
22021
22145
|
*/
|
|
22022
22146
|
.crewlet-tabs--pill.crewlet-segmented {
|
|
22147
|
+
--crewlet-tabs-row-gap: var(--crewlet-tabs-gap);
|
|
22023
22148
|
flex-wrap: wrap;
|
|
22024
22149
|
min-width: 0;
|
|
22025
22150
|
max-width: 100%;
|
|
@@ -22138,7 +22263,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22138
22263
|
}
|
|
22139
22264
|
|
|
22140
22265
|
|
|
22141
|
-
/* Select-
|
|
22266
|
+
/* Select-F526HLNR.css */
|
|
22142
22267
|
/*
|
|
22143
22268
|
* Select: one chrome over two controls, and the product's only dropdown.
|
|
22144
22269
|
*
|
|
@@ -22217,7 +22342,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22217
22342
|
}
|
|
22218
22343
|
|
|
22219
22344
|
/* 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 {
|
|
22345
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-select:focus-within {
|
|
22221
22346
|
outline-width: 1px;
|
|
22222
22347
|
outline-color: var(--color-border-selected);
|
|
22223
22348
|
}
|
|
@@ -22280,7 +22405,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
22280
22405
|
outline-color: var(--color-feedback-danger);
|
|
22281
22406
|
}
|
|
22282
22407
|
|
|
22283
|
-
:root[data-crewlet-focus='pointer'] .crewlet-select.is-error:focus-within {
|
|
22408
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-select.is-error:focus-within {
|
|
22284
22409
|
outline-color: var(--color-feedback-danger);
|
|
22285
22410
|
}
|
|
22286
22411
|
|
|
@@ -22427,9 +22552,10 @@ svg.crewlet-select__chevron {
|
|
|
22427
22552
|
}
|
|
22428
22553
|
|
|
22429
22554
|
.crewlet-select__group {
|
|
22555
|
+
--crewlet-listbox-gap: 1px;
|
|
22430
22556
|
display: flex;
|
|
22431
22557
|
flex-direction: column;
|
|
22432
|
-
gap:
|
|
22558
|
+
gap: var(--crewlet-listbox-gap);
|
|
22433
22559
|
}
|
|
22434
22560
|
|
|
22435
22561
|
.crewlet-select__option {
|
|
@@ -22582,7 +22708,7 @@ svg.crewlet-select__chevron {
|
|
|
22582
22708
|
}
|
|
22583
22709
|
|
|
22584
22710
|
/* 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 {
|
|
22711
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-select__search:focus-within {
|
|
22586
22712
|
outline-width: 1px;
|
|
22587
22713
|
outline-color: var(--color-border-selected);
|
|
22588
22714
|
}
|
|
@@ -22857,7 +22983,7 @@ svg.crewlet-select__chevron {
|
|
|
22857
22983
|
}
|
|
22858
22984
|
|
|
22859
22985
|
|
|
22860
|
-
/* SheetGrid-
|
|
22986
|
+
/* SheetGrid-XK7T7M34.css */
|
|
22861
22987
|
/*
|
|
22862
22988
|
* The editable sheet (SheetGrid.tsx) and its cells (cells.tsx).
|
|
22863
22989
|
*
|
|
@@ -23309,16 +23435,21 @@ svg.crewlet-select__chevron {
|
|
|
23309
23435
|
/* ADD COLUMN stands beside the header row, outside the grid's roles: the
|
|
23310
23436
|
scroller lays the grid and the control side by side, the grid's last track
|
|
23311
23437
|
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.
|
|
23438
|
+
with the header while the rows scroll under it. Its track is the control's
|
|
23439
|
+
own square plus an inset on each side, so the square never fills the track
|
|
23440
|
+
edge to edge. THE GRID GROWS INTO WHATEVER THE CONTROL LEAVES rather than
|
|
23441
|
+
into a width assumed for it: held to 100% less an assumed width, it
|
|
23442
|
+
overflowed by the difference whenever the control drew wider, and the
|
|
23443
|
+
sheet scrolled sideways by a few pixels. */
|
|
23313
23444
|
.crewlet-sheet-grid__scroller--add-column {
|
|
23314
|
-
--crewlet-sheet-add-column-width: var(--size-
|
|
23445
|
+
--crewlet-sheet-add-column-width: calc(var(--size-control-sm) + 2 * var(--spacing-1));
|
|
23315
23446
|
display: flex;
|
|
23316
23447
|
align-items: flex-start;
|
|
23317
23448
|
}
|
|
23318
23449
|
|
|
23319
23450
|
.crewlet-sheet-grid__scroller--add-column > .crewlet-sheet-grid__grid {
|
|
23320
|
-
flex:
|
|
23321
|
-
min-width:
|
|
23451
|
+
flex: 1 0 auto;
|
|
23452
|
+
min-width: 0;
|
|
23322
23453
|
}
|
|
23323
23454
|
|
|
23324
23455
|
.crewlet-sheet-grid__add-column {
|
|
@@ -23713,7 +23844,7 @@ svg.crewlet-select__chevron {
|
|
|
23713
23844
|
}
|
|
23714
23845
|
|
|
23715
23846
|
|
|
23716
|
-
/* SidebarNav-
|
|
23847
|
+
/* SidebarNav-7SGUZYKK.css */
|
|
23717
23848
|
/*
|
|
23718
23849
|
* The rail's navigation.
|
|
23719
23850
|
*
|
|
@@ -23744,9 +23875,12 @@ svg.crewlet-select__chevron {
|
|
|
23744
23875
|
* old step, so the gap is paid for many times over by the row it sits beside.
|
|
23745
23876
|
*/
|
|
23746
23877
|
.crewlet-nav-group {
|
|
23878
|
+
--crewlet-nav-group-gap: calc(var(--spacing-1) / 2);
|
|
23879
|
+
/* What a row reaches across (HitArea.css): its own list's gap. */
|
|
23880
|
+
--crewlet-nav-row-gap: var(--crewlet-nav-group-gap);
|
|
23747
23881
|
display: flex;
|
|
23748
23882
|
flex-direction: column;
|
|
23749
|
-
gap:
|
|
23883
|
+
gap: var(--crewlet-nav-group-gap);
|
|
23750
23884
|
min-width: 0;
|
|
23751
23885
|
}
|
|
23752
23886
|
|
|
@@ -23891,6 +24025,20 @@ svg.crewlet-select__chevron {
|
|
|
23891
24025
|
transition:
|
|
23892
24026
|
background var(--motion-duration-fast) var(--motion-easing-default),
|
|
23893
24027
|
color var(--motion-duration-fast) var(--motion-easing-default);
|
|
24028
|
+
/* Half the gap to each neighbour, so the targets meet (HitArea.css). */
|
|
24029
|
+
--crewlet-hit-area-block: calc(var(--crewlet-nav-row-gap, 0px) / 2);
|
|
24030
|
+
}
|
|
24031
|
+
|
|
24032
|
+
/*
|
|
24033
|
+
* AN OPEN ROW AND ITS FIRST NESTED ROW ABUT, with no gap between them to
|
|
24034
|
+
* cross, so neither reaches into the other.
|
|
24035
|
+
*/
|
|
24036
|
+
.crewlet-nav-item:has(> .crewlet-nav-item__children:not([hidden])) > .crewlet-nav-item__head > .crewlet-nav-item__row {
|
|
24037
|
+
--crewlet-hit-area-block-end: 0px;
|
|
24038
|
+
}
|
|
24039
|
+
|
|
24040
|
+
.crewlet-nav-item__children > .crewlet-nav-item:first-child > .crewlet-nav-item__head > .crewlet-nav-item__row {
|
|
24041
|
+
--crewlet-hit-area-block-start: 0px;
|
|
23894
24042
|
}
|
|
23895
24043
|
|
|
23896
24044
|
.crewlet-nav-item__row:hover {
|
|
@@ -24102,9 +24250,11 @@ svg.crewlet-select__chevron {
|
|
|
24102
24250
|
* rail keeps for the one count that asks the reader to act.
|
|
24103
24251
|
*/
|
|
24104
24252
|
.crewlet-nav-item__children {
|
|
24253
|
+
--crewlet-nav-children-gap: var(--spacing-1);
|
|
24254
|
+
--crewlet-nav-row-gap: var(--crewlet-nav-children-gap);
|
|
24105
24255
|
display: flex;
|
|
24106
24256
|
flex-direction: column;
|
|
24107
|
-
gap: var(--
|
|
24257
|
+
gap: var(--crewlet-nav-children-gap);
|
|
24108
24258
|
margin-left: var(--size-nav-row-pad);
|
|
24109
24259
|
padding-left: var(--spacing-2);
|
|
24110
24260
|
border-left: 1px solid var(--color-border-default);
|
|
@@ -25136,7 +25286,7 @@ svg.crewlet-select__chevron {
|
|
|
25136
25286
|
}
|
|
25137
25287
|
|
|
25138
25288
|
|
|
25139
|
-
/* SourceEditor-
|
|
25289
|
+
/* SourceEditor-OKPWPFXK.css */
|
|
25140
25290
|
/*
|
|
25141
25291
|
* Source text written in place: a gutter of line numbers beside a real
|
|
25142
25292
|
* textarea, and the marks a checker placed drawn behind the text. The gutter,
|
|
@@ -25176,7 +25326,7 @@ svg.crewlet-select__chevron {
|
|
|
25176
25326
|
outline-offset: -1px;
|
|
25177
25327
|
}
|
|
25178
25328
|
|
|
25179
|
-
:root[data-crewlet-focus='pointer'] .crewlet-source-editor:has(.crewlet-source-editor__field:focus-visible) {
|
|
25329
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-source-editor:has(.crewlet-source-editor__field:focus-visible) {
|
|
25180
25330
|
outline-width: 1px;
|
|
25181
25331
|
outline-color: var(--color-border-selected);
|
|
25182
25332
|
}
|
|
@@ -26806,7 +26956,7 @@ b.crewlet-switcher__match {
|
|
|
26806
26956
|
}
|
|
26807
26957
|
|
|
26808
26958
|
|
|
26809
|
-
/* Tabs-
|
|
26959
|
+
/* Tabs-WIF7457H.css */
|
|
26810
26960
|
/*
|
|
26811
26961
|
* The pill register: Tabs and SegmentedControl.
|
|
26812
26962
|
*
|
|
@@ -26837,8 +26987,9 @@ b.crewlet-switcher__match {
|
|
|
26837
26987
|
* row is reachable by the arrow keys either way.
|
|
26838
26988
|
*/
|
|
26839
26989
|
.crewlet-tabs--underline {
|
|
26990
|
+
--crewlet-tabs-gap: var(--spacing-2);
|
|
26840
26991
|
display: flex;
|
|
26841
|
-
gap: var(--
|
|
26992
|
+
gap: var(--crewlet-tabs-gap);
|
|
26842
26993
|
border-bottom: 1px solid var(--color-border-default);
|
|
26843
26994
|
position: relative;
|
|
26844
26995
|
width: 100%;
|
|
@@ -26912,8 +27063,9 @@ b.crewlet-switcher__match {
|
|
|
26912
27063
|
*/
|
|
26913
27064
|
.crewlet-tabs--pill {
|
|
26914
27065
|
--crewlet-tabs-pill-inset: 1px;
|
|
27066
|
+
--crewlet-tabs-gap: var(--crewlet-tabs-pill-inset);
|
|
26915
27067
|
|
|
26916
|
-
gap: var(--crewlet-tabs-
|
|
27068
|
+
gap: var(--crewlet-tabs-gap);
|
|
26917
27069
|
padding: var(--crewlet-tabs-pill-inset);
|
|
26918
27070
|
background: var(--color-surface-elevated);
|
|
26919
27071
|
border: 1px solid var(--color-border-default);
|
|
@@ -26974,6 +27126,20 @@ b.crewlet-switcher__match {
|
|
|
26974
27126
|
background-color var(--motion-duration-fast) var(--motion-easing-default),
|
|
26975
27127
|
color var(--motion-duration-fast) var(--motion-easing-default),
|
|
26976
27128
|
box-shadow var(--motion-duration-fast) var(--motion-easing-default);
|
|
27129
|
+
/* Half the gap to each neighbour, so the targets meet (HitArea.css). A row
|
|
27130
|
+
that wraps reaches across its rows' gap too. */
|
|
27131
|
+
--crewlet-hit-area-inline: calc(var(--crewlet-tabs-gap, 0px) / 2);
|
|
27132
|
+
--crewlet-hit-area-block: calc(var(--crewlet-tabs-row-gap, 0px) / 2);
|
|
27133
|
+
}
|
|
27134
|
+
|
|
27135
|
+
/* The row's two ends reach nothing past it: the underline row is a scroller,
|
|
27136
|
+
and a target past its last tab would be width it scrolls by. */
|
|
27137
|
+
.crewlet-tabs__tab:first-child {
|
|
27138
|
+
--crewlet-hit-area-inline-start: 0px;
|
|
27139
|
+
}
|
|
27140
|
+
|
|
27141
|
+
.crewlet-tabs__tab:last-child {
|
|
27142
|
+
--crewlet-hit-area-inline-end: 0px;
|
|
26977
27143
|
}
|
|
26978
27144
|
|
|
26979
27145
|
/*
|
|
@@ -27120,9 +27286,10 @@ b.crewlet-switcher__match {
|
|
|
27120
27286
|
* (FilterChip draws the same pair).
|
|
27121
27287
|
*/
|
|
27122
27288
|
.crewlet-tabs--chip {
|
|
27289
|
+
--crewlet-tabs-gap: calc(var(--spacing-1) / 2);
|
|
27123
27290
|
display: inline-flex;
|
|
27124
27291
|
align-items: center;
|
|
27125
|
-
gap:
|
|
27292
|
+
gap: var(--crewlet-tabs-gap);
|
|
27126
27293
|
}
|
|
27127
27294
|
|
|
27128
27295
|
.crewlet-tabs--chip .crewlet-tabs__tab {
|
|
@@ -27817,7 +27984,7 @@ b.crewlet-switcher__match {
|
|
|
27817
27984
|
}
|
|
27818
27985
|
|
|
27819
27986
|
|
|
27820
|
-
/* TagsInput-
|
|
27987
|
+
/* TagsInput-CLFHP6I2.css */
|
|
27821
27988
|
/*
|
|
27822
27989
|
* TagsInput: several values in one field.
|
|
27823
27990
|
*
|
|
@@ -27897,7 +28064,7 @@ b.crewlet-switcher__match {
|
|
|
27897
28064
|
}
|
|
27898
28065
|
|
|
27899
28066
|
/* 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 {
|
|
28067
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-tags-input__box:focus-visible {
|
|
27901
28068
|
outline-width: 1px;
|
|
27902
28069
|
outline-color: var(--color-border-selected);
|
|
27903
28070
|
}
|
|
@@ -28547,7 +28714,7 @@ b.crewlet-switcher__match {
|
|
|
28547
28714
|
}
|
|
28548
28715
|
|
|
28549
28716
|
|
|
28550
|
-
/* TimeWindowPicker-
|
|
28717
|
+
/* TimeWindowPicker-I3HXC74I.css */
|
|
28551
28718
|
/*
|
|
28552
28719
|
* TimeWindowPicker: one trigger over one panel.
|
|
28553
28720
|
*
|
|
@@ -28602,8 +28769,8 @@ b.crewlet-switcher__match {
|
|
|
28602
28769
|
}
|
|
28603
28770
|
|
|
28604
28771
|
/* 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 {
|
|
28772
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-time-window:focus-visible,
|
|
28773
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-time-window.is-open {
|
|
28607
28774
|
outline-width: 1px;
|
|
28608
28775
|
outline-color: var(--color-border-selected);
|
|
28609
28776
|
}
|
|
@@ -28880,7 +29047,7 @@ svg.crewlet-time-window__tick {
|
|
|
28880
29047
|
}
|
|
28881
29048
|
|
|
28882
29049
|
/* 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) {
|
|
29050
|
+
:where(:root[data-crewlet-focus='pointer']) .crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
|
|
28884
29051
|
outline-width: 1px;
|
|
28885
29052
|
outline-color: var(--color-border-selected);
|
|
28886
29053
|
}
|