@primer/components 32.1.0 → 33.0.0-rc.9f3670b7
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 +22 -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 +230 -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 +106 -109
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +106 -109
- 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 +53 -0
- package/docs/content/AvatarStack.mdx +57 -0
- package/docs/content/BorderBox.md +46 -0
- package/docs/content/Box.mdx +96 -0
- package/docs/content/BranchName.md +39 -0
- package/docs/content/Breadcrumbs.md +68 -0
- package/docs/content/Buttons.md +47 -0
- package/docs/content/Checkbox.md +118 -0
- package/docs/content/CircleBadge.md +36 -0
- package/docs/content/CircleOcticon.md +19 -0
- package/docs/content/CounterLabel.md +22 -0
- package/docs/content/Details.md +102 -0
- package/docs/content/Dialog.md +106 -0
- package/docs/content/Dialog2.mdx +181 -0
- package/docs/content/Dropdown.md +66 -0
- package/docs/content/DropdownMenu.mdx +50 -0
- package/docs/content/FilterList.md +38 -0
- package/docs/content/FilteredSearch.md +33 -0
- package/docs/content/Flash.md +36 -0
- package/docs/content/Flex.md +58 -0
- package/docs/content/FormGroup.md +39 -0
- package/docs/content/Grid.md +59 -0
- package/docs/content/Header.md +78 -0
- package/docs/content/Heading.md +21 -0
- package/docs/content/Label.md +49 -0
- package/docs/content/LabelGroup.md +22 -0
- package/docs/content/Link.md +29 -0
- package/docs/content/Overlay.mdx +86 -0
- package/docs/content/Pagehead.md +19 -0
- package/docs/content/Pagination.md +179 -0
- package/docs/content/PointerBox.md +82 -0
- package/docs/content/Popover.md +130 -0
- package/docs/content/Portal.mdx +79 -0
- package/docs/content/Position.md +93 -0
- package/docs/content/ProgressBar.mdx +31 -0
- package/docs/content/SelectMenu.md +372 -0
- package/docs/content/SelectPanel.mdx +67 -0
- package/docs/content/SideNav.md +172 -0
- package/docs/content/Spinner.mdx +32 -0
- package/docs/content/StateLabel.md +28 -0
- package/docs/content/StyledOcticon.md +27 -0
- package/docs/content/SubNav.md +101 -0
- package/docs/content/TabNav.md +43 -0
- package/docs/content/Text.md +32 -0
- package/docs/content/TextInput.md +42 -0
- package/docs/content/TextInputWithTokens.mdx +211 -0
- package/docs/content/Timeline.md +149 -0
- package/docs/content/Token.mdx +381 -0
- package/docs/content/Tooltip.md +33 -0
- package/docs/content/Truncate.md +56 -0
- package/docs/content/UnderlineNav.md +46 -0
- package/docs/content/anchoredPosition.mdx +163 -0
- package/docs/content/core-concepts.md +70 -0
- package/docs/content/drafts/ActionList2.mdx +375 -0
- package/docs/content/drafts/ActionMenu2.mdx +251 -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/status.mdx +10 -0
- package/docs/content/system-props.mdx +37 -0
- package/docs/content/theme-reference.md +16 -0
- package/docs/content/theming.md +272 -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 +20867 -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-preview-wrapper.js +41 -0
- package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +81 -0
- package/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js +9 -0
- package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +137 -0
- package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +1411 -0
- package/docs/src/component-checklist.js +81 -0
- package/docs/src/component-statuses.js +74 -0
- package/docs/src/props.js +77 -0
- package/jest.config.js +13 -0
- package/lib/ActionList/Item.js +3 -3
- package/lib/ActionList2/Divider.d.ts +3 -2
- package/lib/ActionList2/Divider.js +10 -5
- package/lib/ActionList2/Item.js +24 -6
- package/lib/ActionList2/List.js +10 -1
- package/lib/ActionList2/MenuContext.d.ts +10 -0
- package/lib/ActionList2/MenuContext.js +15 -0
- package/lib/ActionList2/Selection.js +14 -1
- package/lib/ActionList2/index.d.ts +1 -2
- package/lib/ActionMenu2.d.ts +310 -0
- package/lib/ActionMenu2.js +91 -0
- package/lib/Autocomplete/Autocomplete.d.ts +1 -0
- package/lib/Autocomplete/AutocompleteInput.d.ts +1 -0
- package/lib/Avatar.d.ts +1 -2
- package/lib/Avatar.js +1 -1
- package/lib/BranchName.d.ts +1 -2
- package/lib/BranchName.js +1 -1
- package/lib/Button/Button.d.ts +1 -0
- package/lib/Button/ButtonClose.d.ts +2 -1
- package/lib/Button/ButtonDanger.d.ts +1 -0
- package/lib/Button/ButtonInvisible.d.ts +1 -0
- package/lib/Button/ButtonOutline.d.ts +1 -0
- package/lib/Button/ButtonPrimary.d.ts +1 -0
- package/lib/CircleOcticon.d.ts +1 -0
- package/lib/Details.d.ts +1 -2
- package/lib/Details.js +1 -3
- package/lib/Dialog.d.ts +3 -2
- package/lib/Dropdown.d.ts +6 -66
- package/lib/DropdownMenu/DropdownButton.d.ts +2 -1
- package/lib/FilterList.d.ts +1 -0
- package/lib/Heading.d.ts +1 -2
- package/lib/Heading.js +1 -6
- package/lib/Position.d.ts +4 -4
- package/lib/ProgressBar.d.ts +16 -11
- package/lib/ProgressBar.js +6 -10
- package/lib/SelectMenu/SelectMenu.d.ts +10 -4
- package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib/Spinner.d.ts +1 -2
- package/lib/Spinner.js +1 -3
- package/lib/TextInputWithTokens.d.ts +1 -0
- 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/__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__/ActionList2.test.d.ts +2 -0
- package/lib/__tests__/ActionList2.test.js +170 -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 +162 -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 +69 -0
- package/lib/__tests__/Avatar.types.test.d.ts +3 -0
- package/lib/__tests__/Avatar.types.test.js +31 -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__/BranchName.types.test.d.ts +3 -0
- package/lib/__tests__/BranchName.types.test.js +28 -0
- package/lib/__tests__/Breadcrumbs.test.d.ts +1 -0
- package/lib/__tests__/Breadcrumbs.test.js +40 -0
- package/lib/__tests__/Breadcrumbs.types.test.d.ts +3 -0
- package/lib/__tests__/Breadcrumbs.types.test.js +25 -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 +147 -0
- package/lib/__tests__/Caret.test.d.ts +1 -0
- package/lib/__tests__/Caret.test.js +52 -0
- package/lib/__tests__/Checkbox.test.d.ts +2 -0
- package/lib/__tests__/Checkbox.test.js +189 -0
- package/lib/__tests__/CircleBadge.test.d.ts +1 -0
- package/lib/__tests__/CircleBadge.test.js +83 -0
- package/lib/__tests__/CircleBadge.types.test.d.ts +3 -0
- package/lib/__tests__/CircleBadge.types.test.js +28 -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__/CounterLabel.types.test.d.ts +3 -0
- package/lib/__tests__/CounterLabel.types.test.js +28 -0
- package/lib/__tests__/Details.test.d.ts +1 -0
- package/lib/__tests__/Details.test.js +117 -0
- package/lib/__tests__/Details.types.test.d.ts +3 -0
- package/lib/__tests__/Details.types.test.js +28 -0
- package/lib/__tests__/Dialog.test.d.ts +1 -0
- package/lib/__tests__/Dialog.test.js +184 -0
- package/lib/__tests__/Dialog.types.test.d.ts +3 -0
- package/lib/__tests__/Dialog.types.test.js +28 -0
- package/lib/__tests__/Dialog2.types.test.d.ts +3 -0
- package/lib/__tests__/Dialog2.types.test.js +31 -0
- package/lib/__tests__/Dropdown.test.d.ts +1 -0
- package/lib/__tests__/Dropdown.test.js +63 -0
- package/lib/__tests__/Dropdown.types.test.d.ts +3 -0
- package/lib/__tests__/Dropdown.types.test.js +31 -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__/FilterList.types.test.d.ts +3 -0
- package/lib/__tests__/FilterList.types.test.js +27 -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__/FilteredSearch.types.test.d.ts +3 -0
- package/lib/__tests__/FilteredSearch.types.test.js +28 -0
- package/lib/__tests__/Flash.test.d.ts +1 -0
- package/lib/__tests__/Flash.test.js +62 -0
- package/lib/__tests__/Flash.types.test.d.ts +3 -0
- package/lib/__tests__/Flash.types.test.js +28 -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__/FormGroup.types.test.d.ts +3 -0
- package/lib/__tests__/FormGroup.types.test.js +28 -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__/Header.types.test.d.ts +3 -0
- package/lib/__tests__/Header.types.test.js +29 -0
- package/lib/__tests__/Heading.test.d.ts +1 -0
- package/lib/__tests__/Heading.test.js +142 -0
- package/lib/__tests__/Heading.types.test.d.ts +3 -0
- package/lib/__tests__/Heading.types.test.js +28 -0
- package/lib/__tests__/KeyPaths.types.test.d.ts +11 -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__/Label.types.test.d.ts +3 -0
- package/lib/__tests__/Label.types.test.js +28 -0
- package/lib/__tests__/LabelGroup.test.d.ts +1 -0
- package/lib/__tests__/LabelGroup.test.js +38 -0
- package/lib/__tests__/LabelGroup.types.test.d.ts +3 -0
- package/lib/__tests__/LabelGroup.types.test.js +28 -0
- package/lib/__tests__/Link.test.d.ts +1 -0
- package/lib/__tests__/Link.test.js +76 -0
- package/lib/__tests__/Link.types.test.d.ts +3 -0
- package/lib/__tests__/Link.types.test.js +28 -0
- package/lib/__tests__/Merge.types.test.d.ts +30 -0
- package/lib/__tests__/Merge.types.test.js +27 -0
- package/lib/__tests__/NewButton.test.d.ts +1 -0
- package/lib/__tests__/NewButton.test.js +95 -0
- package/lib/__tests__/Overlay.test.d.ts +1 -0
- package/lib/__tests__/Overlay.test.js +145 -0
- package/lib/__tests__/Overlay.types.test.d.ts +6 -0
- package/lib/__tests__/Overlay.types.test.js +73 -0
- package/lib/__tests__/Pagehead.test.d.ts +1 -0
- package/lib/__tests__/Pagehead.test.js +37 -0
- package/lib/__tests__/Pagehead.types.test.d.ts +3 -0
- package/lib/__tests__/Pagehead.types.test.js +28 -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__/Pagination.types.test.d.ts +3 -0
- package/lib/__tests__/Pagination.types.test.js +33 -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__/Popover.types.test.d.ts +3 -0
- package/lib/__tests__/Popover.types.test.js +27 -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__/SelectMenu.types.test.d.ts +3 -0
- package/lib/__tests__/SelectMenu.types.test.js +47 -0
- package/lib/__tests__/SelectPanel.test.d.ts +1 -0
- package/lib/__tests__/SelectPanel.test.js +80 -0
- package/lib/__tests__/SelectPanel.types.test.d.ts +3 -0
- package/lib/__tests__/SelectPanel.types.test.js +44 -0
- package/lib/__tests__/SideNav.test.d.ts +1 -0
- package/lib/__tests__/SideNav.test.js +71 -0
- package/lib/__tests__/SideNav.types.test.d.ts +3 -0
- package/lib/__tests__/SideNav.types.test.js +28 -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__/StateLabel.types.test.d.ts +3 -0
- package/lib/__tests__/StateLabel.types.test.js +28 -0
- package/lib/__tests__/StyledOcticon.test.d.ts +1 -0
- package/lib/__tests__/StyledOcticon.test.js +40 -0
- package/lib/__tests__/StyledOcticon.types.test.d.ts +3 -0
- package/lib/__tests__/StyledOcticon.types.test.js +32 -0
- package/lib/__tests__/SubNav.test.d.ts +1 -0
- package/lib/__tests__/SubNav.test.js +62 -0
- package/lib/__tests__/SubNav.types.test.d.ts +3 -0
- package/lib/__tests__/SubNav.types.test.js +27 -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__/TabNav.types.test.d.ts +3 -0
- package/lib/__tests__/TabNav.types.test.js +25 -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 +572 -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__/Timeline.types.test.d.ts +3 -0
- package/lib/__tests__/Timeline.types.test.js +31 -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__/Tooltip.types.test.d.ts +3 -0
- package/lib/__tests__/Tooltip.types.test.js +28 -0
- package/lib/__tests__/Truncate.test.d.ts +1 -0
- package/lib/__tests__/Truncate.test.js +63 -0
- package/lib/__tests__/Truncate.types.test.d.ts +3 -0
- package/lib/__tests__/Truncate.types.test.js +31 -0
- package/lib/__tests__/UnderlineNav.test.d.ts +1 -0
- package/lib/__tests__/UnderlineNav.test.js +72 -0
- package/lib/__tests__/UnderlineNav.types.test.d.ts +3 -0
- package/lib/__tests__/UnderlineNav.types.test.js +25 -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__/themePreval.test.d.ts +1 -0
- package/lib/__tests__/themePreval.test.js +14 -0
- package/lib/__tests__/useSafeTimeout.test.d.ts +1 -0
- package/lib/__tests__/useSafeTimeout.test.js +45 -0
- package/lib/__tests__/utils/createSlots.test.d.ts +1 -0
- package/lib/__tests__/utils/createSlots.test.js +75 -0
- package/lib/drafts.d.ts +1 -0
- package/lib/drafts.js +13 -0
- package/lib/stories/ActionList.stories.js +454 -0
- package/lib/stories/ActionList2.stories.js +923 -0
- package/lib/stories/ActionMenu.stories.js +348 -0
- package/lib/stories/ActionMenu2.stories.js +433 -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/Checkbox.stories.js +227 -0
- package/lib/stories/ConfirmationDialog.stories.js +119 -0
- package/lib/stories/Dialog.stories.js +269 -0
- package/lib/stories/DropdownMenu.stories.js +122 -0
- package/lib/stories/IssueLabelToken.stories.js +165 -0
- package/lib/stories/NewButton.stories.js +230 -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/TextInput.stories.js +144 -0
- package/lib/stories/TextInputWithTokens.stories.js +252 -0
- package/lib/stories/ThemeProvider.stories.js +102 -0
- package/lib/stories/Token.stories.js +176 -0
- package/lib/stories/useAnchoredPosition.stories.js +351 -0
- package/lib/stories/useFocusTrap.stories.js +360 -0
- package/lib/stories/useFocusZone.stories.js +607 -0
- package/lib/utils/testing.d.ts +1 -0
- package/lib/utils/testing.js +29 -0
- package/lib-esm/ActionList/Item.js +3 -3
- package/lib-esm/ActionList2/Divider.d.ts +3 -2
- package/lib-esm/ActionList2/Divider.js +8 -5
- package/lib-esm/ActionList2/Item.js +22 -6
- package/lib-esm/ActionList2/List.js +8 -1
- package/lib-esm/ActionList2/MenuContext.d.ts +10 -0
- package/lib-esm/ActionList2/MenuContext.js +3 -0
- package/lib-esm/ActionList2/Selection.js +12 -1
- package/lib-esm/ActionList2/index.d.ts +1 -2
- package/lib-esm/ActionMenu2.d.ts +310 -0
- package/lib-esm/ActionMenu2.js +67 -0
- package/lib-esm/Autocomplete/Autocomplete.d.ts +1 -0
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +1 -0
- package/lib-esm/Avatar.d.ts +1 -2
- package/lib-esm/Avatar.js +2 -2
- package/lib-esm/BranchName.d.ts +1 -2
- package/lib-esm/BranchName.js +2 -2
- package/lib-esm/Button/Button.d.ts +1 -0
- package/lib-esm/Button/ButtonClose.d.ts +2 -1
- package/lib-esm/Button/ButtonDanger.d.ts +1 -0
- package/lib-esm/Button/ButtonInvisible.d.ts +1 -0
- package/lib-esm/Button/ButtonOutline.d.ts +1 -0
- package/lib-esm/Button/ButtonPrimary.d.ts +1 -0
- package/lib-esm/CircleOcticon.d.ts +1 -0
- package/lib-esm/Details.d.ts +1 -2
- package/lib-esm/Details.js +1 -2
- package/lib-esm/Dialog.d.ts +3 -2
- package/lib-esm/Dropdown.d.ts +6 -66
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +2 -1
- package/lib-esm/FilterList.d.ts +1 -0
- package/lib-esm/Heading.d.ts +1 -2
- package/lib-esm/Heading.js +2 -6
- package/lib-esm/Position.d.ts +4 -4
- package/lib-esm/ProgressBar.d.ts +16 -11
- package/lib-esm/ProgressBar.js +7 -11
- package/lib-esm/SelectMenu/SelectMenu.d.ts +10 -4
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib-esm/Spinner.d.ts +1 -2
- package/lib-esm/Spinner.js +1 -2
- package/lib-esm/TextInputWithTokens.d.ts +1 -0
- 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/__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__/ActionList2.test.d.ts +2 -0
- package/lib-esm/__tests__/ActionList2.test.js +144 -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 +136 -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 +58 -0
- package/lib-esm/__tests__/Avatar.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Avatar.types.test.js +16 -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__/BranchName.types.test.d.ts +3 -0
- package/lib-esm/__tests__/BranchName.types.test.js +13 -0
- package/lib-esm/__tests__/Breadcrumbs.test.d.ts +1 -0
- package/lib-esm/__tests__/Breadcrumbs.test.js +30 -0
- package/lib-esm/__tests__/Breadcrumbs.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Breadcrumbs.types.test.js +12 -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 +137 -0
- package/lib-esm/__tests__/Caret.test.d.ts +1 -0
- package/lib-esm/__tests__/Caret.test.js +42 -0
- package/lib-esm/__tests__/Checkbox.test.d.ts +2 -0
- package/lib-esm/__tests__/Checkbox.test.js +169 -0
- package/lib-esm/__tests__/CircleBadge.test.d.ts +1 -0
- package/lib-esm/__tests__/CircleBadge.test.js +70 -0
- package/lib-esm/__tests__/CircleBadge.types.test.d.ts +3 -0
- package/lib-esm/__tests__/CircleBadge.types.test.js +13 -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__/CounterLabel.types.test.d.ts +3 -0
- package/lib-esm/__tests__/CounterLabel.types.test.js +13 -0
- package/lib-esm/__tests__/Details.test.d.ts +1 -0
- package/lib-esm/__tests__/Details.test.js +107 -0
- package/lib-esm/__tests__/Details.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Details.types.test.js +13 -0
- package/lib-esm/__tests__/Dialog.test.d.ts +1 -0
- package/lib-esm/__tests__/Dialog.test.js +171 -0
- package/lib-esm/__tests__/Dialog.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Dialog.types.test.js +13 -0
- package/lib-esm/__tests__/Dialog2.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Dialog2.types.test.js +16 -0
- package/lib-esm/__tests__/Dropdown.test.d.ts +1 -0
- package/lib-esm/__tests__/Dropdown.test.js +53 -0
- package/lib-esm/__tests__/Dropdown.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Dropdown.types.test.js +17 -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__/FilterList.types.test.d.ts +3 -0
- package/lib-esm/__tests__/FilterList.types.test.js +13 -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__/FilteredSearch.types.test.d.ts +3 -0
- package/lib-esm/__tests__/FilteredSearch.types.test.js +13 -0
- package/lib-esm/__tests__/Flash.test.d.ts +1 -0
- package/lib-esm/__tests__/Flash.test.js +51 -0
- package/lib-esm/__tests__/Flash.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Flash.types.test.js +13 -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__/FormGroup.types.test.d.ts +3 -0
- package/lib-esm/__tests__/FormGroup.types.test.js +13 -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__/Header.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Header.types.test.js +15 -0
- package/lib-esm/__tests__/Heading.test.d.ts +1 -0
- package/lib-esm/__tests__/Heading.test.js +131 -0
- package/lib-esm/__tests__/Heading.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Heading.types.test.js +13 -0
- package/lib-esm/__tests__/KeyPaths.types.test.d.ts +11 -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__/Label.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Label.types.test.js +13 -0
- package/lib-esm/__tests__/LabelGroup.test.d.ts +1 -0
- package/lib-esm/__tests__/LabelGroup.test.js +26 -0
- package/lib-esm/__tests__/LabelGroup.types.test.d.ts +3 -0
- package/lib-esm/__tests__/LabelGroup.types.test.js +13 -0
- package/lib-esm/__tests__/Link.test.d.ts +1 -0
- package/lib-esm/__tests__/Link.test.js +66 -0
- package/lib-esm/__tests__/Link.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Link.types.test.js +13 -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__/NewButton.test.d.ts +1 -0
- package/lib-esm/__tests__/NewButton.test.js +84 -0
- package/lib-esm/__tests__/Overlay.test.d.ts +1 -0
- package/lib-esm/__tests__/Overlay.test.js +123 -0
- package/lib-esm/__tests__/Overlay.types.test.d.ts +6 -0
- package/lib-esm/__tests__/Overlay.types.test.js +49 -0
- package/lib-esm/__tests__/Pagehead.test.d.ts +1 -0
- package/lib-esm/__tests__/Pagehead.test.js +26 -0
- package/lib-esm/__tests__/Pagehead.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Pagehead.types.test.js +13 -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__/Pagination.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Pagination.types.test.js +18 -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__/Popover.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Popover.types.test.js +13 -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__/SelectMenu.types.test.d.ts +3 -0
- package/lib-esm/__tests__/SelectMenu.types.test.js +33 -0
- package/lib-esm/__tests__/SelectPanel.test.d.ts +1 -0
- package/lib-esm/__tests__/SelectPanel.test.js +65 -0
- package/lib-esm/__tests__/SelectPanel.types.test.d.ts +3 -0
- package/lib-esm/__tests__/SelectPanel.types.test.js +29 -0
- package/lib-esm/__tests__/SideNav.test.d.ts +1 -0
- package/lib-esm/__tests__/SideNav.test.js +60 -0
- package/lib-esm/__tests__/SideNav.types.test.d.ts +3 -0
- package/lib-esm/__tests__/SideNav.types.test.js +13 -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__/StateLabel.types.test.d.ts +3 -0
- package/lib-esm/__tests__/StateLabel.types.test.js +13 -0
- package/lib-esm/__tests__/StyledOcticon.test.d.ts +1 -0
- package/lib-esm/__tests__/StyledOcticon.test.js +29 -0
- package/lib-esm/__tests__/StyledOcticon.types.test.d.ts +3 -0
- package/lib-esm/__tests__/StyledOcticon.types.test.js +16 -0
- package/lib-esm/__tests__/SubNav.test.d.ts +1 -0
- package/lib-esm/__tests__/SubNav.test.js +50 -0
- package/lib-esm/__tests__/SubNav.types.test.d.ts +3 -0
- package/lib-esm/__tests__/SubNav.types.test.js +14 -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__/TabNav.types.test.d.ts +3 -0
- package/lib-esm/__tests__/TabNav.types.test.js +12 -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 +511 -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__/Timeline.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Timeline.types.test.js +18 -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__/Tooltip.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Tooltip.types.test.js +13 -0
- package/lib-esm/__tests__/Truncate.test.d.ts +1 -0
- package/lib-esm/__tests__/Truncate.test.js +53 -0
- package/lib-esm/__tests__/Truncate.types.test.d.ts +3 -0
- package/lib-esm/__tests__/Truncate.types.test.js +16 -0
- package/lib-esm/__tests__/UnderlineNav.test.d.ts +1 -0
- package/lib-esm/__tests__/UnderlineNav.test.js +60 -0
- package/lib-esm/__tests__/UnderlineNav.types.test.d.ts +3 -0
- package/lib-esm/__tests__/UnderlineNav.types.test.js +12 -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__/themePreval.test.d.ts +1 -0
- package/lib-esm/__tests__/themePreval.test.js +7 -0
- package/lib-esm/__tests__/useSafeTimeout.test.d.ts +1 -0
- package/lib-esm/__tests__/useSafeTimeout.test.js +39 -0
- package/lib-esm/__tests__/utils/createSlots.test.d.ts +1 -0
- package/lib-esm/__tests__/utils/createSlots.test.js +67 -0
- package/lib-esm/drafts.d.ts +1 -0
- package/lib-esm/drafts.js +2 -1
- package/lib-esm/stories/ActionList.stories.js +395 -0
- package/lib-esm/stories/ActionList2.stories.js +811 -0
- package/lib-esm/stories/ActionMenu.stories.js +303 -0
- package/lib-esm/stories/ActionMenu2.stories.js +376 -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/Checkbox.stories.js +197 -0
- package/lib-esm/stories/ConfirmationDialog.stories.js +94 -0
- package/lib-esm/stories/Dialog.stories.js +244 -0
- package/lib-esm/stories/DropdownMenu.stories.js +94 -0
- package/lib-esm/stories/IssueLabelToken.stories.js +139 -0
- package/lib-esm/stories/NewButton.stories.js +178 -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/TextInput.stories.js +117 -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 +146 -0
- package/lib-esm/stories/useAnchoredPosition.stories.js +313 -0
- package/lib-esm/stories/useFocusTrap.stories.js +313 -0
- package/lib-esm/stories/useFocusZone.stories.js +562 -0
- package/lib-esm/utils/testing.d.ts +1 -0
- package/lib-esm/utils/testing.js +24 -0
- package/migrating.md +250 -0
- package/now.json +17 -0
- package/package-lock.json +66668 -0
- package/package.json +2 -2
- package/rollup.config.js +36 -0
- package/script/build +21 -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 +481 -0
- package/src/ActionList/List.tsx +258 -0
- package/src/ActionList/index.ts +21 -0
- package/src/ActionList2/Description.tsx +52 -0
- package/src/ActionList2/Divider.tsx +29 -0
- package/src/ActionList2/Group.tsx +103 -0
- package/src/ActionList2/Item.tsx +257 -0
- package/src/ActionList2/LinkItem.tsx +49 -0
- package/src/ActionList2/List.tsx +54 -0
- package/src/ActionList2/MenuContext.tsx +6 -0
- package/src/ActionList2/Selection.tsx +70 -0
- package/src/ActionList2/Visuals.tsx +76 -0
- package/src/ActionList2/index.ts +39 -0
- package/src/ActionMenu.tsx +106 -0
- package/src/ActionMenu2.tsx +94 -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 +44 -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 +39 -0
- package/src/Button/ButtonBase.tsx +39 -0
- package/src/Button/ButtonClose.tsx +36 -0
- package/src/Button/ButtonDanger.tsx +42 -0
- package/src/Button/ButtonGroup.tsx +55 -0
- package/src/Button/ButtonInvisible.tsx +31 -0
- package/src/Button/ButtonOutline.tsx +42 -0
- package/src/Button/ButtonPrimary.tsx +40 -0
- package/src/Button/ButtonStyles.tsx +36 -0
- package/src/Button/ButtonTableList.tsx +45 -0
- package/src/Button/index.ts +16 -0
- package/src/Caret.tsx +133 -0
- package/src/Checkbox.tsx +75 -0
- package/src/CircleBadge.tsx +53 -0
- package/src/CircleOcticon.tsx +37 -0
- package/src/CounterLabel.tsx +50 -0
- package/src/Details.tsx +19 -0
- package/src/Dialog/ConfirmationDialog.tsx +184 -0
- package/src/Dialog/Dialog.tsx +444 -0
- package/src/Dialog.tsx +145 -0
- package/src/Dropdown.tsx +154 -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 +75 -0
- package/src/FilteredActionList/FilteredActionList.tsx +142 -0
- package/src/FilteredActionList/index.ts +2 -0
- package/src/FilteredSearch.tsx +27 -0
- package/src/Flash.tsx +75 -0
- package/src/Flex.tsx +15 -0
- package/src/FormGroup.tsx +24 -0
- package/src/Grid.tsx +15 -0
- package/src/Header.tsx +74 -0
- package/src/Heading.tsx +14 -0
- package/src/Label.tsx +72 -0
- package/src/LabelGroup.tsx +17 -0
- package/src/Link.tsx +42 -0
- package/src/NewButton/button-counter.tsx +15 -0
- package/src/NewButton/button.tsx +283 -0
- package/src/NewButton/index.ts +10 -0
- package/src/NewButton/types.ts +36 -0
- package/src/Overlay.tsx +203 -0
- package/src/Pagehead.tsx +16 -0
- package/src/Pagination/Pagination.tsx +212 -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 +225 -0
- package/src/Portal/Portal.tsx +97 -0
- package/src/Portal/index.ts +5 -0
- package/src/Position.tsx +63 -0
- package/src/ProgressBar.tsx +53 -0
- package/src/SelectMenu/SelectMenu.tsx +123 -0
- package/src/SelectMenu/SelectMenuContext.tsx +9 -0
- package/src/SelectMenu/SelectMenuDivider.tsx +24 -0
- package/src/SelectMenu/SelectMenuFilter.tsx +50 -0
- package/src/SelectMenu/SelectMenuFooter.tsx +27 -0
- package/src/SelectMenu/SelectMenuHeader.tsx +48 -0
- package/src/SelectMenu/SelectMenuItem.tsx +136 -0
- package/src/SelectMenu/SelectMenuList.tsx +41 -0
- package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +25 -0
- package/src/SelectMenu/SelectMenuModal.tsx +119 -0
- package/src/SelectMenu/SelectMenuTab.tsx +87 -0
- package/src/SelectMenu/SelectMenuTabPanel.tsx +29 -0
- package/src/SelectMenu/SelectMenuTabs.tsx +43 -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 +191 -0
- package/src/Spinner.tsx +57 -0
- package/src/StateLabel.tsx +112 -0
- package/src/StyledOcticon.tsx +22 -0
- package/src/SubNav.tsx +124 -0
- package/src/TabNav.tsx +73 -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 +140 -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 +31 -0
- package/src/UnderlineNav.tsx +107 -0
- package/src/_TextInputWrapper.tsx +113 -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__/ActionList2.test.tsx +156 -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__/Avatar.types.test.tsx +11 -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__/BranchName.types.test.tsx +11 -0
- package/src/__tests__/Breadcrumbs.test.tsx +27 -0
- package/src/__tests__/Breadcrumbs.types.test.tsx +22 -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__/Checkbox.test.tsx +155 -0
- package/src/__tests__/CircleBadge.test.tsx +66 -0
- package/src/__tests__/CircleBadge.types.test.tsx +11 -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__/CounterLabel.types.test.tsx +11 -0
- package/src/__tests__/Details.test.tsx +115 -0
- package/src/__tests__/Details.types.test.tsx +11 -0
- package/src/__tests__/Dialog.test.tsx +155 -0
- package/src/__tests__/Dialog.types.test.tsx +11 -0
- package/src/__tests__/Dialog2.types.test.tsx +11 -0
- package/src/__tests__/Dropdown.test.tsx +53 -0
- package/src/__tests__/Dropdown.types.test.tsx +21 -0
- package/src/__tests__/DropdownMenu.test.tsx +136 -0
- package/src/__tests__/FilterList.test.tsx +26 -0
- package/src/__tests__/FilterList.types.test.tsx +17 -0
- package/src/__tests__/FilterListItem.test.tsx +31 -0
- package/src/__tests__/FilteredSearch.test.tsx +26 -0
- package/src/__tests__/FilteredSearch.types.test.tsx +11 -0
- package/src/__tests__/Flash.test.tsx +45 -0
- package/src/__tests__/Flash.types.test.tsx +11 -0
- package/src/__tests__/Flex.test.tsx +58 -0
- package/src/__tests__/FormGroup.test.tsx +38 -0
- package/src/__tests__/FormGroup.types.test.tsx +11 -0
- package/src/__tests__/Grid.test.tsx +82 -0
- package/src/__tests__/Header.test.tsx +49 -0
- package/src/__tests__/Header.types.test.tsx +19 -0
- package/src/__tests__/Heading.test.tsx +137 -0
- package/src/__tests__/Heading.types.test.tsx +11 -0
- package/src/__tests__/KeyPaths.types.test.ts +14 -0
- package/src/__tests__/Label.test.tsx +34 -0
- package/src/__tests__/Label.types.test.tsx +11 -0
- package/src/__tests__/LabelGroup.test.tsx +30 -0
- package/src/__tests__/LabelGroup.types.test.tsx +11 -0
- package/src/__tests__/Link.test.tsx +47 -0
- package/src/__tests__/Link.types.test.tsx +11 -0
- package/src/__tests__/Merge.types.test.ts +39 -0
- package/src/__tests__/NewButton.test.tsx +70 -0
- package/src/__tests__/Overlay.test.tsx +103 -0
- package/src/__tests__/Overlay.types.test.tsx +33 -0
- package/src/__tests__/Pagehead.test.tsx +23 -0
- package/src/__tests__/Pagehead.types.test.tsx +11 -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__/Pagination.types.test.tsx +11 -0
- package/src/__tests__/PointerBox.test.tsx +34 -0
- package/src/__tests__/Popover.test.tsx +68 -0
- package/src/__tests__/Popover.types.test.tsx +17 -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__/SelectMenu.types.test.tsx +37 -0
- package/src/__tests__/SelectPanel.test.tsx +63 -0
- package/src/__tests__/SelectPanel.types.test.tsx +31 -0
- package/src/__tests__/SideNav.test.tsx +62 -0
- package/src/__tests__/SideNav.types.test.tsx +11 -0
- package/src/__tests__/Spinner.test.tsx +42 -0
- package/src/__tests__/StateLabel.test.tsx +48 -0
- package/src/__tests__/StateLabel.types.test.tsx +11 -0
- package/src/__tests__/StyledOcticon.test.tsx +26 -0
- package/src/__tests__/StyledOcticon.types.test.tsx +12 -0
- package/src/__tests__/SubNav.test.tsx +50 -0
- package/src/__tests__/SubNav.types.test.tsx +25 -0
- package/src/__tests__/SubNavLink.test.tsx +31 -0
- package/src/__tests__/TabNav.test.tsx +32 -0
- package/src/__tests__/TabNav.types.test.tsx +22 -0
- package/src/__tests__/Text.test.tsx +78 -0
- package/src/__tests__/TextInput.test.tsx +49 -0
- package/src/__tests__/TextInputWithTokens.test.tsx +422 -0
- package/src/__tests__/ThemeProvider.test.tsx +441 -0
- package/src/__tests__/Timeline.test.tsx +58 -0
- package/src/__tests__/Timeline.types.test.tsx +31 -0
- package/src/__tests__/Token.test.tsx +118 -0
- package/src/__tests__/Tooltip.test.tsx +52 -0
- package/src/__tests__/Tooltip.types.test.tsx +11 -0
- package/src/__tests__/Truncate.test.tsx +43 -0
- package/src/__tests__/Truncate.types.test.tsx +11 -0
- package/src/__tests__/UnderlineNav.test.tsx +58 -0
- package/src/__tests__/UnderlineNav.types.test.tsx +22 -0
- package/src/__tests__/UnderlineNavLink.test.tsx +31 -0
- package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +223 -0
- package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +14 -0
- package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +80 -0
- package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +232 -0
- package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +3901 -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__/Checkbox.test.tsx.snap +16 -0
- package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +142 -0
- package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +65 -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 +201 -0
- package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +249 -0
- package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +107 -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 +73 -0
- package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/Link.test.tsx.snap +212 -0
- package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +305 -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 +473 -0
- package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +124 -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 +395 -0
- package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +26 -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 +6045 -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 +3811 -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__/__snapshots__/themePreval.test.ts.snap +3176 -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__/themePreval.test.ts +8 -0
- package/src/__tests__/useSafeTimeout.test.tsx +36 -0
- package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +55 -0
- package/src/__tests__/utils/createSlots.test.tsx +74 -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/drafts.ts +11 -0
- package/src/hooks/index.ts +11 -0
- package/src/hooks/useAnchoredPosition.ts +54 -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 +175 -0
- package/src/polyfills/eventListenerSignal.ts +66 -0
- package/src/stories/ActionList.stories.tsx +436 -0
- package/src/stories/ActionList2.stories.tsx +1305 -0
- package/src/stories/ActionMenu.stories.tsx +331 -0
- package/src/stories/ActionMenu2.stories.tsx +551 -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/Checkbox.stories.tsx +164 -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/NewButton.stories.tsx +201 -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/TextInput.stories.tsx +113 -0
- package/src/stories/TextInputWithTokens.stories.tsx +155 -0
- package/src/stories/ThemeProvider.stories.tsx +104 -0
- package/src/stories/Token.stories.tsx +137 -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 +24 -0
- package/src/theme-preval.js +80 -0
- package/src/theme.ts +89 -0
- package/src/utils/create-slots.tsx +96 -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 +264 -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 +10 -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/use-force-update.ts +7 -0
- package/src/utils/useIsomorphicLayoutEffect.ts +10 -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/ActionList2/Header.d.ts +0 -26
- package/lib/ActionList2/Header.js +0 -55
- package/lib-esm/ActionList2/Header.d.ts +0 -26
- package/lib-esm/ActionList2/Header.js +0 -44
@@ -0,0 +1,372 @@
|
|
1
|
+
---
|
2
|
+
title: SelectMenu
|
3
|
+
status: Deprecated
|
4
|
+
---
|
5
|
+
|
6
|
+
The `SelectMenu` components are a suite of components which can be combined together to make several different variations of our GitHub select menu. At it's most basic form, a select menu is comprised of a `SelectMenu` wrapper, which contains a `summary` component of your choice and a `Select.Modal` which contains the select menu content. Use `SelectMenu.List` to wrap items in the select menu, and `SelectMenu.Item` to wrap each item.
|
7
|
+
|
8
|
+
Several additional components exist to provide even more functionality: `SelectMenu.Header`, `SelectMenu.Filter`, `SelectMenu.Tabs`, `SelectMenu.TabPanel` `SelectMenu.Footer` and `SelectMenu.Divider`.
|
9
|
+
|
10
|
+
## Basic Example
|
11
|
+
|
12
|
+
```jsx live
|
13
|
+
<SelectMenu>
|
14
|
+
<Button as="summary">Projects</Button>
|
15
|
+
<SelectMenu.Modal>
|
16
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
17
|
+
<SelectMenu.List>
|
18
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
19
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
20
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
21
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
22
|
+
</SelectMenu.List>
|
23
|
+
</SelectMenu.Modal>
|
24
|
+
</SelectMenu>
|
25
|
+
```
|
26
|
+
|
27
|
+
## SelectMenu
|
28
|
+
|
29
|
+
Main wrapper component for select menu.
|
30
|
+
|
31
|
+
```jsx
|
32
|
+
<SelectMenu>{/* all other sub components are wrapped here*/}</SelectMenu>
|
33
|
+
```
|
34
|
+
|
35
|
+
### Component Props
|
36
|
+
|
37
|
+
| Name | Type | Default | Description |
|
38
|
+
| :--------- | :---------------- | :-----: | :--------------------------------------------------------------------------------------------------------------------------------------- |
|
39
|
+
| initialTab | String | | If using the `SelectMenu.Tabs` component, you can use this prop to change the tab shown on open. By default, the first tab will be used. |
|
40
|
+
| ref | React ref | | ref to pass down to SelectMenu component |
|
41
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
42
|
+
|
43
|
+
## SelectMenu.MenuContext
|
44
|
+
|
45
|
+
SelectMenu.MenuContext is a [context object](https://reactjs.org/docs/context.html#reactcreatecontext) that exposes some helpful state values to be used via [`React.useContext`](https://reactjs.org/docs/hooks-reference.html#usecontext) in consuming applications. SelectMenu.MenuContext can only be used in components that are already wrapped in a `SelectMenu` as `SelectMenu` contains the [context provider](https://reactjs.org/docs/context.html#contextprovider).
|
46
|
+
|
47
|
+
### Values available on MenuContext
|
48
|
+
|
49
|
+
| Name | Type | Description |
|
50
|
+
| :------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
|
51
|
+
| selectedTab | string | The currently selected tab |
|
52
|
+
| setSelectedTab | function | Used to update the currently selected tab state |
|
53
|
+
| open | boolean | State for open/closed status of the menu modal |
|
54
|
+
| setOpen | function | Used to update the `open` state |
|
55
|
+
| initialTab | string | Mostly used internally to pass down which tab should be set to open by default. To change this value use the `initialTab` prop on `SelectMenu`. |
|
56
|
+
|
57
|
+
### Example Usage
|
58
|
+
|
59
|
+
```jsx
|
60
|
+
import {SelectMenu, Button} from `@primer/components`
|
61
|
+
import React, {useContext} from 'react'
|
62
|
+
|
63
|
+
const MyMenu = () => {
|
64
|
+
<SelectMenu>
|
65
|
+
<MyButton />
|
66
|
+
<SelectMenu.Modal>
|
67
|
+
content
|
68
|
+
</SelectMenu.Modal>
|
69
|
+
</SelectMenu>
|
70
|
+
}
|
71
|
+
|
72
|
+
// note that we can only use the context in components that are already wrapped by SelectMenu (and thus the Context.Provider)
|
73
|
+
const MyButton = () => {
|
74
|
+
const menuContext = useContext(SelectMenu.MenuContext);
|
75
|
+
|
76
|
+
return (
|
77
|
+
<Button as="summary">{menuContext.open ? 'Open' : 'Closed'}</Button>
|
78
|
+
)
|
79
|
+
}
|
80
|
+
```
|
81
|
+
|
82
|
+
## SelectMenu.Modal
|
83
|
+
|
84
|
+
Used to wrap the content in a `SelectMenu`.
|
85
|
+
|
86
|
+
```jsx
|
87
|
+
<SelectMenu.Modal>{/* all menu content is wrapped in the modal*/}</SelectMenu.Modal>
|
88
|
+
```
|
89
|
+
|
90
|
+
### Right-aligned modal
|
91
|
+
|
92
|
+
Use the `align='right'` prop to align the modal to the right. Note that this only modifies alignment for the modal, and not the SelectMenu itself. You will need to wrap the SelectMenu in a relatively positioned element for this to work properly.
|
93
|
+
|
94
|
+
```jsx live
|
95
|
+
<Box position="relative" display="flex" justifyContent="flex-end">
|
96
|
+
<SelectMenu>
|
97
|
+
<Button as="summary">Projects</Button>
|
98
|
+
<SelectMenu.Modal align="right">
|
99
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
100
|
+
<SelectMenu.List>
|
101
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
102
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
103
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
104
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
105
|
+
</SelectMenu.List>
|
106
|
+
</SelectMenu.Modal>
|
107
|
+
</SelectMenu>
|
108
|
+
</Box>
|
109
|
+
```
|
110
|
+
|
111
|
+
### Component Props
|
112
|
+
|
113
|
+
| Prop name | Type | Default | Description |
|
114
|
+
| :-------- | :---------------- | :------ | ------------------------------------------------- |
|
115
|
+
| align | String | 'left' | Use `right` to align the select menu to the right |
|
116
|
+
| width | String or Number | 300px | Sets the modal width |
|
117
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
118
|
+
|
119
|
+
## SelectMenu.List
|
120
|
+
|
121
|
+
Used to wrap the select menu list content. All menu items **must** be wrapped in a SelectMenu.List in order for the accessbility keyboard handling to function properly. If you are using the `SelectMenu.TabPanel` you do not need to provide a `SelectMenu.List` as that component renders a `SelectMenu.List` as a wrapper.
|
122
|
+
|
123
|
+
```jsx
|
124
|
+
<SelectMenu.List>{/* all menu list items are wrapped in the list*/}</SelectMenu.List>
|
125
|
+
```
|
126
|
+
|
127
|
+
### Component Props
|
128
|
+
|
129
|
+
| Name | Type | Default | Description |
|
130
|
+
| :--- | :---------------- | :-----: | :----------------------------------- |
|
131
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
132
|
+
|
133
|
+
## SelectMenu.Item
|
134
|
+
|
135
|
+
Individual items in a select menu. SelectMenu.Item renders an anchor tag by default, you'll need to make sure to provide the appropriate `href`.
|
136
|
+
|
137
|
+
You can use a `button` tag instead by utilizing the [`as` prop](/core-concepts#the-as-prop). Be sure to consider [which HTML element is the right choice](https://marcysutton.com/links-vs-buttons-in-modern-web-applications) for your usage of the component.
|
138
|
+
|
139
|
+
```jsx
|
140
|
+
<SelectMenu.Item href="/link/to/thing" selected={true}>
|
141
|
+
{/* wraps an individual list item*/}
|
142
|
+
</SelectMenu.Item>
|
143
|
+
```
|
144
|
+
|
145
|
+
### Component Props
|
146
|
+
|
147
|
+
| Name | Type | Default | Description |
|
148
|
+
| :------- | :---------------- | :-----: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
149
|
+
| selected | boolean | | Used to apply styles to the selected items in the list. |
|
150
|
+
| onClick | function | | Function called when item is clicked. By default we also close the menu when items are clicked. If you would like the menu to stay open, pass an `e.preventDefault()` to your onClick handler. |
|
151
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
152
|
+
|
153
|
+
## SelectMenu.Filter
|
154
|
+
|
155
|
+
Use a `SelectMenu.Filter` to add a filter UI to your select menu. Users are expected to implement their own filtering and manage the state of the `value` prop on the input. This gives users more flexibility over the type of filtering and type of content passed into each select menu item.
|
156
|
+
|
157
|
+
```jsx live
|
158
|
+
<SelectMenu>
|
159
|
+
<Button as="summary">Projects</Button>
|
160
|
+
<SelectMenu.Modal>
|
161
|
+
<SelectMenu.Header>Filter by Project</SelectMenu.Header>
|
162
|
+
<SelectMenu.Filter placeholder="Filter projects" value="" aria-label="Filter Projects" />
|
163
|
+
<SelectMenu.List>
|
164
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
165
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
166
|
+
<SelectMenu.Divider>More Options</SelectMenu.Divider>
|
167
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
168
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
169
|
+
</SelectMenu.List>
|
170
|
+
</SelectMenu.Modal>
|
171
|
+
</SelectMenu>
|
172
|
+
```
|
173
|
+
|
174
|
+
### Component Props
|
175
|
+
|
176
|
+
SelectMenu.Filter components receive all the props that the [TextInput](/TextInput) component gets.
|
177
|
+
|
178
|
+
| Name | Type | Default | Description |
|
179
|
+
| :---- | :---------------- | :-----: | :------------------------------------------------------------------------------------------------------------- |
|
180
|
+
| value | String | | Users of this component must provide a value for the filter input that is managed in the consuming application |
|
181
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
182
|
+
|
183
|
+
## SelectMenu.Tabs
|
184
|
+
|
185
|
+
Use `SelectMenu.Tabs` to wrap the the tab navigation and `SelectMenu.Tab` for each tab in the navigation.
|
186
|
+
|
187
|
+
`SelectMenu.TabPanel` should wrap each corresponding panel for each of the tabs. The `tabName` prop for each `SelectMenu.TabPanel` must match the name provided in the `tabName` prop on `SelectMenu.Tab`.
|
188
|
+
|
189
|
+
To set one of the tabs to be open by default, use `initialTab` on the main `SelectMenu` component. Otherwise, the first tab will be shown by default.
|
190
|
+
|
191
|
+
Each `Select.Menu` tab will need to have an `index` prop. The first tab should be at index `0`, the second at index `1` and so forth. The `index` prop is used to show the first tab by default.
|
192
|
+
|
193
|
+
If you need access to the selected tab state, you can find it in the MenuContext object exported from `SelectMenu` as `MenuContext.selectedTab`.
|
194
|
+
|
195
|
+
```jsx live
|
196
|
+
<SelectMenu>
|
197
|
+
<Button as="summary">Projects</Button>
|
198
|
+
<SelectMenu.Modal>
|
199
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
200
|
+
<SelectMenu.Tabs>
|
201
|
+
<SelectMenu.Tab index={0} tabName="Repository" />
|
202
|
+
<SelectMenu.Tab index={1} tabName="Organization" />
|
203
|
+
</SelectMenu.Tabs>
|
204
|
+
<SelectMenu.TabPanel tabName="Repository">
|
205
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
206
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
207
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
208
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
209
|
+
</SelectMenu.TabPanel>
|
210
|
+
<SelectMenu.TabPanel tabName="Organization">
|
211
|
+
<SelectMenu.Item href="#"> Project 2</SelectMenu.Item>
|
212
|
+
</SelectMenu.TabPanel>
|
213
|
+
<SelectMenu.Footer>Showing 3 of 3</SelectMenu.Footer>
|
214
|
+
</SelectMenu.Modal>
|
215
|
+
</SelectMenu>
|
216
|
+
```
|
217
|
+
|
218
|
+
### Component Props
|
219
|
+
|
220
|
+
| Name | Type | Default | Description |
|
221
|
+
| :--- | :---------------- | :-----: | :----------------------------------- |
|
222
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
223
|
+
|
224
|
+
## SelectMenu.Tab
|
225
|
+
|
226
|
+
Used for each individual tab inside of a `SelectMenu.Tabs`. Be sure to set the `index` prop to correspond to the order the tab is in. The `tabName` prop should correspond to the `tabName` set on the `SelectMenu.TabPanel`.
|
227
|
+
|
228
|
+
The `onClick` prop is optional and can be used for any events or data fetching you might need to trigger on tab clicks.
|
229
|
+
|
230
|
+
```jsx
|
231
|
+
<>
|
232
|
+
<SelectMenu.Tab index={0} tabName="Repository" />
|
233
|
+
<SelectMenu.Tab index={1} tabName="Organization" />
|
234
|
+
</>
|
235
|
+
```
|
236
|
+
|
237
|
+
### Component Props
|
238
|
+
|
239
|
+
| Name | Type | Default | Description |
|
240
|
+
| :------ | :---------------- | :-----: | :------------------------------------------------------------------------------------------------------------------------- |
|
241
|
+
| tabName | String | | Used to identify the corresponding tab. Must match the string used in the `tabs` array in the `SelectMenu.Tabs` component. |
|
242
|
+
| index | Number | | The index at which the tab is in the list of tabs |
|
243
|
+
| onClick | Function | | Function to be called when the tab is clicked. Optional. |
|
244
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
245
|
+
|
246
|
+
## SelectMenu.TabPanel
|
247
|
+
|
248
|
+
Wraps the content for each tab. Make sure to use the `tabName` prop to identify each tab panel with the correct tab in the tab navigation.
|
249
|
+
|
250
|
+
**Note**: SelectMenu.TabPanel wraps content in a SelectMenu.List, so adding a SelectMenu.List manually is not necessary.
|
251
|
+
|
252
|
+
```jsx
|
253
|
+
<SelectMenu.TabPanel tabName="Repository">{/* Wraps content for each tab */}</SelectMenu.TabPanel>
|
254
|
+
```
|
255
|
+
|
256
|
+
### Component Props
|
257
|
+
|
258
|
+
| Name | Type | Default | Description |
|
259
|
+
| :------ | :---------------- | :-----: | :------------------------------------------------------------------------------------------------------------------------- |
|
260
|
+
| tabName | String | | Used to identify the corresponding tab. Must match the string used in the `tabs` array in the `SelectMenu.Tabs` component. |
|
261
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
262
|
+
|
263
|
+
## SelectMenu.Divider
|
264
|
+
|
265
|
+
Use a `SelectMenu.Divider` to add information between items in a `SelectMenu.List`.
|
266
|
+
|
267
|
+
```jsx live
|
268
|
+
<SelectMenu>
|
269
|
+
<Button as="summary">Projects</Button>
|
270
|
+
<SelectMenu.Modal>
|
271
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
272
|
+
<SelectMenu.List>
|
273
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
274
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
275
|
+
<SelectMenu.Divider>More Options</SelectMenu.Divider>
|
276
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
277
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
278
|
+
</SelectMenu.List>
|
279
|
+
</SelectMenu.Modal>
|
280
|
+
</SelectMenu>
|
281
|
+
```
|
282
|
+
|
283
|
+
### Component Props
|
284
|
+
|
285
|
+
| Name | Type | Default | Description |
|
286
|
+
| :--- | :---------------- | :-----: | :----------------------------------- |
|
287
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
288
|
+
|
289
|
+
## SelectMenu.Footer
|
290
|
+
|
291
|
+
Use a `SelectMenu.Footer` to add content to the bottom of the select menu.
|
292
|
+
|
293
|
+
```jsx live
|
294
|
+
<SelectMenu>
|
295
|
+
<Button as="summary">Projects</Button>
|
296
|
+
<SelectMenu.Modal>
|
297
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
298
|
+
<SelectMenu.List>
|
299
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
300
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
301
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
302
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
303
|
+
<SelectMenu.Footer>Use ⌥ + click/return to exclude labels.</SelectMenu.Footer>
|
304
|
+
</SelectMenu.List>
|
305
|
+
</SelectMenu.Modal>
|
306
|
+
</SelectMenu>
|
307
|
+
```
|
308
|
+
|
309
|
+
### Component Props
|
310
|
+
|
311
|
+
| Name | Type | Default | Description |
|
312
|
+
| :--- | :---------------- | :-----: | :----------------------------------- |
|
313
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
314
|
+
|
315
|
+
## SelectMenu.Header
|
316
|
+
|
317
|
+
Use a `SelectMenu.Header` to add a header to the top of the select menu content.
|
318
|
+
|
319
|
+
```jsx live
|
320
|
+
<SelectMenu>
|
321
|
+
<Button as="summary">Projects</Button>
|
322
|
+
<SelectMenu.Modal>
|
323
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
324
|
+
<SelectMenu.List>
|
325
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
326
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
327
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
328
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
329
|
+
<SelectMenu.Footer>Use ⌥ + click/return to exclude labels.</SelectMenu.Footer>
|
330
|
+
</SelectMenu.List>
|
331
|
+
</SelectMenu.Modal>
|
332
|
+
</SelectMenu>
|
333
|
+
```
|
334
|
+
|
335
|
+
### Component Props
|
336
|
+
|
337
|
+
| Name | Type | Default | Description |
|
338
|
+
| :--- | :---------------- | :-----: | :----------------------------------- |
|
339
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
340
|
+
|
341
|
+
## SelectMenu.LoadingAnimation
|
342
|
+
|
343
|
+
Use a `SelectMenu.LoadingAnimation` to add a loading animation inside of the SelectMenu.
|
344
|
+
|
345
|
+
**Note**: You will need to handle showing/hiding the appropriate modal content for your application during the loading state. We recommend always showing the `SelectMenu.Filter` and `SelectMenu.Header` (if used) and hiding the rest of the modal content during the loading state.
|
346
|
+
|
347
|
+
```jsx live
|
348
|
+
<SelectMenu>
|
349
|
+
<Button as="summary">Projects</Button>
|
350
|
+
<SelectMenu.Modal>
|
351
|
+
<SelectMenu.Header>Projects</SelectMenu.Header>
|
352
|
+
<SelectMenu.Filter placeholder="Filter projects" value="" aria-label="Filter Projects" />
|
353
|
+
{true ? (
|
354
|
+
<SelectMenu.LoadingAnimation />
|
355
|
+
) : (
|
356
|
+
<SelectMenu.List>
|
357
|
+
<SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
|
358
|
+
<SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
|
359
|
+
<SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
|
360
|
+
<SelectMenu.Item href="#">Project 4</SelectMenu.Item>
|
361
|
+
<SelectMenu.Footer>Use ⌥ + click/return to exclude labels.</SelectMenu.Footer>
|
362
|
+
</SelectMenu.List>
|
363
|
+
)}
|
364
|
+
</SelectMenu.Modal>
|
365
|
+
</SelectMenu>
|
366
|
+
```
|
367
|
+
|
368
|
+
### Component Props
|
369
|
+
|
370
|
+
| Name | Type | Default | Description |
|
371
|
+
| :--- | :---------------- | :-----: | :----------------------------------- |
|
372
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
title: SelectPanel
|
3
|
+
status: Alpha
|
4
|
+
---
|
5
|
+
|
6
|
+
A `SelectPanel` provides an anchor that will open an overlay with a list of selectable items, and a text input to filter the selectable items
|
7
|
+
|
8
|
+
## Example
|
9
|
+
|
10
|
+
```javascript live noinline
|
11
|
+
function getColorCircle(color) {
|
12
|
+
return function () {
|
13
|
+
return (
|
14
|
+
<Box
|
15
|
+
borderWidth="1px"
|
16
|
+
borderStyle="solid"
|
17
|
+
bg={color}
|
18
|
+
borderColor={color}
|
19
|
+
width={14}
|
20
|
+
height={14}
|
21
|
+
borderRadius={10}
|
22
|
+
margin="auto"
|
23
|
+
/>
|
24
|
+
)
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
const items = [
|
29
|
+
{leadingVisual: getColorCircle('#a2eeef'), text: 'enhancement', id: 1},
|
30
|
+
{leadingVisual: getColorCircle('#d73a4a'), text: 'bug', id: 2},
|
31
|
+
{leadingVisual: getColorCircle('#0cf478'), text: 'good first issue', id: 3},
|
32
|
+
{leadingVisual: getColorCircle('#ffd78e'), text: 'design', id: 4},
|
33
|
+
{leadingVisual: getColorCircle('#ff0000'), text: 'blocker', id: 5},
|
34
|
+
{leadingVisual: getColorCircle('#a4f287'), text: 'backend', id: 6},
|
35
|
+
{leadingVisual: getColorCircle('#8dc6fc'), text: 'frontend', id: 7}
|
36
|
+
]
|
37
|
+
|
38
|
+
function DemoComponent() {
|
39
|
+
const [selected, setSelected] = React.useState([items[0], items[1]])
|
40
|
+
const [filter, setFilter] = React.useState('')
|
41
|
+
const filteredItems = items.filter(item => item.text.toLowerCase().startsWith(filter.toLowerCase()))
|
42
|
+
const [open, setOpen] = React.useState(false)
|
43
|
+
|
44
|
+
return (
|
45
|
+
<SelectPanel
|
46
|
+
renderAnchor={({children, 'aria-labelledby': ariaLabelledBy, ...anchorProps}) => (
|
47
|
+
<DropdownButton aria-labelledby={` ${ariaLabelledBy}`} {...anchorProps}>
|
48
|
+
{children || 'Select Labels'}
|
49
|
+
</DropdownButton>
|
50
|
+
)}
|
51
|
+
placeholderText="Filter Labels"
|
52
|
+
open={open}
|
53
|
+
onOpenChange={setOpen}
|
54
|
+
items={filteredItems}
|
55
|
+
selected={selected}
|
56
|
+
onSelectedChange={setSelected}
|
57
|
+
onFilterChange={setFilter}
|
58
|
+
showItemDividers={true}
|
59
|
+
overlayProps={{width: 'small', height: 'xsmall'}}
|
60
|
+
/>
|
61
|
+
)
|
62
|
+
}
|
63
|
+
|
64
|
+
render(<DemoComponent />)
|
65
|
+
```
|
66
|
+
|
67
|
+
## Component props
|
@@ -0,0 +1,172 @@
|
|
1
|
+
---
|
2
|
+
title: SideNav
|
3
|
+
status: Alpha
|
4
|
+
---
|
5
|
+
|
6
|
+
The Side Nav is a vertical list of navigational links, typically used on the left side of a page. For maximum flexibility, **SideNav elements have no default width or positioning.**
|
7
|
+
|
8
|
+
## Default example
|
9
|
+
|
10
|
+
```jsx live
|
11
|
+
<SideNav bordered maxWidth={360} aria-label="Main">
|
12
|
+
<SideNav.Link href="#account">
|
13
|
+
<Text>Account</Text>
|
14
|
+
</SideNav.Link>
|
15
|
+
<SideNav.Link href="#home" selected>
|
16
|
+
<Text>Profile</Text>
|
17
|
+
</SideNav.Link>
|
18
|
+
<SideNav.Link href="#emails">
|
19
|
+
<Text>Emails</Text>
|
20
|
+
</SideNav.Link>
|
21
|
+
<SideNav.Link href="#notifications">
|
22
|
+
<Text>Notifications</Text>
|
23
|
+
</SideNav.Link>
|
24
|
+
</SideNav>
|
25
|
+
```
|
26
|
+
|
27
|
+
Different kinds of content can be added inside a SideNav item. Use system props to further style them if needed.
|
28
|
+
|
29
|
+
## Full variant
|
30
|
+
|
31
|
+
Add the `variant='full'` prop to a `SideNav.Link` to spread child elements across the link, which is useful for status icons, labels, and the like.
|
32
|
+
|
33
|
+
```jsx live
|
34
|
+
<SideNav bordered maxWidth={360} aria-label="Main">
|
35
|
+
<SideNav.Link href="#url">
|
36
|
+
<Text>Text Only</Text>
|
37
|
+
</SideNav.Link>
|
38
|
+
<SideNav.Link href="#url">
|
39
|
+
<Avatar size={16} mr={2} src="https://avatars.githubusercontent.com/hubot?s=32" />
|
40
|
+
<Text>With an avatar</Text>
|
41
|
+
</SideNav.Link>
|
42
|
+
<SideNav.Link href="#url">
|
43
|
+
<StyledOcticon sx={{mr: 2}} size={16} icon={ZapIcon} />
|
44
|
+
<Text>With an Octicon</Text>
|
45
|
+
</SideNav.Link>
|
46
|
+
<SideNav.Link href="#url" variant="full" selected>
|
47
|
+
<Text>With a status icon</Text>
|
48
|
+
<StyledOcticon sx={{mr: 2}} size={16} icon={DotIcon} color="success.fg" />
|
49
|
+
</SideNav.Link>
|
50
|
+
<SideNav.Link href="#url" variant="full">
|
51
|
+
<Text>With a label</Text>
|
52
|
+
<Label outline>label</Label>
|
53
|
+
</SideNav.Link>
|
54
|
+
<SideNav.Link href="#url" variant="full">
|
55
|
+
<Text>With a counter</Text>
|
56
|
+
<CounterLabel>16</CounterLabel>
|
57
|
+
</SideNav.Link>
|
58
|
+
<SideNav.Link href="#url">
|
59
|
+
<Heading as="h5" sx={{fontSize: 1}}>
|
60
|
+
A heading
|
61
|
+
</Heading>
|
62
|
+
<Text>and some more content</Text>
|
63
|
+
</SideNav.Link>
|
64
|
+
</SideNav>
|
65
|
+
```
|
66
|
+
|
67
|
+
## Lightweight variant
|
68
|
+
|
69
|
+
Add the `variant="lightweight"` prop to `SideNav` to render an alternative, more lightweight version that has items with no borders and are more condensed.
|
70
|
+
|
71
|
+
```jsx live
|
72
|
+
<Box
|
73
|
+
borderWidth="1px"
|
74
|
+
borderStyle="solid"
|
75
|
+
borderColor="border.default"
|
76
|
+
borderRadius={2}
|
77
|
+
p={3}
|
78
|
+
backgroundColor="canvas.subtle"
|
79
|
+
maxWidth={360}
|
80
|
+
>
|
81
|
+
<Box
|
82
|
+
borderStyle="solid"
|
83
|
+
borderColor="border.default"
|
84
|
+
borderWidth={0}
|
85
|
+
borderBottomWidth={1}
|
86
|
+
borderRadius={0}
|
87
|
+
mb={2}
|
88
|
+
pb={1}
|
89
|
+
>
|
90
|
+
<Heading as="h5" fontSize={1} color="fg.muted">
|
91
|
+
Menu
|
92
|
+
</Heading>
|
93
|
+
</Box>
|
94
|
+
<SideNav variant="lightweight">
|
95
|
+
<SideNav.Link href="#url">
|
96
|
+
<Text>Account</Text>
|
97
|
+
</SideNav.Link>
|
98
|
+
<SideNav.Link href="#url" selected>
|
99
|
+
<Text>Profile</Text>
|
100
|
+
</SideNav.Link>
|
101
|
+
<SideNav.Link href="#url">
|
102
|
+
<Text>Emails</Text>
|
103
|
+
</SideNav.Link>
|
104
|
+
<SideNav.Link href="#url">
|
105
|
+
<Text>Notifications</Text>
|
106
|
+
</SideNav.Link>
|
107
|
+
</SideNav>
|
108
|
+
</Box>
|
109
|
+
```
|
110
|
+
|
111
|
+
It can also appear nested, as a sub navigation. Use margin/padding [System Props](/system-props) to add indentation.
|
112
|
+
|
113
|
+
```jsx live
|
114
|
+
<SideNav bordered maxWidth={360}>
|
115
|
+
<SideNav.Link href="#url">
|
116
|
+
<StyledOcticon mr={2} size={16} icon={PersonIcon} />
|
117
|
+
<Text>Account</Text>
|
118
|
+
</SideNav.Link>
|
119
|
+
<SideNav.Link href="#url" selected>
|
120
|
+
<StyledOcticon mr={2} size={16} icon={OctofaceIcon} />
|
121
|
+
<Text>Profile</Text>
|
122
|
+
</SideNav.Link>
|
123
|
+
|
124
|
+
<SideNav bordered variant="lightweight" py={3} pl={6} backgroundColor="sidenav.selectedBg">
|
125
|
+
<SideNav.Link href="#url" selected>
|
126
|
+
<Text>Sub item 1</Text>
|
127
|
+
</SideNav.Link>
|
128
|
+
<SideNav.Link href="#url">
|
129
|
+
<Text>Sub item 2</Text>
|
130
|
+
</SideNav.Link>
|
131
|
+
<SideNav.Link href="#url">
|
132
|
+
<Text>Sub item 3</Text>
|
133
|
+
</SideNav.Link>
|
134
|
+
</SideNav>
|
135
|
+
|
136
|
+
<SideNav.Link href="#url">
|
137
|
+
<StyledOcticon mr={2} size={16} icon={MailIcon} />
|
138
|
+
<Text>Emails</Text>
|
139
|
+
</SideNav.Link>
|
140
|
+
</SideNav>
|
141
|
+
```
|
142
|
+
|
143
|
+
## Usage with React Router
|
144
|
+
|
145
|
+
If using React Router, you can use the `as` prop to render the element as a `NavLink`. React Router will automatically handle setting `aria-current="page"` for you.
|
146
|
+
|
147
|
+
```
|
148
|
+
<SideNav.Link as={NavLink} to="...">...</SideNav.Link>
|
149
|
+
```
|
150
|
+
|
151
|
+
## Component props
|
152
|
+
|
153
|
+
### SideNav
|
154
|
+
|
155
|
+
| Name | Type | Default | Description |
|
156
|
+
| :------- | :---------------- | :------: | :----------------------------------------------------------------------------- |
|
157
|
+
| as | String | 'nav' | Sets the HTML tag for the component. |
|
158
|
+
| bordered | Boolean | false | Renders the component with a border. |
|
159
|
+
| variant | String | 'normal' | Set to `lightweight` to render [in a lightweight style](#lightweight-variant). |
|
160
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
161
|
+
|
162
|
+
### SideNav.Link
|
163
|
+
|
164
|
+
| Name | Type | Default | Description |
|
165
|
+
| :-------- | :---------------- | :------: | :------------------------------------------------------------------------------------------------ |
|
166
|
+
| as | String | 'a' | Sets the HTML tag for the component. |
|
167
|
+
| href | String | | URL to be used for the Link |
|
168
|
+
| muted | Boolean | false | Uses a less prominent shade for Link color, and the default link shade on hover |
|
169
|
+
| selected | Boolean | false | Sets the link as selected, giving it a different style and setting the `aria-current` attribute. |
|
170
|
+
| underline | Boolean | false | Adds underline to the Link |
|
171
|
+
| variant | String | 'normal' | Set to `full` to render [a full variant](#full-variant), suitable for including icons and labels. |
|
172
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
title: Spinner
|
3
|
+
status: Alpha
|
4
|
+
description: Use spinners to let users know that content is being loaded.
|
5
|
+
componentId: spinner
|
6
|
+
source: https://github.com/primer/components/blob/main/src/Spinner.tsx
|
7
|
+
---
|
8
|
+
|
9
|
+
import {Props} from '../src/props'
|
10
|
+
import {Spinner} from '@primer/components'
|
11
|
+
|
12
|
+
```jsx live
|
13
|
+
<Spinner />
|
14
|
+
```
|
15
|
+
|
16
|
+
## Props
|
17
|
+
|
18
|
+
<Props of={Spinner} />
|
19
|
+
|
20
|
+
## Examples
|
21
|
+
|
22
|
+
### Small
|
23
|
+
|
24
|
+
```jsx live
|
25
|
+
<Spinner size="small" />
|
26
|
+
```
|
27
|
+
|
28
|
+
### Large
|
29
|
+
|
30
|
+
```jsx live
|
31
|
+
<Spinner size="large" />
|
32
|
+
```
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
title: StateLabel
|
3
|
+
status: Alpha
|
4
|
+
---
|
5
|
+
|
6
|
+
Use StateLabel components to show the status of an issue or pull request.
|
7
|
+
|
8
|
+
## Default example
|
9
|
+
|
10
|
+
```jsx live
|
11
|
+
<>
|
12
|
+
<StateLabel status="issueOpened">Open</StateLabel>
|
13
|
+
<StateLabel status="issueClosed">Closed</StateLabel>
|
14
|
+
<StateLabel status="pullOpened">Open</StateLabel>
|
15
|
+
<StateLabel status="pullClosed">Closed</StateLabel>
|
16
|
+
<StateLabel status="pullMerged">Merged</StateLabel>
|
17
|
+
<StateLabel status="draft">Draft</StateLabel>
|
18
|
+
<StateLabel status="issueDraft">Draft</StateLabel>
|
19
|
+
</>
|
20
|
+
```
|
21
|
+
|
22
|
+
## Component props
|
23
|
+
|
24
|
+
| Name | Type | Default | Description |
|
25
|
+
| :------ | :---------------- | :------: | :------------------------------------------------------------------------------------------------------------- |
|
26
|
+
| variant | String | 'normal' | a value of `small` or `normal` results in a smaller or larger version of the StateLabel. |
|
27
|
+
| status | String | | Can be one of `issueOpened`, `issueClosed`, `pullOpened`, `pullClosed`, `pullMerged`, `draft` or `issueDraft`. |
|
28
|
+
| sx | SystemStyleObject | {} | Style to be applied to the component |
|