@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ReactNode, Ref } from 'react';
|
|
2
|
+
/** One thing a composer can mention: a person, an agent, a room, or everyone. */
|
|
3
|
+
export interface MentionOption {
|
|
4
|
+
id: string;
|
|
5
|
+
/** What is inserted when it is taken: "@pm", "#engineering". */
|
|
6
|
+
insert: string;
|
|
7
|
+
/** Its name in the list. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** A second piece of identity after the name: a title, a handle, a room's topic. */
|
|
10
|
+
detail?: string | undefined;
|
|
11
|
+
/** A face (an `Avatar` with its status) or a glyph (a room's, `@channel`'s). */
|
|
12
|
+
mark?: ReactNode;
|
|
13
|
+
/** A trailing word: "Working", "Needs you", "Not in this room". */
|
|
14
|
+
note?: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/** The words the menu draws, for a host that sets its own. */
|
|
17
|
+
export interface MentionMenuLabels {
|
|
18
|
+
/** The keyboard hints at the foot. A touch screen has no keys, so the foot is hidden there. */
|
|
19
|
+
hints: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
export declare const MENTION_MENU_LABELS: MentionMenuLabels;
|
|
22
|
+
export interface MentionMenuProps {
|
|
23
|
+
/**
|
|
24
|
+
* The listbox's id. Each option's id is `${id}-${index}`, which is what the
|
|
25
|
+
* field points at with `aria-activedescendant`. With `useListbox`, pass the
|
|
26
|
+
* hook's `listId`, and its `optionId(index)` names the same rows.
|
|
27
|
+
*/
|
|
28
|
+
id: string;
|
|
29
|
+
/** What the list offers, as its heading and its name: "People and agents", "Rooms". */
|
|
30
|
+
label: string;
|
|
31
|
+
options: readonly MentionOption[];
|
|
32
|
+
/** The highlighted option's index. */
|
|
33
|
+
active: number;
|
|
34
|
+
/** Taking an option, on a press (the press's default is prevented, so the field keeps focus). */
|
|
35
|
+
onPick: (option: MentionOption, index: number) => void;
|
|
36
|
+
/** The pointer moved onto an option. */
|
|
37
|
+
onHover: (index: number) => void;
|
|
38
|
+
/**
|
|
39
|
+
* The list element: `useListbox`'s `listRef`, so the highlighted row is kept
|
|
40
|
+
* in view as the arrows move and a press outside the list closes it.
|
|
41
|
+
*/
|
|
42
|
+
listRef?: Ref<HTMLUListElement> | undefined;
|
|
43
|
+
/** The foot. Left out, it carries the keyboard hints; `null` draws none. */
|
|
44
|
+
footer?: ReactNode;
|
|
45
|
+
labels?: Partial<MentionMenuLabels> | undefined;
|
|
46
|
+
className?: string | undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The suggestions a composer opens on "@" or "#": people and agents with
|
|
50
|
+
* their faces and what they are doing, rooms with their glyphs, and everyone
|
|
51
|
+
* in the room.
|
|
52
|
+
*
|
|
53
|
+
* A LISTBOX THE FIELD OWNS. Focus stays in the message box, which points at
|
|
54
|
+
* the highlighted row with `aria-activedescendant`, so typing goes on while
|
|
55
|
+
* the list narrows. `useListbox` gives the keys (the arrows wrap, Enter and
|
|
56
|
+
* Tab take the row, Escape closes the list and nothing else); the host spreads
|
|
57
|
+
* `role="combobox"`, `aria-controls`, `aria-expanded` and
|
|
58
|
+
* `aria-activedescendant` on its field, and finds the word being typed with
|
|
59
|
+
* `mentionQuery`.
|
|
60
|
+
*
|
|
61
|
+
* DRAWN ABOVE THE COMPOSER, never over what is being typed: it is placed
|
|
62
|
+
* against the nearest positioned box round the field, as wide as the field
|
|
63
|
+
* and no wider than a list is read (`--crewlet-mention-menu-width`).
|
|
64
|
+
*
|
|
65
|
+
* ITS ROWS ARE `PersonRow`s, so a face, a name and its detail sit where every
|
|
66
|
+
* other list of people in the product puts them.
|
|
67
|
+
*/
|
|
68
|
+
export declare function MentionMenu({ id, label, options, active, onPick, onHover, listRef, footer, labels: overrides, className }: MentionMenuProps): import("react").JSX.Element;
|
|
69
|
+
/** The mention being typed at the caret. */
|
|
70
|
+
export interface MentionQuery {
|
|
71
|
+
trigger: '@' | '#';
|
|
72
|
+
/** The words typed after the trigger, possibly none. */
|
|
73
|
+
query: string;
|
|
74
|
+
/** Where the trigger stands in the text, which is where a taken option is inserted from. */
|
|
75
|
+
start: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The "@word" or "#word" that ends at the caret, if the caret is in one. A
|
|
79
|
+
* trigger counts at the start of the text or after whitespace, so an address
|
|
80
|
+
* ("ada@crewlet.com") or a heading mark inside a word opens nothing.
|
|
81
|
+
*/
|
|
82
|
+
export declare function mentionQuery(text: string, caret: number): MentionQuery | null;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* MentionMenu: the suggestions a composer opens on "@" or "#".
|
|
3
|
+
*
|
|
4
|
+
* The popover surface (the fill, hairline, corner and shadow of the emoji
|
|
5
|
+
* picker that opens from the same composer), as wide as the field but no
|
|
6
|
+
* wider than a list a reader scans: on a wide room the trailing word
|
|
7
|
+
* ("Working") stood a screen's width from the name it belongs to; a host
|
|
8
|
+
* moves that cap with `--crewlet-mention-menu-width` on any box round it.
|
|
9
|
+
* It is placed against the nearest positioned box round the field, above
|
|
10
|
+
* it, so it never covers what is being typed.
|
|
11
|
+
*/
|
|
12
|
+
.crewlet-mention-menu {
|
|
13
|
+
position: absolute;
|
|
14
|
+
bottom: calc(100% + var(--spacing-1));
|
|
15
|
+
left: 0;
|
|
16
|
+
z-index: var(--z-index-dropdown);
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
width: min(100%, var(--crewlet-mention-menu-width, 560px));
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
border: 1px solid var(--color-border-default);
|
|
21
|
+
border-radius: var(--radius-lg);
|
|
22
|
+
background: var(--color-surface-subtle);
|
|
23
|
+
box-shadow: var(--shadow-xl);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.crewlet-mention-menu__label {
|
|
27
|
+
padding: var(--spacing-2) var(--spacing-3) var(--spacing-1);
|
|
28
|
+
color: var(--color-text-tertiary);
|
|
29
|
+
font-size: var(--font-size-2xs);
|
|
30
|
+
font-weight: var(--font-weight-regular);
|
|
31
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
32
|
+
text-transform: uppercase;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.crewlet-mention-menu__list {
|
|
36
|
+
max-height: 264px;
|
|
37
|
+
margin: 0;
|
|
38
|
+
padding: 0 var(--spacing-1) var(--spacing-1);
|
|
39
|
+
overflow-y: auto;
|
|
40
|
+
overscroll-behavior: contain;
|
|
41
|
+
list-style: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* The panel's corner less its inset, so each row's curve runs parallel. */
|
|
45
|
+
.crewlet-mention-menu__list > .crewlet-person-row {
|
|
46
|
+
--crewlet-person-row-radius: calc(var(--radius-lg) - var(--spacing-1));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.crewlet-mention-menu__footer {
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-wrap: wrap;
|
|
52
|
+
align-items: center;
|
|
53
|
+
gap: var(--spacing-1) var(--spacing-3);
|
|
54
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
55
|
+
border-top: 1px solid var(--color-border-default);
|
|
56
|
+
color: var(--color-text-tertiary);
|
|
57
|
+
font-size: var(--font-size-xs);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* The foot names keys, and a touch screen has none to press. */
|
|
61
|
+
@media (hover: none) {
|
|
62
|
+
.crewlet-mention-menu__footer {
|
|
63
|
+
display: none;
|
|
64
|
+
}
|
|
65
|
+
}
|
package/dist/Menu/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export { Menu } from '../chunk-
|
|
1
|
+
export { Menu } from '../chunk-TGGYSQRD.js';
|
|
2
|
+
import '../chunk-L72URIHR.js';
|
|
2
3
|
import '../chunk-DGXZ635L.js';
|
|
3
|
-
import '../chunk-OMV5W53A.js';
|
|
4
4
|
import '../chunk-XSPCITPN.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-OMV5W53A.js';
|
|
6
|
+
import '../chunk-TUEM2XIW.js';
|
|
7
|
+
import '../chunk-4ITETIGZ.js';
|
|
6
8
|
import '../chunk-UAUP6XGK.js';
|
|
7
|
-
import '../chunk-NUZHC6MM.js';
|
|
8
9
|
import '../chunk-UT6CW3C7.js';
|
|
9
10
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-
|
|
1
|
+
export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-C42XW5YP.js';
|
|
2
2
|
import '../chunk-36WK24AI.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-AZYE7NR4.js';
|
|
4
|
+
import '../chunk-MVKUE4FI.js';
|
|
5
5
|
import '../chunk-EGMQURBR.js';
|
|
6
6
|
import '../chunk-CYQBDZ6M.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-TGGYSQRD.js';
|
|
8
|
+
import '../chunk-L72URIHR.js';
|
|
9
9
|
import '../chunk-DGXZ635L.js';
|
|
10
|
+
import '../chunk-XSPCITPN.js';
|
|
10
11
|
import '../chunk-OMV5W53A.js';
|
|
11
12
|
import '../chunk-2YTOOH3A.js';
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
13
|
+
import '../chunk-TUEM2XIW.js';
|
|
14
|
+
import '../chunk-4ITETIGZ.js';
|
|
14
15
|
import '../chunk-UAUP6XGK.js';
|
|
15
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-D2GT3CR4.js';
|
|
16
17
|
import '../chunk-UT6CW3C7.js';
|
|
17
18
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export interface MessageActionsProps {
|
|
3
|
+
/** Names the toolbar: "Message actions" by default. */
|
|
4
|
+
label?: string | undefined;
|
|
5
|
+
className?: string | undefined;
|
|
6
|
+
/** Quick reactions, `MessageAction`s, a `Menu` and `ActionDivider`s. */
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The toolbar a message shows on hover, keyboard focus or a tap: a few quick
|
|
11
|
+
* reactions, add reaction, reply in a thread, save, and More. Pass it to
|
|
12
|
+
* `ChatMessage`'s `actions`, which places it on the row's first line.
|
|
13
|
+
*
|
|
14
|
+
* A SOFT TRAY OF TOOLS, NOT A FRAMED BAR: the transcript's own ground ringed
|
|
15
|
+
* with the hairline and a small shadow, with the large corner, and 30px tools
|
|
16
|
+
* inside a 4px inset. It is a `Toolbar`, so it is one tab stop that the
|
|
17
|
+
* arrow keys walk.
|
|
18
|
+
*/
|
|
19
|
+
export declare function MessageActions({ label, className, children }: MessageActionsProps): import("react").JSX.Element;
|
|
20
|
+
export interface MessageActionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'aria-label' | 'children'> {
|
|
21
|
+
/** What it does, in words: the button's name and its hint. */
|
|
22
|
+
label: string;
|
|
23
|
+
/** The glyph, at the medium step. */
|
|
24
|
+
icon: ReactNode;
|
|
25
|
+
/** A toggle that is on (Saved): `aria-pressed`. */
|
|
26
|
+
pressed?: boolean | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Why the reader cannot use it here ("Join the room to react."): the tool
|
|
29
|
+
* is marked unavailable, does nothing when pressed, and adds the reason to
|
|
30
|
+
* its hint.
|
|
31
|
+
*/
|
|
32
|
+
disabledReason?: string | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* One tool in the tray: a 30px ghost icon button named by `label`, with the
|
|
36
|
+
* same words as its hint. It spreads what it is given on the button, so it
|
|
37
|
+
* can be a `Menu`'s own trigger (`renderTrigger`), and its hint steps aside
|
|
38
|
+
* while the menu it opens is open.
|
|
39
|
+
*/
|
|
40
|
+
export declare const MessageAction: import("react").ForwardRefExoticComponent<MessageActionProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
41
|
+
export interface QuickReactionProps {
|
|
42
|
+
emoji: string;
|
|
43
|
+
/** The emoji's name, for its button and its hint: "eyes". Read from the picker's names by default. */
|
|
44
|
+
name?: string | undefined;
|
|
45
|
+
onPick: () => void;
|
|
46
|
+
/** The words, given the name: "React with eyes" by default. */
|
|
47
|
+
label?: ((name: string) => string) | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Why the reader cannot react here ("Join the room to react."), as
|
|
50
|
+
* `ReactionBar` takes it: the emoji is marked unavailable, does not react
|
|
51
|
+
* when pressed, and adds the reason to its hint.
|
|
52
|
+
*/
|
|
53
|
+
disabledReason?: string | undefined;
|
|
54
|
+
}
|
|
55
|
+
/** A quick reaction in the tray: the emoji itself is the button. */
|
|
56
|
+
export declare function QuickReaction({ emoji, name, onPick, label, disabledReason }: QuickReactionProps): import("react").JSX.Element;
|
|
57
|
+
/** A hairline between groups of tools, said by nothing. */
|
|
58
|
+
export declare function ActionDivider(): import("react").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import '../ChatMessage/ChatScale.css';
|
|
2
|
+
import './MessageActions.css';
|
|
3
|
+
export { ActionDivider, MessageAction, MessageActions, QuickReaction } from './MessageActions.js';
|
|
4
|
+
export type { MessageActionProps, MessageActionsProps, QuickReactionProps } from './MessageActions.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { ActionDivider, MessageAction, MessageActions, QuickReaction } from '../chunk-LT44RL62.js';
|
|
2
|
+
import '../chunk-TDFLCUBE.js';
|
|
3
|
+
import '../chunk-SPNTUQBV.js';
|
|
4
|
+
import '../chunk-NXFTCPF6.js';
|
|
5
|
+
import '../chunk-EC6EUIAD.js';
|
|
6
|
+
import '../chunk-7ZSEUO5Q.js';
|
|
7
|
+
import '../chunk-HTS5RJ7S.js';
|
|
8
|
+
import '../chunk-L72URIHR.js';
|
|
9
|
+
import '../chunk-O7N6W52M.js';
|
|
10
|
+
import '../chunk-PGCLHYVP.js';
|
|
11
|
+
import '../chunk-OMV5W53A.js';
|
|
12
|
+
import '../chunk-TUEM2XIW.js';
|
|
13
|
+
import '../chunk-4ITETIGZ.js';
|
|
14
|
+
import '../chunk-UAUP6XGK.js';
|
|
15
|
+
import '../chunk-PQADV6P6.js';
|
|
16
|
+
import '../chunk-2G355KDJ.js';
|
|
17
|
+
import '../chunk-UT6CW3C7.js';
|
|
18
|
+
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The tray a message shows on hover: the transcript's own ground ringed with
|
|
3
|
+
* the hairline and a small shadow, the large corner, and 30px tools inside
|
|
4
|
+
* the inset, so it reads as a soft tray of tools rather than a framed bar.
|
|
5
|
+
* Two classes, so the tray's own rules hold over Toolbar's in any bundle
|
|
6
|
+
* order.
|
|
7
|
+
*/
|
|
8
|
+
.crewlet-toolbar.crewlet-message-actions {
|
|
9
|
+
flex-wrap: nowrap;
|
|
10
|
+
gap: var(--crewlet-chat-toolbar-inset);
|
|
11
|
+
height: var(--crewlet-chat-toolbar);
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
padding: var(--crewlet-chat-toolbar-inset);
|
|
14
|
+
border: 1px solid var(--color-edge-hairline);
|
|
15
|
+
border-radius: var(--radius-lg);
|
|
16
|
+
background: var(--crewlet-chat-ground);
|
|
17
|
+
box-shadow: var(--shadow-xs);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* A tool whose menu or picker is open reads as held down, which is not the
|
|
21
|
+
accent fill a toggle that is on (Saved) draws. */
|
|
22
|
+
.crewlet-message-actions .crewlet-icon-btn[aria-expanded='true'] {
|
|
23
|
+
background: var(--color-surface-pressed);
|
|
24
|
+
color: var(--color-text-primary);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.crewlet-message-actions__emoji {
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
flex: none;
|
|
30
|
+
align-items: center;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
width: var(--size-control-md);
|
|
33
|
+
height: var(--size-control-md);
|
|
34
|
+
padding: 0;
|
|
35
|
+
border: 0;
|
|
36
|
+
border-radius: var(--radius-md);
|
|
37
|
+
background: transparent;
|
|
38
|
+
font-size: var(--font-size-md);
|
|
39
|
+
line-height: 1;
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.crewlet-message-actions__emoji:hover {
|
|
44
|
+
background: var(--color-fill-soft);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.crewlet-message-actions__emoji:active {
|
|
48
|
+
background: var(--color-surface-pressed);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Held, as the tray's icon tools are: faded, no fill under the pointer, and
|
|
52
|
+
the reason in its hint. */
|
|
53
|
+
.crewlet-message-actions__emoji[aria-disabled='true'] {
|
|
54
|
+
opacity: 0.5;
|
|
55
|
+
cursor: not-allowed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.crewlet-message-actions__emoji[aria-disabled='true']:is(:hover, :active) {
|
|
59
|
+
background: transparent;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.crewlet-message-actions__emoji:focus-visible {
|
|
63
|
+
outline: 2px solid var(--color-focus);
|
|
64
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.crewlet-message-actions__divider {
|
|
68
|
+
flex: none;
|
|
69
|
+
width: 1px;
|
|
70
|
+
height: var(--spacing-4);
|
|
71
|
+
margin: 0 var(--spacing-1);
|
|
72
|
+
background: var(--color-border-default);
|
|
73
|
+
}
|
package/dist/Modal/Modal.d.ts
CHANGED
|
@@ -10,6 +10,16 @@ export type ModalSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
|
10
10
|
* A centred dialog grown to hold that covers the very card it is editing.
|
|
11
11
|
*/
|
|
12
12
|
export type ModalVariant = 'dialog' | 'sheet';
|
|
13
|
+
/**
|
|
14
|
+
* Which edge a SHEET is pinned to, in the page's own direction.
|
|
15
|
+
*
|
|
16
|
+
* `end` is the default and every editor: a sheet about something on the page
|
|
17
|
+
* stands beside it, at the end, where a reader's eye finishes a row. `start`
|
|
18
|
+
* is a navigation panel (a list of rooms, a list of places), which belongs
|
|
19
|
+
* where the navigation it stands for is drawn: it slides in from the start
|
|
20
|
+
* edge, its edge and its shadow on its inline end. A dialog has no side.
|
|
21
|
+
*/
|
|
22
|
+
export type ModalSide = 'start' | 'end';
|
|
13
23
|
/**
|
|
14
24
|
* Where a dialog sits in the window.
|
|
15
25
|
*
|
|
@@ -100,6 +110,8 @@ export interface ModalProps extends FrameAttributes {
|
|
|
100
110
|
children?: ReactNode;
|
|
101
111
|
size?: ModalSize | undefined;
|
|
102
112
|
variant?: ModalVariant | undefined;
|
|
113
|
+
/** The edge a sheet is pinned to (`end` by default). Read on the sheet variant only. */
|
|
114
|
+
side?: ModalSide | undefined;
|
|
103
115
|
shape?: ModalShape | undefined;
|
|
104
116
|
placement?: ModalPlacement | undefined;
|
|
105
117
|
/**
|
package/dist/Modal/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export { ConfirmModal, Modal } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ConfirmModal, Modal } from '../chunk-ZXXZESCD.js';
|
|
2
|
+
import '../chunk-L72URIHR.js';
|
|
3
3
|
import '../chunk-DGXZ635L.js';
|
|
4
|
-
import '../chunk-OMV5W53A.js';
|
|
5
4
|
import '../chunk-XSPCITPN.js';
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-OMV5W53A.js';
|
|
6
|
+
import '../chunk-TUEM2XIW.js';
|
|
7
|
+
import '../chunk-4ITETIGZ.js';
|
|
7
8
|
import '../chunk-UAUP6XGK.js';
|
|
8
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-PQADV6P6.js';
|
|
9
10
|
import '../chunk-UT6CW3C7.js';
|
|
10
11
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -285,13 +285,32 @@
|
|
|
285
285
|
animation: crewlet-modal-sheet-in var(--motion-duration-slow) var(--motion-easing-emphasized);
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
+
/*
|
|
289
|
+
* A SHEET FROM THE START EDGE (`side="start"`): a navigation panel, pinned to
|
|
290
|
+
* the inline start and arriving from past it, with its edge and its shadow on
|
|
291
|
+
* its inline end, into the page it covers. The shadow is the sheet's own,
|
|
292
|
+
* mirrored by the token build, so a palette's sheet shadow reads the same way
|
|
293
|
+
* round on either side.
|
|
294
|
+
*/
|
|
295
|
+
.crewlet-modal-overlay--sheet.crewlet-modal-overlay--start {
|
|
296
|
+
justify-content: flex-start;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.crewlet-modal--sheet.crewlet-modal--start {
|
|
300
|
+
--crewlet-modal-sheet-from: -100%;
|
|
301
|
+
border-inline-start: none;
|
|
302
|
+
border-inline-end: 1px solid var(--color-border-default);
|
|
303
|
+
box-shadow: var(--shadow-sheet-start);
|
|
304
|
+
}
|
|
305
|
+
|
|
288
306
|
/*
|
|
289
307
|
* The shell's one breakpoint, strictly under it as the shell switches. Below
|
|
290
308
|
* it there is no content beside a sheet to keep in view, so the sheet takes
|
|
291
309
|
* the whole width and its edge goes with it.
|
|
292
310
|
*/
|
|
293
311
|
@media (width < 1024px) {
|
|
294
|
-
.crewlet-modal--sheet
|
|
312
|
+
.crewlet-modal--sheet,
|
|
313
|
+
.crewlet-modal--sheet.crewlet-modal--start {
|
|
295
314
|
width: 100%;
|
|
296
315
|
border-inline: none;
|
|
297
316
|
}
|
|
@@ -314,6 +333,11 @@
|
|
|
314
333
|
--crewlet-modal-glyph-inset: calc((var(--size-control-md) - var(--font-size-sm)) / 2);
|
|
315
334
|
|
|
316
335
|
display: flex;
|
|
336
|
+
/* The head and the foot keep their height and the body gives way: in the
|
|
337
|
+
frame's column a head that could shrink was squeezed under a long body
|
|
338
|
+
to the bar's height, and a wrapped title and subtitle ran over its
|
|
339
|
+
edges. */
|
|
340
|
+
flex-shrink: 0;
|
|
317
341
|
align-items: center;
|
|
318
342
|
gap: var(--spacing-3);
|
|
319
343
|
padding: var(--spacing-4);
|
|
@@ -534,6 +558,7 @@
|
|
|
534
558
|
*/
|
|
535
559
|
.crewlet-modal__footer {
|
|
536
560
|
display: flex;
|
|
561
|
+
flex-shrink: 0;
|
|
537
562
|
align-items: center;
|
|
538
563
|
flex-wrap: wrap;
|
|
539
564
|
gap: var(--spacing-2);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export { OPEN_IN_APP_CARD_LABELS, OpenInAppCard } from '../chunk-
|
|
1
|
+
export { OPEN_IN_APP_CARD_LABELS, OpenInAppCard } from '../chunk-G4EHZHKM.js';
|
|
2
2
|
import '../chunk-KOJPDCGQ.js';
|
|
3
|
-
import '../chunk-3LI4TRUR.js';
|
|
4
3
|
import '../chunk-KBZO4B33.js';
|
|
4
|
+
import '../chunk-3LI4TRUR.js';
|
|
5
5
|
import '../chunk-ZWCK4N4L.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-4AUTALJA.js';
|
|
6
|
+
import '../chunk-FLW5U7YS.js';
|
|
7
|
+
import '../chunk-LBGKLYBY.js';
|
|
8
|
+
import '../chunk-U2IQNDDR.js';
|
|
10
9
|
import '../chunk-AV2DXAEL.js';
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-PQADV6P6.js';
|
|
10
|
+
import '../chunk-CYQBDZ6M.js';
|
|
13
11
|
import '../chunk-DGXZ635L.js';
|
|
14
12
|
import '../chunk-XSPCITPN.js';
|
|
13
|
+
import '../chunk-D2GT3CR4.js';
|
|
14
|
+
import '../chunk-PQADV6P6.js';
|
|
15
15
|
import '../chunk-UT6CW3C7.js';
|
|
16
16
|
import '../chunk-ODEQTPFM.js';
|
package/dist/OrgLabel/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { OrgLabel } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { OrgLabel } from '../chunk-5YXMKZUA.js';
|
|
2
|
+
import '../chunk-IRONPJB4.js';
|
|
3
|
+
import '../chunk-XZY6S3UC.js';
|
|
4
4
|
import '../chunk-ODEQTPFM.js';
|
package/dist/OrgNode/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-NKBKHOMU.js';
|
|
2
|
+
import '../chunk-5YXMKZUA.js';
|
|
3
|
+
import '../chunk-IRONPJB4.js';
|
|
4
|
+
import '../chunk-XZY6S3UC.js';
|
|
5
5
|
import '../chunk-ODEQTPFM.js';
|
package/dist/OrgTable/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-DWQYV5AV.js';
|
|
2
|
+
import '../chunk-ZDWAIVWL.js';
|
|
3
3
|
import '../chunk-MY374UUD.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-5YXMKZUA.js';
|
|
5
5
|
import '../chunk-LM3ISVJA.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-IRONPJB4.js';
|
|
7
|
+
import '../chunk-XZY6S3UC.js';
|
|
8
8
|
import '../chunk-CVKANYHD.js';
|
|
9
9
|
import '../chunk-OMV5W53A.js';
|
|
10
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-TUEM2XIW.js';
|
|
11
|
+
import '../chunk-4ITETIGZ.js';
|
|
11
12
|
import '../chunk-UAUP6XGK.js';
|
|
12
|
-
import '../chunk-NUZHC6MM.js';
|
|
13
13
|
import '../chunk-UT6CW3C7.js';
|
|
14
14
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Outline/index.js
CHANGED
package/dist/PeekRail/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from '../chunk-CDNZTCP2.js';
|
|
2
2
|
import '../chunk-PIYJNCN7.js';
|
|
3
3
|
import '../chunk-DGXZ635L.js';
|
|
4
|
-
import '../chunk-2YTOOH3A.js';
|
|
5
4
|
import '../chunk-XSPCITPN.js';
|
|
5
|
+
import '../chunk-2YTOOH3A.js';
|
|
6
6
|
import '../chunk-UAUP6XGK.js';
|
|
7
7
|
import '../chunk-UT6CW3C7.js';
|
|
8
8
|
import '../chunk-ODEQTPFM.js';
|
package/dist/PeopleRail/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-
|
|
1
|
+
export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-QGEDXYLB.js';
|
|
2
2
|
import '../chunk-CENOOTAV.js';
|
|
3
3
|
import '../chunk-Z7JYG5TF.js';
|
|
4
4
|
import '../chunk-AYKXMIOR.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-PQADV6P6.js';
|
|
5
|
+
import '../chunk-IRONPJB4.js';
|
|
6
|
+
import '../chunk-XZY6S3UC.js';
|
|
8
7
|
import '../chunk-DGXZ635L.js';
|
|
9
8
|
import '../chunk-XSPCITPN.js';
|
|
10
9
|
import '../chunk-UAUP6XGK.js';
|
|
10
|
+
import '../chunk-PQADV6P6.js';
|
|
11
11
|
import '../chunk-UT6CW3C7.js';
|
|
12
12
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type LiHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* How tall a row stands. `default` is a list's row: a 32px face beside the
|
|
4
|
+
* name over a second line. `compact` is one line, the name with its detail
|
|
5
|
+
* after it, for a list that opens under a caret and has to stay short.
|
|
6
|
+
*/
|
|
7
|
+
export type PersonRowDensity = 'default' | 'compact';
|
|
8
|
+
/**
|
|
9
|
+
* What the row ends with. `toggle` is the mark of a row that adds and takes
|
|
10
|
+
* away: a plus, or a check on the accent once it is chosen. `none` ends the
|
|
11
|
+
* row on its words, for a row that opens something.
|
|
12
|
+
*/
|
|
13
|
+
export type PersonRowMark = 'toggle' | 'none';
|
|
14
|
+
/** What every row draws, whichever element it is. */
|
|
15
|
+
export interface PersonRowLook {
|
|
16
|
+
/** The face: an `Avatar` with its status, or a glyph for something that is not a person (a room, `@channel`). */
|
|
17
|
+
avatar: ReactNode;
|
|
18
|
+
/** The person's or agent's name. */
|
|
19
|
+
name: ReactNode;
|
|
20
|
+
/** A small label after the name, such as an "Agent" `Tag`. */
|
|
21
|
+
tag?: ReactNode;
|
|
22
|
+
/** What they are doing now, or their title. One line, cut with an ellipsis. */
|
|
23
|
+
detail?: ReactNode;
|
|
24
|
+
/** Words at the row's end: "Working", "Not in this room". */
|
|
25
|
+
meta?: ReactNode;
|
|
26
|
+
mark?: PersonRowMark | undefined;
|
|
27
|
+
density?: PersonRowDensity | undefined;
|
|
28
|
+
}
|
|
29
|
+
export interface PersonRowButtonProps extends PersonRowLook, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'name' | 'onSelect'> {
|
|
30
|
+
as?: 'button' | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the row is chosen, for a row that toggles: it is announced as a
|
|
33
|
+
* pressed button and filled with the accent's soft tint. Left out, the row
|
|
34
|
+
* is a plain button that opens something.
|
|
35
|
+
*/
|
|
36
|
+
selected?: boolean | undefined;
|
|
37
|
+
/** Pressing the row. */
|
|
38
|
+
onSelect?: (() => void) | undefined;
|
|
39
|
+
}
|
|
40
|
+
export interface PersonRowOptionProps extends PersonRowLook, Omit<LiHTMLAttributes<HTMLLIElement>, 'children'> {
|
|
41
|
+
/**
|
|
42
|
+
* An option in a listbox a text field owns (`useListbox`): focus stays in
|
|
43
|
+
* the field, which points at the row with `aria-activedescendant`, so the
|
|
44
|
+
* row is never a tab stop of its own. Spread the hook's `optionHandlers`
|
|
45
|
+
* and give it the hook's `optionId`.
|
|
46
|
+
*/
|
|
47
|
+
as: 'option';
|
|
48
|
+
/** `aria-selected`: the highlighted row of a single-choice list, or a chosen row of a multiselectable one. */
|
|
49
|
+
selected?: boolean | undefined;
|
|
50
|
+
/** The row the arrows are on, drawn with a bar on its start edge. */
|
|
51
|
+
highlighted?: boolean | undefined;
|
|
52
|
+
/** An option that cannot be taken. It stays in the list and says so. */
|
|
53
|
+
disabled?: boolean | undefined;
|
|
54
|
+
}
|
|
55
|
+
export type PersonRowProps = PersonRowButtonProps | PersonRowOptionProps;
|
|
56
|
+
/**
|
|
57
|
+
* A person or an agent as one row of a list: their face with its status,
|
|
58
|
+
* their name (and an Agent label), what they are doing now or their title,
|
|
59
|
+
* and, for a row that adds and takes away, a plus that turns into a check.
|
|
60
|
+
*
|
|
61
|
+
* ONE DESIGN FOR EVERY LIST OF PEOPLE. A picker's suggestions, a member list,
|
|
62
|
+
* a search's people and a composer's @ list are the same row, so a face, a
|
|
63
|
+
* name and a second line sit in the same places in all of them. It is a
|
|
64
|
+
* button by default, and an option (`as="option"`) inside a listbox a text
|
|
65
|
+
* field owns, where focus stays in the field.
|
|
66
|
+
*
|
|
67
|
+
* A ROW THAT TOGGLES SAYS SO: `selected` makes it a pressed button, and its
|
|
68
|
+
* mark changes from a plus to a check, so the state is never colour alone.
|
|
69
|
+
*/
|
|
70
|
+
export declare const PersonRow: import("react").ForwardRefExoticComponent<PersonRowProps & import("react").RefAttributes<HTMLButtonElement | HTMLLIElement>>;
|