@crewlethq/ui 0.81.2 → 0.83.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 +89 -4
- package/dist/Accordion/index.js +3 -3
- package/dist/ActionCard/ActionCard.d.ts +49 -0
- package/dist/ActionCard/index.d.ts +4 -0
- package/dist/ActionCard/index.js +2 -0
- package/dist/ActionCard-47WSZ2O5.css +110 -0
- package/dist/ActivityLine/ActivityLine.d.ts +27 -0
- package/dist/ActivityLine/index.d.ts +4 -0
- package/dist/ActivityLine/index.js +4 -0
- package/dist/ActivityLine-AMSERTOB.css +74 -0
- package/dist/AgentHandoffPanel/index.js +15 -15
- package/dist/AppShell/AccountRow.d.ts +19 -1
- package/dist/AppShell/AppShell.d.ts +62 -4
- package/dist/AppShell/index.d.ts +1 -1
- package/dist/AppShell/index.js +12 -6
- package/dist/AppShell/railMotion.d.ts +60 -0
- package/dist/AppShell/railShape.d.ts +22 -0
- package/dist/{AppShell-2IBUS4TH.css → AppShell-U7D2MUUF.css} +291 -20
- package/dist/ArrangeFrame/index.js +2 -2
- package/dist/ArrangeGroup/index.js +2 -2
- package/dist/ArrangeList/index.js +8 -7
- package/dist/ArtifactBar/index.js +13 -11
- package/dist/ArtifactCard/index.js +13 -13
- package/dist/ArtifactCover/index.js +3 -3
- package/dist/ArtifactKindIllustration/index.js +1 -1
- package/dist/ArtifactKinds-3EH4KR3F.css +18 -0
- package/dist/ArtifactMakeRow/index.js +1 -1
- package/dist/ArtifactNameCell/index.js +1 -1
- package/dist/ArtifactPanel/index.js +5 -5
- package/dist/AttachmentChip/index.js +2 -2
- package/dist/AuthLayout/index.js +5 -4
- package/dist/Avatar/Avatar.d.ts +30 -28
- package/dist/Avatar/AvatarStack.d.ts +2 -2
- package/dist/Avatar/index.d.ts +1 -1
- package/dist/Avatar/index.js +2 -2
- package/dist/{Avatar-VJSJGFRG.css → Avatar-MNE3WBZO.css} +56 -54
- package/dist/AvatarPicker/index.js +13 -12
- package/dist/{AvatarStack-7I3P7LCK.css → AvatarStack-KEHD3GWY.css} +16 -4
- package/dist/BrandLockup/BrandLockup.d.ts +6 -0
- package/dist/BrandLockup/index.js +2 -1
- package/dist/BriefCard/BriefCard.d.ts +23 -1
- package/dist/BriefCard/index.d.ts +2 -2
- package/dist/BriefCard/index.js +7 -7
- package/dist/{BriefCard-VKTH3BSW.css → BriefCard-QCL7MVUV.css} +26 -0
- package/dist/Canvas/index.js +8 -6
- package/dist/CanvasBoard/index.js +11 -9
- package/dist/CanvasToolbar/index.js +10 -8
- package/dist/Card/index.js +2 -2
- package/dist/ChangeList/index.js +5 -5
- package/dist/ChangeMark/index.js +6 -4
- package/dist/CharacterPicker/index.js +2 -2
- package/dist/ChatDay/ChatDay.d.ts +53 -0
- package/dist/ChatDay/index.d.ts +5 -0
- package/dist/ChatDay/index.js +3 -0
- package/dist/ChatDay-E3FF5HWF.css +116 -0
- package/dist/ChatDivider/ChatDivider.d.ts +31 -0
- package/dist/ChatDivider/index.d.ts +4 -0
- package/dist/ChatDivider/index.js +2 -0
- package/dist/ChatDivider-7ZNDL2PZ.css +76 -0
- package/dist/ChatMessage/ChatMessage.d.ts +111 -0
- package/dist/ChatMessage/index.d.ts +4 -0
- package/dist/ChatMessage/index.js +5 -0
- package/dist/ChatMessage-FH7VRVCH.css +304 -0
- package/dist/ChatScale-L4SIHSKL.css +42 -0
- package/dist/ChatThread/ChatThread.d.ts +33 -4
- package/dist/ChatThread/index.d.ts +1 -1
- package/dist/ChatThread/index.js +2 -2
- package/dist/{ChatThread-2KO3FZKQ.css → ChatThread-HAECJMP6.css} +17 -0
- package/dist/CheckGrid/index.js +6 -6
- package/dist/Checkbox/index.js +5 -5
- package/dist/ChipField/ChipField.d.ts +82 -0
- package/dist/ChipField/index.d.ts +4 -0
- package/dist/ChipField/index.js +9 -0
- package/dist/ChipField-D4CW6XFA.css +108 -0
- package/dist/ColorField/index.js +5 -5
- package/dist/Combobox/index.js +7 -7
- package/dist/CommandPalette/index.js +12 -11
- package/dist/CommentThread/index.js +14 -14
- package/dist/CompactNav/CompactNav.d.ts +175 -0
- package/dist/CompactNav/index.d.ts +4 -0
- package/dist/CompactNav/index.js +9 -0
- package/dist/CompactNav-CU2AQXBC.css +322 -0
- package/dist/Composer/Composer.d.ts +26 -2
- package/dist/Composer/index.d.ts +2 -1
- package/dist/Composer/index.js +7 -7
- package/dist/{Composer-HQIMTMRC.css → Composer-ZEGHEAFE.css} +71 -0
- package/dist/ConfirmField/index.js +5 -5
- package/dist/ContrastBadge/index.js +2 -2
- package/dist/ContrastHelp/index.js +7 -6
- package/dist/Count/Count.d.ts +24 -6
- package/dist/Count/index.d.ts +1 -1
- package/dist/Count/index.js +1 -1
- package/dist/{Count-ZJ6ID4ZU.css → Count-2HXBBYPO.css} +19 -0
- package/dist/DataGrid/index.js +8 -8
- package/dist/DataTable/index.js +11 -10
- package/dist/DataView/index.js +18 -17
- package/dist/DatasetSource/index.js +3 -3
- package/dist/DateTimePicker/index.js +6 -5
- package/dist/DeepWorkCard/index.js +9 -9
- package/dist/Disclosure/index.js +3 -3
- package/dist/DocTabsEditor/index.js +11 -9
- package/dist/DockColumn/DockColumn.d.ts +68 -0
- package/dist/DockColumn/index.d.ts +3 -0
- package/dist/DockColumn/index.js +6 -0
- package/dist/DockColumn-SMJCXHS4.css +61 -0
- package/dist/Document/index.js +2 -2
- package/dist/EditingStatus/index.js +2 -2
- package/dist/{Editor-IMYESOW7.js → Editor-5D5Z3LBQ.js} +9 -8
- package/dist/EmojiPicker/EmojiPicker.d.ts +51 -0
- package/dist/EmojiPicker/emoji.d.ts +24 -0
- package/dist/EmojiPicker/index.d.ts +5 -0
- package/dist/EmojiPicker/index.js +15 -0
- package/dist/EmojiPicker-FMWYN2WX.css +63 -0
- package/dist/EntityChip/index.js +3 -3
- package/dist/EntityList/index.js +6 -6
- package/dist/FactList/index.js +6 -4
- package/dist/FolderTile/index.js +3 -3
- package/dist/FollowBanner/index.js +4 -4
- package/dist/HuePicker/index.js +9 -8
- package/dist/ImageUpload/ImageUpload.d.ts +6 -7
- package/dist/ImageUpload/index.js +3 -3
- package/dist/{ImageUpload-OWI7CCG7.css → ImageUpload-IFXZROFZ.css} +6 -37
- package/dist/InlineEditor/index.js +7 -7
- package/dist/Input/index.js +4 -4
- package/dist/Kbd/Kbd.d.ts +9 -0
- package/dist/Kbd/index.d.ts +1 -1
- package/dist/Kbd/index.js +1 -1
- package/dist/Layer/index.js +2 -2
- package/dist/LinkCard/LinkCard.d.ts +64 -0
- package/dist/LinkCard/index.d.ts +5 -0
- package/dist/LinkCard/index.js +5 -0
- package/dist/LinkCard-5I4MYU6I.css +155 -0
- package/dist/LinkInterstitial/index.js +7 -6
- package/dist/ListInput/index.js +10 -9
- package/dist/Listbox/index.js +3 -3
- package/dist/LogoSlot/index.js +3 -3
- package/dist/MarkdownEditor/format.d.ts +9 -1
- package/dist/MarkdownEditor/index.d.ts +2 -2
- package/dist/MarkdownEditor/index.js +10 -9
- package/dist/MediaMatch/index.d.ts +1 -1
- package/dist/MediaMatch/index.js +1 -1
- package/dist/MediaMatch/useMediaMatch.d.ts +14 -0
- package/dist/MentionChip/MentionChip.d.ts +25 -0
- package/dist/MentionChip/index.d.ts +3 -0
- package/dist/MentionChip/index.js +2 -0
- package/dist/MentionChip-W7MZZVRZ.css +42 -0
- package/dist/MentionMenu/MentionMenu.d.ts +82 -0
- package/dist/MentionMenu/index.d.ts +4 -0
- package/dist/MentionMenu/index.js +3 -0
- package/dist/MentionMenu-4NAQ45S4.css +65 -0
- package/dist/Menu/index.js +5 -4
- package/dist/MergeConflicts/index.js +9 -8
- package/dist/MessageActions/MessageActions.d.ts +58 -0
- package/dist/MessageActions/index.d.ts +4 -0
- package/dist/MessageActions/index.js +18 -0
- package/dist/MessageActions-Q4F5UH3S.css +73 -0
- package/dist/Modal/Modal.d.ts +12 -0
- package/dist/Modal/index.js +6 -5
- package/dist/{Modal-FYQYEI3N.css → Modal-GKUOO7PZ.css} +26 -1
- package/dist/OpenInAppCard/index.js +8 -8
- package/dist/OrgLabel/index.js +3 -3
- package/dist/OrgNode/index.js +4 -4
- package/dist/OrgTable/index.js +7 -7
- package/dist/Outline/index.js +2 -1
- package/dist/PeekRail/index.js +1 -1
- package/dist/PeopleRail/index.js +4 -4
- package/dist/PersonRow/PersonRow.d.ts +70 -0
- package/dist/PersonRow/index.d.ts +3 -0
- package/dist/PersonRow/index.js +2 -0
- package/dist/PersonRow-V5GTPNVP.css +161 -0
- package/dist/Popover/index.js +4 -3
- package/dist/Presence/index.d.ts +2 -0
- package/dist/Presence/index.js +4 -0
- package/dist/Presence/usePresence.d.ts +109 -0
- package/dist/PresenceStack/index.js +3 -3
- package/dist/{PresenceStack-ZV67BH4V.css → PresenceStack-2DTYRADY.css} +4 -6
- package/dist/PresenterView/index.js +5 -5
- package/dist/PricingCard/index.js +2 -2
- package/dist/Principal/index.js +3 -3
- package/dist/PrincipalPicker/index.js +11 -11
- package/dist/ProposalCard/index.js +15 -15
- package/dist/ReactionBar/ReactionBar.d.ts +84 -0
- package/dist/ReactionBar/index.d.ts +4 -0
- package/dist/ReactionBar/index.js +17 -0
- package/dist/ReactionBar-XXI4V7XG.css +93 -0
- package/dist/RecordChip/index.js +5 -4
- package/dist/RefusalCard/index.js +6 -6
- package/dist/RelatedRow/index.js +3 -3
- package/dist/Reorder/index.js +2 -1
- package/dist/ResultTableCard/index.js +7 -7
- package/dist/ReviewList/index.js +2 -2
- package/dist/RichEditor/index.js +2 -2
- package/dist/RunChip/index.js +5 -5
- package/dist/SandboxedFrame/index.js +2 -2
- package/dist/SectionFrame/index.js +2 -2
- package/dist/SegmentedControl/index.js +8 -7
- package/dist/Select/index.js +4 -4
- package/dist/SelectionBar/index.js +6 -6
- package/dist/SetupWizard/index.js +6 -6
- package/dist/ShareDialog/index.js +13 -12
- package/dist/SheetColumnEditor/index.js +17 -16
- package/dist/SheetGrid/index.js +14 -12
- package/dist/Shortcut/index.js +3 -3
- package/dist/SidePanel/SidePanel.d.ts +8 -1
- package/dist/SidePanel/SidePanelBase.d.ts +3 -1
- package/dist/SidePanel/index.js +5 -5
- package/dist/{SidePanel-VXKUKLOJ.css → SidePanel-BKWT6Q6Z.css} +36 -0
- package/dist/SidebarNav/SidebarNav.d.ts +52 -3
- package/dist/SidebarNav/index.js +1 -1
- package/dist/{SidebarNav-VTQ3G4AE.css → SidebarNav-E7PZGGA6.css} +132 -7
- package/dist/Skeleton/index.js +1 -1
- package/dist/{Skeleton-7ZA5ETJM.css → Skeleton-GIXV3KK5.css} +3 -1
- package/dist/SlideCompare/index.js +5 -5
- package/dist/SlideFilmstrip/index.js +11 -9
- package/dist/SlideGrid/index.js +4 -4
- package/dist/SlideStage/index.js +3 -3
- package/dist/SourceEditor/index.js +2 -2
- package/dist/StatusCard/index.js +5 -5
- package/dist/Switcher/index.js +13 -12
- package/dist/TableCells/index.js +5 -5
- package/dist/Tabs/index.js +7 -6
- package/dist/Tag/Tag.d.ts +9 -2
- package/dist/Tag/index.js +1 -1
- package/dist/{Tag-JTJVZM2D.css → Tag-WLDOROB5.css} +24 -0
- package/dist/TagsInput/index.js +6 -6
- package/dist/ThemeGallery/index.js +5 -5
- package/dist/ThemeSwitcher/index.js +9 -8
- package/dist/ThinkingIndicator/index.js +1 -1
- package/dist/{ThinkingIndicator-JMK2TNMZ.css → ThinkingIndicator-S7ZL2C77.css} +8 -0
- package/dist/ThreadSummary/ThreadSummary.d.ts +43 -0
- package/dist/ThreadSummary/index.d.ts +4 -0
- package/dist/ThreadSummary/index.js +6 -0
- package/dist/ThreadSummary-AGR4NDMD.css +90 -0
- package/dist/TimeRangePicker/index.js +13 -12
- package/dist/TimeWindowPicker/index.js +11 -10
- package/dist/Toaster/index.js +2 -2
- package/dist/Toolbar/index.js +3 -3
- package/dist/Tooltip/Tooltip.d.ts +30 -3
- package/dist/Tooltip/index.js +5 -3
- package/dist/TreeCanvas/index.js +10 -7
- package/dist/TreeGrid/index.js +3 -3
- package/dist/ValueField/index.js +9 -9
- package/dist/VersionCompare/index.js +10 -9
- package/dist/VersionTimeline/index.js +4 -4
- package/dist/WidgetFrame/index.js +2 -2
- package/dist/{chunk-LOWQK2PB.js → chunk-22CU7V4J.js} +4 -4
- package/dist/{chunk-WCDPFTJZ.js → chunk-25JQNHTC.js} +92 -28
- package/dist/{chunk-6LXS3X7A.js → chunk-2L4WHYMT.js} +1 -1
- package/dist/{chunk-6G6WHTC7.js → chunk-2O5CMV76.js} +1 -1
- package/dist/{chunk-FQI62PIZ.js → chunk-2SVQBQAD.js} +2 -2
- package/dist/{chunk-7PJFUQMY.js → chunk-2ZSCHQOA.js} +1 -1
- package/dist/chunk-3BRXEMYT.js +46 -0
- package/dist/{chunk-H22SR76M.js → chunk-3H6OZUZ3.js} +1 -1
- package/dist/{chunk-VK45YJLH.js → chunk-3IWZVEXA.js} +2 -2
- package/dist/{chunk-2STOSJT3.js → chunk-46FIBJCV.js} +7 -7
- package/dist/chunk-4DEKONVJ.js +87 -0
- package/dist/{chunk-NUZHC6MM.js → chunk-4ITETIGZ.js} +12 -1
- package/dist/{chunk-73GUXYYE.js → chunk-5AHNW5CP.js} +1 -1
- package/dist/{chunk-FFGEJUAP.js → chunk-5ILRWUE7.js} +2 -2
- package/dist/chunk-5JPOFAVN.js +58 -0
- package/dist/{chunk-S5QJZOPL.js → chunk-5K5SZGBI.js} +1 -1
- package/dist/{chunk-YB64PWIN.js → chunk-5V6GW6HK.js} +1 -1
- package/dist/{chunk-LM6VYJTV.js → chunk-5YXMKZUA.js} +1 -1
- package/dist/{chunk-5XBNJNSO.js → chunk-65RFU7LF.js} +1 -1
- package/dist/{chunk-7MGXHCVK.js → chunk-6M2N6ETA.js} +1 -1
- package/dist/{chunk-OWHETZIU.js → chunk-6SFDL4QH.js} +1 -1
- package/dist/{chunk-WK4FQPYW.js → chunk-77VOASOY.js} +5 -5
- package/dist/{chunk-UYF2B2TH.js → chunk-7ELFH3RJ.js} +1 -1
- package/dist/{chunk-HPI5J6AR.js → chunk-7K6LVM5I.js} +2 -2
- package/dist/{chunk-YQDRJZ5J.js → chunk-7M7WKYOV.js} +8 -8
- package/dist/{chunk-A5YKNRG6.js → chunk-7QCSISHM.js} +2 -1
- package/dist/{chunk-CYYBE2MM.js → chunk-7U6PK242.js} +1 -1
- package/dist/{chunk-I33UIUZD.js → chunk-7ZSEUO5Q.js} +51 -40
- package/dist/{chunk-LCZULGMB.js → chunk-ABRWL5FJ.js} +2 -2
- package/dist/{chunk-VG3SIJ3M.js → chunk-AFLS26AC.js} +2 -2
- package/dist/{chunk-4XF7ENQA.js → chunk-AOJ6ZA77.js} +2 -2
- package/dist/{chunk-Q2T4L6ML.js → chunk-AQNP3KQU.js} +5 -5
- package/dist/{chunk-6X5PGHEX.js → chunk-AUSFKGKL.js} +2 -2
- package/dist/{chunk-6R334YT3.js → chunk-AZYE7NR4.js} +2 -2
- package/dist/{chunk-WKKWF277.js → chunk-BN5FEJL5.js} +2 -2
- package/dist/{chunk-MPVMB2DV.js → chunk-BVML4UVB.js} +3 -2
- package/dist/{chunk-EAIOXW2W.js → chunk-BXGBGYKH.js} +8 -14
- package/dist/chunk-C4256UXE.js +21 -0
- package/dist/{chunk-2FMBZCFR.js → chunk-C42XW5YP.js} +1 -1
- package/dist/{chunk-4MRFLHJC.js → chunk-C46DDVTK.js} +1 -1
- package/dist/{chunk-5BOFC5OP.js → chunk-CF4M6N6A.js} +20 -4
- package/dist/{chunk-ANTAQAR4.js → chunk-CMAZZY2I.js} +7 -1
- package/dist/{chunk-3JXX5S3Z.js → chunk-CV2LU2T2.js} +2 -2
- package/dist/{chunk-MLDTLZAO.js → chunk-D2GT3CR4.js} +3 -3
- package/dist/{chunk-57AKYFML.js → chunk-DD7RBNT4.js} +3 -3
- package/dist/{chunk-KL6A7JGH.js → chunk-DRFOTWJE.js} +2 -2
- package/dist/{chunk-MUFBHVCT.js → chunk-DWQYV5AV.js} +2 -2
- package/dist/{chunk-CNEHFH2A.js → chunk-EAHEJNVJ.js} +1 -1
- package/dist/chunk-EALRMP7N.js +69 -0
- package/dist/{chunk-E35HYQMK.js → chunk-EBVZHVPD.js} +12 -5
- package/dist/{chunk-KHJIEPZV.js → chunk-EC6EUIAD.js} +9 -6
- package/dist/{chunk-XNNY27SC.js → chunk-ED4A6Q24.js} +1 -1
- package/dist/{chunk-6LN64KGG.js → chunk-F7HZYTZT.js} +6 -3
- package/dist/{chunk-RTMNULTL.js → chunk-FLW5U7YS.js} +2 -2
- package/dist/{chunk-JQEXAH7G.js → chunk-FPU7AA3X.js} +5 -16
- package/dist/{chunk-GHQG4VZA.js → chunk-G3CACE5L.js} +3 -3
- package/dist/{chunk-JMTBK55P.js → chunk-G4EHZHKM.js} +2 -2
- package/dist/{chunk-45M73G5A.js → chunk-GLKQHN7G.js} +5 -5
- package/dist/{chunk-N2BF272H.js → chunk-HF5L56YQ.js} +1 -1
- package/dist/chunk-HTBTAIH6.js +37 -0
- package/dist/chunk-HTS5RJ7S.js +6 -0
- package/dist/{chunk-BRLZXYPA.js → chunk-I4IUX3JF.js} +1 -1
- package/dist/{chunk-BXCL6P5Z.js → chunk-I4PBFJGX.js} +1 -1
- package/dist/{chunk-ADGNISEI.js → chunk-IAP7APOX.js} +5 -5
- package/dist/chunk-ICE3D63E.js +384 -0
- package/dist/{chunk-BT3GB7HC.js → chunk-IRONPJB4.js} +3 -3
- package/dist/chunk-IUBOLGHG.js +140 -0
- package/dist/chunk-JLOESTT2.js +10 -0
- package/dist/{chunk-5EFLA6BW.js → chunk-K6RWEQ6P.js} +2 -2
- package/dist/{chunk-ZQEJSEPS.js → chunk-K6Y6CDEZ.js} +2 -2
- package/dist/chunk-K774LUN3.js +20 -0
- package/dist/{chunk-7KBNFFM3.js → chunk-KXWJJWBD.js} +6 -3
- package/dist/{chunk-53J2YNQA.js → chunk-L5VU3LZT.js} +1 -1
- package/dist/chunk-L72URIHR.js +36 -0
- package/dist/{chunk-VERJCAJ4.js → chunk-LBGKLYBY.js} +1 -1
- package/dist/{chunk-PRN5IP2R.js → chunk-LMEMH6DO.js} +1 -1
- package/dist/{chunk-I22MUEG7.js → chunk-LNQSNXGJ.js} +1 -1
- package/dist/chunk-LT44RL62.js +50 -0
- package/dist/{chunk-222VILSP.js → chunk-LVJGN5II.js} +1 -1
- package/dist/{chunk-AYHIF6DH.js → chunk-LZNPL266.js} +1 -1
- package/dist/{chunk-R45VM5EX.js → chunk-MMV7NEAC.js} +1 -1
- package/dist/{chunk-2IIHMJMZ.js → chunk-MVKUE4FI.js} +2 -2
- package/dist/{chunk-37U3Z65B.js → chunk-MVMVMHYI.js} +1 -1
- package/dist/{chunk-JD7P2GJP.js → chunk-MYAARF4Z.js} +1 -1
- package/dist/{chunk-OBPINJNO.js → chunk-NCUSI4ZU.js} +3 -3
- package/dist/{chunk-NKBKQEKS.js → chunk-NFXCJGHG.js} +1 -1
- package/dist/{chunk-OZAZHM55.js → chunk-NKBKHOMU.js} +1 -1
- package/dist/{chunk-MGQKF7GK.js → chunk-NN475NAP.js} +1 -1
- package/dist/{chunk-6EWNMSS4.js → chunk-NNZRTR5M.js} +2 -2
- package/dist/{chunk-JT7WRPZ6.js → chunk-NTRKC2JV.js} +1 -1
- package/dist/{chunk-63GBSOLU.js → chunk-NXBCAXP5.js} +2 -2
- package/dist/{chunk-NR4CPM4T.js → chunk-NXFTCPF6.js} +1 -1
- package/dist/chunk-O3MYBNRO.js +80 -0
- package/dist/{chunk-RMEBFYL7.js → chunk-O6EV6GKI.js} +1 -1
- package/dist/{chunk-YL7AR6PR.js → chunk-O7KG4CXB.js} +3 -3
- package/dist/{chunk-FB3TCNQP.js → chunk-O7N6W52M.js} +3 -3
- package/dist/chunk-ONHYFU7D.js +25 -0
- package/dist/{chunk-T24HBEU6.js → chunk-OOOVL77Y.js} +1 -1
- package/dist/{chunk-BLGBD2D2.js → chunk-P7HMY3BQ.js} +4 -4
- package/dist/chunk-PCAT2EFB.js +104 -0
- package/dist/{chunk-TPIMOGOZ.js → chunk-PEBQMX5X.js} +1 -1
- package/dist/{chunk-UY3FWQWG.js → chunk-PGBKZSSQ.js} +201 -22
- package/dist/{chunk-4TMBAOXK.js → chunk-PW57R4BN.js} +1 -1
- package/dist/chunk-PX5BOALQ.js +13 -0
- package/dist/{chunk-CFTBESST.js → chunk-Q6TCUSQA.js} +2 -2
- package/dist/{chunk-ZWXHTXZO.js → chunk-QGEDXYLB.js} +2 -2
- package/dist/{chunk-ZKLEAK7M.js → chunk-QM3432PH.js} +7 -7
- package/dist/{chunk-WTXCK46H.js → chunk-R2QBQ6NO.js} +1 -1
- package/dist/{chunk-Z6JKZI4E.js → chunk-RBQRTGXX.js} +1 -1
- package/dist/{chunk-TJIBTHWJ.js → chunk-RDIQB5ZE.js} +3 -3
- package/dist/{chunk-TPCBPGSB.js → chunk-RO5JU6SN.js} +4 -4
- package/dist/{chunk-O222F2IX.js → chunk-SGMWLUYQ.js} +6 -6
- package/dist/{chunk-HEA6TERQ.js → chunk-SHH7UD5U.js} +1 -1
- package/dist/{chunk-CLJGFOTV.js → chunk-SKGOKLJD.js} +31 -18
- package/dist/{chunk-CSXJIIO4.js → chunk-SNQ7PH3D.js} +1 -1
- package/dist/chunk-SPNTUQBV.js +244 -0
- package/dist/{chunk-RIAPCEB5.js → chunk-T3S3D4FC.js} +5 -5
- package/dist/chunk-TDFLCUBE.js +6 -0
- package/dist/{chunk-OQG4P5KU.js → chunk-TGGYSQRD.js} +5 -6
- package/dist/{chunk-7FF6CZW5.js → chunk-TQKQRS2J.js} +36 -8
- package/dist/chunk-TRXTO3WC.js +114 -0
- package/dist/{chunk-H5XTJ7GJ.js → chunk-TUEM2XIW.js} +1 -1
- package/dist/{chunk-4AUTALJA.js → chunk-U2IQNDDR.js} +1 -1
- package/dist/{chunk-IVTQWOXV.js → chunk-ULYHDP7U.js} +1 -1
- package/dist/{chunk-DGSK4LLS.js → chunk-V6WDJUYK.js} +1 -1
- package/dist/{chunk-Z2MZTI3H.js → chunk-VB3FVKNI.js} +1 -1
- package/dist/{chunk-R5OATXWU.js → chunk-VONEKR3J.js} +38 -15
- package/dist/{chunk-CZQ7UITX.js → chunk-WANKINXG.js} +3 -3
- package/dist/{chunk-HQOEAUDJ.js → chunk-WMO722J2.js} +2 -2
- package/dist/{chunk-D7G2QGET.js → chunk-X3US25XJ.js} +1 -1
- package/dist/{chunk-GPFYITOF.js → chunk-X7VZQKIW.js} +1 -1
- package/dist/{chunk-L4HHWG4V.js → chunk-XA2QKGBJ.js} +3 -3
- package/dist/{chunk-DV5L2GRY.js → chunk-XJMES7AE.js} +1 -1
- package/dist/{chunk-5NJMSYDZ.js → chunk-XNC3M4IN.js} +1 -1
- package/dist/{chunk-B2YSFWUG.js → chunk-XRWHDW6F.js} +9 -9
- package/dist/{chunk-TKUAGWNR.js → chunk-XTJHMP3W.js} +2 -2
- package/dist/{chunk-KTIQSSME.js → chunk-XZY6S3UC.js} +6 -3
- package/dist/{chunk-7KHM2FZH.js → chunk-YGRTX67J.js} +1 -1
- package/dist/{chunk-RTPQDNW3.js → chunk-YJQXESOJ.js} +5 -1
- package/dist/chunk-YP2FS6SH.js +54 -0
- package/dist/{chunk-LMQG3VPG.js → chunk-YQ7Q52XU.js} +1 -1
- package/dist/{chunk-G4CGDUCP.js → chunk-YRNNUCQP.js} +1 -1
- package/dist/{chunk-5CEQ3HLH.js → chunk-YXKSUILG.js} +6 -6
- package/dist/{chunk-NHLNHH4J.js → chunk-ZB3E2Z4Y.js} +1 -1
- package/dist/{chunk-IL3XLDW7.js → chunk-ZDWAIVWL.js} +1 -1
- package/dist/{chunk-SNIPM6K7.js → chunk-ZJVLGYE3.js} +3 -3
- package/dist/{chunk-BFM5G2Z6.js → chunk-ZPTKAYJK.js} +1 -1
- package/dist/{chunk-2PIH6JHJ.js → chunk-ZXTDWTXS.js} +1 -1
- package/dist/{chunk-C667GCU7.js → chunk-ZXXZESCD.js} +9 -7
- package/dist/generated/index.d.ts +17 -0
- package/dist/generated/index.js +184 -163
- package/dist/index.js +184 -163
- package/dist/styles.css +2769 -156
- package/dist/utils/composedRef.d.ts +39 -0
- package/dist/utils/focusModality.d.ts +14 -0
- package/dist/utils/heldHint.d.ts +6 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.js +4 -2
- package/dist/utils/tokenMs.d.ts +6 -0
- package/package.json +5 -5
- package/dist/ArtifactKinds-O3CALPVX.css +0 -16
- package/dist/{chunk-PLNJEDGI.js → chunk-I4IO56EY.js} +1 -1
- package/dist/{chunk-FEJANUZK.js → chunk-KBSD476L.js} +0 -0
- package/dist/{chunk-624X3RVA.js → chunk-O55JQ7BE.js} +1 -1
- /package/dist/{chunk-CDFQ7MQK.js → chunk-REEZQCML.js} +0 -0
|
@@ -59,8 +59,11 @@
|
|
|
59
59
|
import { type AriaAttributes, type HTMLAttributes, type MouseEventHandler, type ReactNode, type Ref } from 'react';
|
|
60
60
|
import type { Tone } from '../utils/tone.js';
|
|
61
61
|
import { type AppShellAsideShape, type AppShellPeekShape } from './regions.js';
|
|
62
|
+
import { type AppShellRailShape } from './railShape.js';
|
|
62
63
|
export { useAppShellAside, useAppShellPeek } from './regions.js';
|
|
63
64
|
export type { AppShellAsideShape, AppShellPeekShape, AppShellRegionValue } from './regions.js';
|
|
65
|
+
export type { AppShellRailShape } from './railShape.js';
|
|
66
|
+
export type { AppShellRailMotion } from './railMotion.js';
|
|
64
67
|
/** The aside's resting width, in px, where the host names none. */
|
|
65
68
|
export declare const APP_SHELL_ASIDE_WIDTH = 420;
|
|
66
69
|
/** How the reader resizes the aside while it is a column. */
|
|
@@ -91,6 +94,14 @@ interface AppShellContextValue {
|
|
|
91
94
|
railId: string;
|
|
92
95
|
toggleLabel: string;
|
|
93
96
|
hasRail: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* The shape the rail is drawn in NOW: `compact` only where the host asked
|
|
99
|
+
* for it and the layout is wide, `full` in the drawer and everywhere else,
|
|
100
|
+
* so an application picks `CompactNav` or `SidebarNav` from this alone.
|
|
101
|
+
* While the rail folds it is still `full`, and it turns `compact` when the
|
|
102
|
+
* rail reaches the compact column (see `railMotion.ts`).
|
|
103
|
+
*/
|
|
104
|
+
rail: AppShellRailShape;
|
|
94
105
|
}
|
|
95
106
|
export type { AppShellContextValue };
|
|
96
107
|
/**
|
|
@@ -124,8 +135,14 @@ export interface AppShellProps extends Omit<HTMLAttributes<HTMLDivElement>, 'tit
|
|
|
124
135
|
* Gives the screen the whole height left under the bar, as a flex column,
|
|
125
136
|
* for a canvas or a split view that draws to the bottom of the window
|
|
126
137
|
* instead of scrolling.
|
|
138
|
+
*
|
|
139
|
+
* `flush` is the same column EDGE TO EDGE: the content column gives up its
|
|
140
|
+
* pad, its measure and its gap, and the scroller reserves no gutter, for a
|
|
141
|
+
* screen that draws its own frame to the sheet's edges (a conversation with
|
|
142
|
+
* a list and a pane either side of it). The column is positioned, so a
|
|
143
|
+
* `LayerHost` the screen keeps inside it fills exactly the screen.
|
|
127
144
|
*/
|
|
128
|
-
fill?: boolean | undefined;
|
|
145
|
+
fill?: boolean | 'flush' | undefined;
|
|
129
146
|
/**
|
|
130
147
|
* Any value that changes when the reader goes somewhere. The drawer closes
|
|
131
148
|
* when it does: a drawer left open over the screen you have just navigated
|
|
@@ -136,6 +153,33 @@ export interface AppShellProps extends Omit<HTMLAttributes<HTMLDivElement>, 'tit
|
|
|
136
153
|
toggleLabel?: string | undefined;
|
|
137
154
|
/** The link that precedes everything, for a keyboard reader. */
|
|
138
155
|
skipLabel?: string | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* The rail's shape the reader chose: the full navigation, or the compact
|
|
158
|
+
* column of glyphs. A desktop choice: under the shell step the rail is a
|
|
159
|
+
* drawer drawn full whatever this says, and `useAppShell().rail` reports
|
|
160
|
+
* the shape actually drawn.
|
|
161
|
+
*/
|
|
162
|
+
rail?: AppShellRailShape | undefined;
|
|
163
|
+
/**
|
|
164
|
+
* Called with the other shape when the reader presses the fold control.
|
|
165
|
+
* Given, the shell draws THE fold control (never in the drawer): a minus in
|
|
166
|
+
* the rail's top left corner while it is full, and a plus in the same place
|
|
167
|
+
* while it is compact. Keeping the choice, and binding a key to it, are the
|
|
168
|
+
* application's.
|
|
169
|
+
*/
|
|
170
|
+
onRailChange?: ((next: AppShellRailShape) => void) | undefined;
|
|
171
|
+
/**
|
|
172
|
+
* The keys the application binds to the fold (`['Mod', '\\']`), drawn in
|
|
173
|
+
* the control's tooltip and set as its `aria-keyshortcuts`. The shell binds
|
|
174
|
+
* nothing: the same press may mean something else where the rail is a
|
|
175
|
+
* drawer, and only the application knows.
|
|
176
|
+
*/
|
|
177
|
+
railFoldKeys?: readonly string[] | undefined;
|
|
178
|
+
/** The fold control's two names. Defaults to "Collapse the sidebar" and "Expand the sidebar". */
|
|
179
|
+
railFoldLabels?: {
|
|
180
|
+
collapse: string;
|
|
181
|
+
expand: string;
|
|
182
|
+
} | undefined;
|
|
139
183
|
/**
|
|
140
184
|
* A panel the frame keeps beside every screen: the assistant. Nothing (or
|
|
141
185
|
* null) means no aside and no track. Normally a `SidePanel`, which leaves
|
|
@@ -181,7 +225,7 @@ export interface AppShellProps extends Omit<HTMLAttributes<HTMLDivElement>, 'tit
|
|
|
181
225
|
peekShape?: AppShellPeekShape | undefined;
|
|
182
226
|
children?: ReactNode;
|
|
183
227
|
}
|
|
184
|
-
export declare function AppShell({ sidebar, topbar, banner, footer, mainId, mainRef, fill, navigationKey, toggleLabel, skipLabel, aside, asideWidth, asideReserve, asideLabel, asideShape, asideModal, onAsideClose, asideResize, peek, peekShape, className, style, children, ...rest }: AppShellProps): import("react").JSX.Element;
|
|
228
|
+
export declare function AppShell({ sidebar, topbar, banner, footer, mainId, mainRef, fill, navigationKey, toggleLabel, skipLabel, rail: railChoice, onRailChange, railFoldKeys, railFoldLabels, aside, asideWidth, asideReserve, asideLabel, asideShape, asideModal, onAsideClose, asideResize, peek, peekShape, className, style, children, ...rest }: AppShellProps): import("react").JSX.Element;
|
|
185
229
|
export declare namespace AppShell {
|
|
186
230
|
var Rail: typeof AppShellRail;
|
|
187
231
|
var RailRow: import("react").ForwardRefExoticComponent<AppShellRailRowProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -209,7 +253,8 @@ export interface AppShellRailProps {
|
|
|
209
253
|
* A compact status at the end of the head's line, beside the name the head
|
|
210
254
|
* carries: an `<AppShell.RailStatus>`, the application's own state in a
|
|
211
255
|
* dot and a count. It takes its own width, so the name keeps the rest and
|
|
212
|
-
* truncates there, and it stands in the drawer's head the same way.
|
|
256
|
+
* truncates there, and it stands in the drawer's head the same way. In the
|
|
257
|
+
* compact rail it has a row of its own under the head's mark.
|
|
213
258
|
*/
|
|
214
259
|
status?: ReactNode;
|
|
215
260
|
/**
|
|
@@ -222,7 +267,20 @@ export interface AppShellRailProps {
|
|
|
222
267
|
className?: string | undefined;
|
|
223
268
|
children?: ReactNode;
|
|
224
269
|
}
|
|
225
|
-
/**
|
|
270
|
+
/**
|
|
271
|
+
* The rail's three regions: a head, a scrolling middle, and a foot.
|
|
272
|
+
*
|
|
273
|
+
* ONE RAIL IN BOTH SHAPES, its slots kept. Compact, the head holds the brand
|
|
274
|
+
* alone (the lockup shows its mark, over the column's centre, and keeps its
|
|
275
|
+
* name as the link's name and title); the field is not drawn, because a
|
|
276
|
+
* 76px column has no room for one and the application draws a Search tile
|
|
277
|
+
* among its `CompactNav` places instead; and the status stands in a row of
|
|
278
|
+
* its own under the mark, as its dot and count, since the head has no line
|
|
279
|
+
* left beside the mark. That row is the first thing under the head in the
|
|
280
|
+
* column, before the places, so the state a reader checks at a glance is
|
|
281
|
+
* where their eye starts. The middle and the foot are drawn as the
|
|
282
|
+
* application gives them.
|
|
283
|
+
*/
|
|
226
284
|
export declare function AppShellRail({ header, search, status, footer, className, children }: AppShellRailProps): import("react").JSX.Element;
|
|
227
285
|
/**
|
|
228
286
|
* A figure at the end of a row in the foot, and what it counts.
|
package/dist/AppShell/index.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ export { useScreenBelow, useScreenWidth } from './screenWidth.js';
|
|
|
9
9
|
export type { StoredWidth, StoredWidthOptions, WidthStorage } from './storedWidth.js';
|
|
10
10
|
export { AccountRow } from './AccountRow.js';
|
|
11
11
|
export type { AccountRowMenu, AccountRowProps } from './AccountRow.js';
|
|
12
|
-
export type { ActionRailRowProps, ActionRailStatusProps, AppShellAsideResize, AppShellAsideShape, AppShellContextValue, AppShellPeekShape, AppShellProps, AppShellRailProps, AppShellRailRowProps, AppShellRailStatusProps, AppShellRegionValue, AppShellToggleProps, AppShellTopbarProps, RailRowCount, StaticRailRowProps, StaticRailStatusProps, } from './AppShell.js';
|
|
12
|
+
export type { ActionRailRowProps, ActionRailStatusProps, AppShellAsideResize, AppShellAsideShape, AppShellContextValue, AppShellPeekShape, AppShellProps, AppShellRailMotion, AppShellRailShape, AppShellRailProps, AppShellRailRowProps, AppShellRailStatusProps, AppShellRegionValue, AppShellToggleProps, AppShellTopbarProps, RailRowCount, StaticRailRowProps, StaticRailStatusProps, } from './AppShell.js';
|
package/dist/AppShell/index.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
export { APP_SHELL_ASIDE_WIDTH, AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, readStoredWidth, useAppShell, useScreenBelow, useScreenWidth, useStoredWidth } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { APP_SHELL_ASIDE_WIDTH, AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, readStoredWidth, useAppShell, useScreenBelow, useScreenWidth, useStoredWidth } from '../chunk-PGBKZSSQ.js';
|
|
2
|
+
import '../chunk-PCAT2EFB.js';
|
|
3
|
+
import '../chunk-JLOESTT2.js';
|
|
4
|
+
import '../chunk-YJQXESOJ.js';
|
|
5
|
+
import '../chunk-7ZSEUO5Q.js';
|
|
6
|
+
import '../chunk-HTS5RJ7S.js';
|
|
7
|
+
import '../chunk-TGGYSQRD.js';
|
|
8
|
+
import '../chunk-L72URIHR.js';
|
|
4
9
|
export { RESIZE_HANDLE_LARGE_STEP, RESIZE_HANDLE_STEP, ResizeHandle, clampSize, useAppShellAside, useAppShellPeek } from '../chunk-PIYJNCN7.js';
|
|
10
|
+
import '../chunk-CMAZZY2I.js';
|
|
5
11
|
import '../chunk-DGXZ635L.js';
|
|
12
|
+
import '../chunk-XSPCITPN.js';
|
|
6
13
|
import '../chunk-OMV5W53A.js';
|
|
7
14
|
import '../chunk-2YTOOH3A.js';
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
15
|
+
import '../chunk-TUEM2XIW.js';
|
|
16
|
+
import '../chunk-4ITETIGZ.js';
|
|
10
17
|
import '../chunk-UAUP6XGK.js';
|
|
11
|
-
import '../chunk-NUZHC6MM.js';
|
|
12
18
|
import '../chunk-UT6CW3C7.js';
|
|
13
19
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How the rail moves between its two shapes.
|
|
3
|
+
*
|
|
4
|
+
* THE STYLESHEET MOVES IT, THIS DECIDES THE ORDER. The rail's width eases
|
|
5
|
+
* between the full rail and the compact column (AppShell.css), and its
|
|
6
|
+
* content is laid out at the width of the shape drawn, clipped by the moving
|
|
7
|
+
* edge, so nothing in it rewraps at a width it will never rest at. What the
|
|
8
|
+
* stylesheet cannot decide is WHEN the content changes shape, because the
|
|
9
|
+
* application draws a different tree for each one:
|
|
10
|
+
*
|
|
11
|
+
* - UNFOLDING, the full rail is drawn at once, and the moving edge uncovers
|
|
12
|
+
* it while its words fade in (`unfold`).
|
|
13
|
+
* - FOLDING, the full rail stays drawn, inert, while the edge narrows over it
|
|
14
|
+
* and its words fade out (`fold`), and the compact column is drawn once the
|
|
15
|
+
* rail's motion has ended, fading in (`folded`). Drawn at once instead, the
|
|
16
|
+
* column would replace the words before the reader saw them go.
|
|
17
|
+
*
|
|
18
|
+
* ONE MECHANISM FOR EVERY COLUMN THAT EASES. Both shapes are a `usePresence`
|
|
19
|
+
* each, waiting on the motion actually running on the rail, as a
|
|
20
|
+
* `DockColumn` waits on its own: no duration is written again here, nothing
|
|
21
|
+
* waits under reduced motion, and where nothing moves the new shape is drawn
|
|
22
|
+
* in the same commit, before any paint.
|
|
23
|
+
*/
|
|
24
|
+
import { type RefObject } from 'react';
|
|
25
|
+
import type { AppShellRailShape } from './railShape.js';
|
|
26
|
+
/**
|
|
27
|
+
* Where a change of shape is: `fold` while the rail narrows over the full
|
|
28
|
+
* rail's fading words, `folded` while the compact column fades in after it,
|
|
29
|
+
* `unfold` while the rail widens and the full rail's words fade in, and
|
|
30
|
+
* `reverse` while a fold pressed again mid way widens the rail back and its
|
|
31
|
+
* words return from wherever their fade had reached.
|
|
32
|
+
*/
|
|
33
|
+
export type AppShellRailMotion = 'fold' | 'folded' | 'unfold' | 'reverse';
|
|
34
|
+
/**
|
|
35
|
+
* The rail's own motion, which a change of shape waits for: its width, on the
|
|
36
|
+
* rail itself, and the keyframes its words arrive by (AppShell.css), wherever
|
|
37
|
+
* they run inside it. Named, so that nothing else moving inside the rail (a
|
|
38
|
+
* meter filling, a badge arriving, a paused animation) holds a fold. The
|
|
39
|
+
* words LEAVE by a transition of their opacity, which a reversal turns back
|
|
40
|
+
* from where it is, and the rail's width outlasts it.
|
|
41
|
+
*/
|
|
42
|
+
export declare const RAIL_MOTION: {
|
|
43
|
+
readonly transitions: readonly ["width"];
|
|
44
|
+
readonly animations: readonly ["crewlet-app-shell-rail-unfold", "crewlet-app-shell-rail-settle"];
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* The shape to draw the rail's content in, the phase of the change under
|
|
48
|
+
* way, and whether the content drawn is only leaving (and so inert), for a
|
|
49
|
+
* rail whose chosen shape is `target`.
|
|
50
|
+
*
|
|
51
|
+
* `moves` is whether a change may animate at all: never in the drawer, where
|
|
52
|
+
* the rail is always the full list and a shape is not a width. A change that
|
|
53
|
+
* arrives WITH the window crossing into the wide layout does not animate
|
|
54
|
+
* either: the reader resized a window, they did not fold a rail.
|
|
55
|
+
*/
|
|
56
|
+
export declare function useRailMotion(target: AppShellRailShape, moves: boolean, rail: RefObject<HTMLElement | null>): {
|
|
57
|
+
drawn: AppShellRailShape;
|
|
58
|
+
motion: AppShellRailMotion | null;
|
|
59
|
+
leaving: boolean;
|
|
60
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which shape the shell's rail is drawn in, for the pieces that stand in it
|
|
3
|
+
* and are also used outside a shell: the brand lockup and the account row.
|
|
4
|
+
*
|
|
5
|
+
* A CONTEXT OF ITS OWN, AND ONE THAT NEVER THROWS, because those pieces are
|
|
6
|
+
* drawn on screens with no shell at all (a sign-in page draws the lockup), and
|
|
7
|
+
* there the answer is simply the full shape. `useAppShell().rail` is the same
|
|
8
|
+
* answer for code that is always inside a shell.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The rail's two shapes: `full`, the navigation's rows under their headings,
|
|
12
|
+
* and `compact`, the same places folded to a column of glyphs (`CompactNav`).
|
|
13
|
+
*/
|
|
14
|
+
export type AppShellRailShape = 'full' | 'compact';
|
|
15
|
+
export declare const RailShapeContext: import("react").Context<AppShellRailShape>;
|
|
16
|
+
/** The shape the rail around this component is drawn in now: `full` outside a shell, and in the drawer. */
|
|
17
|
+
export declare function useRailShape(): AppShellRailShape;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the rail's content is drawn only to finish leaving, while the rail
|
|
20
|
+
* folds over it (railMotion.ts): `AppShell.Rail` makes it inert then.
|
|
21
|
+
*/
|
|
22
|
+
export declare const RailLeavingContext: import("react").Context<boolean>;
|
|
@@ -27,30 +27,40 @@
|
|
|
27
27
|
--crewlet-app-shell-rail: var(--size-shell-rail);
|
|
28
28
|
--crewlet-app-shell-topbar: var(--size-shell-topbar);
|
|
29
29
|
/* What stands on the frame to the sheet's left: the rail's column, or
|
|
30
|
-
nothing where there is no rail or the rail is a drawer.
|
|
31
|
-
below subtracts it, so it is one name for both. */
|
|
30
|
+
nothing where there is no rail or the rail is a drawer. */
|
|
32
31
|
--crewlet-app-shell-beside: var(--crewlet-app-shell-rail);
|
|
33
|
-
/*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
/*
|
|
33
|
+
* THE ASIDE'S TRACK, while it is a column: the inset it is held off the
|
|
34
|
+
* window's edge by at least, and the panel's width and that inset at most.
|
|
35
|
+
* THE CAP IS THE GRID'S. The page's sheet takes the host's floor as its
|
|
36
|
+
* own track's minimum (`--crewlet-app-shell-aside-reserve`, the page's sheet
|
|
37
|
+
* with its own inset and hairlines), and the grid hands the aside what is
|
|
38
|
+
* left once the rail and that floor have theirs, up to its width. The rail's
|
|
39
|
+
* track is the rail's live width, so while the rail eases between its
|
|
40
|
+
* shapes the cap eases with it: a cap computed from the rail's VARIABLE
|
|
41
|
+
* named the shape drawn, and jumped at both ends of a fold. With no reserve
|
|
42
|
+
* the panel takes the width it was given, as far as the window holds it.
|
|
43
|
+
*/
|
|
44
|
+
--crewlet-app-shell-aside-track: minmax(
|
|
45
|
+
var(--size-shell-inset),
|
|
46
|
+
calc(var(--crewlet-app-shell-aside) + var(--size-shell-inset))
|
|
47
|
+
);
|
|
48
|
+
/* The page's floor beside an aside column, never more than the window
|
|
49
|
+
leaves it: on a window too narrow for the floor, the page gives way rather
|
|
50
|
+
than the shell growing past the window's edge. */
|
|
51
|
+
--crewlet-app-shell-sheet-floor: min(
|
|
52
|
+
var(--crewlet-app-shell-aside-reserve, 0px),
|
|
53
|
+
max(0px, 100% - var(--crewlet-app-shell-beside) - var(--size-shell-inset))
|
|
47
54
|
);
|
|
48
55
|
/* Where the drawer's veil sits while it is open. The shell replaces it with
|
|
49
56
|
the surface's own place in the layer band; this default only has to clear
|
|
50
57
|
the page chrome for the moment before that lands. */
|
|
51
58
|
--crewlet-app-shell-drawer-z: var(--z-index-overlay);
|
|
52
59
|
display: grid;
|
|
53
|
-
|
|
60
|
+
/* The rail's track is the rail's own width (`auto`), and the rail takes
|
|
61
|
+
`--crewlet-app-shell-rail` itself, so the track follows it while it eases
|
|
62
|
+
between its two shapes (see the rail's motion, below). */
|
|
63
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
54
64
|
/* One row, the viewport's height less nothing: the sheet's own margin is
|
|
55
65
|
what holds it off the frame's edges, and a row sized by its content would
|
|
56
66
|
let a tall screen push the sheet's bottom edge off the window. */
|
|
@@ -89,11 +99,11 @@
|
|
|
89
99
|
keeps its column and is only narrower, so nothing under the bar moves but
|
|
90
100
|
its end edge. */
|
|
91
101
|
.crewlet-app-shell[data-aside='column'] {
|
|
92
|
-
grid-template-columns: var(--crewlet-app-shell-
|
|
102
|
+
grid-template-columns: auto minmax(var(--crewlet-app-shell-sheet-floor), 1fr) var(--crewlet-app-shell-aside-track);
|
|
93
103
|
}
|
|
94
104
|
|
|
95
105
|
.crewlet-app-shell--no-rail[data-aside='column'] {
|
|
96
|
-
grid-template-columns: minmax(
|
|
106
|
+
grid-template-columns: minmax(var(--crewlet-app-shell-sheet-floor), 1fr) var(--crewlet-app-shell-aside-track);
|
|
97
107
|
}
|
|
98
108
|
|
|
99
109
|
/* The skip link, drawn only while it holds focus, over everything. */
|
|
@@ -133,16 +143,31 @@
|
|
|
133
143
|
* run the height of the window parallel to it, eight pixels off.
|
|
134
144
|
*/
|
|
135
145
|
.crewlet-app-shell__rail {
|
|
146
|
+
/* The fold control's containing block. Re-declared as `fixed` by the
|
|
147
|
+
narrow block below, which comes later at the same weight, so the drawer
|
|
148
|
+
keeps its layer. */
|
|
149
|
+
position: relative;
|
|
136
150
|
display: flex;
|
|
137
151
|
flex-direction: column;
|
|
152
|
+
width: var(--crewlet-app-shell-rail);
|
|
138
153
|
min-height: 0;
|
|
139
154
|
min-width: 0;
|
|
155
|
+
/* THE MOVING EDGE CUTS WHAT IT PASSES. While the rail eases between its
|
|
156
|
+
shapes its content keeps the width of the shape drawn (below), and the
|
|
157
|
+
edge clips it rather than squeezing it. Across only: a ring or a badge
|
|
158
|
+
at a row's top or bottom is never cut. */
|
|
159
|
+
overflow-x: clip;
|
|
140
160
|
background: var(--color-surface-frame);
|
|
161
|
+
transition: width var(--motion-duration-slow) var(--motion-easing-emphasized);
|
|
141
162
|
}
|
|
142
163
|
|
|
164
|
+
/* THE CONTENT IS LAID OUT AT ITS SHAPE'S WIDTH, never at a width between the
|
|
165
|
+
two, so no word in the rail rewraps while it moves and nothing drifts with
|
|
166
|
+
the edge: the column stands still and the edge travels over it. */
|
|
143
167
|
.crewlet-app-shell__rail-inner {
|
|
144
168
|
display: flex;
|
|
145
169
|
flex-direction: column;
|
|
170
|
+
width: var(--crewlet-app-shell-rail);
|
|
146
171
|
min-height: 0;
|
|
147
172
|
height: 100%;
|
|
148
173
|
}
|
|
@@ -718,6 +743,24 @@
|
|
|
718
743
|
height: 100%;
|
|
719
744
|
}
|
|
720
745
|
|
|
746
|
+
/*
|
|
747
|
+
* A FLUSH SCREEN draws its own frame to the sheet's edges: the column gives up
|
|
748
|
+
* its pad, its measure and its gap, and the scroller reserves no gutter, since
|
|
749
|
+
* nothing in it scrolls and a strip at its end would cut the screen's own
|
|
750
|
+
* edge. The column is the containing block for a `LayerHost` the screen
|
|
751
|
+
* keeps, so its layers fill the screen rather than the window.
|
|
752
|
+
*/
|
|
753
|
+
.crewlet-app-shell--fill-flush .crewlet-app-shell__main {
|
|
754
|
+
scrollbar-gutter: auto;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.crewlet-app-shell--fill-flush .crewlet-app-shell__content {
|
|
758
|
+
position: relative;
|
|
759
|
+
gap: 0;
|
|
760
|
+
max-width: none;
|
|
761
|
+
padding: 0;
|
|
762
|
+
}
|
|
763
|
+
|
|
721
764
|
/* Hidden by default, revealed by the breakpoint below: the wide layout has the
|
|
722
765
|
rail on screen already, so the control that opens it has nothing to do. */
|
|
723
766
|
.crewlet-app-shell__toggle {
|
|
@@ -867,6 +910,180 @@
|
|
|
867
910
|
animation: crewlet-app-shell-aside-slide var(--motion-duration-slow) var(--motion-easing-emphasized);
|
|
868
911
|
}
|
|
869
912
|
|
|
913
|
+
/*
|
|
914
|
+
* THE COMPACT RAIL: the same rail, narrowed to the compact column. One
|
|
915
|
+
* variable is the rail's width for the grid, the aside's cap and the drawer
|
|
916
|
+
* alike, so folding the rail is this one declaration. The shell writes the
|
|
917
|
+
* attribute only where the layout is wide: the drawer under the step is
|
|
918
|
+
* always the full list.
|
|
919
|
+
*/
|
|
920
|
+
.crewlet-app-shell[data-rail='compact'] {
|
|
921
|
+
--crewlet-app-shell-rail: var(--size-shell-rail-compact);
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
/*
|
|
925
|
+
* THE FOLD CONTROL stands in the rail's top left corner, in both shapes, so
|
|
926
|
+
* it never moves under the pointer that pressed it: a minus while the rail is
|
|
927
|
+
* full and a plus while it is compact. The corner is the square the head
|
|
928
|
+
* leaves empty up and to the left of the brand's mark, and the control is the
|
|
929
|
+
* target floor (`--size-target-min`), so it ends short of the mark on the
|
|
930
|
+
* compact column's centre at every density.
|
|
931
|
+
*
|
|
932
|
+
* Quiet until the rail is pointed at: the tertiary ink, which holds 3:1 on
|
|
933
|
+
* the frame, then the secondary, and the ghost's own primary under the
|
|
934
|
+
* pointer. Its ring is drawn inside its own box, because the corner it
|
|
935
|
+
* stands in is the window's, and a ring outside it would be cut there.
|
|
936
|
+
*/
|
|
937
|
+
.crewlet-app-shell__fold {
|
|
938
|
+
position: absolute;
|
|
939
|
+
top: 0;
|
|
940
|
+
left: 0;
|
|
941
|
+
z-index: 1;
|
|
942
|
+
display: inline-flex;
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
.crewlet-app-shell__fold > .crewlet-icon-btn {
|
|
946
|
+
width: var(--size-target-min);
|
|
947
|
+
height: var(--size-target-min);
|
|
948
|
+
color: var(--color-text-tertiary);
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
.crewlet-app-shell__rail:hover > .crewlet-app-shell__fold > .crewlet-icon-btn:not(:hover) {
|
|
952
|
+
color: var(--color-text-secondary);
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
.crewlet-app-shell__fold > .crewlet-icon-btn:focus-visible {
|
|
956
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
/*
|
|
960
|
+
* THE MARK STANDS WHERE THE COMPACT RAIL'S DOES, in both shapes: centred over
|
|
961
|
+
* the compact column, in the head. Full, the name follows it; compact, the
|
|
962
|
+
* name is not drawn (the link keeps it as its name and title).
|
|
963
|
+
*/
|
|
964
|
+
.crewlet-app-shell--foldable .crewlet-app-shell__rail-head > .crewlet-brand,
|
|
965
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-head > .crewlet-brand {
|
|
966
|
+
padding-left: calc((var(--size-shell-rail-compact) - var(--crewlet-brand-mark)) / 2);
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-brand__name,
|
|
970
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-brand__context {
|
|
971
|
+
display: none;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
/*
|
|
975
|
+
* COMPACT, THE STATUS HAS A ROW OF ITS OWN under the mark, a small control
|
|
976
|
+
* step tall, its dot and its count centred in the column: the first thing
|
|
977
|
+
* under the head, before the places, where the fold control stood before it
|
|
978
|
+
* moved to the corner.
|
|
979
|
+
*/
|
|
980
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-inner > .crewlet-app-shell__rail-status {
|
|
981
|
+
justify-content: center;
|
|
982
|
+
min-width: 0;
|
|
983
|
+
min-height: var(--size-control-sm);
|
|
984
|
+
margin: 0;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-body {
|
|
988
|
+
padding: var(--spacing-1) 0;
|
|
989
|
+
scrollbar-width: thin;
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
/*
|
|
993
|
+
* The compact foot: what the full foot holds, centred in the column, a step
|
|
994
|
+
* apart: a Settings tile, the reader's face.
|
|
995
|
+
*/
|
|
996
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-foot {
|
|
997
|
+
align-items: center;
|
|
998
|
+
gap: var(--spacing-2);
|
|
999
|
+
padding: var(--spacing-1) 0 var(--spacing-3);
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
.crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-foot > .crewlet-compact-nav {
|
|
1003
|
+
align-self: stretch;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
/*
|
|
1007
|
+
* THE COMPACT FACE IS CENTRED ON THE TILES' LINE. It gives up the full row's
|
|
1008
|
+
* badge column and the step after it (above): kept, the step stood the face
|
|
1009
|
+
* 4px left of the column's centre, in a box 8px wider than the face, so the
|
|
1010
|
+
* face sat off the line every tile above it is centred on.
|
|
1011
|
+
*/
|
|
1012
|
+
.crewlet-app-shell__rail-foot .crewlet-account-row--compact .crewlet-account-row__avatar {
|
|
1013
|
+
width: auto;
|
|
1014
|
+
margin-inline-end: 0;
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
/*
|
|
1018
|
+
* THE RAIL'S MOTION (railMotion.ts). The rail's width eases between the two
|
|
1019
|
+
* shapes on the slow step with the emphasized curve, the motion a
|
|
1020
|
+
* `DockColumn` opens and closes by, so a column of the frame and a column of
|
|
1021
|
+
* a screen move as one. What the rail holds keeps the width of the shape
|
|
1022
|
+
* drawn, so the moving edge clips the words rather than squeezing them.
|
|
1023
|
+
*
|
|
1024
|
+
* FOLDING, the full rail stays drawn, inert, while the edge narrows to the
|
|
1025
|
+
* compact column, and its words fade out on the base step; the compact column
|
|
1026
|
+
* is drawn when the rail's motion has ended, and fades in on the fast step.
|
|
1027
|
+
* UNFOLDING, the full rail is drawn at once and fades in while the edge
|
|
1028
|
+
* uncovers it. The brand's mark and the fold control are in the same place in
|
|
1029
|
+
* both shapes, so neither fades.
|
|
1030
|
+
*
|
|
1031
|
+
* THE WORDS LEAVE BY A TRANSITION and arrive by keyframes. A fold takes their
|
|
1032
|
+
* opacity to nothing; a fold pressed again mid way (`reverse`) declares
|
|
1033
|
+
* nothing of its own, so the same transition takes the opacity back from
|
|
1034
|
+
* wherever it had reached. Faded out by keyframes instead, a reversal could
|
|
1035
|
+
* only start an entrance from nothing, and the words blinked out and back.
|
|
1036
|
+
* The transition is declared only while the rail moves, so nothing else that
|
|
1037
|
+
* sets these parts' opacity is eased.
|
|
1038
|
+
*/
|
|
1039
|
+
.crewlet-app-shell[data-rail-motion='fold'] > .crewlet-app-shell__rail {
|
|
1040
|
+
width: var(--size-shell-rail-compact);
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
/* Two names for one entrance, so an unfold pressed while the compact column
|
|
1044
|
+
is still arriving starts the full rail's entrance afresh. */
|
|
1045
|
+
@keyframes crewlet-app-shell-rail-unfold {
|
|
1046
|
+
from {
|
|
1047
|
+
opacity: 0;
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
@keyframes crewlet-app-shell-rail-settle {
|
|
1052
|
+
from {
|
|
1053
|
+
opacity: 0;
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-body,
|
|
1058
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-foot,
|
|
1059
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-status,
|
|
1060
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__name,
|
|
1061
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__context {
|
|
1062
|
+
transition: opacity var(--motion-duration-base) var(--motion-easing-out);
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
.crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-body,
|
|
1066
|
+
.crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-foot,
|
|
1067
|
+
.crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-status,
|
|
1068
|
+
.crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-head .crewlet-brand__name,
|
|
1069
|
+
.crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-head .crewlet-brand__context {
|
|
1070
|
+
opacity: 0;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-body,
|
|
1074
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-foot,
|
|
1075
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-status,
|
|
1076
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__name,
|
|
1077
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__context {
|
|
1078
|
+
animation: crewlet-app-shell-rail-unfold var(--motion-duration-slow) var(--motion-easing-out);
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
.crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-body,
|
|
1082
|
+
.crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-foot,
|
|
1083
|
+
.crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-status {
|
|
1084
|
+
animation: crewlet-app-shell-rail-settle var(--motion-duration-fast) var(--motion-easing-out);
|
|
1085
|
+
}
|
|
1086
|
+
|
|
870
1087
|
@media (width < 1024px) {
|
|
871
1088
|
.crewlet-app-shell {
|
|
872
1089
|
--crewlet-app-shell-beside: 0px;
|
|
@@ -877,7 +1094,7 @@
|
|
|
877
1094
|
step is still a column; the rail is a drawer here and takes no track. */
|
|
878
1095
|
.crewlet-app-shell[data-aside='column'],
|
|
879
1096
|
.crewlet-app-shell--no-rail[data-aside='column'] {
|
|
880
|
-
grid-template-columns: minmax(
|
|
1097
|
+
grid-template-columns: minmax(var(--crewlet-app-shell-sheet-floor), 1fr) var(--crewlet-app-shell-aside-track);
|
|
881
1098
|
}
|
|
882
1099
|
|
|
883
1100
|
.crewlet-app-shell--no-rail {
|
|
@@ -942,6 +1159,12 @@
|
|
|
942
1159
|
transition: transform var(--motion-duration-slow) var(--motion-easing-emphasized);
|
|
943
1160
|
}
|
|
944
1161
|
|
|
1162
|
+
/* The drawer never changes shape, and on a window narrower than the rail
|
|
1163
|
+
it is the window's width: its content fills it rather than being cut. */
|
|
1164
|
+
.crewlet-app-shell__rail-inner {
|
|
1165
|
+
width: auto;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
945
1168
|
.crewlet-app-shell__toggle {
|
|
946
1169
|
display: inline-flex;
|
|
947
1170
|
}
|
|
@@ -976,6 +1199,27 @@
|
|
|
976
1199
|
.crewlet-app-shell__aside[data-shape='sheet'] {
|
|
977
1200
|
animation: none;
|
|
978
1201
|
}
|
|
1202
|
+
|
|
1203
|
+
/* Under reduced motion the shell draws the new shape at once
|
|
1204
|
+
(`usePresence`), so no phase starts; these hold even if one did. */
|
|
1205
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-body,
|
|
1206
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-foot,
|
|
1207
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-status,
|
|
1208
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__name,
|
|
1209
|
+
.crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__context {
|
|
1210
|
+
transition: none;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-body,
|
|
1214
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-foot,
|
|
1215
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-status,
|
|
1216
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__name,
|
|
1217
|
+
.crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__context,
|
|
1218
|
+
.crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-body,
|
|
1219
|
+
.crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-foot,
|
|
1220
|
+
.crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-status {
|
|
1221
|
+
animation: none;
|
|
1222
|
+
}
|
|
979
1223
|
}
|
|
980
1224
|
|
|
981
1225
|
/* ── the account row ───────────────────────────────────────────────────── */
|
|
@@ -1176,6 +1420,33 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
1176
1420
|
gap: var(--spacing-1);
|
|
1177
1421
|
}
|
|
1178
1422
|
|
|
1423
|
+
/*
|
|
1424
|
+
* THE COMPACT ACCOUNT: the reader's face alone, centred in the compact rail's
|
|
1425
|
+
* foot, the face's own corner carrying the lift, the hover and the ring. It
|
|
1426
|
+
* keeps the row's link and menu rules above (hover, current, ring), with no
|
|
1427
|
+
* pad of its own, so the box is the face.
|
|
1428
|
+
*/
|
|
1429
|
+
.crewlet-account-row--compact {
|
|
1430
|
+
justify-content: center;
|
|
1431
|
+
padding: 0;
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
.crewlet-account-row__who--compact,
|
|
1435
|
+
.crewlet-app-shell__rail-foot .crewlet-account-row__who--compact {
|
|
1436
|
+
flex: none;
|
|
1437
|
+
width: auto;
|
|
1438
|
+
min-height: 0;
|
|
1439
|
+
padding: calc(var(--spacing-1) / 2);
|
|
1440
|
+
border-radius: var(--radius-md);
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
/* The ring stands off the face, outside it: drawn inside, it would cover the
|
|
1444
|
+
face's own edge and status. */
|
|
1445
|
+
.crewlet-account-row__who.crewlet-account-row__who--compact:focus-visible {
|
|
1446
|
+
outline: 2px solid var(--color-focus);
|
|
1447
|
+
outline-offset: 2px;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1179
1450
|
@media (prefers-reduced-motion: reduce) {
|
|
1180
1451
|
.crewlet-account-row__who {
|
|
1181
1452
|
transition: none;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ArrangeFrame, useGridResize } from '../chunk-
|
|
2
|
-
import '../chunk-2G355KDJ.js';
|
|
1
|
+
export { ArrangeFrame, useGridResize } from '../chunk-I4IO56EY.js';
|
|
3
2
|
import '../chunk-UAUP6XGK.js';
|
|
3
|
+
import '../chunk-2G355KDJ.js';
|
|
4
4
|
import '../chunk-UT6CW3C7.js';
|
|
5
5
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-
|
|
1
|
+
export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-XTJHMP3W.js';
|
|
2
2
|
import '../chunk-3XDT5ZWL.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-BVML4UVB.js';
|
|
4
|
+
import '../chunk-YQ7Q52XU.js';
|
|
5
|
+
import '../chunk-YJQXESOJ.js';
|
|
6
|
+
import '../chunk-O7N6W52M.js';
|
|
6
7
|
import '../chunk-PGCLHYVP.js';
|
|
8
|
+
import '../chunk-TUEM2XIW.js';
|
|
9
|
+
import '../chunk-4ITETIGZ.js';
|
|
10
|
+
import '../chunk-UAUP6XGK.js';
|
|
7
11
|
import '../chunk-PQADV6P6.js';
|
|
8
12
|
import '../chunk-2G355KDJ.js';
|
|
9
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
10
|
-
import '../chunk-UAUP6XGK.js';
|
|
11
|
-
import '../chunk-NUZHC6MM.js';
|
|
12
13
|
import '../chunk-UT6CW3C7.js';
|
|
13
14
|
import '../chunk-ODEQTPFM.js';
|