@primer/components 30.3.0-rc.2010c7d4 → 31.0.0-rc.15aa0a10
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/.eslintrc.json +2 -1
- package/.storybook/preview.js +4 -4
- package/CHANGELOG.md +12 -2
- package/codemods/deprecateUtilityComponents.js +1 -1
- package/contributor-docs/adrs/adr-003-prop-norms.md +72 -0
- package/dist/browser.esm.js +798 -794
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +801 -797
- package/dist/browser.umd.js.map +1 -1
- package/docs/content/Autocomplete.mdx +627 -0
- package/docs/content/TextInputTokens.mdx +89 -0
- package/docs/content/getting-started.md +1 -1
- package/docs/content/overriding-styles.mdx +7 -6
- package/docs/content/theming.md +5 -5
- package/docs/package-lock.json +288 -511
- package/docs/package.json +1 -1
- package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +14 -12
- package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +2 -0
- package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +7 -7
- package/lib/ActionList/Item.js +1 -1
- package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +2 -1
- package/lib/AnchoredOverlay/AnchoredOverlay.js +11 -3
- package/lib/Autocomplete/Autocomplete.d.ts +304 -0
- package/lib/Autocomplete/Autocomplete.js +145 -0
- package/lib/Autocomplete/AutocompleteContext.d.ts +17 -0
- package/lib/Autocomplete/AutocompleteContext.js +11 -0
- package/lib/Autocomplete/AutocompleteInput.d.ts +292 -0
- package/lib/Autocomplete/AutocompleteInput.js +157 -0
- package/lib/Autocomplete/AutocompleteMenu.d.ts +72 -0
- package/lib/Autocomplete/AutocompleteMenu.js +224 -0
- package/lib/Autocomplete/AutocompleteOverlay.d.ts +20 -0
- package/lib/Autocomplete/AutocompleteOverlay.js +80 -0
- package/lib/Autocomplete/index.d.ts +2 -0
- package/lib/Autocomplete/index.js +15 -0
- package/lib/BaseStyles.js +1 -1
- package/lib/BorderBox.js +1 -1
- package/lib/Button/ButtonInvisible.js +1 -1
- package/lib/Caret.js +2 -2
- package/lib/Dialog.js +1 -1
- package/lib/FilteredActionList/FilteredActionList.js +5 -31
- package/lib/Flash.js +16 -16
- package/lib/Label.js +1 -1
- package/lib/Overlay.d.ts +1 -0
- package/lib/Overlay.js +3 -1
- package/lib/ProgressBar.js +1 -1
- package/lib/StateLabel.js +13 -19
- package/lib/Token/_RemoveTokenButton.js +1 -1
- package/lib/__tests__/Autocomplete.test.d.ts +1 -0
- package/lib/__tests__/Autocomplete.test.js +528 -0
- package/lib/__tests__/BorderBox.test.js +1 -1
- package/lib/__tests__/CircleOcticon.test.js +1 -1
- package/lib/__tests__/CounterLabel.test.js +4 -4
- package/lib/__tests__/Flash.test.js +4 -4
- package/lib/__tests__/Link.test.js +1 -1
- package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
- package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +226 -0
- package/lib/behaviors/scrollIntoViewingArea.d.ts +1 -0
- package/lib/behaviors/scrollIntoViewingArea.js +39 -0
- package/lib/hooks/useOpenAndCloseFocus.d.ts +2 -1
- package/lib/hooks/useOpenAndCloseFocus.js +7 -2
- package/lib/hooks/useOverlay.d.ts +2 -1
- package/lib/hooks/useOverlay.js +4 -2
- package/lib/index.d.ts +2 -0
- package/lib/index.js +8 -0
- package/lib/stories/Autocomplete.stories.js +608 -0
- package/lib/stories/Dialog.stories.js +3 -3
- package/lib/stories/IssueLabelToken.stories.js +1 -1
- package/lib/stories/ProfileToken.stories.js +1 -1
- package/lib/theme-preval.js +370 -3100
- package/lib/utils/testing.d.ts +50 -493
- package/lib/utils/types/MandateProps.d.ts +3 -0
- package/lib/utils/types/MandateProps.js +1 -0
- package/lib/utils/types/index.d.ts +1 -0
- package/lib/utils/types/index.js +13 -0
- package/lib-esm/ActionList/Item.js +1 -1
- package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +2 -1
- package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +11 -3
- package/lib-esm/Autocomplete/Autocomplete.d.ts +304 -0
- package/lib-esm/Autocomplete/Autocomplete.js +123 -0
- package/lib-esm/Autocomplete/AutocompleteContext.d.ts +17 -0
- package/lib-esm/Autocomplete/AutocompleteContext.js +2 -0
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +292 -0
- package/lib-esm/Autocomplete/AutocompleteInput.js +138 -0
- package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +72 -0
- package/lib-esm/Autocomplete/AutocompleteMenu.js +205 -0
- package/lib-esm/Autocomplete/AutocompleteOverlay.d.ts +20 -0
- package/lib-esm/Autocomplete/AutocompleteOverlay.js +62 -0
- package/lib-esm/Autocomplete/index.d.ts +2 -0
- package/lib-esm/Autocomplete/index.js +1 -0
- package/lib-esm/BaseStyles.js +1 -1
- package/lib-esm/BorderBox.js +1 -1
- package/lib-esm/Button/ButtonInvisible.js +1 -1
- package/lib-esm/Caret.js +2 -2
- package/lib-esm/Dialog.js +1 -1
- package/lib-esm/FilteredActionList/FilteredActionList.js +3 -31
- package/lib-esm/Flash.js +16 -16
- package/lib-esm/Label.js +1 -1
- package/lib-esm/Overlay.d.ts +1 -0
- package/lib-esm/Overlay.js +3 -1
- package/lib-esm/ProgressBar.js +1 -1
- package/lib-esm/StateLabel.js +13 -19
- package/lib-esm/Token/_RemoveTokenButton.js +1 -1
- package/lib-esm/__tests__/Autocomplete.test.d.ts +1 -0
- package/lib-esm/__tests__/Autocomplete.test.js +494 -0
- package/lib-esm/__tests__/BorderBox.test.js +1 -1
- package/lib-esm/__tests__/CircleOcticon.test.js +1 -1
- package/lib-esm/__tests__/CounterLabel.test.js +4 -4
- package/lib-esm/__tests__/Flash.test.js +4 -4
- package/lib-esm/__tests__/Link.test.js +1 -1
- package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
- package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +224 -0
- package/lib-esm/behaviors/scrollIntoViewingArea.d.ts +1 -0
- package/lib-esm/behaviors/scrollIntoViewingArea.js +30 -0
- package/lib-esm/hooks/useOpenAndCloseFocus.d.ts +2 -1
- package/lib-esm/hooks/useOpenAndCloseFocus.js +7 -2
- package/lib-esm/hooks/useOverlay.d.ts +2 -1
- package/lib-esm/hooks/useOverlay.js +4 -2
- package/lib-esm/index.d.ts +2 -0
- package/lib-esm/index.js +1 -0
- package/lib-esm/stories/Autocomplete.stories.js +549 -0
- package/lib-esm/stories/Dialog.stories.js +3 -3
- package/lib-esm/stories/IssueLabelToken.stories.js +1 -1
- package/lib-esm/stories/ProfileToken.stories.js +1 -1
- package/lib-esm/theme-preval.js +370 -3100
- package/lib-esm/utils/testing.d.ts +50 -493
- package/lib-esm/utils/types/MandateProps.d.ts +3 -0
- package/lib-esm/utils/types/MandateProps.js +1 -0
- package/lib-esm/utils/types/index.d.ts +1 -0
- package/lib-esm/utils/types/index.js +2 -1
- package/package-lock.json +11 -8
- package/package.json +3 -3
- package/src/ActionList/Item.tsx +1 -1
- package/src/AnchoredOverlay/AnchoredOverlay.tsx +14 -3
- 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/BaseStyles.tsx +1 -1
- package/src/BorderBox.tsx +1 -1
- package/src/Button/ButtonInvisible.tsx +7 -2
- package/src/Caret.tsx +2 -2
- package/src/Dialog.tsx +1 -1
- package/src/FilteredActionList/FilteredActionList.tsx +10 -25
- package/src/Flash.tsx +16 -16
- package/src/Label.tsx +1 -1
- package/src/Overlay.tsx +4 -1
- package/src/ProgressBar.tsx +1 -1
- package/src/StateLabel.tsx +12 -20
- package/src/Token/_RemoveTokenButton.tsx +4 -2
- package/src/__tests__/Autocomplete.test.tsx +444 -0
- package/src/__tests__/BorderBox.test.tsx +1 -1
- package/src/__tests__/CircleOcticon.test.tsx +1 -1
- package/src/__tests__/CounterLabel.test.tsx +4 -4
- package/src/__tests__/Flash.test.tsx +4 -4
- package/src/__tests__/Link.test.tsx +1 -1
- package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +3 -3
- package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +3414 -0
- package/src/__tests__/__snapshots__/Button.test.tsx.snap +9 -1
- package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +1 -1
- package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +1 -1
- package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -21
- package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +16 -16
- package/src/__tests__/__snapshots__/Token.test.tsx.snap +34 -34
- package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +195 -0
- package/src/behaviors/scrollIntoViewingArea.ts +27 -0
- package/src/hooks/useOpenAndCloseFocus.ts +7 -2
- package/src/hooks/useOverlay.tsx +4 -2
- package/src/index.ts +2 -0
- package/src/stories/Autocomplete.stories.tsx +572 -0
- package/src/stories/Dialog.stories.tsx +3 -3
- package/src/stories/IssueLabelToken.stories.tsx +1 -1
- package/src/stories/ProfileToken.stories.tsx +1 -1
- package/src/utils/types/MandateProps.ts +19 -0
- package/src/utils/types/index.ts +1 -0
- package/stats.html +1 -1
- package/docs/src/@primer/gatsby-theme-doctocat/components/live-code.js +0 -84
- package/docs/src/@primer/gatsby-theme-doctocat/components/nav-dropdown.js +0 -48
- package/docs/src/@primer/gatsby-theme-doctocat/components/wrap-page-element.js +0 -25
@@ -0,0 +1,68 @@
|
|
1
|
+
import React, {useCallback, useContext} from 'react'
|
2
|
+
import {useAnchoredPosition} from '../hooks'
|
3
|
+
import Overlay, {OverlayProps} from '../Overlay'
|
4
|
+
import {ComponentProps} from '../utils/types'
|
5
|
+
import {AutocompleteContext} from './AutocompleteContext'
|
6
|
+
import {useCombinedRefs} from '../hooks/useCombinedRefs'
|
7
|
+
|
8
|
+
type AutocompleteOverlayInternalProps = {
|
9
|
+
/**
|
10
|
+
* The ref of the element that the position of the menu is based on. By default, the menu is positioned based on the text input
|
11
|
+
*/
|
12
|
+
menuAnchorRef?: React.RefObject<HTMLElement>
|
13
|
+
/**
|
14
|
+
* Props to be spread on the internal `Overlay` component.
|
15
|
+
*/
|
16
|
+
overlayProps?: Partial<OverlayProps>
|
17
|
+
children?: React.ReactNode
|
18
|
+
} & Pick<React.AriaAttributes, 'aria-labelledby'> // TODO: consider making 'aria-labelledby' required
|
19
|
+
|
20
|
+
function AutocompleteOverlay({menuAnchorRef, overlayProps, children}: AutocompleteOverlayInternalProps) {
|
21
|
+
const autocompleteContext = useContext(AutocompleteContext)
|
22
|
+
if (autocompleteContext === null) {
|
23
|
+
throw new Error('AutocompleteContext returned null values')
|
24
|
+
}
|
25
|
+
const {inputRef, scrollContainerRef, selectedItemLength, setShowMenu, showMenu = false} = autocompleteContext
|
26
|
+
const {floatingElementRef, position} = useAnchoredPosition(
|
27
|
+
{
|
28
|
+
side: 'outside-bottom',
|
29
|
+
align: 'start',
|
30
|
+
anchorElementRef: menuAnchorRef ? menuAnchorRef : inputRef
|
31
|
+
},
|
32
|
+
[showMenu, selectedItemLength]
|
33
|
+
)
|
34
|
+
|
35
|
+
const combinedOverlayRef = useCombinedRefs(scrollContainerRef, floatingElementRef)
|
36
|
+
|
37
|
+
const closeOptionList = useCallback(() => {
|
38
|
+
setShowMenu(false)
|
39
|
+
}, [setShowMenu])
|
40
|
+
|
41
|
+
if (typeof window === 'undefined') {
|
42
|
+
return null
|
43
|
+
}
|
44
|
+
|
45
|
+
return (
|
46
|
+
<Overlay
|
47
|
+
returnFocusRef={inputRef}
|
48
|
+
preventFocusOnOpen={true}
|
49
|
+
onClickOutside={closeOptionList}
|
50
|
+
onEscape={closeOptionList}
|
51
|
+
ref={combinedOverlayRef as React.RefObject<HTMLDivElement>}
|
52
|
+
top={position?.top}
|
53
|
+
left={position?.left}
|
54
|
+
visibility={showMenu ? 'visible' : 'hidden'}
|
55
|
+
sx={{
|
56
|
+
overflow: 'auto'
|
57
|
+
}}
|
58
|
+
{...overlayProps}
|
59
|
+
>
|
60
|
+
{children}
|
61
|
+
</Overlay>
|
62
|
+
)
|
63
|
+
}
|
64
|
+
|
65
|
+
AutocompleteOverlay.displayName = 'AutocompleteOverlay'
|
66
|
+
|
67
|
+
export type AutocompleteOverlayProps = ComponentProps<typeof AutocompleteOverlay>
|
68
|
+
export default AutocompleteOverlay
|
package/src/BaseStyles.tsx
CHANGED
package/src/BorderBox.tsx
CHANGED
@@ -12,12 +12,17 @@ const ButtonInvisible = styled(ButtonBase)<ButtonBaseProps & ButtonSystemProps &
|
|
12
12
|
box-shadow: none;
|
13
13
|
|
14
14
|
&:disabled {
|
15
|
-
color: ${get('colors.fg.
|
15
|
+
color: ${get('colors.primer.fg.disabled')};
|
16
16
|
}
|
17
|
-
|
18
17
|
&:focus {
|
19
18
|
box-shadow: ${get('shadows.btn.focusShadow')};
|
20
19
|
}
|
20
|
+
&:hover {
|
21
|
+
background-color: ${get('colors.btn.hoverBg')};
|
22
|
+
}
|
23
|
+
&:active {
|
24
|
+
background-color: ${get('colors.btn.selectedBg')};
|
25
|
+
}
|
21
26
|
|
22
27
|
${buttonSystemProps};
|
23
28
|
${sx}
|
package/src/Caret.tsx
CHANGED
package/src/Dialog.tsx
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import React, {KeyboardEventHandler, useCallback, useEffect, useRef} from 'react'
|
2
|
+
import {useSSRSafeId} from '@react-aria/ssr'
|
2
3
|
import {GroupedListProps, ListPropsBase} from '../ActionList/List'
|
3
4
|
import TextInput, {TextInputProps} from '../TextInput'
|
4
5
|
import Box from '../Box'
|
@@ -10,7 +11,7 @@ import styled from 'styled-components'
|
|
10
11
|
import {get} from '../constants'
|
11
12
|
import {useProvidedRefOrCreate} from '../hooks/useProvidedRefOrCreate'
|
12
13
|
import useScrollFlash from '../hooks/useScrollFlash'
|
13
|
-
import {
|
14
|
+
import {scrollIntoViewingArea} from '../behaviors/scrollIntoViewingArea'
|
14
15
|
import {SxProp} from '../sx'
|
15
16
|
|
16
17
|
export interface FilteredActionListProps
|
@@ -25,29 +26,6 @@ export interface FilteredActionListProps
|
|
25
26
|
inputRef?: React.RefObject<HTMLInputElement>
|
26
27
|
}
|
27
28
|
|
28
|
-
function scrollIntoViewingArea(
|
29
|
-
child: HTMLElement,
|
30
|
-
container: HTMLElement,
|
31
|
-
margin = 8,
|
32
|
-
behavior: ScrollBehavior = 'smooth'
|
33
|
-
) {
|
34
|
-
const {top: childTop, bottom: childBottom} = child.getBoundingClientRect()
|
35
|
-
const {top: containerTop, bottom: containerBottom} = container.getBoundingClientRect()
|
36
|
-
|
37
|
-
const isChildTopAboveViewingArea = childTop < containerTop + margin
|
38
|
-
const isChildBottomBelowViewingArea = childBottom > containerBottom - margin
|
39
|
-
|
40
|
-
if (isChildTopAboveViewingArea) {
|
41
|
-
const scrollHeightToChildTop = childTop - containerTop + container.scrollTop
|
42
|
-
container.scrollTo({behavior, top: scrollHeightToChildTop - margin})
|
43
|
-
} else if (isChildBottomBelowViewingArea) {
|
44
|
-
const scrollHeightToChildBottom = childBottom - containerBottom + container.scrollTop
|
45
|
-
container.scrollTo({behavior, top: scrollHeightToChildBottom + margin})
|
46
|
-
}
|
47
|
-
|
48
|
-
// either completely in view or outside viewing area on both ends, don't scroll
|
49
|
-
}
|
50
|
-
|
51
29
|
const StyledHeader = styled.div`
|
52
30
|
box-shadow: 0 1px 0 ${get('colors.border.default')};
|
53
31
|
z-index: 1;
|
@@ -118,7 +96,14 @@ export function FilteredActionList({
|
|
118
96
|
useEffect(() => {
|
119
97
|
// if items changed, we want to instantly move active descendant into view
|
120
98
|
if (activeDescendantRef.current && scrollContainerRef.current) {
|
121
|
-
scrollIntoViewingArea(
|
99
|
+
scrollIntoViewingArea(
|
100
|
+
activeDescendantRef.current,
|
101
|
+
scrollContainerRef.current,
|
102
|
+
'vertical',
|
103
|
+
undefined,
|
104
|
+
undefined,
|
105
|
+
'auto'
|
106
|
+
)
|
122
107
|
}
|
123
108
|
}, [items])
|
124
109
|
|
package/src/Flash.tsx
CHANGED
@@ -7,35 +7,35 @@ import {ComponentProps} from './utils/types'
|
|
7
7
|
const variants = variant({
|
8
8
|
variants: {
|
9
9
|
default: {
|
10
|
-
color: '
|
11
|
-
backgroundColor: '
|
12
|
-
borderColor: '
|
10
|
+
color: 'fg.default',
|
11
|
+
backgroundColor: 'accent.subtle',
|
12
|
+
borderColor: 'accent.muted',
|
13
13
|
svg: {
|
14
|
-
color: '
|
14
|
+
color: 'accent.fg'
|
15
15
|
}
|
16
16
|
},
|
17
17
|
success: {
|
18
|
-
color: '
|
19
|
-
backgroundColor: '
|
20
|
-
borderColor: '
|
18
|
+
color: 'fg.default',
|
19
|
+
backgroundColor: 'success.subtle',
|
20
|
+
borderColor: 'success.muted',
|
21
21
|
svg: {
|
22
|
-
color: '
|
22
|
+
color: 'success.fg'
|
23
23
|
}
|
24
24
|
},
|
25
25
|
danger: {
|
26
|
-
color: '
|
27
|
-
backgroundColor: '
|
28
|
-
borderColor: '
|
26
|
+
color: 'fg.default',
|
27
|
+
backgroundColor: 'danger.subtle',
|
28
|
+
borderColor: 'danger.muted',
|
29
29
|
svg: {
|
30
|
-
color: '
|
30
|
+
color: 'danger.fg'
|
31
31
|
}
|
32
32
|
},
|
33
33
|
warning: {
|
34
|
-
color: '
|
35
|
-
backgroundColor: '
|
36
|
-
borderColor: '
|
34
|
+
color: 'fg.default',
|
35
|
+
backgroundColor: 'attention.subtle',
|
36
|
+
borderColor: 'attention.muted',
|
37
37
|
svg: {
|
38
|
-
color: '
|
38
|
+
color: 'attention.fg'
|
39
39
|
}
|
40
40
|
}
|
41
41
|
}
|
package/src/Label.tsx
CHANGED
package/src/Overlay.tsx
CHANGED
@@ -90,6 +90,7 @@ export type OverlayProps = {
|
|
90
90
|
top: number
|
91
91
|
left: number
|
92
92
|
portalContainerName?: string
|
93
|
+
preventFocusOnOpen?: boolean
|
93
94
|
} & Omit<ComponentProps<typeof StyledOverlay>, 'visibility' | keyof SystemPositionProps>
|
94
95
|
|
95
96
|
/**
|
@@ -124,6 +125,7 @@ const Overlay = React.forwardRef<HTMLDivElement, OverlayProps>(
|
|
124
125
|
left,
|
125
126
|
anchorSide,
|
126
127
|
portalContainerName,
|
128
|
+
preventFocusOnOpen,
|
127
129
|
...rest
|
128
130
|
},
|
129
131
|
forwardedRef
|
@@ -140,7 +142,8 @@ const Overlay = React.forwardRef<HTMLDivElement, OverlayProps>(
|
|
140
142
|
onEscape,
|
141
143
|
ignoreClickRefs,
|
142
144
|
onClickOutside,
|
143
|
-
initialFocusRef
|
145
|
+
initialFocusRef,
|
146
|
+
preventFocusOnOpen
|
144
147
|
})
|
145
148
|
|
146
149
|
useEffect(() => {
|
package/src/ProgressBar.tsx
CHANGED
package/src/StateLabel.tsx
CHANGED
@@ -20,34 +20,28 @@ const colorVariants = variant({
|
|
20
20
|
prop: 'status',
|
21
21
|
variants: {
|
22
22
|
issueClosed: {
|
23
|
-
backgroundColor: '
|
24
|
-
color: '
|
25
|
-
borderColor: 'prState.closed.border'
|
23
|
+
backgroundColor: 'danger.emphasis',
|
24
|
+
color: 'fg.onEmphasis'
|
26
25
|
},
|
27
26
|
pullClosed: {
|
28
|
-
backgroundColor: '
|
29
|
-
color: '
|
30
|
-
borderColor: 'prState.closed.border'
|
27
|
+
backgroundColor: 'danger.emphasis',
|
28
|
+
color: 'fg.onEmphasis'
|
31
29
|
},
|
32
30
|
pullMerged: {
|
33
|
-
backgroundColor: '
|
34
|
-
color: '
|
35
|
-
borderColor: 'prState.merged.border'
|
31
|
+
backgroundColor: 'done.emphasis',
|
32
|
+
color: 'fg.onEmphasis'
|
36
33
|
},
|
37
34
|
issueOpened: {
|
38
|
-
backgroundColor: '
|
39
|
-
color: '
|
40
|
-
borderColor: 'prState.open.border'
|
35
|
+
backgroundColor: 'success.emphasis',
|
36
|
+
color: 'fg.onEmphasis'
|
41
37
|
},
|
42
38
|
pullOpened: {
|
43
|
-
backgroundColor: '
|
44
|
-
color: '
|
45
|
-
borderColor: 'prState.open.border'
|
39
|
+
backgroundColor: 'success.emphasis',
|
40
|
+
color: 'fg.onEmphasis'
|
46
41
|
},
|
47
42
|
draft: {
|
48
|
-
backgroundColor: '
|
49
|
-
color: '
|
50
|
-
borderColor: 'prState.draft.border'
|
43
|
+
backgroundColor: 'neutral.emphasis',
|
44
|
+
color: 'fg.onEmphasis'
|
51
45
|
}
|
52
46
|
}
|
53
47
|
})
|
@@ -82,8 +76,6 @@ const StateLabelBase = styled.span<StyledStateLabelBaseProps>`
|
|
82
76
|
color: ${get('colors.canvas.default')};
|
83
77
|
text-align: center;
|
84
78
|
border-radius: ${get('radii.3')};
|
85
|
-
border-width: 1px;
|
86
|
-
border-style: solid;
|
87
79
|
${colorVariants};
|
88
80
|
${sizeVariants};
|
89
81
|
${COMMON};
|
@@ -57,11 +57,13 @@ const StyledTokenButton = styled.span<TokenButtonProps & SxProp>`
|
|
57
57
|
|
58
58
|
&:hover,
|
59
59
|
&:focus {
|
60
|
-
|
60
|
+
// TODO: choose a better functional color variable for this
|
61
|
+
background-color: ${get('colors.neutral.muted')};
|
61
62
|
}
|
62
63
|
|
63
64
|
&:active {
|
64
|
-
|
65
|
+
// TODO: choose a better functional color variable for this
|
66
|
+
background-color: ${get('colors.neutral.subtle')};
|
65
67
|
}
|
66
68
|
|
67
69
|
${variants}
|