@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
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { releaseFocus, usePresence } from './chunk-PCAT2EFB.js';
|
|
2
|
+
import { useRailShape, RailShapeContext, RailLeavingContext } from './chunk-JLOESTT2.js';
|
|
3
|
+
import { useMediaMatch } from './chunk-YJQXESOJ.js';
|
|
4
|
+
import { Tooltip } from './chunk-7ZSEUO5Q.js';
|
|
5
|
+
import { Menu } from './chunk-TGGYSQRD.js';
|
|
3
6
|
import { PeekContext, AsideContext, ResizeHandle, clampSize } from './chunk-PIYJNCN7.js';
|
|
7
|
+
import { isApplePlatform, ariaKeyshortcuts, Kbd } from './chunk-CMAZZY2I.js';
|
|
4
8
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
5
|
-
import { focusables, useModalLayer, isComposing, layerCount } from './chunk-
|
|
9
|
+
import { focusables, useModalLayer, isComposing, layerCount } from './chunk-TUEM2XIW.js';
|
|
10
|
+
import { returnFocus } from './chunk-4ITETIGZ.js';
|
|
6
11
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
7
|
-
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
8
12
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
9
13
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
10
14
|
import './HitArea-QUOS6ZDJ.css';
|
|
11
|
-
import './AppShell-
|
|
15
|
+
import './AppShell-U7D2MUUF.css';
|
|
12
16
|
import './ResizeHandle-2UNSZ4ZQ.css';
|
|
13
17
|
import { createContext, forwardRef, useContext, useSyncExternalStore, useCallback, useId, useState, useRef, useEffect, useLayoutEffect } from 'react';
|
|
14
18
|
import { breakpoint } from '@crewlethq/tokens';
|
|
15
|
-
import { ChevronUpGlyph, ChevronsUpDownGlyph, ChevronRightGlyph, MenuGlyph } from '@crewlethq/icons/glyphs';
|
|
19
|
+
import { ChevronUpGlyph, ChevronsUpDownGlyph, ChevronRightGlyph, PlusGlyph, MinusGlyph, MenuGlyph } from '@crewlethq/icons/glyphs';
|
|
16
20
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
17
21
|
|
|
18
22
|
function AccountRow({
|
|
@@ -25,8 +29,11 @@ function AccountRow({
|
|
|
25
29
|
title,
|
|
26
30
|
linkSuffix = ", your account",
|
|
27
31
|
actions,
|
|
32
|
+
compact: compactProp,
|
|
28
33
|
className
|
|
29
34
|
}) {
|
|
35
|
+
const railShape = useRailShape();
|
|
36
|
+
const compact = compactProp ?? railShape === "compact";
|
|
30
37
|
const who = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31
38
|
/* @__PURE__ */ jsx("span", { className: "crewlet-account-row__avatar", children: avatar }),
|
|
32
39
|
/* @__PURE__ */ jsxs("span", { className: "crewlet-account-row__text", children: [
|
|
@@ -38,6 +45,7 @@ function AccountRow({
|
|
|
38
45
|
] }) : null
|
|
39
46
|
] })
|
|
40
47
|
] });
|
|
48
|
+
if (compact) return /* @__PURE__ */ jsx(CompactAccount, { avatar, name, detail, href, menu, current, linkSuffix, className });
|
|
41
49
|
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-account-row", className), children: [
|
|
42
50
|
menu ? /* @__PURE__ */ jsx(
|
|
43
51
|
Menu,
|
|
@@ -79,6 +87,60 @@ function AccountRow({
|
|
|
79
87
|
actions ? /* @__PURE__ */ jsx("div", { className: "crewlet-account-row__actions", children: actions }) : null
|
|
80
88
|
] });
|
|
81
89
|
}
|
|
90
|
+
function CompactAccount({
|
|
91
|
+
avatar,
|
|
92
|
+
name,
|
|
93
|
+
detail,
|
|
94
|
+
href,
|
|
95
|
+
menu,
|
|
96
|
+
current,
|
|
97
|
+
linkSuffix,
|
|
98
|
+
className
|
|
99
|
+
}) {
|
|
100
|
+
const words = (suffix) => /* @__PURE__ */ jsxs(VisuallyHidden, { children: [
|
|
101
|
+
name,
|
|
102
|
+
detail ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
103
|
+
", ",
|
|
104
|
+
detail
|
|
105
|
+
] }) : null,
|
|
106
|
+
suffix
|
|
107
|
+
] });
|
|
108
|
+
const tip = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
109
|
+
name,
|
|
110
|
+
detail ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
111
|
+
" \xB7 ",
|
|
112
|
+
detail
|
|
113
|
+
] }) : null
|
|
114
|
+
] });
|
|
115
|
+
const face = /* @__PURE__ */ jsx("span", { className: "crewlet-account-row__avatar", "aria-hidden": true, children: avatar });
|
|
116
|
+
const shape = cx("crewlet-account-row__who", "crewlet-account-row__who--compact", HIT_AREA_CLASS);
|
|
117
|
+
let control;
|
|
118
|
+
if (menu) {
|
|
119
|
+
control = /* @__PURE__ */ jsx(
|
|
120
|
+
Menu,
|
|
121
|
+
{
|
|
122
|
+
label: menu.label ?? "Your account",
|
|
123
|
+
items: menu.items,
|
|
124
|
+
header: menu.header,
|
|
125
|
+
renderTrigger: (trigger) => /* @__PURE__ */ jsx(Tooltip, { content: tip, children: /* @__PURE__ */ jsxs("button", { type: "button", className: shape, "data-current": current ? "" : void 0, ...trigger, children: [
|
|
126
|
+
face,
|
|
127
|
+
words(linkSuffix)
|
|
128
|
+
] }) })
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
} else if (href === void 0) {
|
|
132
|
+
control = /* @__PURE__ */ jsx(Tooltip, { content: tip, children: /* @__PURE__ */ jsxs("span", { className: "crewlet-account-row__who crewlet-account-row__who--compact", children: [
|
|
133
|
+
face,
|
|
134
|
+
words("")
|
|
135
|
+
] }) });
|
|
136
|
+
} else {
|
|
137
|
+
control = /* @__PURE__ */ jsx(Tooltip, { content: tip, children: /* @__PURE__ */ jsxs("a", { className: shape, href, "aria-current": current ? "page" : void 0, children: [
|
|
138
|
+
face,
|
|
139
|
+
words(linkSuffix)
|
|
140
|
+
] }) });
|
|
141
|
+
}
|
|
142
|
+
return /* @__PURE__ */ jsx("div", { className: cx("crewlet-account-row", "crewlet-account-row--compact", className), children: control });
|
|
143
|
+
}
|
|
82
144
|
function createScreenWidthStore() {
|
|
83
145
|
let width = null;
|
|
84
146
|
const listeners = /* @__PURE__ */ new Set();
|
|
@@ -122,6 +184,22 @@ function useScreenBelow(width) {
|
|
|
122
184
|
const measured = useSyncExternalStore(store ? store.subscribe : noSubscription, read, () => null);
|
|
123
185
|
return measured ?? window2;
|
|
124
186
|
}
|
|
187
|
+
var RAIL_MOTION = {
|
|
188
|
+
transitions: ["width"],
|
|
189
|
+
animations: ["crewlet-app-shell-rail-unfold", "crewlet-app-shell-rail-settle"]
|
|
190
|
+
};
|
|
191
|
+
function useRailMotion(target, moves, rail) {
|
|
192
|
+
const [moved, setMoved] = useState(moves);
|
|
193
|
+
if (moved !== moves) setMoved(moves);
|
|
194
|
+
const instant = !moves || !moved;
|
|
195
|
+
const full = usePresence(target === "full", rail, { ...RAIL_MOTION, instant });
|
|
196
|
+
const compact = usePresence(target === "compact" && !full.leaving, rail, { ...RAIL_MOTION, instant });
|
|
197
|
+
let motion = null;
|
|
198
|
+
if (full.leaving) motion = "fold";
|
|
199
|
+
else if (full.entering) motion = full.returning ? "reverse" : "unfold";
|
|
200
|
+
else if (compact.entering) motion = "folded";
|
|
201
|
+
return { drawn: full.present ? "full" : "compact", motion, leaving: full.leaving };
|
|
202
|
+
}
|
|
125
203
|
var APP_SHELL_ASIDE_WIDTH = 420;
|
|
126
204
|
var NARROW = `(width < ${breakpoint.shell})`;
|
|
127
205
|
var AppShellContext = createContext(null);
|
|
@@ -141,6 +219,10 @@ function AppShell({
|
|
|
141
219
|
navigationKey,
|
|
142
220
|
toggleLabel = "Sections",
|
|
143
221
|
skipLabel = "Skip to content",
|
|
222
|
+
rail: railChoice = "full",
|
|
223
|
+
onRailChange,
|
|
224
|
+
railFoldKeys,
|
|
225
|
+
railFoldLabels,
|
|
144
226
|
aside,
|
|
145
227
|
asideWidth = APP_SHELL_ASIDE_WIDTH,
|
|
146
228
|
asideReserve,
|
|
@@ -181,16 +263,29 @@ function AppShell({
|
|
|
181
263
|
},
|
|
182
264
|
[mainRef]
|
|
183
265
|
);
|
|
266
|
+
const railMoving = useRef(false);
|
|
267
|
+
const heldMeasures = useRef(/* @__PURE__ */ new Set());
|
|
268
|
+
const unlessRailMoving = useCallback(
|
|
269
|
+
(measure) => () => {
|
|
270
|
+
if (railMoving.current) heldMeasures.current.add(measure);
|
|
271
|
+
else measure();
|
|
272
|
+
},
|
|
273
|
+
[]
|
|
274
|
+
);
|
|
184
275
|
const [gutter, setGutter] = useState(0);
|
|
185
276
|
useLayoutEffect(() => {
|
|
186
277
|
if (!scroller) return void 0;
|
|
187
278
|
const measure = () => setGutter(Math.max(0, scroller.offsetWidth - scroller.clientWidth));
|
|
188
279
|
measure();
|
|
189
280
|
if (typeof ResizeObserver === "undefined") return void 0;
|
|
190
|
-
const observer = new ResizeObserver(measure);
|
|
281
|
+
const observer = new ResizeObserver(unlessRailMoving(measure));
|
|
191
282
|
observer.observe(scroller);
|
|
192
|
-
|
|
193
|
-
|
|
283
|
+
const held = heldMeasures.current;
|
|
284
|
+
return () => {
|
|
285
|
+
observer.disconnect();
|
|
286
|
+
held.delete(measure);
|
|
287
|
+
};
|
|
288
|
+
}, [scroller, unlessRailMoving]);
|
|
194
289
|
const root = useRef(null);
|
|
195
290
|
const sheet = useRef(null);
|
|
196
291
|
const asideColumn = hasAside && asideShape === "column";
|
|
@@ -205,11 +300,15 @@ function AppShell({
|
|
|
205
300
|
const measure = () => setOccupied(Math.max(0, Math.round(frame.getBoundingClientRect().right - page.getBoundingClientRect().right)));
|
|
206
301
|
measure();
|
|
207
302
|
if (typeof ResizeObserver === "undefined") return void 0;
|
|
208
|
-
const observer = new ResizeObserver(measure);
|
|
303
|
+
const observer = new ResizeObserver(unlessRailMoving(measure));
|
|
209
304
|
observer.observe(page);
|
|
210
305
|
observer.observe(frame);
|
|
211
|
-
|
|
212
|
-
|
|
306
|
+
const held = heldMeasures.current;
|
|
307
|
+
return () => {
|
|
308
|
+
observer.disconnect();
|
|
309
|
+
held.delete(measure);
|
|
310
|
+
};
|
|
311
|
+
}, [asideColumn, unlessRailMoving]);
|
|
213
312
|
const content = useRef(null);
|
|
214
313
|
const [screenWidth] = useState(createScreenWidthStore);
|
|
215
314
|
useLayoutEffect(() => {
|
|
@@ -218,13 +317,44 @@ function AppShell({
|
|
|
218
317
|
const measure = () => screenWidth.set(contentInlineSize(column));
|
|
219
318
|
measure();
|
|
220
319
|
if (typeof ResizeObserver === "undefined") return void 0;
|
|
221
|
-
const observer = new ResizeObserver(measure);
|
|
320
|
+
const observer = new ResizeObserver(unlessRailMoving(measure));
|
|
222
321
|
observer.observe(column);
|
|
322
|
+
const held = heldMeasures.current;
|
|
223
323
|
return () => {
|
|
224
324
|
observer.disconnect();
|
|
325
|
+
held.delete(measure);
|
|
225
326
|
screenWidth.set(null);
|
|
226
327
|
};
|
|
227
|
-
}, [screenWidth]);
|
|
328
|
+
}, [screenWidth, unlessRailMoving]);
|
|
329
|
+
const hasRail = sidebar !== void 0 && sidebar !== null;
|
|
330
|
+
const railTarget = hasRail && railChoice === "compact" && !narrow ? "compact" : "full";
|
|
331
|
+
const { drawn: railShape, motion: railMotion, leaving: railLeaving } = useRailMotion(railTarget, hasRail && !narrow, rail);
|
|
332
|
+
const foldable = hasRail && onRailChange !== void 0 && !narrow;
|
|
333
|
+
railMoving.current = railMotion !== null;
|
|
334
|
+
useLayoutEffect(() => {
|
|
335
|
+
if (railMotion !== null) return;
|
|
336
|
+
const held = [...heldMeasures.current];
|
|
337
|
+
heldMeasures.current.clear();
|
|
338
|
+
for (const measure of held) measure();
|
|
339
|
+
}, [railMotion]);
|
|
340
|
+
const refocusFolded = useRef(false);
|
|
341
|
+
useLayoutEffect(() => {
|
|
342
|
+
const aside2 = rail.current;
|
|
343
|
+
if (!aside2) return;
|
|
344
|
+
if (railLeaving) {
|
|
345
|
+
const held2 = aside2.ownerDocument.activeElement;
|
|
346
|
+
const leavingPart = held2 instanceof HTMLElement ? held2.closest("[inert]") : null;
|
|
347
|
+
if (!leavingPart || !aside2.contains(leavingPart)) return;
|
|
348
|
+
const live = focusables(aside2).find((element) => !element.closest("[inert]")) ?? null;
|
|
349
|
+
releaseFocus(leavingPart, live);
|
|
350
|
+
refocusFolded.current = live === null;
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
if (!refocusFolded.current) return;
|
|
354
|
+
refocusFolded.current = false;
|
|
355
|
+
const held = aside2.ownerDocument.activeElement;
|
|
356
|
+
if (held === null || held === aside2.ownerDocument.body) focusables(aside2)[0]?.focus();
|
|
357
|
+
}, [railLeaving]);
|
|
228
358
|
const shell = {
|
|
229
359
|
narrow,
|
|
230
360
|
drawerOpen,
|
|
@@ -234,7 +364,8 @@ function AppShell({
|
|
|
234
364
|
scroller,
|
|
235
365
|
railId,
|
|
236
366
|
toggleLabel,
|
|
237
|
-
hasRail
|
|
367
|
+
hasRail,
|
|
368
|
+
rail: railShape
|
|
238
369
|
};
|
|
239
370
|
return /* @__PURE__ */ jsx(AppShellContext.Provider, { value: shell, children: /* @__PURE__ */ jsxs(
|
|
240
371
|
"div",
|
|
@@ -244,13 +375,17 @@ function AppShell({
|
|
|
244
375
|
className: cx(
|
|
245
376
|
"crewlet-app-shell",
|
|
246
377
|
fill && "crewlet-app-shell--fill",
|
|
378
|
+
fill === "flush" && "crewlet-app-shell--fill-flush",
|
|
247
379
|
// Named on the root rather than read off the tree by a selector,
|
|
248
380
|
// because a shell with no rail is one column whatever else it holds.
|
|
249
381
|
!shell.hasRail && "crewlet-app-shell--no-rail",
|
|
382
|
+
foldable && "crewlet-app-shell--foldable",
|
|
250
383
|
className
|
|
251
384
|
),
|
|
252
385
|
"data-aside": hasAside ? asideShape : void 0,
|
|
253
386
|
"data-peek": hasPeek ? peekShape : void 0,
|
|
387
|
+
"data-rail": hasRail ? railShape : void 0,
|
|
388
|
+
"data-rail-motion": railMotion ?? void 0,
|
|
254
389
|
style: {
|
|
255
390
|
...style,
|
|
256
391
|
["--crewlet-app-shell-gutter"]: `${gutter}px`,
|
|
@@ -279,7 +414,7 @@ function AppShell({
|
|
|
279
414
|
}
|
|
280
415
|
),
|
|
281
416
|
drawerOpen ? /* @__PURE__ */ jsx(ShellDrawer, { rail, onClose: closeDrawer, onZIndex: setDrawerZ }) : null,
|
|
282
|
-
shell.hasRail ? /* @__PURE__ */
|
|
417
|
+
shell.hasRail ? /* @__PURE__ */ jsxs(
|
|
283
418
|
"aside",
|
|
284
419
|
{
|
|
285
420
|
ref: rail,
|
|
@@ -289,7 +424,10 @@ function AppShell({
|
|
|
289
424
|
role: drawerOpen ? "dialog" : void 0,
|
|
290
425
|
"aria-modal": drawerOpen || void 0,
|
|
291
426
|
"aria-label": drawerOpen ? toggleLabel : void 0,
|
|
292
|
-
children:
|
|
427
|
+
children: [
|
|
428
|
+
foldable ? /* @__PURE__ */ jsx(RailFold, { rail: railTarget, onRailChange, keys: railFoldKeys, labels: railFoldLabels, railId }) : null,
|
|
429
|
+
/* @__PURE__ */ jsx(RailShapeContext.Provider, { value: railShape, children: /* @__PURE__ */ jsx(RailLeavingContext.Provider, { value: railLeaving, children: sidebar }) })
|
|
430
|
+
]
|
|
293
431
|
}
|
|
294
432
|
) : null,
|
|
295
433
|
/* @__PURE__ */ jsxs("div", { ref: sheet, className: "crewlet-app-shell__sheet", children: [
|
|
@@ -454,17 +592,58 @@ function ShellDrawer({
|
|
|
454
592
|
}
|
|
455
593
|
);
|
|
456
594
|
}
|
|
595
|
+
function RailFold({
|
|
596
|
+
rail,
|
|
597
|
+
onRailChange,
|
|
598
|
+
keys,
|
|
599
|
+
labels,
|
|
600
|
+
railId
|
|
601
|
+
}) {
|
|
602
|
+
const compact = rail === "compact";
|
|
603
|
+
const label = compact ? labels?.expand ?? "Expand the sidebar" : labels?.collapse ?? "Collapse the sidebar";
|
|
604
|
+
const apple = isApplePlatform();
|
|
605
|
+
return /* @__PURE__ */ jsx("span", { className: "crewlet-app-shell__fold", children: /* @__PURE__ */ jsx(
|
|
606
|
+
Tooltip,
|
|
607
|
+
{
|
|
608
|
+
placement: "bottom",
|
|
609
|
+
content: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
610
|
+
label,
|
|
611
|
+
keys ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
612
|
+
" ",
|
|
613
|
+
/* @__PURE__ */ jsx(Kbd, { keys, subtle: true, apple })
|
|
614
|
+
] }) : null
|
|
615
|
+
] }),
|
|
616
|
+
children: /* @__PURE__ */ jsx(
|
|
617
|
+
IconButton,
|
|
618
|
+
{
|
|
619
|
+
label,
|
|
620
|
+
size: "sm",
|
|
621
|
+
variant: "ghost",
|
|
622
|
+
icon: compact ? /* @__PURE__ */ jsx(PlusGlyph, { size: "sm" }) : /* @__PURE__ */ jsx(MinusGlyph, { size: "sm" }),
|
|
623
|
+
"aria-controls": railId,
|
|
624
|
+
"aria-expanded": !compact,
|
|
625
|
+
"aria-keyshortcuts": keys ? ariaKeyshortcuts(keys, apple) : void 0,
|
|
626
|
+
onClick: () => onRailChange?.(compact ? "full" : "compact")
|
|
627
|
+
}
|
|
628
|
+
)
|
|
629
|
+
}
|
|
630
|
+
) });
|
|
631
|
+
}
|
|
457
632
|
function AppShellRail({ header, search, status, footer, className, children }) {
|
|
633
|
+
const compact = useRailShape() === "compact";
|
|
634
|
+
const leaving = useContext(RailLeavingContext) || void 0;
|
|
635
|
+
const statusSlot = status ? /* @__PURE__ */ jsx("div", { className: "crewlet-app-shell__rail-status", inert: leaving, children: status }) : null;
|
|
458
636
|
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-app-shell__rail-inner", className), children: [
|
|
459
|
-
header || status ? /* @__PURE__ */ jsxs("div", { className: "crewlet-app-shell__rail-head", children: [
|
|
637
|
+
header || status && !compact ? /* @__PURE__ */ jsxs("div", { className: "crewlet-app-shell__rail-head", children: [
|
|
460
638
|
header,
|
|
461
|
-
|
|
639
|
+
compact ? null : statusSlot
|
|
462
640
|
] }) : null,
|
|
463
|
-
|
|
464
|
-
|
|
641
|
+
compact ? statusSlot : null,
|
|
642
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-app-shell__rail-body", inert: leaving, children: [
|
|
643
|
+
search && !compact ? /* @__PURE__ */ jsx("div", { className: "crewlet-app-shell__rail-search", children: search }) : null,
|
|
465
644
|
children
|
|
466
645
|
] }),
|
|
467
|
-
footer ? /* @__PURE__ */ jsx("div", { className: "crewlet-app-shell__rail-foot", children: footer }) : null
|
|
646
|
+
footer ? /* @__PURE__ */ jsx("div", { className: "crewlet-app-shell__rail-foot", inert: leaving, children: footer }) : null
|
|
468
647
|
] });
|
|
469
648
|
}
|
|
470
649
|
function countWords(count) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
+
import './MentionChip-W7MZZVRZ.css';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function MentionChip({ children, tone = "other", onPress, className, ...rest }) {
|
|
6
|
+
const classes = cx("crewlet-mention-chip", `crewlet-mention-chip--${tone}`, className);
|
|
7
|
+
if (!onPress) {
|
|
8
|
+
return /* @__PURE__ */ jsx("span", { ...rest, className: classes, children });
|
|
9
|
+
}
|
|
10
|
+
return /* @__PURE__ */ jsx("button", { ...rest, type: "button", className: classes, onClick: onPress, children });
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { MentionChip };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Combobox } from './chunk-
|
|
2
|
-
import { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-
|
|
1
|
+
import { Combobox } from './chunk-NNZRTR5M.js';
|
|
2
|
+
import { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-HF5L56YQ.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './PrincipalPicker-P6UYHDJR.css';
|
|
5
5
|
import { useState, useId, useMemo } from 'react';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PRESENCE_LABELS, presenceOrder, collapseSessions } from './chunk-Z7JYG5TF.js';
|
|
2
|
-
import { Avatar } from './chunk-
|
|
3
|
-
import { headingTag, useHeadingLevel } from './chunk-PQADV6P6.js';
|
|
2
|
+
import { Avatar } from './chunk-XZY6S3UC.js';
|
|
4
3
|
import { Button } from './chunk-DGXZ635L.js';
|
|
5
4
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
5
|
+
import { headingTag, useHeadingLevel } from './chunk-PQADV6P6.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
7
7
|
import './PeopleRail-MRUSDGCZ.css';
|
|
8
8
|
import { useId } from 'react';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Skeleton } from './chunk-
|
|
2
|
-
import { PrincipalAvatar } from './chunk-
|
|
1
|
+
import { Skeleton } from './chunk-I4IUX3JF.js';
|
|
2
|
+
import { PrincipalAvatar } from './chunk-HF5L56YQ.js';
|
|
3
3
|
import { RelativeTime } from './chunk-EJNJMHQG.js';
|
|
4
|
-
import { Card } from './chunk-
|
|
5
|
-
import { AvatarStack } from './chunk-
|
|
6
|
-
import { ArtifactKindGround } from './chunk-
|
|
7
|
-
import { Checkbox } from './chunk-
|
|
4
|
+
import { Card } from './chunk-U2IQNDDR.js';
|
|
5
|
+
import { AvatarStack } from './chunk-IRONPJB4.js';
|
|
6
|
+
import { ArtifactKindGround } from './chunk-ZB3E2Z4Y.js';
|
|
7
|
+
import { Checkbox } from './chunk-YQ7Q52XU.js';
|
|
8
8
|
import { ArtifactAccessGlyph } from './chunk-DOY3KC6I.js';
|
|
9
9
|
import { ArtifactKindGlyph } from './chunk-RSKW25Y5.js';
|
|
10
10
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
11
11
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
12
|
-
import './ArtifactKinds-
|
|
12
|
+
import './ArtifactKinds-3EH4KR3F.css';
|
|
13
13
|
import './ArtifactCard-B2QE5CVL.css';
|
|
14
14
|
import { useId } from 'react';
|
|
15
15
|
import { PinGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { diffLines, diffStat, collapseDiff, DiffSummary, DiffView } from './chunk-AOFVXE6V.js';
|
|
2
|
-
import { SegmentedControl } from './chunk-
|
|
2
|
+
import { SegmentedControl } from './chunk-AZYE7NR4.js';
|
|
3
3
|
import { EmptyState } from './chunk-PPUR46MK.js';
|
|
4
4
|
import { useHeadingLevel, headingTag, nextHeadingLevel, HeadingLevelProvider } from './chunk-PQADV6P6.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useReorder } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useReorder } from './chunk-BVML4UVB.js';
|
|
2
|
+
import { Menu } from './chunk-TGGYSQRD.js';
|
|
3
|
+
import { Input } from './chunk-O7N6W52M.js';
|
|
4
4
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SlideStage } from './chunk-
|
|
2
|
-
import { useReorder } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { SlideStage } from './chunk-O6EV6GKI.js';
|
|
2
|
+
import { useReorder } from './chunk-BVML4UVB.js';
|
|
3
|
+
import { Menu } from './chunk-TGGYSQRD.js';
|
|
4
|
+
import { Kbd, isApplePlatform } from './chunk-CMAZZY2I.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
7
7
|
import './SlideFilmstrip-BLGBCLEU.css';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Select } from './chunk-
|
|
1
|
+
import { Select } from './chunk-3IWZVEXA.js';
|
|
2
2
|
import { SHEET_LABELS, SHEET_COLUMN_TYPES, optionHue, retypeColumn } from './chunk-LFSIKGRQ.js';
|
|
3
|
-
import { HueSwatch } from './chunk-
|
|
3
|
+
import { HueSwatch } from './chunk-SHH7UD5U.js';
|
|
4
4
|
import { NODE_HUES, NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
|
|
5
|
-
import { Checkbox } from './chunk-
|
|
6
|
-
import {
|
|
7
|
-
import { FormField, Input } from './chunk-
|
|
8
|
-
import {
|
|
5
|
+
import { Checkbox } from './chunk-YQ7Q52XU.js';
|
|
6
|
+
import { Menu } from './chunk-TGGYSQRD.js';
|
|
7
|
+
import { FormField, Input } from './chunk-O7N6W52M.js';
|
|
8
|
+
import { Kbd } from './chunk-CMAZZY2I.js';
|
|
9
9
|
import { Button } from './chunk-DGXZ635L.js';
|
|
10
10
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
11
11
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { HeadingLevelProvider } from './chunk-PQADV6P6.js';
|
|
2
1
|
import { useAppShellAside, ResizeHandle } from './chunk-PIYJNCN7.js';
|
|
3
|
-
import { useModalLayer } from './chunk-
|
|
2
|
+
import { useModalLayer } from './chunk-TUEM2XIW.js';
|
|
4
3
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
4
|
+
import { HeadingLevelProvider } from './chunk-PQADV6P6.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
6
|
import { createContext, useId, useRef, useContext, useLayoutEffect, useEffect, useMemo } from 'react';
|
|
7
7
|
import { MinimizeGlyph, MaximizeGlyph, XGlyph } from '@crewlethq/icons/glyphs';
|
|
8
|
-
import { jsxs, Fragment
|
|
8
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
9
|
|
|
10
10
|
var SidePanelFrameContext = createContext(null);
|
|
11
11
|
function part(name, alias) {
|
|
@@ -14,6 +14,7 @@ function part(name, alias) {
|
|
|
14
14
|
function SidePanelBase({
|
|
15
15
|
alias,
|
|
16
16
|
title,
|
|
17
|
+
subtitle,
|
|
17
18
|
icon,
|
|
18
19
|
onClose,
|
|
19
20
|
closeLabel,
|
|
@@ -39,6 +40,7 @@ function SidePanelBase({
|
|
|
39
40
|
children
|
|
40
41
|
}) {
|
|
41
42
|
const titleId = useId();
|
|
43
|
+
const subtitled = subtitle !== void 0 && subtitle !== null && subtitle !== false && !hideTitle;
|
|
42
44
|
const panelId = useId();
|
|
43
45
|
const root = useRef(null);
|
|
44
46
|
const heading = useRef(null);
|
|
@@ -79,6 +81,20 @@ function SidePanelBase({
|
|
|
79
81
|
}, []);
|
|
80
82
|
const sized = !inShell && !expanded && width !== void 0;
|
|
81
83
|
const grip = resizable && !inShell && !expanded && (shape === null || shape === "column") && width !== void 0 && onWidthChange;
|
|
84
|
+
const headingNode = /* @__PURE__ */ jsx(
|
|
85
|
+
"h2",
|
|
86
|
+
{
|
|
87
|
+
ref: heading,
|
|
88
|
+
id: titleId,
|
|
89
|
+
className: cx(
|
|
90
|
+
part("title", alias),
|
|
91
|
+
!ringHeading && "crewlet-side-panel__title--quiet",
|
|
92
|
+
hideTitle && "crewlet-side-panel__title--hidden"
|
|
93
|
+
),
|
|
94
|
+
tabIndex: -1,
|
|
95
|
+
children: title
|
|
96
|
+
}
|
|
97
|
+
);
|
|
82
98
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
83
99
|
/* @__PURE__ */ jsxs(
|
|
84
100
|
"div",
|
|
@@ -106,22 +122,17 @@ function SidePanelBase({
|
|
|
106
122
|
edge: "left"
|
|
107
123
|
}
|
|
108
124
|
) : null,
|
|
109
|
-
/* @__PURE__ */ jsxs("div", { className: part("head", alias), children: [
|
|
125
|
+
/* @__PURE__ */ jsxs("div", { className: cx(part("head", alias), subtitled && "crewlet-side-panel__head--subtitled"), children: [
|
|
110
126
|
icon ? /* @__PURE__ */ jsx("span", { className: part("icon", alias), "aria-hidden": true, children: icon }) : null,
|
|
111
|
-
|
|
112
|
-
"
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
),
|
|
121
|
-
tabIndex: -1,
|
|
122
|
-
children: title
|
|
123
|
-
}
|
|
124
|
-
),
|
|
127
|
+
subtitled ? (
|
|
128
|
+
/* THE TITLE AND WHAT IT IS ABOUT, on one baseline ("Thread" and the
|
|
129
|
+
room it is in), the second dropping under the first when the two
|
|
130
|
+
do not fit, and the title ellipsised on its own line. */
|
|
131
|
+
/* @__PURE__ */ jsxs("div", { className: part("heading", alias), children: [
|
|
132
|
+
headingNode,
|
|
133
|
+
/* @__PURE__ */ jsx("span", { className: part("subtitle", alias), children: subtitle })
|
|
134
|
+
] })
|
|
135
|
+
) : headingNode,
|
|
125
136
|
/* @__PURE__ */ jsxs("span", { className: part("actions", alias), children: [
|
|
126
137
|
actions,
|
|
127
138
|
onExpandedChange ? /* @__PURE__ */ jsx(
|
|
@@ -163,6 +174,7 @@ var SIDE_PANEL_LABELS = {
|
|
|
163
174
|
};
|
|
164
175
|
function SidePanel({
|
|
165
176
|
title,
|
|
177
|
+
subtitle,
|
|
166
178
|
icon,
|
|
167
179
|
hideTitle,
|
|
168
180
|
onClose,
|
|
@@ -186,6 +198,7 @@ function SidePanel({
|
|
|
186
198
|
SidePanelBase,
|
|
187
199
|
{
|
|
188
200
|
title,
|
|
201
|
+
subtitle,
|
|
189
202
|
icon,
|
|
190
203
|
hideTitle,
|
|
191
204
|
onClose,
|