@primer/components 29.1.0 → 29.1.1-rc.cea79543
Sign up to get free protection for your applications and to get access to all the features.
- package/.changeset/README.md +8 -0
- package/.changeset/config.json +10 -0
- package/.devcontainer/devcontainer.json +8 -0
- package/.eslintrc.json +106 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +41 -0
- package/.github/dependabot.yml +18 -0
- package/.github/pull_request_template.md +18 -0
- package/.github/workflows/ci.yml +31 -0
- package/.github/workflows/deploy_preview.yml +47 -0
- package/.github/workflows/deploy_production.yml +70 -0
- package/.github/workflows/release.yml +35 -0
- package/.github/workflows/release_canary.yml +70 -0
- package/.github/workflows/release_candidate.yml +60 -0
- package/.github/workflows/size.yml +13 -0
- package/.github/workflows/stale.yml +26 -0
- package/.gitignore +10 -0
- package/.npmrc +4 -0
- package/.nvmrc +1 -0
- package/.storybook/main.js +11 -0
- package/.storybook/preview.js +69 -0
- package/.vscode/launch.json +21 -0
- package/.vscode/settings.json +13 -0
- package/@types/@styled-system/index.d.ts +0 -0
- package/@types/@styled-system/prop-types/index.d.ts +1 -0
- package/@types/@styled-system/props/index.d.ts +1 -0
- package/@types/jest-styled-components/index.d.ts +1 -0
- package/CHANGELOG.md +6 -0
- package/CODEOWNERS +2 -0
- package/babel-defines.js +13 -0
- package/babel.config.js +39 -0
- package/contributor-docs/CODE_OF_CONDUCT.md +76 -0
- package/contributor-docs/CONTRIBUTING.md +274 -0
- package/contributor-docs/adrs/adr-001-typescript.md +23 -0
- package/contributor-docs/adrs/adr-002-behavior-isolation.md +106 -0
- package/contributor-docs/behaviors.md +132 -0
- package/contributor-docs/component-contents-api-patterns.md +315 -0
- package/contributor-docs/principles.md +39 -0
- package/docs/.eslintrc +0 -0
- package/docs/.gitignore +91 -0
- package/docs/components/PropsList.js +5 -0
- package/docs/components/State.js +9 -0
- package/docs/components/constants.js +34 -0
- package/docs/components/index.js +2 -0
- package/docs/content/ActionList.mdx +72 -0
- package/docs/content/ActionMenu.mdx +80 -0
- package/docs/content/AnchoredOverlay.mdx +37 -0
- package/docs/content/Avatar.mdx +33 -0
- package/docs/content/AvatarStack.mdx +43 -0
- package/docs/content/BorderBox.md +46 -0
- package/docs/content/Box.md +74 -0
- package/docs/content/BranchName.md +18 -0
- package/docs/content/Breadcrumbs.md +52 -0
- package/docs/content/Buttons.md +54 -0
- package/docs/content/CircleBadge.md +45 -0
- package/docs/content/CircleOcticon.md +18 -0
- package/docs/content/CounterLabel.md +30 -0
- package/docs/content/Details.md +105 -0
- package/docs/content/Dialog.md +108 -0
- package/docs/content/Dialog2.mdx +179 -0
- package/docs/content/Dropdown.md +72 -0
- package/docs/content/DropdownMenu.mdx +49 -0
- package/docs/content/FilterList.md +44 -0
- package/docs/content/FilteredSearch.md +39 -0
- package/docs/content/Flash.md +42 -0
- package/docs/content/Flex.md +58 -0
- package/docs/content/FormGroup.md +44 -0
- package/docs/content/Grid.md +59 -0
- package/docs/content/Header.md +79 -0
- package/docs/content/Heading.md +22 -0
- package/docs/content/Label.md +40 -0
- package/docs/content/LabelGroup.md +31 -0
- package/docs/content/Link.md +37 -0
- package/docs/content/Overlay.mdx +94 -0
- package/docs/content/Pagehead.md +27 -0
- package/docs/content/Pagination.md +187 -0
- package/docs/content/PointerBox.md +81 -0
- package/docs/content/Popover.md +137 -0
- package/docs/content/Portal.mdx +73 -0
- package/docs/content/Position.md +97 -0
- package/docs/content/ProgressBar.mdx +29 -0
- package/docs/content/SelectMenu.md +433 -0
- package/docs/content/SelectPanel.mdx +67 -0
- package/docs/content/SideNav.md +179 -0
- package/docs/content/Spinner.mdx +32 -0
- package/docs/content/StateLabel.md +33 -0
- package/docs/content/StyledOcticon.md +34 -0
- package/docs/content/SubNav.md +102 -0
- package/docs/content/TabNav.md +50 -0
- package/docs/content/Text.md +29 -0
- package/docs/content/TextInput.md +32 -0
- package/docs/content/Timeline.md +138 -0
- package/docs/content/Tooltip.md +41 -0
- package/docs/content/Truncate.md +65 -0
- package/docs/content/UnderlineNav.md +53 -0
- package/docs/content/anchoredPosition.mdx +163 -0
- package/docs/content/core-concepts.md +70 -0
- package/docs/content/focusTrap.mdx +103 -0
- package/docs/content/focusZone.mdx +145 -0
- package/docs/content/getting-started.md +134 -0
- package/docs/content/index.md +33 -0
- package/docs/content/linting.md +35 -0
- package/docs/content/overriding-styles.mdx +79 -0
- package/docs/content/philosophy.md +23 -0
- package/docs/content/primer-theme.md +89 -0
- package/docs/content/ssr.mdx +43 -0
- package/docs/content/system-props.mdx +37 -0
- package/docs/content/theme-reference.md +16 -0
- package/docs/content/theming.md +249 -0
- package/docs/content/useOnEscapePress.mdx +56 -0
- package/docs/content/useOnOutsideClick.mdx +57 -0
- package/docs/content/useOpenAndCloseFocus.mdx +49 -0
- package/docs/content/useOverlay.mdx +62 -0
- package/docs/content/useSafeTimeout.mdx +32 -0
- package/docs/gatsby-config.js +30 -0
- package/docs/gatsby-node.js +101 -0
- package/docs/package-lock.json +20979 -0
- package/docs/package.json +35 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +21 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/live-code.js +84 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +39 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/nav-dropdown.js +48 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/wrap-page-element.js +25 -0
- package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +54 -0
- package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +127 -0
- package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +1411 -0
- package/docs/src/props.js +77 -0
- package/jest.config.js +13 -0
- package/lib/Button/Button.d.ts +0 -1
- package/lib/Button/ButtonClose.d.ts +1 -2
- package/lib/Button/ButtonDanger.d.ts +0 -1
- package/lib/Button/ButtonInvisible.d.ts +0 -1
- package/lib/Button/ButtonOutline.d.ts +0 -1
- package/lib/Button/ButtonPrimary.d.ts +0 -1
- package/lib/CircleOcticon.d.ts +0 -1
- package/lib/Dialog.d.ts +2 -3
- package/lib/Dropdown.d.ts +0 -4
- package/lib/DropdownMenu/DropdownButton.d.ts +1 -2
- package/lib/FilterList.d.ts +0 -1
- package/lib/Position.d.ts +4 -4
- package/lib/SelectMenu/SelectMenu.d.ts +4 -10
- package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib/Timeline.d.ts +0 -1
- package/lib/__tests__/ActionList.d.ts +1 -0
- package/lib/__tests__/ActionList.js +67 -0
- package/lib/__tests__/ActionMenu.d.ts +1 -0
- package/lib/__tests__/ActionMenu.js +154 -0
- package/lib/__tests__/AnchoredOverlay.d.ts +1 -0
- package/lib/__tests__/AnchoredOverlay.js +161 -0
- package/lib/__tests__/Avatar.d.ts +1 -0
- package/lib/__tests__/Avatar.js +70 -0
- package/lib/__tests__/AvatarStack.d.ts +1 -0
- package/lib/__tests__/AvatarStack.js +71 -0
- package/lib/__tests__/BorderBox.d.ts +1 -0
- package/lib/__tests__/BorderBox.js +61 -0
- package/lib/__tests__/Box.d.ts +1 -0
- package/lib/__tests__/Box.js +81 -0
- package/lib/__tests__/BranchName.d.ts +1 -0
- package/lib/__tests__/BranchName.js +39 -0
- package/lib/__tests__/Breadcrumb.d.ts +1 -0
- package/lib/__tests__/Breadcrumb.js +42 -0
- package/lib/__tests__/BreadcrumbItem.d.ts +1 -0
- package/lib/__tests__/BreadcrumbItem.js +52 -0
- package/lib/__tests__/Button.d.ts +1 -0
- package/lib/__tests__/Button.js +152 -0
- package/lib/__tests__/Caret.d.ts +1 -0
- package/lib/__tests__/Caret.js +52 -0
- package/lib/__tests__/CircleBadge.d.ts +1 -0
- package/lib/__tests__/CircleBadge.js +87 -0
- package/lib/__tests__/CircleOcticon.d.ts +1 -0
- package/lib/__tests__/CircleOcticon.js +74 -0
- package/lib/__tests__/CounterLabel.d.ts +1 -0
- package/lib/__tests__/CounterLabel.js +61 -0
- package/lib/__tests__/Details.d.ts +1 -0
- package/lib/__tests__/Details.js +120 -0
- package/lib/__tests__/Dialog.d.ts +1 -0
- package/lib/__tests__/Dialog.js +188 -0
- package/lib/__tests__/Dropdown.d.ts +1 -0
- package/lib/__tests__/Dropdown.js +70 -0
- package/lib/__tests__/DropdownMenu.d.ts +1 -0
- package/lib/__tests__/DropdownMenu.js +153 -0
- package/lib/__tests__/FilterList.d.ts +1 -0
- package/lib/__tests__/FilterList.js +39 -0
- package/lib/__tests__/FilterListItem.d.ts +1 -0
- package/lib/__tests__/FilterListItem.js +49 -0
- package/lib/__tests__/FilteredSearch.d.ts +1 -0
- package/lib/__tests__/FilteredSearch.js +39 -0
- package/lib/__tests__/Flash.d.ts +1 -0
- package/lib/__tests__/Flash.js +65 -0
- package/lib/__tests__/Flex.d.ts +1 -0
- package/lib/__tests__/Flex.js +77 -0
- package/lib/__tests__/FormGroup.d.ts +1 -0
- package/lib/__tests__/FormGroup.js +58 -0
- package/lib/__tests__/Grid.d.ts +1 -0
- package/lib/__tests__/Grid.js +107 -0
- package/lib/__tests__/Header.d.ts +1 -0
- package/lib/__tests__/Header.js +63 -0
- package/lib/__tests__/Heading.d.ts +1 -0
- package/lib/__tests__/Heading.js +112 -0
- package/lib/__tests__/Label.d.ts +1 -0
- package/lib/__tests__/Label.js +49 -0
- package/lib/__tests__/LabelGroup.d.ts +1 -0
- package/lib/__tests__/LabelGroup.js +41 -0
- package/lib/__tests__/Link.d.ts +1 -0
- package/lib/__tests__/Link.js +73 -0
- package/lib/__tests__/Overlay.d.ts +1 -0
- package/lib/__tests__/Overlay.js +145 -0
- package/lib/__tests__/Pagehead.d.ts +1 -0
- package/lib/__tests__/Pagehead.js +40 -0
- package/lib/__tests__/Pagination/Pagination.d.ts +1 -0
- package/lib/__tests__/Pagination/Pagination.js +50 -0
- package/lib/__tests__/Pagination/PaginationModel.d.ts +1 -0
- package/lib/__tests__/Pagination/PaginationModel.js +186 -0
- package/lib/__tests__/PointerBox.d.ts +1 -0
- package/lib/__tests__/PointerBox.js +49 -0
- package/lib/__tests__/Popover.d.ts +1 -0
- package/lib/__tests__/Popover.js +70 -0
- package/lib/__tests__/Portal.d.ts +1 -0
- package/lib/__tests__/Portal.js +124 -0
- package/lib/__tests__/Position.d.ts +1 -0
- package/lib/__tests__/Position.js +149 -0
- package/lib/__tests__/ProgressBar.d.ts +1 -0
- package/lib/__tests__/ProgressBar.js +71 -0
- package/lib/__tests__/SelectMenu.d.ts +1 -0
- package/lib/__tests__/SelectMenu.js +155 -0
- package/lib/__tests__/SelectPanel.d.ts +1 -0
- package/lib/__tests__/SelectPanel.js +83 -0
- package/lib/__tests__/SideNav.d.ts +1 -0
- package/lib/__tests__/SideNav.js +75 -0
- package/lib/__tests__/Spinner.d.ts +1 -0
- package/lib/__tests__/Spinner.js +56 -0
- package/lib/__tests__/StateLabel.d.ts +1 -0
- package/lib/__tests__/StateLabel.js +74 -0
- package/lib/__tests__/StyledOcticon.d.ts +1 -0
- package/lib/__tests__/StyledOcticon.js +43 -0
- package/lib/__tests__/SubNav.d.ts +1 -0
- package/lib/__tests__/SubNav.js +65 -0
- package/lib/__tests__/SubNavLink.d.ts +1 -0
- package/lib/__tests__/SubNavLink.js +52 -0
- package/lib/__tests__/TabNav.d.ts +1 -0
- package/lib/__tests__/TabNav.js +53 -0
- package/lib/__tests__/Text.d.ts +1 -0
- package/lib/__tests__/Text.js +108 -0
- package/lib/__tests__/TextInput.d.ts +1 -0
- package/lib/__tests__/TextInput.js +81 -0
- package/lib/__tests__/ThemeProvider.d.ts +1 -0
- package/lib/__tests__/ThemeProvider.js +444 -0
- package/lib/__tests__/Timeline.d.ts +1 -0
- package/lib/__tests__/Timeline.js +80 -0
- package/lib/__tests__/Tooltip.d.ts +1 -0
- package/lib/__tests__/Tooltip.js +72 -0
- package/lib/__tests__/Truncate.d.ts +1 -0
- package/lib/__tests__/Truncate.js +66 -0
- package/lib/__tests__/UnderlineNav.d.ts +1 -0
- package/lib/__tests__/UnderlineNav.js +75 -0
- package/lib/__tests__/UnderlineNavLink.d.ts +1 -0
- package/lib/__tests__/UnderlineNavLink.js +54 -0
- package/lib/__tests__/behaviors/anchoredPosition.d.ts +1 -0
- package/lib/__tests__/behaviors/anchoredPosition.js +390 -0
- package/lib/__tests__/behaviors/focusTrap.d.ts +1 -0
- package/lib/__tests__/behaviors/focusTrap.js +234 -0
- package/lib/__tests__/behaviors/focusZone.d.ts +1 -0
- package/lib/__tests__/behaviors/focusZone.js +570 -0
- package/lib/__tests__/behaviors/iterateFocusableElements.d.ts +1 -0
- package/lib/__tests__/behaviors/iterateFocusableElements.js +55 -0
- package/lib/__tests__/filterObject.d.ts +1 -0
- package/lib/__tests__/filterObject.js +30 -0
- package/lib/__tests__/hooks/useAnchoredPosition.d.ts +1 -0
- package/lib/__tests__/hooks/useAnchoredPosition.js +54 -0
- package/lib/__tests__/hooks/useOnEscapePress.d.ts +1 -0
- package/lib/__tests__/hooks/useOnEscapePress.js +32 -0
- package/lib/__tests__/hooks/useOnOutsideClick.d.ts +1 -0
- package/lib/__tests__/hooks/useOnOutsideClick.js +87 -0
- package/lib/__tests__/hooks/useOpenAndCloseFocus.d.ts +1 -0
- package/lib/__tests__/hooks/useOpenAndCloseFocus.js +60 -0
- package/lib/__tests__/hooks/useProvidedStateOrCreate.d.ts +1 -0
- package/lib/__tests__/hooks/useProvidedStateOrCreate.js +45 -0
- package/lib/__tests__/theme.d.ts +1 -0
- package/lib/__tests__/theme.js +36 -0
- package/lib/__tests__/themeGet.d.ts +1 -0
- package/lib/__tests__/themeGet.js +25 -0
- package/lib/__tests__/useSafeTimeout.d.ts +1 -0
- package/lib/__tests__/useSafeTimeout.js +45 -0
- package/lib/stories/ActionList.stories.js +382 -0
- package/lib/stories/ActionMenu.stories.js +338 -0
- package/lib/stories/AnchoredOverlay.stories.js +127 -0
- package/lib/stories/AvatarStack.stories.js +49 -0
- package/lib/stories/Button.stories.js +114 -0
- package/lib/stories/ConfirmationDialog.stories.js +111 -0
- package/lib/stories/Dialog.stories.js +265 -0
- package/lib/stories/DropdownMenu.stories.js +122 -0
- package/lib/stories/Overlay.stories.js +185 -0
- package/lib/stories/Portal.stories.js +104 -0
- package/lib/stories/SelectPanel.stories.js +342 -0
- package/lib/stories/ThemeProvider.stories.js +102 -0
- package/lib/stories/useAnchoredPosition.stories.js +351 -0
- package/lib/stories/useFocusTrap.stories.js +356 -0
- package/lib/stories/useFocusZone.stories.js +599 -0
- package/lib-esm/Button/Button.d.ts +0 -1
- package/lib-esm/Button/ButtonClose.d.ts +1 -2
- package/lib-esm/Button/ButtonDanger.d.ts +0 -1
- package/lib-esm/Button/ButtonInvisible.d.ts +0 -1
- package/lib-esm/Button/ButtonOutline.d.ts +0 -1
- package/lib-esm/Button/ButtonPrimary.d.ts +0 -1
- package/lib-esm/CircleOcticon.d.ts +0 -1
- package/lib-esm/Dialog.d.ts +2 -3
- package/lib-esm/Dropdown.d.ts +0 -4
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +1 -2
- package/lib-esm/FilterList.d.ts +0 -1
- package/lib-esm/Position.d.ts +4 -4
- package/lib-esm/SelectMenu/SelectMenu.d.ts +4 -10
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib-esm/Timeline.d.ts +0 -1
- package/lib-esm/__tests__/ActionList.d.ts +1 -0
- package/lib-esm/__tests__/ActionList.js +54 -0
- package/lib-esm/__tests__/ActionMenu.d.ts +1 -0
- package/lib-esm/__tests__/ActionMenu.js +141 -0
- package/lib-esm/__tests__/AnchoredOverlay.d.ts +1 -0
- package/lib-esm/__tests__/AnchoredOverlay.js +135 -0
- package/lib-esm/__tests__/Avatar.d.ts +1 -0
- package/lib-esm/__tests__/Avatar.js +58 -0
- package/lib-esm/__tests__/AvatarStack.d.ts +1 -0
- package/lib-esm/__tests__/AvatarStack.js +57 -0
- package/lib-esm/__tests__/BorderBox.d.ts +1 -0
- package/lib-esm/__tests__/BorderBox.js +49 -0
- package/lib-esm/__tests__/Box.d.ts +1 -0
- package/lib-esm/__tests__/Box.js +69 -0
- package/lib-esm/__tests__/BranchName.d.ts +1 -0
- package/lib-esm/__tests__/BranchName.js +28 -0
- package/lib-esm/__tests__/Breadcrumb.d.ts +1 -0
- package/lib-esm/__tests__/Breadcrumb.js +31 -0
- package/lib-esm/__tests__/BreadcrumbItem.d.ts +1 -0
- package/lib-esm/__tests__/BreadcrumbItem.js +41 -0
- package/lib-esm/__tests__/Button.d.ts +1 -0
- package/lib-esm/__tests__/Button.js +141 -0
- package/lib-esm/__tests__/Caret.d.ts +1 -0
- package/lib-esm/__tests__/Caret.js +42 -0
- package/lib-esm/__tests__/CircleBadge.d.ts +1 -0
- package/lib-esm/__tests__/CircleBadge.js +73 -0
- package/lib-esm/__tests__/CircleOcticon.d.ts +1 -0
- package/lib-esm/__tests__/CircleOcticon.js +61 -0
- package/lib-esm/__tests__/CounterLabel.d.ts +1 -0
- package/lib-esm/__tests__/CounterLabel.js +49 -0
- package/lib-esm/__tests__/Details.d.ts +1 -0
- package/lib-esm/__tests__/Details.js +109 -0
- package/lib-esm/__tests__/Dialog.d.ts +1 -0
- package/lib-esm/__tests__/Dialog.js +174 -0
- package/lib-esm/__tests__/Dropdown.d.ts +1 -0
- package/lib-esm/__tests__/Dropdown.js +59 -0
- package/lib-esm/__tests__/DropdownMenu.d.ts +1 -0
- package/lib-esm/__tests__/DropdownMenu.js +139 -0
- package/lib-esm/__tests__/FilterList.d.ts +1 -0
- package/lib-esm/__tests__/FilterList.js +28 -0
- package/lib-esm/__tests__/FilterListItem.d.ts +1 -0
- package/lib-esm/__tests__/FilterListItem.js +38 -0
- package/lib-esm/__tests__/FilteredSearch.d.ts +1 -0
- package/lib-esm/__tests__/FilteredSearch.js +28 -0
- package/lib-esm/__tests__/Flash.d.ts +1 -0
- package/lib-esm/__tests__/Flash.js +53 -0
- package/lib-esm/__tests__/Flex.d.ts +1 -0
- package/lib-esm/__tests__/Flex.js +66 -0
- package/lib-esm/__tests__/FormGroup.d.ts +1 -0
- package/lib-esm/__tests__/FormGroup.js +47 -0
- package/lib-esm/__tests__/Grid.d.ts +1 -0
- package/lib-esm/__tests__/Grid.js +96 -0
- package/lib-esm/__tests__/Header.d.ts +1 -0
- package/lib-esm/__tests__/Header.js +52 -0
- package/lib-esm/__tests__/Heading.d.ts +1 -0
- package/lib-esm/__tests__/Heading.js +101 -0
- package/lib-esm/__tests__/Label.d.ts +1 -0
- package/lib-esm/__tests__/Label.js +38 -0
- package/lib-esm/__tests__/LabelGroup.d.ts +1 -0
- package/lib-esm/__tests__/LabelGroup.js +28 -0
- package/lib-esm/__tests__/Link.d.ts +1 -0
- package/lib-esm/__tests__/Link.js +62 -0
- package/lib-esm/__tests__/Overlay.d.ts +1 -0
- package/lib-esm/__tests__/Overlay.js +123 -0
- package/lib-esm/__tests__/Pagehead.d.ts +1 -0
- package/lib-esm/__tests__/Pagehead.js +28 -0
- package/lib-esm/__tests__/Pagination/Pagination.d.ts +1 -0
- package/lib-esm/__tests__/Pagination/Pagination.js +37 -0
- package/lib-esm/__tests__/Pagination/PaginationModel.d.ts +1 -0
- package/lib-esm/__tests__/Pagination/PaginationModel.js +182 -0
- package/lib-esm/__tests__/PointerBox.d.ts +1 -0
- package/lib-esm/__tests__/PointerBox.js +38 -0
- package/lib-esm/__tests__/Popover.d.ts +1 -0
- package/lib-esm/__tests__/Popover.js +56 -0
- package/lib-esm/__tests__/Portal.d.ts +1 -0
- package/lib-esm/__tests__/Portal.js +104 -0
- package/lib-esm/__tests__/Position.d.ts +1 -0
- package/lib-esm/__tests__/Position.js +138 -0
- package/lib-esm/__tests__/ProgressBar.d.ts +1 -0
- package/lib-esm/__tests__/ProgressBar.js +60 -0
- package/lib-esm/__tests__/SelectMenu.d.ts +1 -0
- package/lib-esm/__tests__/SelectMenu.js +145 -0
- package/lib-esm/__tests__/SelectPanel.d.ts +1 -0
- package/lib-esm/__tests__/SelectPanel.js +67 -0
- package/lib-esm/__tests__/SideNav.d.ts +1 -0
- package/lib-esm/__tests__/SideNav.js +63 -0
- package/lib-esm/__tests__/Spinner.d.ts +1 -0
- package/lib-esm/__tests__/Spinner.js +45 -0
- package/lib-esm/__tests__/StateLabel.d.ts +1 -0
- package/lib-esm/__tests__/StateLabel.js +63 -0
- package/lib-esm/__tests__/StyledOcticon.d.ts +1 -0
- package/lib-esm/__tests__/StyledOcticon.js +31 -0
- package/lib-esm/__tests__/SubNav.d.ts +1 -0
- package/lib-esm/__tests__/SubNav.js +52 -0
- package/lib-esm/__tests__/SubNavLink.d.ts +1 -0
- package/lib-esm/__tests__/SubNavLink.js +41 -0
- package/lib-esm/__tests__/TabNav.d.ts +1 -0
- package/lib-esm/__tests__/TabNav.js +42 -0
- package/lib-esm/__tests__/Text.d.ts +1 -0
- package/lib-esm/__tests__/Text.js +95 -0
- package/lib-esm/__tests__/TextInput.d.ts +1 -0
- package/lib-esm/__tests__/TextInput.js +70 -0
- package/lib-esm/__tests__/ThemeProvider.d.ts +1 -0
- package/lib-esm/__tests__/ThemeProvider.js +408 -0
- package/lib-esm/__tests__/Timeline.d.ts +1 -0
- package/lib-esm/__tests__/Timeline.js +69 -0
- package/lib-esm/__tests__/Tooltip.d.ts +1 -0
- package/lib-esm/__tests__/Tooltip.js +61 -0
- package/lib-esm/__tests__/Truncate.d.ts +1 -0
- package/lib-esm/__tests__/Truncate.js +55 -0
- package/lib-esm/__tests__/UnderlineNav.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNav.js +62 -0
- package/lib-esm/__tests__/UnderlineNavLink.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNavLink.js +43 -0
- package/lib-esm/__tests__/behaviors/anchoredPosition.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/anchoredPosition.js +388 -0
- package/lib-esm/__tests__/behaviors/focusTrap.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/focusTrap.js +227 -0
- package/lib-esm/__tests__/behaviors/focusZone.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/focusZone.js +487 -0
- package/lib-esm/__tests__/behaviors/iterateFocusableElements.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/iterateFocusableElements.js +48 -0
- package/lib-esm/__tests__/filterObject.d.ts +1 -0
- package/lib-esm/__tests__/filterObject.js +27 -0
- package/lib-esm/__tests__/hooks/useAnchoredPosition.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useAnchoredPosition.js +46 -0
- package/lib-esm/__tests__/hooks/useOnEscapePress.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useOnEscapePress.js +23 -0
- package/lib-esm/__tests__/hooks/useOnOutsideClick.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useOnOutsideClick.js +68 -0
- package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.js +52 -0
- package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.js +36 -0
- package/lib-esm/__tests__/theme.d.ts +1 -0
- package/lib-esm/__tests__/theme.js +33 -0
- package/lib-esm/__tests__/themeGet.d.ts +1 -0
- package/lib-esm/__tests__/themeGet.js +22 -0
- package/lib-esm/__tests__/useSafeTimeout.d.ts +1 -0
- package/lib-esm/__tests__/useSafeTimeout.js +39 -0
- package/lib-esm/stories/ActionList.stories.js +334 -0
- package/lib-esm/stories/ActionMenu.stories.js +293 -0
- package/lib-esm/stories/AnchoredOverlay.stories.js +101 -0
- package/lib-esm/stories/AvatarStack.stories.js +32 -0
- package/lib-esm/stories/Button.stories.js +78 -0
- package/lib-esm/stories/ConfirmationDialog.stories.js +86 -0
- package/lib-esm/stories/Dialog.stories.js +240 -0
- package/lib-esm/stories/DropdownMenu.stories.js +94 -0
- package/lib-esm/stories/Overlay.stories.js +154 -0
- package/lib-esm/stories/Portal.stories.js +68 -0
- package/lib-esm/stories/SelectPanel.stories.js +284 -0
- package/lib-esm/stories/ThemeProvider.stories.js +83 -0
- package/lib-esm/stories/useAnchoredPosition.stories.js +313 -0
- package/lib-esm/stories/useFocusTrap.stories.js +309 -0
- package/lib-esm/stories/useFocusZone.stories.js +554 -0
- package/migrating.md +250 -0
- package/now.json +17 -0
- package/package-lock.json +28661 -0
- package/package.json +2 -2
- package/rollup.config.js +36 -0
- package/script/build +19 -0
- package/script/setup +12 -0
- package/src/ActionList/Divider.tsx +25 -0
- package/src/ActionList/Group.tsx +45 -0
- package/src/ActionList/Header.tsx +74 -0
- package/src/ActionList/Item.tsx +460 -0
- package/src/ActionList/List.tsx +253 -0
- package/src/ActionList/index.ts +21 -0
- package/src/ActionMenu.tsx +106 -0
- package/src/AnchoredOverlay/AnchoredOverlay.tsx +180 -0
- package/src/AnchoredOverlay/index.ts +2 -0
- package/src/Avatar.tsx +46 -0
- package/src/AvatarPair.tsx +35 -0
- package/src/AvatarStack.tsx +161 -0
- package/src/BaseStyles.tsx +53 -0
- package/src/BorderBox.tsx +18 -0
- package/src/Box.tsx +54 -0
- package/src/BranchName.tsx +19 -0
- package/src/Breadcrumb.tsx +87 -0
- package/src/Button/Button.tsx +40 -0
- package/src/Button/ButtonBase.tsx +43 -0
- package/src/Button/ButtonClose.tsx +40 -0
- package/src/Button/ButtonDanger.tsx +43 -0
- package/src/Button/ButtonGroup.tsx +55 -0
- package/src/Button/ButtonInvisible.tsx +27 -0
- package/src/Button/ButtonOutline.tsx +43 -0
- package/src/Button/ButtonPrimary.tsx +41 -0
- package/src/Button/ButtonStyles.tsx +36 -0
- package/src/Button/ButtonTableList.tsx +58 -0
- package/src/Button/index.ts +16 -0
- package/src/Caret.tsx +133 -0
- package/src/CircleBadge.tsx +55 -0
- package/src/CircleOcticon.tsx +37 -0
- package/src/CounterLabel.tsx +52 -0
- package/src/Details.tsx +23 -0
- package/src/Dialog/ConfirmationDialog.tsx +184 -0
- package/src/Dialog/Dialog.tsx +419 -0
- package/src/Dialog.tsx +149 -0
- package/src/Dropdown.tsx +158 -0
- package/src/DropdownMenu/DropdownButton.tsx +15 -0
- package/src/DropdownMenu/DropdownMenu.tsx +115 -0
- package/src/DropdownMenu/index.ts +4 -0
- package/src/DropdownStyles.ts +128 -0
- package/src/FilterList.tsx +81 -0
- package/src/FilteredActionList/FilteredActionList.tsx +152 -0
- package/src/FilteredActionList/index.ts +2 -0
- package/src/FilteredSearch.tsx +28 -0
- package/src/Flash.tsx +77 -0
- package/src/Flex.tsx +15 -0
- package/src/FormGroup.tsx +27 -0
- package/src/Grid.tsx +15 -0
- package/src/Header.tsx +84 -0
- package/src/Heading.tsx +21 -0
- package/src/Label.tsx +75 -0
- package/src/LabelGroup.tsx +18 -0
- package/src/Link.tsx +46 -0
- package/src/Overlay.tsx +194 -0
- package/src/Pagehead.tsx +17 -0
- package/src/Pagination/Pagination.tsx +214 -0
- package/src/Pagination/index.ts +4 -0
- package/src/Pagination/model.tsx +187 -0
- package/src/PointerBox.tsx +31 -0
- package/src/Popover.tsx +236 -0
- package/src/Portal/Portal.tsx +96 -0
- package/src/Portal/index.ts +5 -0
- package/src/Position.tsx +63 -0
- package/src/ProgressBar.tsx +52 -0
- package/src/SelectMenu/SelectMenu.tsx +125 -0
- package/src/SelectMenu/SelectMenuContext.tsx +9 -0
- package/src/SelectMenu/SelectMenuDivider.tsx +25 -0
- package/src/SelectMenu/SelectMenuFilter.tsx +51 -0
- package/src/SelectMenu/SelectMenuFooter.tsx +28 -0
- package/src/SelectMenu/SelectMenuHeader.tsx +50 -0
- package/src/SelectMenu/SelectMenuItem.tsx +137 -0
- package/src/SelectMenu/SelectMenuList.tsx +42 -0
- package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +24 -0
- package/src/SelectMenu/SelectMenuModal.tsx +121 -0
- package/src/SelectMenu/SelectMenuTab.tsx +88 -0
- package/src/SelectMenu/SelectMenuTabPanel.tsx +30 -0
- package/src/SelectMenu/SelectMenuTabs.tsx +44 -0
- package/src/SelectMenu/hooks/useKeyboardNav.js +90 -0
- package/src/SelectMenu/index.ts +15 -0
- package/src/SelectPanel/SelectPanel.tsx +173 -0
- package/src/SelectPanel/index.ts +2 -0
- package/src/SideNav.tsx +193 -0
- package/src/Spinner.tsx +59 -0
- package/src/StateLabel.tsx +110 -0
- package/src/StyledOcticon.tsx +24 -0
- package/src/SubNav.tsx +129 -0
- package/src/TabNav.tsx +77 -0
- package/src/Text.tsx +13 -0
- package/src/TextInput.tsx +183 -0
- package/src/ThemeProvider.tsx +176 -0
- package/src/Timeline.tsx +141 -0
- package/src/Tooltip.tsx +263 -0
- package/src/Truncate.tsx +36 -0
- package/src/UnderlineNav.tsx +110 -0
- package/src/__tests__/.eslintrc.json +11 -0
- package/src/__tests__/ActionList.tsx +49 -0
- package/src/__tests__/ActionMenu.tsx +138 -0
- package/src/__tests__/AnchoredOverlay.tsx +151 -0
- package/src/__tests__/Avatar.tsx +45 -0
- package/src/__tests__/AvatarStack.tsx +45 -0
- package/src/__tests__/BorderBox.tsx +44 -0
- package/src/__tests__/Box.tsx +43 -0
- package/src/__tests__/BranchName.tsx +27 -0
- package/src/__tests__/Breadcrumb.tsx +31 -0
- package/src/__tests__/BreadcrumbItem.tsx +32 -0
- package/src/__tests__/Button.tsx +129 -0
- package/src/__tests__/Caret.tsx +36 -0
- package/src/__tests__/CircleBadge.tsx +69 -0
- package/src/__tests__/CircleOcticon.tsx +52 -0
- package/src/__tests__/CounterLabel.tsx +51 -0
- package/src/__tests__/Details.tsx +116 -0
- package/src/__tests__/Dialog.tsx +157 -0
- package/src/__tests__/Dropdown.tsx +57 -0
- package/src/__tests__/DropdownMenu.tsx +138 -0
- package/src/__tests__/FilterList.tsx +27 -0
- package/src/__tests__/FilterListItem.tsx +32 -0
- package/src/__tests__/FilteredSearch.tsx +27 -0
- package/src/__tests__/Flash.tsx +46 -0
- package/src/__tests__/Flex.tsx +59 -0
- package/src/__tests__/FormGroup.tsx +39 -0
- package/src/__tests__/Grid.tsx +83 -0
- package/src/__tests__/Header.tsx +50 -0
- package/src/__tests__/Heading.tsx +92 -0
- package/src/__tests__/Label.tsx +35 -0
- package/src/__tests__/LabelGroup.tsx +31 -0
- package/src/__tests__/Link.tsx +48 -0
- package/src/__tests__/Overlay.tsx +103 -0
- package/src/__tests__/Pagehead.tsx +24 -0
- package/src/__tests__/Pagination/Pagination.tsx +31 -0
- package/src/__tests__/Pagination/PaginationModel.tsx +133 -0
- package/src/__tests__/Pagination/__snapshots__/Pagination.tsx.snap +184 -0
- package/src/__tests__/PointerBox.tsx +35 -0
- package/src/__tests__/Popover.tsx +69 -0
- package/src/__tests__/Portal.tsx +103 -0
- package/src/__tests__/Position.tsx +118 -0
- package/src/__tests__/ProgressBar.tsx +41 -0
- package/src/__tests__/SelectMenu.tsx +142 -0
- package/src/__tests__/SelectPanel.tsx +65 -0
- package/src/__tests__/SideNav.tsx +63 -0
- package/src/__tests__/Spinner.tsx +44 -0
- package/src/__tests__/StateLabel.tsx +50 -0
- package/src/__tests__/StyledOcticon.tsx +28 -0
- package/src/__tests__/SubNav.tsx +51 -0
- package/src/__tests__/SubNavLink.tsx +32 -0
- package/src/__tests__/TabNav.tsx +33 -0
- package/src/__tests__/Text.tsx +79 -0
- package/src/__tests__/TextInput.tsx +50 -0
- package/src/__tests__/ThemeProvider.tsx +441 -0
- package/src/__tests__/Timeline.tsx +59 -0
- package/src/__tests__/Tooltip.tsx +53 -0
- package/src/__tests__/Truncate.tsx +45 -0
- package/src/__tests__/UnderlineNav.tsx +59 -0
- package/src/__tests__/UnderlineNavLink.tsx +32 -0
- package/src/__tests__/__snapshots__/ActionList.tsx.snap +27 -0
- package/src/__tests__/__snapshots__/ActionMenu.tsx.snap +80 -0
- package/src/__tests__/__snapshots__/AnchoredOverlay.tsx.snap +332 -0
- package/src/__tests__/__snapshots__/Avatar.tsx.snap +19 -0
- package/src/__tests__/__snapshots__/AvatarStack.tsx.snap +377 -0
- package/src/__tests__/__snapshots__/BorderBox.tsx.snap +14 -0
- package/src/__tests__/__snapshots__/Box.tsx.snap +201 -0
- package/src/__tests__/__snapshots__/BranchName.tsx.snap +17 -0
- package/src/__tests__/__snapshots__/Breadcrumb.tsx.snap +29 -0
- package/src/__tests__/__snapshots__/BreadcrumbItem.tsx.snap +79 -0
- package/src/__tests__/__snapshots__/Button.tsx.snap +832 -0
- package/src/__tests__/__snapshots__/Caret.tsx.snap +373 -0
- package/src/__tests__/__snapshots__/CircleBadge.tsx.snap +141 -0
- package/src/__tests__/__snapshots__/CircleOcticon.tsx.snap +64 -0
- package/src/__tests__/__snapshots__/CounterLabel.tsx.snap +22 -0
- package/src/__tests__/__snapshots__/Details.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Dialog.tsx.snap +200 -0
- package/src/__tests__/__snapshots__/Dropdown.tsx.snap +249 -0
- package/src/__tests__/__snapshots__/DropdownMenu.tsx.snap +106 -0
- package/src/__tests__/__snapshots__/FilterList.tsx.snap +13 -0
- package/src/__tests__/__snapshots__/FilterListItem.tsx.snap +80 -0
- package/src/__tests__/__snapshots__/FilteredSearch.tsx.snap +32 -0
- package/src/__tests__/__snapshots__/Flash.tsx.snap +32 -0
- package/src/__tests__/__snapshots__/Flex.tsx.snap +130 -0
- package/src/__tests__/__snapshots__/FormGroup.tsx.snap +25 -0
- package/src/__tests__/__snapshots__/Grid.tsx.snap +178 -0
- package/src/__tests__/__snapshots__/Header.tsx.snap +79 -0
- package/src/__tests__/__snapshots__/Heading.tsx.snap +13 -0
- package/src/__tests__/__snapshots__/Label.tsx.snap +74 -0
- package/src/__tests__/__snapshots__/LabelGroup.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Link.tsx.snap +213 -0
- package/src/__tests__/__snapshots__/Pagehead.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/PointerBox.tsx.snap +174 -0
- package/src/__tests__/__snapshots__/Popover.tsx.snap +4687 -0
- package/src/__tests__/__snapshots__/Position.tsx.snap +44 -0
- package/src/__tests__/__snapshots__/ProgressBar.tsx.snap +53 -0
- package/src/__tests__/__snapshots__/SelectMenu.tsx.snap +469 -0
- package/src/__tests__/__snapshots__/SelectPanel.tsx.snap +123 -0
- package/src/__tests__/__snapshots__/SideNav.tsx.snap +143 -0
- package/src/__tests__/__snapshots__/Spinner.tsx.snap +33 -0
- package/src/__tests__/__snapshots__/StateLabel.tsx.snap +409 -0
- package/src/__tests__/__snapshots__/StyledOcticon.tsx.snap +25 -0
- package/src/__tests__/__snapshots__/SubNav.tsx.snap +44 -0
- package/src/__tests__/__snapshots__/SubNavLink.tsx.snap +199 -0
- package/src/__tests__/__snapshots__/TabNav.tsx.snap +58 -0
- package/src/__tests__/__snapshots__/Text.tsx.snap +7 -0
- package/src/__tests__/__snapshots__/TextInput.tsx.snap +440 -0
- package/src/__tests__/__snapshots__/ThemeProvider.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Timeline.tsx.snap +159 -0
- package/src/__tests__/__snapshots__/Tooltip.tsx.snap +227 -0
- package/src/__tests__/__snapshots__/Truncate.tsx.snap +17 -0
- package/src/__tests__/__snapshots__/UnderlineNav.tsx.snap +59 -0
- package/src/__tests__/__snapshots__/UnderlineNavLink.tsx.snap +130 -0
- package/src/__tests__/behaviors/anchoredPosition.ts +295 -0
- package/src/__tests__/behaviors/focusTrap.tsx +236 -0
- package/src/__tests__/behaviors/focusZone.tsx +549 -0
- package/src/__tests__/behaviors/iterateFocusableElements.tsx +61 -0
- package/src/__tests__/filterObject.ts +54 -0
- package/src/__tests__/hooks/useAnchoredPosition.tsx +31 -0
- package/src/__tests__/hooks/useOnEscapePress.tsx +16 -0
- package/src/__tests__/hooks/useOnOutsideClick.tsx +48 -0
- package/src/__tests__/hooks/useOpenAndCloseFocus.tsx +48 -0
- package/src/__tests__/hooks/useProvidedStateOrCreate.tsx +39 -0
- package/src/__tests__/theme.ts +41 -0
- package/src/__tests__/themeGet.ts +15 -0
- package/src/__tests__/useSafeTimeout.tsx +36 -0
- package/src/behaviors/anchoredPosition.ts +442 -0
- package/src/behaviors/focusTrap.ts +184 -0
- package/src/behaviors/focusZone.ts +713 -0
- package/src/constants.ts +62 -0
- package/src/hooks/index.ts +11 -0
- package/src/hooks/useAnchoredPosition.ts +53 -0
- package/src/hooks/useCombinedRefs.ts +40 -0
- package/src/hooks/useDetails.tsx +54 -0
- package/src/hooks/useDialog.ts +121 -0
- package/src/hooks/useFocusTrap.ts +80 -0
- package/src/hooks/useFocusZone.ts +64 -0
- package/src/hooks/useOnEscapePress.ts +63 -0
- package/src/hooks/useOnOutsideClick.tsx +82 -0
- package/src/hooks/useOpenAndCloseFocus.ts +27 -0
- package/src/hooks/useOverlay.tsx +32 -0
- package/src/hooks/useProvidedRefOrCreate.ts +14 -0
- package/src/hooks/useProvidedStateOrCreate.ts +27 -0
- package/src/hooks/useRenderForcingRef.ts +22 -0
- package/src/hooks/useResizeObserver.ts +11 -0
- package/src/hooks/useSafeTimeout.ts +38 -0
- package/src/hooks/useScrollFlash.ts +21 -0
- package/src/index.ts +165 -0
- package/src/polyfills/eventListenerSignal.ts +66 -0
- package/src/stories/ActionList.stories.tsx +364 -0
- package/src/stories/ActionMenu.stories.tsx +322 -0
- package/src/stories/AnchoredOverlay.stories.tsx +117 -0
- package/src/stories/AvatarStack.stories.tsx +37 -0
- package/src/stories/Button.stories.tsx +88 -0
- package/src/stories/ConfirmationDialog.stories.tsx +105 -0
- package/src/stories/Dialog.stories.tsx +240 -0
- package/src/stories/DropdownMenu.stories.tsx +84 -0
- package/src/stories/Overlay.stories.tsx +186 -0
- package/src/stories/Portal.stories.tsx +109 -0
- package/src/stories/SelectPanel.stories.tsx +300 -0
- package/src/stories/ThemeProvider.stories.tsx +104 -0
- package/src/stories/useAnchoredPosition.stories.tsx +320 -0
- package/src/stories/useFocusTrap.stories.tsx +400 -0
- package/src/stories/useFocusZone.stories.tsx +663 -0
- package/src/sx.ts +9 -0
- package/src/theme-preval.js +136 -0
- package/src/theme.ts +3 -0
- package/src/utils/deprecate.tsx +73 -0
- package/src/utils/isNumeric.tsx +4 -0
- package/src/utils/iterateFocusableElements.ts +121 -0
- package/src/utils/ssr.tsx +1 -0
- package/src/utils/test-deprecations.tsx +19 -0
- package/src/utils/test-helpers.tsx +7 -0
- package/src/utils/test-matchers.tsx +109 -0
- package/src/utils/testing.tsx +243 -0
- package/src/utils/theme.js +64 -0
- package/src/utils/types.ts +90 -0
- package/src/utils/uniqueId.ts +6 -0
- package/src/utils/userAgent.ts +7 -0
- package/stats.html +3279 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.json +20 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
title: FilterList
|
3
|
+
---
|
4
|
+
|
5
|
+
The FilterList component is a menu with filter options that filter the main content of the page.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<FilterList>
|
11
|
+
<FilterList.Item selected count="32" href="#foo">
|
12
|
+
First Filter
|
13
|
+
</FilterList.Item>
|
14
|
+
<FilterList.Item count="2" href="#bar">
|
15
|
+
Second Filter
|
16
|
+
</FilterList.Item>
|
17
|
+
<FilterList.Item href="#baz">Third Filter</FilterList.Item>
|
18
|
+
</FilterList>
|
19
|
+
```
|
20
|
+
|
21
|
+
## System props
|
22
|
+
|
23
|
+
<Note variant="warning">
|
24
|
+
|
25
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
26
|
+
|
27
|
+
</Note>
|
28
|
+
|
29
|
+
FilterList components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
30
|
+
|
31
|
+
## Component props
|
32
|
+
|
33
|
+
#### FilterList
|
34
|
+
|
35
|
+
`FilterList` does not get any additional props other than the system props mentioned above.
|
36
|
+
|
37
|
+
#### FilterList.Item
|
38
|
+
|
39
|
+
| Name | Type | Default | Description |
|
40
|
+
| :------- | :------ | :-----: | :--------------------------------------------------------------- |
|
41
|
+
| count | Number | | Number to be displayed in the list item |
|
42
|
+
| as | String | `a` | sets the HTML tag for the component |
|
43
|
+
| selected | Boolean | | Used to set selected style |
|
44
|
+
| small | Boolean | false | Used to create a smaller version of the standard FilterList.Item |
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
title: FilteredSearch
|
3
|
+
---
|
4
|
+
|
5
|
+
The FilteredSearch component helps style a Dropdown and a TextInput side-by-side.
|
6
|
+
|
7
|
+
**Note:** You _must_ use a `TextInput` and `Dropdown` (or native `<details>` and `<summary>`) in order for this component to work properly.
|
8
|
+
|
9
|
+
## Default example
|
10
|
+
|
11
|
+
```jsx live
|
12
|
+
<FilteredSearch>
|
13
|
+
<Dropdown>
|
14
|
+
<Dropdown.Button>Filter</Dropdown.Button>
|
15
|
+
<Dropdown.Menu direction="sw">
|
16
|
+
<Dropdown.Item>Item 1</Dropdown.Item>
|
17
|
+
<Dropdown.Item>Item 2</Dropdown.Item>
|
18
|
+
<Dropdown.Item>Item 3</Dropdown.Item>
|
19
|
+
</Dropdown.Menu>
|
20
|
+
</Dropdown>
|
21
|
+
<TextInput icon={SearchIcon} />
|
22
|
+
</FilteredSearch>
|
23
|
+
```
|
24
|
+
|
25
|
+
## System props
|
26
|
+
|
27
|
+
<Note variant="warning">
|
28
|
+
|
29
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
30
|
+
|
31
|
+
</Note>
|
32
|
+
|
33
|
+
FilteredSearch gets `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
34
|
+
|
35
|
+
## Component props
|
36
|
+
|
37
|
+
#### FilteredSearch.Children
|
38
|
+
|
39
|
+
FilteredSearch is expected to contain a [`Dropdown`](/Dropdown) followed by a [`TextInput`](/TextInput).
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
title: Flash
|
3
|
+
---
|
4
|
+
|
5
|
+
The Flash component informs users of successful or pending actions.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<Flash>Default Flash</Flash>
|
11
|
+
<Flash variant="success">Success Flash</Flash>
|
12
|
+
<Flash variant="warning">Warning Flash</Flash>
|
13
|
+
<Flash variant="danger">Danger Flash</Flash>
|
14
|
+
```
|
15
|
+
|
16
|
+
## With an icon
|
17
|
+
|
18
|
+
Flash components with icons inside of them will automatically set the correct color for the icon depending on the type of Flash, as well as applying the correct right margin.
|
19
|
+
|
20
|
+
```jsx live
|
21
|
+
<Flash variant="success">
|
22
|
+
<StyledOcticon icon={CheckIcon} />
|
23
|
+
Success!
|
24
|
+
</Flash>
|
25
|
+
```
|
26
|
+
|
27
|
+
## System props
|
28
|
+
|
29
|
+
<Note variant="warning">
|
30
|
+
|
31
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
32
|
+
|
33
|
+
</Note>
|
34
|
+
|
35
|
+
Flash components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
36
|
+
|
37
|
+
## Component props
|
38
|
+
|
39
|
+
| Name | Type | Default | Description |
|
40
|
+
| :------ | :------ | :-----: | :----------------------------------------------------------------------------------------------------------------------- |
|
41
|
+
| full | Boolean | | Creates a full width Flash component |
|
42
|
+
| variant | String | default | Can be one of `default`, `success`, `warning`, or `danger` - sets the background color and border of the Flash component |
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
title: Flex
|
3
|
+
status: Deprecated
|
4
|
+
---
|
5
|
+
|
6
|
+
The `Flex` component behaves the same as the `Box` component except that it has `display: flex` set by default.
|
7
|
+
|
8
|
+
## Deprecation
|
9
|
+
|
10
|
+
Use [Box](/Box) instead.
|
11
|
+
|
12
|
+
**Before**
|
13
|
+
|
14
|
+
```jsx
|
15
|
+
<Flex flexWrap="nowrap">
|
16
|
+
<Box p={3} color="text.inverse" bg="bg.infoInverse">
|
17
|
+
Item 1
|
18
|
+
</Box>
|
19
|
+
</Flex>
|
20
|
+
```
|
21
|
+
|
22
|
+
**After**
|
23
|
+
|
24
|
+
```jsx
|
25
|
+
<Box display="flex" flexWrap="nowrap">
|
26
|
+
<Box p={3} color="text.inverse" bg="bg.infoInverse">
|
27
|
+
Item 1
|
28
|
+
</Box>
|
29
|
+
</Box>
|
30
|
+
```
|
31
|
+
|
32
|
+
## Default example
|
33
|
+
|
34
|
+
```jsx live
|
35
|
+
<Box borderWidth="1px" borderStyle="solid" borderColor="border.primary" width={300} height={300} borderRadius={0}>
|
36
|
+
<Flex flexWrap="nowrap">
|
37
|
+
<Box p={3} color="text.inverse" bg="bg.infoInverse">
|
38
|
+
Item 1
|
39
|
+
</Box>
|
40
|
+
<Box p={3} color="text.inverse" bg="bg.warningInverse">
|
41
|
+
Item 2
|
42
|
+
</Box>
|
43
|
+
<Box p={3} color="text.inverse" bg="bg.dangerInverse">
|
44
|
+
Item 3
|
45
|
+
</Box>
|
46
|
+
</Flex>
|
47
|
+
</Box>
|
48
|
+
```
|
49
|
+
|
50
|
+
## System props
|
51
|
+
|
52
|
+
Flex components get `FLEX`, `COMMON`, and `LAYOUT` system props.
|
53
|
+
|
54
|
+
Read our [System Props](/system-props) doc page for a full list of available props.
|
55
|
+
|
56
|
+
## Component props
|
57
|
+
|
58
|
+
`Flex` does not get any additional props other than the system props mentioned above.
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
title: FormGroup
|
3
|
+
---
|
4
|
+
|
5
|
+
Adds styles for multiple form elements used together.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<FormGroup>
|
11
|
+
<FormGroup.Label htmlFor="example-text">Example text</FormGroup.Label>
|
12
|
+
<TextInput id="example-text" value="Example Value" />
|
13
|
+
</FormGroup>
|
14
|
+
|
15
|
+
<FormGroup>
|
16
|
+
<FormGroup.Label htmlFor="example-text-b">Example text</FormGroup.Label>
|
17
|
+
<TextInput id="example-text-b" value="Example Value" />
|
18
|
+
</FormGroup>
|
19
|
+
```
|
20
|
+
|
21
|
+
## System props
|
22
|
+
|
23
|
+
<Note variant="warning">
|
24
|
+
|
25
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
26
|
+
|
27
|
+
</Note>
|
28
|
+
|
29
|
+
FormGroup components get `COMMON` system props. FormGroup.Label components get `COMMON` and `TYPOGRAPHY` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
30
|
+
|
31
|
+
## Component props
|
32
|
+
|
33
|
+
### FormGroup
|
34
|
+
|
35
|
+
| Name | Type | Default | Description |
|
36
|
+
| :--- | :----- | :-----: | :---------------------------------- |
|
37
|
+
| as | String | `div` | Sets the HTML tag for the component |
|
38
|
+
|
39
|
+
### FormGroup.Label
|
40
|
+
|
41
|
+
| Name | Type | Default | Description |
|
42
|
+
| :------ | :----- | :-----: | :----------------------------------------------------------------------------- |
|
43
|
+
| as | String | `label` | Sets the HTML tag for the component |
|
44
|
+
| htmlFor | String | | The value of `htmlFor` needs to be the same as the `id` of the input it labels |
|
@@ -0,0 +1,59 @@
|
|
1
|
+
---
|
2
|
+
title: Grid
|
3
|
+
status: Deprecated
|
4
|
+
---
|
5
|
+
|
6
|
+
Grid is a component that exposes grid system props. See the [CSS Tricks Complete Guide to Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) to learn more about Grid Layout.
|
7
|
+
|
8
|
+
## Deprecation
|
9
|
+
|
10
|
+
Use [Box](/Box) instead.
|
11
|
+
|
12
|
+
**Before**
|
13
|
+
|
14
|
+
```jsx
|
15
|
+
<Grid gridTemplateColumns="repeat(2, auto)" gridGap={3}>
|
16
|
+
<Box p={3} color="text.inverse" bg="bg.infoInverse">
|
17
|
+
1
|
18
|
+
</Box>
|
19
|
+
<Box p={3} color="text.inverse" bg="bg.warningInverse">
|
20
|
+
2
|
21
|
+
</Box>
|
22
|
+
</Grid>
|
23
|
+
```
|
24
|
+
|
25
|
+
**After**
|
26
|
+
|
27
|
+
```jsx
|
28
|
+
<Box display="grid" gridTemplateColumns="repeat(2, auto)" gridGap={3}>
|
29
|
+
<Box p={3} color="text.inverse" bg="bg.infoInverse">
|
30
|
+
1
|
31
|
+
</Box>
|
32
|
+
<Box p={3} color="text.inverse" bg="bg.warningInverse">
|
33
|
+
2
|
34
|
+
</Box>
|
35
|
+
</Box>
|
36
|
+
```
|
37
|
+
|
38
|
+
## Default example
|
39
|
+
|
40
|
+
```jsx live
|
41
|
+
<Grid gridTemplateColumns="repeat(2, auto)" gridGap={3}>
|
42
|
+
<Box p={3} color="text.inverse" bg="bg.infoInverse">
|
43
|
+
1
|
44
|
+
</Box>
|
45
|
+
<Box p={3} color="text.inverse" bg="bg.warningInverse">
|
46
|
+
2
|
47
|
+
</Box>
|
48
|
+
</Grid>
|
49
|
+
```
|
50
|
+
|
51
|
+
## System props
|
52
|
+
|
53
|
+
Grid components get `GRID`, `COMMON`, and `LAYOUT` system props.
|
54
|
+
|
55
|
+
Read our [System Props](/system-props) doc page for a full list of available props.
|
56
|
+
|
57
|
+
## Component props
|
58
|
+
|
59
|
+
`Grid` does not get any additional props other than the system props mentioned above.
|
@@ -0,0 +1,79 @@
|
|
1
|
+
---
|
2
|
+
title: Header
|
3
|
+
---
|
4
|
+
|
5
|
+
Use the `Header` component to create a header that has all of its items aligned vertically with consistent horizontal spacing.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
All items directly under the Header component should be a `Header.Item` component. Inside these components can be anything (text, forms, images...), and the `Header.Item` component will make sure these elements vertically align with each other.
|
10
|
+
|
11
|
+
`Header.Item` elements have a built-in margin that will need to be overridden with the `mr={0}` props for the last element in the container. We relied on the prop here instead of `:last-child` because the last child isn't always the item visible. On responsive pages, there's a mobile menu that gets presented to the user at smaller breakpoints.
|
12
|
+
|
13
|
+
```jsx live
|
14
|
+
<Header>
|
15
|
+
<Header.Item>
|
16
|
+
<Header.Link href="#" fontSize={2}>
|
17
|
+
<StyledOcticon icon={MarkGithubIcon} size={32} mr={2} />
|
18
|
+
<span>GitHub</span>
|
19
|
+
</Header.Link>
|
20
|
+
</Header.Item>
|
21
|
+
<Header.Item full>Menu</Header.Item>
|
22
|
+
<Header.Item mr={0}>
|
23
|
+
<Avatar src="https://github.com/octocat.png" size={20} square alt="@octocat" />
|
24
|
+
</Header.Item>
|
25
|
+
</Header>
|
26
|
+
```
|
27
|
+
|
28
|
+
## Header with full-size item example
|
29
|
+
|
30
|
+
```jsx live
|
31
|
+
<Header>
|
32
|
+
<Header.Item>Item 1</Header.Item>
|
33
|
+
<Header.Item full border={1} borderStyle="solid">
|
34
|
+
Item 2
|
35
|
+
</Header.Item>
|
36
|
+
<Header.Item mr={0}>Item 3</Header.Item>
|
37
|
+
</Header>
|
38
|
+
```
|
39
|
+
|
40
|
+
## Header with links example
|
41
|
+
|
42
|
+
```jsx live
|
43
|
+
<Header>
|
44
|
+
<Header.Item>
|
45
|
+
<Header.Link href="#">About</Header.Link>
|
46
|
+
</Header.Item>
|
47
|
+
<Header.Item>
|
48
|
+
<Header.Link href="#">Releases</Header.Link>
|
49
|
+
</Header.Item>
|
50
|
+
<Header.Item>
|
51
|
+
<Header.Link href="#">Team</Header.Link>
|
52
|
+
</Header.Item>
|
53
|
+
</Header>
|
54
|
+
```
|
55
|
+
|
56
|
+
## System props
|
57
|
+
|
58
|
+
<Note variant="warning">
|
59
|
+
|
60
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
61
|
+
|
62
|
+
</Note>
|
63
|
+
|
64
|
+
`Header` and `Header.Item` components get `COMMON` and `BORDER` system props. `Header.Link` component gets `COMMON`, `BORDER`, and `TYPOGRAPHY` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
65
|
+
|
66
|
+
## Component props
|
67
|
+
|
68
|
+
### Header.Item
|
69
|
+
|
70
|
+
| Prop name | Type | Description |
|
71
|
+
| :-------- | :------ | :----------------------------------------- |
|
72
|
+
| full | Boolean | stretches item to fill the available space |
|
73
|
+
|
74
|
+
### Header.Link
|
75
|
+
|
76
|
+
| Prop name | Type | Description |
|
77
|
+
| :-------- | :----- | :---------------------------------- |
|
78
|
+
| as | String | sets the HTML tag for the component |
|
79
|
+
| href | String | URL to be used for the Link |
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
title: Heading
|
3
|
+
---
|
4
|
+
|
5
|
+
The Heading component will render an html `h2` tag without any default styling. Other heading level elements `h1-h6` are available through use of the `as` prop (see [System Props](/system-props) for additional explanation). Please reference the [w3 recommendations for headings](https://www.w3.org/WAI/tutorials/page-structure/headings/) to ensure your headings provide an accessible experience for screen reader users.
|
6
|
+
|
7
|
+
**Attention:** Make sure to include a valid heading element to render a Heading component other than `h2` (`<Heading as="h1">H1 Element</Heading>`).
|
8
|
+
|
9
|
+
## Default example
|
10
|
+
```jsx live
|
11
|
+
<Heading fontSize={1} mb={2}>H2 heading with fontSize={1}</Heading>
|
12
|
+
```
|
13
|
+
|
14
|
+
## System props
|
15
|
+
|
16
|
+
Heading components get `TYPOGRAPHY` and `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
17
|
+
|
18
|
+
## Component props
|
19
|
+
|
20
|
+
| Prop name | Type | Description |
|
21
|
+
| :-------- | :------ | :----------------------------------------------- |
|
22
|
+
| as | String or React element | sets the HTML tag for the component |
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
title: Label
|
3
|
+
---
|
4
|
+
|
5
|
+
The Label component is used to add contextual metadata to a design. Visually it styles text, adds padding, and rounded corners.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<Label variant="small" outline sx={{borderColor: "border.danger", mr: 2, color: "text.danger"}}>small</Label>
|
11
|
+
<Label variant="medium" sx={{mr: 2}}>medium (default)</Label>
|
12
|
+
<Label variant="large" sx={{mr: 2}}>large</Label>
|
13
|
+
<Label variant="xl">xl label</Label>
|
14
|
+
|
15
|
+
<Box mt={4}/>
|
16
|
+
<Label variant="medium" sx={{bg:"#A575FF", m: 1}}>good first issue</Label>
|
17
|
+
<Label variant="medium" sx={{bg:"#FF75C8", m: 1}}>🚂 deploy: train</Label>
|
18
|
+
<Label variant="medium" sx={{bg:"#1C90FA", m: 1}}>css</Label>
|
19
|
+
<Label variant="medium" sx={{bg:"#FFF06C", color:"#24292E", m: 1}}>documentation</Label>
|
20
|
+
<Label variant="medium" sx={{bg: "#656BFE", m: 1}}>primer</Label>
|
21
|
+
```
|
22
|
+
|
23
|
+
## System props
|
24
|
+
|
25
|
+
<Note variant="warning">
|
26
|
+
|
27
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
28
|
+
|
29
|
+
</Note>
|
30
|
+
|
31
|
+
Label components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
32
|
+
|
33
|
+
## Component props
|
34
|
+
|
35
|
+
| Name | Type | Default | Description |
|
36
|
+
| :--------- | :------ | :--------------------: | :----------------------------------------------------------------------------- |
|
37
|
+
| outline | Boolean | | Creates an outline style label |
|
38
|
+
| variant | String | 'medium' | Can be one of `small`, `medium` (default), `large` or `xl` . |
|
39
|
+
| dropshadow | Boolean | | Adds a dropshadow to the label |
|
40
|
+
| bg | String | 'label.primary.border' | Part of the `COMMON` system props, used to change the background of the label. |
|
@@ -0,0 +1,31 @@
|
|
1
|
+
---
|
2
|
+
title: LabelGroup
|
3
|
+
---
|
4
|
+
|
5
|
+
The LabelGroup component is used to add commonly used margins and wrapping for groups of Labels.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<LabelGroup>
|
11
|
+
<Label>Default label</Label>
|
12
|
+
<Label sx={{color: 'prState.closed.text', bg: 'prState.closed.bg'}}>
|
13
|
+
Label with background indicating a closed PR state
|
14
|
+
</Label>
|
15
|
+
<Label outline>Default outline label</Label>
|
16
|
+
</LabelGroup>
|
17
|
+
```
|
18
|
+
|
19
|
+
## System props
|
20
|
+
|
21
|
+
<Note variant="warning">
|
22
|
+
|
23
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
24
|
+
|
25
|
+
</Note>
|
26
|
+
|
27
|
+
LabelGroup components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
28
|
+
|
29
|
+
## Component props
|
30
|
+
|
31
|
+
LabelGroup does not get any additional props.
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
title: Link
|
3
|
+
---
|
4
|
+
|
5
|
+
The Link component styles anchor tags with default hyperlink color cues and hover text decoration. `Link` is used for destinations, or moving from one page to another.
|
6
|
+
|
7
|
+
In special cases where you'd like a `<button>` styled like a `Link`, use `<Link as='button'>`. Make sure to provide a click handler with `onClick`.
|
8
|
+
|
9
|
+
**Important:** When using the `as` prop, be sure to always render an accessible element type, like `a`, `button`, `input`, or `summary`.
|
10
|
+
|
11
|
+
## Default example
|
12
|
+
|
13
|
+
```jsx live
|
14
|
+
<Link sx={{mb: 1}} href="https://github.com">
|
15
|
+
Link
|
16
|
+
</Link>
|
17
|
+
```
|
18
|
+
|
19
|
+
## System props
|
20
|
+
|
21
|
+
<Note variant="warning">
|
22
|
+
|
23
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
24
|
+
|
25
|
+
</Note>
|
26
|
+
|
27
|
+
Link components get `COMMON` and `TYPOGRAPHY` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
28
|
+
|
29
|
+
## Component props
|
30
|
+
|
31
|
+
| Name | Type | Default | Description |
|
32
|
+
| :--------- | :------ | :-----: | :------------------------------------------------------------------------------ |
|
33
|
+
| href | String | | URL to be used for the Link |
|
34
|
+
| muted | Boolean | false | Uses a less prominent shade for Link color, and the default link shade on hover |
|
35
|
+
| underline | Boolean | false | Adds underline to the Link |
|
36
|
+
| as | String | 'a' | Can be 'a', 'button', 'input', or 'summary' |
|
37
|
+
| hoverColor | String | | Color used when hovering over link |
|
@@ -0,0 +1,94 @@
|
|
1
|
+
---
|
2
|
+
title: Overlay
|
3
|
+
---
|
4
|
+
|
5
|
+
An `Overlay` is a flexible floating surface, used to display transient content such as menus, selection options, dialogs, and more. Overlays use shadows to express elevation. The `Overlay` component handles all behaviors needed by overlay UIs as well as the common styles that all overlays should have. `Overlay` is the base component for many of our overlay-type components.
|
6
|
+
|
7
|
+
Behaviors include:
|
8
|
+
|
9
|
+
- Rendering the overlay in a React Portal so that it always renders on top of other content on the page
|
10
|
+
- Trapping focus
|
11
|
+
- Calling a user provided function when the user presses `Escape`
|
12
|
+
- Calling a user provided function when the user clicks outside of the container
|
13
|
+
- Focusing either user provided element, or the first focusable element in the container when it is opened
|
14
|
+
- Returning focus to an element when container is closed
|
15
|
+
|
16
|
+
## Accessibility considerations
|
17
|
+
|
18
|
+
- The `Overlay` must either have:
|
19
|
+
- A value set for the `aria-labelledby` attribute that refers to a visible title.
|
20
|
+
- An `aria-label` attribute
|
21
|
+
- If the `Overlay` should also have a longer description, use `aria-describedby`
|
22
|
+
- The `Overlay` component has a `role="dialog"` set on it, if you are using `Overlay` for alerts, you can pass in `role="alertdialog"` instead. Please read the [W3C guidelines](https://www.w3.org/TR/wai-aria-1.1/#alertdialog) to determine which role is best for your use case
|
23
|
+
- The `Overlay` component has `aria-modal` set to `true` by default and should not be overridden as all `Overlay`s behave as modals.
|
24
|
+
|
25
|
+
See the W3C accessibility recommendations for modals [here](https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_roles_states_props).
|
26
|
+
|
27
|
+
## Positioning
|
28
|
+
|
29
|
+
`Overlay` renders its `children` within a div positioned absolutely within a portal within the default portal root. The overlay will not update its positioning if the portal root's positioning changes (e.g., if the portal root is statically positioned after some DOM element that dynamically resizes). You may consider [customizing the portal or specifying a different portal root](/Portal#customizing-the-portal-root) to achieve different positioning behavior.
|
30
|
+
|
31
|
+
## Default example
|
32
|
+
|
33
|
+
```javascript live noinline
|
34
|
+
const Demo = () => {
|
35
|
+
// you must manage your own open state
|
36
|
+
const [isOpen, setIsOpen] = React.useState(false)
|
37
|
+
const noButtonRef = React.useRef(null)
|
38
|
+
const anchorRef = React.useRef(null)
|
39
|
+
return (
|
40
|
+
<>
|
41
|
+
<Button ref={anchorRef} onClick={() => setIsOpen(!isOpen)}>
|
42
|
+
open overlay
|
43
|
+
</Button>
|
44
|
+
{/* be sure to conditionally render the Overlay. This helps with performance and is required. */}
|
45
|
+
{isOpen && (
|
46
|
+
<Overlay
|
47
|
+
initialFocusRef={noButtonRef}
|
48
|
+
returnFocusRef={anchorRef}
|
49
|
+
ignoreClickRefs={[anchorRef]}
|
50
|
+
onEscape={() => setIsOpen(!isOpen)}
|
51
|
+
onClickOutside={() => setIsOpen(false)}
|
52
|
+
aria-labelledby="title"
|
53
|
+
>
|
54
|
+
<Box display="flex" flexDirection="column" p={2}>
|
55
|
+
<Text id="title">Are you sure you would like to delete this item?</Text>
|
56
|
+
<Button>yes</Button>
|
57
|
+
<Button ref={noButtonRef}>no</Button>
|
58
|
+
</Box>
|
59
|
+
</Overlay>
|
60
|
+
)}
|
61
|
+
</>
|
62
|
+
)
|
63
|
+
}
|
64
|
+
|
65
|
+
render(<Demo />)
|
66
|
+
```
|
67
|
+
|
68
|
+
## System props
|
69
|
+
|
70
|
+
<Note variant="warning">
|
71
|
+
|
72
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
73
|
+
|
74
|
+
</Note>
|
75
|
+
|
76
|
+
`Overlay` gets `COMMON` system props. Read the [System Props](/system-props) doc page for a full list of available props.
|
77
|
+
|
78
|
+
## Component props
|
79
|
+
|
80
|
+
| Name | Type | Default | Description |
|
81
|
+
| :------------------ | :------------------------------------------------------------- | :---------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
82
|
+
| ignoreClickRefs | `React.RefObject<HTMLElement> []` | `undefined` | 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. |
|
83
|
+
| initialFocusRef | `React.RefObject<HTMLElement>` | `undefined` | 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. |
|
84
|
+
| anchorRef | `React.RefObject<HTMLElement>` | `undefined` | Required. Element the `Overlay` should be anchored to. |
|
85
|
+
| returnFocusRef | `React.RefObject<HTMLElement>` | `undefined` | Required. Ref for the element to focus when the `Overlay` is closed. |
|
86
|
+
| onClickOutside | `function` | `undefined` | Required. Function to call when clicking outside of the `Overlay`. Typically this function sets the `Overlay` visibility state to `false`. |
|
87
|
+
| onEscape | `function` | `undefined` | Required. Function to call when user presses `Escape`. Typically this function sets the `Overlay` visibility state to `false`. |
|
88
|
+
| width | `'small' │ 'medium' │ 'large' │ 'xlarge' │ 'xxlarge' │ 'auto'` | `auto` | 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`. |
|
89
|
+
| height | `'xsmall', 'small', 'medium', 'large', 'xlarge', 'auto'` | `auto` | 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`. `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`. |
|
90
|
+
| visibility | `'visible', 'hidden'` | `visible` | Sets the visibility of the `Overlay`. |
|
91
|
+
| anchorSide | `AnchorSide` | undefined | Optional. If provided, the Overlay will slide into position from the side of the anchor with a brief animation |
|
92
|
+
| top | `number` | 0 | Vertical position of the overlay, relative to its closest positioned ancestor (often its `Portal`). |
|
93
|
+
| left | `number` | 0 | Horizontal position of the overlay, relative to its closest positioned ancestor (often its `Portal`). |
|
94
|
+
| portalContainerName | `string` | `undefined` | Optional. If defined, Overlays will be rendered in the named portal. See also `Portal`. |
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
title: Pagehead
|
3
|
+
---
|
4
|
+
|
5
|
+
Give a page a clear, separated title and optional top nav by using Pagehead.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<Pagehead>Pagehead</Pagehead>
|
11
|
+
```
|
12
|
+
|
13
|
+
## System props
|
14
|
+
|
15
|
+
<Note variant="warning">
|
16
|
+
|
17
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
18
|
+
|
19
|
+
</Note>
|
20
|
+
|
21
|
+
Pagehead components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
22
|
+
|
23
|
+
## Component props
|
24
|
+
|
25
|
+
| Name | Type | Default | Description |
|
26
|
+
| :--- | :----- | :-----: | :---------------------------------- |
|
27
|
+
| as | String | `div` | Sets the HTML tag for the component |
|