@primer/components 29.0.0-rc.ae627848 → 29.1.0-rc.4e9b967e

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. package/.eslintrc.json +2 -1
  2. package/.storybook/preview.js +58 -0
  3. package/CHANGELOG.md +13 -1
  4. package/dist/browser.esm.js +240 -194
  5. package/dist/browser.esm.js.map +1 -1
  6. package/dist/browser.umd.js +339 -293
  7. package/dist/browser.umd.js.map +1 -1
  8. package/docs/content/AnchoredOverlay.mdx +2 -0
  9. package/docs/content/Overlay.mdx +4 -0
  10. package/docs/content/Portal.mdx +11 -9
  11. package/docs/content/overriding-styles.mdx +0 -1
  12. package/docs/content/theme-reference.md +8 -0
  13. package/docs/content/theming.md +1 -2
  14. package/docs/src/@primer/gatsby-theme-doctocat/components/live-code.js +1 -1
  15. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +1 -1
  16. package/lib/ActionList/Divider.js +1 -1
  17. package/lib/ActionList/Header.js +2 -2
  18. package/lib/ActionList/Item.js +10 -10
  19. package/lib/ActionList/List.js +1 -1
  20. package/lib/AvatarPair.js +1 -1
  21. package/lib/AvatarStack.js +1 -1
  22. package/lib/BranchName.js +1 -1
  23. package/lib/Breadcrumb.js +2 -2
  24. package/lib/Button/Button.js +1 -1
  25. package/lib/Button/ButtonClose.js +1 -1
  26. package/lib/Button/ButtonInvisible.js +1 -1
  27. package/lib/Button/ButtonTableList.js +1 -1
  28. package/lib/CircleBadge.js +1 -1
  29. package/lib/CircleOcticon.js +1 -1
  30. package/lib/CounterLabel.js +2 -2
  31. package/lib/Dialog/ConfirmationDialog.js +1 -1
  32. package/lib/Dialog/Dialog.js +5 -5
  33. package/lib/Dialog.js +4 -4
  34. package/lib/Dropdown.js +2 -2
  35. package/lib/DropdownStyles.js +6 -6
  36. package/lib/FilterList.js +1 -1
  37. package/lib/FilteredActionList/FilteredActionList.js +2 -2
  38. package/lib/Flash.js +1 -1
  39. package/lib/Label.js +2 -2
  40. package/lib/Link.js +1 -1
  41. package/lib/Overlay.js +1 -1
  42. package/lib/Pagehead.js +1 -1
  43. package/lib/Pagination/Pagination.js +1 -1
  44. package/lib/Popover.js +1 -1
  45. package/lib/ProgressBar.js +1 -1
  46. package/lib/SelectMenu/SelectMenuDivider.js +1 -1
  47. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  48. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  49. package/lib/SelectMenu/SelectMenuHeader.js +2 -2
  50. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  51. package/lib/SelectMenu/SelectMenuList.js +1 -1
  52. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +1 -1
  53. package/lib/SelectMenu/SelectMenuModal.js +2 -2
  54. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  55. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  56. package/lib/SideNav.js +5 -5
  57. package/lib/StateLabel.js +1 -1
  58. package/lib/SubNav.js +1 -1
  59. package/lib/TabNav.js +2 -2
  60. package/lib/TextInput.js +2 -2
  61. package/lib/Timeline.js +16 -19
  62. package/lib/Tooltip.js +1 -1
  63. package/lib/UnderlineNav.js +2 -2
  64. package/lib/__tests__/BorderBox.js +1 -1
  65. package/lib/__tests__/CircleOcticon.js +1 -1
  66. package/lib/__tests__/Link.js +1 -1
  67. package/lib/__tests__/PointerBox.js +2 -2
  68. package/lib/__tests__/Position.js +4 -4
  69. package/lib/__tests__/ThemeProvider.js +1 -1
  70. package/lib/stories/ActionList.stories.js +1 -1
  71. package/lib/stories/ThemeProvider.stories.js +6 -6
  72. package/lib/stories/useFocusTrap.stories.js +1 -1
  73. package/lib/theme-preval.d.ts +12 -6
  74. package/lib/theme-preval.js +2930 -1738
  75. package/lib/utils/testing.d.ts +4707 -2355
  76. package/lib-esm/ActionList/Divider.js +1 -1
  77. package/lib-esm/ActionList/Header.js +2 -2
  78. package/lib-esm/ActionList/Item.js +10 -10
  79. package/lib-esm/ActionList/List.js +1 -1
  80. package/lib-esm/AvatarPair.js +1 -1
  81. package/lib-esm/AvatarStack.js +1 -1
  82. package/lib-esm/BranchName.js +1 -1
  83. package/lib-esm/Breadcrumb.js +2 -2
  84. package/lib-esm/Button/Button.js +1 -1
  85. package/lib-esm/Button/ButtonClose.js +1 -1
  86. package/lib-esm/Button/ButtonInvisible.js +1 -1
  87. package/lib-esm/Button/ButtonTableList.js +1 -1
  88. package/lib-esm/CircleBadge.js +1 -1
  89. package/lib-esm/CircleOcticon.js +1 -1
  90. package/lib-esm/CounterLabel.js +2 -2
  91. package/lib-esm/Dialog/ConfirmationDialog.js +1 -1
  92. package/lib-esm/Dialog/Dialog.js +5 -5
  93. package/lib-esm/Dialog.js +4 -4
  94. package/lib-esm/Dropdown.js +2 -2
  95. package/lib-esm/DropdownStyles.js +6 -6
  96. package/lib-esm/FilterList.js +1 -1
  97. package/lib-esm/FilteredActionList/FilteredActionList.js +2 -2
  98. package/lib-esm/Flash.js +1 -1
  99. package/lib-esm/Label.js +2 -2
  100. package/lib-esm/Link.js +1 -1
  101. package/lib-esm/Overlay.js +1 -1
  102. package/lib-esm/Pagehead.js +1 -1
  103. package/lib-esm/Pagination/Pagination.js +1 -1
  104. package/lib-esm/Popover.js +1 -1
  105. package/lib-esm/ProgressBar.js +1 -1
  106. package/lib-esm/SelectMenu/SelectMenuDivider.js +1 -1
  107. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  108. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  109. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  110. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  111. package/lib-esm/SelectMenu/SelectMenuList.js +1 -1
  112. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +1 -1
  113. package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
  114. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  115. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  116. package/lib-esm/SideNav.js +5 -5
  117. package/lib-esm/StateLabel.js +1 -1
  118. package/lib-esm/SubNav.js +1 -1
  119. package/lib-esm/TabNav.js +2 -2
  120. package/lib-esm/TextInput.js +2 -2
  121. package/lib-esm/Timeline.js +12 -17
  122. package/lib-esm/Tooltip.js +1 -1
  123. package/lib-esm/UnderlineNav.js +2 -2
  124. package/lib-esm/__tests__/BorderBox.js +1 -1
  125. package/lib-esm/__tests__/CircleOcticon.js +1 -1
  126. package/lib-esm/__tests__/Link.js +1 -1
  127. package/lib-esm/__tests__/PointerBox.js +2 -2
  128. package/lib-esm/__tests__/Position.js +4 -4
  129. package/lib-esm/__tests__/ThemeProvider.js +1 -1
  130. package/lib-esm/stories/ActionList.stories.js +1 -1
  131. package/lib-esm/stories/ThemeProvider.stories.js +6 -6
  132. package/lib-esm/stories/useFocusTrap.stories.js +1 -1
  133. package/lib-esm/theme-preval.d.ts +12 -6
  134. package/lib-esm/theme-preval.js +2930 -1738
  135. package/lib-esm/utils/testing.d.ts +4707 -2355
  136. package/package-lock.json +9 -4
  137. package/package.json +3 -2
  138. package/src/ActionList/Divider.tsx +1 -1
  139. package/src/ActionList/Header.tsx +4 -4
  140. package/src/ActionList/Item.tsx +10 -10
  141. package/src/ActionList/List.tsx +1 -1
  142. package/src/AvatarPair.tsx +5 -1
  143. package/src/AvatarStack.tsx +2 -2
  144. package/src/BranchName.tsx +2 -2
  145. package/src/Breadcrumb.tsx +3 -3
  146. package/src/Button/Button.tsx +1 -1
  147. package/src/Button/ButtonClose.tsx +2 -2
  148. package/src/Button/ButtonInvisible.tsx +2 -2
  149. package/src/Button/ButtonTableList.tsx +2 -2
  150. package/src/CircleBadge.tsx +1 -1
  151. package/src/CircleOcticon.tsx +1 -1
  152. package/src/CounterLabel.tsx +6 -6
  153. package/src/Dialog/ConfirmationDialog.tsx +1 -1
  154. package/src/Dialog/Dialog.tsx +5 -5
  155. package/src/Dialog.tsx +4 -4
  156. package/src/Dropdown.tsx +12 -12
  157. package/src/DropdownStyles.ts +6 -6
  158. package/src/FilterList.tsx +5 -5
  159. package/src/FilteredActionList/FilteredActionList.tsx +2 -2
  160. package/src/Flash.tsx +1 -1
  161. package/src/Label.tsx +3 -3
  162. package/src/Link.tsx +2 -2
  163. package/src/Overlay.tsx +1 -1
  164. package/src/Pagehead.tsx +1 -1
  165. package/src/Pagination/Pagination.tsx +7 -7
  166. package/src/Popover.tsx +10 -10
  167. package/src/ProgressBar.tsx +1 -1
  168. package/src/SelectMenu/SelectMenuDivider.tsx +3 -3
  169. package/src/SelectMenu/SelectMenuFilter.tsx +2 -2
  170. package/src/SelectMenu/SelectMenuFooter.tsx +2 -2
  171. package/src/SelectMenu/SelectMenuHeader.tsx +2 -2
  172. package/src/SelectMenu/SelectMenuItem.tsx +6 -6
  173. package/src/SelectMenu/SelectMenuList.tsx +5 -5
  174. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +1 -1
  175. package/src/SelectMenu/SelectMenuModal.tsx +3 -3
  176. package/src/SelectMenu/SelectMenuTab.tsx +6 -6
  177. package/src/SelectMenu/SelectMenuTabPanel.tsx +1 -1
  178. package/src/SideNav.tsx +11 -11
  179. package/src/StateLabel.tsx +1 -1
  180. package/src/SubNav.tsx +11 -11
  181. package/src/TabNav.tsx +6 -6
  182. package/src/TextInput.tsx +9 -9
  183. package/src/Timeline.tsx +11 -11
  184. package/src/Tooltip.tsx +7 -7
  185. package/src/UnderlineNav.tsx +8 -8
  186. package/src/__tests__/BorderBox.tsx +1 -1
  187. package/src/__tests__/CircleOcticon.tsx +1 -1
  188. package/src/__tests__/Link.tsx +1 -1
  189. package/src/__tests__/Pagination/__snapshots__/Pagination.tsx.snap +6 -6
  190. package/src/__tests__/PointerBox.tsx +2 -2
  191. package/src/__tests__/Position.tsx +4 -4
  192. package/src/__tests__/ThemeProvider.tsx +1 -1
  193. package/src/__tests__/__snapshots__/ActionList.tsx.snap +1 -1
  194. package/src/__tests__/__snapshots__/ActionMenu.tsx.snap +11 -11
  195. package/src/__tests__/__snapshots__/AnchoredOverlay.tsx.snap +28 -28
  196. package/src/__tests__/__snapshots__/BorderBox.tsx.snap +1 -1
  197. package/src/__tests__/__snapshots__/BranchName.tsx.snap +2 -2
  198. package/src/__tests__/__snapshots__/BreadcrumbItem.tsx.snap +6 -6
  199. package/src/__tests__/__snapshots__/Button.tsx.snap +116 -116
  200. package/src/__tests__/__snapshots__/Caret.tsx.snap +12 -12
  201. package/src/__tests__/__snapshots__/CircleBadge.tsx.snap +4 -4
  202. package/src/__tests__/__snapshots__/CircleOcticon.tsx.snap +1 -1
  203. package/src/__tests__/__snapshots__/CounterLabel.tsx.snap +2 -2
  204. package/src/__tests__/__snapshots__/Dialog.tsx.snap +11 -11
  205. package/src/__tests__/__snapshots__/Dropdown.tsx.snap +18 -18
  206. package/src/__tests__/__snapshots__/DropdownMenu.tsx.snap +11 -11
  207. package/src/__tests__/__snapshots__/FilterListItem.tsx.snap +4 -4
  208. package/src/__tests__/__snapshots__/Flash.tsx.snap +5 -5
  209. package/src/__tests__/__snapshots__/Header.tsx.snap +1 -1
  210. package/src/__tests__/__snapshots__/Label.tsx.snap +6 -6
  211. package/src/__tests__/__snapshots__/Link.tsx.snap +10 -10
  212. package/src/__tests__/__snapshots__/Pagehead.tsx.snap +1 -1
  213. package/src/__tests__/__snapshots__/PointerBox.tsx.snap +10 -10
  214. package/src/__tests__/__snapshots__/Popover.tsx.snap +70 -70
  215. package/src/__tests__/__snapshots__/ProgressBar.tsx.snap +4 -4
  216. package/src/__tests__/__snapshots__/SelectMenu.tsx.snap +28 -28
  217. package/src/__tests__/__snapshots__/SelectPanel.tsx.snap +12 -12
  218. package/src/__tests__/__snapshots__/SideNav.tsx.snap +14 -14
  219. package/src/__tests__/__snapshots__/StateLabel.tsx.snap +7 -7
  220. package/src/__tests__/__snapshots__/SubNavLink.tsx.snap +24 -24
  221. package/src/__tests__/__snapshots__/TabNav.tsx.snap +5 -5
  222. package/src/__tests__/__snapshots__/TextInput.tsx.snap +36 -36
  223. package/src/__tests__/__snapshots__/ThemeProvider.tsx.snap +2 -2
  224. package/src/__tests__/__snapshots__/Timeline.tsx.snap +9 -7
  225. package/src/__tests__/__snapshots__/Tooltip.tsx.snap +6 -6
  226. package/src/__tests__/__snapshots__/UnderlineNav.tsx.snap +1 -1
  227. package/src/__tests__/__snapshots__/UnderlineNavLink.tsx.snap +21 -21
  228. package/src/stories/ActionList.stories.tsx +1 -1
  229. package/src/stories/ThemeProvider.stories.tsx +6 -6
  230. package/src/stories/useFocusTrap.stories.tsx +1 -1
  231. package/src/theme-preval.js +16 -0
  232. package/stats.html +1 -1
package/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/components",
3
- "version": "28.5.0",
3
+ "version": "29.0.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
@@ -4041,9 +4041,9 @@
4041
4041
  "integrity": "sha512-j5XppNRCvgaMZLPsVvvmp6GSh7P5pq6PUbsfLNBWi2Kz3KYDeoGDWbPr5MjoxFOGUn6Hjnt6qjHPRxahd11vLQ=="
4042
4042
  },
4043
4043
  "@primer/primitives": {
4044
- "version": "4.6.4",
4045
- "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-4.6.4.tgz",
4046
- "integrity": "sha512-KKlP7m+94pbuFl3BYycQrmtNhX5+0gK3ftAh5L4a73Ov4FHbgMyVto3Cr0C5tlpvg0760Nisu+e/4T+/uvx8tA=="
4044
+ "version": "4.7.1",
4045
+ "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-4.7.1.tgz",
4046
+ "integrity": "sha512-kttAUcP3QgT5UbYLeMTKDxPvnAVzywX0xnKPcLkmEVQyhmEBlTO4LSlYIzL5YcKyklHcFRf1426UcGOY9wdWDQ=="
4047
4047
  },
4048
4048
  "@reach/router": {
4049
4049
  "version": "1.3.4",
@@ -14756,6 +14756,11 @@
14756
14756
  "prettier-linter-helpers": "^1.0.0"
14757
14757
  }
14758
14758
  },
14759
+ "eslint-plugin-primer-react": {
14760
+ "version": "0.4.1",
14761
+ "resolved": "https://registry.npmjs.org/eslint-plugin-primer-react/-/eslint-plugin-primer-react-0.4.1.tgz",
14762
+ "integrity": "sha512-FMYe8ZQvyApHIXOhGUMhfiWTVlanWxuW75WBCnWjlr4hvtOz77GTUo0U/1IStk02zXMUzC37FLbNClbnip3fxw=="
14763
+ },
14759
14764
  "eslint-plugin-react": {
14760
14765
  "version": "7.24.0",
14761
14766
  "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/components",
3
- "version": "29.0.0-rc.ae627848",
3
+ "version": "29.1.0-rc.4e9b967e",
4
4
  "description": "Primer react components",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -44,7 +44,7 @@
44
44
  "license": "MIT",
45
45
  "dependencies": {
46
46
  "@primer/octicons-react": "^13.0.0",
47
- "@primer/primitives": "4.6.4",
47
+ "@primer/primitives": "4.7.1",
48
48
  "@react-aria/ssr": "3.1.0",
49
49
  "@styled-system/css": "5.1.5",
50
50
  "@styled-system/props": "5.1.5",
@@ -56,6 +56,7 @@
56
56
  "@types/styled-system__theme-get": "5.0.1",
57
57
  "classnames": "2.3.1",
58
58
  "deepmerge": "4.2.2",
59
+ "eslint-plugin-primer-react": "0.4.1",
59
60
  "focus-visible": "5.2.0",
60
61
  "styled-system": "5.1.5"
61
62
  },
@@ -4,7 +4,7 @@ import {get} from '../constants'
4
4
 
5
5
  export const StyledDivider = styled.div`
6
6
  height: 1px;
7
- background: ${get('colors.selectMenu.borderSecondary')};
7
+ background: ${get('colors.border.muted')};
8
8
  margin-top: calc(${get('space.2')} - 1px);
9
9
  margin-bottom: ${get('space.2')};
10
10
  `
@@ -37,15 +37,15 @@ export const StyledHeader = styled.div<{variant: HeaderProps['variant']} & SxPro
37
37
  padding: 6px ${get('space.3')};
38
38
  font-size: ${get('fontSizes.0')};
39
39
  font-weight: ${get('fontWeights.bold')};
40
- color: ${get('colors.text.secondary')};
40
+ color: ${get('colors.fg.muted')};
41
41
 
42
42
  ${({variant}) =>
43
43
  variant === 'filled' &&
44
44
  css`
45
- background: ${get('colors.bg.tertiary')};
45
+ background: ${get('colors.canvas.subtle')};
46
46
  margin: ${get('space.2')} 0;
47
- border-top: 1px solid ${get('colors.border.tertiary')};
48
- border-bottom: 1px solid ${get('colors.border.tertiary')};
47
+ border-top: 1px solid ${get('colors.neutral.muted')};
48
+ border-bottom: 1px solid ${get('colors.neutral.muted')};
49
49
 
50
50
  &:first-child {
51
51
  margin-top: 0;
@@ -129,9 +129,9 @@ export interface ItemProps extends Omit<React.ComponentPropsWithoutRef<'div'>, '
129
129
  const getItemVariant = (variant = 'default', disabled?: boolean) => {
130
130
  if (disabled) {
131
131
  return {
132
- color: get('colors.text.disabled'),
133
- iconColor: get('colors.text.disabled'),
134
- annotationColor: get('colors.text.disabled'),
132
+ color: get('colors.fg.muted'),
133
+ iconColor: get('colors.fg.muted'),
134
+ annotationColor: get('colors.fg.muted'),
135
135
  hoverCursor: 'default'
136
136
  }
137
137
  }
@@ -139,16 +139,16 @@ const getItemVariant = (variant = 'default', disabled?: boolean) => {
139
139
  switch (variant) {
140
140
  case 'danger':
141
141
  return {
142
- color: get('colors.text.danger'),
143
- iconColor: get('colors.icon.danger'),
144
- annotationColor: get('colors.text.disabled'),
142
+ color: get('colors.danger.fg'),
143
+ iconColor: get('colors.danger.fg'),
144
+ annotationColor: get('colors.fg.muted'),
145
145
  hoverCursor: 'pointer'
146
146
  }
147
147
  default:
148
148
  return {
149
149
  color: 'inherit',
150
- iconColor: get('colors.text.secondary'),
151
- annotationColor: get('colors.text.secondary'),
150
+ iconColor: get('colors.fg.muted'),
151
+ annotationColor: get('colors.fg.muted'),
152
152
  hoverCursor: 'pointer'
153
153
  }
154
154
  }
@@ -211,7 +211,7 @@ const StyledItem = styled.div<
211
211
  width: 100%;
212
212
  top: -7px;
213
213
  // NB: This 'get' won’t execute if it’s moved into the arrow function below.
214
- border: 0 solid ${get('colors.selectMenu.borderSecondary')};
214
+ border: 0 solid ${get('colors.border.muted')};
215
215
  border-top-width: ${({showDivider}) => (showDivider ? `1px` : '0')};
216
216
  }
217
217
  }
@@ -297,7 +297,7 @@ const TrailingContent = styled(ColoredVisualContainer)`
297
297
  `
298
298
 
299
299
  const DescriptionContainer = styled.span`
300
- color: ${get('colors.text.secondary')};
300
+ color: ${get('colors.fg.muted')};
301
301
  font-size: ${get('fontSizes.0')};
302
302
  // TODO: When rem-based spacing on a 4px scale lands, replace
303
303
  // hardcoded '16px' with '${get('lh-12')}'.
@@ -106,7 +106,7 @@ const StyledList = styled.div`
106
106
 
107
107
  &[${hasActiveDescendantAttribute}], &:focus-within {
108
108
  --item-hover-bg-override: none;
109
- --item-hover-divider-border-color-override: ${get('colors.selectMenu.borderSecondary')};
109
+ --item-hover-divider-border-color-override: ${get('colors.border.muted')};
110
110
  }
111
111
  `
112
112
 
@@ -16,7 +16,11 @@ export type AvatarPairProps = BoxProps
16
16
  const AvatarPair = ({children, ...rest}: AvatarPairProps) => {
17
17
  const avatars = React.Children.map(children, (child, i) => {
18
18
  if (!React.isValidElement(child)) return child
19
- return i === 0 ? React.cloneElement(child, {size: 40}) : <ChildAvatar bg="bg.canvas" {...child.props} size={20} />
19
+ return i === 0 ? (
20
+ React.cloneElement(child, {size: 40})
21
+ ) : (
22
+ <ChildAvatar bg="canvas.default" {...child.props} size={20} />
23
+ )
20
24
  })
21
25
  return (
22
26
  <Box position="relative" display="inline-flex" {...rest}>
@@ -21,7 +21,7 @@ const AvatarStackWrapper = styled.span<StyledAvatarStackWrapperProps>`
21
21
  flex-shrink: 0;
22
22
  height: 20px;
23
23
  width: 20px;
24
- box-shadow: 0 0 0 1px ${get('colors.bg.canvas')};
24
+ box-shadow: 0 0 0 1px ${get('colors.canvas.default')};
25
25
  margin-left: -11px;
26
26
  position: relative;
27
27
  overflow: hidden;
@@ -118,7 +118,7 @@ const AvatarStackWrapper = styled.span<StyledAvatarStackWrapperProps>`
118
118
  margin-left: ${get('space.1')};
119
119
  opacity: 100%;
120
120
  visibility: visible;
121
- box-shadow: 0 0 0 4px ${get('colors.bg.canvas')};
121
+ box-shadow: 0 0 0 4px ${get('colors.canvas.default')};
122
122
  &:first-child {
123
123
  margin-left: 0;
124
124
  }
@@ -8,8 +8,8 @@ const BranchName = styled.a<SystemCommonProps & SxProp>`
8
8
  padding: 2px 6px;
9
9
  font-size: ${get('fontSizes.0')};
10
10
  font-family: ${get('fonts.mono')};
11
- color: ${get('colors.branchName.text')};
12
- background-color: ${get('colors.branchName.bg')};
11
+ color: ${get('colors.fg.muted')};
12
+ background-color: ${get('colors.accent.subtle')};
13
13
  border-radius: ${get('radii.2')};
14
14
  ${COMMON};
15
15
  ${sx};
@@ -17,7 +17,7 @@ const Wrapper = styled.li`
17
17
  &::after {
18
18
  padding-right: 0.5em;
19
19
  padding-left: 0.5em;
20
- color: ${get('colors.text.disabled')};
20
+ color: ${get('colors.fg.muted')};
21
21
  font-size: ${get('fontSizes.1')};
22
22
  content: '/';
23
23
  }
@@ -64,7 +64,7 @@ const BreadcrumbItem = styled.a.attrs<StyledBreadcrumbItemProps>(props => ({
64
64
  className: classnames(props.selected && SELECTED_CLASS, props.className),
65
65
  'aria-current': props.selected ? 'page' : null
66
66
  }))<StyledBreadcrumbItemProps>`
67
- color: ${get('colors.text.link')};
67
+ color: ${get('colors.accent.fg')};
68
68
  display: inline-block;
69
69
  font-size: ${get('fontSizes.1')};
70
70
  text-decoration: none;
@@ -72,7 +72,7 @@ const BreadcrumbItem = styled.a.attrs<StyledBreadcrumbItemProps>(props => ({
72
72
  text-decoration: underline;
73
73
  }
74
74
  &.selected {
75
- color: ${get('colors.text.primary')};
75
+ color: ${get('colors.fg.default')};
76
76
  pointer-events: none;
77
77
  }
78
78
  ${COMMON}
@@ -27,7 +27,7 @@ const Button = styled(ButtonBase)<ButtonBaseProps & ButtonSystemProps & SxProp>`
27
27
  }
28
28
 
29
29
  &:disabled {
30
- color: ${get('colors.text.disabled')};
30
+ color: ${get('colors.fg.muted')};
31
31
  background-color: ${get('colors.btn.bg')};
32
32
  border-color: ${get('colors.btn.border')};
33
33
  }
@@ -14,14 +14,14 @@ const StyledButton = styled.button<StyledButtonProps>`
14
14
  outline: none;
15
15
  cursor: pointer;
16
16
  border-radius: ${get('radii.2')};
17
- color: ${get('colors.text.secondary')};
17
+ color: ${get('colors.fg.muted')};
18
18
 
19
19
  &:focus {
20
20
  box-shadow: ${get('shadows.btn.focusShadow')};
21
21
  }
22
22
 
23
23
  &:hover {
24
- color: ${get('colors.text.link')};
24
+ color: ${get('colors.accent.fg')};
25
25
  }
26
26
  ${COMMON};
27
27
  ${LAYOUT};
@@ -5,14 +5,14 @@ import {ComponentProps} from '../utils/types'
5
5
  import ButtonBase, {ButtonBaseProps, ButtonSystemProps, buttonSystemProps} from './ButtonBase'
6
6
 
7
7
  const ButtonInvisible = styled(ButtonBase)<ButtonBaseProps & ButtonSystemProps & SxProp>`
8
- color: ${get('colors.text.link')};
8
+ color: ${get('colors.accent.fg')};
9
9
  background-color: transparent;
10
10
  border: 0;
11
11
  border-radius: ${get('radii.2')};
12
12
  box-shadow: none;
13
13
 
14
14
  &:disabled {
15
- color: ${get('colors.text.disabled')};
15
+ color: ${get('colors.fg.muted')};
16
16
  }
17
17
 
18
18
  &:focus {
@@ -17,7 +17,7 @@ const ButtonTableList = styled.summary<StyledButtonTableListProps>`
17
17
  display: inline-block;
18
18
  padding: 0;
19
19
  font-size: ${get('fontSizes.1')};
20
- color: ${get('colors.text.secondary')};
20
+ color: ${get('colors.fg.muted')};
21
21
  text-decoration: none;
22
22
  white-space: nowrap;
23
23
  cursor: pointer;
@@ -33,7 +33,7 @@ const ButtonTableList = styled.summary<StyledButtonTableListProps>`
33
33
  &:disabled {
34
34
  &,
35
35
  &:hover {
36
- color: rgba(${get('colors.text.secondary')}, 0.5);
36
+ color: rgba(${get('colors.fg.muted')}, 0.5);
37
37
  cursor: default;
38
38
  }
39
39
  }
@@ -30,7 +30,7 @@ const CircleBadge = styled.div<StyledCircleBadgeProps>`
30
30
  display: ${props => (props.inline ? 'inline-flex' : 'flex')};
31
31
  align-items: center;
32
32
  justify-content: center;
33
- background-color: ${get('colors.bg.canvas')};
33
+ background-color: ${get('colors.canvas.default')};
34
34
  border-radius: 50%;
35
35
  box-shadow: ${get('shadows.shadow.medium')};
36
36
  ${COMMON};
@@ -20,7 +20,7 @@ function CircleOcticon(props: CircleOcticonProps) {
20
20
  size={size}
21
21
  borderRadius="50%"
22
22
  borderStyle="solid"
23
- borderColor="border.primary"
23
+ borderColor="border.default"
24
24
  >
25
25
  <Box display="flex" {...rest} alignItems="center" justifyContent="center">
26
26
  <IconComponent size={size} />
@@ -12,10 +12,10 @@ const colorStyles = ({scheme, ...props}: StyledCounterLabelProps) => {
12
12
  return {
13
13
  color:
14
14
  scheme === 'secondary'
15
- ? get('colors.counter.text')(props)
15
+ ? get('colors.fg.default')(props)
16
16
  : scheme === 'primary'
17
- ? get('colors.counter.primary.text')(props)
18
- : get('colors.counter.text')(props)
17
+ ? get('colors.fg.onEmphasis')(props)
18
+ : get('colors.fg.default')(props)
19
19
  }
20
20
  }
21
21
 
@@ -23,10 +23,10 @@ const bgStyles = ({scheme, ...props}: StyledCounterLabelProps) => {
23
23
  return {
24
24
  backgroundColor:
25
25
  scheme === 'secondary'
26
- ? get('colors.counter.bg')(props)
26
+ ? get('colors.neutral.muted')(props)
27
27
  : scheme === 'primary'
28
- ? get('colors.counter.primary.bg')(props)
29
- : get('colors.counter.bg')(props)
28
+ ? get('colors.neutral.emphasis')(props)
29
+ : get('colors.neutral.muted')(props)
30
30
  }
31
31
  }
32
32
 
@@ -65,7 +65,7 @@ const ConfirmationHeader: React.FC<DialogHeaderProps> = ({title, onClose, dialog
65
65
  const StyledConfirmationBody = styled(Box)`
66
66
  font-size: ${get('fontSizes.1')};
67
67
  padding: 0 ${get('space.3')} ${get('space.3')} ${get('space.3')};
68
- color: ${get('colors.text.tertiary')};
68
+ color: ${get('colors.fg.muted')};
69
69
  flex-grow: 1;
70
70
  `
71
71
  const ConfirmationBody: React.FC<DialogProps> = ({children}) => {
@@ -182,7 +182,7 @@ interface StyledDialogProps {
182
182
  const StyledDialog = styled.div<StyledDialogProps & SystemCommonProps & SystemPositionProps & SxProp>`
183
183
  display: flex;
184
184
  flex-direction: column;
185
- background-color: ${get('colors.bg.overlay')};
185
+ background-color: ${get('colors.canvas.overlay')};
186
186
  box-shadow: ${get('shadows.overlay.shadow')};
187
187
  min-width: 296px;
188
188
  max-width: calc(100vw - 64px);
@@ -297,7 +297,7 @@ const _Dialog = React.forwardRef<HTMLDivElement, React.PropsWithChildren<DialogP
297
297
  _Dialog.displayName = 'Dialog'
298
298
 
299
299
  const Header = styled(Box).attrs({as: 'header'})`
300
- box-shadow: 0 1px 0 ${get('colors.border.overlay')};
300
+ box-shadow: 0 1px 0 ${get('colors.border.default')};
301
301
  padding: ${get('space.2')};
302
302
  z-index: 1;
303
303
  flex-shrink: 0;
@@ -309,7 +309,7 @@ const Title = styled(Box)`
309
309
  const Subtitle = styled(Box)`
310
310
  font-size: ${get('fontSizes.0')};
311
311
  margin-top: ${get('space.1')};
312
- color: ${get('colors.text.tertiary')};
312
+ color: ${get('colors.fg.muted')};
313
313
  `
314
314
  const Body = styled(Box)`
315
315
  flex-grow: 1;
@@ -317,7 +317,7 @@ const Body = styled(Box)`
317
317
  padding: ${get('space.3')};
318
318
  `
319
319
  const Footer = styled(Box).attrs({as: 'footer'})`
320
- box-shadow: 0 -1px 0 ${get('colors.border.overlay')};
320
+ box-shadow: 0 -1px 0 ${get('colors.border.default')};
321
321
  padding: ${get('space.3')};
322
322
  display: flex;
323
323
  flex-flow: wrap;
@@ -373,7 +373,7 @@ const DialogCloseButton = styled(Button)`
373
373
  background: transparent;
374
374
  border: 0;
375
375
  vertical-align: middle;
376
- color: ${get('colors.text.secondary')};
376
+ color: ${get('colors.fg.muted')};
377
377
  padding: ${get('space.2')};
378
378
  align-self: flex-start;
379
379
  line-height: normal;
package/src/Dialog.tsx CHANGED
@@ -28,7 +28,7 @@ const DialogBase = styled.div<StyledDialogBaseProps>`
28
28
  max-height: 80vh;
29
29
  z-index: 999;
30
30
  margin: 10vh auto;
31
- background-color: ${get('colors.bg.primary')};
31
+ background-color: ${get('colors.canvas.default')};
32
32
  width: ${props => (props.narrow ? '320px' : props.wide ? '640px' : '440px')};
33
33
  outline: none;
34
34
 
@@ -46,7 +46,7 @@ const DialogBase = styled.div<StyledDialogBaseProps>`
46
46
 
47
47
  const DialogHeaderBase = styled(Box)<SxProp>`
48
48
  border-radius: ${get('radii.2')} ${get('radii.2')} 0px 0px;
49
- border-bottom: 1px solid ${get('colors.border.primary')};
49
+ border-bottom: 1px solid ${get('colors.border.default')};
50
50
  display: flex;
51
51
 
52
52
  @media screen and (max-width: 750px) {
@@ -60,7 +60,7 @@ export type DialogHeaderProps = ComponentProps<typeof DialogHeaderBase>
60
60
  function DialogHeader({theme, children, backgroundColor = 'gray.1', ...rest}: DialogHeaderProps) {
61
61
  if (React.Children.toArray(children).every(ch => typeof ch === 'string')) {
62
62
  children = (
63
- <Text theme={theme} color="text.primary" fontSize={1} fontWeight="bold" fontFamily="sans-serif">
63
+ <Text theme={theme} color="fg.default" fontSize={1} fontWeight="bold" fontFamily="sans-serif">
64
64
  {children}
65
65
  </Text>
66
66
  )
@@ -85,7 +85,7 @@ const Overlay = styled.span`
85
85
  content: ' ';
86
86
  background: transparent;
87
87
  z-index: 99;
88
- background: ${get('colors.fade.black50')};
88
+ background: ${get('colors.primer.canvas.backdrop')};
89
89
  }
90
90
  `
91
91
 
package/src/Dropdown.tsx CHANGED
@@ -56,10 +56,10 @@ type StyledDropdownMenuProps = {
56
56
 
57
57
  const DropdownMenu = styled.ul<StyledDropdownMenuProps>`
58
58
  background-clip: padding-box;
59
- background-color: ${get('colors.bg.overlay')};
60
- border: 1px solid ${get('colors.border.overlay')};
59
+ background-color: ${get('colors.canvas.overlay')};
60
+ border: 1px solid ${get('colors.border.default')};
61
61
  border-radius: ${get('radii.2')};
62
- box-shadow: ${get('shadows.dropdown.shadow')};
62
+ box-shadow: ${get('shadows.shadow.large')};
63
63
  left: 0;
64
64
  list-style: none;
65
65
  margin-top: 2px;
@@ -83,12 +83,12 @@ const DropdownMenu = styled.ul<StyledDropdownMenuProps>`
83
83
 
84
84
  &::before {
85
85
  border: 8px solid transparent;
86
- border-bottom-color: ${get('colors.bg.overlay')};
86
+ border-bottom-color: ${get('colors.canvas.overlay')};
87
87
  }
88
88
 
89
89
  &::after {
90
90
  border: 7px solid transparent;
91
- border-bottom-color: ${get('colors.bg.overlay')};
91
+ border-bottom-color: ${get('colors.canvas.overlay')};
92
92
  }
93
93
 
94
94
  // stylelint-disable-next-line selector-max-type
@@ -104,31 +104,31 @@ const DropdownItem = styled.li`
104
104
  display: block;
105
105
  padding: ${get('space.1')} 10px ${get('space.1')} 15px;
106
106
  overflow: hidden;
107
- color: ${get('colors.text.primary')};
107
+ color: ${get('colors.fg.default')};
108
108
  text-overflow: ellipsis;
109
109
  white-space: nowrap;
110
110
  a {
111
- color: ${get('colors.text.primary')};
111
+ color: ${get('colors.fg.default')};
112
112
  text-decoration: none;
113
113
  display: block;
114
114
  overflow: hidden;
115
- color: ${get('colors.text.primary')};
115
+ color: ${get('colors.fg.default')};
116
116
  text-overflow: ellipsis;
117
117
  white-space: nowrap;
118
118
  }
119
119
 
120
120
  &:focus,
121
121
  a:focus {
122
- color: ${get('colors.state.hover.primaryText')};
122
+ color: ${get('colors.fg.onEmphasis')};
123
123
  text-decoration: none;
124
- background-color: ${get('colors.state.hover.primaryBg')};
124
+ background-color: ${get('colors.accent.emphasis')};
125
125
  }
126
126
 
127
127
  &:hover,
128
128
  &:hover a {
129
- color: ${get('colors.state.hover.primaryText')};
129
+ color: ${get('colors.fg.onEmphasis')};
130
130
  text-decoration: none;
131
- background-color: ${get('colors.state.hover.primaryBg')};
131
+ background-color: ${get('colors.accent.emphasis')};
132
132
  outline: none;
133
133
  }
134
134
  ${COMMON};
@@ -16,7 +16,7 @@ const getDirectionStyles = (theme: Theme, direction: 'ne' | 'e' | 'se' | 's' | '
16
16
  right: -16px;
17
17
  left: auto;
18
18
  border-color: transparent;
19
- border-left-color: ${get('colors.border.overlay')(theme)};
19
+ border-left-color: ${get('colors.border.default')(theme)};
20
20
  }
21
21
 
22
22
  &::after {
@@ -24,7 +24,7 @@ const getDirectionStyles = (theme: Theme, direction: 'ne' | 'e' | 'se' | 's' | '
24
24
  right: -14px;
25
25
  left: auto;
26
26
  border-color: transparent;
27
- border-left-color: ${get('colors.border.overlay')(theme)};
27
+ border-left-color: ${get('colors.border.default')(theme)};
28
28
  }
29
29
  `,
30
30
  e: `
@@ -38,14 +38,14 @@ const getDirectionStyles = (theme: Theme, direction: 'ne' | 'e' | 'se' | 's' | '
38
38
  top: 10px;
39
39
  left: -16px;
40
40
  border-color: transparent;
41
- border-right-color: ${get('colors.border.overlay')(theme)};
41
+ border-right-color: ${get('colors.border.default')(theme)};
42
42
  }
43
43
 
44
44
  &::after {
45
45
  top: 11px;
46
46
  left: -14px;
47
47
  border-color: transparent;
48
- border-right-color: ${get('colors.border.overlay')(theme)};
48
+ border-right-color: ${get('colors.border.default')(theme)};
49
49
  }
50
50
  `,
51
51
  ne: `
@@ -63,7 +63,7 @@ const getDirectionStyles = (theme: Theme, direction: 'ne' | 'e' | 'se' | 's' | '
63
63
  &::before {
64
64
  bottom: -8px;
65
65
  left: 9px;
66
- border-top: 8px solid ${get('colors.border.overlay')(theme)};
66
+ border-top: 8px solid ${get('colors.border.default')(theme)};
67
67
  border-bottom: 0;
68
68
  border-left: 8px solid transparent;
69
69
  }
@@ -71,7 +71,7 @@ const getDirectionStyles = (theme: Theme, direction: 'ne' | 'e' | 'se' | 's' | '
71
71
  &::after {
72
72
  bottom: -7px;
73
73
  left: 10px;
74
- border-top: 7px solid ${get('colors.border.overlay')(theme)};
74
+ border-top: 7px solid ${get('colors.border.default')(theme)};
75
75
  border-right: 7px solid transparent;
76
76
  border-bottom: 0;
77
77
  border-left: 7px solid transparent;
@@ -33,8 +33,8 @@ const FilterListItemBase = styled.a<StyledFilterListItemBaseProps>`
33
33
  margin: ${props => (props.small ? '0 0 2px' : '0 0 5px 0')};
34
34
  overflow: hidden;
35
35
  font-size: ${get('fontSizes.1')};
36
- color: ${props => (props.selected ? get('colors.state.selected.primaryText') : get('colors.text.secondary'))};
37
- background-color: ${props => (props.selected ? get('colors.state.selected.primaryBg') : '')}!important;
36
+ color: ${props => (props.selected ? get('colors.fg.onEmphasis') : get('colors.fg.muted'))};
37
+ background-color: ${props => (props.selected ? get('colors.accent.emphasis') : '')}!important;
38
38
  text-decoration: none;
39
39
  text-overflow: ellipsis;
40
40
  white-space: nowrap;
@@ -42,11 +42,11 @@ const FilterListItemBase = styled.a<StyledFilterListItemBaseProps>`
42
42
  border-radius: ${get('radii.1')};
43
43
  &:hover {
44
44
  text-decoration: none;
45
- background-color: ${get('colors.bg.tertiary')};
45
+ background-color: ${get('colors.canvas.subtle')};
46
46
  }
47
47
  &:active {
48
- color: ${get('colors.state.selected.primaryText')};
49
- background-color: ${get('colors.state.selected.primaryBg')};
48
+ color: ${get('colors.fg.onEmphasis')};
49
+ background-color: ${get('colors.accent.emphasis')};
50
50
  }
51
51
  .count {
52
52
  float: right;
@@ -45,7 +45,7 @@ function scrollIntoViewingArea(
45
45
  }
46
46
 
47
47
  const StyledHeader = styled.div`
48
- box-shadow: 0 1px 0 ${get('colors.border.primary')};
48
+ box-shadow: 0 1px 0 ${get('colors.border.default')};
49
49
  z-index: 1;
50
50
  `
51
51
 
@@ -126,7 +126,7 @@ export function FilteredActionList({
126
126
  ref={inputRef}
127
127
  block
128
128
  width="auto"
129
- color="text.primary"
129
+ color="fg.default"
130
130
  value={filterValue}
131
131
  onChange={onInputChange}
132
132
  onKeyPress={onInputKeyPress}
package/src/Flash.tsx CHANGED
@@ -49,7 +49,7 @@ const Flash = styled.div<
49
49
  SxProp
50
50
  >`
51
51
  position: relative;
52
- color: ${get('colors.text.primary')};
52
+ color: ${get('colors.fg.default')};
53
53
  padding: ${get('space.3')};
54
54
  border-style: solid;
55
55
  border-width: ${props => (props.full ? '1px 0px' : '1px')};
package/src/Label.tsx CHANGED
@@ -7,8 +7,8 @@ import {ComponentProps} from './utils/types'
7
7
  const outlineStyles = css`
8
8
  margin-top: -1px; // offsets the 1px border
9
9
  margin-bottom: -1px; // offsets the 1px border
10
- color: ${get('colors.label.secondary.text')};
11
- border: ${get('borderWidths.1')} solid ${get('colors.label.border')};
10
+ color: ${get('colors.fg.muted')};
11
+ border: ${get('borderWidths.1')} solid ${get('colors.border.default')};
12
12
  box-shadow: none;
13
13
  ${borderColor};
14
14
  ${COMMON};
@@ -52,7 +52,7 @@ const Label = styled.span<
52
52
  >`
53
53
  display: inline-block;
54
54
  font-weight: ${get('fontWeights.semibold')};
55
- color: ${get('colors.text.inverse')};
55
+ color: ${get('colors.fg.onEmphasis')};
56
56
  border-radius: ${get('radii.3')};
57
57
 
58
58
  &:hover {
package/src/Link.tsx CHANGED
@@ -20,11 +20,11 @@ const hoverColor = system({
20
20
  })
21
21
 
22
22
  const Link = styled.a<StyledLinkProps>`
23
- color: ${props => (props.muted ? get('colors.text.secondary')(props) : get('colors.text.link')(props))};
23
+ color: ${props => (props.muted ? get('colors.fg.muted')(props) : get('colors.accent.fg')(props))};
24
24
  text-decoration: ${props => (props.underline ? 'underline' : 'none')};
25
25
  &:hover {
26
26
  text-decoration: ${props => (props.muted ? 'none' : 'underline')};
27
- ${props => (props.hoverColor ? hoverColor : props.muted ? `color: ${get('colors.text.link')(props)}` : '')};
27
+ ${props => (props.hoverColor ? hoverColor : props.muted ? `color: ${get('colors.accent.fg')(props)}` : '')};
28
28
  }
29
29
  &:is(button) {
30
30
  display: inline-block;