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

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 (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;