@primer/components 0.0.0-2021113144816 → 0.0.0-2021113174023
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/CHANGELOG.md +892 -0
- package/dist/browser.esm.js +2272 -2
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +2272 -2
- package/dist/browser.umd.js.map +1 -1
- package/lib/ActionList/Divider.jsx +29 -0
- package/lib/ActionList/Group.jsx +23 -0
- package/lib/ActionList/Header.js +1 -1
- package/lib/ActionList/Header.jsx +66 -0
- package/lib/ActionList/Item.js +65 -40
- package/lib/ActionList/Item.jsx +311 -0
- package/lib/ActionList/List.js +1 -1
- package/lib/ActionList/List.jsx +138 -0
- package/lib/ActionList/index.js +12 -23
- package/lib/ActionList2/Description.jsx +29 -0
- package/lib/ActionList2/Divider.d.ts +2 -3
- package/lib/ActionList2/Divider.js +5 -10
- package/lib/ActionList2/Divider.jsx +22 -0
- package/lib/ActionList2/Group.d.ts +2 -28
- package/lib/ActionList2/Group.js +6 -55
- package/lib/ActionList2/Group.jsx +25 -0
- package/lib/ActionList2/Header.d.ts +26 -0
- package/lib/ActionList2/Header.js +55 -0
- package/lib/ActionList2/Header.jsx +36 -0
- package/lib/ActionList2/Item.js +7 -25
- package/lib/ActionList2/Item.jsx +174 -0
- package/lib/ActionList2/LinkItem.jsx +28 -0
- package/lib/ActionList2/List.d.ts +1 -1
- package/lib/ActionList2/List.js +2 -11
- package/lib/ActionList2/List.jsx +41 -0
- package/lib/ActionList2/Selection.js +1 -14
- package/lib/ActionList2/Selection.jsx +50 -0
- package/lib/ActionList2/Visuals.jsx +48 -0
- package/lib/ActionList2/index.d.ts +2 -1
- package/lib/ActionList2/index.js +23 -41
- package/lib/ActionMenu.jsx +73 -0
- package/lib/AnchoredOverlay/AnchoredOverlay.jsx +100 -0
- package/lib/AnchoredOverlay/index.js +4 -12
- package/lib/Autocomplete/Autocomplete.d.ts +4 -6
- package/lib/Autocomplete/Autocomplete.jsx +100 -0
- package/lib/Autocomplete/AutocompleteContext.jsx +5 -0
- package/lib/Autocomplete/AutocompleteInput.d.ts +4 -6
- package/lib/Autocomplete/AutocompleteInput.jsx +113 -0
- package/lib/Autocomplete/AutocompleteMenu.jsx +190 -0
- package/lib/Autocomplete/AutocompleteOverlay.jsx +55 -0
- package/lib/Autocomplete/index.js +7 -14
- package/lib/Avatar.d.ts +2 -1
- package/lib/Avatar.js +1 -1
- package/lib/Avatar.jsx +34 -0
- package/lib/AvatarPair.jsx +29 -0
- package/lib/AvatarStack.jsx +151 -0
- package/lib/BaseStyles.js +20 -2
- package/lib/BaseStyles.jsx +65 -0
- package/lib/BorderBox.js +1 -1
- package/lib/BorderBox.jsx +18 -0
- package/lib/Box.js +1 -1
- package/lib/Box.jsx +10 -0
- package/lib/BranchName.d.ts +2 -1
- package/lib/BranchName.js +1 -1
- package/lib/BranchName.jsx +20 -0
- package/lib/Breadcrumbs.d.ts +7 -8
- package/lib/Breadcrumbs.js +15 -10
- package/lib/Breadcrumbs.jsx +74 -0
- package/lib/Button/Button.d.ts +5 -5
- package/lib/Button/Button.js +7 -3
- package/lib/Button/Button.jsx +60 -0
- package/lib/Button/ButtonBase.d.ts +8 -5
- package/lib/Button/ButtonBase.js +5 -1
- package/lib/Button/ButtonBase.jsx +36 -0
- package/lib/Button/ButtonClose.d.ts +47 -5
- package/lib/Button/ButtonClose.js +1 -1
- package/lib/Button/ButtonClose.jsx +55 -0
- package/lib/Button/ButtonDanger.d.ts +5 -5
- package/lib/Button/ButtonDanger.js +6 -2
- package/lib/Button/ButtonDanger.jsx +63 -0
- package/lib/Button/ButtonGroup.js +1 -1
- package/lib/Button/ButtonGroup.jsx +55 -0
- package/lib/Button/ButtonInvisible.d.ts +5 -5
- package/lib/Button/ButtonInvisible.js +6 -2
- package/lib/Button/ButtonInvisible.jsx +52 -0
- package/lib/Button/ButtonOutline.d.ts +5 -5
- package/lib/Button/ButtonOutline.js +6 -2
- package/lib/Button/ButtonOutline.jsx +63 -0
- package/lib/Button/ButtonPrimary.d.ts +5 -5
- package/lib/Button/ButtonPrimary.js +6 -2
- package/lib/Button/ButtonPrimary.jsx +62 -0
- package/lib/Button/ButtonStyles.jsx +37 -0
- package/lib/Button/ButtonTableList.d.ts +2 -1
- package/lib/Button/ButtonTableList.js +1 -1
- package/lib/Button/ButtonTableList.jsx +49 -0
- package/lib/Button/index.js +21 -70
- package/lib/Caret.jsx +93 -0
- package/lib/CircleBadge.d.ts +5 -4
- package/lib/CircleBadge.js +1 -1
- package/lib/CircleBadge.jsx +43 -0
- package/lib/CircleOcticon.d.ts +36 -37
- package/lib/CircleOcticon.jsx +21 -0
- package/lib/CounterLabel.d.ts +2 -1
- package/lib/CounterLabel.js +1 -1
- package/lib/CounterLabel.jsx +44 -0
- package/lib/Details.d.ts +2 -1
- package/lib/Details.js +4 -2
- package/lib/Details.jsx +21 -0
- package/lib/Dialog/ConfirmationDialog.jsx +146 -0
- package/lib/Dialog/Dialog.d.ts +9 -5
- package/lib/Dialog/Dialog.js +11 -17
- package/lib/Dialog/Dialog.jsx +273 -0
- package/lib/Dialog.d.ts +40 -40
- package/lib/Dialog.js +1 -1
- package/lib/Dialog.jsx +131 -0
- package/lib/Dropdown.d.ts +171 -22
- package/lib/Dropdown.js +3 -3
- package/lib/Dropdown.jsx +134 -0
- package/lib/DropdownMenu/DropdownButton.d.ts +49 -9
- package/lib/DropdownMenu/DropdownButton.js +1 -3
- package/lib/DropdownMenu/DropdownButton.jsx +14 -0
- package/lib/DropdownMenu/DropdownMenu.jsx +70 -0
- package/lib/DropdownMenu/index.js +6 -20
- package/lib/DropdownStyles.js +18 -26
- package/lib/EmojiPicker/EmojiPicker.d.ts +17 -0
- package/lib/EmojiPicker/EmojiPicker.js +202 -0
- package/lib/EmojiPicker/EmojiPicker.jsx +132 -0
- package/lib/EmojiPicker/EmojiPickerAnchor.d.ts +0 -0
- package/lib/EmojiPicker/EmojiPickerAnchor.js +1 -0
- package/lib/EmojiPicker/EmojiPickerAnchor.jsx +1 -0
- package/lib/EmojiPicker/EmojiPickerPanel.d.ts +3 -0
- package/lib/EmojiPicker/EmojiPickerPanel.js +18 -0
- package/lib/EmojiPicker/EmojiPickerPanel.jsx +10 -0
- package/lib/EmojiPicker/data.d.ts +9 -0
- package/lib/EmojiPicker/data.js +7254 -0
- package/lib/EmojiPicker/index.d.ts +2 -0
- package/lib/EmojiPicker/index.js +8 -0
- package/lib/FilterList.d.ts +303 -265
- package/lib/FilterList.js +6 -2
- package/lib/FilterList.jsx +63 -0
- package/lib/FilteredActionList/FilteredActionList.js +1 -1
- package/lib/FilteredActionList/FilteredActionList.jsx +100 -0
- package/lib/FilteredActionList/index.js +4 -12
- package/lib/FilteredSearch.d.ts +2 -1
- package/lib/FilteredSearch.js +1 -1
- package/lib/FilteredSearch.jsx +29 -0
- package/lib/Flash.d.ts +2 -1
- package/lib/Flash.js +1 -1
- package/lib/Flash.jsx +70 -0
- package/lib/Flex.js +1 -1
- package/lib/Flex.jsx +15 -0
- package/lib/FormGroup.d.ts +5 -4
- package/lib/FormGroup.js +2 -2
- package/lib/FormGroup.jsx +25 -0
- package/lib/Grid.jsx +15 -0
- package/lib/Header.d.ts +7 -6
- package/lib/Header.js +4 -4
- package/lib/Header.jsx +90 -0
- package/lib/Heading.d.ts +2 -1
- package/lib/Heading.js +6 -1
- package/lib/Heading.jsx +21 -0
- package/lib/Label.d.ts +2 -1
- package/lib/Label.js +3 -2
- package/lib/Label.jsx +84 -0
- package/lib/LabelGroup.d.ts +2 -1
- package/lib/LabelGroup.js +2 -2
- package/lib/LabelGroup.jsx +19 -0
- package/lib/Link.d.ts +2 -1
- package/lib/Link.js +1 -1
- package/lib/Link.jsx +38 -0
- package/lib/NewButton/button-counter.jsx +14 -0
- package/lib/NewButton/button.js +42 -34
- package/lib/NewButton/button.jsx +278 -0
- package/lib/NewButton/index.js +5 -12
- package/lib/NewButton/types.js +2 -1
- package/lib/Overlay.d.ts +11 -14
- package/lib/Overlay.js +5 -4
- package/lib/Overlay.jsx +156 -0
- package/lib/Pagehead.d.ts +2 -1
- package/lib/Pagehead.js +1 -1
- package/lib/Pagehead.jsx +18 -0
- package/lib/Pagination/Pagination.js +3 -3
- package/lib/Pagination/Pagination.jsx +163 -0
- package/lib/Pagination/index.js +6 -12
- package/lib/Pagination/model.jsx +174 -0
- package/lib/PointerBox.jsx +25 -0
- package/lib/Popover.d.ts +5 -4
- package/lib/Popover.js +5 -4
- package/lib/Popover.jsx +210 -0
- package/lib/Portal/Portal.jsx +79 -0
- package/lib/Portal/index.js +5 -16
- package/lib/Position.d.ts +4 -4
- package/lib/Position.js +1 -1
- package/lib/Position.jsx +46 -0
- package/lib/ProgressBar.d.ts +11 -16
- package/lib/ProgressBar.js +10 -6
- package/lib/ProgressBar.jsx +39 -0
- package/lib/SelectMenu/SelectMenu.d.ts +195 -34
- package/lib/SelectMenu/SelectMenu.js +4 -2
- package/lib/SelectMenu/SelectMenu.jsx +114 -0
- package/lib/SelectMenu/SelectMenuContext.jsx +5 -0
- package/lib/SelectMenu/SelectMenuDivider.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuDivider.js +1 -1
- package/lib/SelectMenu/SelectMenuDivider.jsx +43 -0
- package/lib/SelectMenu/SelectMenuFilter.js +2 -2
- package/lib/SelectMenu/SelectMenuFilter.jsx +59 -0
- package/lib/SelectMenu/SelectMenuFooter.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuFooter.js +2 -2
- package/lib/SelectMenu/SelectMenuFooter.jsx +46 -0
- package/lib/SelectMenu/SelectMenuHeader.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuHeader.js +1 -1
- package/lib/SelectMenu/SelectMenuHeader.jsx +44 -0
- package/lib/SelectMenu/SelectMenuItem.d.ts +3 -2
- package/lib/SelectMenu/SelectMenuItem.js +2 -2
- package/lib/SelectMenu/SelectMenuItem.jsx +143 -0
- package/lib/SelectMenu/SelectMenuList.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuList.js +1 -1
- package/lib/SelectMenu/SelectMenuList.jsx +60 -0
- package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
- package/lib/SelectMenu/SelectMenuLoadingAnimation.js +1 -3
- package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +21 -0
- package/lib/SelectMenu/SelectMenuModal.d.ts +3 -2
- package/lib/SelectMenu/SelectMenuModal.js +1 -1
- package/lib/SelectMenu/SelectMenuModal.jsx +119 -0
- package/lib/SelectMenu/SelectMenuTab.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuTab.js +2 -2
- package/lib/SelectMenu/SelectMenuTab.jsx +93 -0
- package/lib/SelectMenu/SelectMenuTabPanel.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuTabPanel.js +2 -2
- package/lib/SelectMenu/SelectMenuTabPanel.jsx +43 -0
- package/lib/SelectMenu/SelectMenuTabs.d.ts +2 -1
- package/lib/SelectMenu/SelectMenuTabs.js +2 -2
- package/lib/SelectMenu/SelectMenuTabs.jsx +58 -0
- package/lib/SelectMenu/hooks/useKeyboardNav.js +80 -96
- package/lib/SelectMenu/index.js +7 -14
- package/lib/SelectPanel/SelectPanel.jsx +105 -0
- package/lib/SelectPanel/index.js +4 -12
- package/lib/SideNav.d.ts +8 -11
- package/lib/SideNav.js +15 -8
- package/lib/SideNav.jsx +177 -0
- package/lib/Spinner.d.ts +2 -1
- package/lib/Spinner.js +3 -1
- package/lib/Spinner.jsx +35 -0
- package/lib/StateLabel.d.ts +2 -1
- package/lib/StateLabel.js +6 -7
- package/lib/StateLabel.jsx +94 -0
- package/lib/StyledOcticon.d.ts +2 -1
- package/lib/StyledOcticon.js +4 -2
- package/lib/StyledOcticon.jsx +20 -0
- package/lib/SubNav.d.ts +11 -5
- package/lib/SubNav.js +13 -8
- package/lib/SubNav.jsx +104 -0
- package/lib/TabNav.d.ts +4 -3
- package/lib/TabNav.js +2 -2
- package/lib/TabNav.jsx +60 -0
- package/lib/Text.jsx +14 -0
- package/lib/TextInput.jsx +23 -0
- package/lib/TextInputWithTokens.d.ts +4 -6
- package/lib/TextInputWithTokens.jsx +218 -0
- package/lib/ThemeProvider.d.ts +0 -1
- package/lib/ThemeProvider.js +4 -17
- package/lib/ThemeProvider.jsx +130 -0
- package/lib/Timeline.d.ts +393 -19
- package/lib/Timeline.js +17 -20
- package/lib/Timeline.jsx +124 -0
- package/lib/Token/AvatarToken.d.ts +1 -1
- package/lib/Token/AvatarToken.js +1 -1
- package/lib/Token/AvatarToken.jsx +54 -0
- package/lib/Token/IssueLabelToken.d.ts +1 -1
- package/lib/Token/IssueLabelToken.jsx +125 -0
- package/lib/Token/Token.d.ts +1 -1
- package/lib/Token/Token.jsx +103 -0
- package/lib/Token/TokenBase.js +1 -1
- package/lib/Token/TokenBase.jsx +88 -0
- package/lib/Token/_RemoveTokenButton.jsx +108 -0
- package/lib/Token/_TokenTextContainer.jsx +49 -0
- package/lib/Token/index.js +11 -30
- package/lib/Tooltip.d.ts +2 -1
- package/lib/Tooltip.js +2 -2
- package/lib/Tooltip.jsx +246 -0
- package/lib/Truncate.d.ts +2 -1
- package/lib/Truncate.js +3 -1
- package/lib/Truncate.jsx +27 -0
- package/lib/UnderlineNav.d.ts +3 -2
- package/lib/UnderlineNav.js +4 -4
- package/lib/UnderlineNav.jsx +90 -0
- package/lib/_TextInputWrapper.jsx +120 -0
- package/lib/_UnstyledTextInput.jsx +22 -0
- package/lib/behaviors/anchoredPosition.js +205 -234
- package/lib/behaviors/focusTrap.js +121 -157
- package/lib/behaviors/focusZone.js +434 -509
- package/lib/behaviors/scrollIntoViewingArea.js +18 -35
- package/lib/constants.js +39 -43
- package/lib/drafts.d.ts +0 -1
- package/lib/drafts.js +20 -43
- package/lib/hooks/index.js +16 -60
- package/lib/hooks/useAnchoredPosition.js +32 -40
- package/lib/hooks/useCombinedRefs.js +32 -36
- package/lib/hooks/useDetails.jsx +39 -0
- package/lib/hooks/useDialog.js +72 -96
- package/lib/hooks/useFocusTrap.js +43 -60
- package/lib/hooks/useFocusZone.js +54 -50
- package/lib/hooks/useOnEscapePress.js +25 -36
- package/lib/hooks/useOnOutsideClick.jsx +61 -0
- package/lib/hooks/useOpenAndCloseFocus.js +22 -34
- package/lib/hooks/useOverlay.jsx +15 -0
- package/lib/hooks/useProvidedRefOrCreate.js +10 -14
- package/lib/hooks/useProvidedStateOrCreate.js +13 -16
- package/lib/hooks/useRenderForcingRef.js +13 -17
- package/lib/hooks/useResizeObserver.js +15 -18
- package/lib/hooks/useSafeTimeout.js +22 -30
- package/lib/hooks/useScrollFlash.js +16 -23
- package/lib/index.d.ts +2 -2
- package/lib/index.js +165 -652
- package/lib/polyfills/eventListenerSignal.js +37 -45
- package/lib/sx.js +10 -22
- package/lib/theme-preval.js +64 -3169
- package/lib/theme.js +3 -12
- package/lib/utils/create-slots.jsx +65 -0
- package/lib/utils/deprecate.jsx +59 -0
- package/lib/utils/isNumeric.jsx +7 -0
- package/lib/utils/iterateFocusableElements.js +63 -85
- package/lib/utils/ssr.jsx +6 -0
- package/lib/utils/test-deprecations.jsx +20 -0
- package/lib/utils/test-helpers.jsx +8 -0
- package/lib/utils/test-matchers.jsx +100 -0
- package/lib/utils/testing.d.ts +61 -8
- package/lib/utils/testing.js +0 -29
- package/lib/utils/testing.jsx +206 -0
- package/lib/utils/theme.js +33 -47
- package/lib/utils/types/AriaRole.js +2 -1
- package/lib/utils/types/ComponentProps.js +2 -1
- package/lib/utils/types/Flatten.js +2 -1
- package/lib/utils/types/KeyPaths.js +2 -1
- package/lib/utils/types/MandateProps.js +16 -1
- package/lib/utils/types/Merge.js +2 -1
- package/lib/utils/types/index.js +16 -69
- package/lib/utils/uniqueId.js +5 -8
- package/lib/utils/use-force-update.js +8 -14
- package/lib/utils/useIsomorphicLayoutEffect.js +8 -11
- package/lib/utils/userAgent.js +8 -12
- package/lib-esm/ActionList/Header.js +1 -1
- package/lib-esm/ActionList/Item.js +66 -41
- package/lib-esm/ActionList/List.js +1 -1
- package/lib-esm/ActionList2/Divider.d.ts +2 -3
- package/lib-esm/ActionList2/Divider.js +5 -8
- package/lib-esm/ActionList2/Group.d.ts +2 -28
- package/lib-esm/ActionList2/Group.js +5 -52
- package/lib-esm/ActionList2/Header.d.ts +26 -0
- package/lib-esm/ActionList2/Header.js +44 -0
- package/lib-esm/ActionList2/Item.js +7 -23
- package/lib-esm/ActionList2/List.d.ts +1 -1
- package/lib-esm/ActionList2/List.js +2 -9
- package/lib-esm/ActionList2/Selection.js +1 -12
- package/lib-esm/ActionList2/index.d.ts +2 -1
- package/lib-esm/Autocomplete/Autocomplete.d.ts +4 -6
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +4 -6
- package/lib-esm/Avatar.d.ts +2 -1
- package/lib-esm/Avatar.js +2 -2
- package/lib-esm/BaseStyles.js +20 -2
- package/lib-esm/BorderBox.js +1 -1
- package/lib-esm/Box.js +1 -1
- package/lib-esm/BranchName.d.ts +2 -1
- package/lib-esm/BranchName.js +2 -2
- package/lib-esm/Breadcrumbs.d.ts +7 -8
- package/lib-esm/Breadcrumbs.js +16 -11
- package/lib-esm/Button/Button.d.ts +5 -5
- package/lib-esm/Button/Button.js +3 -3
- package/lib-esm/Button/ButtonBase.d.ts +8 -5
- package/lib-esm/Button/ButtonBase.js +3 -1
- package/lib-esm/Button/ButtonClose.d.ts +47 -5
- package/lib-esm/Button/ButtonClose.js +2 -2
- package/lib-esm/Button/ButtonDanger.d.ts +5 -5
- package/lib-esm/Button/ButtonDanger.js +2 -2
- package/lib-esm/Button/ButtonGroup.js +1 -1
- package/lib-esm/Button/ButtonInvisible.d.ts +5 -5
- package/lib-esm/Button/ButtonInvisible.js +2 -2
- package/lib-esm/Button/ButtonOutline.d.ts +5 -5
- package/lib-esm/Button/ButtonOutline.js +2 -2
- package/lib-esm/Button/ButtonPrimary.d.ts +5 -5
- package/lib-esm/Button/ButtonPrimary.js +2 -2
- package/lib-esm/Button/ButtonTableList.d.ts +2 -1
- package/lib-esm/Button/ButtonTableList.js +2 -2
- package/lib-esm/CircleBadge.d.ts +5 -4
- package/lib-esm/CircleBadge.js +2 -2
- package/lib-esm/CircleOcticon.d.ts +36 -37
- package/lib-esm/CounterLabel.d.ts +2 -1
- package/lib-esm/CounterLabel.js +2 -2
- package/lib-esm/Details.d.ts +2 -1
- package/lib-esm/Details.js +3 -2
- package/lib-esm/Dialog/Dialog.d.ts +9 -5
- package/lib-esm/Dialog/Dialog.js +12 -12
- package/lib-esm/Dialog.d.ts +40 -40
- package/lib-esm/Dialog.js +2 -2
- package/lib-esm/Dropdown.d.ts +171 -22
- package/lib-esm/Dropdown.js +4 -4
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +49 -9
- package/lib-esm/DropdownMenu/DropdownButton.js +1 -3
- package/lib-esm/EmojiPicker/EmojiPicker.d.ts +17 -0
- package/lib-esm/EmojiPicker/EmojiPicker.js +181 -0
- package/lib-esm/EmojiPicker/EmojiPickerAnchor.d.ts +0 -0
- package/lib-esm/EmojiPicker/EmojiPickerAnchor.js +0 -0
- package/lib-esm/EmojiPicker/EmojiPickerPanel.d.ts +3 -0
- package/lib-esm/EmojiPicker/EmojiPickerPanel.js +8 -0
- package/lib-esm/EmojiPicker/data.d.ts +9 -0
- package/lib-esm/EmojiPicker/data.js +5434 -0
- package/lib-esm/EmojiPicker/index.d.ts +2 -0
- package/lib-esm/EmojiPicker/index.js +1 -0
- package/lib-esm/FilterList.d.ts +303 -265
- package/lib-esm/FilterList.js +7 -3
- package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
- package/lib-esm/FilteredSearch.d.ts +2 -1
- package/lib-esm/FilteredSearch.js +2 -2
- package/lib-esm/Flash.d.ts +2 -1
- package/lib-esm/Flash.js +2 -2
- package/lib-esm/Flex.js +1 -1
- package/lib-esm/FormGroup.d.ts +5 -4
- package/lib-esm/FormGroup.js +3 -3
- package/lib-esm/Header.d.ts +7 -6
- package/lib-esm/Header.js +5 -5
- package/lib-esm/Heading.d.ts +2 -1
- package/lib-esm/Heading.js +6 -2
- package/lib-esm/Label.d.ts +2 -1
- package/lib-esm/Label.js +4 -3
- package/lib-esm/LabelGroup.d.ts +2 -1
- package/lib-esm/LabelGroup.js +3 -3
- package/lib-esm/Link.d.ts +2 -1
- package/lib-esm/Link.js +2 -2
- package/lib-esm/NewButton/button.js +42 -31
- package/lib-esm/Overlay.d.ts +11 -14
- package/lib-esm/Overlay.js +4 -3
- package/lib-esm/Pagehead.d.ts +2 -1
- package/lib-esm/Pagehead.js +2 -2
- package/lib-esm/Pagination/Pagination.js +4 -4
- package/lib-esm/Popover.d.ts +5 -4
- package/lib-esm/Popover.js +5 -4
- package/lib-esm/Position.d.ts +4 -4
- package/lib-esm/Position.js +1 -1
- package/lib-esm/ProgressBar.d.ts +11 -16
- package/lib-esm/ProgressBar.js +11 -7
- package/lib-esm/SelectMenu/SelectMenu.d.ts +195 -34
- package/lib-esm/SelectMenu/SelectMenu.js +3 -2
- package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuDivider.js +2 -2
- package/lib-esm/SelectMenu/SelectMenuFilter.js +3 -3
- package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuFooter.js +3 -3
- package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +3 -2
- package/lib-esm/SelectMenu/SelectMenuItem.js +3 -3
- package/lib-esm/SelectMenu/SelectMenuList.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuList.js +2 -2
- package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
- package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +2 -3
- package/lib-esm/SelectMenu/SelectMenuModal.d.ts +3 -2
- package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
- package/lib-esm/SelectMenu/SelectMenuTab.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuTab.js +3 -3
- package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuTabPanel.js +3 -3
- package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +2 -1
- package/lib-esm/SelectMenu/SelectMenuTabs.js +3 -3
- package/lib-esm/SideNav.d.ts +8 -11
- package/lib-esm/SideNav.js +16 -8
- package/lib-esm/Spinner.d.ts +2 -1
- package/lib-esm/Spinner.js +2 -1
- package/lib-esm/StateLabel.d.ts +2 -1
- package/lib-esm/StateLabel.js +7 -8
- package/lib-esm/StyledOcticon.d.ts +2 -1
- package/lib-esm/StyledOcticon.js +3 -2
- package/lib-esm/SubNav.d.ts +11 -5
- package/lib-esm/SubNav.js +14 -9
- package/lib-esm/TabNav.d.ts +4 -3
- package/lib-esm/TabNav.js +3 -3
- package/lib-esm/TextInputWithTokens.d.ts +4 -6
- package/lib-esm/ThemeProvider.d.ts +0 -1
- package/lib-esm/ThemeProvider.js +4 -17
- package/lib-esm/Timeline.d.ts +393 -19
- package/lib-esm/Timeline.js +17 -16
- package/lib-esm/Token/AvatarToken.d.ts +1 -1
- package/lib-esm/Token/AvatarToken.js +1 -1
- package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
- package/lib-esm/Token/Token.d.ts +1 -1
- package/lib-esm/Token/TokenBase.js +1 -1
- package/lib-esm/Tooltip.d.ts +2 -1
- package/lib-esm/Tooltip.js +3 -3
- package/lib-esm/Truncate.d.ts +2 -1
- package/lib-esm/Truncate.js +2 -1
- package/lib-esm/UnderlineNav.d.ts +3 -2
- package/lib-esm/UnderlineNav.js +5 -5
- package/lib-esm/drafts.d.ts +0 -1
- package/lib-esm/drafts.js +1 -2
- package/lib-esm/index.d.ts +2 -2
- package/lib-esm/index.js +1 -1
- package/lib-esm/theme-preval.js +366 -512
- package/lib-esm/utils/testing.d.ts +61 -8
- package/lib-esm/utils/testing.js +0 -24
- package/package.json +13 -20
- package/lib/ActionList2/MenuContext.d.ts +0 -10
- package/lib/ActionList2/MenuContext.js +0 -15
- package/lib/ActionMenu2.d.ts +0 -313
- package/lib/ActionMenu2.js +0 -91
- package/lib/Checkbox.d.ts +0 -29
- package/lib/Checkbox.js +0 -64
- package/lib-esm/ActionList2/MenuContext.d.ts +0 -10
- package/lib-esm/ActionList2/MenuContext.js +0 -3
- package/lib-esm/ActionMenu2.d.ts +0 -313
- package/lib-esm/ActionMenu2.js +0 -67
- package/lib-esm/Checkbox.d.ts +0 -29
- package/lib-esm/Checkbox.js +0 -44
@@ -8,10 +8,43 @@ import Truncate from '../Truncate';
|
|
8
8
|
import styled from 'styled-components';
|
9
9
|
import { StyledHeader } from './Header';
|
10
10
|
import { StyledDivider } from './Divider';
|
11
|
-
import { useTheme } from '../ThemeProvider';
|
11
|
+
import { useColorSchemeVar, useTheme } from '../ThemeProvider';
|
12
12
|
import { activeDescendantActivatedDirectly, activeDescendantActivatedIndirectly, isActiveDescendantAttribute } from '../behaviors/focusZone';
|
13
13
|
import { useSSRSafeId } from '@react-aria/ssr';
|
14
14
|
|
15
|
+
/**
|
16
|
+
* These colors are not yet in our default theme. Need to remove this once they are added.
|
17
|
+
*/
|
18
|
+
const customItemThemes = {
|
19
|
+
default: {
|
20
|
+
hover: {
|
21
|
+
light: 'rgba(46, 77, 108, 0.06)',
|
22
|
+
dark: 'rgba(201, 206, 212, 0.12)',
|
23
|
+
dark_dimmed: 'rgba(201, 206, 212, 0.12)'
|
24
|
+
},
|
25
|
+
focus: {
|
26
|
+
light: 'rgba(54, 77, 100, 0.16)',
|
27
|
+
dark: 'rgba(201, 206, 212, 0.24)',
|
28
|
+
dark_dimmed: 'rgba(201, 206, 212, 0.24)'
|
29
|
+
}
|
30
|
+
},
|
31
|
+
danger: {
|
32
|
+
hover: {
|
33
|
+
light: 'rgba(234, 74, 90, 0.08)',
|
34
|
+
dark: 'rgba(248, 81, 73, 0.16)',
|
35
|
+
dark_dimmed: 'rgba(248, 81, 73, 0.16)'
|
36
|
+
},
|
37
|
+
focus: {
|
38
|
+
light: 'rgba(234, 74, 90, 0.14)',
|
39
|
+
dark: 'rgba(248, 81, 73, 0.24)',
|
40
|
+
dark_dimmed: 'rgba(248, 81, 73, 0.24)'
|
41
|
+
}
|
42
|
+
}
|
43
|
+
};
|
44
|
+
/**
|
45
|
+
* Contract for props passed to the `Item` component.
|
46
|
+
*/
|
47
|
+
|
15
48
|
const getItemVariant = (variant = 'default', disabled) => {
|
16
49
|
if (disabled) {
|
17
50
|
return {
|
@@ -28,10 +61,7 @@ const getItemVariant = (variant = 'default', disabled) => {
|
|
28
61
|
color: get('colors.danger.fg'),
|
29
62
|
iconColor: get('colors.danger.fg'),
|
30
63
|
annotationColor: get('colors.fg.muted'),
|
31
|
-
hoverCursor: 'pointer'
|
32
|
-
hoverBg: get('colors.actionListItem.danger.hoverBg'),
|
33
|
-
focusBg: get('colors.actionListItem.danger.activeBg'),
|
34
|
-
hoverText: get('colors.actionListItem.danger.hoverText')
|
64
|
+
hoverCursor: 'pointer'
|
35
65
|
};
|
36
66
|
|
37
67
|
default:
|
@@ -39,34 +69,28 @@ const getItemVariant = (variant = 'default', disabled) => {
|
|
39
69
|
color: get('colors.fg.default'),
|
40
70
|
iconColor: get('colors.fg.muted'),
|
41
71
|
annotationColor: get('colors.fg.muted'),
|
42
|
-
hoverCursor: 'pointer'
|
43
|
-
hoverBg: get('colors.actionListItem.default.hoverBg'),
|
44
|
-
focusBg: get('colors.actionListItem.default.activeBg')
|
72
|
+
hoverCursor: 'pointer'
|
45
73
|
};
|
46
74
|
}
|
47
75
|
};
|
48
76
|
|
49
77
|
const DividedContent = styled.div.withConfig({
|
50
78
|
displayName: "Item__DividedContent",
|
51
|
-
componentId: "
|
79
|
+
componentId: "jqpvy8-0"
|
52
80
|
})(["display:flex;min-width:0;position:relative;flex-grow:1;"]);
|
53
81
|
const MainContent = styled.div.withConfig({
|
54
82
|
displayName: "Item__MainContent",
|
55
|
-
componentId: "
|
83
|
+
componentId: "jqpvy8-1"
|
56
84
|
})(["align-items:baseline;display:flex;min-width:0;flex-direction:var(--main-content-flex-direction);flex-grow:1;"]);
|
57
85
|
const StyledItem = styled.div.withConfig({
|
58
86
|
displayName: "Item__StyledItem",
|
59
|
-
componentId: "
|
60
|
-
})(["padding:6px ", ";display:flex;border-radius:", ";color:", ";transition:background 33.333ms linear;text-decoration:none;@media (hover:hover) and (pointer:fine){:hover{background:var(
|
87
|
+
componentId: "jqpvy8-2"
|
88
|
+
})(["padding:6px ", ";display:flex;border-radius:", ";color:", ";transition:background 33.333ms linear;text-decoration:none;@media (hover:hover) and (pointer:fine){:hover{background:var(--item-hover-bg-override,", ");cursor:", ";}}:not(:first-of-type):not(", " + &):not(", " + &){margin-top:", ";", "::before{content:' ';display:block;position:absolute;width:100%;top:-7px;border:0 solid ", ";border-top-width:", ";}}&:hover ", "::before,:hover + * ", "::before{border-color:var(--item-hover-divider-border-color-override,transparent) !important;}&:focus ", "::before,:focus + * ", "::before,&[", "] ", "::before,[", "] + & ", "::before{border-color:transparent !important;}&[", "='", "']{background:", ";}&[", "='", "']{background:", ";}&:focus{background:", ";outline:none;}&:active{background:", ";}", ""], get('space.2'), get('radii.2'), ({
|
61
89
|
variant,
|
62
90
|
item
|
63
91
|
}) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).color, ({
|
64
|
-
|
65
|
-
|
66
|
-
}) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverBg, ({
|
67
|
-
variant,
|
68
|
-
item
|
69
|
-
}) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverText, ({
|
92
|
+
hoverBackground
|
93
|
+
}) => hoverBackground, ({
|
70
94
|
variant,
|
71
95
|
item
|
72
96
|
}) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverCursor, StyledDivider, StyledHeader, ({
|
@@ -74,52 +98,48 @@ const StyledItem = styled.div.withConfig({
|
|
74
98
|
}) => showDivider ? `1px` : '0', DividedContent, get('colors.border.muted'), ({
|
75
99
|
showDivider
|
76
100
|
}) => showDivider ? `1px` : '0', DividedContent, DividedContent, DividedContent, DividedContent, isActiveDescendantAttribute, DividedContent, isActiveDescendantAttribute, DividedContent, isActiveDescendantAttribute, activeDescendantActivatedDirectly, ({
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
}) =>
|
83
|
-
|
84
|
-
|
85
|
-
}) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, ({
|
86
|
-
variant,
|
87
|
-
item
|
88
|
-
}) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, sx);
|
101
|
+
focusBackground
|
102
|
+
}) => focusBackground, isActiveDescendantAttribute, activeDescendantActivatedIndirectly, ({
|
103
|
+
hoverBackground
|
104
|
+
}) => hoverBackground, ({
|
105
|
+
focusBackground
|
106
|
+
}) => focusBackground, ({
|
107
|
+
focusBackground
|
108
|
+
}) => focusBackground, sx);
|
89
109
|
export const TextContainer = styled.span.withConfig({
|
90
110
|
displayName: "Item__TextContainer",
|
91
|
-
componentId: "
|
111
|
+
componentId: "jqpvy8-3"
|
92
112
|
})([""]);
|
93
113
|
const BaseVisualContainer = styled.div.withConfig({
|
94
114
|
displayName: "Item__BaseVisualContainer",
|
95
|
-
componentId: "
|
96
|
-
})(["height:20px;width:", ";margin-right:", ";display:flex;justify-content:center;align-items:center;
|
115
|
+
componentId: "jqpvy8-4"
|
116
|
+
})(["height:20px;width:", ";margin-right:", ";display:flex;justify-content:center;align-items:center;"], get('space.3'), get('space.2'));
|
97
117
|
const ColoredVisualContainer = styled(BaseVisualContainer).withConfig({
|
98
118
|
displayName: "Item__ColoredVisualContainer",
|
99
|
-
componentId: "
|
119
|
+
componentId: "jqpvy8-5"
|
100
120
|
})(["svg{fill:", ";font-size:", ";}"], ({
|
101
121
|
variant,
|
102
122
|
disabled
|
103
123
|
}) => getItemVariant(variant, disabled).iconColor, get('fontSizes.0'));
|
104
124
|
const LeadingVisualContainer = styled(ColoredVisualContainer).withConfig({
|
105
125
|
displayName: "Item__LeadingVisualContainer",
|
106
|
-
componentId: "
|
107
|
-
})(["display:flex;flex-direction:column;justify-content:center;"]);
|
126
|
+
componentId: "jqpvy8-6"
|
127
|
+
})(["flex-shrink:0;display:flex;flex-direction:column;justify-content:center;"]);
|
108
128
|
const TrailingContent = styled(ColoredVisualContainer).withConfig({
|
109
129
|
displayName: "Item__TrailingContent",
|
110
|
-
componentId: "
|
130
|
+
componentId: "jqpvy8-7"
|
111
131
|
})(["color:", "};margin-left:", ";margin-right:0;width:auto;div:nth-child(2){margin-left:", ";}"], ({
|
112
132
|
variant,
|
113
133
|
disabled
|
114
134
|
}) => getItemVariant(variant, disabled).annotationColor, get('space.2'), get('space.2'));
|
115
135
|
const DescriptionContainer = styled.span.withConfig({
|
116
136
|
displayName: "Item__DescriptionContainer",
|
117
|
-
componentId: "
|
137
|
+
componentId: "jqpvy8-8"
|
118
138
|
})(["color:", ";font-size:", ";line-height:16px;margin-left:var(--description-container-margin-left);min-width:0;flex-grow:1;flex-basis:var(--description-container-flex-basis);"], get('colors.fg.muted'), get('fontSizes.0'));
|
119
139
|
const MultiSelectIcon = styled.svg.withConfig({
|
120
140
|
displayName: "Item__MultiSelectIcon",
|
121
|
-
componentId: "
|
122
|
-
})(["rect{fill:", ";stroke:", ";
|
141
|
+
componentId: "jqpvy8-9"
|
142
|
+
})(["rect{fill:", ";stroke:", ";}path{fill:", ";boxshadow:", ";opacity:", ";}"], ({
|
123
143
|
selected
|
124
144
|
}) => selected ? get('colors.accent.fg') : get('colors.canvas.default'), ({
|
125
145
|
selected
|
@@ -176,6 +196,9 @@ export const Item = /*#__PURE__*/React.forwardRef((itemProps, ref) => {
|
|
176
196
|
onAction === null || onAction === void 0 ? void 0 : onAction(itemProps, event);
|
177
197
|
}
|
178
198
|
}, [onAction, disabled, itemProps, onClick]);
|
199
|
+
const customItemTheme = customItemThemes[variant];
|
200
|
+
const hoverBackground = useColorSchemeVar(customItemTheme.hover, 'inherit');
|
201
|
+
const focusBackground = useColorSchemeVar(customItemTheme.focus, 'inherit');
|
179
202
|
const {
|
180
203
|
theme
|
181
204
|
} = useTheme();
|
@@ -191,7 +214,9 @@ export const Item = /*#__PURE__*/React.forwardRef((itemProps, ref) => {
|
|
191
214
|
}, props, {
|
192
215
|
"data-id": id,
|
193
216
|
onKeyPress: keyPressHandler,
|
194
|
-
onClick: clickHandler
|
217
|
+
onClick: clickHandler,
|
218
|
+
hoverBackground: disabled ? 'inherit' : hoverBackground,
|
219
|
+
focusBackground: disabled ? 'inherit' : focusBackground
|
195
220
|
}), !!selected === selected && /*#__PURE__*/React.createElement(BaseVisualContainer, null, selectionVariant === 'multiple' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MultiSelectIcon, {
|
196
221
|
selected: selected,
|
197
222
|
width: "16",
|
@@ -22,7 +22,7 @@ function isGroupedListProps(props) {
|
|
22
22
|
|
23
23
|
const StyledList = styled.div.withConfig({
|
24
24
|
displayName: "List__StyledList",
|
25
|
-
componentId: "
|
25
|
+
componentId: "yr2k7d-0"
|
26
26
|
})(["font-size:", ";line-height:20px;&[", "],&:focus-within{--item-hover-bg-override:none;--item-hover-divider-border-color-override:", ";}"], get('fontSizes.1'), hasActiveDescendantAttribute, get('colors.border.muted'));
|
27
27
|
/**
|
28
28
|
* Returns `sx` prop values for `List` children matching the given `List` style variation.
|
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
|
-
import { SxProp } from '../sx';
|
1
|
+
/// <reference types="react" />
|
3
2
|
/**
|
4
3
|
* Visually separates `Item`s or `Group`s in an `ActionList`.
|
5
4
|
*/
|
6
|
-
export declare
|
5
|
+
export declare function Divider(): JSX.Element;
|
@@ -1,26 +1,23 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import Box from '../Box';
|
3
3
|
import { get } from '../constants';
|
4
|
-
|
4
|
+
|
5
5
|
/**
|
6
6
|
* Visually separates `Item`s or `Group`s in an `ActionList`.
|
7
7
|
*/
|
8
|
-
|
9
|
-
export const Divider = ({
|
10
|
-
sx = {}
|
11
|
-
}) => {
|
8
|
+
export function Divider() {
|
12
9
|
return /*#__PURE__*/React.createElement(Box, {
|
13
10
|
as: "li",
|
14
11
|
role: "separator",
|
15
|
-
sx:
|
12
|
+
sx: {
|
16
13
|
height: 1,
|
17
14
|
backgroundColor: 'actionListItem.inlineDivider',
|
18
15
|
marginTop: theme => `calc(${get('space.2')(theme)} - 1px)`,
|
19
16
|
marginBottom: 2,
|
20
17
|
listStyle: 'none' // hide the ::marker inserted by browser's stylesheet
|
21
18
|
|
22
|
-
},
|
19
|
+
},
|
23
20
|
"data-component": "ActionList.Divider"
|
24
21
|
});
|
25
|
-
}
|
22
|
+
}
|
26
23
|
Divider.displayName = "Divider";
|
@@ -1,37 +1,11 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { SxProp } from '../sx';
|
3
|
+
import { HeaderProps } from './Header';
|
3
4
|
import { ListProps } from './List';
|
4
|
-
|
5
|
-
export declare type GroupProps = {
|
6
|
-
/**
|
7
|
-
* Style variations. Usage is discretionary.
|
8
|
-
*
|
9
|
-
* - `"filled"` - Superimposed on a background, offset from nearby content
|
10
|
-
* - `"subtle"` - Relatively less offset from nearby content
|
11
|
-
*/
|
12
|
-
variant?: 'subtle' | 'filled';
|
13
|
-
/**
|
14
|
-
* Primary text which names a `Group`.
|
15
|
-
*/
|
16
|
-
title?: string;
|
17
|
-
/**
|
18
|
-
* Secondary text which provides additional information about a `Group`.
|
19
|
-
*/
|
20
|
-
auxiliaryText?: string;
|
21
|
-
/**
|
22
|
-
* The ARIA role describing the function of the list inside `Group` component. `listbox` or `menu` are a common values.
|
23
|
-
*/
|
24
|
-
role?: AriaRole;
|
25
|
-
} & SxProp & {
|
26
|
-
/**
|
27
|
-
* Whether multiple Items or a single Item can be selected in the Group. Overrides value on ActionList root.
|
28
|
-
*/
|
5
|
+
export declare type GroupProps = HeaderProps & SxProp & {
|
29
6
|
selectionVariant?: ListProps['selectionVariant'] | false;
|
30
7
|
};
|
31
8
|
declare type ContextProps = Pick<GroupProps, 'selectionVariant'>;
|
32
9
|
export declare const GroupContext: React.Context<ContextProps>;
|
33
10
|
export declare const Group: React.FC<GroupProps>;
|
34
|
-
export declare type HeaderProps = Pick<GroupProps, 'variant' | 'title' | 'auxiliaryText'> & {
|
35
|
-
labelId: string;
|
36
|
-
};
|
37
11
|
export {};
|
@@ -1,20 +1,17 @@
|
|
1
1
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2
2
|
|
3
3
|
import React from 'react';
|
4
|
-
import { useSSRSafeId } from '@react-aria/ssr';
|
5
4
|
import Box from '../Box';
|
6
|
-
import {
|
5
|
+
import { Header } from './Header';
|
7
6
|
export const GroupContext = /*#__PURE__*/React.createContext({});
|
8
7
|
export const Group = ({
|
9
8
|
title,
|
10
|
-
variant
|
9
|
+
variant,
|
11
10
|
auxiliaryText,
|
12
11
|
selectionVariant,
|
13
|
-
role,
|
14
12
|
sx = {},
|
15
13
|
...props
|
16
14
|
}) => {
|
17
|
-
const labelId = useSSRSafeId();
|
18
15
|
return /*#__PURE__*/React.createElement(Box, _extends({
|
19
16
|
as: "li",
|
20
17
|
sx: {
|
@@ -28,8 +25,7 @@ export const Group = ({
|
|
28
25
|
}, props), title && /*#__PURE__*/React.createElement(Header, {
|
29
26
|
title: title,
|
30
27
|
variant: variant,
|
31
|
-
auxiliaryText: auxiliaryText
|
32
|
-
labelId: labelId
|
28
|
+
auxiliaryText: auxiliaryText
|
33
29
|
}), /*#__PURE__*/React.createElement(GroupContext.Provider, {
|
34
30
|
value: {
|
35
31
|
selectionVariant
|
@@ -38,50 +34,7 @@ export const Group = ({
|
|
38
34
|
as: "ul",
|
39
35
|
sx: {
|
40
36
|
paddingInlineStart: 0
|
41
|
-
}
|
42
|
-
"aria-labelledby": title ? labelId : undefined,
|
43
|
-
role: role
|
37
|
+
}
|
44
38
|
}, props.children)));
|
45
39
|
};
|
46
|
-
Group.displayName = "Group";
|
47
|
-
|
48
|
-
/**
|
49
|
-
* Displays the name and description of a `Group`.
|
50
|
-
*
|
51
|
-
* For visual presentation only. It's hidden from screen readers.
|
52
|
-
*/
|
53
|
-
const Header = ({
|
54
|
-
variant,
|
55
|
-
title,
|
56
|
-
auxiliaryText,
|
57
|
-
labelId,
|
58
|
-
...props
|
59
|
-
}) => {
|
60
|
-
const {
|
61
|
-
variant: listVariant
|
62
|
-
} = React.useContext(ListContext);
|
63
|
-
const styles = {
|
64
|
-
paddingY: '6px',
|
65
|
-
paddingX: listVariant === 'full' ? 2 : 3,
|
66
|
-
fontSize: 0,
|
67
|
-
fontWeight: 'bold',
|
68
|
-
color: 'fg.muted',
|
69
|
-
...(variant === 'filled' && {
|
70
|
-
backgroundColor: 'canvas.subtle',
|
71
|
-
marginX: 0,
|
72
|
-
marginBottom: 2,
|
73
|
-
borderTop: '1px solid',
|
74
|
-
borderBottom: '1px solid',
|
75
|
-
borderColor: 'neutral.muted'
|
76
|
-
})
|
77
|
-
};
|
78
|
-
return /*#__PURE__*/React.createElement(Box, _extends({
|
79
|
-
sx: styles,
|
80
|
-
role: "presentation",
|
81
|
-
"aria-hidden": "true"
|
82
|
-
}, props), /*#__PURE__*/React.createElement("span", {
|
83
|
-
id: labelId
|
84
|
-
}, title), auxiliaryText && /*#__PURE__*/React.createElement("span", null, auxiliaryText));
|
85
|
-
};
|
86
|
-
|
87
|
-
Header.displayName = "Header";
|
40
|
+
Group.displayName = "Group";
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import { SxProp } from '../sx';
|
3
|
+
/**
|
4
|
+
* Contract for props passed to the `Header` component.
|
5
|
+
*/
|
6
|
+
export declare type HeaderProps = {
|
7
|
+
/**
|
8
|
+
* Style variations. Usage is discretionary.
|
9
|
+
*
|
10
|
+
* - `"filled"` - Superimposed on a background, offset from nearby content
|
11
|
+
* - `"subtle"` - Relatively less offset from nearby content
|
12
|
+
*/
|
13
|
+
variant?: 'subtle' | 'filled';
|
14
|
+
/**
|
15
|
+
* Primary text which names a `Group`.
|
16
|
+
*/
|
17
|
+
title?: string;
|
18
|
+
/**
|
19
|
+
* Secondary text which provides additional information about a `Group`.
|
20
|
+
*/
|
21
|
+
auxiliaryText?: string;
|
22
|
+
} & SxProp;
|
23
|
+
/**
|
24
|
+
* Displays the name and description of a `Group`.
|
25
|
+
*/
|
26
|
+
export declare const Header: ({ variant, title, auxiliaryText, sx, ...props }: HeaderProps) => JSX.Element;
|
@@ -0,0 +1,44 @@
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2
|
+
|
3
|
+
import React from 'react';
|
4
|
+
import Box from '../Box';
|
5
|
+
import { ListContext } from './List';
|
6
|
+
/**
|
7
|
+
* Contract for props passed to the `Header` component.
|
8
|
+
*/
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Displays the name and description of a `Group`.
|
12
|
+
*/
|
13
|
+
export const Header = ({
|
14
|
+
variant = 'subtle',
|
15
|
+
title,
|
16
|
+
auxiliaryText,
|
17
|
+
sx = {},
|
18
|
+
...props
|
19
|
+
}) => {
|
20
|
+
const {
|
21
|
+
variant: listVariant
|
22
|
+
} = React.useContext(ListContext);
|
23
|
+
const styles = {
|
24
|
+
paddingY: '6px',
|
25
|
+
paddingX: listVariant === 'full' ? 2 : 3,
|
26
|
+
fontSize: 0,
|
27
|
+
fontWeight: 'bold',
|
28
|
+
color: 'fg.muted',
|
29
|
+
...(variant === 'filled' && {
|
30
|
+
backgroundColor: 'canvas.subtle',
|
31
|
+
marginX: 0,
|
32
|
+
marginBottom: 2,
|
33
|
+
borderTop: '1px solid',
|
34
|
+
borderBottom: '1px solid',
|
35
|
+
borderColor: 'neutral.muted'
|
36
|
+
}),
|
37
|
+
...sx
|
38
|
+
};
|
39
|
+
return /*#__PURE__*/React.createElement(Box, _extends({
|
40
|
+
sx: styles,
|
41
|
+
role: "heading"
|
42
|
+
}, props), title, auxiliaryText && /*#__PURE__*/React.createElement("span", null, auxiliaryText));
|
43
|
+
};
|
44
|
+
Header.displayName = "Header";
|
@@ -8,7 +8,6 @@ import Box from '../Box';
|
|
8
8
|
import sx, { merge } from '../sx';
|
9
9
|
import createSlots from '../utils/create-slots';
|
10
10
|
import { ListContext } from './List';
|
11
|
-
import { MenuContext } from './MenuContext';
|
12
11
|
import { Selection } from './Selection';
|
13
12
|
export const getVariantStyles = (variant, disabled) => {
|
14
13
|
if (disabled) {
|
@@ -44,7 +43,7 @@ const {
|
|
44
43
|
export { Slot };
|
45
44
|
const LiBox = styled.li.withConfig({
|
46
45
|
displayName: "Item__LiBox",
|
47
|
-
componentId: "
|
46
|
+
componentId: "c3scat-0"
|
48
47
|
})(sx);
|
49
48
|
export const TEXT_ROW_HEIGHT = '20px'; // custom value off the scale
|
50
49
|
|
@@ -52,10 +51,9 @@ export const Item = /*#__PURE__*/React.forwardRef(({
|
|
52
51
|
variant = 'default',
|
53
52
|
disabled = false,
|
54
53
|
selected = undefined,
|
55
|
-
onSelect,
|
54
|
+
onSelect = () => null,
|
56
55
|
sx: sxProp = {},
|
57
56
|
id,
|
58
|
-
role,
|
59
57
|
_PrivateItemWrapper,
|
60
58
|
...props
|
61
59
|
}, forwardedRef) => {
|
@@ -63,10 +61,6 @@ export const Item = /*#__PURE__*/React.forwardRef(({
|
|
63
61
|
variant: listVariant,
|
64
62
|
showDividers
|
65
63
|
} = React.useContext(ListContext);
|
66
|
-
const {
|
67
|
-
itemRole,
|
68
|
-
afterSelect
|
69
|
-
} = React.useContext(MenuContext);
|
70
64
|
const {
|
71
65
|
theme
|
72
66
|
} = useTheme();
|
@@ -139,25 +133,16 @@ export const Item = /*#__PURE__*/React.forwardRef(({
|
|
139
133
|
}
|
140
134
|
};
|
141
135
|
const clickHandler = React.useCallback(event => {
|
142
|
-
if (typeof onSelect !== 'function') return;
|
143
136
|
if (disabled) return;
|
144
|
-
|
145
|
-
|
146
|
-
onSelect(event); // if this Item is inside a Menu, close the Menu
|
147
|
-
|
148
|
-
if (typeof afterSelect === 'function') afterSelect();
|
149
|
-
}
|
150
|
-
}, [onSelect, disabled, afterSelect]);
|
137
|
+
if (!event.defaultPrevented) onSelect(event);
|
138
|
+
}, [onSelect, disabled]);
|
151
139
|
const keyPressHandler = React.useCallback(event => {
|
152
|
-
if (typeof onSelect !== 'function') return;
|
153
140
|
if (disabled) return;
|
154
141
|
|
155
142
|
if (!event.defaultPrevented && [' ', 'Enter'].includes(event.key)) {
|
156
|
-
onSelect(event);
|
157
|
-
|
158
|
-
if (typeof afterSelect === 'function') afterSelect();
|
143
|
+
onSelect(event);
|
159
144
|
}
|
160
|
-
}, [onSelect, disabled
|
145
|
+
}, [onSelect, disabled]); // use props.id if provided, otherwise generate one.
|
161
146
|
|
162
147
|
const labelId = useSSRSafeId(id);
|
163
148
|
const inlineDescriptionId = useSSRSafeId(id && `${id}--inline-description`);
|
@@ -179,8 +164,7 @@ export const Item = /*#__PURE__*/React.forwardRef(({
|
|
179
164
|
"aria-disabled": disabled ? true : undefined,
|
180
165
|
tabIndex: disabled || _PrivateItemWrapper ? undefined : 0,
|
181
166
|
"aria-labelledby": `${labelId} ${slots.InlineDescription ? inlineDescriptionId : ''}`,
|
182
|
-
"aria-describedby": slots.BlockDescription ? blockDescriptionId : undefined
|
183
|
-
role: role || itemRole
|
167
|
+
"aria-describedby": slots.BlockDescription ? blockDescriptionId : undefined
|
184
168
|
}, props), /*#__PURE__*/React.createElement(ItemWrapper, null, /*#__PURE__*/React.createElement(Selection, {
|
185
169
|
selected: selected
|
186
170
|
}), slots.LeadingVisual, /*#__PURE__*/React.createElement(Box, {
|
@@ -20,7 +20,7 @@ export declare type ListProps = {
|
|
20
20
|
*/
|
21
21
|
role?: AriaRole;
|
22
22
|
} & SxProp;
|
23
|
-
declare type ContextProps =
|
23
|
+
declare type ContextProps = Omit<ListProps, 'sx'>;
|
24
24
|
export declare const ListContext: React.Context<ContextProps>;
|
25
25
|
export declare const List: PolymorphicForwardRefComponent<"ul", ListProps>;
|
26
26
|
export {};
|
@@ -3,17 +3,15 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
3
3
|
import React from 'react';
|
4
4
|
import styled from 'styled-components';
|
5
5
|
import sx, { merge } from '../sx';
|
6
|
-
import { MenuContext } from './MenuContext';
|
7
6
|
export const ListContext = /*#__PURE__*/React.createContext({});
|
8
7
|
const ListBox = styled.ul.withConfig({
|
9
8
|
displayName: "List__ListBox",
|
10
|
-
componentId: "
|
9
|
+
componentId: "cvbq60-0"
|
11
10
|
})(sx);
|
12
11
|
export const List = /*#__PURE__*/React.forwardRef(({
|
13
12
|
variant = 'inset',
|
14
13
|
selectionVariant,
|
15
14
|
showDividers = false,
|
16
|
-
role,
|
17
15
|
sx: sxProp = {},
|
18
16
|
...props
|
19
17
|
}, forwardedRef) => {
|
@@ -23,14 +21,9 @@ export const List = /*#__PURE__*/React.forwardRef(({
|
|
23
21
|
// reset ul styles
|
24
22
|
paddingY: variant === 'inset' ? 2 : 0
|
25
23
|
};
|
26
|
-
/** if list is inside a Menu, it will get a role from the Menu */
|
27
|
-
|
28
|
-
const {
|
29
|
-
listRole
|
30
|
-
} = React.useContext(MenuContext);
|
31
24
|
return /*#__PURE__*/React.createElement(ListBox, _extends({
|
32
25
|
sx: merge(styles, sxProp),
|
33
|
-
|
26
|
+
"aria-multiselectable": selectionVariant === 'multiple' ? true : undefined
|
34
27
|
}, props, {
|
35
28
|
ref: forwardedRef
|
36
29
|
}), /*#__PURE__*/React.createElement(ListContext.Provider, {
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
2
2
|
import { CheckIcon } from '@primer/octicons-react';
|
3
3
|
import { ListContext } from './List';
|
4
4
|
import { GroupContext } from './Group';
|
5
|
-
import { MenuContext } from './MenuContext';
|
6
5
|
import { LeadingVisualContainer } from './Visuals';
|
7
6
|
export const Selection = ({
|
8
7
|
selected
|
@@ -13,9 +12,6 @@ export const Selection = ({
|
|
13
12
|
const {
|
14
13
|
selectionVariant: groupSelectionVariant
|
15
14
|
} = React.useContext(GroupContext);
|
16
|
-
const {
|
17
|
-
parent
|
18
|
-
} = React.useContext(MenuContext);
|
19
15
|
/** selectionVariant in Group can override the selectionVariant in List root */
|
20
16
|
|
21
17
|
const selectionVariant = typeof groupSelectionVariant !== 'undefined' ? groupSelectionVariant : listSelectionVariant; // if selectionVariant is not set on List, don't show selection
|
@@ -26,11 +22,6 @@ export const Selection = ({
|
|
26
22
|
return null;
|
27
23
|
}
|
28
24
|
|
29
|
-
if (parent === 'ActionMenu') {
|
30
|
-
throw new Error('ActionList cannot have a selectionVariant inside ActionMenu, please use DropdownMenu or SelectPanel instead. More information: https://primer.style/design/components/action-list#application');
|
31
|
-
return null;
|
32
|
-
}
|
33
|
-
|
34
25
|
if (selectionVariant === 'single') {
|
35
26
|
return /*#__PURE__*/React.createElement(LeadingVisualContainer, null, selected && /*#__PURE__*/React.createElement(CheckIcon, null));
|
36
27
|
}
|
@@ -46,9 +37,7 @@ export const Selection = ({
|
|
46
37
|
sx: {
|
47
38
|
rect: {
|
48
39
|
fill: selected ? 'accent.fg' : 'canvas.default',
|
49
|
-
stroke: selected ? 'accent.fg' : 'border.default'
|
50
|
-
shapeRendering: 'auto' // this is a workaround to override global style in github/github, see primer/react#1666
|
51
|
-
|
40
|
+
stroke: selected ? 'accent.fg' : 'border.default'
|
52
41
|
},
|
53
42
|
path: {
|
54
43
|
fill: 'fg.onEmphasis',
|
@@ -1,4 +1,5 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
+
import { Divider } from './Divider';
|
2
3
|
export type { ListProps as ActionListProps } from './List';
|
3
4
|
export type { GroupProps } from './Group';
|
4
5
|
export type { ItemProps } from './Item';
|
@@ -25,7 +26,7 @@ export declare const ActionList: import("@radix-ui/react-polymorphic").ForwardRe
|
|
25
26
|
referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
|
26
27
|
}>;
|
27
28
|
/** Visually separates `Item`s or `Group`s in an `ActionList`. */
|
28
|
-
Divider:
|
29
|
+
Divider: typeof Divider;
|
29
30
|
/** Secondary text which provides additional information about an `Item`. */
|
30
31
|
Description: import("react").FC<import("./Description").DescriptionProps>;
|
31
32
|
/** Icon (or similar) positioned before `Item` text. */
|