@primer/components 29.1.1 → 30.0.0-rc.9be85598
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/.changeset/README.md +8 -0
- package/.changeset/config.json +10 -0
- package/.devcontainer/devcontainer.json +8 -0
- package/.eslintrc.json +136 -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 +13 -1
- 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 +316 -0
- package/contributor-docs/principles.md +39 -0
- package/dist/browser.esm.js +131 -131
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +114 -114
- package/dist/browser.umd.js.map +1 -1
- 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 +56 -0
- package/docs/content/CircleBadge.md +45 -0
- package/docs/content/CircleOcticon.md +18 -0
- package/docs/content/CounterLabel.md +32 -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 +44 -0
- package/docs/content/Flex.md +58 -0
- package/docs/content/FormGroup.md +46 -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 +42 -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 +78 -0
- package/docs/content/Position.md +100 -0
- package/docs/content/ProgressBar.mdx +29 -0
- package/docs/content/SelectMenu.md +435 -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 +35 -0
- package/docs/content/StyledOcticon.md +36 -0
- package/docs/content/SubNav.md +102 -0
- package/docs/content/TabNav.md +50 -0
- package/docs/content/Text.md +31 -0
- package/docs/content/TextInput.md +34 -0
- package/docs/content/Timeline.md +138 -0
- package/docs/content/Tooltip.md +41 -0
- package/docs/content/Truncate.md +64 -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 +138 -0
- package/docs/content/index.md +33 -0
- package/docs/content/linting.md +35 -0
- package/docs/content/overriding-styles.mdx +81 -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 +36 -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/ActionList/Item.js +1 -1
- package/lib/Breadcrumbs.d.ts +40 -0
- package/lib/{Breadcrumb.js → Breadcrumbs.js} +31 -21
- package/lib/__tests__/ActionList.d.ts +1 -0
- package/lib/__tests__/ActionList.js +64 -0
- package/lib/__tests__/ActionMenu.d.ts +1 -0
- package/lib/__tests__/ActionMenu.js +151 -0
- package/lib/__tests__/AnchoredOverlay.d.ts +1 -0
- package/lib/__tests__/AnchoredOverlay.js +160 -0
- package/lib/__tests__/Avatar.d.ts +1 -0
- package/lib/__tests__/Avatar.js +67 -0
- package/lib/__tests__/AvatarStack.d.ts +1 -0
- package/lib/__tests__/AvatarStack.js +68 -0
- package/lib/__tests__/BorderBox.d.ts +1 -0
- package/lib/__tests__/BorderBox.js +58 -0
- package/lib/__tests__/Box.d.ts +1 -0
- package/lib/__tests__/Box.js +78 -0
- package/lib/__tests__/BranchName.d.ts +1 -0
- package/lib/__tests__/BranchName.js +36 -0
- package/lib/__tests__/Breadcrumbs.d.ts +1 -0
- package/lib/__tests__/Breadcrumbs.js +37 -0
- package/lib/__tests__/BreadcrumbsItem.d.ts +1 -0
- package/lib/__tests__/BreadcrumbsItem.js +49 -0
- package/lib/__tests__/Button.d.ts +1 -0
- package/lib/__tests__/Button.js +143 -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 +83 -0
- package/lib/__tests__/CircleOcticon.d.ts +1 -0
- package/lib/__tests__/CircleOcticon.js +71 -0
- package/lib/__tests__/CounterLabel.d.ts +1 -0
- package/lib/__tests__/CounterLabel.js +58 -0
- package/lib/__tests__/Details.d.ts +1 -0
- package/lib/__tests__/Details.js +117 -0
- package/lib/__tests__/Dialog.d.ts +1 -0
- package/lib/__tests__/Dialog.js +184 -0
- package/lib/__tests__/Dropdown.d.ts +1 -0
- package/lib/__tests__/Dropdown.js +63 -0
- package/lib/__tests__/DropdownMenu.d.ts +1 -0
- package/lib/__tests__/DropdownMenu.js +150 -0
- package/lib/__tests__/FilterList.d.ts +1 -0
- package/lib/__tests__/FilterList.js +36 -0
- package/lib/__tests__/FilterListItem.d.ts +1 -0
- package/lib/__tests__/FilterListItem.js +46 -0
- package/lib/__tests__/FilteredSearch.d.ts +1 -0
- package/lib/__tests__/FilteredSearch.js +36 -0
- package/lib/__tests__/Flash.d.ts +1 -0
- package/lib/__tests__/Flash.js +62 -0
- package/lib/__tests__/Flex.d.ts +1 -0
- package/lib/__tests__/Flex.js +74 -0
- package/lib/__tests__/FormGroup.d.ts +1 -0
- package/lib/__tests__/FormGroup.js +54 -0
- package/lib/__tests__/Grid.d.ts +1 -0
- package/lib/__tests__/Grid.js +104 -0
- package/lib/__tests__/Header.d.ts +1 -0
- package/lib/__tests__/Header.js +58 -0
- package/lib/__tests__/Heading.d.ts +1 -0
- package/lib/__tests__/Heading.js +109 -0
- package/lib/__tests__/Label.d.ts +1 -0
- package/lib/__tests__/Label.js +46 -0
- package/lib/__tests__/LabelGroup.d.ts +1 -0
- package/lib/__tests__/LabelGroup.js +38 -0
- package/lib/__tests__/Link.d.ts +1 -0
- package/lib/__tests__/Link.js +70 -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 +37 -0
- package/lib/__tests__/Pagination/Pagination.d.ts +1 -0
- package/lib/__tests__/Pagination/Pagination.js +47 -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 +46 -0
- package/lib/__tests__/Popover.d.ts +1 -0
- package/lib/__tests__/Popover.js +66 -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 +143 -0
- package/lib/__tests__/ProgressBar.d.ts +1 -0
- package/lib/__tests__/ProgressBar.js +68 -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 +80 -0
- package/lib/__tests__/SideNav.d.ts +1 -0
- package/lib/__tests__/SideNav.js +71 -0
- package/lib/__tests__/Spinner.d.ts +1 -0
- package/lib/__tests__/Spinner.js +53 -0
- package/lib/__tests__/StateLabel.d.ts +1 -0
- package/lib/__tests__/StateLabel.js +71 -0
- package/lib/__tests__/StyledOcticon.d.ts +1 -0
- package/lib/__tests__/StyledOcticon.js +40 -0
- package/lib/__tests__/SubNav.d.ts +1 -0
- package/lib/__tests__/SubNav.js +62 -0
- package/lib/__tests__/SubNavLink.d.ts +1 -0
- package/lib/__tests__/SubNavLink.js +49 -0
- package/lib/__tests__/TabNav.d.ts +1 -0
- package/lib/__tests__/TabNav.js +49 -0
- package/lib/__tests__/Text.d.ts +1 -0
- package/lib/__tests__/Text.js +105 -0
- package/lib/__tests__/TextInput.d.ts +1 -0
- package/lib/__tests__/TextInput.js +78 -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 +75 -0
- package/lib/__tests__/Tooltip.d.ts +1 -0
- package/lib/__tests__/Tooltip.js +69 -0
- package/lib/__tests__/Truncate.d.ts +1 -0
- package/lib/__tests__/Truncate.js +63 -0
- package/lib/__tests__/UnderlineNav.d.ts +1 -0
- package/lib/__tests__/UnderlineNav.js +72 -0
- package/lib/__tests__/UnderlineNavLink.d.ts +1 -0
- package/lib/__tests__/UnderlineNavLink.js +51 -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/index.d.ts +2 -2
- package/lib/index.js +8 -2
- 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/utils/testing.d.ts +0 -1
- package/lib-esm/ActionList/Item.js +1 -1
- package/lib-esm/Breadcrumbs.d.ts +40 -0
- package/lib-esm/{Breadcrumb.js → Breadcrumbs.js} +28 -19
- package/lib-esm/__tests__/ActionList.d.ts +1 -0
- package/lib-esm/__tests__/ActionList.js +52 -0
- package/lib-esm/__tests__/ActionMenu.d.ts +1 -0
- package/lib-esm/__tests__/ActionMenu.js +139 -0
- package/lib-esm/__tests__/AnchoredOverlay.d.ts +1 -0
- package/lib-esm/__tests__/AnchoredOverlay.js +134 -0
- package/lib-esm/__tests__/Avatar.d.ts +1 -0
- package/lib-esm/__tests__/Avatar.js +56 -0
- package/lib-esm/__tests__/AvatarStack.d.ts +1 -0
- package/lib-esm/__tests__/AvatarStack.js +55 -0
- package/lib-esm/__tests__/BorderBox.d.ts +1 -0
- package/lib-esm/__tests__/BorderBox.js +47 -0
- package/lib-esm/__tests__/Box.d.ts +1 -0
- package/lib-esm/__tests__/Box.js +67 -0
- package/lib-esm/__tests__/BranchName.d.ts +1 -0
- package/lib-esm/__tests__/BranchName.js +26 -0
- package/lib-esm/__tests__/Breadcrumbs.d.ts +1 -0
- package/lib-esm/__tests__/Breadcrumbs.js +27 -0
- package/lib-esm/__tests__/BreadcrumbsItem.d.ts +1 -0
- package/lib-esm/__tests__/BreadcrumbsItem.js +39 -0
- package/lib-esm/__tests__/Button.d.ts +1 -0
- package/lib-esm/__tests__/Button.js +133 -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 +70 -0
- package/lib-esm/__tests__/CircleOcticon.d.ts +1 -0
- package/lib-esm/__tests__/CircleOcticon.js +59 -0
- package/lib-esm/__tests__/CounterLabel.d.ts +1 -0
- package/lib-esm/__tests__/CounterLabel.js +47 -0
- package/lib-esm/__tests__/Details.d.ts +1 -0
- package/lib-esm/__tests__/Details.js +107 -0
- package/lib-esm/__tests__/Dialog.d.ts +1 -0
- package/lib-esm/__tests__/Dialog.js +171 -0
- package/lib-esm/__tests__/Dropdown.d.ts +1 -0
- package/lib-esm/__tests__/Dropdown.js +53 -0
- package/lib-esm/__tests__/DropdownMenu.d.ts +1 -0
- package/lib-esm/__tests__/DropdownMenu.js +137 -0
- package/lib-esm/__tests__/FilterList.d.ts +1 -0
- package/lib-esm/__tests__/FilterList.js +26 -0
- package/lib-esm/__tests__/FilterListItem.d.ts +1 -0
- package/lib-esm/__tests__/FilterListItem.js +36 -0
- package/lib-esm/__tests__/FilteredSearch.d.ts +1 -0
- package/lib-esm/__tests__/FilteredSearch.js +26 -0
- package/lib-esm/__tests__/Flash.d.ts +1 -0
- package/lib-esm/__tests__/Flash.js +51 -0
- package/lib-esm/__tests__/Flex.d.ts +1 -0
- package/lib-esm/__tests__/Flex.js +64 -0
- package/lib-esm/__tests__/FormGroup.d.ts +1 -0
- package/lib-esm/__tests__/FormGroup.js +44 -0
- package/lib-esm/__tests__/Grid.d.ts +1 -0
- package/lib-esm/__tests__/Grid.js +94 -0
- package/lib-esm/__tests__/Header.d.ts +1 -0
- package/lib-esm/__tests__/Header.js +48 -0
- package/lib-esm/__tests__/Heading.d.ts +1 -0
- package/lib-esm/__tests__/Heading.js +99 -0
- package/lib-esm/__tests__/Label.d.ts +1 -0
- package/lib-esm/__tests__/Label.js +36 -0
- package/lib-esm/__tests__/LabelGroup.d.ts +1 -0
- package/lib-esm/__tests__/LabelGroup.js +26 -0
- package/lib-esm/__tests__/Link.d.ts +1 -0
- package/lib-esm/__tests__/Link.js +60 -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 +26 -0
- package/lib-esm/__tests__/Pagination/Pagination.d.ts +1 -0
- package/lib-esm/__tests__/Pagination/Pagination.js +35 -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 +36 -0
- package/lib-esm/__tests__/Popover.d.ts +1 -0
- package/lib-esm/__tests__/Popover.js +53 -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 +133 -0
- package/lib-esm/__tests__/ProgressBar.d.ts +1 -0
- package/lib-esm/__tests__/ProgressBar.js +58 -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 +65 -0
- package/lib-esm/__tests__/SideNav.d.ts +1 -0
- package/lib-esm/__tests__/SideNav.js +60 -0
- package/lib-esm/__tests__/Spinner.d.ts +1 -0
- package/lib-esm/__tests__/Spinner.js +43 -0
- package/lib-esm/__tests__/StateLabel.d.ts +1 -0
- package/lib-esm/__tests__/StateLabel.js +61 -0
- package/lib-esm/__tests__/StyledOcticon.d.ts +1 -0
- package/lib-esm/__tests__/StyledOcticon.js +29 -0
- package/lib-esm/__tests__/SubNav.d.ts +1 -0
- package/lib-esm/__tests__/SubNav.js +50 -0
- package/lib-esm/__tests__/SubNavLink.d.ts +1 -0
- package/lib-esm/__tests__/SubNavLink.js +39 -0
- package/lib-esm/__tests__/TabNav.d.ts +1 -0
- package/lib-esm/__tests__/TabNav.js +39 -0
- package/lib-esm/__tests__/Text.d.ts +1 -0
- package/lib-esm/__tests__/Text.js +93 -0
- package/lib-esm/__tests__/TextInput.d.ts +1 -0
- package/lib-esm/__tests__/TextInput.js +68 -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 +65 -0
- package/lib-esm/__tests__/Tooltip.d.ts +1 -0
- package/lib-esm/__tests__/Tooltip.js +59 -0
- package/lib-esm/__tests__/Truncate.d.ts +1 -0
- package/lib-esm/__tests__/Truncate.js +53 -0
- package/lib-esm/__tests__/UnderlineNav.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNav.js +60 -0
- package/lib-esm/__tests__/UnderlineNavLink.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNavLink.js +41 -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/index.d.ts +2 -2
- package/lib-esm/index.js +1 -1
- 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/lib-esm/utils/testing.d.ts +0 -1
- package/migrating.md +250 -0
- package/now.json +17 -0
- package/package-lock.json +29072 -0
- package/package.json +10 -9
- package/rollup.config.js +36 -0
- package/script/build +19 -0
- package/script/build-storybook +10 -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/Breadcrumbs.tsx +101 -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 +172 -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 +47 -0
- package/src/__tests__/ActionMenu.tsx +136 -0
- package/src/__tests__/AnchoredOverlay.tsx +150 -0
- package/src/__tests__/Avatar.tsx +44 -0
- package/src/__tests__/AvatarStack.tsx +44 -0
- package/src/__tests__/BorderBox.tsx +43 -0
- package/src/__tests__/Box.tsx +42 -0
- package/src/__tests__/BranchName.tsx +26 -0
- package/src/__tests__/Breadcrumbs.tsx +27 -0
- package/src/__tests__/BreadcrumbsItem.tsx +31 -0
- package/src/__tests__/Button.tsx +128 -0
- package/src/__tests__/Caret.tsx +36 -0
- package/src/__tests__/CircleBadge.tsx +66 -0
- package/src/__tests__/CircleOcticon.tsx +50 -0
- package/src/__tests__/CounterLabel.tsx +50 -0
- package/src/__tests__/Details.tsx +115 -0
- package/src/__tests__/Dialog.tsx +155 -0
- package/src/__tests__/Dropdown.tsx +53 -0
- package/src/__tests__/DropdownMenu.tsx +136 -0
- package/src/__tests__/FilterList.tsx +26 -0
- package/src/__tests__/FilterListItem.tsx +31 -0
- package/src/__tests__/FilteredSearch.tsx +26 -0
- package/src/__tests__/Flash.tsx +45 -0
- package/src/__tests__/Flex.tsx +58 -0
- package/src/__tests__/FormGroup.tsx +38 -0
- package/src/__tests__/Grid.tsx +82 -0
- package/src/__tests__/Header.tsx +49 -0
- package/src/__tests__/Heading.tsx +91 -0
- package/src/__tests__/Label.tsx +34 -0
- package/src/__tests__/LabelGroup.tsx +30 -0
- package/src/__tests__/Link.tsx +47 -0
- package/src/__tests__/Overlay.tsx +103 -0
- package/src/__tests__/Pagehead.tsx +23 -0
- package/src/__tests__/Pagination/Pagination.tsx +30 -0
- package/src/__tests__/Pagination/PaginationModel.tsx +133 -0
- package/src/__tests__/Pagination/__snapshots__/Pagination.tsx.snap +184 -0
- package/src/__tests__/PointerBox.tsx +34 -0
- package/src/__tests__/Popover.tsx +68 -0
- package/src/__tests__/Portal.tsx +103 -0
- package/src/__tests__/Position.tsx +117 -0
- package/src/__tests__/ProgressBar.tsx +40 -0
- package/src/__tests__/SelectMenu.tsx +142 -0
- package/src/__tests__/SelectPanel.tsx +63 -0
- package/src/__tests__/SideNav.tsx +62 -0
- package/src/__tests__/Spinner.tsx +42 -0
- package/src/__tests__/StateLabel.tsx +48 -0
- package/src/__tests__/StyledOcticon.tsx +26 -0
- package/src/__tests__/SubNav.tsx +50 -0
- package/src/__tests__/SubNavLink.tsx +31 -0
- package/src/__tests__/TabNav.tsx +32 -0
- package/src/__tests__/Text.tsx +78 -0
- package/src/__tests__/TextInput.tsx +49 -0
- package/src/__tests__/ThemeProvider.tsx +441 -0
- package/src/__tests__/Timeline.tsx +58 -0
- package/src/__tests__/Tooltip.tsx +52 -0
- package/src/__tests__/Truncate.tsx +43 -0
- package/src/__tests__/UnderlineNav.tsx +58 -0
- package/src/__tests__/UnderlineNavLink.tsx +31 -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__/Breadcrumbs.tsx.snap +29 -0
- package/src/__tests__/__snapshots__/BreadcrumbsItem.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 +242 -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
- package/lib/Breadcrumb.d.ts +0 -23
- package/lib-esm/Breadcrumb.d.ts +0 -23
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
title: Spinner
|
3
|
+
status: Alpha
|
4
|
+
description: Use spinners to let users know that content is being loaded.
|
5
|
+
componentId: spinner
|
6
|
+
source: https://github.com/primer/components/blob/main/src/Spinner.tsx
|
7
|
+
---
|
8
|
+
|
9
|
+
import {Props} from '../src/props'
|
10
|
+
import {Spinner} from '@primer/components'
|
11
|
+
|
12
|
+
```jsx live
|
13
|
+
<Spinner />
|
14
|
+
```
|
15
|
+
|
16
|
+
## Props
|
17
|
+
|
18
|
+
<Props of={Spinner} />
|
19
|
+
|
20
|
+
## Examples
|
21
|
+
|
22
|
+
### Small
|
23
|
+
|
24
|
+
```jsx live
|
25
|
+
<Spinner size="small" />
|
26
|
+
```
|
27
|
+
|
28
|
+
### Large
|
29
|
+
|
30
|
+
```jsx live
|
31
|
+
<Spinner size="large" />
|
32
|
+
```
|
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
title: StateLabel
|
3
|
+
---
|
4
|
+
|
5
|
+
Use StateLabel components to show the status of an issue or pull request.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<>
|
11
|
+
<StateLabel status="issueOpened">Open</StateLabel>
|
12
|
+
<StateLabel status="issueClosed">Closed</StateLabel>
|
13
|
+
<StateLabel status="pullOpened">Open</StateLabel>
|
14
|
+
<StateLabel status="pullClosed">Closed</StateLabel>
|
15
|
+
<StateLabel status="pullMerged">Merged</StateLabel>
|
16
|
+
<StateLabel status="draft">Draft</StateLabel>
|
17
|
+
</>
|
18
|
+
```
|
19
|
+
|
20
|
+
## System props
|
21
|
+
|
22
|
+
<Note variant="warning">
|
23
|
+
|
24
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
25
|
+
|
26
|
+
</Note>
|
27
|
+
|
28
|
+
StateLabel components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
29
|
+
|
30
|
+
## Component props
|
31
|
+
|
32
|
+
| Name | Type | Default | Description |
|
33
|
+
| :------ | :----- | :------: | :------------------------------------------------------------------------------------------------ |
|
34
|
+
| variant | String | 'normal' | a value of `small` or `normal` results in a smaller or larger version of the StateLabel. |
|
35
|
+
| status | String | | Can be one of `issueOpened`, `issueClosed`, `pullOpened`, `pullClosed`, `pullMerged`, or `draft`. |
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
title: StyledOcticon
|
3
|
+
tags: icon
|
4
|
+
---
|
5
|
+
|
6
|
+
StyledOcticon renders an [Octicon](https://octicons.github.com) with common system props, including `color`, margin, and padding.
|
7
|
+
|
8
|
+
## Default example
|
9
|
+
|
10
|
+
```jsx live
|
11
|
+
<>
|
12
|
+
<StyledOcticon icon={CheckIcon} size={32} color="success.fg" mr={2} />
|
13
|
+
<StyledOcticon icon={XIcon} size={32} color="danger.fg" />
|
14
|
+
</>
|
15
|
+
```
|
16
|
+
|
17
|
+
## System props
|
18
|
+
|
19
|
+
<Note variant="warning">
|
20
|
+
|
21
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
22
|
+
|
23
|
+
</Note>
|
24
|
+
|
25
|
+
StyledOcticon components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
26
|
+
|
27
|
+
## Component props
|
28
|
+
|
29
|
+
StyledOcticon passes all of its props except the common system props down to the [Octicon component](https://github.com/primer/octicons/tree/master/lib/octicons_react#usage), including:
|
30
|
+
|
31
|
+
| Name | Type | Default | Description |
|
32
|
+
| :------------ | :-------- | :-----------: | :----------------------------------------------------------------------------------------------------------- |
|
33
|
+
| ariaLabel | String | | Specifies the `aria-label` attribute, which is read verbatim by screen readers |
|
34
|
+
| icon | Component | | [Octicon component](https://github.com/primer/octicons/tree/master/lib/octicons_react) used in the component |
|
35
|
+
| size | Number | 16 | Sets the uniform `width` and `height` of the SVG element |
|
36
|
+
| verticalAlign | String | `text-bottom` | Sets the `vertical-align` CSS property |
|
@@ -0,0 +1,102 @@
|
|
1
|
+
---
|
2
|
+
title: SubNav
|
3
|
+
---
|
4
|
+
|
5
|
+
Use the SubNav component for navigation on a dashboard-type interface with another set of navigation components above it. This helps distinguish navigation hierarchy.
|
6
|
+
|
7
|
+
To use SubNav with [react-router](https://github.com/ReactTraining/react-router) or
|
8
|
+
[react-router-dom](https://www.npmjs.com/package/react-router-dom), pass
|
9
|
+
`as={NavLink}` and omit the `selected` prop.
|
10
|
+
This ensures that the NavLink gets `activeClassName='selected'`
|
11
|
+
|
12
|
+
**Attention:** Make sure to properly label your `SubNav` with an `aria-label` to provide context about the type of navigation contained in `SubNav`.
|
13
|
+
|
14
|
+
## Default example
|
15
|
+
|
16
|
+
```jsx live
|
17
|
+
<SubNav aria-label="Main">
|
18
|
+
<SubNav.Links>
|
19
|
+
<SubNav.Link href="#home" selected>
|
20
|
+
Home
|
21
|
+
</SubNav.Link>
|
22
|
+
<SubNav.Link href="#documentation">Documentation</SubNav.Link>
|
23
|
+
<SubNav.Link href="#support">Support</SubNav.Link>
|
24
|
+
</SubNav.Links>
|
25
|
+
</SubNav>
|
26
|
+
```
|
27
|
+
|
28
|
+
## SubNav with search example
|
29
|
+
|
30
|
+
```jsx live
|
31
|
+
<SubNav aria-label="Main">
|
32
|
+
<SubNav.Links>
|
33
|
+
<SubNav.Link href="#home" selected>
|
34
|
+
Home
|
35
|
+
</SubNav.Link>
|
36
|
+
<SubNav.Link href="#documentation">Documentation</SubNav.Link>
|
37
|
+
<SubNav.Link href="#support">Support</SubNav.Link>
|
38
|
+
</SubNav.Links>
|
39
|
+
|
40
|
+
<TextInput type="search" icon={SearchIcon} sx={{width: 320}} />
|
41
|
+
</SubNav>
|
42
|
+
```
|
43
|
+
|
44
|
+
## SubNav with filtered search example
|
45
|
+
|
46
|
+
```jsx live
|
47
|
+
<SubNav aria-label="Main">
|
48
|
+
<FilteredSearch>
|
49
|
+
<Dropdown>
|
50
|
+
<Dropdown.Button>Filter</Dropdown.Button>
|
51
|
+
<Dropdown.Menu direction="sw">
|
52
|
+
<Dropdown.Item>
|
53
|
+
<a href="#">Item 1</a>
|
54
|
+
</Dropdown.Item>
|
55
|
+
<Dropdown.Item>
|
56
|
+
<a href="#">Item 2</a>
|
57
|
+
</Dropdown.Item>
|
58
|
+
<Dropdown.Item>
|
59
|
+
<a href="#">Item 3</a>
|
60
|
+
</Dropdown.Item>
|
61
|
+
</Dropdown.Menu>
|
62
|
+
</Dropdown>
|
63
|
+
<TextInput type="search" icon={SearchIcon} width={320} />
|
64
|
+
</FilteredSearch>
|
65
|
+
<SubNav.Links>
|
66
|
+
<SubNav.Link href="#home" selected>
|
67
|
+
Home
|
68
|
+
</SubNav.Link>
|
69
|
+
<SubNav.Link href="#documentation">Documentation</SubNav.Link>
|
70
|
+
<SubNav.Link href="#support">Support</SubNav.Link>
|
71
|
+
</SubNav.Links>
|
72
|
+
</SubNav>
|
73
|
+
```
|
74
|
+
|
75
|
+
## System props
|
76
|
+
|
77
|
+
<Note variant="warning">
|
78
|
+
|
79
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
80
|
+
|
81
|
+
</Note>
|
82
|
+
|
83
|
+
SubNav and SubNav.Link components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
84
|
+
|
85
|
+
## Component props
|
86
|
+
|
87
|
+
### SubNav
|
88
|
+
|
89
|
+
| Prop name | Type | Description |
|
90
|
+
| :--------- | :------ | :------------------------------------------------------------------------------------- |
|
91
|
+
| actions | Node | Place another element, such as a button, to the opposite side of the navigation items. |
|
92
|
+
| align | String | Use `right` to have navigation items aligned right. |
|
93
|
+
| full | Boolean | Used to make navigation fill the width of the container. |
|
94
|
+
| aria-label | String | Used to set the `aria-label` on the top level `<nav>` element. |
|
95
|
+
|
96
|
+
### SubNav.Link
|
97
|
+
|
98
|
+
| Prop name | Type | Description |
|
99
|
+
| :-------- | :------ | :----------------------------------------------- |
|
100
|
+
| as | String | sets the HTML tag for the component |
|
101
|
+
| href | String | URL to be used for the Link |
|
102
|
+
| selected | Boolean | Used to style the link as selected or unselected |
|
@@ -0,0 +1,50 @@
|
|
1
|
+
---
|
2
|
+
title: TabNav
|
3
|
+
---
|
4
|
+
|
5
|
+
Use the TabNav component to style navigation with a tab-based selected state, typically used for navigation placed at the top of the page.
|
6
|
+
|
7
|
+
To use TabNav with [react-router](https://github.com/ReactTraining/react-router) or
|
8
|
+
[react-router-dom](https://www.npmjs.com/package/react-router-dom), pass
|
9
|
+
`as={NavLink}` and omit the `selected` prop.
|
10
|
+
This ensures that the NavLink gets `activeClassName='selected'`
|
11
|
+
|
12
|
+
**Attention:** Make sure to properly label your `TabNav` with an `aria-label` to provide context about the type of navigation contained in `TabNav`.
|
13
|
+
|
14
|
+
## Default example
|
15
|
+
|
16
|
+
```jsx live
|
17
|
+
<TabNav aria-label="Main">
|
18
|
+
<TabNav.Link href="#home" selected>
|
19
|
+
Home
|
20
|
+
</TabNav.Link>
|
21
|
+
<TabNav.Link href="#documentation">Documentation</TabNav.Link>
|
22
|
+
<TabNav.Link href="#support">Support</TabNav.Link>
|
23
|
+
</TabNav>
|
24
|
+
```
|
25
|
+
|
26
|
+
## System props
|
27
|
+
|
28
|
+
<Note variant="warning">
|
29
|
+
|
30
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
31
|
+
|
32
|
+
</Note>
|
33
|
+
|
34
|
+
TabNav and TabNav.Link components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
35
|
+
|
36
|
+
## Component props
|
37
|
+
|
38
|
+
### TabNav
|
39
|
+
|
40
|
+
| Prop name | Type | Description |
|
41
|
+
| :--------- | :----- | :------------------------------------------------------------- |
|
42
|
+
| aria-label | String | Used to set the `aria-label` on the top level `<nav>` element. |
|
43
|
+
|
44
|
+
### TabNav.Link
|
45
|
+
|
46
|
+
| Prop name | Type | Description |
|
47
|
+
| :-------- | :------ | :----------------------------------------------- |
|
48
|
+
| as | String | sets the HTML tag for the component |
|
49
|
+
| href | String | URL to be used for the Link |
|
50
|
+
| selected | Boolean | Used to style the link as selected or unselected |
|
@@ -0,0 +1,31 @@
|
|
1
|
+
---
|
2
|
+
title: Text
|
3
|
+
---
|
4
|
+
|
5
|
+
The Text component is a wrapper component that will apply typography styles to the text inside.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<>
|
11
|
+
<Text as='p' fontWeight="bold">bold</Text>
|
12
|
+
<Text as='p' color="danger.fg">danger color</Text>
|
13
|
+
<Text as='p' color="fg.onEmphasis" bg="neutral.emphasis" p={2}>inverse colors</Text>
|
14
|
+
</>
|
15
|
+
```
|
16
|
+
|
17
|
+
## System props
|
18
|
+
|
19
|
+
<Note variant="warning">
|
20
|
+
|
21
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
22
|
+
|
23
|
+
</Note>
|
24
|
+
|
25
|
+
Text components get `TYPOGRAPHY` and `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
26
|
+
|
27
|
+
## Component props
|
28
|
+
|
29
|
+
| Name | Type | Default | Description |
|
30
|
+
| :--- | :----- | :-----: | :---------------------------------- |
|
31
|
+
| as | String | `span` | Sets the HTML tag for the component |
|
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
title: TextInput
|
3
|
+
---
|
4
|
+
|
5
|
+
TextInput is a form component to add default styling to the native text input.
|
6
|
+
|
7
|
+
**Note:** Don't forget to set `aria-label` to make the TextInput accessible to screen reader users.
|
8
|
+
|
9
|
+
## Default example
|
10
|
+
|
11
|
+
```jsx live
|
12
|
+
<>
|
13
|
+
<TextInput aria-label="Zipcode" name="zipcode" placeholder="Zipcode" autoComplete="postal-code" />
|
14
|
+
|
15
|
+
<TextInput sx={{ml: 4}} aria-label="City" name="city" placeholder="City" contrast />
|
16
|
+
|
17
|
+
<TextInput sx={{ml: 4}} icon={SearchIcon} aria-label="Zipcode" name="zipcode" placeholder="Find user" autoComplete="postal-code" />
|
18
|
+
</>
|
19
|
+
```
|
20
|
+
|
21
|
+
## Component props
|
22
|
+
|
23
|
+
Native `<input>` attributes are forwarded to the underlying React `input` component and are not listed below.
|
24
|
+
|
25
|
+
| Name | Type | Default | Description |
|
26
|
+
| :--------- | :------------------------------------------------------------------------ | :-----: | :------------------------------------------------------------------------------------ |
|
27
|
+
| aria-label | String | | Required. Allows input to be accessible. |
|
28
|
+
| block | Boolean | | Adds `display: block` to element |
|
29
|
+
| contrast | Boolean | | Changes background color to a higher contrast color |
|
30
|
+
| variant | String | | Can be either `small` or `large`. Creates a smaller or larger input than the default. |
|
31
|
+
| width | String or Number | | Set the width of the input |
|
32
|
+
| maxWidth | String or Number or [Array](https://styled-system.com/guides/array-props) | | Set the maximum width of the input |
|
33
|
+
| minWidth | String or Number or [Array](https://styled-system.com/guides/array-props) | | Set the minimum width of the input |
|
34
|
+
| icon | Node (pass Octicon react component) | | Icon to be used inside of input. Positioned on the left edge. |
|
@@ -0,0 +1,138 @@
|
|
1
|
+
---
|
2
|
+
title: Timeline
|
3
|
+
---
|
4
|
+
|
5
|
+
The Timeline.Item component is used to display items on a vertical timeline, connected by Timeline.Badge elements.
|
6
|
+
|
7
|
+
## Example with in-line links
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<Timeline>
|
11
|
+
<Timeline.Item>
|
12
|
+
<Timeline.Badge>
|
13
|
+
<StyledOcticon icon={FlameIcon} />
|
14
|
+
</Timeline.Badge>
|
15
|
+
<Timeline.Body>
|
16
|
+
<Link href="#" sx={{fontWeight: 'bold', color: "fg.default", mr: 1}} muted>
|
17
|
+
Monalisa
|
18
|
+
</Link>
|
19
|
+
created one <Link href="#" sx={{fontWeight: 'bold', color: "fg.default", mr: 1}} muted>
|
20
|
+
hot potato
|
21
|
+
</Link>
|
22
|
+
<Link href="#" color="fg.muted" muted>
|
23
|
+
Just now
|
24
|
+
</Link>
|
25
|
+
</Timeline.Body>
|
26
|
+
</Timeline.Item>
|
27
|
+
</Timeline>
|
28
|
+
```
|
29
|
+
|
30
|
+
## Default Color example
|
31
|
+
|
32
|
+
The default Timeline.Badge color is dark text on a light grey background.
|
33
|
+
|
34
|
+
```jsx live
|
35
|
+
<Timeline>
|
36
|
+
<Timeline.Item>
|
37
|
+
<Timeline.Badge>
|
38
|
+
<StyledOcticon icon={FlameIcon} />
|
39
|
+
</Timeline.Badge>
|
40
|
+
<Timeline.Body>Default badge color</Timeline.Body>
|
41
|
+
</Timeline.Item>
|
42
|
+
</Timeline>
|
43
|
+
```
|
44
|
+
|
45
|
+
## Adding color to a Badge
|
46
|
+
|
47
|
+
To have color variants, use the `bg` prop on the `Timeline.Badge`. If an icon is being used, set the `color` prop
|
48
|
+
of the child `StyledOcticon` if necessary.
|
49
|
+
|
50
|
+
```jsx live
|
51
|
+
<Timeline>
|
52
|
+
<Timeline.Item>
|
53
|
+
<Timeline.Badge sx={{bg: "danger.emphasis"}}>
|
54
|
+
<StyledOcticon icon={FlameIcon} sx={{color: "fg.onEmphasis"}} />
|
55
|
+
</Timeline.Badge>
|
56
|
+
<Timeline.Body>Background used when closed events occur</Timeline.Body>
|
57
|
+
</Timeline.Item>
|
58
|
+
<Timeline.Item>
|
59
|
+
<Timeline.Badge sx={{bg: "danger.emphasis"}}>
|
60
|
+
<StyledOcticon icon={FlameIcon} color="fg.onEmphasis" />
|
61
|
+
</Timeline.Badge>
|
62
|
+
<Timeline.Body>Background when opened or passed events occur</Timeline.Body>
|
63
|
+
</Timeline.Item>
|
64
|
+
<Timeline.Item>
|
65
|
+
<Timeline.Badge sx={{bg: "danger.emphasis"}}>
|
66
|
+
<StyledOcticon icon={FlameIcon} sx={{color: "fg.onEmphasis"}} />
|
67
|
+
</Timeline.Badge>
|
68
|
+
<Timeline.Body>Background used when pull requests are merged</Timeline.Body>
|
69
|
+
</Timeline.Item>
|
70
|
+
</Timeline>
|
71
|
+
```
|
72
|
+
|
73
|
+
## Condensed items
|
74
|
+
|
75
|
+
Timeline has a condensed prop that will reduce the vertical padding and remove the background from the badge item. These are most commonly used in commits. To condense a single item, remove the top or bottom padding with the `pt={0}` or `pb={0}` prop.
|
76
|
+
|
77
|
+
```jsx live
|
78
|
+
<Timeline>
|
79
|
+
<Timeline.Item condensed>
|
80
|
+
<Timeline.Badge>
|
81
|
+
<StyledOcticon icon={GitCommitIcon} />
|
82
|
+
</Timeline.Badge>
|
83
|
+
<Timeline.Body>This is the message of a condensed TimelineItem</Timeline.Body>
|
84
|
+
</Timeline.Item>
|
85
|
+
<Timeline.Item condensed>
|
86
|
+
<Timeline.Badge>
|
87
|
+
<StyledOcticon icon={GitCommitIcon} />
|
88
|
+
</Timeline.Badge>
|
89
|
+
<Timeline.Body>This is the message of a condensed TimelineItem</Timeline.Body>
|
90
|
+
</Timeline.Item>
|
91
|
+
</Timeline>
|
92
|
+
```
|
93
|
+
|
94
|
+
## Timeline Break
|
95
|
+
|
96
|
+
To create a visual break in the timeline, use Timeline.Break. This adds a horizontal bar across the timeline to show that something has disrupted it. Usually this happens when a close or merged event occurs.
|
97
|
+
|
98
|
+
```jsx live
|
99
|
+
<Timeline>
|
100
|
+
<Timeline.Item>
|
101
|
+
<Timeline.Badge sx={{bg: "danger.emphasis"}}>
|
102
|
+
<StyledOcticon icon={FlameIcon} color="fg.onEmphasis" />
|
103
|
+
</Timeline.Badge>
|
104
|
+
<Timeline.Body>Background used when closed events occur</Timeline.Body>
|
105
|
+
</Timeline.Item>
|
106
|
+
<Timeline.Break />
|
107
|
+
<Timeline.Item>
|
108
|
+
<Timeline.Badge sx={{bg: "success.emphasis"}}>
|
109
|
+
<StyledOcticon icon={FlameIcon} sx={{color: "fg.onEmphasis"}} />
|
110
|
+
</Timeline.Badge>
|
111
|
+
<Timeline.Body>Background when opened or passed events occur</Timeline.Body>
|
112
|
+
</Timeline.Item>
|
113
|
+
</Timeline>
|
114
|
+
```
|
115
|
+
|
116
|
+
## System props
|
117
|
+
|
118
|
+
<Note variant="warning">
|
119
|
+
|
120
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
121
|
+
|
122
|
+
</Note>
|
123
|
+
|
124
|
+
Timeline and Timeline.Item components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
125
|
+
|
126
|
+
## Component props
|
127
|
+
|
128
|
+
### Timeline
|
129
|
+
|
130
|
+
| Prop name | Type | Description |
|
131
|
+
| :---------- | :------ | :-------------------------------------------------------------------------------- |
|
132
|
+
| clipSidebar | Boolean | Hides the sidebar above the first Timeline.Item and below the last Timeline.Item. |
|
133
|
+
|
134
|
+
### Timeline.Item
|
135
|
+
|
136
|
+
| Prop name | Type | Description |
|
137
|
+
| :-------- | :------ | :-------------------------------------------------------------------- |
|
138
|
+
| condensed | Boolean | Reduces vertical padding and removes background from an item's badge. |
|
@@ -0,0 +1,41 @@
|
|
1
|
+
---
|
2
|
+
title: Tooltip
|
3
|
+
---
|
4
|
+
|
5
|
+
The Tooltip component adds a tooltip to add context to elements on the page.
|
6
|
+
|
7
|
+
**_⚠️ Usage warning! ⚠️_**
|
8
|
+
|
9
|
+
Tooltips as a UI pattern should be our last resort for conveying information because it is hidden by default and often with zero or little visual indicator of its existence.
|
10
|
+
|
11
|
+
Before adding a tooltip, please consider: Is this information essential and necessary? Can the UI be made clearer? Can the information be shown on the page by default?
|
12
|
+
|
13
|
+
**Attention:** we use aria-label for tooltip contents, because it is crucial that they are accessible to screen reader users. However, aria-label replaces the text content of an element in screen readers, so only use Tooltip on elements with no existing text content, or consider using `title` for supplemental information.
|
14
|
+
|
15
|
+
## Default example
|
16
|
+
|
17
|
+
```jsx live
|
18
|
+
<Box borderWidth="1px" borderStyle="solid" borderColor="border.default" borderRadius={2} p={3}>
|
19
|
+
<Tooltip aria-label="Hello, Tooltip!">Text with a tooltip</Tooltip>
|
20
|
+
</Box>
|
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
|
+
Tooltip 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
|
+
| align | String | | Can be either `left` or `right`. |
|
38
|
+
| direction | String | | Can be one of `n`, `ne`, `e`, `se`, `s`, `sw`, `w`, `nw` | Sets where the tooltip renders in relation to the target. |
|
39
|
+
| noDelay | Boolean | | When set to `true`, tooltip appears without any delay |
|
40
|
+
| aria-label | String | | Text used in `aria-label` (for accessibility). |
|
41
|
+
| wrap | Boolean | | Use `true` to allow text within tooltip to wrap. |
|
@@ -0,0 +1,64 @@
|
|
1
|
+
---
|
2
|
+
title: Truncate
|
3
|
+
---
|
4
|
+
|
5
|
+
The Truncate component will shorten text with an ellipsis. Always add a `title` attribute to the truncated element so the full text remains accessible.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
Truncate will prevent text that overflows from wrapping. The default max-width is 125px.
|
10
|
+
|
11
|
+
```jsx live
|
12
|
+
<Truncate title="Some text with a branch-name-that-is-really-long">
|
13
|
+
Some text with a branch-name-that-is-really-long
|
14
|
+
</Truncate>
|
15
|
+
```
|
16
|
+
|
17
|
+
## Custom max-width example
|
18
|
+
|
19
|
+
You can override the maximum width of the truncated text with the `maxWidth` prop.
|
20
|
+
|
21
|
+
```jsx live
|
22
|
+
<Truncate maxWidth={250} title="Some text with a branch-name-that-is-really-long">
|
23
|
+
Some text with a branch-name-that-is-really-long
|
24
|
+
</Truncate>
|
25
|
+
```
|
26
|
+
|
27
|
+
## Inline example
|
28
|
+
|
29
|
+
You can use the `inline` boolean prop for inline (or inline-block) elements with a fixed maximum width (default: 125px).
|
30
|
+
|
31
|
+
```jsx live
|
32
|
+
<Truncate as="strong" inline title="branch-name-that-is-really-long">
|
33
|
+
Some text with a branch-name-that-is-really-long
|
34
|
+
</Truncate>
|
35
|
+
```
|
36
|
+
|
37
|
+
## Expandable example
|
38
|
+
|
39
|
+
You can use the `expandable` boolean prop to display the truncated text on hover.
|
40
|
+
|
41
|
+
```jsx live
|
42
|
+
<Truncate expandable title="Some text with a branch-name-that-is-really-long">
|
43
|
+
Some text with a branch-name-that-is-really-long
|
44
|
+
</Truncate>
|
45
|
+
```
|
46
|
+
|
47
|
+
## System props
|
48
|
+
|
49
|
+
<Note variant="warning">
|
50
|
+
|
51
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
52
|
+
|
53
|
+
</Note>
|
54
|
+
|
55
|
+
Truncate components get `TYPOGRAPHY` and `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
56
|
+
|
57
|
+
## Component props
|
58
|
+
|
59
|
+
| Name | Type | Default | Description |
|
60
|
+
| :--------- | :------ | :-----: | :----------------------------------------------------------- |
|
61
|
+
| as | String | `div` | Sets the HTML tag for the component |
|
62
|
+
| maxWidth | Number | 125 | Sets the max-width of the text |
|
63
|
+
| inline | Boolean | false | displays text as inline block and vertical aligns to the top |
|
64
|
+
| expandable | Boolean | false | allows the truncated text to be displayed on hover |
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
title: UnderlineNav
|
3
|
+
---
|
4
|
+
|
5
|
+
Use the UnderlineNav component to style navigation with a minimal underlined selected state, typically used for navigation placed at the top of the page.
|
6
|
+
|
7
|
+
To use UnderlineNav with [react-router](https://github.com/ReactTraining/react-router) or
|
8
|
+
[react-router-dom](https://www.npmjs.com/package/react-router-dom), pass
|
9
|
+
`as={NavLink}` and omit the `selected` prop.
|
10
|
+
This ensures that the NavLink gets `activeClassName='selected'`
|
11
|
+
|
12
|
+
**Attention:** Make sure to properly label your `UnderlineNav` with an `aria-label` to provide context about the type of navigation contained in `UnderlineNav`.
|
13
|
+
|
14
|
+
## Default example
|
15
|
+
|
16
|
+
```jsx live
|
17
|
+
<UnderlineNav aria-label="Main">
|
18
|
+
<UnderlineNav.Link href="#home" selected>
|
19
|
+
Home
|
20
|
+
</UnderlineNav.Link>
|
21
|
+
<UnderlineNav.Link href="#documentation">Documentation</UnderlineNav.Link>
|
22
|
+
<UnderlineNav.Link href="#support">Support</UnderlineNav.Link>
|
23
|
+
</UnderlineNav>
|
24
|
+
```
|
25
|
+
|
26
|
+
## System props
|
27
|
+
|
28
|
+
<Note variant="warning">
|
29
|
+
|
30
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
31
|
+
|
32
|
+
</Note>
|
33
|
+
|
34
|
+
UnderlineNav and UnderlineNav.Link components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
35
|
+
|
36
|
+
## Component props
|
37
|
+
|
38
|
+
### UnderlineNav
|
39
|
+
|
40
|
+
| Prop name | Type | Description |
|
41
|
+
| :--------- | :------ | :------------------------------------------------------------------------------------- |
|
42
|
+
| actions | Node | Place another element, such as a button, to the opposite side of the navigation items. |
|
43
|
+
| align | String | Use `right` to have navigation items aligned right. |
|
44
|
+
| full | Boolean | Used to make navigation fill the width of the container. |
|
45
|
+
| aria-label | String | Used to set the `aria-label` on the top level `<nav>` element. |
|
46
|
+
|
47
|
+
### UnderlineNav.Link
|
48
|
+
|
49
|
+
| Prop name | Type | Description |
|
50
|
+
| :-------- | :------ | :----------------------------------------------- |
|
51
|
+
| as | String | sets the HTML tag for the component |
|
52
|
+
| href | String | URL to be used for the Link |
|
53
|
+
| selected | Boolean | Used to style the link as selected or unselected |
|