@primer/components 31.1.0 → 31.2.0-rc.c285489d
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 +137 -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/check_for_changeset.yml +25 -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 +9 -0
- package/.storybook/preview.js +117 -0
- package/.vscode/launch.json +21 -0
- package/.vscode/settings.json +13 -0
- package/@types/@styled-system/index.d.ts +0 -0
- package/@types/@styled-system/prop-types/index.d.ts +1 -0
- package/@types/@styled-system/props/index.d.ts +1 -0
- package/@types/jest-styled-components/index.d.ts +1 -0
- package/CHANGELOG.md +6 -0
- package/CODEOWNERS +2 -0
- package/babel-defines.js +13 -0
- package/babel.config.js +39 -0
- package/contributor-docs/CODE_OF_CONDUCT.md +76 -0
- package/contributor-docs/CONTRIBUTING.md +274 -0
- package/contributor-docs/adrs/adr-001-typescript.md +23 -0
- package/contributor-docs/adrs/adr-002-behavior-isolation.md +108 -0
- package/contributor-docs/adrs/adr-003-prop-norms.md +72 -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.map +1 -1
- 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 +99 -0
- package/docs/content/ActionMenu.mdx +80 -0
- package/docs/content/AnchoredOverlay.mdx +37 -0
- package/docs/content/Autocomplete.mdx +657 -0
- package/docs/content/Avatar.mdx +33 -0
- package/docs/content/AvatarStack.mdx +37 -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/TextInputTokens.mdx +89 -0
- package/docs/content/TextInputWithTokens.mdx +211 -0
- package/docs/content/Timeline.md +138 -0
- package/docs/content/Token.mdx +381 -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 +82 -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 +20756 -0
- package/docs/package.json +36 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +23 -0
- package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +41 -0
- package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +56 -0
- package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +133 -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/Autocomplete/Autocomplete.d.ts +4 -4
- package/lib/Autocomplete/AutocompleteInput.d.ts +4 -4
- package/lib/Button/Button.d.ts +5 -5
- package/lib/Button/ButtonBase.d.ts +1 -1
- package/lib/Button/ButtonClose.d.ts +3 -3
- package/lib/Button/ButtonDanger.d.ts +5 -5
- package/lib/Button/ButtonInvisible.d.ts +5 -5
- package/lib/Button/ButtonOutline.d.ts +5 -5
- package/lib/Button/ButtonPrimary.d.ts +5 -5
- package/lib/CircleBadge.d.ts +2 -2
- package/lib/CircleOcticon.d.ts +4 -4
- package/lib/Dialog.d.ts +4 -4
- package/lib/Dropdown.d.ts +16 -16
- package/lib/DropdownMenu/DropdownButton.d.ts +6 -6
- package/lib/FilterList.d.ts +3 -3
- package/lib/Flash.d.ts +1 -1
- package/lib/Label.d.ts +1 -1
- package/lib/Position.d.ts +4 -4
- package/lib/ProgressBar.d.ts +1 -1
- package/lib/SelectMenu/SelectMenu.d.ts +24 -24
- package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib/TextInputWithTokens.d.ts +4 -4
- package/lib/Timeline.d.ts +4 -4
- package/lib/Token/AvatarToken.d.ts +1 -1
- package/lib/Token/IssueLabelToken.d.ts +1 -1
- package/lib/Token/Token.d.ts +1 -1
- package/lib/_TextInputWrapper.d.ts +1 -1
- package/lib/__tests__/ActionList.test.d.ts +1 -0
- package/lib/__tests__/ActionList.test.js +69 -0
- package/lib/__tests__/ActionList.types.test.d.ts +6 -0
- package/lib/__tests__/ActionList.types.test.js +69 -0
- package/lib/__tests__/ActionMenu.test.d.ts +1 -0
- package/lib/__tests__/ActionMenu.test.js +151 -0
- package/lib/__tests__/AnchoredOverlay.test.d.ts +1 -0
- package/lib/__tests__/AnchoredOverlay.test.js +160 -0
- package/lib/__tests__/Autocomplete.test.d.ts +1 -0
- package/lib/__tests__/Autocomplete.test.js +528 -0
- package/lib/__tests__/Avatar.test.d.ts +1 -0
- package/lib/__tests__/Avatar.test.js +67 -0
- package/lib/__tests__/AvatarStack.test.d.ts +1 -0
- package/lib/__tests__/AvatarStack.test.js +71 -0
- package/lib/__tests__/BorderBox.test.d.ts +1 -0
- package/lib/__tests__/BorderBox.test.js +58 -0
- package/lib/__tests__/Box.test.d.ts +1 -0
- package/lib/__tests__/Box.test.js +78 -0
- package/lib/__tests__/BranchName.test.d.ts +1 -0
- package/lib/__tests__/BranchName.test.js +36 -0
- package/lib/__tests__/Breadcrumbs.test.d.ts +1 -0
- package/lib/__tests__/Breadcrumbs.test.js +37 -0
- package/lib/__tests__/BreadcrumbsItem.test.d.ts +1 -0
- package/lib/__tests__/BreadcrumbsItem.test.js +49 -0
- package/lib/__tests__/Button.test.d.ts +1 -0
- package/lib/__tests__/Button.test.js +143 -0
- package/lib/__tests__/Caret.test.d.ts +1 -0
- package/lib/__tests__/Caret.test.js +52 -0
- package/lib/__tests__/CircleBadge.test.d.ts +1 -0
- package/lib/__tests__/CircleBadge.test.js +83 -0
- package/lib/__tests__/CircleOcticon.test.d.ts +1 -0
- package/lib/__tests__/CircleOcticon.test.js +71 -0
- package/lib/__tests__/ConfirmationDialog.test.d.ts +1 -0
- package/lib/__tests__/ConfirmationDialog.test.js +134 -0
- package/lib/__tests__/CounterLabel.test.d.ts +1 -0
- package/lib/__tests__/CounterLabel.test.js +58 -0
- package/lib/__tests__/Details.test.d.ts +1 -0
- package/lib/__tests__/Details.test.js +117 -0
- package/lib/__tests__/Dialog.test.d.ts +1 -0
- package/lib/__tests__/Dialog.test.js +184 -0
- package/lib/__tests__/Dropdown.test.d.ts +1 -0
- package/lib/__tests__/Dropdown.test.js +63 -0
- package/lib/__tests__/DropdownMenu.test.d.ts +1 -0
- package/lib/__tests__/DropdownMenu.test.js +150 -0
- package/lib/__tests__/FilterList.test.d.ts +1 -0
- package/lib/__tests__/FilterList.test.js +36 -0
- package/lib/__tests__/FilterListItem.test.d.ts +1 -0
- package/lib/__tests__/FilterListItem.test.js +46 -0
- package/lib/__tests__/FilteredSearch.test.d.ts +1 -0
- package/lib/__tests__/FilteredSearch.test.js +36 -0
- package/lib/__tests__/Flash.test.d.ts +1 -0
- package/lib/__tests__/Flash.test.js +62 -0
- package/lib/__tests__/Flex.test.d.ts +1 -0
- package/lib/__tests__/Flex.test.js +74 -0
- package/lib/__tests__/FormGroup.test.d.ts +1 -0
- package/lib/__tests__/FormGroup.test.js +54 -0
- package/lib/__tests__/Grid.test.d.ts +1 -0
- package/lib/__tests__/Grid.test.js +104 -0
- package/lib/__tests__/Header.test.d.ts +1 -0
- package/lib/__tests__/Header.test.js +58 -0
- package/lib/__tests__/Heading.test.d.ts +1 -0
- package/lib/__tests__/Heading.test.js +109 -0
- package/lib/__tests__/KeyPaths.types.test.d.ts +10 -0
- package/lib/__tests__/KeyPaths.types.test.js +10 -0
- package/lib/__tests__/Label.test.d.ts +1 -0
- package/lib/__tests__/Label.test.js +46 -0
- package/lib/__tests__/LabelGroup.test.d.ts +1 -0
- package/lib/__tests__/LabelGroup.test.js +38 -0
- package/lib/__tests__/Link.test.d.ts +1 -0
- package/lib/__tests__/Link.test.js +70 -0
- package/lib/__tests__/Merge.types.test.d.ts +30 -0
- package/lib/__tests__/Merge.types.test.js +27 -0
- package/lib/__tests__/Overlay.test.d.ts +1 -0
- package/lib/__tests__/Overlay.test.js +145 -0
- package/lib/__tests__/Pagehead.test.d.ts +1 -0
- package/lib/__tests__/Pagehead.test.js +37 -0
- package/lib/__tests__/Pagination/Pagination.test.d.ts +1 -0
- package/lib/__tests__/Pagination/Pagination.test.js +47 -0
- package/lib/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
- package/lib/__tests__/Pagination/PaginationModel.test.js +186 -0
- package/lib/__tests__/PointerBox.test.d.ts +1 -0
- package/lib/__tests__/PointerBox.test.js +46 -0
- package/lib/__tests__/Popover.test.d.ts +1 -0
- package/lib/__tests__/Popover.test.js +66 -0
- package/lib/__tests__/Portal.test.d.ts +1 -0
- package/lib/__tests__/Portal.test.js +124 -0
- package/lib/__tests__/Position.test.d.ts +1 -0
- package/lib/__tests__/Position.test.js +143 -0
- package/lib/__tests__/ProgressBar.test.d.ts +1 -0
- package/lib/__tests__/ProgressBar.test.js +68 -0
- package/lib/__tests__/SelectMenu.test.d.ts +1 -0
- package/lib/__tests__/SelectMenu.test.js +155 -0
- package/lib/__tests__/SelectPanel.test.d.ts +1 -0
- package/lib/__tests__/SelectPanel.test.js +80 -0
- package/lib/__tests__/SideNav.test.d.ts +1 -0
- package/lib/__tests__/SideNav.test.js +71 -0
- package/lib/__tests__/Spinner.test.d.ts +1 -0
- package/lib/__tests__/Spinner.test.js +53 -0
- package/lib/__tests__/StateLabel.test.d.ts +1 -0
- package/lib/__tests__/StateLabel.test.js +71 -0
- package/lib/__tests__/StyledOcticon.test.d.ts +1 -0
- package/lib/__tests__/StyledOcticon.test.js +40 -0
- package/lib/__tests__/SubNav.test.d.ts +1 -0
- package/lib/__tests__/SubNav.test.js +62 -0
- package/lib/__tests__/SubNavLink.test.d.ts +1 -0
- package/lib/__tests__/SubNavLink.test.js +49 -0
- package/lib/__tests__/TabNav.test.d.ts +1 -0
- package/lib/__tests__/TabNav.test.js +49 -0
- package/lib/__tests__/Text.test.d.ts +1 -0
- package/lib/__tests__/Text.test.js +105 -0
- package/lib/__tests__/TextInput.test.d.ts +1 -0
- package/lib/__tests__/TextInput.test.js +78 -0
- package/lib/__tests__/TextInputWithTokens.test.d.ts +1 -0
- package/lib/__tests__/TextInputWithTokens.test.js +581 -0
- package/lib/__tests__/ThemeProvider.test.d.ts +1 -0
- package/lib/__tests__/ThemeProvider.test.js +444 -0
- package/lib/__tests__/Timeline.test.d.ts +1 -0
- package/lib/__tests__/Timeline.test.js +75 -0
- package/lib/__tests__/Token.test.d.ts +1 -0
- package/lib/__tests__/Token.test.js +180 -0
- package/lib/__tests__/Tooltip.test.d.ts +1 -0
- package/lib/__tests__/Tooltip.test.js +69 -0
- package/lib/__tests__/Truncate.test.d.ts +1 -0
- package/lib/__tests__/Truncate.test.js +63 -0
- package/lib/__tests__/UnderlineNav.test.d.ts +1 -0
- package/lib/__tests__/UnderlineNav.test.js +72 -0
- package/lib/__tests__/UnderlineNavLink.test.d.ts +1 -0
- package/lib/__tests__/UnderlineNavLink.test.js +51 -0
- package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
- package/lib/__tests__/behaviors/anchoredPosition.test.js +390 -0
- package/lib/__tests__/behaviors/focusTrap.test.d.ts +1 -0
- package/lib/__tests__/behaviors/focusTrap.test.js +234 -0
- package/lib/__tests__/behaviors/focusZone.test.d.ts +1 -0
- package/lib/__tests__/behaviors/focusZone.test.js +570 -0
- package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
- package/lib/__tests__/behaviors/iterateFocusableElements.test.js +55 -0
- package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
- package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +226 -0
- package/lib/__tests__/filterObject.test.d.ts +1 -0
- package/lib/__tests__/filterObject.test.js +30 -0
- package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
- package/lib/__tests__/hooks/useAnchoredPosition.test.js +54 -0
- package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
- package/lib/__tests__/hooks/useOnEscapePress.test.js +32 -0
- package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
- package/lib/__tests__/hooks/useOnOutsideClick.test.js +87 -0
- package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
- package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +60 -0
- package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
- package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +45 -0
- package/lib/__tests__/theme.test.d.ts +1 -0
- package/lib/__tests__/theme.test.js +36 -0
- package/lib/__tests__/themeGet.test.d.ts +1 -0
- package/lib/__tests__/themeGet.test.js +25 -0
- package/lib/__tests__/useSafeTimeout.test.d.ts +1 -0
- package/lib/__tests__/useSafeTimeout.test.js +45 -0
- package/lib/stories/ActionList.stories.js +454 -0
- package/lib/stories/ActionMenu.stories.js +350 -0
- package/lib/stories/AnchoredOverlay.stories.js +127 -0
- package/lib/stories/Autocomplete.stories.js +619 -0
- package/lib/stories/AvatarStack.stories.js +49 -0
- package/lib/stories/Button.stories.js +125 -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/IssueLabelToken.stories.js +165 -0
- package/lib/stories/Overlay.stories.js +204 -0
- package/lib/stories/Portal.stories.js +104 -0
- package/lib/stories/ProfileToken.stories.js +162 -0
- package/lib/stories/SelectPanel.stories.js +399 -0
- package/lib/stories/TextInputWithTokens.stories.js +252 -0
- package/lib/stories/ThemeProvider.stories.js +102 -0
- package/lib/stories/Token.stories.js +159 -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/sx.d.ts +8 -2
- package/lib/theme.d.ts +78 -0
- package/lib/theme.js +3 -1
- package/lib/utils/types/KeyPaths.d.ts +3 -0
- package/lib/utils/types/KeyPaths.js +1 -0
- package/lib-esm/Autocomplete/Autocomplete.d.ts +4 -4
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +4 -4
- package/lib-esm/Button/Button.d.ts +5 -5
- package/lib-esm/Button/ButtonBase.d.ts +1 -1
- package/lib-esm/Button/ButtonClose.d.ts +3 -3
- package/lib-esm/Button/ButtonDanger.d.ts +5 -5
- package/lib-esm/Button/ButtonInvisible.d.ts +5 -5
- package/lib-esm/Button/ButtonOutline.d.ts +5 -5
- package/lib-esm/Button/ButtonPrimary.d.ts +5 -5
- package/lib-esm/CircleBadge.d.ts +2 -2
- package/lib-esm/CircleOcticon.d.ts +4 -4
- package/lib-esm/Dialog.d.ts +4 -4
- package/lib-esm/Dropdown.d.ts +16 -16
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +6 -6
- package/lib-esm/FilterList.d.ts +3 -3
- package/lib-esm/Flash.d.ts +1 -1
- package/lib-esm/Label.d.ts +1 -1
- package/lib-esm/Position.d.ts +4 -4
- package/lib-esm/ProgressBar.d.ts +1 -1
- package/lib-esm/SelectMenu/SelectMenu.d.ts +24 -24
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib-esm/TextInputWithTokens.d.ts +4 -4
- package/lib-esm/Timeline.d.ts +4 -4
- package/lib-esm/Token/AvatarToken.d.ts +1 -1
- package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
- package/lib-esm/Token/Token.d.ts +1 -1
- package/lib-esm/_TextInputWrapper.d.ts +1 -1
- package/lib-esm/__tests__/ActionList.test.d.ts +1 -0
- package/lib-esm/__tests__/ActionList.test.js +57 -0
- package/lib-esm/__tests__/ActionList.types.test.d.ts +6 -0
- package/lib-esm/__tests__/ActionList.types.test.js +45 -0
- package/lib-esm/__tests__/ActionMenu.test.d.ts +1 -0
- package/lib-esm/__tests__/ActionMenu.test.js +139 -0
- package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +1 -0
- package/lib-esm/__tests__/AnchoredOverlay.test.js +134 -0
- package/lib-esm/__tests__/Autocomplete.test.d.ts +1 -0
- package/lib-esm/__tests__/Autocomplete.test.js +494 -0
- package/lib-esm/__tests__/Avatar.test.d.ts +1 -0
- package/lib-esm/__tests__/Avatar.test.js +56 -0
- package/lib-esm/__tests__/AvatarStack.test.d.ts +1 -0
- package/lib-esm/__tests__/AvatarStack.test.js +58 -0
- package/lib-esm/__tests__/BorderBox.test.d.ts +1 -0
- package/lib-esm/__tests__/BorderBox.test.js +47 -0
- package/lib-esm/__tests__/Box.test.d.ts +1 -0
- package/lib-esm/__tests__/Box.test.js +67 -0
- package/lib-esm/__tests__/BranchName.test.d.ts +1 -0
- package/lib-esm/__tests__/BranchName.test.js +26 -0
- package/lib-esm/__tests__/Breadcrumbs.test.d.ts +1 -0
- package/lib-esm/__tests__/Breadcrumbs.test.js +27 -0
- package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +1 -0
- package/lib-esm/__tests__/BreadcrumbsItem.test.js +39 -0
- package/lib-esm/__tests__/Button.test.d.ts +1 -0
- package/lib-esm/__tests__/Button.test.js +133 -0
- package/lib-esm/__tests__/Caret.test.d.ts +1 -0
- package/lib-esm/__tests__/Caret.test.js +42 -0
- package/lib-esm/__tests__/CircleBadge.test.d.ts +1 -0
- package/lib-esm/__tests__/CircleBadge.test.js +70 -0
- package/lib-esm/__tests__/CircleOcticon.test.d.ts +1 -0
- package/lib-esm/__tests__/CircleOcticon.test.js +59 -0
- package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +1 -0
- package/lib-esm/__tests__/ConfirmationDialog.test.js +113 -0
- package/lib-esm/__tests__/CounterLabel.test.d.ts +1 -0
- package/lib-esm/__tests__/CounterLabel.test.js +47 -0
- package/lib-esm/__tests__/Details.test.d.ts +1 -0
- package/lib-esm/__tests__/Details.test.js +107 -0
- package/lib-esm/__tests__/Dialog.test.d.ts +1 -0
- package/lib-esm/__tests__/Dialog.test.js +171 -0
- package/lib-esm/__tests__/Dropdown.test.d.ts +1 -0
- package/lib-esm/__tests__/Dropdown.test.js +53 -0
- package/lib-esm/__tests__/DropdownMenu.test.d.ts +1 -0
- package/lib-esm/__tests__/DropdownMenu.test.js +137 -0
- package/lib-esm/__tests__/FilterList.test.d.ts +1 -0
- package/lib-esm/__tests__/FilterList.test.js +26 -0
- package/lib-esm/__tests__/FilterListItem.test.d.ts +1 -0
- package/lib-esm/__tests__/FilterListItem.test.js +36 -0
- package/lib-esm/__tests__/FilteredSearch.test.d.ts +1 -0
- package/lib-esm/__tests__/FilteredSearch.test.js +26 -0
- package/lib-esm/__tests__/Flash.test.d.ts +1 -0
- package/lib-esm/__tests__/Flash.test.js +51 -0
- package/lib-esm/__tests__/Flex.test.d.ts +1 -0
- package/lib-esm/__tests__/Flex.test.js +64 -0
- package/lib-esm/__tests__/FormGroup.test.d.ts +1 -0
- package/lib-esm/__tests__/FormGroup.test.js +44 -0
- package/lib-esm/__tests__/Grid.test.d.ts +1 -0
- package/lib-esm/__tests__/Grid.test.js +94 -0
- package/lib-esm/__tests__/Header.test.d.ts +1 -0
- package/lib-esm/__tests__/Header.test.js +48 -0
- package/lib-esm/__tests__/Heading.test.d.ts +1 -0
- package/lib-esm/__tests__/Heading.test.js +99 -0
- package/lib-esm/__tests__/KeyPaths.types.test.d.ts +10 -0
- package/lib-esm/__tests__/KeyPaths.types.test.js +3 -0
- package/lib-esm/__tests__/Label.test.d.ts +1 -0
- package/lib-esm/__tests__/Label.test.js +36 -0
- package/lib-esm/__tests__/LabelGroup.test.d.ts +1 -0
- package/lib-esm/__tests__/LabelGroup.test.js +26 -0
- package/lib-esm/__tests__/Link.test.d.ts +1 -0
- package/lib-esm/__tests__/Link.test.js +60 -0
- package/lib-esm/__tests__/Merge.types.test.d.ts +30 -0
- package/lib-esm/__tests__/Merge.types.test.js +14 -0
- package/lib-esm/__tests__/Overlay.test.d.ts +1 -0
- package/lib-esm/__tests__/Overlay.test.js +123 -0
- package/lib-esm/__tests__/Pagehead.test.d.ts +1 -0
- package/lib-esm/__tests__/Pagehead.test.js +26 -0
- package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +1 -0
- package/lib-esm/__tests__/Pagination/Pagination.test.js +35 -0
- package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
- package/lib-esm/__tests__/Pagination/PaginationModel.test.js +182 -0
- package/lib-esm/__tests__/PointerBox.test.d.ts +1 -0
- package/lib-esm/__tests__/PointerBox.test.js +36 -0
- package/lib-esm/__tests__/Popover.test.d.ts +1 -0
- package/lib-esm/__tests__/Popover.test.js +53 -0
- package/lib-esm/__tests__/Portal.test.d.ts +1 -0
- package/lib-esm/__tests__/Portal.test.js +104 -0
- package/lib-esm/__tests__/Position.test.d.ts +1 -0
- package/lib-esm/__tests__/Position.test.js +133 -0
- package/lib-esm/__tests__/ProgressBar.test.d.ts +1 -0
- package/lib-esm/__tests__/ProgressBar.test.js +58 -0
- package/lib-esm/__tests__/SelectMenu.test.d.ts +1 -0
- package/lib-esm/__tests__/SelectMenu.test.js +145 -0
- package/lib-esm/__tests__/SelectPanel.test.d.ts +1 -0
- package/lib-esm/__tests__/SelectPanel.test.js +65 -0
- package/lib-esm/__tests__/SideNav.test.d.ts +1 -0
- package/lib-esm/__tests__/SideNav.test.js +60 -0
- package/lib-esm/__tests__/Spinner.test.d.ts +1 -0
- package/lib-esm/__tests__/Spinner.test.js +43 -0
- package/lib-esm/__tests__/StateLabel.test.d.ts +1 -0
- package/lib-esm/__tests__/StateLabel.test.js +61 -0
- package/lib-esm/__tests__/StyledOcticon.test.d.ts +1 -0
- package/lib-esm/__tests__/StyledOcticon.test.js +29 -0
- package/lib-esm/__tests__/SubNav.test.d.ts +1 -0
- package/lib-esm/__tests__/SubNav.test.js +50 -0
- package/lib-esm/__tests__/SubNavLink.test.d.ts +1 -0
- package/lib-esm/__tests__/SubNavLink.test.js +39 -0
- package/lib-esm/__tests__/TabNav.test.d.ts +1 -0
- package/lib-esm/__tests__/TabNav.test.js +39 -0
- package/lib-esm/__tests__/Text.test.d.ts +1 -0
- package/lib-esm/__tests__/Text.test.js +93 -0
- package/lib-esm/__tests__/TextInput.test.d.ts +1 -0
- package/lib-esm/__tests__/TextInput.test.js +68 -0
- package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +1 -0
- package/lib-esm/__tests__/TextInputWithTokens.test.js +520 -0
- package/lib-esm/__tests__/ThemeProvider.test.d.ts +1 -0
- package/lib-esm/__tests__/ThemeProvider.test.js +408 -0
- package/lib-esm/__tests__/Timeline.test.d.ts +1 -0
- package/lib-esm/__tests__/Timeline.test.js +65 -0
- package/lib-esm/__tests__/Token.test.d.ts +1 -0
- package/lib-esm/__tests__/Token.test.js +166 -0
- package/lib-esm/__tests__/Tooltip.test.d.ts +1 -0
- package/lib-esm/__tests__/Tooltip.test.js +59 -0
- package/lib-esm/__tests__/Truncate.test.d.ts +1 -0
- package/lib-esm/__tests__/Truncate.test.js +53 -0
- package/lib-esm/__tests__/UnderlineNav.test.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNav.test.js +60 -0
- package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNavLink.test.js +41 -0
- package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +388 -0
- package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/focusTrap.test.js +227 -0
- package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/focusZone.test.js +487 -0
- package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +48 -0
- package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +224 -0
- package/lib-esm/__tests__/filterObject.test.d.ts +1 -0
- package/lib-esm/__tests__/filterObject.test.js +27 -0
- package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +46 -0
- package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +23 -0
- package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +68 -0
- package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +52 -0
- package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
- package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +36 -0
- package/lib-esm/__tests__/theme.test.d.ts +1 -0
- package/lib-esm/__tests__/theme.test.js +33 -0
- package/lib-esm/__tests__/themeGet.test.d.ts +1 -0
- package/lib-esm/__tests__/themeGet.test.js +22 -0
- package/lib-esm/__tests__/useSafeTimeout.test.d.ts +1 -0
- package/lib-esm/__tests__/useSafeTimeout.test.js +39 -0
- package/lib-esm/stories/ActionList.stories.js +395 -0
- package/lib-esm/stories/ActionMenu.stories.js +305 -0
- package/lib-esm/stories/AnchoredOverlay.stories.js +101 -0
- package/lib-esm/stories/Autocomplete.stories.js +560 -0
- package/lib-esm/stories/AvatarStack.stories.js +32 -0
- package/lib-esm/stories/Button.stories.js +86 -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/IssueLabelToken.stories.js +139 -0
- package/lib-esm/stories/Overlay.stories.js +173 -0
- package/lib-esm/stories/Portal.stories.js +68 -0
- package/lib-esm/stories/ProfileToken.stories.js +136 -0
- package/lib-esm/stories/SelectPanel.stories.js +334 -0
- package/lib-esm/stories/TextInputWithTokens.stories.js +210 -0
- package/lib-esm/stories/ThemeProvider.stories.js +83 -0
- package/lib-esm/stories/Token.stories.js +133 -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/sx.d.ts +8 -2
- package/lib-esm/theme.d.ts +78 -0
- package/lib-esm/theme.js +2 -1
- package/lib-esm/utils/types/KeyPaths.d.ts +3 -0
- package/lib-esm/utils/types/KeyPaths.js +1 -0
- package/migrating.md +250 -0
- package/now.json +17 -0
- package/package-lock.json +66357 -0
- package/package.json +2 -1
- 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 +496 -0
- package/src/ActionList/List.tsx +258 -0
- package/src/ActionList/index.ts +21 -0
- package/src/ActionMenu.tsx +106 -0
- package/src/AnchoredOverlay/AnchoredOverlay.tsx +191 -0
- package/src/AnchoredOverlay/index.ts +2 -0
- package/src/Autocomplete/Autocomplete.tsx +103 -0
- package/src/Autocomplete/AutocompleteContext.tsx +19 -0
- package/src/Autocomplete/AutocompleteInput.tsx +179 -0
- package/src/Autocomplete/AutocompleteMenu.tsx +341 -0
- package/src/Autocomplete/AutocompleteOverlay.tsx +68 -0
- package/src/Autocomplete/index.ts +2 -0
- package/src/Avatar.tsx +46 -0
- package/src/AvatarPair.tsx +35 -0
- package/src/AvatarStack.tsx +159 -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 +32 -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 +432 -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 +142 -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 +197 -0
- package/src/Pagehead.tsx +17 -0
- package/src/Pagination/Pagination.tsx +214 -0
- package/src/Pagination/index.ts +4 -0
- package/src/Pagination/model.tsx +187 -0
- package/src/PointerBox.tsx +31 -0
- package/src/Popover.tsx +236 -0
- package/src/Portal/Portal.tsx +96 -0
- package/src/Portal/index.ts +5 -0
- package/src/Position.tsx +63 -0
- package/src/ProgressBar.tsx +52 -0
- package/src/SelectMenu/SelectMenu.tsx +125 -0
- package/src/SelectMenu/SelectMenuContext.tsx +9 -0
- package/src/SelectMenu/SelectMenuDivider.tsx +25 -0
- package/src/SelectMenu/SelectMenuFilter.tsx +51 -0
- package/src/SelectMenu/SelectMenuFooter.tsx +28 -0
- package/src/SelectMenu/SelectMenuHeader.tsx +50 -0
- package/src/SelectMenu/SelectMenuItem.tsx +137 -0
- package/src/SelectMenu/SelectMenuList.tsx +42 -0
- package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +24 -0
- package/src/SelectMenu/SelectMenuModal.tsx +121 -0
- package/src/SelectMenu/SelectMenuTab.tsx +88 -0
- package/src/SelectMenu/SelectMenuTabPanel.tsx +30 -0
- package/src/SelectMenu/SelectMenuTabs.tsx +44 -0
- package/src/SelectMenu/hooks/useKeyboardNav.js +90 -0
- package/src/SelectMenu/index.ts +15 -0
- package/src/SelectPanel/SelectPanel.tsx +173 -0
- package/src/SelectPanel/index.ts +2 -0
- package/src/SideNav.tsx +193 -0
- package/src/Spinner.tsx +59 -0
- package/src/StateLabel.tsx +102 -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 +68 -0
- package/src/TextInputWithTokens.tsx +351 -0
- package/src/ThemeProvider.tsx +176 -0
- package/src/Timeline.tsx +141 -0
- package/src/Token/AvatarToken.tsx +54 -0
- package/src/Token/IssueLabelToken.tsx +150 -0
- package/src/Token/Token.tsx +126 -0
- package/src/Token/TokenBase.tsx +129 -0
- package/src/Token/_RemoveTokenButton.tsx +111 -0
- package/src/Token/_TokenTextContainer.tsx +47 -0
- package/src/Token/index.ts +3 -0
- package/src/Tooltip.tsx +263 -0
- package/src/Truncate.tsx +36 -0
- package/src/UnderlineNav.tsx +110 -0
- package/src/_TextInputWrapper.tsx +106 -0
- package/src/_UnstyledTextInput.tsx +19 -0
- package/src/__tests__/.eslintrc.json +11 -0
- package/src/__tests__/ActionList.test.tsx +53 -0
- package/src/__tests__/ActionList.types.test.tsx +51 -0
- package/src/__tests__/ActionMenu.test.tsx +136 -0
- package/src/__tests__/AnchoredOverlay.test.tsx +150 -0
- package/src/__tests__/Autocomplete.test.tsx +444 -0
- package/src/__tests__/Avatar.test.tsx +44 -0
- package/src/__tests__/AvatarStack.test.tsx +48 -0
- package/src/__tests__/BorderBox.test.tsx +43 -0
- package/src/__tests__/Box.test.tsx +42 -0
- package/src/__tests__/BranchName.test.tsx +26 -0
- package/src/__tests__/Breadcrumbs.test.tsx +27 -0
- package/src/__tests__/BreadcrumbsItem.test.tsx +31 -0
- package/src/__tests__/Button.test.tsx +128 -0
- package/src/__tests__/Caret.test.tsx +36 -0
- package/src/__tests__/CircleBadge.test.tsx +66 -0
- package/src/__tests__/CircleOcticon.test.tsx +50 -0
- package/src/__tests__/ConfirmationDialog.test.tsx +120 -0
- package/src/__tests__/CounterLabel.test.tsx +50 -0
- package/src/__tests__/Details.test.tsx +115 -0
- package/src/__tests__/Dialog.test.tsx +155 -0
- package/src/__tests__/Dropdown.test.tsx +53 -0
- package/src/__tests__/DropdownMenu.test.tsx +136 -0
- package/src/__tests__/FilterList.test.tsx +26 -0
- package/src/__tests__/FilterListItem.test.tsx +31 -0
- package/src/__tests__/FilteredSearch.test.tsx +26 -0
- package/src/__tests__/Flash.test.tsx +45 -0
- package/src/__tests__/Flex.test.tsx +58 -0
- package/src/__tests__/FormGroup.test.tsx +38 -0
- package/src/__tests__/Grid.test.tsx +82 -0
- package/src/__tests__/Header.test.tsx +49 -0
- package/src/__tests__/Heading.test.tsx +91 -0
- package/src/__tests__/KeyPaths.types.test.ts +13 -0
- package/src/__tests__/Label.test.tsx +34 -0
- package/src/__tests__/LabelGroup.test.tsx +30 -0
- package/src/__tests__/Link.test.tsx +47 -0
- package/src/__tests__/Merge.types.test.ts +39 -0
- package/src/__tests__/Overlay.test.tsx +103 -0
- package/src/__tests__/Pagehead.test.tsx +23 -0
- package/src/__tests__/Pagination/Pagination.test.tsx +30 -0
- package/src/__tests__/Pagination/PaginationModel.test.tsx +133 -0
- package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +184 -0
- package/src/__tests__/PointerBox.test.tsx +34 -0
- package/src/__tests__/Popover.test.tsx +68 -0
- package/src/__tests__/Portal.test.tsx +103 -0
- package/src/__tests__/Position.test.tsx +117 -0
- package/src/__tests__/ProgressBar.test.tsx +40 -0
- package/src/__tests__/SelectMenu.test.tsx +142 -0
- package/src/__tests__/SelectPanel.test.tsx +63 -0
- package/src/__tests__/SideNav.test.tsx +62 -0
- package/src/__tests__/Spinner.test.tsx +42 -0
- package/src/__tests__/StateLabel.test.tsx +48 -0
- package/src/__tests__/StyledOcticon.test.tsx +26 -0
- package/src/__tests__/SubNav.test.tsx +50 -0
- package/src/__tests__/SubNavLink.test.tsx +31 -0
- package/src/__tests__/TabNav.test.tsx +32 -0
- package/src/__tests__/Text.test.tsx +78 -0
- package/src/__tests__/TextInput.test.tsx +49 -0
- package/src/__tests__/TextInputWithTokens.test.tsx +432 -0
- package/src/__tests__/ThemeProvider.test.tsx +441 -0
- package/src/__tests__/Timeline.test.tsx +58 -0
- package/src/__tests__/Token.test.tsx +118 -0
- package/src/__tests__/Tooltip.test.tsx +52 -0
- package/src/__tests__/Truncate.test.tsx +43 -0
- package/src/__tests__/UnderlineNav.test.tsx +58 -0
- package/src/__tests__/UnderlineNavLink.test.tsx +31 -0
- package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +223 -0
- package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +80 -0
- package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +332 -0
- package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +3421 -0
- package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +19 -0
- package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +377 -0
- package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +14 -0
- package/src/__tests__/__snapshots__/Box.test.tsx.snap +201 -0
- package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +17 -0
- package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +29 -0
- package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +79 -0
- package/src/__tests__/__snapshots__/Button.test.tsx.snap +840 -0
- package/src/__tests__/__snapshots__/Caret.test.tsx.snap +373 -0
- package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +141 -0
- package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +64 -0
- package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +89 -0
- package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +22 -0
- package/src/__tests__/__snapshots__/Details.test.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +200 -0
- package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +249 -0
- package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +106 -0
- package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +13 -0
- package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +80 -0
- package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +32 -0
- package/src/__tests__/__snapshots__/Flash.test.tsx.snap +32 -0
- package/src/__tests__/__snapshots__/Flex.test.tsx.snap +130 -0
- package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +25 -0
- package/src/__tests__/__snapshots__/Grid.test.tsx.snap +178 -0
- package/src/__tests__/__snapshots__/Header.test.tsx.snap +79 -0
- package/src/__tests__/__snapshots__/Heading.test.tsx.snap +13 -0
- package/src/__tests__/__snapshots__/Label.test.tsx.snap +74 -0
- package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Link.test.tsx.snap +213 -0
- package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +174 -0
- package/src/__tests__/__snapshots__/Popover.test.tsx.snap +4687 -0
- package/src/__tests__/__snapshots__/Position.test.tsx.snap +44 -0
- package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +53 -0
- package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +469 -0
- package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +123 -0
- package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +143 -0
- package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +33 -0
- package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +388 -0
- package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +25 -0
- package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +44 -0
- package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +199 -0
- package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +58 -0
- package/src/__tests__/__snapshots__/Text.test.tsx.snap +7 -0
- package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +446 -0
- package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +5979 -0
- package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +159 -0
- package/src/__tests__/__snapshots__/Token.test.tsx.snap +3794 -0
- package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +227 -0
- package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +17 -0
- package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +59 -0
- package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +130 -0
- package/src/__tests__/behaviors/anchoredPosition.test.ts +295 -0
- package/src/__tests__/behaviors/focusTrap.test.tsx +236 -0
- package/src/__tests__/behaviors/focusZone.test.tsx +549 -0
- package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +61 -0
- package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +195 -0
- package/src/__tests__/filterObject.test.ts +54 -0
- package/src/__tests__/hooks/useAnchoredPosition.test.tsx +31 -0
- package/src/__tests__/hooks/useOnEscapePress.test.tsx +16 -0
- package/src/__tests__/hooks/useOnOutsideClick.test.tsx +48 -0
- package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +48 -0
- package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +39 -0
- package/src/__tests__/theme.test.ts +41 -0
- package/src/__tests__/themeGet.test.ts +15 -0
- package/src/__tests__/useSafeTimeout.test.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/behaviors/scrollIntoViewingArea.ts +27 -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 +32 -0
- package/src/hooks/useOverlay.tsx +34 -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 +170 -0
- package/src/polyfills/eventListenerSignal.ts +66 -0
- package/src/stories/ActionList.stories.tsx +436 -0
- package/src/stories/ActionMenu.stories.tsx +334 -0
- package/src/stories/AnchoredOverlay.stories.tsx +117 -0
- package/src/stories/Autocomplete.stories.tsx +655 -0
- package/src/stories/AvatarStack.stories.tsx +37 -0
- package/src/stories/Button.stories.tsx +92 -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/IssueLabelToken.stories.tsx +138 -0
- package/src/stories/Overlay.stories.tsx +213 -0
- package/src/stories/Portal.stories.tsx +109 -0
- package/src/stories/ProfileToken.stories.tsx +129 -0
- package/src/stories/SelectPanel.stories.tsx +353 -0
- package/src/stories/TextInputWithTokens.stories.tsx +155 -0
- package/src/stories/ThemeProvider.stories.tsx +104 -0
- package/src/stories/Token.stories.tsx +126 -0
- package/src/stories/useAnchoredPosition.stories.tsx +332 -0
- package/src/stories/useFocusTrap.stories.tsx +400 -0
- package/src/stories/useFocusZone.stories.tsx +663 -0
- package/src/sx.ts +21 -0
- package/src/theme-preval.js +79 -0
- package/src/theme.ts +89 -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/AriaRole.ts +71 -0
- package/src/utils/types/ComponentProps.ts +13 -0
- package/src/utils/types/Flatten.ts +4 -0
- package/src/utils/types/KeyPaths.ts +4 -0
- package/src/utils/types/MandateProps.ts +19 -0
- package/src/utils/types/Merge.ts +20 -0
- package/src/utils/types/index.ts +5 -0
- package/src/utils/uniqueId.ts +6 -0
- package/src/utils/userAgent.ts +7 -0
- package/stats.html +3279 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.json +20 -0
@@ -0,0 +1,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,381 @@
|
|
1
|
+
---
|
2
|
+
title: Token
|
3
|
+
status: Alpha
|
4
|
+
source: https://github.com/primer/react/tree/main/src/Token
|
5
|
+
---
|
6
|
+
|
7
|
+
import {Props} from '../src/props'
|
8
|
+
import {AvatarToken, IssueLabelToken, Token} from '@primer/components'
|
9
|
+
|
10
|
+
A Token represents a piece of data. They are typically used to show a collection of related attributes.
|
11
|
+
|
12
|
+
The default `Token` can be used for most cases, but specialized token components are provided for specific use cases (see below for more info).
|
13
|
+
|
14
|
+
All types of tokens may have the same interactive qualities as links or buttons. They also have a sense of being "selected" and ready for user interaction such as being removed from a collection.
|
15
|
+
|
16
|
+
## Basic Example
|
17
|
+
|
18
|
+
```jsx live
|
19
|
+
<>
|
20
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
21
|
+
Token
|
22
|
+
</Text>
|
23
|
+
<Token text="Default Token" />
|
24
|
+
</>
|
25
|
+
```
|
26
|
+
|
27
|
+
### Interactive tokens
|
28
|
+
|
29
|
+
If any token is interactive (it is a link or a button), it will become focusable, and react to being hovered or focused on.
|
30
|
+
|
31
|
+
If a token is interactive _and_ has a remove button (appears when passing `onRemove`), the remove button should not get focus. To invoke the `onRemove` callback without using the cursor, press 'Backspace' when the token is focused.
|
32
|
+
|
33
|
+
These rules apply to all token components mentioned in this document.
|
34
|
+
|
35
|
+
#### Example: Interactive tokens with and without an `onRemove` prop
|
36
|
+
|
37
|
+
```jsx live
|
38
|
+
<Box
|
39
|
+
display="flex"
|
40
|
+
sx={{
|
41
|
+
alignItems: 'start',
|
42
|
+
flexDirection: 'column',
|
43
|
+
gap: 6
|
44
|
+
}}
|
45
|
+
>
|
46
|
+
<div>
|
47
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
48
|
+
Interactive
|
49
|
+
</Text>
|
50
|
+
<Box
|
51
|
+
display="flex"
|
52
|
+
sx={{
|
53
|
+
alignItems: 'start',
|
54
|
+
gap: 2
|
55
|
+
}}
|
56
|
+
>
|
57
|
+
<Token as="a" href="http://google.com/" text="Link" />
|
58
|
+
<Token as="button" onClick={() => console.log('clicked')} text="Button" />
|
59
|
+
<Token as="span" tabIndex={0} onFocus={() => console.log('focused')} text="Focusable Span" />
|
60
|
+
</Box>
|
61
|
+
</div>
|
62
|
+
<div>
|
63
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
64
|
+
Interactive with `onRemove` passed
|
65
|
+
</Text>
|
66
|
+
<Box
|
67
|
+
display="flex"
|
68
|
+
sx={{
|
69
|
+
alignItems: 'start',
|
70
|
+
gap: 2
|
71
|
+
}}
|
72
|
+
>
|
73
|
+
<Token
|
74
|
+
as="a"
|
75
|
+
href="http://google.com/"
|
76
|
+
text="Link"
|
77
|
+
onRemove={() => {
|
78
|
+
console.log('remove me')
|
79
|
+
}}
|
80
|
+
/>
|
81
|
+
<Token
|
82
|
+
as="button"
|
83
|
+
onClick={() => console.log('clicked')}
|
84
|
+
text="Button"
|
85
|
+
onRemove={() => {
|
86
|
+
console.log('remove me')
|
87
|
+
}}
|
88
|
+
/>
|
89
|
+
<Token
|
90
|
+
as="span"
|
91
|
+
tabIndex={0}
|
92
|
+
onFocus={() => console.log('focused')}
|
93
|
+
text="Focusable Span"
|
94
|
+
onRemove={() => {
|
95
|
+
console.log('remove me')
|
96
|
+
}}
|
97
|
+
/>
|
98
|
+
</Box>
|
99
|
+
</div>
|
100
|
+
</Box>
|
101
|
+
```
|
102
|
+
|
103
|
+
## Token
|
104
|
+
|
105
|
+
The default `Token` component
|
106
|
+
|
107
|
+
### Component Props
|
108
|
+
|
109
|
+
<Props of={Token} />
|
110
|
+
|
111
|
+
### Example
|
112
|
+
|
113
|
+
```jsx live
|
114
|
+
<Box
|
115
|
+
display="flex"
|
116
|
+
sx={{
|
117
|
+
alignItems: 'start',
|
118
|
+
flexDirection: 'column',
|
119
|
+
gap: 6
|
120
|
+
}}
|
121
|
+
>
|
122
|
+
<div>
|
123
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
124
|
+
Resting
|
125
|
+
</Text>
|
126
|
+
<Token text="Default Token" />
|
127
|
+
</div>
|
128
|
+
|
129
|
+
<div>
|
130
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
131
|
+
isSelected
|
132
|
+
</Text>
|
133
|
+
<Token text="Default Token" isSelected />
|
134
|
+
</div>
|
135
|
+
|
136
|
+
<div>
|
137
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
138
|
+
With `leadingVisual` passed
|
139
|
+
</Text>
|
140
|
+
<Token text="Default Token" leadingVisual={() => <span>✨</span>} />
|
141
|
+
</div>
|
142
|
+
|
143
|
+
<div>
|
144
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
145
|
+
With `onRemove` passed
|
146
|
+
</Text>
|
147
|
+
<Token
|
148
|
+
text="Default Token"
|
149
|
+
onRemove={() => {
|
150
|
+
console.log('remove me')
|
151
|
+
}}
|
152
|
+
/>
|
153
|
+
</div>
|
154
|
+
|
155
|
+
<div>
|
156
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
157
|
+
Size options
|
158
|
+
</Text>
|
159
|
+
<Box
|
160
|
+
display="flex"
|
161
|
+
sx={{
|
162
|
+
alignItems: 'start',
|
163
|
+
gap: 2
|
164
|
+
}}
|
165
|
+
>
|
166
|
+
<Token
|
167
|
+
size="small"
|
168
|
+
text="'small' Token"
|
169
|
+
onRemove={() => {
|
170
|
+
console.log('remove me')
|
171
|
+
}}
|
172
|
+
/>
|
173
|
+
<Token
|
174
|
+
size="medium"
|
175
|
+
text="'medium' Token"
|
176
|
+
onRemove={() => {
|
177
|
+
console.log('remove me')
|
178
|
+
}}
|
179
|
+
/>
|
180
|
+
<Token
|
181
|
+
size="large"
|
182
|
+
text="'large' Token (default)"
|
183
|
+
onRemove={() => {
|
184
|
+
console.log('remove me')
|
185
|
+
}}
|
186
|
+
/>
|
187
|
+
<Token
|
188
|
+
size="extralarge"
|
189
|
+
text="'extralarge' Token"
|
190
|
+
onRemove={() => {
|
191
|
+
console.log('remove me')
|
192
|
+
}}
|
193
|
+
/>
|
194
|
+
</Box>
|
195
|
+
</div>
|
196
|
+
</Box>
|
197
|
+
```
|
198
|
+
|
199
|
+
## IssueLabelToken
|
200
|
+
|
201
|
+
Tokens that represent Issue labels should use the `IssueLabelToken` component.
|
202
|
+
|
203
|
+
### Component Props
|
204
|
+
|
205
|
+
<Props of={IssueLabelToken} />
|
206
|
+
|
207
|
+
```jsx live
|
208
|
+
<Box
|
209
|
+
display="flex"
|
210
|
+
sx={{
|
211
|
+
alignItems: 'start',
|
212
|
+
flexDirection: 'column',
|
213
|
+
gap: 6
|
214
|
+
}}
|
215
|
+
>
|
216
|
+
<div>
|
217
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
218
|
+
Resting
|
219
|
+
</Text>
|
220
|
+
<IssueLabelToken text="good first issue" fillColor="#0366d6" />
|
221
|
+
</div>
|
222
|
+
|
223
|
+
<div>
|
224
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
225
|
+
isSelected
|
226
|
+
</Text>
|
227
|
+
<IssueLabelToken text="good first issue" fillColor="#0366d6" isSelected />
|
228
|
+
</div>
|
229
|
+
|
230
|
+
<div>
|
231
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
232
|
+
With `onRemove` passed
|
233
|
+
</Text>
|
234
|
+
<IssueLabelToken
|
235
|
+
text="good first issue"
|
236
|
+
fillColor="#0366d6"
|
237
|
+
onRemove={() => {
|
238
|
+
console.log('remove me')
|
239
|
+
}}
|
240
|
+
/>
|
241
|
+
</div>
|
242
|
+
|
243
|
+
<div>
|
244
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
245
|
+
Size options
|
246
|
+
</Text>
|
247
|
+
<Box
|
248
|
+
display="flex"
|
249
|
+
sx={{
|
250
|
+
alignItems: 'start',
|
251
|
+
gap: 2
|
252
|
+
}}
|
253
|
+
>
|
254
|
+
<IssueLabelToken
|
255
|
+
fillColor="#0366d6"
|
256
|
+
size="small"
|
257
|
+
text="'small' Token"
|
258
|
+
onRemove={() => {
|
259
|
+
console.log('remove me')
|
260
|
+
}}
|
261
|
+
/>
|
262
|
+
<IssueLabelToken
|
263
|
+
fillColor="#0366d6"
|
264
|
+
size="medium"
|
265
|
+
text="'medium' Token"
|
266
|
+
onRemove={() => {
|
267
|
+
console.log('remove me')
|
268
|
+
}}
|
269
|
+
/>
|
270
|
+
<IssueLabelToken
|
271
|
+
fillColor="#0366d6"
|
272
|
+
size="large"
|
273
|
+
text="'large' Token (default)"
|
274
|
+
onRemove={() => {
|
275
|
+
console.log('remove me')
|
276
|
+
}}
|
277
|
+
/>
|
278
|
+
<IssueLabelToken
|
279
|
+
fillColor="#0366d6"
|
280
|
+
size="extralarge"
|
281
|
+
text="'extralarge' Token"
|
282
|
+
onRemove={() => {
|
283
|
+
console.log('remove me')
|
284
|
+
}}
|
285
|
+
/>
|
286
|
+
</Box>
|
287
|
+
</div>
|
288
|
+
</Box>
|
289
|
+
```
|
290
|
+
|
291
|
+
## AvatarToken
|
292
|
+
|
293
|
+
Tokens that represent GitHub users should use the `AvatarToken` component.
|
294
|
+
|
295
|
+
### Component Props
|
296
|
+
|
297
|
+
<Props of={AvatarToken} />
|
298
|
+
|
299
|
+
```jsx live
|
300
|
+
<Box
|
301
|
+
display="flex"
|
302
|
+
sx={{
|
303
|
+
alignItems: 'start',
|
304
|
+
flexDirection: 'column',
|
305
|
+
gap: 6
|
306
|
+
}}
|
307
|
+
>
|
308
|
+
<div>
|
309
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
310
|
+
Resting
|
311
|
+
</Text>
|
312
|
+
<AvatarToken avatarSrc="https://avatars.githubusercontent.com/mperrotti" text="Default Token" />
|
313
|
+
</div>
|
314
|
+
|
315
|
+
<div>
|
316
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
317
|
+
isSelected
|
318
|
+
</Text>
|
319
|
+
<AvatarToken avatarSrc="https://avatars.githubusercontent.com/mperrotti" text="Default Token" isSelected />
|
320
|
+
</div>
|
321
|
+
|
322
|
+
<div>
|
323
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
324
|
+
With `onRemove` passed
|
325
|
+
</Text>
|
326
|
+
<AvatarToken
|
327
|
+
avatarSrc="https://avatars.githubusercontent.com/mperrotti"
|
328
|
+
text="Default Token"
|
329
|
+
onRemove={() => {
|
330
|
+
console.log('remove me')
|
331
|
+
}}
|
332
|
+
/>
|
333
|
+
</div>
|
334
|
+
|
335
|
+
<div>
|
336
|
+
<Text fontSize={0} display="block" color="fg.subtle">
|
337
|
+
Size options
|
338
|
+
</Text>
|
339
|
+
<Box
|
340
|
+
display="flex"
|
341
|
+
sx={{
|
342
|
+
alignItems: 'start',
|
343
|
+
gap: 2
|
344
|
+
}}
|
345
|
+
>
|
346
|
+
<AvatarToken
|
347
|
+
avatarSrc="https://avatars.githubusercontent.com/mperrotti"
|
348
|
+
size="small"
|
349
|
+
text="'small' Token"
|
350
|
+
onRemove={() => {
|
351
|
+
console.log('remove me')
|
352
|
+
}}
|
353
|
+
/>
|
354
|
+
<AvatarToken
|
355
|
+
avatarSrc="https://avatars.githubusercontent.com/mperrotti"
|
356
|
+
size="medium"
|
357
|
+
text="'medium' Token"
|
358
|
+
onRemove={() => {
|
359
|
+
console.log('remove me')
|
360
|
+
}}
|
361
|
+
/>
|
362
|
+
<AvatarToken
|
363
|
+
avatarSrc="https://avatars.githubusercontent.com/mperrotti"
|
364
|
+
size="large"
|
365
|
+
text="'large' Token (default)"
|
366
|
+
onRemove={() => {
|
367
|
+
console.log('remove me')
|
368
|
+
}}
|
369
|
+
/>
|
370
|
+
<AvatarToken
|
371
|
+
avatarSrc="https://avatars.githubusercontent.com/mperrotti"
|
372
|
+
size="extralarge"
|
373
|
+
text="'extralarge' Token"
|
374
|
+
onRemove={() => {
|
375
|
+
console.log('remove me')
|
376
|
+
}}
|
377
|
+
/>
|
378
|
+
</Box>
|
379
|
+
</div>
|
380
|
+
</Box>
|
381
|
+
```
|
@@ -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 |
|