@vector-im/compound-web 8.3.6 → 9.0.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/dist/_virtual/_rolldown/runtime.cjs +33 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/components/ActivityMarker/Pill.cjs +15 -10
- package/dist/components/ActivityMarker/Pill.cjs.map +1 -1
- package/dist/components/ActivityMarker/Pill.js +13 -10
- package/dist/components/ActivityMarker/Pill.js.map +1 -1
- package/dist/components/ActivityMarker/Pill.module.cjs +5 -0
- package/dist/components/ActivityMarker/Pill.module.cjs.map +1 -0
- package/dist/components/ActivityMarker/Pill.module.js +5 -0
- package/dist/components/ActivityMarker/Pill.module.js.map +1 -0
- package/dist/components/ActivityMarker/Unread.cjs +14 -6
- package/dist/components/ActivityMarker/Unread.cjs.map +1 -1
- package/dist/components/ActivityMarker/Unread.js +12 -6
- package/dist/components/ActivityMarker/Unread.js.map +1 -1
- package/dist/components/ActivityMarker/Unread.module.cjs +5 -0
- package/dist/components/ActivityMarker/Unread.module.cjs.map +1 -0
- package/dist/components/ActivityMarker/Unread.module.js +5 -0
- package/dist/components/ActivityMarker/Unread.module.js.map +1 -0
- package/dist/components/ActivityMarker/UnreadCounter.cjs +18 -8
- package/dist/components/ActivityMarker/UnreadCounter.cjs.map +1 -1
- package/dist/components/ActivityMarker/UnreadCounter.js +16 -8
- package/dist/components/ActivityMarker/UnreadCounter.js.map +1 -1
- package/dist/components/ActivityMarker/UnreadCounter.module.cjs +6 -0
- package/dist/components/ActivityMarker/UnreadCounter.module.cjs.map +1 -0
- package/dist/components/ActivityMarker/UnreadCounter.module.js +6 -0
- package/dist/components/ActivityMarker/UnreadCounter.module.js.map +1 -0
- package/dist/components/Alert/Alert.cjs +72 -61
- package/dist/components/Alert/Alert.cjs.map +1 -1
- package/dist/components/Alert/Alert.js +60 -56
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Alert/Alert.module.cjs +18 -0
- package/dist/components/Alert/Alert.module.cjs.map +1 -0
- package/dist/components/Alert/Alert.module.js +18 -0
- package/dist/components/Alert/Alert.module.js.map +1 -0
- package/dist/components/Avatar/Avatar.cjs +48 -55
- package/dist/components/Avatar/Avatar.cjs.map +1 -1
- package/dist/components/Avatar/Avatar.js +44 -54
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/Avatar.module.cjs +11 -0
- package/dist/components/Avatar/Avatar.module.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.module.js +11 -0
- package/dist/components/Avatar/Avatar.module.js.map +1 -0
- package/dist/components/Avatar/AvatarStack.cjs +50 -27
- package/dist/components/Avatar/AvatarStack.cjs.map +1 -1
- package/dist/components/Avatar/AvatarStack.js +46 -26
- package/dist/components/Avatar/AvatarStack.js.map +1 -1
- package/dist/components/Avatar/avatar-clip.mask.cjs +6 -0
- package/dist/components/Avatar/avatar-clip.mask.cjs.map +1 -0
- package/dist/components/Avatar/avatar-clip.mask.js +6 -0
- package/dist/components/Avatar/avatar-clip.mask.js.map +1 -0
- package/dist/components/Avatar/useIdColorHash.cjs +13 -9
- package/dist/components/Avatar/useIdColorHash.cjs.map +1 -1
- package/dist/components/Avatar/useIdColorHash.js +14 -10
- package/dist/components/Avatar/useIdColorHash.js.map +1 -1
- package/dist/components/Badge/Badge.cjs +24 -24
- package/dist/components/Badge/Badge.cjs.map +1 -1
- package/dist/components/Badge/Badge.js +21 -24
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Badge/Badge.module.cjs +5 -0
- package/dist/components/Badge/Badge.module.cjs.map +1 -0
- package/dist/components/Badge/Badge.module.js +5 -0
- package/dist/components/Badge/Badge.module.js.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.cjs +56 -54
- package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.js +51 -53
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.module.cjs +9 -0
- package/dist/components/Breadcrumb/Breadcrumb.module.cjs.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.module.js +9 -0
- package/dist/components/Breadcrumb/Breadcrumb.module.js.map +1 -0
- package/dist/components/Button/Button.cjs +40 -52
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.js +36 -51
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/Button.module.cjs +13 -0
- package/dist/components/Button/Button.module.cjs.map +1 -0
- package/dist/components/Button/Button.module.js +13 -0
- package/dist/components/Button/Button.module.js.map +1 -0
- package/dist/components/Button/IconButton/IconButton.cjs +43 -52
- package/dist/components/Button/IconButton/IconButton.cjs.map +1 -1
- package/dist/components/Button/IconButton/IconButton.js +38 -50
- package/dist/components/Button/IconButton/IconButton.js.map +1 -1
- package/dist/components/Button/IconButton/IconButton.module.cjs +11 -0
- package/dist/components/Button/IconButton/IconButton.module.cjs.map +1 -0
- package/dist/components/Button/IconButton/IconButton.module.js +11 -0
- package/dist/components/Button/IconButton/IconButton.module.js.map +1 -0
- package/dist/components/Button/UnstyledButton.cjs +36 -45
- package/dist/components/Button/UnstyledButton.cjs.map +1 -1
- package/dist/components/Button/UnstyledButton.js +34 -45
- package/dist/components/Button/UnstyledButton.js.map +1 -1
- package/dist/components/ChatFilter/ChatFilter.cjs +23 -20
- package/dist/components/ChatFilter/ChatFilter.cjs.map +1 -1
- package/dist/components/ChatFilter/ChatFilter.js +21 -20
- package/dist/components/ChatFilter/ChatFilter.js.map +1 -1
- package/dist/components/ChatFilter/ChatFilter.module.cjs +6 -0
- package/dist/components/ChatFilter/ChatFilter.module.cjs.map +1 -0
- package/dist/components/ChatFilter/ChatFilter.module.js +6 -0
- package/dist/components/ChatFilter/ChatFilter.module.js.map +1 -0
- package/dist/components/Dropdown/Dropdown.cjs +231 -249
- package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
- package/dist/components/Dropdown/Dropdown.js +225 -249
- package/dist/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/components/Dropdown/Dropdown.module.cjs +13 -0
- package/dist/components/Dropdown/Dropdown.module.cjs.map +1 -0
- package/dist/components/Dropdown/Dropdown.module.js +13 -0
- package/dist/components/Dropdown/Dropdown.module.js.map +1 -0
- package/dist/components/Form/Controls/Action/Action.cjs +51 -31
- package/dist/components/Form/Controls/Action/Action.cjs.map +1 -1
- package/dist/components/Form/Controls/Action/Action.js +46 -30
- package/dist/components/Form/Controls/Action/Action.js.map +1 -1
- package/dist/components/Form/Controls/Action/Action.module.cjs +9 -0
- package/dist/components/Form/Controls/Action/Action.module.cjs.map +1 -0
- package/dist/components/Form/Controls/Action/Action.module.js +9 -0
- package/dist/components/Form/Controls/Action/Action.module.js.map +1 -0
- package/dist/components/Form/Controls/Checkbox/Checkbox.cjs +42 -20
- package/dist/components/Form/Controls/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/components/Form/Controls/Checkbox/Checkbox.js +36 -19
- package/dist/components/Form/Controls/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.cjs +9 -0
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.cjs.map +1 -0
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.js +9 -0
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.js.map +1 -0
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs +171 -203
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs.map +1 -1
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.js +166 -202
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.js.map +1 -1
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.cjs +8 -0
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.cjs.map +1 -0
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.js +8 -0
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.js.map +1 -0
- package/dist/components/Form/Controls/MFA/MFA.cjs +60 -65
- package/dist/components/Form/Controls/MFA/MFA.cjs.map +1 -1
- package/dist/components/Form/Controls/MFA/MFA.js +56 -65
- package/dist/components/Form/Controls/MFA/MFA.js.map +1 -1
- package/dist/components/Form/Controls/MFA/MFA.module.cjs +9 -0
- package/dist/components/Form/Controls/MFA/MFA.module.cjs.map +1 -0
- package/dist/components/Form/Controls/MFA/MFA.module.js +9 -0
- package/dist/components/Form/Controls/MFA/MFA.module.js.map +1 -0
- package/dist/components/Form/Controls/Password/Password.cjs +52 -37
- package/dist/components/Form/Controls/Password/Password.cjs.map +1 -1
- package/dist/components/Form/Controls/Password/Password.js +45 -35
- package/dist/components/Form/Controls/Password/Password.js.map +1 -1
- package/dist/components/Form/Controls/Radio/Radio.cjs +33 -16
- package/dist/components/Form/Controls/Radio/Radio.cjs.map +1 -1
- package/dist/components/Form/Controls/Radio/Radio.js +28 -15
- package/dist/components/Form/Controls/Radio/Radio.js.map +1 -1
- package/dist/components/Form/Controls/Radio/Radio.module.cjs +9 -0
- package/dist/components/Form/Controls/Radio/Radio.module.cjs.map +1 -0
- package/dist/components/Form/Controls/Radio/Radio.module.js +9 -0
- package/dist/components/Form/Controls/Radio/Radio.module.js.map +1 -0
- package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs +47 -29
- package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs.map +1 -1
- package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js +43 -28
- package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js.map +1 -1
- package/dist/components/Form/Controls/Text/Text.cjs +34 -18
- package/dist/components/Form/Controls/Text/Text.cjs.map +1 -1
- package/dist/components/Form/Controls/Text/Text.js +30 -18
- package/dist/components/Form/Controls/Text/Text.js.map +1 -1
- package/dist/components/Form/Controls/Text/Text.module.cjs +8 -0
- package/dist/components/Form/Controls/Text/Text.module.cjs.map +1 -0
- package/dist/components/Form/Controls/Text/Text.module.js +8 -0
- package/dist/components/Form/Controls/Text/Text.module.js.map +1 -0
- package/dist/components/Form/Controls/Toggle/Toggle.cjs +37 -25
- package/dist/components/Form/Controls/Toggle/Toggle.cjs.map +1 -1
- package/dist/components/Form/Controls/Toggle/Toggle.js +32 -24
- package/dist/components/Form/Controls/Toggle/Toggle.js.map +1 -1
- package/dist/components/Form/Controls/Toggle/Toggle.module.cjs +9 -0
- package/dist/components/Form/Controls/Toggle/Toggle.module.cjs.map +1 -0
- package/dist/components/Form/Controls/Toggle/Toggle.module.js +9 -0
- package/dist/components/Form/Controls/Toggle/Toggle.module.js.map +1 -0
- package/dist/components/Form/Field.cjs +25 -14
- package/dist/components/Form/Field.cjs.map +1 -1
- package/dist/components/Form/Field.js +22 -14
- package/dist/components/Form/Field.js.map +1 -1
- package/dist/components/Form/InlineField.cjs +27 -17
- package/dist/components/Form/InlineField.cjs.map +1 -1
- package/dist/components/Form/InlineField.js +23 -16
- package/dist/components/Form/InlineField.js.map +1 -1
- package/dist/components/Form/Label.cjs +24 -11
- package/dist/components/Form/Label.cjs.map +1 -1
- package/dist/components/Form/Label.js +21 -11
- package/dist/components/Form/Label.js.map +1 -1
- package/dist/components/Form/Message.cjs +61 -40
- package/dist/components/Form/Message.cjs.map +1 -1
- package/dist/components/Form/Message.js +54 -41
- package/dist/components/Form/Message.js.map +1 -1
- package/dist/components/Form/Root.cjs +25 -14
- package/dist/components/Form/Root.cjs.map +1 -1
- package/dist/components/Form/Root.js +22 -14
- package/dist/components/Form/Root.js.map +1 -1
- package/dist/components/Form/Submit.cjs +23 -12
- package/dist/components/Form/Submit.cjs.map +1 -1
- package/dist/components/Form/Submit.js +21 -12
- package/dist/components/Form/Submit.js.map +1 -1
- package/dist/components/Form/form.module.cjs +21 -0
- package/dist/components/Form/form.module.cjs.map +1 -0
- package/dist/components/Form/form.module.js +21 -0
- package/dist/components/Form/form.module.js.map +1 -0
- package/dist/components/Form/index.cjs +55 -51
- package/dist/components/Form/index.cjs.map +1 -1
- package/dist/components/Form/index.js +44 -39
- package/dist/components/Form/index.js.map +1 -1
- package/dist/components/Glass/Glass.cjs +20 -10
- package/dist/components/Glass/Glass.cjs.map +1 -1
- package/dist/components/Glass/Glass.js +17 -10
- package/dist/components/Glass/Glass.js.map +1 -1
- package/dist/components/Glass/Glass.module.cjs +5 -0
- package/dist/components/Glass/Glass.module.cjs.map +1 -0
- package/dist/components/Glass/Glass.module.js +5 -0
- package/dist/components/Glass/Glass.module.js.map +1 -0
- package/dist/components/Icon/BigIcon/BigIcon.cjs +18 -25
- package/dist/components/Icon/BigIcon/BigIcon.cjs.map +1 -1
- package/dist/components/Icon/BigIcon/BigIcon.js +15 -25
- package/dist/components/Icon/BigIcon/BigIcon.js.map +1 -1
- package/dist/components/Icon/BigIcon/BigIcon.module.cjs +6 -0
- package/dist/components/Icon/BigIcon/BigIcon.module.cjs.map +1 -0
- package/dist/components/Icon/BigIcon/BigIcon.module.js +6 -0
- package/dist/components/Icon/BigIcon/BigIcon.module.js.map +1 -0
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs +22 -22
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs.map +1 -1
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.js +19 -22
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.js.map +1 -1
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.cjs +6 -0
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.cjs.map +1 -0
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.js +6 -0
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.js.map +1 -0
- package/dist/components/InlineSpinner/InlineSpinner.cjs +24 -21
- package/dist/components/InlineSpinner/InlineSpinner.cjs.map +1 -1
- package/dist/components/InlineSpinner/InlineSpinner.js +19 -20
- package/dist/components/InlineSpinner/InlineSpinner.js.map +1 -1
- package/dist/components/InlineSpinner/InlineSpinner.module.cjs +8 -0
- package/dist/components/InlineSpinner/InlineSpinner.module.cjs.map +1 -0
- package/dist/components/InlineSpinner/InlineSpinner.module.js +8 -0
- package/dist/components/InlineSpinner/InlineSpinner.module.js.map +1 -0
- package/dist/components/Link/Link.cjs +25 -23
- package/dist/components/Link/Link.cjs.map +1 -1
- package/dist/components/Link/Link.js +22 -23
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/Link/Link.module.cjs +5 -0
- package/dist/components/Link/Link.module.cjs.map +1 -0
- package/dist/components/Link/Link.module.js +5 -0
- package/dist/components/Link/Link.module.js.map +1 -0
- package/dist/components/Menu/CheckboxMenuItem.cjs +37 -39
- package/dist/components/Menu/CheckboxMenuItem.cjs.map +1 -1
- package/dist/components/Menu/CheckboxMenuItem.js +34 -38
- package/dist/components/Menu/CheckboxMenuItem.js.map +1 -1
- package/dist/components/Menu/ContextMenu.cjs +71 -62
- package/dist/components/Menu/ContextMenu.cjs.map +1 -1
- package/dist/components/Menu/ContextMenu.js +66 -60
- package/dist/components/Menu/ContextMenu.js.map +1 -1
- package/dist/components/Menu/DrawerMenu.cjs +27 -22
- package/dist/components/Menu/DrawerMenu.cjs.map +1 -1
- package/dist/components/Menu/DrawerMenu.js +23 -21
- package/dist/components/Menu/DrawerMenu.js.map +1 -1
- package/dist/components/Menu/DrawerMenu.module.cjs +9 -0
- package/dist/components/Menu/DrawerMenu.module.cjs.map +1 -0
- package/dist/components/Menu/DrawerMenu.module.js +9 -0
- package/dist/components/Menu/DrawerMenu.module.js.map +1 -0
- package/dist/components/Menu/FloatingMenu.cjs +31 -28
- package/dist/components/Menu/FloatingMenu.cjs.map +1 -1
- package/dist/components/Menu/FloatingMenu.js +27 -27
- package/dist/components/Menu/FloatingMenu.js.map +1 -1
- package/dist/components/Menu/FloatingMenu.module.cjs +14 -0
- package/dist/components/Menu/FloatingMenu.module.cjs.map +1 -0
- package/dist/components/Menu/FloatingMenu.module.js +14 -0
- package/dist/components/Menu/FloatingMenu.module.js.map +1 -0
- package/dist/components/Menu/Menu.cjs +68 -47
- package/dist/components/Menu/Menu.cjs.map +1 -1
- package/dist/components/Menu/Menu.js +63 -45
- package/dist/components/Menu/Menu.js.map +1 -1
- package/dist/components/Menu/MenuContext.cjs +10 -5
- package/dist/components/Menu/MenuContext.cjs.map +1 -1
- package/dist/components/Menu/MenuContext.js +10 -5
- package/dist/components/Menu/MenuContext.js.map +1 -1
- package/dist/components/Menu/MenuItem.cjs +83 -95
- package/dist/components/Menu/MenuItem.cjs.map +1 -1
- package/dist/components/Menu/MenuItem.js +77 -93
- package/dist/components/Menu/MenuItem.js.map +1 -1
- package/dist/components/Menu/MenuItem.module.cjs +20 -0
- package/dist/components/Menu/MenuItem.module.cjs.map +1 -0
- package/dist/components/Menu/MenuItem.module.js +20 -0
- package/dist/components/Menu/MenuItem.module.js.map +1 -0
- package/dist/components/Menu/MenuTitle.cjs +21 -14
- package/dist/components/Menu/MenuTitle.cjs.map +1 -1
- package/dist/components/Menu/MenuTitle.js +17 -13
- package/dist/components/Menu/MenuTitle.js.map +1 -1
- package/dist/components/Menu/MenuTitle.module.cjs +6 -0
- package/dist/components/Menu/MenuTitle.module.cjs.map +1 -0
- package/dist/components/Menu/MenuTitle.module.js +6 -0
- package/dist/components/Menu/MenuTitle.module.js.map +1 -0
- package/dist/components/Menu/RadioMenuItem.cjs +35 -37
- package/dist/components/Menu/RadioMenuItem.cjs.map +1 -1
- package/dist/components/Menu/RadioMenuItem.js +32 -36
- package/dist/components/Menu/RadioMenuItem.js.map +1 -1
- package/dist/components/Menu/ToggleMenuItem.cjs +39 -41
- package/dist/components/Menu/ToggleMenuItem.cjs.map +1 -1
- package/dist/components/Menu/ToggleMenuItem.js +36 -40
- package/dist/components/Menu/ToggleMenuItem.js.map +1 -1
- package/dist/components/Nav/Nav.module.cjs +11 -0
- package/dist/components/Nav/Nav.module.cjs.map +1 -0
- package/dist/components/Nav/Nav.module.js +11 -0
- package/dist/components/Nav/Nav.module.js.map +1 -0
- package/dist/components/Nav/NavBar.cjs +47 -28
- package/dist/components/Nav/NavBar.cjs.map +1 -1
- package/dist/components/Nav/NavBar.js +44 -28
- package/dist/components/Nav/NavBar.js.map +1 -1
- package/dist/components/Nav/NavItem.cjs +70 -72
- package/dist/components/Nav/NavItem.cjs.map +1 -1
- package/dist/components/Nav/NavItem.js +68 -72
- package/dist/components/Nav/NavItem.js.map +1 -1
- package/dist/components/Progress/Progress.cjs +43 -56
- package/dist/components/Progress/Progress.cjs.map +1 -1
- package/dist/components/Progress/Progress.js +40 -56
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/Progress/Progress.module.cjs +11 -0
- package/dist/components/Progress/Progress.module.cjs.map +1 -0
- package/dist/components/Progress/Progress.module.js +11 -0
- package/dist/components/Progress/Progress.module.js.map +1 -0
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs +108 -115
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs.map +1 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.js +105 -114
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.js.map +1 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.cjs +11 -0
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.cjs.map +1 -0
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.js +11 -0
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.js.map +1 -0
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.cjs +16 -12
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.cjs.map +1 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.js +15 -13
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.js.map +1 -1
- package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.cjs +52 -62
- package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.cjs.map +1 -1
- package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.js +52 -63
- package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.js.map +1 -1
- package/dist/components/Search/Search.cjs +43 -36
- package/dist/components/Search/Search.cjs.map +1 -1
- package/dist/components/Search/Search.js +37 -34
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/Search/Search.module.cjs +9 -0
- package/dist/components/Search/Search.module.cjs.map +1 -0
- package/dist/components/Search/Search.module.js +9 -0
- package/dist/components/Search/Search.module.js.map +1 -0
- package/dist/components/Separator/Separator.cjs +34 -57
- package/dist/components/Separator/Separator.cjs.map +1 -1
- package/dist/components/Separator/Separator.js +29 -39
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/Separator/Separator.module.cjs +5 -0
- package/dist/components/Separator/Separator.module.cjs.map +1 -0
- package/dist/components/Separator/Separator.module.js +5 -0
- package/dist/components/Separator/Separator.module.js.map +1 -0
- package/dist/components/Toast/Toast.cjs +19 -10
- package/dist/components/Toast/Toast.cjs.map +1 -1
- package/dist/components/Toast/Toast.js +15 -9
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/Toast.module.cjs +6 -0
- package/dist/components/Toast/Toast.module.cjs.map +1 -0
- package/dist/components/Toast/Toast.module.js +6 -0
- package/dist/components/Toast/Toast.module.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.cjs +103 -118
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +99 -117
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.cjs +10 -0
- package/dist/components/Tooltip/Tooltip.module.cjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.module.js +10 -0
- package/dist/components/Tooltip/Tooltip.module.js.map +1 -0
- package/dist/components/Tooltip/TooltipContext.cjs +16 -10
- package/dist/components/Tooltip/TooltipContext.cjs.map +1 -1
- package/dist/components/Tooltip/TooltipContext.js +15 -11
- package/dist/components/Tooltip/TooltipContext.js.map +1 -1
- package/dist/components/Tooltip/TooltipProvider.cjs +22 -7
- package/dist/components/Tooltip/TooltipProvider.cjs.map +1 -1
- package/dist/components/Tooltip/TooltipProvider.js +19 -7
- package/dist/components/Tooltip/TooltipProvider.js.map +1 -1
- package/dist/components/Tooltip/useTooltip.cjs +112 -139
- package/dist/components/Tooltip/useTooltip.cjs.map +1 -1
- package/dist/components/Tooltip/useTooltip.js +111 -139
- package/dist/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/components/Typography/Body.cjs +17 -10
- package/dist/components/Typography/Body.cjs.map +1 -1
- package/dist/components/Typography/Body.js +15 -10
- package/dist/components/Typography/Body.js.map +1 -1
- package/dist/components/Typography/Heading.cjs +92 -20
- package/dist/components/Typography/Heading.cjs.map +1 -1
- package/dist/components/Typography/Heading.js +89 -25
- package/dist/components/Typography/Heading.js.map +1 -1
- package/dist/components/Typography/Text.cjs +20 -7
- package/dist/components/Typography/Text.cjs.map +1 -1
- package/dist/components/Typography/Text.js +18 -7
- package/dist/components/Typography/Text.js.map +1 -1
- package/dist/components/Typography/Typography.cjs +17 -28
- package/dist/components/Typography/Typography.cjs.map +1 -1
- package/dist/components/Typography/Typography.js +14 -28
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/Typography/Typography.module.cjs +30 -0
- package/dist/components/Typography/Typography.module.cjs.map +1 -0
- package/dist/components/Typography/Typography.module.js +30 -0
- package/dist/components/Typography/Typography.module.js.map +1 -0
- package/dist/components/VisualList/VisualList.cjs +20 -12
- package/dist/components/VisualList/VisualList.cjs.map +1 -1
- package/dist/components/VisualList/VisualList.js +17 -12
- package/dist/components/VisualList/VisualList.js.map +1 -1
- package/dist/components/VisualList/VisualList.module.cjs +6 -0
- package/dist/components/VisualList/VisualList.module.cjs.map +1 -0
- package/dist/components/VisualList/VisualList.module.js +6 -0
- package/dist/components/VisualList/VisualList.module.js.map +1 -0
- package/dist/components/VisualList/VisualListItem.cjs +28 -36
- package/dist/components/VisualList/VisualListItem.cjs.map +1 -1
- package/dist/components/VisualList/VisualListItem.js +25 -36
- package/dist/components/VisualList/VisualListItem.js.map +1 -1
- package/dist/components/VisualList/VisualListItem.module.cjs +11 -0
- package/dist/components/VisualList/VisualListItem.module.cjs.map +1 -0
- package/dist/components/VisualList/VisualListItem.module.js +11 -0
- package/dist/components/VisualList/VisualListItem.module.js.map +1 -0
- package/dist/index.cjs +147 -139
- package/dist/index.js +32 -112
- package/dist/src/components/ActivityMarker/Pill.d.ts.map +1 -0
- package/dist/src/components/ActivityMarker/Unread.d.ts.map +1 -0
- package/dist/src/components/ActivityMarker/UnreadCounter.d.ts.map +1 -0
- package/dist/src/components/ActivityMarker/index.d.ts.map +1 -0
- package/dist/src/components/Alert/Alert.d.ts.map +1 -0
- package/dist/src/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/src/components/Avatar/AvatarStack.d.ts.map +1 -0
- package/dist/src/components/Avatar/useIdColorHash.d.ts.map +1 -0
- package/dist/src/components/Badge/Badge.d.ts.map +1 -0
- package/dist/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/src/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/{components → src/components}/Button/Button.d.ts +2 -1
- package/dist/src/components/Button/Button.d.ts.map +1 -0
- package/dist/src/components/Button/IconButton/IconButton.d.ts.map +1 -0
- package/dist/src/components/Button/UnstyledButton.d.ts.map +1 -0
- package/dist/src/components/Button/index.d.ts.map +1 -0
- package/dist/src/components/ChatFilter/ChatFilter.d.ts.map +1 -0
- package/dist/src/components/ChatFilter/index.d.ts.map +1 -0
- package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/src/components/Dropdown/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Action/Action.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Action/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Checkbox/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/EditInPlace/EditInPlace.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/EditInPlace/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/MFA/MFA.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/MFA/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Password/Password.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Password/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Radio/Radio.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Radio/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/SettingsToggle/SettingsToggle.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/SettingsToggle/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Text/Text.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Text/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Toggle/Toggle.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/Toggle/index.d.ts.map +1 -0
- package/dist/src/components/Form/Controls/index.d.ts.map +1 -0
- package/dist/src/components/Form/Field.d.ts.map +1 -0
- package/dist/src/components/Form/InlineField.d.ts.map +1 -0
- package/dist/src/components/Form/Label.d.ts.map +1 -0
- package/dist/src/components/Form/Message.d.ts.map +1 -0
- package/dist/src/components/Form/Root.d.ts.map +1 -0
- package/dist/src/components/Form/Submit.d.ts.map +1 -0
- package/dist/src/components/Form/index.d.ts.map +1 -0
- package/dist/src/components/Glass/Glass.d.ts.map +1 -0
- package/dist/src/components/Icon/BigIcon/BigIcon.d.ts +21 -0
- package/dist/src/components/Icon/BigIcon/BigIcon.d.ts.map +1 -0
- package/dist/src/components/Icon/BigIcon/index.d.ts.map +1 -0
- package/dist/src/components/Icon/IndicatorIcon/IndicatorIcon.d.ts.map +1 -0
- package/dist/src/components/InlineSpinner/InlineSpinner.d.ts.map +1 -0
- package/dist/src/components/InlineSpinner/index.d.ts.map +1 -0
- package/dist/{components → src/components}/Link/Link.d.ts +5 -4
- package/dist/src/components/Link/Link.d.ts.map +1 -0
- package/dist/src/components/Menu/CheckboxMenuItem.d.ts.map +1 -0
- package/dist/src/components/Menu/ContextMenu.d.ts.map +1 -0
- package/dist/src/components/Menu/DrawerMenu.d.ts.map +1 -0
- package/dist/src/components/Menu/FloatingMenu.d.ts.map +1 -0
- package/dist/{components → src/components}/Menu/Menu.d.ts +4 -0
- package/dist/src/components/Menu/Menu.d.ts.map +1 -0
- package/dist/src/components/Menu/MenuContext.d.ts.map +1 -0
- package/dist/src/components/Menu/MenuItem.d.ts.map +1 -0
- package/dist/src/components/Menu/MenuTitle.d.ts.map +1 -0
- package/dist/src/components/Menu/RadioMenuItem.d.ts.map +1 -0
- package/dist/src/components/Menu/ToggleMenuItem.d.ts.map +1 -0
- package/dist/src/components/Nav/NavBar.d.ts.map +1 -0
- package/dist/src/components/Nav/NavItem.d.ts.map +1 -0
- package/dist/src/components/Nav/index.d.ts.map +1 -0
- package/dist/src/components/PageHeader/PageHeader.d.ts +19 -0
- package/dist/src/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/{components → src/components}/Progress/Progress.d.ts +2 -1
- package/dist/src/components/Progress/Progress.d.ts.map +1 -0
- package/dist/src/components/ReleaseAnnouncement/ReleaseAnnouncement.d.ts.map +1 -0
- package/dist/src/components/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts.map +1 -0
- package/dist/src/components/ReleaseAnnouncement/index.d.ts.map +1 -0
- package/dist/src/components/ReleaseAnnouncement/useReleaseAnnouncement.d.ts.map +1 -0
- package/dist/src/components/Search/Search.d.ts.map +1 -0
- package/dist/src/components/Separator/Separator.d.ts.map +1 -0
- package/dist/src/components/Toast/Toast.d.ts.map +1 -0
- package/dist/src/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/src/components/Tooltip/TooltipContext.d.ts.map +1 -0
- package/dist/src/components/Tooltip/TooltipProvider.d.ts.map +1 -0
- package/dist/src/components/Tooltip/useTooltip.d.ts.map +1 -0
- package/dist/src/components/Typography/Body.d.ts.map +1 -0
- package/dist/{components → src/components}/Typography/Heading.d.ts +2 -1
- package/dist/src/components/Typography/Heading.d.ts.map +1 -0
- package/dist/{components → src/components}/Typography/Text.d.ts +2 -1
- package/dist/src/components/Typography/Text.d.ts.map +1 -0
- package/dist/{components → src/components}/Typography/Typography.d.ts +2 -1
- package/dist/src/components/Typography/Typography.d.ts.map +1 -0
- package/dist/src/components/VisualList/VisualList.d.ts.map +1 -0
- package/dist/src/components/VisualList/VisualListItem.d.ts.map +1 -0
- package/dist/src/components/VisualList/index.d.ts.map +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/setupTests.d.ts.map +1 -0
- package/dist/src/utils/__ComponentTemplate__/__ComponentTemplate__.d.ts.map +1 -0
- package/dist/src/utils/platform.d.ts.map +1 -0
- package/dist/src/utils/size.d.ts +5 -0
- package/dist/src/utils/size.d.ts.map +1 -0
- package/dist/src/utils/string.d.ts.map +1 -0
- package/dist/style.css +1630 -1622
- package/dist/utils/platform.cjs +12 -11
- package/dist/utils/platform.cjs.map +1 -1
- package/dist/utils/platform.js +13 -12
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/string.cjs +19 -19
- package/dist/utils/string.cjs.map +1 -1
- package/dist/utils/string.js +20 -20
- package/dist/utils/string.js.map +1 -1
- package/package.json +16 -16
- package/src/components/Avatar/Avatar.module.css +1 -1
- package/src/components/Avatar/avatar-clip.mask.svg +2 -6
- package/src/components/Breadcrumb/Breadcrumb.module.css +1 -1
- package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
- package/src/components/Button/Button.tsx +2 -1
- package/src/components/Dropdown/Dropdown.module.css +1 -1
- package/src/components/Form/Controls/EditInPlace/EditInPlace.tsx +1 -1
- package/src/components/Icon/BigIcon/BigIcon.module.css +11 -8
- package/src/components/Icon/BigIcon/BigIcon.tsx +11 -18
- package/src/components/Link/Link.module.css +5 -1
- package/src/components/Link/Link.tsx +6 -5
- package/src/components/Menu/Menu.tsx +11 -1
- package/src/components/Nav/Nav.module.css +1 -1
- package/src/components/PageHeader/PageHeader.module.css +41 -0
- package/src/components/PageHeader/PageHeader.tsx +67 -0
- package/src/components/Progress/Progress.tsx +2 -1
- package/src/components/Separator/Separator.module.css +2 -2
- package/src/components/Typography/Heading.tsx +2 -1
- package/src/components/Typography/Text.tsx +2 -1
- package/src/components/Typography/Typography.tsx +2 -1
- package/src/components/VisualList/VisualList.module.css +1 -1
- package/src/utils/size.ts +11 -0
- package/dist/components/ActivityMarker/Pill.d.ts.map +0 -1
- package/dist/components/ActivityMarker/Pill.module.css.cjs +0 -9
- package/dist/components/ActivityMarker/Pill.module.css.cjs.map +0 -1
- package/dist/components/ActivityMarker/Pill.module.css.js +0 -9
- package/dist/components/ActivityMarker/Pill.module.css.js.map +0 -1
- package/dist/components/ActivityMarker/Unread.d.ts.map +0 -1
- package/dist/components/ActivityMarker/Unread.module.css.cjs +0 -9
- package/dist/components/ActivityMarker/Unread.module.css.cjs.map +0 -1
- package/dist/components/ActivityMarker/Unread.module.css.js +0 -9
- package/dist/components/ActivityMarker/Unread.module.css.js.map +0 -1
- package/dist/components/ActivityMarker/UnreadCounter.d.ts.map +0 -1
- package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs +0 -7
- package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs.map +0 -1
- package/dist/components/ActivityMarker/UnreadCounter.module.css.js +0 -7
- package/dist/components/ActivityMarker/UnreadCounter.module.css.js.map +0 -1
- package/dist/components/ActivityMarker/index.d.ts.map +0 -1
- package/dist/components/Alert/Alert.d.ts.map +0 -1
- package/dist/components/Alert/Alert.module.css.cjs +0 -19
- package/dist/components/Alert/Alert.module.css.cjs.map +0 -1
- package/dist/components/Alert/Alert.module.css.js +0 -19
- package/dist/components/Alert/Alert.module.css.js.map +0 -1
- package/dist/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.module.css.cjs +0 -15
- package/dist/components/Avatar/Avatar.module.css.cjs.map +0 -1
- package/dist/components/Avatar/Avatar.module.css.js +0 -15
- package/dist/components/Avatar/Avatar.module.css.js.map +0 -1
- package/dist/components/Avatar/AvatarStack.d.ts.map +0 -1
- package/dist/components/Avatar/avatar-clip.mask.svg.cjs +0 -5
- package/dist/components/Avatar/avatar-clip.mask.svg.cjs.map +0 -1
- package/dist/components/Avatar/avatar-clip.mask.svg.js +0 -5
- package/dist/components/Avatar/avatar-clip.mask.svg.js.map +0 -1
- package/dist/components/Avatar/useIdColorHash.d.ts.map +0 -1
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/Badge.module.css.cjs +0 -9
- package/dist/components/Badge/Badge.module.css.cjs.map +0 -1
- package/dist/components/Badge/Badge.module.css.js +0 -9
- package/dist/components/Badge/Badge.module.css.js.map +0 -1
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +0 -1
- package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +0 -13
- package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +0 -1
- package/dist/components/Breadcrumb/Breadcrumb.module.css.js +0 -13
- package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +0 -1
- package/dist/components/Breadcrumb/index.d.ts.map +0 -1
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.module.css.cjs +0 -14
- package/dist/components/Button/Button.module.css.cjs.map +0 -1
- package/dist/components/Button/Button.module.css.js +0 -14
- package/dist/components/Button/Button.module.css.js.map +0 -1
- package/dist/components/Button/IconButton/IconButton.d.ts.map +0 -1
- package/dist/components/Button/IconButton/IconButton.module.css.cjs +0 -11
- package/dist/components/Button/IconButton/IconButton.module.css.cjs.map +0 -1
- package/dist/components/Button/IconButton/IconButton.module.css.js +0 -11
- package/dist/components/Button/IconButton/IconButton.module.css.js.map +0 -1
- package/dist/components/Button/UnstyledButton.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/ChatFilter/ChatFilter.d.ts.map +0 -1
- package/dist/components/ChatFilter/ChatFilter.module.css.cjs +0 -7
- package/dist/components/ChatFilter/ChatFilter.module.css.cjs.map +0 -1
- package/dist/components/ChatFilter/ChatFilter.module.css.js +0 -7
- package/dist/components/ChatFilter/ChatFilter.module.css.js.map +0 -1
- package/dist/components/ChatFilter/index.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.module.css.cjs +0 -27
- package/dist/components/Dropdown/Dropdown.module.css.cjs.map +0 -1
- package/dist/components/Dropdown/Dropdown.module.css.js +0 -27
- package/dist/components/Dropdown/Dropdown.module.css.js.map +0 -1
- package/dist/components/Dropdown/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/Action/Action.d.ts.map +0 -1
- package/dist/components/Form/Controls/Action/Action.module.css.cjs +0 -15
- package/dist/components/Form/Controls/Action/Action.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/Action/Action.module.css.js +0 -15
- package/dist/components/Form/Controls/Action/Action.module.css.js.map +0 -1
- package/dist/components/Form/Controls/Action/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs +0 -15
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js +0 -15
- package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js.map +0 -1
- package/dist/components/Form/Controls/Checkbox/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.d.ts.map +0 -1
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs +0 -10
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js +0 -10
- package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js.map +0 -1
- package/dist/components/Form/Controls/EditInPlace/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/MFA/MFA.d.ts.map +0 -1
- package/dist/components/Form/Controls/MFA/MFA.module.css.cjs +0 -15
- package/dist/components/Form/Controls/MFA/MFA.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/MFA/MFA.module.css.js +0 -15
- package/dist/components/Form/Controls/MFA/MFA.module.css.js.map +0 -1
- package/dist/components/Form/Controls/MFA/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/Password/Password.d.ts.map +0 -1
- package/dist/components/Form/Controls/Password/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Form/Controls/Radio/Radio.module.css.cjs +0 -15
- package/dist/components/Form/Controls/Radio/Radio.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/Radio/Radio.module.css.js +0 -15
- package/dist/components/Form/Controls/Radio/Radio.module.css.js.map +0 -1
- package/dist/components/Form/Controls/Radio/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.d.ts.map +0 -1
- package/dist/components/Form/Controls/SettingsToggle/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/Text/Text.d.ts.map +0 -1
- package/dist/components/Form/Controls/Text/Text.module.css.cjs +0 -10
- package/dist/components/Form/Controls/Text/Text.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/Text/Text.module.css.js +0 -10
- package/dist/components/Form/Controls/Text/Text.module.css.js.map +0 -1
- package/dist/components/Form/Controls/Text/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/Toggle/Toggle.d.ts.map +0 -1
- package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs +0 -15
- package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs.map +0 -1
- package/dist/components/Form/Controls/Toggle/Toggle.module.css.js +0 -15
- package/dist/components/Form/Controls/Toggle/Toggle.module.css.js.map +0 -1
- package/dist/components/Form/Controls/Toggle/index.d.ts.map +0 -1
- package/dist/components/Form/Controls/index.d.ts.map +0 -1
- package/dist/components/Form/Field.d.ts.map +0 -1
- package/dist/components/Form/InlineField.d.ts.map +0 -1
- package/dist/components/Form/Label.d.ts.map +0 -1
- package/dist/components/Form/Message.d.ts.map +0 -1
- package/dist/components/Form/Root.d.ts.map +0 -1
- package/dist/components/Form/Submit.d.ts.map +0 -1
- package/dist/components/Form/form.module.css.cjs +0 -24
- package/dist/components/Form/form.module.css.cjs.map +0 -1
- package/dist/components/Form/form.module.css.js +0 -24
- package/dist/components/Form/form.module.css.js.map +0 -1
- package/dist/components/Form/index.d.ts.map +0 -1
- package/dist/components/Glass/Glass.d.ts.map +0 -1
- package/dist/components/Glass/Glass.module.css.cjs +0 -9
- package/dist/components/Glass/Glass.module.css.cjs.map +0 -1
- package/dist/components/Glass/Glass.module.css.js +0 -9
- package/dist/components/Glass/Glass.module.css.js.map +0 -1
- package/dist/components/Icon/BigIcon/BigIcon.d.ts +0 -25
- package/dist/components/Icon/BigIcon/BigIcon.d.ts.map +0 -1
- package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs +0 -15
- package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs.map +0 -1
- package/dist/components/Icon/BigIcon/BigIcon.module.css.js +0 -15
- package/dist/components/Icon/BigIcon/BigIcon.module.css.js.map +0 -1
- package/dist/components/Icon/BigIcon/index.d.ts.map +0 -1
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.d.ts.map +0 -1
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs +0 -7
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs.map +0 -1
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js +0 -7
- package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js.map +0 -1
- package/dist/components/InlineSpinner/InlineSpinner.d.ts.map +0 -1
- package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs +0 -9
- package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs.map +0 -1
- package/dist/components/InlineSpinner/InlineSpinner.module.css.js +0 -9
- package/dist/components/InlineSpinner/InlineSpinner.module.css.js.map +0 -1
- package/dist/components/InlineSpinner/index.d.ts.map +0 -1
- package/dist/components/Link/Link.d.ts.map +0 -1
- package/dist/components/Link/Link.module.css.cjs +0 -9
- package/dist/components/Link/Link.module.css.cjs.map +0 -1
- package/dist/components/Link/Link.module.css.js +0 -9
- package/dist/components/Link/Link.module.css.js.map +0 -1
- package/dist/components/Menu/CheckboxMenuItem.d.ts.map +0 -1
- package/dist/components/Menu/ContextMenu.d.ts.map +0 -1
- package/dist/components/Menu/DrawerMenu.d.ts.map +0 -1
- package/dist/components/Menu/DrawerMenu.module.css.cjs +0 -15
- package/dist/components/Menu/DrawerMenu.module.css.cjs.map +0 -1
- package/dist/components/Menu/DrawerMenu.module.css.js +0 -15
- package/dist/components/Menu/DrawerMenu.module.css.js.map +0 -1
- package/dist/components/Menu/FloatingMenu.d.ts.map +0 -1
- package/dist/components/Menu/FloatingMenu.module.css.cjs +0 -12
- package/dist/components/Menu/FloatingMenu.module.css.cjs.map +0 -1
- package/dist/components/Menu/FloatingMenu.module.css.js +0 -12
- package/dist/components/Menu/FloatingMenu.module.css.js.map +0 -1
- package/dist/components/Menu/Menu.d.ts.map +0 -1
- package/dist/components/Menu/MenuContext.d.ts.map +0 -1
- package/dist/components/Menu/MenuItem.d.ts.map +0 -1
- package/dist/components/Menu/MenuItem.module.css.cjs +0 -24
- package/dist/components/Menu/MenuItem.module.css.cjs.map +0 -1
- package/dist/components/Menu/MenuItem.module.css.js +0 -24
- package/dist/components/Menu/MenuItem.module.css.js.map +0 -1
- package/dist/components/Menu/MenuTitle.d.ts.map +0 -1
- package/dist/components/Menu/MenuTitle.module.css.cjs +0 -7
- package/dist/components/Menu/MenuTitle.module.css.cjs.map +0 -1
- package/dist/components/Menu/MenuTitle.module.css.js +0 -7
- package/dist/components/Menu/MenuTitle.module.css.js.map +0 -1
- package/dist/components/Menu/RadioMenuItem.d.ts.map +0 -1
- package/dist/components/Menu/ToggleMenuItem.d.ts.map +0 -1
- package/dist/components/Nav/Nav.module.css.cjs +0 -10
- package/dist/components/Nav/Nav.module.css.cjs.map +0 -1
- package/dist/components/Nav/Nav.module.css.js +0 -10
- package/dist/components/Nav/Nav.module.css.js.map +0 -1
- package/dist/components/Nav/NavBar.d.ts.map +0 -1
- package/dist/components/Nav/NavItem.d.ts.map +0 -1
- package/dist/components/Nav/index.d.ts.map +0 -1
- package/dist/components/Progress/Progress.d.ts.map +0 -1
- package/dist/components/Progress/Progress.module.css.cjs +0 -10
- package/dist/components/Progress/Progress.module.css.cjs.map +0 -1
- package/dist/components/Progress/Progress.module.css.js +0 -10
- package/dist/components/Progress/Progress.module.css.js.map +0 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.d.ts.map +0 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs +0 -21
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs.map +0 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js +0 -21
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js.map +0 -1
- package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts.map +0 -1
- package/dist/components/ReleaseAnnouncement/index.d.ts.map +0 -1
- package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.d.ts.map +0 -1
- package/dist/components/Search/Search.d.ts.map +0 -1
- package/dist/components/Search/Search.module.css.cjs +0 -15
- package/dist/components/Search/Search.module.css.cjs.map +0 -1
- package/dist/components/Search/Search.module.css.js +0 -15
- package/dist/components/Search/Search.module.css.js.map +0 -1
- package/dist/components/Separator/Separator.d.ts.map +0 -1
- package/dist/components/Separator/Separator.module.css.cjs +0 -9
- package/dist/components/Separator/Separator.module.css.cjs.map +0 -1
- package/dist/components/Separator/Separator.module.css.js +0 -9
- package/dist/components/Separator/Separator.module.css.js.map +0 -1
- package/dist/components/Toast/Toast.d.ts.map +0 -1
- package/dist/components/Toast/Toast.module.css.cjs +0 -7
- package/dist/components/Toast/Toast.module.css.cjs.map +0 -1
- package/dist/components/Toast/Toast.module.css.js +0 -7
- package/dist/components/Toast/Toast.module.css.js.map +0 -1
- package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/components/Tooltip/Tooltip.module.css.cjs +0 -18
- package/dist/components/Tooltip/Tooltip.module.css.cjs.map +0 -1
- package/dist/components/Tooltip/Tooltip.module.css.js +0 -18
- package/dist/components/Tooltip/Tooltip.module.css.js.map +0 -1
- package/dist/components/Tooltip/TooltipContext.d.ts.map +0 -1
- package/dist/components/Tooltip/TooltipProvider.d.ts.map +0 -1
- package/dist/components/Tooltip/useTooltip.d.ts.map +0 -1
- package/dist/components/Typography/Body.d.ts.map +0 -1
- package/dist/components/Typography/Heading.d.ts.map +0 -1
- package/dist/components/Typography/Text.d.ts.map +0 -1
- package/dist/components/Typography/Typography.d.ts.map +0 -1
- package/dist/components/Typography/Typography.module.css.cjs +0 -30
- package/dist/components/Typography/Typography.module.css.cjs.map +0 -1
- package/dist/components/Typography/Typography.module.css.js +0 -30
- package/dist/components/Typography/Typography.module.css.js.map +0 -1
- package/dist/components/VisualList/VisualList.d.ts.map +0 -1
- package/dist/components/VisualList/VisualList.module.css.cjs +0 -7
- package/dist/components/VisualList/VisualList.module.css.cjs.map +0 -1
- package/dist/components/VisualList/VisualList.module.css.js +0 -7
- package/dist/components/VisualList/VisualList.module.css.js.map +0 -1
- package/dist/components/VisualList/VisualListItem.d.ts.map +0 -1
- package/dist/components/VisualList/VisualListItem.module.css.cjs +0 -10
- package/dist/components/VisualList/VisualListItem.module.css.cjs.map +0 -1
- package/dist/components/VisualList/VisualListItem.module.css.js +0 -10
- package/dist/components/VisualList/VisualListItem.module.css.js.map +0 -1
- package/dist/components/VisualList/index.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/setupTests.d.ts.map +0 -1
- package/dist/utils/__ComponentTemplate__/__ComponentTemplate__.d.ts.map +0 -1
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/string.d.ts.map +0 -1
- /package/dist/{components → src/components}/ActivityMarker/Pill.d.ts +0 -0
- /package/dist/{components → src/components}/ActivityMarker/Unread.d.ts +0 -0
- /package/dist/{components → src/components}/ActivityMarker/UnreadCounter.d.ts +0 -0
- /package/dist/{components → src/components}/ActivityMarker/index.d.ts +0 -0
- /package/dist/{components → src/components}/Alert/Alert.d.ts +0 -0
- /package/dist/{components → src/components}/Avatar/Avatar.d.ts +0 -0
- /package/dist/{components → src/components}/Avatar/AvatarStack.d.ts +0 -0
- /package/dist/{components → src/components}/Avatar/useIdColorHash.d.ts +0 -0
- /package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
- /package/dist/{components → src/components}/Breadcrumb/Breadcrumb.d.ts +0 -0
- /package/dist/{components → src/components}/Breadcrumb/index.d.ts +0 -0
- /package/dist/{components → src/components}/Button/IconButton/IconButton.d.ts +0 -0
- /package/dist/{components → src/components}/Button/UnstyledButton.d.ts +0 -0
- /package/dist/{components → src/components}/Button/index.d.ts +0 -0
- /package/dist/{components → src/components}/ChatFilter/ChatFilter.d.ts +0 -0
- /package/dist/{components → src/components}/ChatFilter/index.d.ts +0 -0
- /package/dist/{components → src/components}/Dropdown/Dropdown.d.ts +0 -0
- /package/dist/{components → src/components}/Dropdown/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Action/Action.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Action/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Checkbox/Checkbox.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Checkbox/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/EditInPlace/EditInPlace.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/EditInPlace/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/MFA/MFA.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/MFA/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Password/Password.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Password/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Radio/Radio.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Radio/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/SettingsToggle/SettingsToggle.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/SettingsToggle/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Text/Text.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Text/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Toggle/Toggle.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/Toggle/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Controls/index.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Field.d.ts +0 -0
- /package/dist/{components → src/components}/Form/InlineField.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Label.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Message.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Root.d.ts +0 -0
- /package/dist/{components → src/components}/Form/Submit.d.ts +0 -0
- /package/dist/{components → src/components}/Form/index.d.ts +0 -0
- /package/dist/{components → src/components}/Glass/Glass.d.ts +0 -0
- /package/dist/{components → src/components}/Icon/BigIcon/index.d.ts +0 -0
- /package/dist/{components → src/components}/Icon/IndicatorIcon/IndicatorIcon.d.ts +0 -0
- /package/dist/{components → src/components}/InlineSpinner/InlineSpinner.d.ts +0 -0
- /package/dist/{components → src/components}/InlineSpinner/index.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/CheckboxMenuItem.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/ContextMenu.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/DrawerMenu.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/FloatingMenu.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/MenuContext.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/MenuItem.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/MenuTitle.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/RadioMenuItem.d.ts +0 -0
- /package/dist/{components → src/components}/Menu/ToggleMenuItem.d.ts +0 -0
- /package/dist/{components → src/components}/Nav/NavBar.d.ts +0 -0
- /package/dist/{components → src/components}/Nav/NavItem.d.ts +0 -0
- /package/dist/{components → src/components}/Nav/index.d.ts +0 -0
- /package/dist/{components → src/components}/ReleaseAnnouncement/ReleaseAnnouncement.d.ts +0 -0
- /package/dist/{components → src/components}/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts +0 -0
- /package/dist/{components → src/components}/ReleaseAnnouncement/index.d.ts +0 -0
- /package/dist/{components → src/components}/ReleaseAnnouncement/useReleaseAnnouncement.d.ts +0 -0
- /package/dist/{components → src/components}/Search/Search.d.ts +0 -0
- /package/dist/{components → src/components}/Separator/Separator.d.ts +0 -0
- /package/dist/{components → src/components}/Toast/Toast.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/Tooltip.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/TooltipContext.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/TooltipProvider.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/useTooltip.d.ts +0 -0
- /package/dist/{components → src/components}/Typography/Body.d.ts +0 -0
- /package/dist/{components → src/components}/VisualList/VisualList.d.ts +0 -0
- /package/dist/{components → src/components}/VisualList/VisualListItem.d.ts +0 -0
- /package/dist/{components → src/components}/VisualList/index.d.ts +0 -0
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
- /package/dist/{setupTests.d.ts → src/setupTests.d.ts} +0 -0
- /package/dist/{utils → src/utils}/__ComponentTemplate__/__ComponentTemplate__.d.ts +0 -0
- /package/dist/{utils → src/utils}/platform.d.ts +0 -0
- /package/dist/{utils → src/utils}/string.d.ts +0 -0
|
@@ -1,255 +1,231 @@
|
|
|
1
|
-
import
|
|
2
|
-
import ChevronDown from "@vector-im/compound-design-tokens/assets/web/icons/chevron-down";
|
|
3
|
-
import CheckIcon from "@vector-im/compound-design-tokens/assets/web/icons/check";
|
|
4
|
-
import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error-solid";
|
|
5
|
-
import { forwardRef, useState, useMemo, useCallback, useRef, useEffect, memo } from "react";
|
|
1
|
+
import Dropdown_module_default from "./Dropdown.module.js";
|
|
6
2
|
import classNames from "classnames";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}) {
|
|
131
|
-
const ref = useRef(null);
|
|
132
|
-
useEffect(() => {
|
|
133
|
-
if (isSelected && isDisplayed) {
|
|
134
|
-
ref.current?.focus();
|
|
135
|
-
}
|
|
136
|
-
}, [isSelected, isDisplayed]);
|
|
137
|
-
return /* @__PURE__ */ jsxs(
|
|
138
|
-
"li",
|
|
139
|
-
{
|
|
140
|
-
tabIndex: 0,
|
|
141
|
-
role: "option",
|
|
142
|
-
ref,
|
|
143
|
-
"aria-selected": isSelected,
|
|
144
|
-
...props,
|
|
145
|
-
children: [
|
|
146
|
-
children,
|
|
147
|
-
" ",
|
|
148
|
-
isSelected && /* @__PURE__ */ jsx(CheckIcon, { width: "20", height: "20" })
|
|
149
|
-
]
|
|
150
|
-
}
|
|
151
|
-
);
|
|
3
|
+
import { forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error-solid";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useId as useId$1 } from "@floating-ui/react";
|
|
7
|
+
import Check from "@vector-im/compound-design-tokens/assets/web/icons/check";
|
|
8
|
+
import ChevronDown from "@vector-im/compound-design-tokens/assets/web/icons/chevron-down";
|
|
9
|
+
//#region src/components/Dropdown/Dropdown.tsx
|
|
10
|
+
/**
|
|
11
|
+
* The dropdown content.
|
|
12
|
+
*/
|
|
13
|
+
var Dropdown = forwardRef(function Dropdown({ className, label, placeholder, helpLabel, onValueChange, error, value: controlledValue, defaultValue, values, ...props }, ref) {
|
|
14
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
15
|
+
const value = controlledValue ?? uncontrolledValue;
|
|
16
|
+
const text = useMemo(() => value === void 0 ? placeholder : values.find(([v]) => v === value)?.[1] ?? placeholder, [
|
|
17
|
+
value,
|
|
18
|
+
values,
|
|
19
|
+
placeholder
|
|
20
|
+
]);
|
|
21
|
+
const setValue = useCallback((value) => {
|
|
22
|
+
setUncontrolledValue(value);
|
|
23
|
+
onValueChange?.(value);
|
|
24
|
+
}, [setUncontrolledValue, onValueChange]);
|
|
25
|
+
const [open, setOpen, dropdownRef] = useOpen();
|
|
26
|
+
const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(open, setOpen, setValue);
|
|
27
|
+
const buttonRef = useRef(null);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (value !== void 0) buttonRef.current?.focus();
|
|
30
|
+
}, [value]);
|
|
31
|
+
const hasPlaceholder = text === placeholder;
|
|
32
|
+
const buttonClasses = classNames({ [Dropdown_module_default.placeholder]: hasPlaceholder });
|
|
33
|
+
const borderClasses = classNames(Dropdown_module_default.border, { [Dropdown_module_default.open]: open });
|
|
34
|
+
const contentClasses = classNames(Dropdown_module_default.content, { [Dropdown_module_default.open]: open });
|
|
35
|
+
/**
|
|
36
|
+
* Ids for accessibility.
|
|
37
|
+
*/
|
|
38
|
+
const labelId = useId$1();
|
|
39
|
+
const contentId = useId$1();
|
|
40
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
41
|
+
ref: dropdownRef,
|
|
42
|
+
className: classNames(className, Dropdown_module_default.container),
|
|
43
|
+
"aria-invalid": Boolean(error),
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ jsx("label", {
|
|
46
|
+
id: labelId,
|
|
47
|
+
children: label
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ jsxs("button", {
|
|
50
|
+
className: buttonClasses,
|
|
51
|
+
role: "combobox",
|
|
52
|
+
"aria-haspopup": "listbox",
|
|
53
|
+
"aria-labelledby": labelId,
|
|
54
|
+
"aria-controls": contentId,
|
|
55
|
+
"aria-expanded": open,
|
|
56
|
+
ref: (element) => {
|
|
57
|
+
buttonRef.current = element;
|
|
58
|
+
if (typeof ref === "function") ref(element);
|
|
59
|
+
else if (ref) ref.current = element;
|
|
60
|
+
},
|
|
61
|
+
onClick: () => setOpen((_open) => !_open),
|
|
62
|
+
onKeyDown: onComboboxKeyDown,
|
|
63
|
+
...props,
|
|
64
|
+
children: [text, /* @__PURE__ */ jsx(ChevronDown, {
|
|
65
|
+
width: "24",
|
|
66
|
+
height: "24"
|
|
67
|
+
})]
|
|
68
|
+
}),
|
|
69
|
+
/* @__PURE__ */ jsx("div", { className: borderClasses }),
|
|
70
|
+
/* @__PURE__ */ jsx("div", {
|
|
71
|
+
className: contentClasses,
|
|
72
|
+
children: /* @__PURE__ */ jsx("ul", {
|
|
73
|
+
ref: listRef,
|
|
74
|
+
id: contentId,
|
|
75
|
+
role: "listbox",
|
|
76
|
+
className: Dropdown_module_default.content,
|
|
77
|
+
children: values.map(([v, text]) => /* @__PURE__ */ jsx(DropdownItem, {
|
|
78
|
+
isDisplayed: open,
|
|
79
|
+
isSelected: value === v,
|
|
80
|
+
onClick: () => {
|
|
81
|
+
setOpen(false);
|
|
82
|
+
setValue(v);
|
|
83
|
+
},
|
|
84
|
+
onKeyDown: (e) => onOptionKeyDown(e, v),
|
|
85
|
+
children: text
|
|
86
|
+
}, v))
|
|
87
|
+
})
|
|
88
|
+
}),
|
|
89
|
+
!error && helpLabel && /* @__PURE__ */ jsx("span", {
|
|
90
|
+
className: Dropdown_module_default.help,
|
|
91
|
+
children: helpLabel
|
|
92
|
+
}),
|
|
93
|
+
error && /* @__PURE__ */ jsxs("span", {
|
|
94
|
+
className: Dropdown_module_default.error,
|
|
95
|
+
children: [/* @__PURE__ */ jsx(ErrorIcon, {
|
|
96
|
+
width: "20",
|
|
97
|
+
height: "20"
|
|
98
|
+
}), error]
|
|
99
|
+
})
|
|
100
|
+
]
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
/**
|
|
104
|
+
* A dropdown item component.
|
|
105
|
+
*/
|
|
106
|
+
var DropdownItem = memo(function DropdownItem({ children, isSelected, isDisplayed, ...props }) {
|
|
107
|
+
const ref = useRef(null);
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
if (isSelected && isDisplayed) ref.current?.focus();
|
|
110
|
+
}, [isSelected, isDisplayed]);
|
|
111
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
112
|
+
tabIndex: 0,
|
|
113
|
+
role: "option",
|
|
114
|
+
ref,
|
|
115
|
+
"aria-selected": isSelected,
|
|
116
|
+
...props,
|
|
117
|
+
children: [
|
|
118
|
+
children,
|
|
119
|
+
" ",
|
|
120
|
+
isSelected && /* @__PURE__ */ jsx(Check, {
|
|
121
|
+
width: "20",
|
|
122
|
+
height: "20"
|
|
123
|
+
})
|
|
124
|
+
]
|
|
125
|
+
});
|
|
152
126
|
});
|
|
127
|
+
/**
|
|
128
|
+
* A hook to manage the open state of the dropdown.
|
|
129
|
+
*/
|
|
153
130
|
function useOpen() {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
131
|
+
const [open, setOpen] = useState(false);
|
|
132
|
+
const ref = useRef(null);
|
|
133
|
+
useEffect(() => {
|
|
134
|
+
const closeIfOutside = (e) => {
|
|
135
|
+
if (ref.current && !ref.current.contains(e.target)) setOpen(false);
|
|
136
|
+
};
|
|
137
|
+
document.addEventListener("click", closeIfOutside);
|
|
138
|
+
return () => document.removeEventListener("click", closeIfOutside);
|
|
139
|
+
}, [setOpen]);
|
|
140
|
+
return [
|
|
141
|
+
open,
|
|
142
|
+
setOpen,
|
|
143
|
+
ref
|
|
144
|
+
];
|
|
166
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* A hook to manage the keyboard shortcuts of the dropdown.
|
|
148
|
+
* @param open - the dropdown open state.
|
|
149
|
+
* @param setOpen - the dropdown open state setter.
|
|
150
|
+
* @param setValue - set the selected value and text
|
|
151
|
+
*/
|
|
167
152
|
function useKeyboardShortcut(open, setOpen, setValue) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
case "End": {
|
|
243
|
-
listRef.current?.lastElementChild?.focus();
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
[listRef, setValue, setOpen]
|
|
249
|
-
);
|
|
250
|
-
return { listRef, onComboboxKeyDown, onOptionKeyDown };
|
|
153
|
+
const listRef = useRef(null);
|
|
154
|
+
return {
|
|
155
|
+
listRef,
|
|
156
|
+
onComboboxKeyDown: useCallback(({ key }) => {
|
|
157
|
+
switch (key) {
|
|
158
|
+
case "Escape":
|
|
159
|
+
setOpen(false);
|
|
160
|
+
break;
|
|
161
|
+
case "ArrowDown":
|
|
162
|
+
setOpen(true);
|
|
163
|
+
if (open) (listRef.current?.firstElementChild)?.focus();
|
|
164
|
+
break;
|
|
165
|
+
case "ArrowUp":
|
|
166
|
+
setOpen(true);
|
|
167
|
+
break;
|
|
168
|
+
case "Home":
|
|
169
|
+
setOpen(true);
|
|
170
|
+
Promise.resolve().then(() => {
|
|
171
|
+
(listRef.current?.firstElementChild)?.focus();
|
|
172
|
+
});
|
|
173
|
+
break;
|
|
174
|
+
case "End":
|
|
175
|
+
setOpen(true);
|
|
176
|
+
Promise.resolve().then(() => {
|
|
177
|
+
(listRef.current?.lastElementChild)?.focus();
|
|
178
|
+
});
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
}, [
|
|
182
|
+
listRef,
|
|
183
|
+
open,
|
|
184
|
+
setOpen
|
|
185
|
+
]),
|
|
186
|
+
onOptionKeyDown: useCallback((evt, value) => {
|
|
187
|
+
const { key, altKey } = evt;
|
|
188
|
+
evt.stopPropagation();
|
|
189
|
+
evt.preventDefault();
|
|
190
|
+
switch (key) {
|
|
191
|
+
case "Enter":
|
|
192
|
+
case " ":
|
|
193
|
+
setValue(value);
|
|
194
|
+
setOpen(false);
|
|
195
|
+
break;
|
|
196
|
+
case "Tab":
|
|
197
|
+
case "Escape":
|
|
198
|
+
setOpen(false);
|
|
199
|
+
break;
|
|
200
|
+
case "ArrowDown": {
|
|
201
|
+
const currentFocus = document.activeElement;
|
|
202
|
+
if (listRef.current?.contains(currentFocus) && currentFocus) currentFocus.nextElementSibling?.focus();
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
case "ArrowUp":
|
|
206
|
+
if (altKey) {
|
|
207
|
+
setValue(value);
|
|
208
|
+
setOpen(false);
|
|
209
|
+
} else {
|
|
210
|
+
const currentFocus = document.activeElement;
|
|
211
|
+
if (listRef.current?.contains(currentFocus) && currentFocus) currentFocus.previousElementSibling?.focus();
|
|
212
|
+
}
|
|
213
|
+
break;
|
|
214
|
+
case "Home":
|
|
215
|
+
(listRef.current?.firstElementChild)?.focus();
|
|
216
|
+
break;
|
|
217
|
+
case "End":
|
|
218
|
+
(listRef.current?.lastElementChild)?.focus();
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}, [
|
|
222
|
+
listRef,
|
|
223
|
+
setValue,
|
|
224
|
+
setOpen
|
|
225
|
+
])
|
|
226
|
+
};
|
|
251
227
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
//# sourceMappingURL=Dropdown.js.map
|
|
228
|
+
//#endregion
|
|
229
|
+
export { Dropdown };
|
|
230
|
+
|
|
231
|
+
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["/*\nCopyright 2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport ChevronDown from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-down\";\nimport Check from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport Error from \"@vector-im/compound-design-tokens/assets/web/icons/error-solid\";\n\nimport React, {\n type Dispatch,\n forwardRef,\n type HTMLProps,\n memo,\n type RefObject,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n type KeyboardEvent,\n useMemo,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport styles from \"./Dropdown.module.css\";\nimport { useId } from \"@floating-ui/react\";\n\ntype DropdownProps = {\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The controlled value of the dropdown.\n */\n value?: string;\n /**\n * The default value of the dropdown, used when uncontrolled.\n */\n defaultValue?: string;\n /**\n * The values of the dropdown.\n * [value, text]\n */\n values: [string, string][];\n /**\n * The placeholder text.\n */\n placeholder: string;\n /**\n * The label to display at the top of the dropdown\n */\n label: string;\n /**\n * The help label to display at the bottom of the dropdown\n */\n helpLabel?: string;\n /**\n * Callback for when the value changes.\n * @param value\n */\n onValueChange?: (value: string) => void;\n /**\n * The error message to display.\n */\n error?: string;\n};\n\n/**\n * The dropdown content.\n */\nexport const Dropdown = forwardRef<HTMLButtonElement, DropdownProps>(\n function Dropdown(\n {\n className,\n label,\n placeholder,\n helpLabel,\n onValueChange,\n error,\n value: controlledValue,\n defaultValue,\n values,\n ...props\n },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n const text = useMemo(\n () =>\n value === undefined\n ? placeholder\n : (values.find(([v]) => v === value)?.[1] ?? placeholder),\n [value, values, placeholder],\n );\n\n const setValue = useCallback(\n (value: string) => {\n setUncontrolledValue(value);\n onValueChange?.(value);\n },\n [setUncontrolledValue, onValueChange],\n );\n\n const [open, setOpen, dropdownRef] = useOpen();\n const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(\n open,\n setOpen,\n setValue,\n );\n\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n useEffect(() => {\n // Focus the button when the value is set\n // Test if the value is undefined to avoid focusing on the first render\n if (value !== undefined) buttonRef.current?.focus();\n }, [value]);\n\n const hasPlaceholder = text === placeholder;\n const buttonClasses = classNames({\n [styles.placeholder]: hasPlaceholder,\n });\n const borderClasses = classNames(styles.border, {\n [styles.open]: open,\n });\n const contentClasses = classNames(styles.content, {\n [styles.open]: open,\n });\n\n /**\n * Ids for accessibility.\n */\n const labelId = useId();\n const contentId = useId();\n\n return (\n <div\n ref={dropdownRef}\n className={classNames(className, styles.container)}\n aria-invalid={Boolean(error)}\n >\n <label id={labelId}>{label}</label>\n <button\n className={buttonClasses}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-labelledby={labelId}\n aria-controls={contentId}\n aria-expanded={open}\n ref={(element) => {\n // Private ref to focus the button\n buttonRef.current = element;\n // Handle forwarded ref\n if (typeof ref === \"function\") {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n }}\n onClick={() => setOpen((_open) => !_open)}\n onKeyDown={onComboboxKeyDown}\n {...props}\n >\n {text}\n <ChevronDown width=\"24\" height=\"24\" />\n </button>\n <div className={borderClasses} />\n <div className={contentClasses}>\n <ul\n ref={listRef}\n id={contentId}\n role=\"listbox\"\n className={styles.content}\n >\n {values.map(([v, text]) => (\n <DropdownItem\n key={v}\n isDisplayed={open}\n isSelected={value === v}\n onClick={() => {\n setOpen(false);\n setValue(v);\n }}\n onKeyDown={(e) => onOptionKeyDown(e, v)}\n >\n {text}\n </DropdownItem>\n ))}\n </ul>\n </div>\n {!error && helpLabel && (\n <span className={styles.help}>{helpLabel}</span>\n )}\n {error && (\n <span className={styles.error}>\n <Error width=\"20\" height=\"20\" />\n {error}\n </span>\n )}\n </div>\n );\n },\n);\n\ntype DropdownItemProps = HTMLProps<HTMLLIElement> & {\n /**\n * Whether the dropdown item is selected.\n */\n isSelected: boolean;\n /**\n * Whether the dropdown item is displayed.\n */\n isDisplayed: boolean;\n /**\n * The text to display in the dropdown item.\n */\n children: string;\n};\n\n/**\n * A dropdown item component.\n */\nconst DropdownItem = memo(function DropdownItem({\n children,\n isSelected,\n isDisplayed,\n ...props\n}: DropdownItemProps) {\n const ref = useRef<HTMLLIElement>(null);\n\n // Focus the item if the dropdown is open and the item is already selected\n useEffect(() => {\n if (isSelected && isDisplayed) {\n ref.current?.focus();\n }\n }, [isSelected, isDisplayed]);\n\n return (\n <li\n tabIndex={0}\n role=\"option\"\n ref={ref}\n aria-selected={isSelected}\n {...props}\n >\n {children} {isSelected && <Check width=\"20\" height=\"20\" />}\n </li>\n );\n});\n\n/**\n * A hook to manage the open state of the dropdown.\n */\nfunction useOpen(): [\n boolean,\n Dispatch<SetStateAction<boolean>>,\n RefObject<HTMLDivElement | null>,\n] {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement | null>(null);\n\n // If the user clicks outside the dropdown, close it\n useEffect(() => {\n const closeIfOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"click\", closeIfOutside);\n return () => document.removeEventListener(\"click\", closeIfOutside);\n }, [setOpen]);\n\n return [open, setOpen, ref];\n}\n\n/**\n * A hook to manage the keyboard shortcuts of the dropdown.\n * @param open - the dropdown open state.\n * @param setOpen - the dropdown open state setter.\n * @param setValue - set the selected value and text\n */\nfunction useKeyboardShortcut(\n open: boolean,\n setOpen: Dispatch<SetStateAction<boolean>>,\n setValue: (value: string) => void,\n) {\n const listRef = useRef<HTMLUListElement>(null);\n const onComboboxKeyDown = useCallback(\n ({ key }: KeyboardEvent) => {\n switch (key) {\n // Enter and Space already managed because it's a button\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n setOpen(true);\n // If open, focus the first element\n if (open) {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n }\n break;\n case \"ArrowUp\":\n setOpen(true);\n break;\n case \"Home\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n });\n break;\n }\n case \"End\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n });\n break;\n }\n }\n },\n [listRef, open, setOpen],\n );\n\n const onOptionKeyDown = useCallback(\n (evt: KeyboardEvent, value: string) => {\n const { key, altKey } = evt;\n evt.stopPropagation();\n evt.preventDefault();\n\n switch (key) {\n case \"Enter\":\n case \" \": {\n setValue(value);\n setOpen(false);\n break;\n }\n case \"Tab\":\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\": {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.nextElementSibling as HTMLElement)?.focus();\n }\n break;\n }\n case \"ArrowUp\": {\n if (altKey) {\n setValue(value);\n setOpen(false);\n } else {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.previousElementSibling as HTMLElement)?.focus();\n }\n }\n break;\n }\n case \"Home\": {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n break;\n }\n case \"End\": {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n break;\n }\n }\n },\n [listRef, setValue, setOpen],\n );\n\n return { listRef, onComboboxKeyDown, onOptionKeyDown };\n}\n"],"names":["Dropdown","value","text","Error","DropdownItem","Check"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","names":[],"sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["/*\nCopyright 2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport ChevronDown from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-down\";\nimport Check from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport Error from \"@vector-im/compound-design-tokens/assets/web/icons/error-solid\";\n\nimport React, {\n type Dispatch,\n forwardRef,\n type HTMLProps,\n memo,\n type RefObject,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n type KeyboardEvent,\n useMemo,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport styles from \"./Dropdown.module.css\";\nimport { useId } from \"@floating-ui/react\";\n\ntype DropdownProps = {\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The controlled value of the dropdown.\n */\n value?: string;\n /**\n * The default value of the dropdown, used when uncontrolled.\n */\n defaultValue?: string;\n /**\n * The values of the dropdown.\n * [value, text]\n */\n values: [string, string][];\n /**\n * The placeholder text.\n */\n placeholder: string;\n /**\n * The label to display at the top of the dropdown\n */\n label: string;\n /**\n * The help label to display at the bottom of the dropdown\n */\n helpLabel?: string;\n /**\n * Callback for when the value changes.\n * @param value\n */\n onValueChange?: (value: string) => void;\n /**\n * The error message to display.\n */\n error?: string;\n};\n\n/**\n * The dropdown content.\n */\nexport const Dropdown = forwardRef<HTMLButtonElement, DropdownProps>(\n function Dropdown(\n {\n className,\n label,\n placeholder,\n helpLabel,\n onValueChange,\n error,\n value: controlledValue,\n defaultValue,\n values,\n ...props\n },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n const text = useMemo(\n () =>\n value === undefined\n ? placeholder\n : (values.find(([v]) => v === value)?.[1] ?? placeholder),\n [value, values, placeholder],\n );\n\n const setValue = useCallback(\n (value: string) => {\n setUncontrolledValue(value);\n onValueChange?.(value);\n },\n [setUncontrolledValue, onValueChange],\n );\n\n const [open, setOpen, dropdownRef] = useOpen();\n const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(\n open,\n setOpen,\n setValue,\n );\n\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n useEffect(() => {\n // Focus the button when the value is set\n // Test if the value is undefined to avoid focusing on the first render\n if (value !== undefined) buttonRef.current?.focus();\n }, [value]);\n\n const hasPlaceholder = text === placeholder;\n const buttonClasses = classNames({\n [styles.placeholder]: hasPlaceholder,\n });\n const borderClasses = classNames(styles.border, {\n [styles.open]: open,\n });\n const contentClasses = classNames(styles.content, {\n [styles.open]: open,\n });\n\n /**\n * Ids for accessibility.\n */\n const labelId = useId();\n const contentId = useId();\n\n return (\n <div\n ref={dropdownRef}\n className={classNames(className, styles.container)}\n aria-invalid={Boolean(error)}\n >\n <label id={labelId}>{label}</label>\n <button\n className={buttonClasses}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-labelledby={labelId}\n aria-controls={contentId}\n aria-expanded={open}\n ref={(element) => {\n // Private ref to focus the button\n buttonRef.current = element;\n // Handle forwarded ref\n if (typeof ref === \"function\") {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n }}\n onClick={() => setOpen((_open) => !_open)}\n onKeyDown={onComboboxKeyDown}\n {...props}\n >\n {text}\n <ChevronDown width=\"24\" height=\"24\" />\n </button>\n <div className={borderClasses} />\n <div className={contentClasses}>\n <ul\n ref={listRef}\n id={contentId}\n role=\"listbox\"\n className={styles.content}\n >\n {values.map(([v, text]) => (\n <DropdownItem\n key={v}\n isDisplayed={open}\n isSelected={value === v}\n onClick={() => {\n setOpen(false);\n setValue(v);\n }}\n onKeyDown={(e) => onOptionKeyDown(e, v)}\n >\n {text}\n </DropdownItem>\n ))}\n </ul>\n </div>\n {!error && helpLabel && (\n <span className={styles.help}>{helpLabel}</span>\n )}\n {error && (\n <span className={styles.error}>\n <Error width=\"20\" height=\"20\" />\n {error}\n </span>\n )}\n </div>\n );\n },\n);\n\ntype DropdownItemProps = HTMLProps<HTMLLIElement> & {\n /**\n * Whether the dropdown item is selected.\n */\n isSelected: boolean;\n /**\n * Whether the dropdown item is displayed.\n */\n isDisplayed: boolean;\n /**\n * The text to display in the dropdown item.\n */\n children: string;\n};\n\n/**\n * A dropdown item component.\n */\nconst DropdownItem = memo(function DropdownItem({\n children,\n isSelected,\n isDisplayed,\n ...props\n}: DropdownItemProps) {\n const ref = useRef<HTMLLIElement>(null);\n\n // Focus the item if the dropdown is open and the item is already selected\n useEffect(() => {\n if (isSelected && isDisplayed) {\n ref.current?.focus();\n }\n }, [isSelected, isDisplayed]);\n\n return (\n <li\n tabIndex={0}\n role=\"option\"\n ref={ref}\n aria-selected={isSelected}\n {...props}\n >\n {children} {isSelected && <Check width=\"20\" height=\"20\" />}\n </li>\n );\n});\n\n/**\n * A hook to manage the open state of the dropdown.\n */\nfunction useOpen(): [\n boolean,\n Dispatch<SetStateAction<boolean>>,\n RefObject<HTMLDivElement | null>,\n] {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement | null>(null);\n\n // If the user clicks outside the dropdown, close it\n useEffect(() => {\n const closeIfOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"click\", closeIfOutside);\n return () => document.removeEventListener(\"click\", closeIfOutside);\n }, [setOpen]);\n\n return [open, setOpen, ref];\n}\n\n/**\n * A hook to manage the keyboard shortcuts of the dropdown.\n * @param open - the dropdown open state.\n * @param setOpen - the dropdown open state setter.\n * @param setValue - set the selected value and text\n */\nfunction useKeyboardShortcut(\n open: boolean,\n setOpen: Dispatch<SetStateAction<boolean>>,\n setValue: (value: string) => void,\n) {\n const listRef = useRef<HTMLUListElement>(null);\n const onComboboxKeyDown = useCallback(\n ({ key }: KeyboardEvent) => {\n switch (key) {\n // Enter and Space already managed because it's a button\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n setOpen(true);\n // If open, focus the first element\n if (open) {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n }\n break;\n case \"ArrowUp\":\n setOpen(true);\n break;\n case \"Home\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n });\n break;\n }\n case \"End\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n });\n break;\n }\n }\n },\n [listRef, open, setOpen],\n );\n\n const onOptionKeyDown = useCallback(\n (evt: KeyboardEvent, value: string) => {\n const { key, altKey } = evt;\n evt.stopPropagation();\n evt.preventDefault();\n\n switch (key) {\n case \"Enter\":\n case \" \": {\n setValue(value);\n setOpen(false);\n break;\n }\n case \"Tab\":\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\": {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.nextElementSibling as HTMLElement)?.focus();\n }\n break;\n }\n case \"ArrowUp\": {\n if (altKey) {\n setValue(value);\n setOpen(false);\n } else {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.previousElementSibling as HTMLElement)?.focus();\n }\n }\n break;\n }\n case \"Home\": {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n break;\n }\n case \"End\": {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n break;\n }\n }\n },\n [listRef, setValue, setOpen],\n );\n\n return { listRef, onComboboxKeyDown, onOptionKeyDown };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var Dropdown_module_default = {
|
|
2
|
+
container: "_container_gn3xc_8",
|
|
3
|
+
placeholder: "_placeholder_gn3xc_47",
|
|
4
|
+
border: "_border_gn3xc_51",
|
|
5
|
+
content: "_content_gn3xc_60",
|
|
6
|
+
open: "_open_gn3xc_108",
|
|
7
|
+
help: "_help_gn3xc_112",
|
|
8
|
+
error: "_error_gn3xc_117"
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.default = Dropdown_module_default;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=Dropdown.module.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.module.cjs","names":[],"sources":["../../../src/components/Dropdown/Dropdown.module.css"],"sourcesContent":["/*\nCopyright 2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n.container {\n display: flex;\n flex-direction: column;\n\n label {\n font: var(--cpd-font-body-md-medium);\n margin-block-end: var(--cpd-space-1x);\n }\n\n button {\n inline-size: 100%;\n border: 1px solid var(--cpd-color-border-interactive-primary);\n background: var(--cpd-color-bg-canvas-default);\n border-radius: 0.5rem;\n padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x)\n var(--cpd-space-4x);\n box-sizing: border-box;\n color: var(--cpd-color-text-primary);\n font: var(--cpd-font-body-md-regular);\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n svg {\n transition: transform 0.1s linear;\n }\n }\n\n /**\n * When the dropdown is open, rotate the arrow icon\n */\n button[aria-expanded=\"true\"] {\n svg {\n transform: rotate(180deg);\n }\n }\n\n button.placeholder {\n color: var(--cpd-color-text-secondary);\n }\n\n .border {\n display: none;\n border-inline-start: 1px solid var(--cpd-color-border-interactive-secondary);\n border-inline-end: 1px solid var(--cpd-color-border-interactive-secondary);\n block-size: var(--cpd-space-1x);\n margin-block-start: calc(var(--cpd-space-1x) * -1);\n box-sizing: border-box;\n }\n\n .content {\n display: none;\n position: relative;\n\n ul {\n /**\n * To make the component going over the other elements\n */\n position: absolute;\n display: block;\n inline-size: 100%;\n background: var(--cpd-color-bg-canvas-default);\n border: 1px solid var(--cpd-color-border-interactive-secondary);\n border-block-start: 0;\n border-end-start-radius: var(--cpd-space-4x);\n border-end-end-radius: var(--cpd-space-4x);\n box-sizing: border-box;\n box-shadow: 0 4px 24px 0 rgb(27 29 34 / 10%);\n margin: 0;\n padding: 0;\n padding-block-end: var(--cpd-space-4x);\n cursor: pointer;\n\n li {\n list-style-type: \"\";\n font: var(--cpd-font-body-md-medium);\n padding: var(--cpd-space-3x) var(--cpd-space-4x);\n border-block-end: 1px solid var(--cpd-color-gray-300);\n color: var(--cpd-color-text-secondary);\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n @media (hover) {\n &:hover {\n background: var(--cpd-color-gray-200);\n }\n }\n\n &[aria-selected=\"true\"] {\n color: var(--cpd-color-text-primary);\n background: var(--cpd-color-gray-300);\n }\n }\n }\n }\n\n .open {\n display: block;\n }\n\n .help {\n font: var(--cpd-font-body-sm-regular);\n color: var(--cpd-color-text-secondary);\n }\n\n .error {\n font: var(--cpd-font-body-sm-medium);\n color: var(--cpd-color-text-critical-primary);\n display: flex;\n gap: var(--cpd-space-2x);\n }\n\n .error,\n .help {\n margin-block-start: var(--cpd-space-2x);\n }\n\n &[aria-invalid=\"true\"] {\n label {\n color: var(--cpd-color-text-critical-primary);\n }\n\n button {\n border-color: var(--cpd-color-text-critical-primary);\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var Dropdown_module_default = {
|
|
2
|
+
container: "_container_gn3xc_8",
|
|
3
|
+
placeholder: "_placeholder_gn3xc_47",
|
|
4
|
+
border: "_border_gn3xc_51",
|
|
5
|
+
content: "_content_gn3xc_60",
|
|
6
|
+
open: "_open_gn3xc_108",
|
|
7
|
+
help: "_help_gn3xc_112",
|
|
8
|
+
error: "_error_gn3xc_117"
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Dropdown_module_default as default };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=Dropdown.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.module.js","names":[],"sources":["../../../src/components/Dropdown/Dropdown.module.css"],"sourcesContent":["/*\nCopyright 2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n.container {\n display: flex;\n flex-direction: column;\n\n label {\n font: var(--cpd-font-body-md-medium);\n margin-block-end: var(--cpd-space-1x);\n }\n\n button {\n inline-size: 100%;\n border: 1px solid var(--cpd-color-border-interactive-primary);\n background: var(--cpd-color-bg-canvas-default);\n border-radius: 0.5rem;\n padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x)\n var(--cpd-space-4x);\n box-sizing: border-box;\n color: var(--cpd-color-text-primary);\n font: var(--cpd-font-body-md-regular);\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n svg {\n transition: transform 0.1s linear;\n }\n }\n\n /**\n * When the dropdown is open, rotate the arrow icon\n */\n button[aria-expanded=\"true\"] {\n svg {\n transform: rotate(180deg);\n }\n }\n\n button.placeholder {\n color: var(--cpd-color-text-secondary);\n }\n\n .border {\n display: none;\n border-inline-start: 1px solid var(--cpd-color-border-interactive-secondary);\n border-inline-end: 1px solid var(--cpd-color-border-interactive-secondary);\n block-size: var(--cpd-space-1x);\n margin-block-start: calc(var(--cpd-space-1x) * -1);\n box-sizing: border-box;\n }\n\n .content {\n display: none;\n position: relative;\n\n ul {\n /**\n * To make the component going over the other elements\n */\n position: absolute;\n display: block;\n inline-size: 100%;\n background: var(--cpd-color-bg-canvas-default);\n border: 1px solid var(--cpd-color-border-interactive-secondary);\n border-block-start: 0;\n border-end-start-radius: var(--cpd-space-4x);\n border-end-end-radius: var(--cpd-space-4x);\n box-sizing: border-box;\n box-shadow: 0 4px 24px 0 rgb(27 29 34 / 10%);\n margin: 0;\n padding: 0;\n padding-block-end: var(--cpd-space-4x);\n cursor: pointer;\n\n li {\n list-style-type: \"\";\n font: var(--cpd-font-body-md-medium);\n padding: var(--cpd-space-3x) var(--cpd-space-4x);\n border-block-end: 1px solid var(--cpd-color-gray-300);\n color: var(--cpd-color-text-secondary);\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n @media (hover) {\n &:hover {\n background: var(--cpd-color-gray-200);\n }\n }\n\n &[aria-selected=\"true\"] {\n color: var(--cpd-color-text-primary);\n background: var(--cpd-color-gray-300);\n }\n }\n }\n }\n\n .open {\n display: block;\n }\n\n .help {\n font: var(--cpd-font-body-sm-regular);\n color: var(--cpd-color-text-secondary);\n }\n\n .error {\n font: var(--cpd-font-body-sm-medium);\n color: var(--cpd-color-text-critical-primary);\n display: flex;\n gap: var(--cpd-space-2x);\n }\n\n .error,\n .help {\n margin-block-start: var(--cpd-space-2x);\n }\n\n &[aria-invalid=\"true\"] {\n label {\n color: var(--cpd-color-text-critical-primary);\n }\n\n button {\n border-color: var(--cpd-color-text-critical-primary);\n }\n }\n}\n"],"mappings":""}
|