@vector-im/compound-web 8.4.0 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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.d.ts +2 -1
- package/dist/components/Button/Button.d.ts.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 +48 -43
- 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.d.ts +8 -12
- package/dist/components/Icon/BigIcon/BigIcon.d.ts.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.d.ts +5 -4
- package/dist/components/Link/Link.d.ts.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 -56
- package/dist/components/Menu/Menu.cjs.map +1 -1
- package/dist/components/Menu/Menu.js +63 -54
- 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/PageHeader/PageHeader.d.ts +19 -0
- package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/components/Progress/Progress.cjs +43 -56
- package/dist/components/Progress/Progress.cjs.map +1 -1
- package/dist/components/Progress/Progress.d.ts +2 -1
- package/dist/components/Progress/Progress.d.ts.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.d.ts +2 -1
- package/dist/components/Typography/Heading.d.ts.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.d.ts +2 -1
- package/dist/components/Typography/Text.d.ts.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.d.ts +2 -1
- package/dist/components/Typography/Typography.d.ts.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 +36 -116
- package/dist/style.css +1609 -1601
- 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/size.d.ts +5 -0
- package/dist/utils/size.d.ts.map +1 -0
- 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 +15 -15
- 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/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/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/tsconfig.json +1 -0
- 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.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.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/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.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/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/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.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/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.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/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/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/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/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/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/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/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/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/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/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/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.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/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.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/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/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.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/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.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/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/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.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/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.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.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.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/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.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.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/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -1,208 +1,176 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
const require_runtime = require("../../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_Button = require("../../../Button/Button.cjs");
|
|
3
|
+
const require_Tooltip = require("../../../Tooltip/Tooltip.cjs");
|
|
4
|
+
const require_Text = require("../Text/Text.cjs");
|
|
5
|
+
const require_EditInPlace_module = require("./EditInPlace.module.cjs");
|
|
6
|
+
const require_Label = require("../../Label.cjs");
|
|
7
|
+
const require_Message = require("../../Message.cjs");
|
|
8
|
+
const require_Root = require("../../Root.cjs");
|
|
9
|
+
const require_Field = require("../../Field.cjs");
|
|
10
|
+
let react = require("react");
|
|
11
|
+
react = require_runtime.__toESM(react);
|
|
12
|
+
let _vector_im_compound_design_tokens_assets_web_icons_close = require("@vector-im/compound-design-tokens/assets/web/icons/close");
|
|
13
|
+
_vector_im_compound_design_tokens_assets_web_icons_close = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_close);
|
|
14
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
15
|
+
let _radix_ui_react_form = require("@radix-ui/react-form");
|
|
16
|
+
let _vector_im_compound_design_tokens_assets_web_icons_check = require("@vector-im/compound-design-tokens/assets/web/icons/check");
|
|
17
|
+
_vector_im_compound_design_tokens_assets_web_icons_check = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_check);
|
|
18
|
+
//#region src/components/Form/Controls/EditInPlace/EditInPlace.tsx
|
|
19
|
+
var State = /* @__PURE__ */ function(State) {
|
|
20
|
+
/** No changes on the input has been made */
|
|
21
|
+
State[State["Initial"] = 0] = "Initial";
|
|
22
|
+
/** The input has been changed */
|
|
23
|
+
State[State["Dirty"] = 1] = "Dirty";
|
|
24
|
+
/** The input is being saved */
|
|
25
|
+
State[State["Saving"] = 2] = "Saving";
|
|
26
|
+
/** The input has been saved */
|
|
27
|
+
State[State["Saved"] = 3] = "Saved";
|
|
28
|
+
return State;
|
|
29
|
+
}(State || {});
|
|
30
|
+
var Event = /* @__PURE__ */ function(Event) {
|
|
31
|
+
Event[Event["Touch"] = 0] = "Touch";
|
|
32
|
+
Event[Event["Save"] = 1] = "Save";
|
|
33
|
+
Event[Event["Saved"] = 2] = "Saved";
|
|
34
|
+
Event[Event["SaveError"] = 3] = "SaveError";
|
|
35
|
+
Event[Event["Cancel"] = 4] = "Cancel";
|
|
36
|
+
Event[Event["SavedTimeout"] = 5] = "SavedTimeout";
|
|
37
|
+
return Event;
|
|
38
|
+
}(Event || {});
|
|
16
39
|
function reducer(state, action) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
else return state;
|
|
31
|
-
case 5:
|
|
32
|
-
if (state === 3) return 0;
|
|
33
|
-
else return state;
|
|
34
|
-
}
|
|
35
|
-
assertNever(action);
|
|
40
|
+
switch (action) {
|
|
41
|
+
case Event.Touch: if (state === State.Initial || state === State.Saved) return State.Dirty;
|
|
42
|
+
else return state;
|
|
43
|
+
case Event.Save: return State.Saving;
|
|
44
|
+
case Event.Cancel: return State.Initial;
|
|
45
|
+
case Event.Saved: if (state === State.Saving) return State.Saved;
|
|
46
|
+
else return state;
|
|
47
|
+
case Event.SaveError: if (state === State.Saving) return State.Initial;
|
|
48
|
+
else return state;
|
|
49
|
+
case Event.SavedTimeout: if (state === State.Saved) return State.Initial;
|
|
50
|
+
else return state;
|
|
51
|
+
}
|
|
52
|
+
assertNever(action);
|
|
36
53
|
}
|
|
37
54
|
function assertNever(value) {
|
|
38
|
-
|
|
55
|
+
throw new Error(`Unreachable value: ${value}`);
|
|
39
56
|
}
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
ref: formRef,
|
|
158
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(Field.Field, { name: "input", serverInvalid, children: [
|
|
159
|
-
/* @__PURE__ */ jsxRuntime.jsx(Label.Label, { children: label }),
|
|
160
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: EditInPlace_module.default.controls, children: [
|
|
161
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
162
|
-
Text.TextControl,
|
|
163
|
-
{
|
|
164
|
-
ref,
|
|
165
|
-
...props,
|
|
166
|
-
onInput: onInputHandler,
|
|
167
|
-
disabled: disabled || state === 2
|
|
168
|
-
/* Saving */
|
|
169
|
-
}
|
|
170
|
-
),
|
|
171
|
-
shouldShowSaveButton && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: EditInPlace_module.default["button-group"], children: [
|
|
172
|
-
/* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { label: saveButtonLabel, children: /* @__PURE__ */ jsxRuntime.jsx(reactForm.Submit, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
173
|
-
Button.Button,
|
|
174
|
-
{
|
|
175
|
-
type: "submit",
|
|
176
|
-
kind: "primary",
|
|
177
|
-
size: "sm",
|
|
178
|
-
ref: saveButtonRef,
|
|
179
|
-
disabled: state !== 1,
|
|
180
|
-
iconOnly: true,
|
|
181
|
-
Icon: CheckIcon
|
|
182
|
-
}
|
|
183
|
-
) }) }),
|
|
184
|
-
/* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { label: cancelButtonLabel, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
185
|
-
Button.Button,
|
|
186
|
-
{
|
|
187
|
-
type: "reset",
|
|
188
|
-
kind: "secondary",
|
|
189
|
-
size: "sm",
|
|
190
|
-
ref: cancelButtonRef,
|
|
191
|
-
className: EditInPlace_module.default.button,
|
|
192
|
-
disabled: state === 2,
|
|
193
|
-
iconOnly: true,
|
|
194
|
-
Icon: CloseIcon
|
|
195
|
-
}
|
|
196
|
-
) })
|
|
197
|
-
] })
|
|
198
|
-
] }),
|
|
199
|
-
state === 2 ? /* @__PURE__ */ jsxRuntime.jsx(Message.LoadingMessage, { children: savingLabel }) : children,
|
|
200
|
-
savedLabel && state === 3 && /* @__PURE__ */ jsxRuntime.jsx(Message.SuccessMessage, { children: savedLabel }),
|
|
201
|
-
helpLabel && (state === 0 || state === 1) && /* @__PURE__ */ jsxRuntime.jsx(reactForm.ValidityState, { children: (validity) => (validity === void 0 || validity.valid) && !serverInvalid && /* @__PURE__ */ jsxRuntime.jsx(Message.HelpMessage, { children: helpLabel }) })
|
|
202
|
-
] })
|
|
203
|
-
}
|
|
204
|
-
);
|
|
205
|
-
}
|
|
206
|
-
);
|
|
57
|
+
/**
|
|
58
|
+
* A text box with save/cancel buttons that appear when the field is active.
|
|
59
|
+
* Since thios control has its own 'save' button, it should *not* appear as part
|
|
60
|
+
* of a larger form: it exists as its own form that submits separately.
|
|
61
|
+
*/
|
|
62
|
+
var EditInPlace = (0, react.forwardRef)(function EditInPlace({ className, label, onSave, onCancel, onInput, onClearServerErrors, serverInvalid, saveButtonLabel, cancelButtonLabel, savedLabel, savingLabel, helpLabel, disabled, children, ...props }, ref) {
|
|
63
|
+
const [state, dispatch] = (0, react.useReducer)(reducer, State.Initial);
|
|
64
|
+
const isFocusWithinRef = (0, react.useRef)(false);
|
|
65
|
+
const [isFocusWithin, setFocusWithin] = (0, react.useState)(false);
|
|
66
|
+
const shouldShowSaveButton = state === State.Dirty || state === State.Saving || isFocusWithin;
|
|
67
|
+
const hideTimer = (0, react.useRef)(void 0);
|
|
68
|
+
(0, react.useEffect)(() => {
|
|
69
|
+
if (state === State.Saved) hideTimer.current = setTimeout(() => {
|
|
70
|
+
dispatch(Event.SavedTimeout);
|
|
71
|
+
hideTimer.current = void 0;
|
|
72
|
+
}, 2e3);
|
|
73
|
+
return () => {
|
|
74
|
+
if (hideTimer.current) clearTimeout(hideTimer.current);
|
|
75
|
+
hideTimer.current = void 0;
|
|
76
|
+
};
|
|
77
|
+
}, [state]);
|
|
78
|
+
const formRef = (0, react.useRef)(null);
|
|
79
|
+
const saveButtonRef = (0, react.useRef)(null);
|
|
80
|
+
const cancelButtonRef = (0, react.useRef)(null);
|
|
81
|
+
const onFocus = (0, react.useCallback)(() => {
|
|
82
|
+
if (isFocusWithinRef.current) return;
|
|
83
|
+
isFocusWithinRef.current = true;
|
|
84
|
+
setFocusWithin(true);
|
|
85
|
+
}, [isFocusWithin, setFocusWithin]);
|
|
86
|
+
const onBlur = (0, react.useCallback)((e) => {
|
|
87
|
+
if (!isFocusWithinRef.current) return;
|
|
88
|
+
if (e.currentTarget.contains(e.relatedTarget)) return;
|
|
89
|
+
isFocusWithinRef.current = false;
|
|
90
|
+
setFocusWithin(false);
|
|
91
|
+
}, [isFocusWithin, setFocusWithin]);
|
|
92
|
+
const onInputHandler = (0, react.useCallback)((e) => {
|
|
93
|
+
dispatch(Event.Touch);
|
|
94
|
+
onInput?.(e);
|
|
95
|
+
}, [dispatch, onInput]);
|
|
96
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Root.Root, {
|
|
97
|
+
className,
|
|
98
|
+
onSubmit: (0, react.useCallback)(async (e) => {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
if (state === State.Initial) return;
|
|
101
|
+
try {
|
|
102
|
+
dispatch(Event.Save);
|
|
103
|
+
saveButtonRef.current?.blur();
|
|
104
|
+
await onSave?.(e);
|
|
105
|
+
dispatch(Event.Saved);
|
|
106
|
+
} catch {
|
|
107
|
+
dispatch(Event.SaveError);
|
|
108
|
+
}
|
|
109
|
+
}, [
|
|
110
|
+
onSave,
|
|
111
|
+
state,
|
|
112
|
+
hideTimer
|
|
113
|
+
]),
|
|
114
|
+
onReset: (0, react.useCallback)((e) => {
|
|
115
|
+
cancelButtonRef.current?.blur();
|
|
116
|
+
onCancel?.(e);
|
|
117
|
+
dispatch(Event.Cancel);
|
|
118
|
+
}, [cancelButtonRef, onCancel]),
|
|
119
|
+
onFocus,
|
|
120
|
+
onBlur,
|
|
121
|
+
onClearServerErrors,
|
|
122
|
+
ref: formRef,
|
|
123
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Field.Field, {
|
|
124
|
+
name: "input",
|
|
125
|
+
serverInvalid,
|
|
126
|
+
children: [
|
|
127
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Label.Label, { children: label }),
|
|
128
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
129
|
+
className: require_EditInPlace_module.default.controls,
|
|
130
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.TextControl, {
|
|
131
|
+
ref,
|
|
132
|
+
...props,
|
|
133
|
+
onInput: onInputHandler,
|
|
134
|
+
disabled: disabled || state === State.Saving
|
|
135
|
+
}), shouldShowSaveButton && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
136
|
+
className: require_EditInPlace_module.default["button-group"],
|
|
137
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.Tooltip, {
|
|
138
|
+
label: saveButtonLabel,
|
|
139
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_form.Submit, {
|
|
140
|
+
asChild: true,
|
|
141
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
|
|
142
|
+
type: "submit",
|
|
143
|
+
kind: "primary",
|
|
144
|
+
size: "sm",
|
|
145
|
+
ref: saveButtonRef,
|
|
146
|
+
disabled: state !== State.Dirty,
|
|
147
|
+
iconOnly: true,
|
|
148
|
+
Icon: _vector_im_compound_design_tokens_assets_web_icons_check.default
|
|
149
|
+
})
|
|
150
|
+
})
|
|
151
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.Tooltip, {
|
|
152
|
+
label: cancelButtonLabel,
|
|
153
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
|
|
154
|
+
type: "reset",
|
|
155
|
+
kind: "secondary",
|
|
156
|
+
size: "sm",
|
|
157
|
+
ref: cancelButtonRef,
|
|
158
|
+
className: require_EditInPlace_module.default.button,
|
|
159
|
+
disabled: state === State.Saving,
|
|
160
|
+
iconOnly: true,
|
|
161
|
+
Icon: _vector_im_compound_design_tokens_assets_web_icons_close.default
|
|
162
|
+
})
|
|
163
|
+
})]
|
|
164
|
+
})]
|
|
165
|
+
}),
|
|
166
|
+
state === State.Saving ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Message.LoadingMessage, { children: savingLabel }) : children,
|
|
167
|
+
savedLabel && state === State.Saved && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Message.SuccessMessage, { children: savedLabel }),
|
|
168
|
+
helpLabel && (state === State.Initial || state === State.Dirty) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_form.ValidityState, { children: (validity) => (validity === void 0 || validity.valid) && !serverInvalid && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Message.HelpMessage, { children: helpLabel }) })
|
|
169
|
+
]
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
//#endregion
|
|
207
174
|
exports.EditInPlace = EditInPlace;
|
|
208
|
-
|
|
175
|
+
|
|
176
|
+
//# sourceMappingURL=EditInPlace.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditInPlace.cjs","sources":["../../../../../src/components/Form/Controls/EditInPlace/EditInPlace.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 React, {\n forwardRef,\n useCallback,\n useRef,\n useState,\n useEffect,\n useReducer,\n} from \"react\";\nimport { Submit, ValidityState } from \"@radix-ui/react-form\";\nimport CheckIcon from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport CancelIcon from \"@vector-im/compound-design-tokens/assets/web/icons/close\";\n\nimport styles from \"./EditInPlace.module.css\";\n\nimport {\n Field,\n HelpMessage,\n Label,\n LoadingMessage,\n Root,\n SuccessMessage,\n TextControl,\n} from \"../..\";\nimport { Button, Tooltip } from \"../../../..\";\n\ntype Props = {\n /**\n * The label for the control\n */\n label: string;\n\n /**\n * The CSS class name.\n */\n className?: string;\n\n /**\n * Callback for when the user confirms the change\n */\n onSave?: (e: React.FormEvent<HTMLFormElement>) => Promise<void> | void;\n\n /**\n * Callback for when the user wishes to cancel the change\n */\n onCancel?: (e: React.FormEvent<HTMLFormElement>) => void;\n\n /**\n * onInput event handler on the text control\n */\n onInput?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\n /**\n * Callback for when the server validation errors should be cleared.\n */\n onClearServerErrors?: () => void;\n\n /**\n * Whether the field is in an error state according to the server validation.\n *\n * For validation messages, use native validations properties directly, or add custom error messages as children.\n */\n serverInvalid?: boolean;\n\n /**\n * Label to be displayed by the green check at the bottom. Will only be displayed\n * for 2 seconds after the onSave callback promise resolves successfully.\n */\n savedLabel?: string;\n\n /**\n * The label for the save button\n */\n saveButtonLabel: string;\n\n /**\n * The label for the 'in progress' saving caption\n */\n savingLabel: string;\n\n /**\n * The label for the cancel button\n */\n cancelButtonLabel: string;\n\n /**\n * Label to be displayed under the input as a help text\n */\n helpLabel?: string;\n\n /**\n * If true, disabled the entire component to disallow editing.\n */\n disabled?: boolean;\n} & React.ComponentProps<typeof TextControl>;\n\nenum State {\n /** No changes on the input has been made */\n Initial,\n\n /** The input has been changed */\n Dirty,\n\n /** The input is being saved */\n Saving,\n\n /** The input has been saved */\n Saved,\n}\n\nenum Event {\n Touch, // The user 'touched' the control\n Save, // The user has clicked the save button\n Saved, // The onSave callback finished successfully\n SaveError, // The onSave callback finished with an error\n Cancel, // The user has clicked the cancel button\n SavedTimeout, // The user has clicked the save button and the saved label has been shown for 2 seconds\n}\n\nfunction reducer(state: State, action: Event): State {\n switch (action) {\n case Event.Touch:\n if (state === State.Initial || state === State.Saved) return State.Dirty;\n else return state;\n\n case Event.Save:\n return State.Saving;\n\n case Event.Cancel:\n return State.Initial;\n\n case Event.Saved:\n if (state === State.Saving) return State.Saved;\n else return state;\n\n case Event.SaveError:\n if (state === State.Saving) return State.Initial;\n else return state;\n\n case Event.SavedTimeout:\n if (state === State.Saved) return State.Initial;\n else return state;\n }\n\n assertNever(action);\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unreachable value: ${value}`);\n}\n\n/**\n * A text box with save/cancel buttons that appear when the field is active.\n * Since thios control has its own 'save' button, it should *not* appear as part\n * of a larger form: it exists as its own form that submits separately.\n */\nexport const EditInPlace = forwardRef<HTMLInputElement, Props>(\n function EditInPlace(\n {\n className,\n label,\n onSave,\n onCancel,\n onInput,\n onClearServerErrors,\n serverInvalid,\n saveButtonLabel,\n cancelButtonLabel,\n savedLabel,\n savingLabel,\n helpLabel,\n disabled,\n children,\n ...props\n },\n ref,\n ) {\n const [state, dispatch] = useReducer(reducer, State.Initial);\n\n // Tracks the focus state of the form\n // This uses a `ref` to make sure the onFocus/onBlur callback don't trigger unnecessary re-renders\n // and a state to track the focus state and hide the buttons when the form is not focused\n const isFocusWithinRef = useRef(false);\n const [isFocusWithin, setFocusWithin] = useState(false);\n\n const shouldShowSaveButton =\n state === State.Dirty || state === State.Saving || isFocusWithin;\n\n const hideTimer = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n useEffect(() => {\n // Start a timer when we switch to the saved state\n if (state === State.Saved) {\n hideTimer.current = setTimeout(() => {\n dispatch(Event.SavedTimeout);\n hideTimer.current = undefined;\n }, 2000);\n }\n\n return () => {\n // Clear any timers that may have been set\n if (hideTimer.current) clearTimeout(hideTimer.current);\n hideTimer.current = undefined;\n };\n }, [state]);\n\n const formRef = useRef<HTMLFormElement>(null);\n const saveButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const onFocus = useCallback(() => {\n if (isFocusWithinRef.current) return;\n isFocusWithinRef.current = true;\n setFocusWithin(true);\n }, [isFocusWithin, setFocusWithin]);\n\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n if (!isFocusWithinRef.current) return;\n // If the user switched to another element within the form\n // consider that we're still focused within the form\n if (e.currentTarget.contains(e.relatedTarget)) return;\n\n isFocusWithinRef.current = false;\n setFocusWithin(false);\n },\n [isFocusWithin, setFocusWithin],\n );\n\n const onInputHandler = useCallback(\n (e: React.InputEvent<HTMLInputElement>) => {\n dispatch(Event.Touch);\n onInput?.(e);\n },\n [dispatch, onInput],\n );\n\n const onFormSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Prevent submitting the form if the user has not yet entered any text\n if (state === State.Initial) {\n return;\n }\n\n try {\n dispatch(Event.Save);\n saveButtonRef.current?.blur();\n await onSave?.(e);\n dispatch(Event.Saved);\n } catch {\n // We don't really need to do anything here, we just don't want to display the\n // 'saved' label, obviously. The user of the component can update the error to\n // show what failed.\n dispatch(Event.SaveError);\n }\n },\n [onSave, state, hideTimer],\n );\n\n const onFormReset = useCallback(\n (e: React.FormEvent<HTMLFormElement>) => {\n cancelButtonRef.current?.blur();\n onCancel?.(e);\n dispatch(Event.Cancel);\n },\n [cancelButtonRef, onCancel],\n );\n\n return (\n <Root\n className={className}\n onSubmit={onFormSubmit}\n onReset={onFormReset}\n onFocus={onFocus}\n onBlur={onBlur}\n onClearServerErrors={onClearServerErrors}\n ref={formRef}\n >\n <Field name=\"input\" serverInvalid={serverInvalid}>\n <Label>{label}</Label>\n <div className={styles.controls}>\n <TextControl\n ref={ref}\n {...props}\n onInput={onInputHandler}\n disabled={disabled || state === State.Saving}\n />\n\n {shouldShowSaveButton && (\n <div className={styles[\"button-group\"]}>\n <Tooltip label={saveButtonLabel}>\n <Submit asChild>\n <Button\n type=\"submit\"\n kind=\"primary\"\n size=\"sm\"\n ref={saveButtonRef}\n disabled={state !== State.Dirty}\n iconOnly\n Icon={CheckIcon}\n />\n </Submit>\n </Tooltip>\n\n <Tooltip label={cancelButtonLabel}>\n <Button\n type=\"reset\"\n kind=\"secondary\"\n size=\"sm\"\n ref={cancelButtonRef}\n className={styles.button}\n disabled={state === State.Saving}\n iconOnly\n Icon={CancelIcon}\n />\n </Tooltip>\n </div>\n )}\n </div>\n\n {/*\n During the loading saving state, we only show the saving message.\n Else, we show whatever children were passed on, as they will have other validation messages\n */}\n {state === State.Saving ? (\n <LoadingMessage>{savingLabel}</LoadingMessage>\n ) : (\n children\n )}\n\n {savedLabel && state === State.Saved && (\n <SuccessMessage>{savedLabel}</SuccessMessage>\n )}\n\n {/*\n We show the help message only if:\n - the helpLabel is set\n - the form hasn't been validated yet\n - the 'serverInvalid' prop is not set\n - we're in the initial or dirty state\n */}\n {helpLabel && (state === State.Initial || state === State.Dirty) && (\n <ValidityState>\n {(validity) =>\n (validity === undefined || validity.valid) &&\n !serverInvalid && <HelpMessage>{helpLabel}</HelpMessage>\n }\n </ValidityState>\n )}\n </Field>\n </Root>\n );\n },\n);\n"],"names":["forwardRef","EditInPlace","useReducer","useRef","useState","useEffect","useCallback","jsx","Root","jsxs","Field","Label","styles","TextControl","Tooltip","Submit","Button","CancelIcon","LoadingMessage","SuccessMessage","ValidityState","HelpMessage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditInPlace.cjs","names":[],"sources":["../../../../../src/components/Form/Controls/EditInPlace/EditInPlace.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 React, {\n forwardRef,\n useCallback,\n useRef,\n useState,\n useEffect,\n useReducer,\n} from \"react\";\nimport { Submit, ValidityState } from \"@radix-ui/react-form\";\nimport CheckIcon from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport CancelIcon from \"@vector-im/compound-design-tokens/assets/web/icons/close\";\n\nimport styles from \"./EditInPlace.module.css\";\n\nimport {\n Field,\n HelpMessage,\n Label,\n LoadingMessage,\n Root,\n SuccessMessage,\n TextControl,\n} from \"../..\";\nimport { Button, Tooltip } from \"../../../..\";\n\ntype Props = {\n /**\n * The label for the control\n */\n label: string;\n\n /**\n * The CSS class name.\n */\n className?: string;\n\n /**\n * Callback for when the user confirms the change\n */\n onSave?: (e: React.FormEvent<HTMLFormElement>) => Promise<void> | void;\n\n /**\n * Callback for when the user wishes to cancel the change\n */\n onCancel?: (e: React.FormEvent<HTMLFormElement>) => void;\n\n /**\n * onInput event handler on the text control\n */\n onInput?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\n /**\n * Callback for when the server validation errors should be cleared.\n */\n onClearServerErrors?: () => void;\n\n /**\n * Whether the field is in an error state according to the server validation.\n *\n * For validation messages, use native validations properties directly, or add custom error messages as children.\n */\n serverInvalid?: boolean;\n\n /**\n * Label to be displayed by the green check at the bottom. Will only be displayed\n * for 2 seconds after the onSave callback promise resolves successfully.\n */\n savedLabel?: string;\n\n /**\n * The label for the save button\n */\n saveButtonLabel: string;\n\n /**\n * The label for the 'in progress' saving caption\n */\n savingLabel: string;\n\n /**\n * The label for the cancel button\n */\n cancelButtonLabel: string;\n\n /**\n * Label to be displayed under the input as a help text\n */\n helpLabel?: string;\n\n /**\n * If true, disabled the entire component to disallow editing.\n */\n disabled?: boolean;\n} & React.ComponentProps<typeof TextControl>;\n\nenum State {\n /** No changes on the input has been made */\n Initial,\n\n /** The input has been changed */\n Dirty,\n\n /** The input is being saved */\n Saving,\n\n /** The input has been saved */\n Saved,\n}\n\nenum Event {\n Touch, // The user 'touched' the control\n Save, // The user has clicked the save button\n Saved, // The onSave callback finished successfully\n SaveError, // The onSave callback finished with an error\n Cancel, // The user has clicked the cancel button\n SavedTimeout, // The user has clicked the save button and the saved label has been shown for 2 seconds\n}\n\nfunction reducer(state: State, action: Event): State {\n switch (action) {\n case Event.Touch:\n if (state === State.Initial || state === State.Saved) return State.Dirty;\n else return state;\n\n case Event.Save:\n return State.Saving;\n\n case Event.Cancel:\n return State.Initial;\n\n case Event.Saved:\n if (state === State.Saving) return State.Saved;\n else return state;\n\n case Event.SaveError:\n if (state === State.Saving) return State.Initial;\n else return state;\n\n case Event.SavedTimeout:\n if (state === State.Saved) return State.Initial;\n else return state;\n }\n\n assertNever(action);\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unreachable value: ${value}`);\n}\n\n/**\n * A text box with save/cancel buttons that appear when the field is active.\n * Since thios control has its own 'save' button, it should *not* appear as part\n * of a larger form: it exists as its own form that submits separately.\n */\nexport const EditInPlace = forwardRef<HTMLInputElement, Props>(\n function EditInPlace(\n {\n className,\n label,\n onSave,\n onCancel,\n onInput,\n onClearServerErrors,\n serverInvalid,\n saveButtonLabel,\n cancelButtonLabel,\n savedLabel,\n savingLabel,\n helpLabel,\n disabled,\n children,\n ...props\n },\n ref,\n ) {\n const [state, dispatch] = useReducer(reducer, State.Initial);\n\n // Tracks the focus state of the form\n // This uses a `ref` to make sure the onFocus/onBlur callback don't trigger unnecessary re-renders\n // and a state to track the focus state and hide the buttons when the form is not focused\n const isFocusWithinRef = useRef(false);\n const [isFocusWithin, setFocusWithin] = useState(false);\n\n const shouldShowSaveButton =\n state === State.Dirty || state === State.Saving || isFocusWithin;\n\n const hideTimer = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n useEffect(() => {\n // Start a timer when we switch to the saved state\n if (state === State.Saved) {\n hideTimer.current = setTimeout(() => {\n dispatch(Event.SavedTimeout);\n hideTimer.current = undefined;\n }, 2000);\n }\n\n return () => {\n // Clear any timers that may have been set\n if (hideTimer.current) clearTimeout(hideTimer.current);\n hideTimer.current = undefined;\n };\n }, [state]);\n\n const formRef = useRef<HTMLFormElement>(null);\n const saveButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const onFocus = useCallback(() => {\n if (isFocusWithinRef.current) return;\n isFocusWithinRef.current = true;\n setFocusWithin(true);\n }, [isFocusWithin, setFocusWithin]);\n\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n if (!isFocusWithinRef.current) return;\n // If the user switched to another element within the form\n // consider that we're still focused within the form\n if (e.currentTarget.contains(e.relatedTarget)) return;\n\n isFocusWithinRef.current = false;\n setFocusWithin(false);\n },\n [isFocusWithin, setFocusWithin],\n );\n\n const onInputHandler = useCallback(\n (e: React.InputEvent<HTMLInputElement>) => {\n dispatch(Event.Touch);\n onInput?.(e);\n },\n [dispatch, onInput],\n );\n\n const onFormSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Prevent submitting the form if the user has not yet entered any text\n if (state === State.Initial) {\n return;\n }\n\n try {\n dispatch(Event.Save);\n saveButtonRef.current?.blur();\n await onSave?.(e);\n dispatch(Event.Saved);\n } catch {\n // We don't really need to do anything here, we just don't want to display the\n // 'saved' label, obviously. The user of the component can update the error to\n // show what failed.\n dispatch(Event.SaveError);\n }\n },\n [onSave, state, hideTimer],\n );\n\n const onFormReset = useCallback(\n (e: React.FormEvent<HTMLFormElement>) => {\n cancelButtonRef.current?.blur();\n onCancel?.(e);\n dispatch(Event.Cancel);\n },\n [cancelButtonRef, onCancel],\n );\n\n return (\n <Root\n className={className}\n onSubmit={onFormSubmit}\n onReset={onFormReset}\n onFocus={onFocus}\n onBlur={onBlur}\n onClearServerErrors={onClearServerErrors}\n ref={formRef}\n >\n <Field name=\"input\" serverInvalid={serverInvalid}>\n <Label>{label}</Label>\n <div className={styles.controls}>\n <TextControl\n ref={ref}\n {...props}\n onInput={onInputHandler}\n disabled={disabled || state === State.Saving}\n />\n\n {shouldShowSaveButton && (\n <div className={styles[\"button-group\"]}>\n <Tooltip label={saveButtonLabel}>\n <Submit asChild>\n <Button\n type=\"submit\"\n kind=\"primary\"\n size=\"sm\"\n ref={saveButtonRef}\n disabled={state !== State.Dirty}\n iconOnly\n Icon={CheckIcon}\n />\n </Submit>\n </Tooltip>\n\n <Tooltip label={cancelButtonLabel}>\n <Button\n type=\"reset\"\n kind=\"secondary\"\n size=\"sm\"\n ref={cancelButtonRef}\n className={styles.button}\n disabled={state === State.Saving}\n iconOnly\n Icon={CancelIcon}\n />\n </Tooltip>\n </div>\n )}\n </div>\n\n {/*\n During the loading saving state, we only show the saving message.\n Else, we show whatever children were passed on, as they will have other validation messages\n */}\n {state === State.Saving ? (\n <LoadingMessage>{savingLabel}</LoadingMessage>\n ) : (\n children\n )}\n\n {savedLabel && state === State.Saved && (\n <SuccessMessage>{savedLabel}</SuccessMessage>\n )}\n\n {/*\n We show the help message only if:\n - the helpLabel is set\n - the form hasn't been validated yet\n - the 'serverInvalid' prop is not set\n - we're in the initial or dirty state\n */}\n {helpLabel && (state === State.Initial || state === State.Dirty) && (\n <ValidityState>\n {(validity) =>\n (validity === undefined || validity.valid) &&\n !serverInvalid && <HelpMessage>{helpLabel}</HelpMessage>\n }\n </ValidityState>\n )}\n </Field>\n </Root>\n );\n },\n);\n"],"mappings":"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"}
|