@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
package/docs/.eslintrc
ADDED
File without changes
|
package/docs/.gitignore
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
# Logs
|
2
|
+
logs
|
3
|
+
*.log
|
4
|
+
npm-debug.log*
|
5
|
+
yarn-debug.log*
|
6
|
+
yarn-error.log*
|
7
|
+
lerna-debug.log*
|
8
|
+
|
9
|
+
# Diagnostic reports (https://nodejs.org/api/report.html)
|
10
|
+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
11
|
+
|
12
|
+
# Runtime data
|
13
|
+
pids
|
14
|
+
*.pid
|
15
|
+
*.seed
|
16
|
+
*.pid.lock
|
17
|
+
|
18
|
+
# Directory for instrumented libs generated by jscoverage/JSCover
|
19
|
+
lib-cov
|
20
|
+
|
21
|
+
# Coverage directory used by tools like istanbul
|
22
|
+
coverage
|
23
|
+
*.lcov
|
24
|
+
|
25
|
+
# nyc test coverage
|
26
|
+
.nyc_output
|
27
|
+
|
28
|
+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
29
|
+
.grunt
|
30
|
+
|
31
|
+
# Bower dependency directory (https://bower.io/)
|
32
|
+
bower_components
|
33
|
+
|
34
|
+
# node-waf configuration
|
35
|
+
.lock-wscript
|
36
|
+
|
37
|
+
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
38
|
+
build/Release
|
39
|
+
|
40
|
+
# Dependency directories
|
41
|
+
node_modules/
|
42
|
+
jspm_packages/
|
43
|
+
|
44
|
+
# TypeScript v1 declaration files
|
45
|
+
typings/
|
46
|
+
|
47
|
+
# TypeScript cache
|
48
|
+
*.tsbuildinfo
|
49
|
+
|
50
|
+
# Optional npm cache directory
|
51
|
+
.npm
|
52
|
+
|
53
|
+
# Optional eslint cache
|
54
|
+
.eslintcache
|
55
|
+
|
56
|
+
# Optional REPL history
|
57
|
+
.node_repl_history
|
58
|
+
|
59
|
+
# Output of 'npm pack'
|
60
|
+
*.tgz
|
61
|
+
|
62
|
+
# Yarn Integrity file
|
63
|
+
.yarn-integrity
|
64
|
+
|
65
|
+
# dotenv environment variables file
|
66
|
+
.env
|
67
|
+
.env.test
|
68
|
+
|
69
|
+
# parcel-bundler cache (https://parceljs.org/)
|
70
|
+
.cache
|
71
|
+
|
72
|
+
# next.js build output
|
73
|
+
.next
|
74
|
+
|
75
|
+
# nuxt.js build output
|
76
|
+
.nuxt
|
77
|
+
|
78
|
+
# vuepress build output
|
79
|
+
.vuepress/dist
|
80
|
+
|
81
|
+
# Serverless directories
|
82
|
+
.serverless/
|
83
|
+
|
84
|
+
# FuseBox cache
|
85
|
+
.fusebox/
|
86
|
+
|
87
|
+
# DynamoDB Local files
|
88
|
+
.dynamodb/
|
89
|
+
|
90
|
+
# Gatsby
|
91
|
+
public/
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import {theme} from '@primer/components'
|
2
|
+
import systemPropTypes from '@styled-system/prop-types'
|
3
|
+
import themeGet from '@styled-system/theme-get'
|
4
|
+
import * as styledSystem from 'styled-system'
|
5
|
+
|
6
|
+
const {get: getKey, compose, system} = styledSystem
|
7
|
+
|
8
|
+
export const get = key => themeGet(key, getKey(theme, key))
|
9
|
+
|
10
|
+
const whiteSpace = system({
|
11
|
+
whiteSpace: {
|
12
|
+
property: 'whiteSpace',
|
13
|
+
cssProperty: 'whiteSpace'
|
14
|
+
}
|
15
|
+
})
|
16
|
+
|
17
|
+
export const TYPOGRAPHY = compose(styledSystem.typography, whiteSpace)
|
18
|
+
|
19
|
+
export const COMMON = compose(styledSystem.space, styledSystem.color, styledSystem.display)
|
20
|
+
|
21
|
+
export const BORDER = compose(styledSystem.border, styledSystem.shadow)
|
22
|
+
|
23
|
+
// these are 1:1 with styled-system's API now,
|
24
|
+
// so you could consider dropping the abstraction
|
25
|
+
export const LAYOUT = styledSystem.layout
|
26
|
+
export const POSITION = styledSystem.position
|
27
|
+
export const FLEX = styledSystem.flexbox
|
28
|
+
export const GRID = styledSystem.grid
|
29
|
+
|
30
|
+
TYPOGRAPHY.propTypes = systemPropTypes.typography
|
31
|
+
LAYOUT.propTypes = systemPropTypes.layout
|
32
|
+
POSITION.propTypes = systemPropTypes.position
|
33
|
+
FLEX.propTypes = systemPropTypes.flexbox
|
34
|
+
GRID.propTypes = systemPropTypes.grid
|
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
title: ActionList
|
3
|
+
---
|
4
|
+
|
5
|
+
An `ActionList` is a list of items which can be activated or selected. `ActionList` is the base component for many of our menu-type components, including `DropdownMenu` and `ActionMenu`.
|
6
|
+
|
7
|
+
## Minimal example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<ActionList
|
11
|
+
items={[
|
12
|
+
{text: 'New file'},
|
13
|
+
ActionList.Divider,
|
14
|
+
{text: 'Copy link'},
|
15
|
+
{text: 'Edit file'},
|
16
|
+
{text: 'Delete file', variant: 'danger'}
|
17
|
+
]}
|
18
|
+
/>
|
19
|
+
```
|
20
|
+
|
21
|
+
## Example with grouped items
|
22
|
+
|
23
|
+
```jsx live
|
24
|
+
<ActionList
|
25
|
+
groupMetadata={[
|
26
|
+
{groupId: '0'},
|
27
|
+
{groupId: '1', header: {title: 'Live query', variant: 'subtle'}},
|
28
|
+
{groupId: '2', header: {title: 'Layout', variant: 'subtle'}},
|
29
|
+
{groupId: '3'},
|
30
|
+
{groupId: '4'}
|
31
|
+
]}
|
32
|
+
items={[
|
33
|
+
{key: '1', leadingVisual: TypographyIcon, text: 'Rename', groupId: '0'},
|
34
|
+
{key: '2', leadingVisual: VersionsIcon, text: 'Duplicate', groupId: '0'},
|
35
|
+
{key: '3', leadingVisual: SearchIcon, text: 'repo:github/github', groupId: '1'},
|
36
|
+
{
|
37
|
+
key: '4',
|
38
|
+
leadingVisual: NoteIcon,
|
39
|
+
text: 'Table',
|
40
|
+
description: 'Information-dense table optimized for operations across teams',
|
41
|
+
descriptionVariant: 'block',
|
42
|
+
groupId: '2'
|
43
|
+
},
|
44
|
+
{
|
45
|
+
key: '5',
|
46
|
+
leadingVisual: ProjectIcon,
|
47
|
+
text: 'Board',
|
48
|
+
description: 'Kanban-style board focused on visual states',
|
49
|
+
descriptionVariant: 'block',
|
50
|
+
groupId: '2'
|
51
|
+
},
|
52
|
+
{
|
53
|
+
key: '6',
|
54
|
+
leadingVisual: FilterIcon,
|
55
|
+
text: 'Save sort and filters to current view',
|
56
|
+
disabled: true,
|
57
|
+
groupId: '3'
|
58
|
+
},
|
59
|
+
{key: '7', leadingVisual: FilterIcon, text: 'Save sort and filters to new view', groupId: '3'},
|
60
|
+
{key: '8', leadingVisual: GearIcon, text: 'View settings', groupId: '4'}
|
61
|
+
]}
|
62
|
+
/>
|
63
|
+
```
|
64
|
+
|
65
|
+
## Component props
|
66
|
+
|
67
|
+
| Name | Type | Default | Description |
|
68
|
+
| :--------------- | :---------------------------------- | :---------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
69
|
+
| items | `ItemProps[]` | `undefined` | Required. A list of item objects conforming to the `ActionList.Item` props interface. |
|
70
|
+
| renderItem | `(props: ItemProps) => JSX.Element` | `ActionList.Item` | Optional. If defined, each item in `items` will be passed to this function, allowing for `ActionList`-wide custom item rendering. |
|
71
|
+
| groupMetadata | `GroupProps[]` | `undefined` | Optional. If defined, `ActionList` will group `items` into `ActionList.Group`s separated by `ActionList.Divider` according to their `groupId` property. |
|
72
|
+
| showItemDividers | `boolean` | `false` | Optional. If `true` dividers will be displayed above each `ActionList.Item` which does not follow an `ActionList.Header` or `ActionList.Divider` |
|
@@ -0,0 +1,80 @@
|
|
1
|
+
---
|
2
|
+
title: ActionMenu
|
3
|
+
---
|
4
|
+
|
5
|
+
An `ActionMenu` is an ActionList-based component for creating a menu of actions that expands through a trigger button.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<ActionMenu
|
11
|
+
anchorContent="Menu"
|
12
|
+
onAction={({text}) => console.log(text)}
|
13
|
+
items={[
|
14
|
+
{text: 'New file', key: 'new-file'},
|
15
|
+
ActionMenu.Divider,
|
16
|
+
{text: 'Copy link', key: 'copy-link'},
|
17
|
+
{text: 'Edit file', key: 'edit-file'},
|
18
|
+
{text: 'Delete file', variant: 'danger', key: 'delete-file'}
|
19
|
+
]}
|
20
|
+
/>
|
21
|
+
```
|
22
|
+
|
23
|
+
## Example with grouped items
|
24
|
+
|
25
|
+
```jsx live
|
26
|
+
<ActionMenu
|
27
|
+
anchorContent="Menu"
|
28
|
+
onAction={({text}) => console.log(text)}
|
29
|
+
groupMetadata={[
|
30
|
+
{groupId: '0'},
|
31
|
+
{groupId: '1', header: {title: 'Live query', variant: 'subtle'}},
|
32
|
+
{groupId: '2', header: {title: 'Layout', variant: 'subtle'}},
|
33
|
+
{groupId: '3'},
|
34
|
+
{groupId: '4'}
|
35
|
+
]}
|
36
|
+
items={[
|
37
|
+
{key: '1', leadingVisual: TypographyIcon, text: 'Rename', groupId: '0'},
|
38
|
+
{key: '2', leadingVisual: VersionsIcon, text: 'Duplicate', groupId: '0'},
|
39
|
+
{key: '3', leadingVisual: SearchIcon, text: 'repo:github/github', groupId: '1'},
|
40
|
+
{
|
41
|
+
key: '4',
|
42
|
+
leadingVisual: NoteIcon,
|
43
|
+
text: 'Table',
|
44
|
+
description: 'Information-dense table optimized for operations across teams',
|
45
|
+
descriptionVariant: 'block',
|
46
|
+
groupId: '2'
|
47
|
+
},
|
48
|
+
{
|
49
|
+
key: '5',
|
50
|
+
leadingVisual: ProjectIcon,
|
51
|
+
text: 'Board',
|
52
|
+
description: 'Kanban-style board focused on visual states',
|
53
|
+
descriptionVariant: 'block',
|
54
|
+
groupId: '2'
|
55
|
+
},
|
56
|
+
{
|
57
|
+
key: '6',
|
58
|
+
leadingVisual: FilterIcon,
|
59
|
+
text: 'Save sort and filters to current view',
|
60
|
+
disabled: true,
|
61
|
+
groupId: '3'
|
62
|
+
},
|
63
|
+
{key: '7', leadingVisual: FilterIcon, text: 'Save sort and filters to new view', groupId: '3'},
|
64
|
+
{key: '8', leadingVisual: GearIcon, text: 'View settings', groupId: '4'}
|
65
|
+
]}
|
66
|
+
/>
|
67
|
+
```
|
68
|
+
|
69
|
+
## Component props
|
70
|
+
|
71
|
+
| Name | Type | Default | Description |
|
72
|
+
| :------------ | :------------------------------------ | :---------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
73
|
+
| items | `ItemProps[]` | `undefined` | Required. A list of item objects conforming to the `ActionList.Item` props interface. |
|
74
|
+
| renderItem | `(props: ItemProps) => JSX.Element` | `ActionList.Item` | Optional. If defined, each item in `items` will be passed to this function, allowing for `ActionList`-wide custom item rendering. |
|
75
|
+
| groupMetadata | `GroupProps[]` | `undefined` | Optional. If defined, `ActionList` will group `items` into `ActionList.Group`s separated by `ActionList.Divider` according to their `groupId` property. |
|
76
|
+
| renderAnchor | `(props: ButtonProps) => JSX.Element` | `Button` | Optional. If defined, provided component will be used to render the menu anchor. Will receive the selected `Item` text as `children` prop when an item is activated. |
|
77
|
+
| anchorContent | React.ReactNode | `undefined` | Optional. If defined, it will be passed to the trigger as the elements child. |
|
78
|
+
| onAction | (props: ItemProps) => void | `undefined` | Optional. If defined, this function will be called when a menu item is activated either by a click or a keyboard press. |
|
79
|
+
| open | boolean | `undefined` | Optional. If defined, ActionMenu will use this to control the open/closed state of the Overlay instead of controlling the state internally. Should be used in conjunction with the `setOpen` prop. |
|
80
|
+
| setOpen | (state: boolean) => void | `undefined` | Optional. If defined, ActionMenu will use this to control the open/closed state of the Overlay instead of controlling the state internally. Should be used in conjunction with the `open` prop. |
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
title: AnchoredOverlay
|
3
|
+
status: Alpha
|
4
|
+
---
|
5
|
+
|
6
|
+
An `AnchoredOverlay` provides an anchor that will open a floating overlay positioned relative to the anchor.
|
7
|
+
The overlay can be opened and navigated using keyboard or mouse.
|
8
|
+
|
9
|
+
See also [Overlay positioning](/Overlay#positioning).
|
10
|
+
|
11
|
+
## Example
|
12
|
+
|
13
|
+
```jsx live
|
14
|
+
<State default={false}>
|
15
|
+
{([isOpen, setIsOpen]) => {
|
16
|
+
const openOverlay = React.useCallback(() => setIsOpen(true), [setIsOpen])
|
17
|
+
const closeOverlay = React.useCallback(() => setIsOpen(false), [setIsOpen])
|
18
|
+
return (
|
19
|
+
<AnchoredOverlay
|
20
|
+
renderAnchor={anchorProps => <DropdownButton {...anchorProps}>Click me to open</DropdownButton>}
|
21
|
+
open={isOpen}
|
22
|
+
onOpen={openOverlay}
|
23
|
+
onClose={closeOverlay}
|
24
|
+
>
|
25
|
+
<Box display="flex" flexDirection="column" maxWidth="300px" padding={2}>
|
26
|
+
<p>
|
27
|
+
This menu automatically receives a focus trap and focus zone. Use up/down keys to navigate between buttons
|
28
|
+
</p>
|
29
|
+
<Button mb={1}>Button 1</Button>
|
30
|
+
<Button mb={1}>Button 2</Button>
|
31
|
+
<Button>Button 3</Button>
|
32
|
+
</Box>
|
33
|
+
</AnchoredOverlay>
|
34
|
+
)
|
35
|
+
}}
|
36
|
+
</State>
|
37
|
+
```
|
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
title: Avatar
|
3
|
+
componentId: avatar
|
4
|
+
source: https://github.com/primer/react/blob/main/src/Avatar.tsx
|
5
|
+
---
|
6
|
+
|
7
|
+
import {Props} from '../src/props'
|
8
|
+
import {Avatar} from '@primer/components'
|
9
|
+
|
10
|
+
```jsx live
|
11
|
+
<Avatar src="https://avatars.githubusercontent.com/primer" />
|
12
|
+
```
|
13
|
+
|
14
|
+
## Props
|
15
|
+
|
16
|
+
<Props of={Avatar} />
|
17
|
+
|
18
|
+
## Examples
|
19
|
+
|
20
|
+
### Square
|
21
|
+
|
22
|
+
```jsx live
|
23
|
+
<Avatar square src="https://avatars.githubusercontent.com/primer" />
|
24
|
+
```
|
25
|
+
|
26
|
+
### AvatarPair
|
27
|
+
|
28
|
+
```jsx live
|
29
|
+
<AvatarPair>
|
30
|
+
<Avatar src="https://avatars.githubusercontent.com/github" />
|
31
|
+
<Avatar src="https://avatars.githubusercontent.com/primer" />
|
32
|
+
</AvatarPair>
|
33
|
+
```
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
title: AvatarStack
|
3
|
+
---
|
4
|
+
|
5
|
+
AvatarStack is used to display more than one Avatar in an inline stack.
|
6
|
+
|
7
|
+
### Default example
|
8
|
+
|
9
|
+
```jsx live
|
10
|
+
<AvatarStack>
|
11
|
+
<Avatar alt="Primer" src="https://avatars.githubusercontent.com/primer" />
|
12
|
+
<Avatar alt="GitHub" src="https://avatars.githubusercontent.com/github" />
|
13
|
+
<Avatar alt="Atom" src="https://avatars.githubusercontent.com/atom" />
|
14
|
+
<Avatar alt="Desktop" src="https://avatars.githubusercontent.com/desktop" />
|
15
|
+
</AvatarStack>
|
16
|
+
```
|
17
|
+
|
18
|
+
### Right aligned
|
19
|
+
|
20
|
+
```jsx live
|
21
|
+
<AvatarStack alignRight>
|
22
|
+
<Avatar alt="Primer" src="https://avatars.githubusercontent.com/primer" />
|
23
|
+
<Avatar alt="GitHub" src="https://avatars.githubusercontent.com/github" />
|
24
|
+
<Avatar alt="Atom" src="https://avatars.githubusercontent.com/atom" />
|
25
|
+
<Avatar alt="Desktop" src="https://avatars.githubusercontent.com/desktop" />
|
26
|
+
</AvatarStack>
|
27
|
+
```
|
28
|
+
|
29
|
+
## System props
|
30
|
+
|
31
|
+
<Note variant="warning">
|
32
|
+
|
33
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
34
|
+
|
35
|
+
</Note>
|
36
|
+
|
37
|
+
AvatarStack components get `COMMON` system props, AvatarStack.Item components do not get any system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
38
|
+
|
39
|
+
## AvatarStack Component props
|
40
|
+
|
41
|
+
| Name | Type | Default | Description |
|
42
|
+
| :--------- | :------ | :-----: | :-------------------------------- |
|
43
|
+
| alignRight | Boolean | | Creates right aligned AvatarStack |
|
@@ -0,0 +1,46 @@
|
|
1
|
+
---
|
2
|
+
title: BorderBox
|
3
|
+
status: Deprecated
|
4
|
+
---
|
5
|
+
|
6
|
+
BorderBox is a Box component with a border. When no `borderColor` is present, the component defaults to a primary border.
|
7
|
+
|
8
|
+
## Deprecation
|
9
|
+
|
10
|
+
Use [Box](/Box) instead.
|
11
|
+
|
12
|
+
**Before**
|
13
|
+
|
14
|
+
```jsx
|
15
|
+
<BorderBox>Item 1</BorderBox>
|
16
|
+
```
|
17
|
+
|
18
|
+
**After**
|
19
|
+
|
20
|
+
```jsx
|
21
|
+
<Box borderWidth="1px" borderStyle="solid" borderColor="border.default" borderRadius={2}>
|
22
|
+
Item 1
|
23
|
+
</Box>
|
24
|
+
```
|
25
|
+
|
26
|
+
## Default example
|
27
|
+
|
28
|
+
```jsx live
|
29
|
+
<BorderBox>This is a BorderBox</BorderBox>
|
30
|
+
```
|
31
|
+
|
32
|
+
Note that `BorderBox` has default props set for `borderWidth`, `borderStyle`, and `borderColor`. This means that you cannot use `border={0} borderBottom={1}` or similar patterns; instead, use individual properties like `borderWidth={0} borderBottomWidth={1}`.
|
33
|
+
|
34
|
+
## System props
|
35
|
+
|
36
|
+
BorderBox components get `COMMON`, `LAYOUT`, `BORDER`, and `FLEX` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
37
|
+
|
38
|
+
## Component props
|
39
|
+
|
40
|
+
| Prop name | Type | Default | Description |
|
41
|
+
| :----------- | :--------------- | :---------------------------: | :------------------------------------------------------------ |
|
42
|
+
| borderWidth | String | '1px' | Sets the border, use theme values or provide your own. |
|
43
|
+
| borderStyle | String | 'solid' | Sets the border style, use theme values or provide your own. |
|
44
|
+
| borderColor | String | 'border.primary' (from theme) | Sets the border color, use theme values or provide your own. |
|
45
|
+
| borderRadius | String or Number | 2 (from theme) | Sets the border radius, use theme values or provide your own. |
|
46
|
+
| boxShadow | String | | Sets box shadow, use theme values or provide your own. |
|
@@ -0,0 +1,74 @@
|
|
1
|
+
---
|
2
|
+
title: Box
|
3
|
+
description: A low-level utility component that accepts styled system props to enable custom theme-aware styling
|
4
|
+
source: https://github.com/primer/react/blob/main/src/Box.tsx
|
5
|
+
---
|
6
|
+
|
7
|
+
import {Props} from '../src/props'
|
8
|
+
import {Box} from '@primer/components'
|
9
|
+
|
10
|
+
```jsx live
|
11
|
+
<Box color="fg.muted" bg="canvas.subtle" p={3}>
|
12
|
+
Hello
|
13
|
+
</Box>
|
14
|
+
```
|
15
|
+
|
16
|
+
## Props
|
17
|
+
|
18
|
+
<Props of={Box} />
|
19
|
+
|
20
|
+
Box also accepts all [styled system props](https://styled-system.com/table/).
|
21
|
+
|
22
|
+
## Examples
|
23
|
+
|
24
|
+
### Border on all sides
|
25
|
+
|
26
|
+
```jsx live
|
27
|
+
<Box borderColor="border.default" borderWidth={1} borderStyle="solid" p={3}>
|
28
|
+
Hello
|
29
|
+
</Box>
|
30
|
+
```
|
31
|
+
|
32
|
+
### Border on one side
|
33
|
+
|
34
|
+
```jsx live
|
35
|
+
<Box borderColor="border.default" borderBottomWidth={1} borderBottomStyle="solid" pb={3}>
|
36
|
+
Hello
|
37
|
+
</Box>
|
38
|
+
```
|
39
|
+
|
40
|
+
### Flexbox
|
41
|
+
|
42
|
+
Use Box to create [flexbox](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox) layouts.
|
43
|
+
|
44
|
+
```jsx live
|
45
|
+
<Box display="flex">
|
46
|
+
<Box p={3} borderColor="border.default" borderWidth={1} borderStyle="solid">
|
47
|
+
1
|
48
|
+
</Box>
|
49
|
+
<Box flexGrow={1} p={3} borderColor="border.default" borderWidth={1} borderStyle="solid">
|
50
|
+
2
|
51
|
+
</Box>
|
52
|
+
<Box p={3} borderColor="border.default" borderWidth={1} borderStyle="solid">
|
53
|
+
3
|
54
|
+
</Box>
|
55
|
+
</Box>
|
56
|
+
```
|
57
|
+
|
58
|
+
### Grid
|
59
|
+
|
60
|
+
Use Box to create [grid](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grids) layouts.
|
61
|
+
|
62
|
+
```jsx live
|
63
|
+
<Box display="grid" gridTemplateColumns="1fr 1fr" gridGap={3}>
|
64
|
+
<Box p={3} borderColor="border.default" borderWidth={1} borderStyle="solid">
|
65
|
+
1
|
66
|
+
</Box>
|
67
|
+
<Box p={3} borderColor="border.default" borderWidth={1} borderStyle="solid">
|
68
|
+
2
|
69
|
+
</Box>
|
70
|
+
<Box p={3} borderColor="border.default" borderWidth={1} borderStyle="solid">
|
71
|
+
3
|
72
|
+
</Box>
|
73
|
+
</Box>
|
74
|
+
```
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
title: BranchName
|
3
|
+
---
|
4
|
+
|
5
|
+
BranchName is a label-type component rendered as an `<a>` tag by default with monospace font.
|
6
|
+
|
7
|
+
## Default example
|
8
|
+
|
9
|
+
```jsx live live
|
10
|
+
<BranchName>a_new_feature_branch</BranchName>
|
11
|
+
```
|
12
|
+
|
13
|
+
## Component props
|
14
|
+
|
15
|
+
| Name | Type | Default | Description |
|
16
|
+
| :--- | :----- | :-----: | :---------------------------------- |
|
17
|
+
| as | String | `<a>` | sets the HTML tag for the component |
|
18
|
+
| href | String | | a URL to link the component to |
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
title: Breadcrumbs
|
3
|
+
status: Alpha
|
4
|
+
source: https://github.com/primer/react/blob/main/src/Breadcrumbs.tsx
|
5
|
+
---
|
6
|
+
|
7
|
+
Breadcrumbs are used to show taxonomical context on pages that are many levels deep in a site’s hierarchy. Breadcrumbs show and link to parent, grandparent, and sometimes great-grandparent pages. Breadcrumbs are most appropriate on pages that:
|
8
|
+
|
9
|
+
- Are many levels deep on a site
|
10
|
+
- Do not have a section-level navigation
|
11
|
+
- May need the ability to quickly go back to the previous (parent) page
|
12
|
+
|
13
|
+
To use Breadcrumbs with [react-router](https://github.com/ReactTraining/react-router) or
|
14
|
+
[react-router-dom](https://www.npmjs.com/package/react-router-dom), pass
|
15
|
+
`as={NavLink}` and omit the `selected` prop.
|
16
|
+
This ensures that the NavLink gets `activeClassName='selected'`
|
17
|
+
|
18
|
+
## Default example
|
19
|
+
|
20
|
+
```jsx live
|
21
|
+
<Breadcrumbs>
|
22
|
+
<Breadcrumbs.Item href="/">Home</Breadcrumbs.Item>
|
23
|
+
<Breadcrumbs.Item href="/about">About</Breadcrumbs.Item>
|
24
|
+
<Breadcrumbs.Item href="/about/team" selected>
|
25
|
+
Team
|
26
|
+
</Breadcrumbs.Item>
|
27
|
+
</Breadcrumbs>
|
28
|
+
```
|
29
|
+
|
30
|
+
## System props
|
31
|
+
|
32
|
+
<Note variant="warning">
|
33
|
+
|
34
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
35
|
+
|
36
|
+
</Note>
|
37
|
+
|
38
|
+
Breadcrumbs and Breadcrumbs.Item components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
39
|
+
|
40
|
+
## Component props
|
41
|
+
|
42
|
+
### Breadcrumbs
|
43
|
+
|
44
|
+
The `Breadcrumbs` component does not receive any additional props besides `COMMON` system props.
|
45
|
+
|
46
|
+
### Breadcrumbs.Item
|
47
|
+
|
48
|
+
| Prop name | Type | Default | Description |
|
49
|
+
| :-------- | :------ | :-----: | :----------------------------------------------- |
|
50
|
+
| as | String | `a` | Sets the HTML tag for the component |
|
51
|
+
| href | String | | URL to be used for the Link |
|
52
|
+
| selected | Boolean | false | Used to style the link as selected or unselected |
|
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
title: Buttons
|
3
|
+
---
|
4
|
+
|
5
|
+
`Button` is used for actions, like in forms, while `Link` is used for destinations, or moving from one page to another.
|
6
|
+
|
7
|
+
In special cases where you'd like to use a `<a>` styled like a Button, use `<Button as='a'>` and provide an `href`.
|
8
|
+
|
9
|
+
To create a button group, wrap `Button` elements in the `ButtonGroup` element. `ButtonGroup` gets the same props as `Box`.
|
10
|
+
|
11
|
+
## Default examples
|
12
|
+
|
13
|
+
```jsx live
|
14
|
+
<>
|
15
|
+
<Button>Button</Button>
|
16
|
+
<ButtonDanger>Button Danger</ButtonDanger>
|
17
|
+
<ButtonOutline>Button Outline</ButtonOutline>
|
18
|
+
<ButtonPrimary>Button Primary</ButtonPrimary>
|
19
|
+
<ButtonInvisible>Button Invisible</ButtonInvisible>
|
20
|
+
<ButtonClose onClick={() => window.alert('button clicked')}/>
|
21
|
+
|
22
|
+
<ButtonGroup display='block' my={2}>
|
23
|
+
<Button>Button</Button>
|
24
|
+
<Button>Button</Button>
|
25
|
+
<Button>Button</Button>
|
26
|
+
</ButtonGroup>
|
27
|
+
|
28
|
+
<ButtonTableList>Button Table List </ButtonTableList>
|
29
|
+
</>
|
30
|
+
```
|
31
|
+
|
32
|
+
## System props
|
33
|
+
|
34
|
+
<Note variant="warning">
|
35
|
+
|
36
|
+
System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
|
37
|
+
|
38
|
+
</Note>
|
39
|
+
|
40
|
+
`Button` and `ButtonGroup` components get `COMMON` and `LAYOUT` system props. Read our [System Props](/system-props) doc page for a full list of available props.
|
41
|
+
|
42
|
+
## Component props
|
43
|
+
|
44
|
+
Native `<button>` HTML attributes are forwarded to the underlying React `button` component and are not listed below.
|
45
|
+
|
46
|
+
### Button
|
47
|
+
|
48
|
+
| Prop name | Type | Default | Description |
|
49
|
+
| :-------- | :--------------- | :------: | :-------------------------------------------------------------------------------------------------------------------------- |
|
50
|
+
| as | String | `button` | sets the HTML tag for the component |
|
51
|
+
| fontSize | Number or String | | explicitly sets the font size for the Button text; overrides any value for the `variant` prop |
|
52
|
+
| variant | String | 'medium' | a value of `small`, `medium`, or `large` results in smaller or larger Button text size; no effect if `fontSize` prop is set |
|
53
|
+
|
54
|
+
### ButtonGroup
|
55
|
+
|
56
|
+
`ButtonGroup` has access to the same props as `Box`
|