@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.
Files changed (180) hide show
  1. package/.eslintrc.json +2 -1
  2. package/.storybook/preview.js +4 -4
  3. package/CHANGELOG.md +12 -2
  4. package/codemods/deprecateUtilityComponents.js +1 -1
  5. package/contributor-docs/adrs/adr-003-prop-norms.md +72 -0
  6. package/dist/browser.esm.js +798 -794
  7. package/dist/browser.esm.js.map +1 -1
  8. package/dist/browser.umd.js +801 -797
  9. package/dist/browser.umd.js.map +1 -1
  10. package/docs/content/Autocomplete.mdx +627 -0
  11. package/docs/content/TextInputTokens.mdx +89 -0
  12. package/docs/content/getting-started.md +1 -1
  13. package/docs/content/overriding-styles.mdx +7 -6
  14. package/docs/content/theming.md +5 -5
  15. package/docs/package-lock.json +288 -511
  16. package/docs/package.json +1 -1
  17. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +14 -12
  18. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +2 -0
  19. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +7 -7
  20. package/lib/ActionList/Item.js +1 -1
  21. package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +2 -1
  22. package/lib/AnchoredOverlay/AnchoredOverlay.js +11 -3
  23. package/lib/Autocomplete/Autocomplete.d.ts +304 -0
  24. package/lib/Autocomplete/Autocomplete.js +145 -0
  25. package/lib/Autocomplete/AutocompleteContext.d.ts +17 -0
  26. package/lib/Autocomplete/AutocompleteContext.js +11 -0
  27. package/lib/Autocomplete/AutocompleteInput.d.ts +292 -0
  28. package/lib/Autocomplete/AutocompleteInput.js +157 -0
  29. package/lib/Autocomplete/AutocompleteMenu.d.ts +72 -0
  30. package/lib/Autocomplete/AutocompleteMenu.js +224 -0
  31. package/lib/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  32. package/lib/Autocomplete/AutocompleteOverlay.js +80 -0
  33. package/lib/Autocomplete/index.d.ts +2 -0
  34. package/lib/Autocomplete/index.js +15 -0
  35. package/lib/BaseStyles.js +1 -1
  36. package/lib/BorderBox.js +1 -1
  37. package/lib/Button/ButtonInvisible.js +1 -1
  38. package/lib/Caret.js +2 -2
  39. package/lib/Dialog.js +1 -1
  40. package/lib/FilteredActionList/FilteredActionList.js +5 -31
  41. package/lib/Flash.js +16 -16
  42. package/lib/Label.js +1 -1
  43. package/lib/Overlay.d.ts +1 -0
  44. package/lib/Overlay.js +3 -1
  45. package/lib/ProgressBar.js +1 -1
  46. package/lib/StateLabel.js +13 -19
  47. package/lib/Token/_RemoveTokenButton.js +1 -1
  48. package/lib/__tests__/Autocomplete.test.d.ts +1 -0
  49. package/lib/__tests__/Autocomplete.test.js +528 -0
  50. package/lib/__tests__/BorderBox.test.js +1 -1
  51. package/lib/__tests__/CircleOcticon.test.js +1 -1
  52. package/lib/__tests__/CounterLabel.test.js +4 -4
  53. package/lib/__tests__/Flash.test.js +4 -4
  54. package/lib/__tests__/Link.test.js +1 -1
  55. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  56. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +226 -0
  57. package/lib/behaviors/scrollIntoViewingArea.d.ts +1 -0
  58. package/lib/behaviors/scrollIntoViewingArea.js +39 -0
  59. package/lib/hooks/useOpenAndCloseFocus.d.ts +2 -1
  60. package/lib/hooks/useOpenAndCloseFocus.js +7 -2
  61. package/lib/hooks/useOverlay.d.ts +2 -1
  62. package/lib/hooks/useOverlay.js +4 -2
  63. package/lib/index.d.ts +2 -0
  64. package/lib/index.js +8 -0
  65. package/lib/stories/Autocomplete.stories.js +608 -0
  66. package/lib/stories/Dialog.stories.js +3 -3
  67. package/lib/stories/IssueLabelToken.stories.js +1 -1
  68. package/lib/stories/ProfileToken.stories.js +1 -1
  69. package/lib/theme-preval.js +370 -3100
  70. package/lib/utils/testing.d.ts +50 -493
  71. package/lib/utils/types/MandateProps.d.ts +3 -0
  72. package/lib/utils/types/MandateProps.js +1 -0
  73. package/lib/utils/types/index.d.ts +1 -0
  74. package/lib/utils/types/index.js +13 -0
  75. package/lib-esm/ActionList/Item.js +1 -1
  76. package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +2 -1
  77. package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +11 -3
  78. package/lib-esm/Autocomplete/Autocomplete.d.ts +304 -0
  79. package/lib-esm/Autocomplete/Autocomplete.js +123 -0
  80. package/lib-esm/Autocomplete/AutocompleteContext.d.ts +17 -0
  81. package/lib-esm/Autocomplete/AutocompleteContext.js +2 -0
  82. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +292 -0
  83. package/lib-esm/Autocomplete/AutocompleteInput.js +138 -0
  84. package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +72 -0
  85. package/lib-esm/Autocomplete/AutocompleteMenu.js +205 -0
  86. package/lib-esm/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  87. package/lib-esm/Autocomplete/AutocompleteOverlay.js +62 -0
  88. package/lib-esm/Autocomplete/index.d.ts +2 -0
  89. package/lib-esm/Autocomplete/index.js +1 -0
  90. package/lib-esm/BaseStyles.js +1 -1
  91. package/lib-esm/BorderBox.js +1 -1
  92. package/lib-esm/Button/ButtonInvisible.js +1 -1
  93. package/lib-esm/Caret.js +2 -2
  94. package/lib-esm/Dialog.js +1 -1
  95. package/lib-esm/FilteredActionList/FilteredActionList.js +3 -31
  96. package/lib-esm/Flash.js +16 -16
  97. package/lib-esm/Label.js +1 -1
  98. package/lib-esm/Overlay.d.ts +1 -0
  99. package/lib-esm/Overlay.js +3 -1
  100. package/lib-esm/ProgressBar.js +1 -1
  101. package/lib-esm/StateLabel.js +13 -19
  102. package/lib-esm/Token/_RemoveTokenButton.js +1 -1
  103. package/lib-esm/__tests__/Autocomplete.test.d.ts +1 -0
  104. package/lib-esm/__tests__/Autocomplete.test.js +494 -0
  105. package/lib-esm/__tests__/BorderBox.test.js +1 -1
  106. package/lib-esm/__tests__/CircleOcticon.test.js +1 -1
  107. package/lib-esm/__tests__/CounterLabel.test.js +4 -4
  108. package/lib-esm/__tests__/Flash.test.js +4 -4
  109. package/lib-esm/__tests__/Link.test.js +1 -1
  110. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  111. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +224 -0
  112. package/lib-esm/behaviors/scrollIntoViewingArea.d.ts +1 -0
  113. package/lib-esm/behaviors/scrollIntoViewingArea.js +30 -0
  114. package/lib-esm/hooks/useOpenAndCloseFocus.d.ts +2 -1
  115. package/lib-esm/hooks/useOpenAndCloseFocus.js +7 -2
  116. package/lib-esm/hooks/useOverlay.d.ts +2 -1
  117. package/lib-esm/hooks/useOverlay.js +4 -2
  118. package/lib-esm/index.d.ts +2 -0
  119. package/lib-esm/index.js +1 -0
  120. package/lib-esm/stories/Autocomplete.stories.js +549 -0
  121. package/lib-esm/stories/Dialog.stories.js +3 -3
  122. package/lib-esm/stories/IssueLabelToken.stories.js +1 -1
  123. package/lib-esm/stories/ProfileToken.stories.js +1 -1
  124. package/lib-esm/theme-preval.js +370 -3100
  125. package/lib-esm/utils/testing.d.ts +50 -493
  126. package/lib-esm/utils/types/MandateProps.d.ts +3 -0
  127. package/lib-esm/utils/types/MandateProps.js +1 -0
  128. package/lib-esm/utils/types/index.d.ts +1 -0
  129. package/lib-esm/utils/types/index.js +2 -1
  130. package/package-lock.json +11 -8
  131. package/package.json +3 -3
  132. package/src/ActionList/Item.tsx +1 -1
  133. package/src/AnchoredOverlay/AnchoredOverlay.tsx +14 -3
  134. package/src/Autocomplete/Autocomplete.tsx +103 -0
  135. package/src/Autocomplete/AutocompleteContext.tsx +19 -0
  136. package/src/Autocomplete/AutocompleteInput.tsx +179 -0
  137. package/src/Autocomplete/AutocompleteMenu.tsx +341 -0
  138. package/src/Autocomplete/AutocompleteOverlay.tsx +68 -0
  139. package/src/Autocomplete/index.ts +2 -0
  140. package/src/BaseStyles.tsx +1 -1
  141. package/src/BorderBox.tsx +1 -1
  142. package/src/Button/ButtonInvisible.tsx +7 -2
  143. package/src/Caret.tsx +2 -2
  144. package/src/Dialog.tsx +1 -1
  145. package/src/FilteredActionList/FilteredActionList.tsx +10 -25
  146. package/src/Flash.tsx +16 -16
  147. package/src/Label.tsx +1 -1
  148. package/src/Overlay.tsx +4 -1
  149. package/src/ProgressBar.tsx +1 -1
  150. package/src/StateLabel.tsx +12 -20
  151. package/src/Token/_RemoveTokenButton.tsx +4 -2
  152. package/src/__tests__/Autocomplete.test.tsx +444 -0
  153. package/src/__tests__/BorderBox.test.tsx +1 -1
  154. package/src/__tests__/CircleOcticon.test.tsx +1 -1
  155. package/src/__tests__/CounterLabel.test.tsx +4 -4
  156. package/src/__tests__/Flash.test.tsx +4 -4
  157. package/src/__tests__/Link.test.tsx +1 -1
  158. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +3 -3
  159. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +3414 -0
  160. package/src/__tests__/__snapshots__/Button.test.tsx.snap +9 -1
  161. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +1 -1
  162. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +1 -1
  163. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -21
  164. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +16 -16
  165. package/src/__tests__/__snapshots__/Token.test.tsx.snap +34 -34
  166. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +195 -0
  167. package/src/behaviors/scrollIntoViewingArea.ts +27 -0
  168. package/src/hooks/useOpenAndCloseFocus.ts +7 -2
  169. package/src/hooks/useOverlay.tsx +4 -2
  170. package/src/index.ts +2 -0
  171. package/src/stories/Autocomplete.stories.tsx +572 -0
  172. package/src/stories/Dialog.stories.tsx +3 -3
  173. package/src/stories/IssueLabelToken.stories.tsx +1 -1
  174. package/src/stories/ProfileToken.stories.tsx +1 -1
  175. package/src/utils/types/MandateProps.ts +19 -0
  176. package/src/utils/types/index.ts +1 -0
  177. package/stats.html +1 -1
  178. package/docs/src/@primer/gatsby-theme-doctocat/components/live-code.js +0 -84
  179. package/docs/src/@primer/gatsby-theme-doctocat/components/nav-dropdown.js +0 -48
  180. 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
@@ -0,0 +1,2 @@
1
+ export {default} from './Autocomplete'
2
+ export type {AutocompleteMenuProps, AutocompleteInputProps, AutocompleteOverlayProps} from './Autocomplete'
@@ -45,7 +45,7 @@ function BaseStyles(props: BaseStylesProps) {
45
45
  }
46
46
 
47
47
  BaseStyles.defaultProps = {
48
- color: 'text.primary',
48
+ color: 'fg.default',
49
49
  fontFamily: 'normal',
50
50
  lineHeight: 'default'
51
51
  }
package/src/BorderBox.tsx CHANGED
@@ -11,7 +11,7 @@ const BorderBox = styled(Box)``
11
11
  BorderBox.defaultProps = {
12
12
  borderWidth: '1px',
13
13
  borderStyle: 'solid',
14
- borderColor: 'border.primary',
14
+ borderColor: 'border.default',
15
15
  borderRadius: 2
16
16
  }
17
17
 
@@ -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.muted')};
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
@@ -125,8 +125,8 @@ Caret.locations = [
125
125
  ]
126
126
 
127
127
  Caret.defaultProps = {
128
- bg: 'bg.canvas',
129
- borderColor: 'border.primary',
128
+ bg: 'canvas.default',
129
+ borderColor: 'border.default',
130
130
  borderWidth: 1
131
131
  }
132
132
 
package/src/Dialog.tsx CHANGED
@@ -135,7 +135,7 @@ const Dialog = forwardRef<HTMLDivElement, InternalDialogProps>(
135
135
  )
136
136
 
137
137
  DialogHeader.defaultProps = {
138
- backgroundColor: 'bg.tertiary'
138
+ backgroundColor: 'canvas.subtle'
139
139
  }
140
140
 
141
141
  DialogHeader.propTypes = {
@@ -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 {useSSRSafeId} from '@react-aria/ssr'
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(activeDescendantRef.current, scrollContainerRef.current, undefined, 'auto')
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: 'alert.info.text',
11
- backgroundColor: 'alert.info.bg',
12
- borderColor: 'alert.info.border',
10
+ color: 'fg.default',
11
+ backgroundColor: 'accent.subtle',
12
+ borderColor: 'accent.muted',
13
13
  svg: {
14
- color: 'alert.info.icon'
14
+ color: 'accent.fg'
15
15
  }
16
16
  },
17
17
  success: {
18
- color: 'alert.success.text',
19
- backgroundColor: 'alert.success.bg',
20
- borderColor: 'alert.success.border',
18
+ color: 'fg.default',
19
+ backgroundColor: 'success.subtle',
20
+ borderColor: 'success.muted',
21
21
  svg: {
22
- color: 'alert.success.icon'
22
+ color: 'success.fg'
23
23
  }
24
24
  },
25
25
  danger: {
26
- color: 'alert.error.text',
27
- backgroundColor: 'alert.error.bg',
28
- borderColor: 'alert.error.border',
26
+ color: 'fg.default',
27
+ backgroundColor: 'danger.subtle',
28
+ borderColor: 'danger.muted',
29
29
  svg: {
30
- color: 'alert.error.icon'
30
+ color: 'danger.fg'
31
31
  }
32
32
  },
33
33
  warning: {
34
- color: 'alert.warn.text',
35
- backgroundColor: 'alert.warn.bg',
36
- borderColor: 'alert.warn.border',
34
+ color: 'fg.default',
35
+ backgroundColor: 'attention.subtle',
36
+ borderColor: 'attention.muted',
37
37
  svg: {
38
- color: 'alert.warn.icon'
38
+ color: 'attention.fg'
39
39
  }
40
40
  }
41
41
  }
package/src/Label.tsx CHANGED
@@ -67,7 +67,7 @@ const Label = styled.span<
67
67
  `
68
68
 
69
69
  Label.defaultProps = {
70
- bg: 'label.primary.border',
70
+ bg: 'neutral.emphasis',
71
71
  variant: 'medium'
72
72
  }
73
73
 
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(() => {
@@ -45,7 +45,7 @@ function ProgressBar({progress, bg, theme, ...rest}: ProgressBarProps) {
45
45
  }
46
46
 
47
47
  ProgressBar.defaultProps = {
48
- bg: 'bg.successInverse',
48
+ bg: 'success.emphasis',
49
49
  barSize: 'default'
50
50
  }
51
51
 
@@ -20,34 +20,28 @@ const colorVariants = variant({
20
20
  prop: 'status',
21
21
  variants: {
22
22
  issueClosed: {
23
- backgroundColor: 'prState.closed.bg',
24
- color: 'prState.closed.text',
25
- borderColor: 'prState.closed.border'
23
+ backgroundColor: 'danger.emphasis',
24
+ color: 'fg.onEmphasis'
26
25
  },
27
26
  pullClosed: {
28
- backgroundColor: 'prState.closed.bg',
29
- color: 'prState.closed.text',
30
- borderColor: 'prState.closed.border'
27
+ backgroundColor: 'danger.emphasis',
28
+ color: 'fg.onEmphasis'
31
29
  },
32
30
  pullMerged: {
33
- backgroundColor: 'prState.merged.bg',
34
- color: 'prState.merged.text',
35
- borderColor: 'prState.merged.border'
31
+ backgroundColor: 'done.emphasis',
32
+ color: 'fg.onEmphasis'
36
33
  },
37
34
  issueOpened: {
38
- backgroundColor: 'prState.open.bg',
39
- color: 'prState.open.text',
40
- borderColor: 'prState.open.border'
35
+ backgroundColor: 'success.emphasis',
36
+ color: 'fg.onEmphasis'
41
37
  },
42
38
  pullOpened: {
43
- backgroundColor: 'prState.open.bg',
44
- color: 'prState.open.text',
45
- borderColor: 'prState.open.border'
39
+ backgroundColor: 'success.emphasis',
40
+ color: 'fg.onEmphasis'
46
41
  },
47
42
  draft: {
48
- backgroundColor: 'prState.draft.bg',
49
- color: 'prState.draft.text',
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
- background-color: ${get('colors.fade.fg10')};
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
- background-color: ${get('colors.fade.fg15')};
65
+ // TODO: choose a better functional color variable for this
66
+ background-color: ${get('colors.neutral.subtle')};
65
67
  }
66
68
 
67
69
  ${variants}