@primer/components 0.0.0-2021111171525 → 0.0.0-20211111716
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 +940 -41
- package/README.md +16 -16
- package/codemods/__tests__/deprecateUtilityComponents.js +200 -0
- package/codemods/__tests__/removeSystemProps.js +225 -0
- package/codemods/deprecateUtilityComponents.js +111 -0
- package/codemods/lib/modifyProps.js +9 -7
- package/codemods/lib/prettify.js +1 -1
- package/codemods/lib/replaceImportSource.js +5 -5
- package/codemods/removeSystemProps.js +312 -0
- package/dist/browser.esm.js +1267 -853
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +1304 -890
- package/dist/browser.umd.js.map +1 -1
- package/lib/ActionList/Divider.d.ts +9 -0
- package/lib/ActionList/Divider.js +40 -0
- package/lib/ActionList/Group.d.ts +28 -0
- package/lib/ActionList/Group.js +35 -0
- package/lib/ActionList/Header.d.ts +29 -0
- package/lib/ActionList/Header.js +51 -0
- package/lib/ActionList/Item.d.ts +98 -0
- package/lib/ActionList/Item.js +276 -0
- package/lib/ActionList/List.d.ts +88 -0
- package/lib/ActionList/List.js +199 -0
- package/lib/ActionList/index.d.ts +17 -0
- package/lib/ActionList/index.js +29 -0
- package/lib/ActionList2/Description.d.ts +12 -0
- package/lib/ActionList2/Description.js +57 -0
- package/lib/ActionList2/Divider.d.ts +5 -0
- package/lib/ActionList2/Divider.js +35 -0
- package/lib/ActionList2/Group.d.ts +37 -0
- package/lib/ActionList2/Group.js +106 -0
- package/lib/ActionList2/Item.d.ts +63 -0
- package/lib/ActionList2/Item.js +244 -0
- package/lib/ActionList2/LinkItem.d.ts +17 -0
- package/lib/ActionList2/LinkItem.js +57 -0
- package/lib/ActionList2/List.d.ts +26 -0
- package/lib/ActionList2/List.js +58 -0
- package/lib/ActionList2/Selection.d.ts +5 -0
- package/lib/ActionList2/Selection.js +86 -0
- package/lib/ActionList2/Visuals.d.ts +9 -0
- package/lib/ActionList2/Visuals.js +90 -0
- package/lib/ActionList2/index.d.ts +36 -0
- package/lib/ActionList2/index.js +47 -0
- package/lib/ActionMenu.d.ts +40 -0
- package/lib/ActionMenu.js +103 -0
- package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
- package/lib/AnchoredOverlay/AnchoredOverlay.js +124 -0
- package/lib/AnchoredOverlay/index.d.ts +2 -0
- package/lib/AnchoredOverlay/index.js +13 -0
- package/lib/Autocomplete/Autocomplete.d.ts +305 -0
- package/lib/Autocomplete/Autocomplete.js +145 -0
- package/lib/Autocomplete/AutocompleteContext.d.ts +17 -0
- package/lib/Autocomplete/AutocompleteContext.js +11 -0
- package/lib/Autocomplete/AutocompleteInput.d.ts +293 -0
- package/lib/Autocomplete/AutocompleteInput.js +157 -0
- package/lib/Autocomplete/AutocompleteMenu.d.ts +72 -0
- package/lib/Autocomplete/AutocompleteMenu.js +224 -0
- package/lib/Autocomplete/AutocompleteOverlay.d.ts +20 -0
- package/lib/Autocomplete/AutocompleteOverlay.js +80 -0
- package/lib/Autocomplete/index.d.ts +2 -0
- package/lib/Autocomplete/index.js +15 -0
- package/lib/Avatar.d.ts +14 -0
- package/lib/Avatar.js +1 -12
- package/lib/AvatarPair.d.ts +8 -0
- package/lib/AvatarPair.js +9 -16
- package/lib/AvatarStack.d.ts +8 -0
- package/lib/AvatarStack.js +12 -23
- package/lib/BaseStyles.d.ts +14 -0
- package/lib/BaseStyles.js +25 -31
- package/lib/BorderBox.d.ts +7 -0
- package/lib/BorderBox.js +5 -16
- package/lib/Box.d.ts +6 -0
- package/lib/Box.js +2 -15
- package/lib/BranchName.d.ts +5 -0
- package/lib/BranchName.js +1 -14
- package/lib/Breadcrumbs.d.ts +41 -0
- package/lib/Breadcrumbs.js +82 -0
- package/lib/Button/Button.d.ts +284 -0
- package/lib/Button/Button.js +3 -15
- package/lib/Button/ButtonBase.d.ts +9 -0
- package/lib/Button/ButtonBase.js +2 -25
- package/lib/Button/ButtonClose.d.ts +279 -0
- package/lib/Button/ButtonClose.js +9 -26
- package/lib/Button/ButtonDanger.d.ts +284 -0
- package/lib/Button/ButtonDanger.js +2 -14
- package/lib/Button/ButtonGroup.d.ts +4 -0
- package/lib/Button/ButtonGroup.js +2 -8
- package/lib/Button/ButtonInvisible.d.ts +284 -0
- package/lib/Button/ButtonInvisible.js +3 -15
- package/lib/Button/ButtonOutline.d.ts +284 -0
- package/lib/Button/ButtonOutline.js +2 -14
- package/lib/Button/ButtonPrimary.d.ts +284 -0
- package/lib/Button/ButtonPrimary.js +2 -14
- package/lib/Button/ButtonStyles.d.ts +2 -0
- package/lib/Button/ButtonTableList.d.ts +5 -0
- package/lib/Button/ButtonTableList.js +1 -15
- package/lib/Button/index.d.ts +16 -0
- package/lib/Button/index.js +9 -59
- package/lib/Caret.d.ts +21 -0
- package/lib/Caret.js +14 -17
- package/lib/Checkbox.d.ts +29 -0
- package/lib/Checkbox.js +64 -0
- package/lib/CircleBadge.d.ts +24 -0
- package/lib/CircleBadge.js +2 -20
- package/lib/CircleOcticon.d.ts +392 -0
- package/lib/CircleOcticon.js +9 -18
- package/lib/CounterLabel.d.ts +7 -0
- package/lib/CounterLabel.js +3 -17
- package/lib/Details.d.ts +5 -0
- package/lib/Details.js +1 -11
- package/lib/Dialog/ConfirmationDialog.d.ts +44 -0
- package/lib/Dialog/ConfirmationDialog.js +191 -0
- package/lib/Dialog/Dialog.d.ts +163 -0
- package/lib/Dialog/Dialog.js +311 -0
- package/lib/Dialog.d.ts +406 -0
- package/lib/Dialog.js +34 -49
- package/lib/Dropdown.d.ts +1113 -0
- package/lib/Dropdown.js +45 -60
- package/lib/DropdownMenu/DropdownButton.d.ts +280 -0
- package/lib/DropdownMenu/DropdownButton.js +33 -0
- package/lib/DropdownMenu/DropdownMenu.d.ts +43 -0
- package/lib/DropdownMenu/DropdownMenu.js +94 -0
- package/lib/DropdownMenu/index.d.ts +4 -0
- package/lib/DropdownMenu/index.js +21 -0
- package/lib/DropdownStyles.d.ts +3 -0
- package/lib/DropdownStyles.js +6 -6
- package/lib/FilterList.d.ts +283 -0
- package/lib/FilterList.js +2 -30
- package/lib/FilteredActionList/FilteredActionList.d.ts +16 -0
- package/lib/FilteredActionList/FilteredActionList.js +137 -0
- package/lib/FilteredActionList/index.d.ts +2 -0
- package/lib/FilteredActionList/index.js +13 -0
- package/lib/FilteredSearch.d.ts +5 -0
- package/lib/FilteredSearch.js +1 -12
- package/lib/Flash.d.ts +8 -0
- package/lib/Flash.js +35 -14
- package/lib/Flex.d.ts +7 -0
- package/lib/Flex.js +3 -5
- package/lib/FormGroup.d.ts +11 -0
- package/lib/FormGroup.js +2 -22
- package/lib/Grid.d.ts +7 -0
- package/lib/Grid.js +4 -9
- package/lib/Header.d.ts +23 -0
- package/lib/Header.js +7 -37
- package/lib/Heading.d.ts +5 -0
- package/lib/Heading.js +1 -13
- package/lib/Label.d.ts +10 -0
- package/lib/Label.js +5 -19
- package/lib/LabelGroup.d.ts +5 -0
- package/lib/LabelGroup.js +1 -9
- package/lib/Link.d.ts +9 -0
- package/lib/Link.js +2 -30
- package/lib/NewButton/button-counter.d.ts +6 -0
- package/lib/NewButton/button-counter.js +31 -0
- package/lib/NewButton/button.d.ts +13 -0
- package/lib/NewButton/button.js +308 -0
- package/lib/NewButton/index.d.ts +14 -0
- package/lib/NewButton/index.js +15 -0
- package/lib/NewButton/types.d.ts +32 -0
- package/lib/{utils → NewButton}/types.js +0 -0
- package/lib/Overlay.d.ts +66 -0
- package/lib/Overlay.js +184 -0
- package/lib/Pagehead.d.ts +5 -0
- package/lib/Pagehead.js +1 -13
- package/lib/Pagination/Pagination.d.ts +24 -0
- package/lib/Pagination/Pagination.js +14 -29
- package/lib/Pagination/index.d.ts +3 -0
- package/lib/Pagination/model.d.ts +26 -0
- package/lib/Pagination/model.js +1 -1
- package/lib/PointerBox.d.ts +11 -0
- package/lib/PointerBox.js +4 -13
- package/lib/Popover.d.ts +20 -0
- package/lib/Popover.js +5 -29
- package/lib/Portal/Portal.d.ts +25 -0
- package/lib/Portal/Portal.js +101 -0
- package/lib/Portal/index.d.ts +4 -0
- package/lib/Portal/index.js +17 -0
- package/lib/Position.d.ts +34 -0
- package/lib/Position.js +46 -46
- package/lib/ProgressBar.d.ts +26 -0
- package/lib/ProgressBar.js +8 -27
- package/lib/SelectMenu/SelectMenu.d.ts +1670 -0
- package/lib/SelectMenu/SelectMenu.js +32 -44
- package/lib/SelectMenu/SelectMenuContext.d.ts +8 -0
- package/lib/SelectMenu/SelectMenuContext.js +1 -1
- package/lib/SelectMenu/SelectMenuDivider.d.ts +5 -0
- package/lib/SelectMenu/SelectMenuDivider.js +6 -14
- package/lib/SelectMenu/SelectMenuFilter.d.ts +9 -0
- package/lib/SelectMenu/SelectMenuFilter.js +13 -21
- package/lib/SelectMenu/SelectMenuFooter.d.ts +5 -0
- package/lib/SelectMenu/SelectMenuFooter.js +6 -14
- package/lib/SelectMenu/SelectMenuHeader.d.ts +10 -0
- package/lib/SelectMenu/SelectMenuHeader.js +4 -17
- package/lib/SelectMenu/SelectMenuItem.d.ts +14 -0
- package/lib/SelectMenu/SelectMenuItem.js +13 -21
- package/lib/SelectMenu/SelectMenuList.d.ts +5 -0
- package/lib/SelectMenu/SelectMenuList.js +6 -14
- package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
- package/lib/SelectMenu/SelectMenuLoadingAnimation.js +6 -17
- package/lib/SelectMenu/SelectMenuModal.d.ts +14 -0
- package/lib/SelectMenu/SelectMenuModal.js +11 -23
- package/lib/SelectMenu/SelectMenuTab.d.ts +13 -0
- package/lib/SelectMenu/SelectMenuTab.js +16 -26
- package/lib/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
- package/lib/SelectMenu/SelectMenuTabPanel.js +14 -25
- package/lib/SelectMenu/SelectMenuTabs.d.ts +10 -0
- package/lib/SelectMenu/SelectMenuTabs.js +10 -17
- package/lib/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
- package/lib/SelectMenu/hooks/useKeyboardNav.js +2 -0
- package/lib/SelectMenu/index.d.ts +2 -0
- package/lib/SelectMenu/index.js +7 -5
- package/lib/SelectPanel/SelectPanel.d.ts +25 -0
- package/lib/SelectPanel/SelectPanel.js +147 -0
- package/lib/SelectPanel/index.d.ts +2 -0
- package/lib/SelectPanel/index.js +13 -0
- package/lib/SideNav.d.ts +34 -0
- package/lib/SideNav.js +23 -41
- package/lib/Spinner.d.ts +16 -0
- package/lib/Spinner.js +58 -0
- package/lib/StateLabel.d.ts +15 -0
- package/lib/StateLabel.js +53 -23
- package/lib/StyledOcticon.d.ts +11 -0
- package/lib/StyledOcticon.js +1 -15
- package/lib/SubNav.d.ts +26 -0
- package/lib/SubNav.js +27 -49
- package/lib/TabNav.d.ts +19 -0
- package/lib/TabNav.js +15 -37
- package/lib/Text.d.ts +6 -0
- package/lib/Text.js +0 -12
- package/lib/TextInput.d.ts +14 -0
- package/lib/TextInput.js +25 -76
- package/lib/TextInputWithTokens.d.ts +328 -0
- package/lib/TextInputWithTokens.js +318 -0
- package/lib/ThemeProvider.d.ts +26 -0
- package/lib/ThemeProvider.js +193 -0
- package/lib/Timeline.d.ts +33 -0
- package/lib/Timeline.js +34 -87
- package/lib/Token/AvatarToken.d.ts +7 -0
- package/lib/Token/AvatarToken.js +64 -0
- package/lib/Token/IssueLabelToken.d.ts +14 -0
- package/lib/Token/IssueLabelToken.js +144 -0
- package/lib/Token/Token.d.ts +15 -0
- package/lib/Token/Token.js +105 -0
- package/lib/Token/TokenBase.d.ts +31 -0
- package/lib/Token/TokenBase.js +104 -0
- package/lib/Token/_RemoveTokenButton.d.ts +12 -0
- package/lib/Token/_RemoveTokenButton.js +90 -0
- package/lib/Token/_TokenTextContainer.d.ts +3 -0
- package/lib/Token/_TokenTextContainer.js +17 -0
- package/lib/Token/index.d.ts +3 -0
- package/lib/Token/index.js +31 -0
- package/lib/Tooltip.d.ts +17 -0
- package/lib/Tooltip.js +4 -21
- package/lib/Truncate.d.ts +10 -0
- package/lib/Truncate.js +2 -18
- package/lib/UnderlineNav.d.ts +24 -0
- package/lib/UnderlineNav.js +3 -29
- package/lib/_TextInputWrapper.d.ts +10 -0
- package/lib/_TextInputWrapper.js +51 -0
- package/lib/_UnstyledTextInput.d.ts +2 -0
- package/lib/_UnstyledTextInput.js +20 -0
- package/lib/behaviors/anchoredPosition.d.ts +89 -0
- package/lib/behaviors/anchoredPosition.js +316 -0
- package/lib/behaviors/focusTrap.d.ts +12 -0
- package/lib/behaviors/focusTrap.js +179 -0
- package/lib/behaviors/focusZone.d.ts +137 -0
- package/lib/behaviors/focusZone.js +578 -0
- package/lib/behaviors/scrollIntoViewingArea.d.ts +1 -0
- package/lib/behaviors/scrollIntoViewingArea.js +39 -0
- package/lib/constants.d.ts +20 -0
- package/lib/constants.js +11 -27
- package/lib/drafts.d.ts +8 -0
- package/lib/drafts.js +31 -0
- package/lib/hooks/index.d.ts +11 -0
- package/lib/hooks/index.js +61 -0
- package/lib/hooks/useAnchoredPosition.d.ts +20 -0
- package/lib/hooks/useAnchoredPosition.js +51 -0
- package/lib/hooks/useCombinedRefs.d.ts +10 -0
- package/lib/hooks/useCombinedRefs.js +47 -0
- package/lib/hooks/useDetails.d.ts +17 -0
- package/lib/hooks/useDialog.d.ts +16 -0
- package/lib/hooks/useDialog.js +21 -6
- package/lib/hooks/useFocusTrap.d.ts +32 -0
- package/lib/hooks/useFocusTrap.js +69 -0
- package/lib/hooks/useFocusZone.d.ts +23 -0
- package/lib/hooks/useFocusZone.js +53 -0
- package/lib/hooks/useOnEscapePress.d.ts +23 -0
- package/lib/hooks/useOnEscapePress.js +69 -0
- package/lib/hooks/useOnOutsideClick.d.ts +8 -0
- package/lib/hooks/useOnOutsideClick.js +90 -0
- package/lib/hooks/useOpenAndCloseFocus.d.ts +8 -0
- package/lib/hooks/useOpenAndCloseFocus.js +36 -0
- package/lib/hooks/useOverlay.d.ts +15 -0
- package/lib/hooks/useOverlay.js +43 -0
- package/lib/hooks/useProvidedRefOrCreate.d.ts +10 -0
- package/lib/hooks/useProvidedRefOrCreate.js +24 -0
- package/lib/hooks/useProvidedStateOrCreate.d.ts +10 -0
- package/lib/hooks/useProvidedStateOrCreate.js +27 -0
- package/lib/hooks/useRenderForcingRef.d.ts +8 -0
- package/lib/hooks/useRenderForcingRef.js +25 -0
- package/lib/hooks/useResizeObserver.d.ts +1 -0
- package/lib/hooks/useResizeObserver.js +20 -0
- package/lib/hooks/useSafeTimeout.d.ts +12 -0
- package/lib/hooks/useSafeTimeout.js +38 -0
- package/lib/hooks/useScrollFlash.d.ts +6 -0
- package/lib/hooks/useScrollFlash.js +29 -0
- package/lib/index.d.ts +120 -0
- package/lib/index.js +191 -7
- package/lib/polyfills/eventListenerSignal.d.ts +6 -0
- package/lib/polyfills/eventListenerSignal.js +64 -0
- package/lib/sx.d.ts +14 -0
- package/lib/sx.js +8 -5
- package/lib/theme-preval.d.ts +49 -0
- package/lib/theme-preval.js +3119 -357
- package/lib/theme.d.ts +80 -0
- package/lib/theme.js +5 -8
- package/lib/utils/create-slots.d.ts +17 -0
- package/lib/utils/create-slots.js +105 -0
- package/lib/utils/deprecate.d.ts +18 -0
- package/lib/utils/deprecate.js +6 -5
- package/lib/utils/isNumeric.d.ts +1 -0
- package/lib/utils/isNumeric.js +1 -0
- package/lib/utils/iterateFocusableElements.d.ts +42 -0
- package/lib/utils/iterateFocusableElements.js +113 -0
- package/lib/utils/ssr.d.ts +1 -0
- package/lib/utils/ssr.js +19 -0
- package/lib/utils/test-deprecations.d.ts +1 -0
- package/lib/utils/test-deprecations.js +2 -1
- package/lib/utils/test-helpers.d.ts +0 -0
- package/lib/utils/test-helpers.js +9 -0
- package/lib/utils/test-matchers.d.ts +1 -0
- package/lib/utils/test-matchers.js +6 -50
- package/lib/utils/testing.d.ts +545 -0
- package/lib/utils/testing.js +65 -49
- package/lib/utils/theme.d.ts +9 -0
- package/lib/utils/theme.js +68 -0
- package/lib/utils/types/AriaRole.d.ts +1 -0
- package/lib/utils/types/AriaRole.js +1 -0
- package/lib/utils/types/ComponentProps.d.ts +9 -0
- package/lib/utils/types/ComponentProps.js +1 -0
- package/lib/utils/types/Flatten.d.ts +4 -0
- package/lib/utils/types/Flatten.js +1 -0
- package/lib/utils/types/KeyPaths.d.ts +3 -0
- package/lib/utils/types/KeyPaths.js +1 -0
- package/lib/utils/types/MandateProps.d.ts +3 -0
- package/lib/utils/types/MandateProps.js +1 -0
- package/lib/utils/types/Merge.d.ts +19 -0
- package/lib/utils/types/Merge.js +1 -0
- package/lib/utils/types/index.d.ts +5 -0
- package/lib/utils/types/index.js +70 -0
- package/lib/utils/uniqueId.d.ts +1 -0
- package/lib/utils/uniqueId.js +12 -0
- package/lib/utils/use-force-update.d.ts +1 -0
- package/lib/utils/use-force-update.js +19 -0
- package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
- package/lib/utils/userAgent.d.ts +1 -0
- package/lib/utils/userAgent.js +15 -0
- package/lib-esm/ActionList/Divider.d.ts +9 -0
- package/lib-esm/ActionList/Divider.js +23 -0
- package/lib-esm/ActionList/Group.d.ts +28 -0
- package/lib-esm/ActionList/Group.js +24 -0
- package/lib-esm/ActionList/Header.d.ts +29 -0
- package/lib-esm/ActionList/Header.js +33 -0
- package/lib-esm/ActionList/Item.d.ts +98 -0
- package/lib-esm/ActionList/Item.js +241 -0
- package/lib-esm/ActionList/List.d.ts +88 -0
- package/lib-esm/ActionList/List.js +181 -0
- package/lib-esm/ActionList/index.d.ts +17 -0
- package/lib-esm/ActionList/index.js +18 -0
- package/lib-esm/ActionList2/Description.d.ts +12 -0
- package/lib-esm/ActionList2/Description.js +41 -0
- package/lib-esm/ActionList2/Divider.d.ts +5 -0
- package/lib-esm/ActionList2/Divider.js +23 -0
- package/lib-esm/ActionList2/Group.d.ts +37 -0
- package/lib-esm/ActionList2/Group.js +87 -0
- package/lib-esm/ActionList2/Item.d.ts +63 -0
- package/lib-esm/ActionList2/Item.js +210 -0
- package/lib-esm/ActionList2/LinkItem.d.ts +17 -0
- package/lib-esm/ActionList2/LinkItem.js +43 -0
- package/lib-esm/ActionList2/List.d.ts +26 -0
- package/lib-esm/ActionList2/List.js +36 -0
- package/lib-esm/ActionList2/Selection.d.ts +5 -0
- package/lib-esm/ActionList2/Selection.js +68 -0
- package/lib-esm/ActionList2/Visuals.d.ts +9 -0
- package/lib-esm/ActionList2/Visuals.js +68 -0
- package/lib-esm/ActionList2/index.d.ts +36 -0
- package/lib-esm/ActionList2/index.js +33 -0
- package/lib-esm/ActionMenu.d.ts +40 -0
- package/lib-esm/ActionMenu.js +82 -0
- package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
- package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +104 -0
- package/lib-esm/AnchoredOverlay/index.d.ts +2 -0
- package/lib-esm/AnchoredOverlay/index.js +1 -0
- package/lib-esm/Autocomplete/Autocomplete.d.ts +305 -0
- package/lib-esm/Autocomplete/Autocomplete.js +123 -0
- package/lib-esm/Autocomplete/AutocompleteContext.d.ts +17 -0
- package/lib-esm/Autocomplete/AutocompleteContext.js +2 -0
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +293 -0
- package/lib-esm/Autocomplete/AutocompleteInput.js +138 -0
- package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +72 -0
- package/lib-esm/Autocomplete/AutocompleteMenu.js +205 -0
- package/lib-esm/Autocomplete/AutocompleteOverlay.d.ts +20 -0
- package/lib-esm/Autocomplete/AutocompleteOverlay.js +62 -0
- package/lib-esm/Autocomplete/index.d.ts +2 -0
- package/lib-esm/Autocomplete/index.js +1 -0
- package/lib-esm/Avatar.d.ts +14 -0
- package/lib-esm/Avatar.js +2 -11
- package/lib-esm/AvatarPair.d.ts +8 -0
- package/lib-esm/AvatarPair.js +8 -14
- package/lib-esm/AvatarStack.d.ts +8 -0
- package/lib-esm/AvatarStack.js +12 -21
- package/lib-esm/BaseStyles.d.ts +14 -0
- package/lib-esm/BaseStyles.js +23 -26
- package/lib-esm/BorderBox.d.ts +7 -0
- package/lib-esm/BorderBox.js +6 -12
- package/lib-esm/Box.d.ts +6 -0
- package/lib-esm/Box.js +2 -13
- package/lib-esm/BranchName.d.ts +5 -0
- package/lib-esm/BranchName.js +2 -13
- package/lib-esm/Breadcrumbs.d.ts +41 -0
- package/lib-esm/Breadcrumbs.js +58 -0
- package/lib-esm/Button/Button.d.ts +284 -0
- package/lib-esm/Button/Button.js +3 -10
- package/lib-esm/Button/ButtonBase.d.ts +9 -0
- package/lib-esm/Button/ButtonBase.js +1 -19
- package/lib-esm/Button/ButtonClose.d.ts +279 -0
- package/lib-esm/Button/ButtonClose.js +5 -20
- package/lib-esm/Button/ButtonDanger.d.ts +284 -0
- package/lib-esm/Button/ButtonDanger.js +2 -9
- package/lib-esm/Button/ButtonGroup.d.ts +4 -0
- package/lib-esm/Button/ButtonGroup.js +2 -7
- package/lib-esm/Button/ButtonInvisible.d.ts +284 -0
- package/lib-esm/Button/ButtonInvisible.js +3 -10
- package/lib-esm/Button/ButtonOutline.d.ts +284 -0
- package/lib-esm/Button/ButtonOutline.js +2 -9
- package/lib-esm/Button/ButtonPrimary.d.ts +284 -0
- package/lib-esm/Button/ButtonPrimary.js +2 -9
- package/lib-esm/Button/ButtonStyles.d.ts +2 -0
- package/lib-esm/Button/ButtonTableList.d.ts +5 -0
- package/lib-esm/Button/ButtonTableList.js +2 -14
- package/lib-esm/Button/index.d.ts +16 -0
- package/lib-esm/Button/index.js +8 -8
- package/lib-esm/Caret.d.ts +21 -0
- package/lib-esm/Caret.js +13 -16
- package/lib-esm/Checkbox.d.ts +29 -0
- package/lib-esm/Checkbox.js +44 -0
- package/lib-esm/CircleBadge.d.ts +24 -0
- package/lib-esm/CircleBadge.js +3 -19
- package/lib-esm/CircleOcticon.d.ts +392 -0
- package/lib-esm/CircleOcticon.js +9 -15
- package/lib-esm/CounterLabel.d.ts +7 -0
- package/lib-esm/CounterLabel.js +4 -16
- package/lib-esm/Details.d.ts +5 -0
- package/lib-esm/Details.js +1 -9
- package/lib-esm/Dialog/ConfirmationDialog.d.ts +44 -0
- package/lib-esm/Dialog/ConfirmationDialog.js +169 -0
- package/lib-esm/Dialog/Dialog.d.ts +163 -0
- package/lib-esm/Dialog/Dialog.js +275 -0
- package/lib-esm/Dialog.d.ts +406 -0
- package/lib-esm/Dialog.js +31 -46
- package/lib-esm/Dropdown.d.ts +1113 -0
- package/lib-esm/Dropdown.js +38 -58
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +280 -0
- package/lib-esm/DropdownMenu/DropdownButton.js +18 -0
- package/lib-esm/DropdownMenu/DropdownMenu.d.ts +43 -0
- package/lib-esm/DropdownMenu/DropdownMenu.js +77 -0
- package/lib-esm/DropdownMenu/index.d.ts +4 -0
- package/lib-esm/DropdownMenu/index.js +2 -0
- package/lib-esm/DropdownStyles.d.ts +3 -0
- package/lib-esm/DropdownStyles.js +6 -6
- package/lib-esm/FilterList.d.ts +283 -0
- package/lib-esm/FilterList.js +3 -29
- package/lib-esm/FilteredActionList/FilteredActionList.d.ts +16 -0
- package/lib-esm/FilteredActionList/FilteredActionList.js +109 -0
- package/lib-esm/FilteredActionList/index.d.ts +2 -0
- package/lib-esm/FilteredActionList/index.js +1 -0
- package/lib-esm/FilteredSearch.d.ts +5 -0
- package/lib-esm/FilteredSearch.js +2 -11
- package/lib-esm/Flash.d.ts +8 -0
- package/lib-esm/Flash.js +36 -13
- package/lib-esm/Flex.d.ts +7 -0
- package/lib-esm/Flex.js +4 -4
- package/lib-esm/FormGroup.d.ts +11 -0
- package/lib-esm/FormGroup.js +3 -20
- package/lib-esm/Grid.d.ts +7 -0
- package/lib-esm/Grid.js +5 -7
- package/lib-esm/Header.d.ts +23 -0
- package/lib-esm/Header.js +6 -34
- package/lib-esm/Heading.d.ts +5 -0
- package/lib-esm/Heading.js +2 -12
- package/lib-esm/Label.d.ts +10 -0
- package/lib-esm/Label.js +3 -15
- package/lib-esm/LabelGroup.d.ts +5 -0
- package/lib-esm/LabelGroup.js +2 -9
- package/lib-esm/Link.d.ts +9 -0
- package/lib-esm/Link.js +2 -28
- package/lib-esm/NewButton/button-counter.d.ts +6 -0
- package/lib-esm/NewButton/button-counter.js +18 -0
- package/lib-esm/NewButton/button.d.ts +13 -0
- package/lib-esm/NewButton/button.js +287 -0
- package/lib-esm/NewButton/index.d.ts +14 -0
- package/lib-esm/NewButton/index.js +5 -0
- package/lib-esm/NewButton/types.d.ts +32 -0
- package/lib-esm/NewButton/types.js +1 -0
- package/lib-esm/Overlay.d.ts +66 -0
- package/lib-esm/Overlay.js +160 -0
- package/lib-esm/Pagehead.d.ts +5 -0
- package/lib-esm/Pagehead.js +2 -12
- package/lib-esm/Pagination/Pagination.d.ts +24 -0
- package/lib-esm/Pagination/Pagination.js +15 -28
- package/lib-esm/Pagination/index.d.ts +3 -0
- package/lib-esm/Pagination/model.d.ts +26 -0
- package/lib-esm/Pagination/model.js +1 -1
- package/lib-esm/PointerBox.d.ts +11 -0
- package/lib-esm/PointerBox.js +4 -11
- package/lib-esm/Popover.d.ts +20 -0
- package/lib-esm/Popover.js +5 -27
- package/lib-esm/Portal/Portal.d.ts +25 -0
- package/lib-esm/Portal/Portal.js +83 -0
- package/lib-esm/Portal/index.d.ts +4 -0
- package/lib-esm/Portal/index.js +3 -0
- package/lib-esm/Position.d.ts +34 -0
- package/lib-esm/Position.js +42 -37
- package/lib-esm/ProgressBar.d.ts +26 -0
- package/lib-esm/ProgressBar.js +9 -25
- package/lib-esm/SelectMenu/SelectMenu.d.ts +1670 -0
- package/lib-esm/SelectMenu/SelectMenu.js +27 -38
- package/lib-esm/SelectMenu/SelectMenuContext.d.ts +8 -0
- package/lib-esm/SelectMenu/SelectMenuContext.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +5 -0
- package/lib-esm/SelectMenu/SelectMenuDivider.js +4 -11
- package/lib-esm/SelectMenu/SelectMenuFilter.d.ts +9 -0
- package/lib-esm/SelectMenu/SelectMenuFilter.js +13 -19
- package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +5 -0
- package/lib-esm/SelectMenu/SelectMenuFooter.js +4 -11
- package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +10 -0
- package/lib-esm/SelectMenu/SelectMenuHeader.js +7 -18
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +14 -0
- package/lib-esm/SelectMenu/SelectMenuItem.js +11 -17
- package/lib-esm/SelectMenu/SelectMenuList.d.ts +5 -0
- package/lib-esm/SelectMenu/SelectMenuList.js +4 -11
- package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
- package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +7 -13
- package/lib-esm/SelectMenu/SelectMenuModal.d.ts +14 -0
- package/lib-esm/SelectMenu/SelectMenuModal.js +10 -20
- package/lib-esm/SelectMenu/SelectMenuTab.d.ts +13 -0
- package/lib-esm/SelectMenu/SelectMenuTab.js +13 -21
- package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
- package/lib-esm/SelectMenu/SelectMenuTabPanel.js +9 -19
- package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +10 -0
- package/lib-esm/SelectMenu/SelectMenuTabs.js +8 -15
- package/lib-esm/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
- package/lib-esm/SelectMenu/hooks/useKeyboardNav.js +2 -0
- package/lib-esm/SelectMenu/index.d.ts +2 -0
- package/lib-esm/SelectMenu/index.js +1 -2
- package/lib-esm/SelectPanel/SelectPanel.d.ts +25 -0
- package/lib-esm/SelectPanel/SelectPanel.js +127 -0
- package/lib-esm/SelectPanel/index.d.ts +2 -0
- package/lib-esm/SelectPanel/index.js +1 -0
- package/lib-esm/SideNav.d.ts +34 -0
- package/lib-esm/SideNav.js +20 -36
- package/lib-esm/Spinner.d.ts +16 -0
- package/lib-esm/Spinner.js +45 -0
- package/lib-esm/StateLabel.d.ts +15 -0
- package/lib-esm/StateLabel.js +55 -23
- package/lib-esm/StyledOcticon.d.ts +11 -0
- package/lib-esm/StyledOcticon.js +1 -12
- package/lib-esm/SubNav.d.ts +26 -0
- package/lib-esm/SubNav.js +24 -48
- package/lib-esm/TabNav.d.ts +19 -0
- package/lib-esm/TabNav.js +13 -33
- package/lib-esm/Text.d.ts +6 -0
- package/lib-esm/Text.js +0 -10
- package/lib-esm/TextInput.d.ts +14 -0
- package/lib-esm/TextInput.js +24 -62
- package/lib-esm/TextInputWithTokens.d.ts +328 -0
- package/lib-esm/TextInputWithTokens.js +291 -0
- package/lib-esm/ThemeProvider.d.ts +26 -0
- package/lib-esm/ThemeProvider.js +161 -0
- package/lib-esm/Timeline.d.ts +33 -0
- package/lib-esm/Timeline.js +26 -81
- package/lib-esm/Token/AvatarToken.d.ts +7 -0
- package/lib-esm/Token/AvatarToken.js +43 -0
- package/lib-esm/Token/IssueLabelToken.d.ts +14 -0
- package/lib-esm/Token/IssueLabelToken.js +124 -0
- package/lib-esm/Token/Token.d.ts +15 -0
- package/lib-esm/Token/Token.js +84 -0
- package/lib-esm/Token/TokenBase.d.ts +31 -0
- package/lib-esm/Token/TokenBase.js +83 -0
- package/lib-esm/Token/_RemoveTokenButton.d.ts +12 -0
- package/lib-esm/Token/_RemoveTokenButton.js +69 -0
- package/lib-esm/Token/_TokenTextContainer.d.ts +3 -0
- package/lib-esm/Token/_TokenTextContainer.js +6 -0
- package/lib-esm/Token/index.d.ts +3 -0
- package/lib-esm/Token/index.js +3 -0
- package/lib-esm/Tooltip.d.ts +17 -0
- package/lib-esm/Tooltip.js +4 -19
- package/lib-esm/Truncate.d.ts +10 -0
- package/lib-esm/Truncate.js +2 -15
- package/lib-esm/UnderlineNav.d.ts +24 -0
- package/lib-esm/UnderlineNav.js +5 -28
- package/lib-esm/_TextInputWrapper.d.ts +10 -0
- package/lib-esm/_TextInputWrapper.js +31 -0
- package/lib-esm/_UnstyledTextInput.d.ts +2 -0
- package/lib-esm/_UnstyledTextInput.js +7 -0
- package/lib-esm/behaviors/anchoredPosition.d.ts +89 -0
- package/lib-esm/behaviors/anchoredPosition.js +309 -0
- package/lib-esm/behaviors/focusTrap.d.ts +12 -0
- package/lib-esm/behaviors/focusTrap.js +170 -0
- package/lib-esm/behaviors/focusZone.d.ts +137 -0
- package/lib-esm/behaviors/focusZone.js +560 -0
- package/lib-esm/behaviors/scrollIntoViewingArea.d.ts +1 -0
- package/lib-esm/behaviors/scrollIntoViewingArea.js +30 -0
- package/lib-esm/constants.d.ts +20 -0
- package/lib-esm/constants.js +9 -23
- package/lib-esm/drafts.d.ts +8 -0
- package/lib-esm/drafts.js +9 -0
- package/lib-esm/hooks/index.d.ts +11 -0
- package/lib-esm/hooks/index.js +7 -0
- package/lib-esm/hooks/useAnchoredPosition.d.ts +20 -0
- package/lib-esm/hooks/useAnchoredPosition.js +35 -0
- package/lib-esm/hooks/useCombinedRefs.d.ts +10 -0
- package/lib-esm/hooks/useCombinedRefs.js +37 -0
- package/lib-esm/hooks/useDetails.d.ts +17 -0
- package/lib-esm/hooks/useDialog.d.ts +16 -0
- package/lib-esm/hooks/useDialog.js +21 -6
- package/lib-esm/hooks/useFocusTrap.d.ts +32 -0
- package/lib-esm/hooks/useFocusTrap.js +54 -0
- package/lib-esm/hooks/useFocusZone.d.ts +23 -0
- package/lib-esm/hooks/useFocusZone.js +37 -0
- package/lib-esm/hooks/useOnEscapePress.d.ts +23 -0
- package/lib-esm/hooks/useOnEscapePress.js +59 -0
- package/lib-esm/hooks/useOnOutsideClick.d.ts +8 -0
- package/lib-esm/hooks/useOnOutsideClick.js +79 -0
- package/lib-esm/hooks/useOpenAndCloseFocus.d.ts +8 -0
- package/lib-esm/hooks/useOpenAndCloseFocus.js +27 -0
- package/lib-esm/hooks/useOverlay.d.ts +15 -0
- package/lib-esm/hooks/useOverlay.js +30 -0
- package/lib-esm/hooks/useProvidedRefOrCreate.d.ts +10 -0
- package/lib-esm/hooks/useProvidedRefOrCreate.js +14 -0
- package/lib-esm/hooks/useProvidedStateOrCreate.d.ts +10 -0
- package/lib-esm/hooks/useProvidedStateOrCreate.js +20 -0
- package/lib-esm/hooks/useRenderForcingRef.d.ts +8 -0
- package/lib-esm/hooks/useRenderForcingRef.js +18 -0
- package/lib-esm/hooks/useResizeObserver.d.ts +1 -0
- package/lib-esm/hooks/useResizeObserver.js +10 -0
- package/lib-esm/hooks/useSafeTimeout.d.ts +12 -0
- package/lib-esm/hooks/useSafeTimeout.js +31 -0
- package/lib-esm/hooks/useScrollFlash.d.ts +6 -0
- package/lib-esm/hooks/useScrollFlash.js +22 -0
- package/lib-esm/index.d.ts +120 -0
- package/lib-esm/index.js +29 -7
- package/lib-esm/polyfills/eventListenerSignal.d.ts +6 -0
- package/lib-esm/polyfills/eventListenerSignal.js +57 -0
- package/lib-esm/sx.d.ts +14 -0
- package/lib-esm/sx.js +3 -5
- package/lib-esm/theme-preval.d.ts +49 -0
- package/lib-esm/theme-preval.js +3119 -357
- package/lib-esm/theme.d.ts +80 -0
- package/lib-esm/theme.js +3 -8
- package/lib-esm/utils/create-slots.d.ts +17 -0
- package/lib-esm/utils/create-slots.js +84 -0
- package/lib-esm/utils/deprecate.d.ts +18 -0
- package/lib-esm/utils/deprecate.js +6 -5
- package/lib-esm/utils/isNumeric.d.ts +1 -0
- package/lib-esm/utils/isNumeric.js +1 -0
- package/lib-esm/utils/iterateFocusableElements.d.ts +42 -0
- package/lib-esm/utils/iterateFocusableElements.js +102 -0
- package/lib-esm/utils/ssr.d.ts +1 -0
- package/lib-esm/utils/ssr.js +1 -0
- package/lib-esm/utils/test-deprecations.d.ts +1 -0
- package/lib-esm/utils/test-deprecations.js +1 -1
- package/lib-esm/utils/{types.js → test-helpers.d.ts} +0 -0
- package/lib-esm/utils/test-helpers.js +7 -0
- package/lib-esm/utils/test-matchers.d.ts +1 -0
- package/lib-esm/utils/test-matchers.js +7 -49
- package/lib-esm/utils/testing.d.ts +545 -0
- package/lib-esm/utils/testing.js +60 -46
- package/lib-esm/utils/theme.d.ts +9 -0
- package/lib-esm/utils/theme.js +66 -0
- package/lib-esm/utils/types/AriaRole.d.ts +1 -0
- package/lib-esm/utils/types/AriaRole.js +1 -0
- package/lib-esm/utils/types/ComponentProps.d.ts +9 -0
- package/lib-esm/utils/types/ComponentProps.js +1 -0
- package/lib-esm/utils/types/Flatten.d.ts +4 -0
- package/lib-esm/utils/types/Flatten.js +1 -0
- package/lib-esm/utils/types/KeyPaths.d.ts +3 -0
- package/lib-esm/utils/types/KeyPaths.js +1 -0
- package/lib-esm/utils/types/MandateProps.d.ts +3 -0
- package/lib-esm/utils/types/MandateProps.js +1 -0
- package/lib-esm/utils/types/Merge.d.ts +19 -0
- package/lib-esm/utils/types/Merge.js +1 -0
- package/lib-esm/utils/types/index.d.ts +5 -0
- package/lib-esm/utils/types/index.js +5 -0
- package/lib-esm/utils/uniqueId.d.ts +1 -0
- package/lib-esm/utils/uniqueId.js +5 -0
- package/lib-esm/utils/use-force-update.d.ts +1 -0
- package/lib-esm/utils/use-force-update.js +6 -0
- package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
- package/lib-esm/utils/userAgent.d.ts +1 -0
- package/lib-esm/utils/userAgent.js +8 -0
- package/package.json +116 -93
- package/index.d.ts +0 -828
- package/lib/Breadcrumb.js +0 -96
- package/lib/hooks/useMouseIntent.js +0 -58
- package/lib/stories/Button.stories.js +0 -100
- package/lib-esm/Breadcrumb.js +0 -70
- package/lib-esm/hooks/useMouseIntent.js +0 -50
- package/lib-esm/stories/Button.stories.js +0 -65
@@ -0,0 +1,32 @@
|
|
1
|
+
import React, { HTMLAttributes } from 'react';
|
2
|
+
import { IconProps } from '@primer/octicons-react';
|
3
|
+
import { SxProp } from '../sx';
|
4
|
+
export declare type VariantType = 'default' | 'primary' | 'invisible' | 'danger' | 'outline';
|
5
|
+
export declare type Size = 'small' | 'medium' | 'large';
|
6
|
+
export declare type ButtonProps = {
|
7
|
+
/**
|
8
|
+
* Determine's the styles on a button one of 'default' | 'primary' | 'invisible' | 'danger'
|
9
|
+
*/
|
10
|
+
variant?: VariantType;
|
11
|
+
/**
|
12
|
+
* Size of button and fontSize of text in button
|
13
|
+
*/
|
14
|
+
size?: Size;
|
15
|
+
/**
|
16
|
+
* This is to be used if it is an icon-only button. Will make text visually hidden
|
17
|
+
*/
|
18
|
+
icon?: React.FunctionComponent<IconProps>;
|
19
|
+
/**
|
20
|
+
* The leading icon comes before button content
|
21
|
+
*/
|
22
|
+
leadingIcon?: React.FunctionComponent<IconProps>;
|
23
|
+
/**
|
24
|
+
* The trailing icon comes after button content
|
25
|
+
*/
|
26
|
+
trailingIcon?: React.FunctionComponent<IconProps>;
|
27
|
+
/**
|
28
|
+
* Items that are disabled can not be clicked, selected, or navigated through.
|
29
|
+
*/
|
30
|
+
disabled?: boolean;
|
31
|
+
children: React.ReactNode;
|
32
|
+
} & SxProp & HTMLAttributes<HTMLButtonElement>;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import React, { ComponentPropsWithRef } from 'react';
|
2
|
+
import { AriaRole, Merge } from './utils/types';
|
3
|
+
import { TouchOrMouseEvent } from './hooks';
|
4
|
+
import { SxProp } from './sx';
|
5
|
+
import { AnchorSide } from './behaviors/anchoredPosition';
|
6
|
+
import { ForwardRefComponent as PolymorphicForwardRefComponent } from '@radix-ui/react-polymorphic';
|
7
|
+
declare type StyledOverlayProps = {
|
8
|
+
width?: keyof typeof widthMap;
|
9
|
+
height?: keyof typeof heightMap;
|
10
|
+
maxHeight?: keyof Omit<typeof heightMap, 'auto' | 'initial'>;
|
11
|
+
visibility?: 'visible' | 'hidden';
|
12
|
+
anchorSide?: AnchorSide;
|
13
|
+
} & SxProp;
|
14
|
+
declare const heightMap: {
|
15
|
+
xsmall: string;
|
16
|
+
small: string;
|
17
|
+
medium: string;
|
18
|
+
large: string;
|
19
|
+
xlarge: string;
|
20
|
+
auto: string;
|
21
|
+
initial: string;
|
22
|
+
};
|
23
|
+
declare const widthMap: {
|
24
|
+
small: string;
|
25
|
+
medium: string;
|
26
|
+
large: string;
|
27
|
+
xlarge: string;
|
28
|
+
xxlarge: string;
|
29
|
+
auto: string;
|
30
|
+
};
|
31
|
+
declare type BaseOverlayProps = {
|
32
|
+
ignoreClickRefs?: React.RefObject<HTMLElement>[];
|
33
|
+
initialFocusRef?: React.RefObject<HTMLElement>;
|
34
|
+
returnFocusRef: React.RefObject<HTMLElement>;
|
35
|
+
onClickOutside: (e: TouchOrMouseEvent) => void;
|
36
|
+
onEscape: (e: KeyboardEvent) => void;
|
37
|
+
visibility?: 'visible' | 'hidden';
|
38
|
+
'data-test-id'?: unknown;
|
39
|
+
top?: number;
|
40
|
+
left?: number;
|
41
|
+
portalContainerName?: string;
|
42
|
+
preventFocusOnOpen?: boolean;
|
43
|
+
role?: AriaRole;
|
44
|
+
children?: React.ReactNode;
|
45
|
+
};
|
46
|
+
declare type OwnOverlayProps = Merge<StyledOverlayProps, BaseOverlayProps>;
|
47
|
+
/**
|
48
|
+
* An `Overlay` is a flexible floating surface, used to display transient content such as menus,
|
49
|
+
* selection options, dialogs, and more. Overlays use shadows to express elevation. The `Overlay`
|
50
|
+
* component handles all behaviors needed by overlay UIs as well as the common styles that all overlays * should have.
|
51
|
+
* @param ignoreClickRefs Optional. An array of ref objects to ignore clicks on in the `onOutsideClick` behavior. This is often used to ignore clicking on the element that toggles the open/closed state for the `Overlay` to prevent the `Overlay` from being toggled twice.
|
52
|
+
* @param initialFocusRef Optional. Ref for the element to focus when the `Overlay` is opened. If nothing is provided, the first focusable element in the `Overlay` body is focused.
|
53
|
+
* @param returnFocusRef Required. Ref for the element to focus when the `Overlay` is closed.
|
54
|
+
* @param onClickOutside Required. Function to call when clicking outside of the `Overlay`. Typically this function removes the Overlay.
|
55
|
+
* @param onEscape Required. Function to call when user presses `Escape`. Typically this function removes the Overlay.
|
56
|
+
* @param width Sets the width of the `Overlay`, pick from our set list of widths, or pass `auto` to automatically set the width based on the content of the `Overlay`. `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `480px`, `xlarge` corresponds to `640px`, `xxlarge` corresponds to `960px`.
|
57
|
+
* @param height Sets the height of the `Overlay`, pick from our set list of heights, or pass `auto` to automatically set the height based on the content of the `Overlay`, or pass `initial` to set the height based on the initial content of the `Overlay` (i.e. ignoring content changes). `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`.
|
58
|
+
* @param maxHeight Sets the maximum height of the `Overlay`, pick from our set list of heights. `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`.
|
59
|
+
* @param anchorSide If provided, the Overlay will slide into position from the side of the anchor with a brief animation
|
60
|
+
* @param top Optional. Vertical position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
|
61
|
+
* @param left Optional. Horizontal position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
|
62
|
+
* @param portalContainerName Optional. The name of the portal container to render the Overlay into.
|
63
|
+
*/
|
64
|
+
declare const Overlay: PolymorphicForwardRefComponent<"div", OwnOverlayProps>;
|
65
|
+
export declare type OverlayProps = ComponentPropsWithRef<typeof Overlay>;
|
66
|
+
export default Overlay;
|
@@ -0,0 +1,160 @@
|
|
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 styled from 'styled-components';
|
4
|
+
import React, { useEffect, useRef } from 'react';
|
5
|
+
import useLayoutEffect from './utils/useIsomorphicLayoutEffect';
|
6
|
+
import { get } from './constants';
|
7
|
+
import { useOverlay } from './hooks';
|
8
|
+
import Portal from './Portal';
|
9
|
+
import sx from './sx';
|
10
|
+
import { useCombinedRefs } from './hooks/useCombinedRefs';
|
11
|
+
import { useTheme } from './ThemeProvider';
|
12
|
+
const heightMap = {
|
13
|
+
xsmall: '192px',
|
14
|
+
small: '256px',
|
15
|
+
medium: '320px',
|
16
|
+
large: '432px',
|
17
|
+
xlarge: '600px',
|
18
|
+
auto: 'auto',
|
19
|
+
initial: 'auto' // Passing 'initial' initially applies 'auto'
|
20
|
+
|
21
|
+
};
|
22
|
+
const widthMap = {
|
23
|
+
small: '256px',
|
24
|
+
medium: '320px',
|
25
|
+
large: '480px',
|
26
|
+
xlarge: '640px',
|
27
|
+
xxlarge: '960px',
|
28
|
+
auto: 'auto'
|
29
|
+
};
|
30
|
+
const animationDuration = 200;
|
31
|
+
|
32
|
+
function getSlideAnimationStartingVector(anchorSide) {
|
33
|
+
if (anchorSide !== null && anchorSide !== void 0 && anchorSide.endsWith('bottom')) {
|
34
|
+
return {
|
35
|
+
x: 0,
|
36
|
+
y: -1
|
37
|
+
};
|
38
|
+
} else if (anchorSide !== null && anchorSide !== void 0 && anchorSide.endsWith('top')) {
|
39
|
+
return {
|
40
|
+
x: 0,
|
41
|
+
y: 1
|
42
|
+
};
|
43
|
+
} else if (anchorSide !== null && anchorSide !== void 0 && anchorSide.endsWith('right')) {
|
44
|
+
return {
|
45
|
+
x: -1,
|
46
|
+
y: 0
|
47
|
+
};
|
48
|
+
} else if (anchorSide !== null && anchorSide !== void 0 && anchorSide.endsWith('left')) {
|
49
|
+
return {
|
50
|
+
x: 1,
|
51
|
+
y: 0
|
52
|
+
};
|
53
|
+
}
|
54
|
+
|
55
|
+
return {
|
56
|
+
x: 0,
|
57
|
+
y: 0
|
58
|
+
};
|
59
|
+
}
|
60
|
+
|
61
|
+
const StyledOverlay = styled.div.withConfig({
|
62
|
+
displayName: "Overlay__StyledOverlay",
|
63
|
+
componentId: "jhwkzw-0"
|
64
|
+
})(["background-color:", ";box-shadow:", ";position:absolute;min-width:192px;max-width:640px;height:", ";max-height:", ";width:", ";border-radius:12px;overflow:hidden;animation:overlay-appear ", "ms ", ";@keyframes overlay-appear{0%{opacity:0;}100%{opacity:1;}}visibility:var(--styled-overlay-visibility);:focus{outline:none;}", ";"], get('colors.canvas.overlay'), get('shadows.overlay.shadow'), props => heightMap[props.height || 'auto'], props => props.maxHeight && heightMap[props.maxHeight], props => widthMap[props.width || 'auto'], animationDuration, get('animation.easeOutCubic'), sx);
|
65
|
+
|
66
|
+
/**
|
67
|
+
* An `Overlay` is a flexible floating surface, used to display transient content such as menus,
|
68
|
+
* selection options, dialogs, and more. Overlays use shadows to express elevation. The `Overlay`
|
69
|
+
* component handles all behaviors needed by overlay UIs as well as the common styles that all overlays * should have.
|
70
|
+
* @param ignoreClickRefs Optional. An array of ref objects to ignore clicks on in the `onOutsideClick` behavior. This is often used to ignore clicking on the element that toggles the open/closed state for the `Overlay` to prevent the `Overlay` from being toggled twice.
|
71
|
+
* @param initialFocusRef Optional. Ref for the element to focus when the `Overlay` is opened. If nothing is provided, the first focusable element in the `Overlay` body is focused.
|
72
|
+
* @param returnFocusRef Required. Ref for the element to focus when the `Overlay` is closed.
|
73
|
+
* @param onClickOutside Required. Function to call when clicking outside of the `Overlay`. Typically this function removes the Overlay.
|
74
|
+
* @param onEscape Required. Function to call when user presses `Escape`. Typically this function removes the Overlay.
|
75
|
+
* @param width Sets the width of the `Overlay`, pick from our set list of widths, or pass `auto` to automatically set the width based on the content of the `Overlay`. `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `480px`, `xlarge` corresponds to `640px`, `xxlarge` corresponds to `960px`.
|
76
|
+
* @param height Sets the height of the `Overlay`, pick from our set list of heights, or pass `auto` to automatically set the height based on the content of the `Overlay`, or pass `initial` to set the height based on the initial content of the `Overlay` (i.e. ignoring content changes). `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`.
|
77
|
+
* @param maxHeight Sets the maximum height of the `Overlay`, pick from our set list of heights. `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`.
|
78
|
+
* @param anchorSide If provided, the Overlay will slide into position from the side of the anchor with a brief animation
|
79
|
+
* @param top Optional. Vertical position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
|
80
|
+
* @param left Optional. Horizontal position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
|
81
|
+
* @param portalContainerName Optional. The name of the portal container to render the Overlay into.
|
82
|
+
*/
|
83
|
+
const Overlay = /*#__PURE__*/React.forwardRef(({
|
84
|
+
onClickOutside,
|
85
|
+
role = 'none',
|
86
|
+
initialFocusRef,
|
87
|
+
returnFocusRef,
|
88
|
+
ignoreClickRefs,
|
89
|
+
onEscape,
|
90
|
+
visibility = 'visible',
|
91
|
+
height,
|
92
|
+
top,
|
93
|
+
left,
|
94
|
+
anchorSide,
|
95
|
+
portalContainerName,
|
96
|
+
preventFocusOnOpen,
|
97
|
+
...rest
|
98
|
+
}, forwardedRef) => {
|
99
|
+
const overlayRef = useRef(null);
|
100
|
+
const combinedRef = useCombinedRefs(overlayRef, forwardedRef);
|
101
|
+
const {
|
102
|
+
theme
|
103
|
+
} = useTheme();
|
104
|
+
const slideAnimationDistance = parseInt(get('space.2')(theme).replace('px', ''));
|
105
|
+
const slideAnimationEasing = get('animation.easeOutCubic')(theme);
|
106
|
+
useOverlay({
|
107
|
+
overlayRef,
|
108
|
+
returnFocusRef,
|
109
|
+
onEscape,
|
110
|
+
ignoreClickRefs,
|
111
|
+
onClickOutside,
|
112
|
+
initialFocusRef,
|
113
|
+
preventFocusOnOpen
|
114
|
+
});
|
115
|
+
useEffect(() => {
|
116
|
+
var _combinedRef$current;
|
117
|
+
|
118
|
+
if (height === 'initial' && (_combinedRef$current = combinedRef.current) !== null && _combinedRef$current !== void 0 && _combinedRef$current.clientHeight) {
|
119
|
+
combinedRef.current.style.height = `${combinedRef.current.clientHeight}px`;
|
120
|
+
}
|
121
|
+
}, [height, combinedRef]);
|
122
|
+
useLayoutEffect(() => {
|
123
|
+
var _overlayRef$current;
|
124
|
+
|
125
|
+
const {
|
126
|
+
x,
|
127
|
+
y
|
128
|
+
} = getSlideAnimationStartingVector(anchorSide);
|
129
|
+
|
130
|
+
if (!x && !y || !((_overlayRef$current = overlayRef.current) !== null && _overlayRef$current !== void 0 && _overlayRef$current.animate) || visibility === 'hidden') {
|
131
|
+
return;
|
132
|
+
} // JS animation is required because Safari does not allow css animations to start paused and then run
|
133
|
+
|
134
|
+
|
135
|
+
overlayRef.current.animate({
|
136
|
+
transform: [`translate(${slideAnimationDistance * x}px, ${slideAnimationDistance * y}px)`, `translate(0, 0)`]
|
137
|
+
}, {
|
138
|
+
duration: animationDuration,
|
139
|
+
easing: slideAnimationEasing
|
140
|
+
});
|
141
|
+
}, [anchorSide, slideAnimationDistance, slideAnimationEasing, visibility]);
|
142
|
+
return /*#__PURE__*/React.createElement(Portal, {
|
143
|
+
containerName: portalContainerName
|
144
|
+
}, /*#__PURE__*/React.createElement(StyledOverlay, _extends({
|
145
|
+
height: height,
|
146
|
+
role: role
|
147
|
+
}, rest, {
|
148
|
+
ref: combinedRef,
|
149
|
+
style: {
|
150
|
+
top: `${top || 0}px`,
|
151
|
+
left: `${left || 0}px`,
|
152
|
+
'--styled-overlay-visibility': visibility
|
153
|
+
}
|
154
|
+
})));
|
155
|
+
});
|
156
|
+
Overlay.defaultProps = {
|
157
|
+
height: 'auto',
|
158
|
+
width: 'auto'
|
159
|
+
};
|
160
|
+
export default Overlay;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { SxProp } from './sx';
|
2
|
+
import { ComponentProps } from './utils/types';
|
3
|
+
declare const Pagehead: import("styled-components").StyledComponent<"div", any, SxProp, never>;
|
4
|
+
export declare type PageheadProps = ComponentProps<typeof Pagehead>;
|
5
|
+
export default Pagehead;
|
package/lib-esm/Pagehead.js
CHANGED
@@ -1,18 +1,8 @@
|
|
1
|
-
import PropTypes from 'prop-types';
|
2
1
|
import styled from 'styled-components';
|
3
|
-
import {
|
2
|
+
import { get } from './constants';
|
4
3
|
import sx from './sx';
|
5
|
-
import theme from './theme';
|
6
4
|
const Pagehead = styled.div.withConfig({
|
7
5
|
displayName: "Pagehead",
|
8
6
|
componentId: "sc-1ntn78e-0"
|
9
|
-
})(["position:relative;padding-top:", ";padding-bottom:", ";margin-bottom:", ";border-bottom:1px solid ", ";", ";"
|
10
|
-
Pagehead.defaultProps = {
|
11
|
-
theme
|
12
|
-
};
|
13
|
-
Pagehead.propTypes = {
|
14
|
-
children: PropTypes.node,
|
15
|
-
...COMMON.propTypes,
|
16
|
-
...sx.propTypes
|
17
|
-
};
|
7
|
+
})(["position:relative;padding-top:", ";padding-bottom:", ";margin-bottom:", ";border-bottom:1px solid ", ";", ";"], get('space.4'), get('space.4'), get('space.4'), get('colors.border.default'), sx);
|
18
8
|
export default Pagehead;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
export declare type PaginationProps = {
|
3
|
+
theme?: Record<string, unknown>;
|
4
|
+
pageCount: number;
|
5
|
+
currentPage: number;
|
6
|
+
onPageChange?: (e: React.MouseEvent, n: number) => void;
|
7
|
+
hrefBuilder?: (n: number) => string;
|
8
|
+
marginPageCount: number;
|
9
|
+
showPages?: boolean;
|
10
|
+
surroundingPageCount?: number;
|
11
|
+
};
|
12
|
+
declare function Pagination({ theme, pageCount, currentPage, onPageChange, hrefBuilder, marginPageCount, showPages, surroundingPageCount, ...rest }: PaginationProps): JSX.Element;
|
13
|
+
declare namespace Pagination {
|
14
|
+
var defaultProps: {
|
15
|
+
hrefBuilder: typeof defaultHrefBuilder;
|
16
|
+
marginPageCount: number;
|
17
|
+
onPageChange: typeof noop;
|
18
|
+
showPages: boolean;
|
19
|
+
surroundingPageCount: number;
|
20
|
+
};
|
21
|
+
}
|
22
|
+
declare function defaultHrefBuilder(pageNum: number): string;
|
23
|
+
declare function noop(): void;
|
24
|
+
export default Pagination;
|
@@ -1,17 +1,15 @@
|
|
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 PropTypes from 'prop-types';
|
5
4
|
import styled from 'styled-components';
|
6
|
-
import sx from '../sx';
|
7
|
-
import { get, COMMON } from '../constants';
|
8
|
-
import theme from '../theme';
|
9
5
|
import Box from '../Box';
|
10
|
-
import {
|
6
|
+
import { get } from '../constants';
|
7
|
+
import sx from '../sx';
|
8
|
+
import { buildComponentData, buildPaginationModel } from './model';
|
11
9
|
const Page = styled.a.withConfig({
|
12
10
|
displayName: "Pagination__Page",
|
13
|
-
componentId: "
|
14
|
-
})(["display:inline-block;min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:", ";text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;text-decoration:none;margin-right:", ";&:last-child{margin-right:0;}border:", " solid transparent;border-radius:", ";transition:border-color 0.2s cubic-bezier(0.3,0,0.5,1);&:hover,&:focus{text-decoration:none;border-color:", ";outline:0;transition-duration:0.1s;}&:active{border-color:", ";}&[rel='prev'],&[rel='next']{color:", ";}&[aria-current],&[aria-current]:hover{color:", ";background-color:", ";border-color:
|
11
|
+
componentId: "b80nss-0"
|
12
|
+
})(["display:inline-block;min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:", ";text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;text-decoration:none;margin-right:", ";&:last-child{margin-right:0;}border:", " solid transparent;border-radius:", ";transition:border-color 0.2s cubic-bezier(0.3,0,0.5,1);&:hover,&:focus{text-decoration:none;border-color:", ";outline:0;transition-duration:0.1s;}&:active{border-color:", ";}&[rel='prev'],&[rel='next']{color:", ";}&[aria-current],&[aria-current]:hover{color:", ";background-color:", ";border-color:transparent;}&[aria-disabled],&[aria-disabled]:hover{color:", ";cursor:default;border-color:transparent;}@supports (clip-path:polygon(50% 0,100% 50%,50% 100%)){&[rel='prev']::before,&[rel='next']::after{display:inline-block;width:16px;height:16px;vertical-align:text-bottom;content:'';background-color:currentColor;}&[rel='prev']::before{margin-right:", ";clip-path:polygon( 9.8px 12.8px,8.7px 12.8px,4.5px 8.5px,4.5px 7.5px,8.7px 3.2px,9.8px 4.3px,6.1px 8px,9.8px 11.7px,9.8px 12.8px );}&[rel='next']::after{margin-left:", ";clip-path:polygon( 6.2px 3.2px,7.3px 3.2px,11.5px 7.5px,11.5px 8.5px,7.3px 12.8px,6.2px 11.7px,9.9px 8px,6.2px 4.3px,6.2px 3.2px );}}"], get('colors.fg.default'), get('space.1'), get('borderWidths.1'), get('radii.2'), get('colors.border.default'), get('colors.border.muted'), get('colors.accent.fg'), get('colors.fg.onEmphasis'), get('colors.accent.emphasis'), get('colors.primer.fg.disabled'), get('space.1'), get('space.1'));
|
15
13
|
|
16
14
|
function usePaginationPages({
|
17
15
|
theme,
|
@@ -25,7 +23,7 @@ function usePaginationPages({
|
|
25
23
|
}) {
|
26
24
|
const pageChange = React.useCallback(n => e => onPageChange(e, n), [onPageChange]);
|
27
25
|
const model = React.useMemo(() => {
|
28
|
-
return buildPaginationModel(pageCount, currentPage, showPages, marginPageCount, surroundingPageCount);
|
26
|
+
return buildPaginationModel(pageCount, currentPage, !!showPages, marginPageCount, surroundingPageCount);
|
29
27
|
}, [pageCount, currentPage, showPages, marginPageCount, surroundingPageCount]);
|
30
28
|
const children = React.useMemo(() => {
|
31
29
|
return model.map(page => {
|
@@ -45,18 +43,18 @@ function usePaginationPages({
|
|
45
43
|
|
46
44
|
const PaginationContainer = styled.nav.withConfig({
|
47
45
|
displayName: "Pagination__PaginationContainer",
|
48
|
-
componentId: "
|
46
|
+
componentId: "b80nss-1"
|
49
47
|
})(["margin-top:20px;margin-bottom:15px;text-align:center;", ";"], sx);
|
50
48
|
|
51
49
|
function Pagination({
|
52
50
|
theme,
|
53
51
|
pageCount,
|
54
52
|
currentPage,
|
55
|
-
onPageChange,
|
56
|
-
hrefBuilder,
|
57
|
-
marginPageCount,
|
58
|
-
showPages,
|
59
|
-
surroundingPageCount,
|
53
|
+
onPageChange = noop,
|
54
|
+
hrefBuilder = defaultHrefBuilder,
|
55
|
+
marginPageCount = 1,
|
56
|
+
showPages = true,
|
57
|
+
surroundingPageCount = 2,
|
60
58
|
...rest
|
61
59
|
}) {
|
62
60
|
const pageElements = usePaginationPages({
|
@@ -83,27 +81,16 @@ Pagination.displayName = "Pagination";
|
|
83
81
|
|
84
82
|
function defaultHrefBuilder(pageNum) {
|
85
83
|
return `#${pageNum}`;
|
86
|
-
}
|
84
|
+
} // eslint-disable-next-line @typescript-eslint/no-empty-function
|
85
|
+
|
87
86
|
|
88
87
|
function noop() {}
|
89
88
|
|
90
|
-
Pagination.propTypes = {
|
91
|
-
currentPage: PropTypes.number.isRequired,
|
92
|
-
hrefBuilder: PropTypes.func,
|
93
|
-
marginPageCount: PropTypes.number,
|
94
|
-
onPageChange: PropTypes.func,
|
95
|
-
pageCount: PropTypes.number.isRequired,
|
96
|
-
showPages: PropTypes.bool,
|
97
|
-
surroundingPageCount: PropTypes.number,
|
98
|
-
...COMMON.propTypes,
|
99
|
-
...sx.propTypes
|
100
|
-
};
|
101
89
|
Pagination.defaultProps = {
|
102
90
|
hrefBuilder: defaultHrefBuilder,
|
103
91
|
marginPageCount: 1,
|
104
92
|
onPageChange: noop,
|
105
93
|
showPages: true,
|
106
|
-
surroundingPageCount: 2
|
107
|
-
theme
|
94
|
+
surroundingPageCount: 2
|
108
95
|
};
|
109
96
|
export default Pagination;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
export declare function buildPaginationModel(pageCount: number, currentPage: number, showPages: boolean, marginPageCount: number, surroundingPageCount: number): ({
|
3
|
+
type: string;
|
4
|
+
num: number;
|
5
|
+
disabled: boolean;
|
6
|
+
} | {
|
7
|
+
type: string;
|
8
|
+
num: number;
|
9
|
+
selected?: undefined;
|
10
|
+
} | {
|
11
|
+
type: string;
|
12
|
+
num: number;
|
13
|
+
selected: boolean;
|
14
|
+
})[];
|
15
|
+
declare type PageType = {
|
16
|
+
type: string;
|
17
|
+
num: number;
|
18
|
+
disabled?: boolean;
|
19
|
+
selected?: boolean;
|
20
|
+
};
|
21
|
+
export declare function buildComponentData(page: PageType, hrefBuilder: (n: number) => string, onClick: (e: React.MouseEvent) => void): {
|
22
|
+
props: {};
|
23
|
+
key: string;
|
24
|
+
content: string;
|
25
|
+
};
|
26
|
+
export {};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import { BorderBoxProps } from './BorderBox';
|
3
|
+
import { CaretProps } from './Caret';
|
4
|
+
export declare type PointerBoxProps = {
|
5
|
+
caret?: CaretProps['location'];
|
6
|
+
bg?: CaretProps['bg'];
|
7
|
+
borderColor?: CaretProps['borderColor'];
|
8
|
+
border?: CaretProps['borderWidth'];
|
9
|
+
} & BorderBoxProps;
|
10
|
+
declare function PointerBox(props: PointerBoxProps): JSX.Element;
|
11
|
+
export default PointerBox;
|
package/lib-esm/PointerBox.js
CHANGED
@@ -1,17 +1,16 @@
|
|
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 PropTypes from 'prop-types';
|
5
4
|
import BorderBox from './BorderBox';
|
6
5
|
import Caret from './Caret';
|
7
|
-
import theme from './theme';
|
8
6
|
|
9
7
|
function PointerBox(props) {
|
10
8
|
// don't destructure these, just grab them
|
11
9
|
const {
|
12
10
|
bg,
|
13
11
|
border,
|
14
|
-
borderColor
|
12
|
+
borderColor,
|
13
|
+
theme
|
15
14
|
} = props;
|
16
15
|
const {
|
17
16
|
caret,
|
@@ -22,7 +21,8 @@ function PointerBox(props) {
|
|
22
21
|
bg,
|
23
22
|
borderColor,
|
24
23
|
borderWidth: border,
|
25
|
-
location: caret
|
24
|
+
location: caret,
|
25
|
+
theme
|
26
26
|
};
|
27
27
|
return /*#__PURE__*/React.createElement(BorderBox, _extends({
|
28
28
|
sx: {
|
@@ -32,11 +32,4 @@ function PointerBox(props) {
|
|
32
32
|
}
|
33
33
|
|
34
34
|
PointerBox.displayName = "PointerBox";
|
35
|
-
PointerBox.defaultProps = {
|
36
|
-
theme
|
37
|
-
};
|
38
|
-
PointerBox.propTypes = { ...BorderBox.propTypes,
|
39
|
-
caret: Caret.propTypes.location,
|
40
|
-
theme: PropTypes.object
|
41
|
-
};
|
42
35
|
export default PointerBox;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/// <reference types="hoist-non-react-statics" />
|
2
|
+
import { SxProp } from './sx';
|
3
|
+
import { ComponentProps } from './utils/types';
|
4
|
+
declare type CaretPosition = 'top' | 'bottom' | 'left' | 'right' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'left-bottom' | 'left-top' | 'right-bottom' | 'right-top';
|
5
|
+
declare const Popover: import("styled-components").StyledComponent<"div", any, {
|
6
|
+
caret?: CaretPosition | undefined;
|
7
|
+
relative?: boolean | undefined;
|
8
|
+
open?: boolean | undefined;
|
9
|
+
} & SxProp, never>;
|
10
|
+
declare const PopoverContent: import("styled-components").StyledComponent<"div", any, SxProp, never>;
|
11
|
+
export declare type PopoverProps = ComponentProps<typeof Popover>;
|
12
|
+
export declare type PopoverContentProps = ComponentProps<typeof PopoverContent>;
|
13
|
+
declare const _default: string & import("styled-components").StyledComponentBase<"div", any, {
|
14
|
+
caret?: CaretPosition | undefined;
|
15
|
+
relative?: boolean | undefined;
|
16
|
+
open?: boolean | undefined;
|
17
|
+
} & SxProp, never> & import("hoist-non-react-statics").NonReactStatics<never, {}> & {
|
18
|
+
Content: import("styled-components").StyledComponent<"div", any, SxProp, never>;
|
19
|
+
};
|
20
|
+
export default _default;
|
package/lib-esm/Popover.js
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
import classnames from 'classnames';
|
2
|
-
import PropTypes from 'prop-types';
|
3
2
|
import styled from 'styled-components';
|
4
|
-
import
|
5
|
-
import { COMMON, get, LAYOUT, POSITION } from './constants';
|
3
|
+
import { get } from './constants';
|
6
4
|
import sx from './sx';
|
7
|
-
import theme from './theme';
|
8
5
|
const Popover = styled.div.attrs(({
|
9
6
|
className,
|
10
7
|
caret
|
@@ -15,32 +12,13 @@ const Popover = styled.div.attrs(({
|
|
15
12
|
}).withConfig({
|
16
13
|
displayName: "Popover",
|
17
14
|
componentId: "sc-1nxygy2-0"
|
18
|
-
})(["position:", ";z-index:100;display:", ";", ";"
|
19
|
-
const PopoverContent = styled
|
15
|
+
})(["position:", ";z-index:100;display:", ";", ";"], props => props.relative ? 'relative' : 'absolute', props => props.open ? 'block' : 'none', sx);
|
16
|
+
const PopoverContent = styled.div.withConfig({
|
20
17
|
displayName: "Popover__PopoverContent",
|
21
18
|
componentId: "sc-1nxygy2-1"
|
22
|
-
})(["position:relative;width:232px;margin-right:auto;margin-left:auto;padding:", ";background-color:", "
|
19
|
+
})(["border:1px solid ", ";border-radius:", ";position:relative;width:232px;margin-right:auto;margin-left:auto;padding:", ";background-color:", ";&::before,&::after{position:absolute;left:50%;display:inline-block;content:'';}&::before{top:-", ";margin-left:-9px;border:", " solid transparent;border-bottom-color:", ";}&::after{top:-14px;margin-left:-", ";border:7px solid transparent;border-bottom-color:", ";}", ".caret-pos--bottom &,", ".caret-pos--bottom-right &,", ".caret-pos--bottom-left &{&::before,&::after{top:auto;border-bottom-color:transparent;}&::before{bottom:-", ";border-top-color:", ";}&::after{bottom:-14px;border-top-color:", ";}}", ".caret-pos--top-right &,", ".caret-pos--bottom-right &{right:-9px;margin-right:0;&::before,&::after{left:auto;margin-left:0;}&::before{right:20px;}&::after{right:21px;}}", ".caret-pos--top-left &,", ".caret-pos--bottom-left &{left:-9px;margin-left:0;&::before,&::after{left:", ";margin-left:0;}&::after{left:calc(", " + 1px);}}", ".caret-pos--right &,", ".caret-pos--right-top &,", ".caret-pos--right-bottom &,", ".caret-pos--left &,", ".caret-pos--left-top &,", ".caret-pos--left-bottom &{&::before,&::after{top:50%;left:auto;margin-left:0;border-bottom-color:transparent;}&::before{margin-top:calc((", " + 1px) * -1);}&::after{margin-top:-", ";}}", ".caret-pos--right &,", ".caret-pos--right-top &,", ".caret-pos--right-bottom &{&::before{right:-", ";border-left-color:", ";}&::after{right:-14px;border-left-color:", ";}}", ".caret-pos--left &,", ".caret-pos--left-top &,", ".caret-pos--left-bottom &{&::before{left:-", ";border-right-color:", ";}&::after{left:-14px;border-right-color:", ";}}", ".caret-pos--right-top &,", ".caret-pos--left-top &{&::before,&::after{top:", ";}}", ".caret-pos--right-bottom &,", ".caret-pos--left-bottom &{&::before,&::after{top:auto;}&::before{bottom:", ";}&::after{bottom:calc(", " + 1px);}}", ";"], get('colors.border.default'), get('radii.2'), get('space.4'), get('colors.canvas.overlay'), get('space.3'), get('space.2'), get('colors.border.default'), get('space.2'), get('colors.canvas.overlay'), Popover, Popover, Popover, get('space.3'), get('colors.border.default'), get('colors.canvas.overlay'), Popover, Popover, Popover, Popover, get('space.4'), get('space.4'), Popover, Popover, Popover, Popover, Popover, Popover, get('space.2'), get('space.2'), Popover, Popover, Popover, get('space.3'), get('colors.border.default'), get('colors.canvas.overlay'), Popover, Popover, Popover, get('space.3'), get('colors.border.default'), get('colors.canvas.overlay'), Popover, Popover, get('space.4'), Popover, Popover, get('space.3'), get('space.3'), sx);
|
23
20
|
Popover.defaultProps = {
|
24
|
-
caret: 'top'
|
25
|
-
theme
|
26
|
-
};
|
27
|
-
Popover.propTypes = {
|
28
|
-
caret: PropTypes.any,
|
29
|
-
open: PropTypes.bool,
|
30
|
-
relative: PropTypes.bool,
|
31
|
-
theme: PropTypes.object,
|
32
|
-
...COMMON.propTypes,
|
33
|
-
...LAYOUT.propTypes,
|
34
|
-
...POSITION.propTypes,
|
35
|
-
...sx.propTypes
|
36
|
-
};
|
37
|
-
PopoverContent.defaultProps = {
|
38
|
-
theme
|
39
|
-
};
|
40
|
-
PopoverContent.propTypes = {
|
41
|
-
theme: PropTypes.object,
|
42
|
-
...BorderBox.propTypes,
|
43
|
-
...sx.propTypes
|
21
|
+
caret: 'top'
|
44
22
|
};
|
45
23
|
PopoverContent.displayName = 'Popover.Content';
|
46
24
|
export default Object.assign(Popover, {
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
/**
|
3
|
+
* Register a container to serve as a portal root.
|
4
|
+
* @param root The element that will be the root for portals created in this container
|
5
|
+
* @param name The name of the container, to be used with the `containerName` prop on the Portal Component.
|
6
|
+
* If name is not specified, registers the default portal root.
|
7
|
+
*/
|
8
|
+
export declare function registerPortalRoot(root: Element, name?: string): void;
|
9
|
+
export interface PortalProps {
|
10
|
+
/**
|
11
|
+
* Called when this portal is added to the DOM
|
12
|
+
*/
|
13
|
+
onMount?: () => void;
|
14
|
+
/**
|
15
|
+
* Optional. Mount this portal at the container specified
|
16
|
+
* by this name. The container must be previously registered
|
17
|
+
* with `registerPortal`.
|
18
|
+
*/
|
19
|
+
containerName?: string;
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* Creates a React Portal, placing all children in a separate physical DOM root node.
|
23
|
+
* @see https://reactjs.org/docs/portals.html
|
24
|
+
*/
|
25
|
+
export declare const Portal: React.FC<PortalProps>;
|