@primer/components 31.2.0-rc.6afeaa37 → 31.2.0-rc.76ed571d
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/.github/workflows/ci.yml +5 -2
- package/.github/workflows/release.yml +1 -0
- package/.github/workflows/release_canary.yml +1 -0
- package/CHANGELOG.md +4 -0
- package/dist/browser.esm.js +209 -209
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +195 -195
- package/dist/browser.umd.js.map +1 -1
- package/docs/content/ActionList2.mdx +14 -8
- package/docs/content/StateLabel.md +5 -4
- package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +2 -2
- package/lib/ActionList/Divider.jsx +29 -0
- package/lib/ActionList/Group.jsx +23 -0
- package/lib/ActionList/Header.jsx +66 -0
- package/lib/ActionList/Item.jsx +301 -0
- package/lib/ActionList/List.jsx +138 -0
- package/lib/ActionList/index.js +12 -23
- package/lib/ActionList2/Description.jsx +30 -0
- package/lib/ActionList2/Divider.jsx +22 -0
- package/lib/ActionList2/Group.jsx +25 -0
- package/lib/ActionList2/Header.jsx +36 -0
- package/lib/ActionList2/Item.jsx +174 -0
- package/lib/ActionList2/LinkItem.jsx +28 -0
- package/lib/ActionList2/List.jsx +41 -0
- package/lib/ActionList2/Selection.jsx +36 -0
- package/lib/ActionList2/Visuals.jsx +48 -0
- package/lib/ActionList2/index.js +23 -41
- package/lib/ActionMenu.jsx +73 -0
- package/lib/AnchoredOverlay/AnchoredOverlay.jsx +100 -0
- package/lib/AnchoredOverlay/index.js +4 -12
- package/lib/Autocomplete/Autocomplete.d.ts +28 -28
- package/lib/Autocomplete/Autocomplete.jsx +100 -0
- package/lib/Autocomplete/AutocompleteContext.jsx +5 -0
- package/lib/Autocomplete/AutocompleteInput.d.ts +28 -28
- package/lib/Autocomplete/AutocompleteInput.jsx +113 -0
- package/lib/Autocomplete/AutocompleteMenu.jsx +190 -0
- package/lib/Autocomplete/AutocompleteOverlay.jsx +55 -0
- package/lib/Autocomplete/index.js +7 -14
- package/lib/Avatar.jsx +34 -0
- package/lib/AvatarPair.jsx +29 -0
- package/lib/AvatarStack.jsx +151 -0
- package/lib/BaseStyles.jsx +65 -0
- package/lib/BorderBox.jsx +18 -0
- package/lib/Box.jsx +10 -0
- package/lib/BranchName.jsx +20 -0
- package/lib/Breadcrumbs.jsx +74 -0
- package/lib/Button/Button.d.ts +25 -25
- package/lib/Button/Button.jsx +60 -0
- package/lib/Button/ButtonBase.jsx +36 -0
- package/lib/Button/ButtonClose.d.ts +45 -45
- package/lib/Button/ButtonClose.jsx +55 -0
- package/lib/Button/ButtonDanger.d.ts +25 -25
- package/lib/Button/ButtonDanger.jsx +63 -0
- package/lib/Button/ButtonGroup.jsx +55 -0
- package/lib/Button/ButtonInvisible.d.ts +25 -25
- package/lib/Button/ButtonInvisible.jsx +52 -0
- package/lib/Button/ButtonOutline.d.ts +25 -25
- package/lib/Button/ButtonOutline.jsx +63 -0
- package/lib/Button/ButtonPrimary.d.ts +25 -25
- package/lib/Button/ButtonPrimary.jsx +62 -0
- package/lib/Button/ButtonStyles.jsx +37 -0
- package/lib/Button/ButtonTableList.jsx +49 -0
- package/lib/Button/index.js +21 -70
- package/lib/Caret.jsx +93 -0
- package/lib/CircleBadge.jsx +43 -0
- package/lib/CircleOcticon.d.ts +42 -42
- package/lib/CircleOcticon.jsx +21 -0
- package/lib/CounterLabel.jsx +44 -0
- package/lib/Details.jsx +21 -0
- package/lib/Dialog/ConfirmationDialog.jsx +146 -0
- package/lib/Dialog/Dialog.js +1 -0
- package/lib/Dialog/Dialog.jsx +273 -0
- package/lib/Dialog.d.ts +45 -45
- package/lib/Dialog.jsx +131 -0
- package/lib/Dropdown.d.ts +176 -176
- package/lib/Dropdown.jsx +134 -0
- package/lib/DropdownMenu/DropdownButton.d.ts +46 -46
- package/lib/DropdownMenu/DropdownButton.jsx +14 -0
- package/lib/DropdownMenu/DropdownMenu.jsx +70 -0
- package/lib/DropdownMenu/index.js +6 -20
- package/lib/DropdownStyles.js +18 -26
- package/lib/FilterList.d.ts +42 -42
- package/lib/FilterList.jsx +63 -0
- package/lib/FilteredActionList/FilteredActionList.jsx +100 -0
- package/lib/FilteredActionList/index.js +4 -12
- package/lib/FilteredSearch.jsx +29 -0
- package/lib/Flash.jsx +70 -0
- package/lib/Flex.jsx +15 -0
- package/lib/FormGroup.jsx +25 -0
- package/lib/Grid.jsx +15 -0
- package/lib/Header.jsx +90 -0
- package/lib/Heading.jsx +21 -0
- package/lib/Label.jsx +84 -0
- package/lib/LabelGroup.jsx +19 -0
- package/lib/Link.jsx +38 -0
- package/lib/NewButton/button-counter.d.ts +6 -0
- package/lib/NewButton/button-counter.js +31 -0
- package/lib/NewButton/button-counter.jsx +14 -0
- package/lib/NewButton/button.d.ts +13 -0
- package/lib/NewButton/button.js +316 -0
- package/lib/NewButton/button.jsx +278 -0
- package/lib/NewButton/index.d.ts +14 -0
- package/lib/NewButton/index.js +8 -0
- package/lib/NewButton/types.d.ts +32 -0
- package/lib/NewButton/types.js +2 -0
- package/lib/Overlay.jsx +156 -0
- package/lib/Pagehead.jsx +18 -0
- package/lib/Pagination/Pagination.jsx +163 -0
- package/lib/Pagination/index.js +6 -12
- package/lib/Pagination/model.jsx +174 -0
- package/lib/PointerBox.jsx +25 -0
- package/lib/Popover.jsx +210 -0
- package/lib/Portal/Portal.jsx +79 -0
- package/lib/Portal/index.js +5 -16
- package/lib/Position.d.ts +4 -4
- package/lib/Position.jsx +46 -0
- package/lib/ProgressBar.jsx +39 -0
- package/lib/SelectMenu/SelectMenu.d.ts +246 -246
- package/lib/SelectMenu/SelectMenu.jsx +114 -0
- package/lib/SelectMenu/SelectMenuContext.jsx +5 -0
- package/lib/SelectMenu/SelectMenuDivider.jsx +43 -0
- package/lib/SelectMenu/SelectMenuFilter.jsx +59 -0
- package/lib/SelectMenu/SelectMenuFooter.jsx +46 -0
- package/lib/SelectMenu/SelectMenuHeader.jsx +44 -0
- package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib/SelectMenu/SelectMenuItem.jsx +143 -0
- package/lib/SelectMenu/SelectMenuList.jsx +60 -0
- package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +21 -0
- package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib/SelectMenu/SelectMenuModal.jsx +119 -0
- package/lib/SelectMenu/SelectMenuTab.jsx +93 -0
- package/lib/SelectMenu/SelectMenuTabPanel.jsx +43 -0
- package/lib/SelectMenu/SelectMenuTabs.jsx +58 -0
- package/lib/SelectMenu/hooks/useKeyboardNav.js +80 -96
- package/lib/SelectMenu/index.js +7 -14
- package/lib/SelectPanel/SelectPanel.jsx +105 -0
- package/lib/SelectPanel/index.js +4 -12
- package/lib/SideNav.jsx +177 -0
- package/lib/Spinner.jsx +35 -0
- package/lib/StateLabel.d.ts +1 -1
- package/lib/StateLabel.js +6 -1
- package/lib/StateLabel.jsx +94 -0
- package/lib/StyledOcticon.jsx +20 -0
- package/lib/SubNav.jsx +104 -0
- package/lib/TabNav.jsx +60 -0
- package/lib/Text.jsx +14 -0
- package/lib/TextInput.jsx +23 -0
- package/lib/TextInputWithTokens.d.ts +28 -28
- package/lib/TextInputWithTokens.jsx +218 -0
- package/lib/ThemeProvider.jsx +130 -0
- package/lib/Timeline.d.ts +43 -43
- package/lib/Timeline.jsx +124 -0
- package/lib/Token/AvatarToken.d.ts +1 -1
- package/lib/Token/AvatarToken.jsx +54 -0
- package/lib/Token/IssueLabelToken.d.ts +1 -1
- package/lib/Token/IssueLabelToken.jsx +125 -0
- package/lib/Token/Token.d.ts +1 -1
- package/lib/Token/Token.jsx +103 -0
- package/lib/Token/TokenBase.jsx +88 -0
- package/lib/Token/_RemoveTokenButton.jsx +108 -0
- package/lib/Token/_TokenTextContainer.jsx +49 -0
- package/lib/Token/index.js +11 -30
- package/lib/Tooltip.jsx +246 -0
- package/lib/Truncate.jsx +27 -0
- package/lib/UnderlineNav.jsx +90 -0
- package/lib/_TextInputWrapper.jsx +120 -0
- package/lib/_UnstyledTextInput.jsx +22 -0
- package/lib/__tests__/ActionList.test.jsx +49 -0
- package/lib/__tests__/ActionList.types.test.jsx +45 -0
- package/lib/__tests__/ActionList2.test.jsx +46 -0
- package/lib/__tests__/ActionMenu.test.jsx +124 -0
- package/lib/__tests__/AnchoredOverlay.test.jsx +121 -0
- package/lib/__tests__/Autocomplete.test.jsx +299 -0
- package/lib/__tests__/Avatar.test.jsx +42 -0
- package/lib/__tests__/AvatarStack.test.jsx +43 -0
- package/lib/__tests__/BorderBox.test.jsx +36 -0
- package/lib/__tests__/Box.test.jsx +41 -0
- package/lib/__tests__/BranchName.test.jsx +27 -0
- package/lib/__tests__/Breadcrumbs.test.jsx +28 -0
- package/lib/__tests__/BreadcrumbsItem.test.jsx +31 -0
- package/lib/__tests__/Button.test.jsx +100 -0
- package/lib/__tests__/Caret.test.jsx +37 -0
- package/lib/__tests__/CircleBadge.test.jsx +55 -0
- package/lib/__tests__/CircleOcticon.test.jsx +45 -0
- package/lib/__tests__/ConfirmationDialog.test.jsx +119 -0
- package/lib/__tests__/CounterLabel.test.jsx +36 -0
- package/lib/__tests__/Details.test.jsx +85 -0
- package/lib/__tests__/Dialog.test.jsx +139 -0
- package/lib/__tests__/Dropdown.test.jsx +49 -0
- package/lib/__tests__/DropdownMenu.test.jsx +119 -0
- package/lib/__tests__/FilterList.test.jsx +27 -0
- package/lib/__tests__/FilterListItem.test.jsx +31 -0
- package/lib/__tests__/FilteredSearch.test.jsx +27 -0
- package/lib/__tests__/Flash.test.jsx +36 -0
- package/lib/__tests__/Flex.test.jsx +51 -0
- package/lib/__tests__/FormGroup.test.jsx +36 -0
- package/lib/__tests__/Grid.test.jsx +69 -0
- package/lib/__tests__/Header.test.jsx +45 -0
- package/lib/__tests__/Heading.test.jsx +71 -0
- package/lib/__tests__/KeyPaths.types.test.js +5 -8
- package/lib/__tests__/Label.test.jsx +33 -0
- package/lib/__tests__/LabelGroup.test.jsx +29 -0
- package/lib/__tests__/Link.test.jsx +43 -0
- package/lib/__tests__/Merge.types.test.js +13 -19
- package/lib/__tests__/NewButton.test.d.ts +1 -0
- package/lib/__tests__/NewButton.test.js +86 -0
- package/lib/__tests__/NewButton.test.jsx +55 -0
- package/lib/__tests__/Overlay.test.jsx +105 -0
- package/lib/__tests__/Pagehead.test.jsx +25 -0
- package/lib/__tests__/Pagination/Pagination.test.jsx +32 -0
- package/lib/__tests__/Pagination/PaginationModel.test.jsx +118 -0
- package/lib/__tests__/PointerBox.test.jsx +33 -0
- package/lib/__tests__/Popover.test.jsx +58 -0
- package/lib/__tests__/Portal.test.jsx +102 -0
- package/lib/__tests__/Position.test.jsx +96 -0
- package/lib/__tests__/ProgressBar.test.jsx +38 -0
- package/lib/__tests__/SelectMenu.test.jsx +120 -0
- package/lib/__tests__/SelectPanel.test.jsx +48 -0
- package/lib/__tests__/SideNav.test.jsx +55 -0
- package/lib/__tests__/Spinner.test.jsx +41 -0
- package/lib/__tests__/StateLabel.test.jsx +46 -0
- package/lib/__tests__/StyledOcticon.test.jsx +28 -0
- package/lib/__tests__/SubNav.test.jsx +47 -0
- package/lib/__tests__/SubNavLink.test.jsx +31 -0
- package/lib/__tests__/TabNav.test.jsx +32 -0
- package/lib/__tests__/Text.test.jsx +71 -0
- package/lib/__tests__/TextInput.test.jsx +45 -0
- package/lib/__tests__/TextInputWithTokens.test.jsx +302 -0
- package/lib/__tests__/ThemeProvider.test.jsx +314 -0
- package/lib/__tests__/Timeline.test.jsx +51 -0
- package/lib/__tests__/Token.test.jsx +93 -0
- package/lib/__tests__/Tooltip.test.jsx +46 -0
- package/lib/__tests__/Truncate.test.jsx +41 -0
- package/lib/__tests__/UnderlineNav.test.jsx +53 -0
- package/lib/__tests__/UnderlineNavLink.test.jsx +31 -0
- package/lib/__tests__/behaviors/anchoredPosition.test.js +229 -376
- package/lib/__tests__/behaviors/focusTrap.test.jsx +184 -0
- package/lib/__tests__/behaviors/focusZone.test.jsx +406 -0
- package/lib/__tests__/behaviors/iterateFocusableElements.test.jsx +58 -0
- package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +145 -216
- package/lib/__tests__/filterObject.test.js +48 -27
- package/lib/__tests__/hooks/useAnchoredPosition.test.jsx +29 -0
- package/lib/__tests__/hooks/useOnEscapePress.test.jsx +19 -0
- package/lib/__tests__/hooks/useOnOutsideClick.test.jsx +63 -0
- package/lib/__tests__/hooks/useOpenAndCloseFocus.test.jsx +61 -0
- package/lib/__tests__/hooks/useProvidedStateOrCreate.test.jsx +56 -0
- package/lib/__tests__/theme.test.js +33 -34
- package/lib/__tests__/themeGet.test.js +12 -23
- package/lib/__tests__/useSafeTimeout.test.jsx +36 -0
- package/lib/__tests__/utils/createSlots.test.jsx +57 -0
- package/lib/behaviors/anchoredPosition.js +205 -234
- package/lib/behaviors/focusTrap.js +121 -157
- package/lib/behaviors/focusZone.js +434 -509
- package/lib/behaviors/scrollIntoViewingArea.js +18 -35
- package/lib/constants.js +39 -43
- package/lib/{unreleased.d.ts → drafts.d.ts} +2 -1
- package/lib/drafts.js +21 -0
- package/lib/hooks/index.js +16 -60
- package/lib/hooks/useAnchoredPosition.js +32 -40
- package/lib/hooks/useCombinedRefs.js +32 -36
- package/lib/hooks/useDetails.jsx +39 -0
- package/lib/hooks/useDialog.js +72 -96
- package/lib/hooks/useFocusTrap.js +43 -60
- package/lib/hooks/useFocusZone.js +54 -50
- package/lib/hooks/useOnEscapePress.js +25 -36
- package/lib/hooks/useOnOutsideClick.jsx +61 -0
- package/lib/hooks/useOpenAndCloseFocus.js +22 -34
- package/lib/hooks/useOverlay.jsx +15 -0
- package/lib/hooks/useProvidedRefOrCreate.js +10 -14
- package/lib/hooks/useProvidedStateOrCreate.js +13 -16
- package/lib/hooks/useRenderForcingRef.js +13 -17
- package/lib/hooks/useResizeObserver.js +15 -18
- package/lib/hooks/useSafeTimeout.js +22 -30
- package/lib/hooks/useScrollFlash.js +16 -23
- package/lib/index.d.ts +2 -0
- package/lib/index.js +163 -636
- package/lib/polyfills/eventListenerSignal.js +37 -45
- package/lib/stories/ActionList2.stories.js +3 -2
- package/lib/stories/NewButton.stories.js +230 -0
- package/lib/sx.js +10 -22
- package/lib/theme-preval.js +64 -3023
- package/lib/theme.js +3 -12
- package/lib/utils/create-slots.jsx +65 -0
- package/lib/utils/deprecate.jsx +59 -0
- package/lib/utils/isNumeric.jsx +7 -0
- package/lib/utils/iterateFocusableElements.js +63 -85
- package/lib/utils/ssr.jsx +6 -0
- package/lib/utils/test-deprecations.jsx +20 -0
- package/lib/utils/test-helpers.jsx +8 -0
- package/lib/utils/test-matchers.jsx +100 -0
- package/lib/utils/testing.jsx +206 -0
- package/lib/utils/theme.js +33 -47
- package/lib/utils/types/AriaRole.js +2 -1
- package/lib/utils/types/ComponentProps.js +2 -1
- package/lib/utils/types/Flatten.js +2 -1
- package/lib/utils/types/KeyPaths.js +2 -1
- package/lib/utils/types/MandateProps.js +16 -1
- package/lib/utils/types/Merge.js +2 -1
- package/lib/utils/types/index.js +16 -69
- package/lib/utils/uniqueId.js +5 -8
- package/lib/utils/use-force-update.js +8 -14
- package/lib/utils/useIsomorphicLayoutEffect.js +8 -11
- package/lib/utils/userAgent.js +8 -12
- package/lib-esm/Autocomplete/Autocomplete.d.ts +28 -28
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +28 -28
- package/lib-esm/Button/Button.d.ts +25 -25
- package/lib-esm/Button/ButtonClose.d.ts +45 -45
- package/lib-esm/Button/ButtonDanger.d.ts +25 -25
- package/lib-esm/Button/ButtonInvisible.d.ts +25 -25
- package/lib-esm/Button/ButtonOutline.d.ts +25 -25
- package/lib-esm/Button/ButtonPrimary.d.ts +25 -25
- package/lib-esm/CircleOcticon.d.ts +42 -42
- package/lib-esm/Dialog/Dialog.js +1 -0
- package/lib-esm/Dialog.d.ts +45 -45
- package/lib-esm/Dropdown.d.ts +176 -176
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +46 -46
- package/lib-esm/FilterList.d.ts +42 -42
- package/lib-esm/NewButton/button-counter.d.ts +6 -0
- package/lib-esm/NewButton/button-counter.js +18 -0
- package/lib-esm/NewButton/button.d.ts +13 -0
- package/lib-esm/NewButton/button.js +298 -0
- package/lib-esm/NewButton/index.d.ts +14 -0
- package/lib-esm/NewButton/index.js +5 -0
- package/lib-esm/NewButton/types.d.ts +32 -0
- package/lib-esm/NewButton/types.js +1 -0
- package/lib-esm/Position.d.ts +4 -4
- package/lib-esm/SelectMenu/SelectMenu.d.ts +246 -246
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib-esm/StateLabel.d.ts +1 -1
- package/lib-esm/StateLabel.js +7 -2
- package/lib-esm/TextInputWithTokens.d.ts +28 -28
- package/lib-esm/Timeline.d.ts +43 -43
- 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__/NewButton.test.d.ts +1 -0
- package/lib-esm/__tests__/NewButton.test.js +76 -0
- package/lib-esm/{unreleased.d.ts → drafts.d.ts} +2 -1
- package/lib-esm/{unreleased.js → drafts.js} +3 -2
- package/lib-esm/index.d.ts +2 -0
- package/lib-esm/index.js +1 -0
- package/lib-esm/stories/ActionList2.stories.js +3 -3
- package/lib-esm/stories/NewButton.stories.js +178 -0
- package/package-lock.json +7 -7
- package/package.json +4 -3
- package/script/build +1 -1
- package/src/Dialog/Dialog.tsx +1 -0
- package/src/NewButton/button-counter.tsx +15 -0
- package/src/NewButton/button.tsx +279 -0
- package/src/NewButton/index.ts +10 -0
- package/src/NewButton/types.ts +36 -0
- package/src/StateLabel.tsx +14 -2
- package/src/__tests__/NewButton.test.tsx +64 -0
- package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +182 -0
- package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +4 -0
- package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +13 -6
- package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +1 -0
- package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +66 -0
- package/src/__tests__/__snapshots__/Token.test.tsx.snap +17 -0
- package/src/{unreleased.ts → drafts.ts} +2 -1
- package/src/index.ts +2 -0
- package/src/stories/ActionList2.stories.tsx +12 -9
- package/src/stories/NewButton.stories.tsx +201 -0
- package/stats.html +1 -1
- package/tsconfig.base.json +20 -0
- package/tsconfig.build.json +2 -2
- package/tsconfig.json +4 -17
- package/lib/unreleased.js +0 -18
@@ -199,6 +199,7 @@ exports[`Token components AvatarToken renders all sizes 1`] = `
|
|
199
199
|
style={
|
200
200
|
Object {
|
201
201
|
"display": "inline-block",
|
202
|
+
"overflow": "visible",
|
202
203
|
"userSelect": "none",
|
203
204
|
"verticalAlign": "text-bottom",
|
204
205
|
}
|
@@ -409,6 +410,7 @@ exports[`Token components AvatarToken renders all sizes 2`] = `
|
|
409
410
|
style={
|
410
411
|
Object {
|
411
412
|
"display": "inline-block",
|
413
|
+
"overflow": "visible",
|
412
414
|
"userSelect": "none",
|
413
415
|
"verticalAlign": "text-bottom",
|
414
416
|
}
|
@@ -619,6 +621,7 @@ exports[`Token components AvatarToken renders all sizes 3`] = `
|
|
619
621
|
style={
|
620
622
|
Object {
|
621
623
|
"display": "inline-block",
|
624
|
+
"overflow": "visible",
|
622
625
|
"userSelect": "none",
|
623
626
|
"verticalAlign": "text-bottom",
|
624
627
|
}
|
@@ -829,6 +832,7 @@ exports[`Token components AvatarToken renders all sizes 4`] = `
|
|
829
832
|
style={
|
830
833
|
Object {
|
831
834
|
"display": "inline-block",
|
835
|
+
"overflow": "visible",
|
832
836
|
"userSelect": "none",
|
833
837
|
"verticalAlign": "text-bottom",
|
834
838
|
}
|
@@ -1251,6 +1255,7 @@ exports[`Token components AvatarToken renders with a remove button 1`] = `
|
|
1251
1255
|
style={
|
1252
1256
|
Object {
|
1253
1257
|
"display": "inline-block",
|
1258
|
+
"overflow": "visible",
|
1254
1259
|
"userSelect": "none",
|
1255
1260
|
"verticalAlign": "text-bottom",
|
1256
1261
|
}
|
@@ -1427,6 +1432,7 @@ exports[`Token components IssueLabelToken renders all sizes 1`] = `
|
|
1427
1432
|
style={
|
1428
1433
|
Object {
|
1429
1434
|
"display": "inline-block",
|
1435
|
+
"overflow": "visible",
|
1430
1436
|
"userSelect": "none",
|
1431
1437
|
"verticalAlign": "text-bottom",
|
1432
1438
|
}
|
@@ -1603,6 +1609,7 @@ exports[`Token components IssueLabelToken renders all sizes 2`] = `
|
|
1603
1609
|
style={
|
1604
1610
|
Object {
|
1605
1611
|
"display": "inline-block",
|
1612
|
+
"overflow": "visible",
|
1606
1613
|
"userSelect": "none",
|
1607
1614
|
"verticalAlign": "text-bottom",
|
1608
1615
|
}
|
@@ -1779,6 +1786,7 @@ exports[`Token components IssueLabelToken renders all sizes 3`] = `
|
|
1779
1786
|
style={
|
1780
1787
|
Object {
|
1781
1788
|
"display": "inline-block",
|
1789
|
+
"overflow": "visible",
|
1782
1790
|
"userSelect": "none",
|
1783
1791
|
"verticalAlign": "text-bottom",
|
1784
1792
|
}
|
@@ -1955,6 +1963,7 @@ exports[`Token components IssueLabelToken renders all sizes 4`] = `
|
|
1955
1963
|
style={
|
1956
1964
|
Object {
|
1957
1965
|
"display": "inline-block",
|
1966
|
+
"overflow": "visible",
|
1958
1967
|
"userSelect": "none",
|
1959
1968
|
"verticalAlign": "text-bottom",
|
1960
1969
|
}
|
@@ -2214,6 +2223,7 @@ exports[`Token components IssueLabelToken renders custom fill color 1`] = `
|
|
2214
2223
|
style={
|
2215
2224
|
Object {
|
2216
2225
|
"display": "inline-block",
|
2226
|
+
"overflow": "visible",
|
2217
2227
|
"userSelect": "none",
|
2218
2228
|
"verticalAlign": "text-bottom",
|
2219
2229
|
}
|
@@ -2390,6 +2400,7 @@ exports[`Token components IssueLabelToken renders default fill color 1`] = `
|
|
2390
2400
|
style={
|
2391
2401
|
Object {
|
2392
2402
|
"display": "inline-block",
|
2403
|
+
"overflow": "visible",
|
2393
2404
|
"userSelect": "none",
|
2394
2405
|
"verticalAlign": "text-bottom",
|
2395
2406
|
}
|
@@ -2679,6 +2690,7 @@ exports[`Token components IssueLabelToken renders with a remove button 1`] = `
|
|
2679
2690
|
style={
|
2680
2691
|
Object {
|
2681
2692
|
"display": "inline-block",
|
2693
|
+
"overflow": "visible",
|
2682
2694
|
"userSelect": "none",
|
2683
2695
|
"verticalAlign": "text-bottom",
|
2684
2696
|
}
|
@@ -2845,6 +2857,7 @@ exports[`Token components Token renders all sizes 1`] = `
|
|
2845
2857
|
style={
|
2846
2858
|
Object {
|
2847
2859
|
"display": "inline-block",
|
2860
|
+
"overflow": "visible",
|
2848
2861
|
"userSelect": "none",
|
2849
2862
|
"verticalAlign": "text-bottom",
|
2850
2863
|
}
|
@@ -3011,6 +3024,7 @@ exports[`Token components Token renders all sizes 2`] = `
|
|
3011
3024
|
style={
|
3012
3025
|
Object {
|
3013
3026
|
"display": "inline-block",
|
3027
|
+
"overflow": "visible",
|
3014
3028
|
"userSelect": "none",
|
3015
3029
|
"verticalAlign": "text-bottom",
|
3016
3030
|
}
|
@@ -3177,6 +3191,7 @@ exports[`Token components Token renders all sizes 3`] = `
|
|
3177
3191
|
style={
|
3178
3192
|
Object {
|
3179
3193
|
"display": "inline-block",
|
3194
|
+
"overflow": "visible",
|
3180
3195
|
"userSelect": "none",
|
3181
3196
|
"verticalAlign": "text-bottom",
|
3182
3197
|
}
|
@@ -3343,6 +3358,7 @@ exports[`Token components Token renders all sizes 4`] = `
|
|
3343
3358
|
style={
|
3344
3359
|
Object {
|
3345
3360
|
"display": "inline-block",
|
3361
|
+
"overflow": "visible",
|
3346
3362
|
"userSelect": "none",
|
3347
3363
|
"verticalAlign": "text-bottom",
|
3348
3364
|
}
|
@@ -3782,6 +3798,7 @@ exports[`Token components Token renders with a remove button 1`] = `
|
|
3782
3798
|
style={
|
3783
3799
|
Object {
|
3784
3800
|
"display": "inline-block",
|
3801
|
+
"overflow": "visible",
|
3785
3802
|
"userSelect": "none",
|
3786
3803
|
"verticalAlign": "text-bottom",
|
3787
3804
|
}
|
@@ -2,8 +2,9 @@
|
|
2
2
|
* api yet (not in main bundle). We don't recommend using it in production.
|
3
3
|
*
|
4
4
|
* But, they are published on npm and you can import them for experimentation/feedback.
|
5
|
-
* example: import {ActionList} from '@primer/components/
|
5
|
+
* example: import {ActionList} from '@primer/components/drafts
|
6
6
|
*/
|
7
7
|
|
8
8
|
// Components
|
9
9
|
export * from './ActionList2'
|
10
|
+
export * from './NewButton'
|
package/src/index.ts
CHANGED
@@ -13,7 +13,7 @@ import {
|
|
13
13
|
LinkIcon,
|
14
14
|
LawIcon,
|
15
15
|
StarIcon,
|
16
|
-
|
16
|
+
RepoForkedIcon,
|
17
17
|
AlertIcon,
|
18
18
|
TableIcon,
|
19
19
|
PeopleIcon,
|
@@ -112,7 +112,7 @@ export function WithIcon(): JSX.Element {
|
|
112
112
|
</ActionList.Item>
|
113
113
|
<ActionList.Item>
|
114
114
|
<ActionList.LeadingVisual>
|
115
|
-
<
|
115
|
+
<RepoForkedIcon />
|
116
116
|
</ActionList.LeadingVisual>
|
117
117
|
3 forks
|
118
118
|
</ActionList.Item>
|
@@ -241,7 +241,7 @@ SingleSelectListStory.storyName = 'Single Select'
|
|
241
241
|
export function MultiSelectListStory(): JSX.Element {
|
242
242
|
const [assignees, setAssignees] = React.useState(users.slice(0, 2))
|
243
243
|
|
244
|
-
const toggleAssignee = assignee => {
|
244
|
+
const toggleAssignee = (assignee: typeof users[number]) => {
|
245
245
|
const assigneeIndex = assignees.findIndex(a => a.login === assignee.login)
|
246
246
|
|
247
247
|
if (assigneeIndex === -1) setAssignees([...assignees, assignee])
|
@@ -307,7 +307,7 @@ DisabledStory.storyName = 'Disabled Items'
|
|
307
307
|
export function GroupsStory(): JSX.Element {
|
308
308
|
const [assignees, setAssignees] = React.useState(users.slice(0, 1))
|
309
309
|
|
310
|
-
const toggleAssignee = assignee => {
|
310
|
+
const toggleAssignee = (assignee: typeof users[number]) => {
|
311
311
|
const assigneeIndex = assignees.findIndex(a => a.login === assignee.login)
|
312
312
|
|
313
313
|
if (assigneeIndex === -1) setAssignees([...assignees, assignee])
|
@@ -635,7 +635,8 @@ export function DOMPropsStory(): JSX.Element {
|
|
635
635
|
<h1>Simple List</h1>
|
636
636
|
<ErsatzOverlay>
|
637
637
|
<ActionList>
|
638
|
-
|
638
|
+
{/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
|
639
|
+
<ActionList.Item id="something" onClick={(event: any) => alert(`Id is '${event.target.id}'`)}>
|
639
640
|
Has an id
|
640
641
|
</ActionList.Item>
|
641
642
|
</ActionList>
|
@@ -901,7 +902,7 @@ export function NestedChildren(): JSX.Element {
|
|
901
902
|
}
|
902
903
|
NestedChildren.storyName = 'Nested Children'
|
903
904
|
|
904
|
-
const ReviewerDescription = ({user}) => {
|
905
|
+
const ReviewerDescription = ({user}: {user: typeof users[number]}) => {
|
905
906
|
const usersRecentlyEditedFile = users.slice(0, 2)
|
906
907
|
|
907
908
|
if (usersRecentlyEditedFile.find(u => u.login === user.login)) {
|
@@ -938,7 +939,7 @@ export function ChildWithInternalState(): JSX.Element {
|
|
938
939
|
}
|
939
940
|
ChildWithInternalState.storyName = 'Child with internal state'
|
940
941
|
|
941
|
-
const StatefulChild = props => {
|
942
|
+
const StatefulChild: React.FC = props => {
|
942
943
|
const [nameVisible, setNameVisibility] = React.useState(false)
|
943
944
|
const toggle = () => {
|
944
945
|
setNameVisibility(!nameVisible)
|
@@ -1206,7 +1207,9 @@ const repos = [
|
|
1206
1207
|
export function AsyncListStory(): JSX.Element {
|
1207
1208
|
const [results, setResults] = React.useState(repos.slice(0, 6))
|
1208
1209
|
const [loading, setLoading] = React.useState(false)
|
1209
|
-
|
1210
|
+
|
1211
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
1212
|
+
const filter = async (event: any) => {
|
1210
1213
|
setLoading(true)
|
1211
1214
|
const filteredResults = await filterSlowly(event.target.value)
|
1212
1215
|
setResults(filteredResults)
|
@@ -1244,7 +1247,7 @@ export function AsyncListStory(): JSX.Element {
|
|
1244
1247
|
}
|
1245
1248
|
AsyncListStory.storyName = 'Async List Options'
|
1246
1249
|
|
1247
|
-
const filterSlowly = async query => {
|
1250
|
+
const filterSlowly = async (query: string) => {
|
1248
1251
|
// sleep for 1s before returning results
|
1249
1252
|
await new Promise(resolve => setTimeout(resolve, 1000))
|
1250
1253
|
return await repos.filter(name => name.includes(query))
|
@@ -0,0 +1,201 @@
|
|
1
|
+
import React, {useState} from 'react'
|
2
|
+
import {NewButton as Button, NewButtonProps as ButtonProps} from '../NewButton'
|
3
|
+
import {BaseStyles, ThemeProvider} from '..'
|
4
|
+
import {Meta} from '@storybook/react'
|
5
|
+
import {XIcon, SearchIcon, EyeIcon, EyeClosedIcon, TriangleDownIcon} from '@primer/octicons-react'
|
6
|
+
import Box from '../Box'
|
7
|
+
|
8
|
+
export default {
|
9
|
+
title: 'Composite components/New Button',
|
10
|
+
|
11
|
+
decorators: [
|
12
|
+
Story => {
|
13
|
+
return (
|
14
|
+
<ThemeProvider>
|
15
|
+
<BaseStyles>
|
16
|
+
<Story />
|
17
|
+
</BaseStyles>
|
18
|
+
</ThemeProvider>
|
19
|
+
)
|
20
|
+
}
|
21
|
+
],
|
22
|
+
argTypes: {
|
23
|
+
size: {
|
24
|
+
control: {
|
25
|
+
type: 'radio',
|
26
|
+
options: ['small', 'medium', 'large']
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
} as Meta
|
31
|
+
|
32
|
+
export const defaultButton = ({size = 'medium', ...args}: ButtonProps) => {
|
33
|
+
return (
|
34
|
+
<Button size={size} {...args}>
|
35
|
+
Default
|
36
|
+
</Button>
|
37
|
+
)
|
38
|
+
}
|
39
|
+
|
40
|
+
export const primaryButton = (args: ButtonProps) => {
|
41
|
+
return (
|
42
|
+
<Button {...args} variant="primary">
|
43
|
+
Primary
|
44
|
+
</Button>
|
45
|
+
)
|
46
|
+
}
|
47
|
+
|
48
|
+
export const dangerButton = (args: ButtonProps) => {
|
49
|
+
return (
|
50
|
+
<Button {...args} variant="danger">
|
51
|
+
Danger
|
52
|
+
</Button>
|
53
|
+
)
|
54
|
+
}
|
55
|
+
|
56
|
+
export const invisibleButton = (args: ButtonProps) => {
|
57
|
+
return (
|
58
|
+
<Button {...args} variant="invisible">
|
59
|
+
Invisible
|
60
|
+
</Button>
|
61
|
+
)
|
62
|
+
}
|
63
|
+
|
64
|
+
export const iconBeforeButton = (args: ButtonProps) => {
|
65
|
+
return (
|
66
|
+
<Button leadingIcon={SearchIcon} {...args}>
|
67
|
+
Before
|
68
|
+
</Button>
|
69
|
+
)
|
70
|
+
}
|
71
|
+
|
72
|
+
export const iconButton = ({...args}: ButtonProps) => {
|
73
|
+
return (
|
74
|
+
<>
|
75
|
+
<Box mb={2}>
|
76
|
+
<Button icon={XIcon} {...args}>
|
77
|
+
Close
|
78
|
+
</Button>
|
79
|
+
</Box>
|
80
|
+
<Box mb={2}>
|
81
|
+
<Button icon={XIcon} {...args} variant="invisible">
|
82
|
+
Close
|
83
|
+
</Button>
|
84
|
+
</Box>
|
85
|
+
<Box mb={2}>
|
86
|
+
<Button icon={XIcon} {...args} variant="danger">
|
87
|
+
Close
|
88
|
+
</Button>
|
89
|
+
</Box>
|
90
|
+
<Box mb={2}>
|
91
|
+
<Button icon={XIcon} {...args} variant="primary">
|
92
|
+
Close
|
93
|
+
</Button>
|
94
|
+
</Box>
|
95
|
+
<Box mb={2}>
|
96
|
+
<Button icon={XIcon} {...args} variant="outline">
|
97
|
+
Close
|
98
|
+
</Button>
|
99
|
+
</Box>
|
100
|
+
</>
|
101
|
+
)
|
102
|
+
}
|
103
|
+
|
104
|
+
export const WatchCounterButton = ({...args}: ButtonProps) => {
|
105
|
+
const [count, setCount] = useState(0)
|
106
|
+
return (
|
107
|
+
<>
|
108
|
+
<Box mb={2}>
|
109
|
+
<Button onClick={() => setCount(count + 1)} {...args}>
|
110
|
+
Watch
|
111
|
+
<Button.Counter>{count}</Button.Counter>
|
112
|
+
</Button>
|
113
|
+
</Box>
|
114
|
+
<Box mb={2}>
|
115
|
+
<Button onClick={() => setCount(count + 1)} {...args} variant="primary">
|
116
|
+
Watch
|
117
|
+
<Button.Counter>{count}</Button.Counter>
|
118
|
+
</Button>
|
119
|
+
</Box>
|
120
|
+
<Box mb={2}>
|
121
|
+
<Button onClick={() => setCount(count + 1)} {...args} variant="invisible">
|
122
|
+
Watch
|
123
|
+
<Button.Counter>{count}</Button.Counter>
|
124
|
+
</Button>
|
125
|
+
</Box>
|
126
|
+
<Box mb={2}>
|
127
|
+
<Button onClick={() => setCount(count + 1)} {...args} variant="danger">
|
128
|
+
Watch
|
129
|
+
<Button.Counter>{count}</Button.Counter>
|
130
|
+
</Button>
|
131
|
+
</Box>
|
132
|
+
<Box mb={2}>
|
133
|
+
<Button onClick={() => setCount(count + 1)} {...args} variant="outline">
|
134
|
+
Watch
|
135
|
+
<Button.Counter>{count}</Button.Counter>
|
136
|
+
</Button>
|
137
|
+
</Box>
|
138
|
+
</>
|
139
|
+
)
|
140
|
+
}
|
141
|
+
|
142
|
+
export const WatchIconButton = ({...args}: ButtonProps) => {
|
143
|
+
const [watching, setWatching] = useState(false)
|
144
|
+
const icon = watching ? EyeClosedIcon : () => <EyeIcon />
|
145
|
+
return (
|
146
|
+
<Button onClick={() => setWatching(!watching)} trailingIcon={icon} {...args}>
|
147
|
+
Watch
|
148
|
+
</Button>
|
149
|
+
)
|
150
|
+
}
|
151
|
+
|
152
|
+
export const caretButton = ({...args}: ButtonProps) => {
|
153
|
+
return (
|
154
|
+
<Button trailingIcon={TriangleDownIcon} {...args}>
|
155
|
+
Dropdown
|
156
|
+
</Button>
|
157
|
+
)
|
158
|
+
}
|
159
|
+
|
160
|
+
export const blockButton = ({...args}: ButtonProps) => {
|
161
|
+
return (
|
162
|
+
<Button {...args} sx={{width: '100%'}}>
|
163
|
+
Block
|
164
|
+
</Button>
|
165
|
+
)
|
166
|
+
}
|
167
|
+
|
168
|
+
export const disabledButton = ({...args}: ButtonProps) => {
|
169
|
+
return (
|
170
|
+
<>
|
171
|
+
<Box mb={2}>
|
172
|
+
<Button disabled {...args}>
|
173
|
+
Disabled
|
174
|
+
</Button>
|
175
|
+
</Box>
|
176
|
+
<Box mb={2}>
|
177
|
+
<Button disabled variant="danger" {...args}>
|
178
|
+
Disabled
|
179
|
+
</Button>
|
180
|
+
</Box>
|
181
|
+
<Box mb={2}>
|
182
|
+
<Button disabled variant="invisible" {...args}>
|
183
|
+
Disabled
|
184
|
+
</Button>
|
185
|
+
</Box>
|
186
|
+
<Box mb={2}>
|
187
|
+
<Button disabled variant="primary" {...args}>
|
188
|
+
Disabled
|
189
|
+
</Button>
|
190
|
+
</Box>
|
191
|
+
<Box mb={2}>
|
192
|
+
<Button disabled variant="outline" {...args}>
|
193
|
+
Disabled
|
194
|
+
</Button>
|
195
|
+
</Box>
|
196
|
+
<Box mb={2}>
|
197
|
+
<Button disabled icon={() => <XIcon />} {...args}></Button>
|
198
|
+
</Box>
|
199
|
+
</>
|
200
|
+
)
|
201
|
+
}
|