@primer/components 33.0.0-rc.b495ba4a → 33.1.0-rc.6856bcf5

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 (234) hide show
  1. package/.devcontainer/devcontainer.json +1 -1
  2. package/.github/workflows/ci.yml +1 -1
  3. package/.github/workflows/release.yml +6 -27
  4. package/.github/workflows/release_canary.yml +4 -60
  5. package/.github/workflows/release_candidate.yml +5 -51
  6. package/.github/workflows/statuses.yml +32 -0
  7. package/.gitignore +1 -0
  8. package/.nvmrc +1 -1
  9. package/CHANGELOG.md +20 -0
  10. package/contributor-docs/CONTRIBUTING.md +14 -61
  11. package/dist/browser.esm.js +2 -2209
  12. package/dist/browser.esm.js.map +1 -1
  13. package/dist/browser.umd.js +2 -2209
  14. package/dist/browser.umd.js.map +1 -1
  15. package/docs/content/AnchoredOverlay.mdx +121 -1
  16. package/docs/content/Avatar.mdx +29 -14
  17. package/docs/content/AvatarPair.mdx +47 -0
  18. package/docs/content/AvatarStack.mdx +14 -6
  19. package/docs/content/Box.mdx +13 -11
  20. package/docs/content/BranchName.mdx +52 -0
  21. package/docs/content/{Breadcrumbs.md → Breadcrumbs.mdx} +21 -13
  22. package/docs/content/Link.mdx +75 -0
  23. package/docs/content/Radio.md +90 -0
  24. package/docs/content/TextInput.mdx +125 -0
  25. package/docs/content/drafts/ActionList2.mdx +484 -0
  26. package/docs/content/drafts/ActionMenu2.mdx +302 -0
  27. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +9 -1
  28. package/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js +15 -2
  29. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +4 -0
  30. package/docs/src/component-checklist.js +10 -2
  31. package/docs/src/props-table.js +165 -0
  32. package/docs/src/props.js +14 -28
  33. package/lib/ActionList/Header.js +1 -1
  34. package/lib/ActionList/Item.js +10 -10
  35. package/lib/ActionList/List.js +1 -1
  36. package/lib/ActionList2/ActionListContainerContext.d.ts +10 -0
  37. package/lib/ActionList2/ActionListContainerContext.js +15 -0
  38. package/lib/ActionList2/Divider.d.ts +3 -2
  39. package/lib/ActionList2/Divider.js +10 -5
  40. package/lib/ActionList2/Item.js +22 -8
  41. package/lib/ActionList2/List.js +12 -2
  42. package/lib/ActionList2/Selection.js +11 -0
  43. package/lib/ActionList2/index.d.ts +1 -2
  44. package/lib/ActionMenu2.d.ts +317 -0
  45. package/lib/ActionMenu2.js +125 -0
  46. package/lib/Autocomplete/Autocomplete.d.ts +2 -1
  47. package/lib/Autocomplete/AutocompleteInput.d.ts +2 -1
  48. package/lib/BaseStyles.js +2 -20
  49. package/lib/BorderBox.js +1 -1
  50. package/lib/Box.js +1 -1
  51. package/lib/BranchName.js +1 -1
  52. package/lib/Breadcrumbs.js +3 -3
  53. package/lib/Button/Button.d.ts +2 -2
  54. package/lib/Button/Button.js +1 -1
  55. package/lib/Button/ButtonClose.d.ts +2 -2
  56. package/lib/Button/ButtonDanger.d.ts +2 -2
  57. package/lib/Button/ButtonGroup.js +1 -1
  58. package/lib/Button/ButtonInvisible.d.ts +2 -2
  59. package/lib/Button/ButtonOutline.d.ts +2 -2
  60. package/lib/Button/ButtonPrimary.d.ts +2 -2
  61. package/lib/Checkbox.d.ts +1 -1
  62. package/lib/Checkbox.js +1 -1
  63. package/lib/CircleOcticon.d.ts +35 -35
  64. package/lib/Details.js +1 -1
  65. package/lib/Dialog.d.ts +37 -37
  66. package/lib/Dropdown.d.ts +6 -6
  67. package/lib/DropdownMenu/DropdownButton.d.ts +6 -3
  68. package/lib/FilterList.d.ts +1 -1
  69. package/lib/FilteredActionList/FilteredActionList.js +1 -1
  70. package/lib/Flex.js +1 -1
  71. package/lib/LabelGroup.js +1 -1
  72. package/lib/Overlay.js +1 -1
  73. package/lib/Pagination/Pagination.js +2 -2
  74. package/lib/Position.d.ts +4 -4
  75. package/lib/Position.js +1 -1
  76. package/lib/Radio.d.ts +38 -0
  77. package/lib/Radio.js +55 -0
  78. package/lib/SelectMenu/SelectMenu.d.ts +11 -10
  79. package/lib/SelectMenu/SelectMenu.js +1 -1
  80. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  81. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  82. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  83. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  84. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  85. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  86. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  87. package/lib/SelectMenu/SelectMenuTabs.js +1 -1
  88. package/lib/StateLabel.js +1 -1
  89. package/lib/StyledOcticon.js +1 -1
  90. package/lib/SubNav.js +3 -3
  91. package/lib/TextInputWithTokens.d.ts +2 -1
  92. package/lib/ThemeProvider.d.ts +1 -0
  93. package/lib/ThemeProvider.js +17 -4
  94. package/lib/Timeline.js +4 -4
  95. package/lib/Token/AvatarToken.d.ts +1 -1
  96. package/lib/Token/AvatarToken.js +1 -1
  97. package/lib/Token/IssueLabelToken.d.ts +1 -1
  98. package/lib/Token/Token.d.ts +1 -1
  99. package/lib/Token/TokenBase.js +1 -1
  100. package/lib/Tooltip.js +1 -1
  101. package/lib/UnderlineNav.js +2 -2
  102. package/lib/__tests__/Radio.test.d.ts +2 -0
  103. package/lib/__tests__/Radio.test.js +202 -0
  104. package/lib/__tests__/ThemeProvider.test.js +114 -0
  105. package/lib/drafts.d.ts +1 -0
  106. package/lib/drafts.js +13 -0
  107. package/lib/hooks/index.d.ts +1 -0
  108. package/lib/hooks/index.js +9 -1
  109. package/lib/index.d.ts +2 -0
  110. package/lib/index.js +8 -0
  111. package/lib/stories/ActionList.stories.js +3 -3
  112. package/lib/stories/ActionList2.stories.js +1 -1
  113. package/lib/stories/ActionMenu2.stories.js +455 -0
  114. package/lib/stories/Checkbox.stories.js +4 -4
  115. package/lib/stories/Radio.stories.js +146 -0
  116. package/lib/stories/ThemeProvider.stories.js +1 -5
  117. package/lib/stories/useFocusTrap.stories.js +1 -11
  118. package/lib/stories/useFocusZone.stories.js +2 -6
  119. package/lib-esm/ActionList/Header.js +1 -1
  120. package/lib-esm/ActionList/Item.js +10 -10
  121. package/lib-esm/ActionList/List.js +1 -1
  122. package/lib-esm/ActionList2/ActionListContainerContext.d.ts +10 -0
  123. package/lib-esm/ActionList2/ActionListContainerContext.js +3 -0
  124. package/lib-esm/ActionList2/Divider.d.ts +3 -2
  125. package/lib-esm/ActionList2/Divider.js +8 -5
  126. package/lib-esm/ActionList2/Item.js +20 -8
  127. package/lib-esm/ActionList2/List.js +10 -2
  128. package/lib-esm/ActionList2/Selection.js +9 -0
  129. package/lib-esm/ActionList2/index.d.ts +1 -2
  130. package/lib-esm/ActionMenu2.d.ts +317 -0
  131. package/lib-esm/ActionMenu2.js +100 -0
  132. package/lib-esm/Autocomplete/Autocomplete.d.ts +2 -1
  133. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +2 -1
  134. package/lib-esm/BaseStyles.js +2 -20
  135. package/lib-esm/BorderBox.js +1 -1
  136. package/lib-esm/Box.js +1 -1
  137. package/lib-esm/BranchName.js +1 -1
  138. package/lib-esm/Breadcrumbs.js +3 -3
  139. package/lib-esm/Button/Button.d.ts +2 -2
  140. package/lib-esm/Button/Button.js +1 -1
  141. package/lib-esm/Button/ButtonClose.d.ts +2 -2
  142. package/lib-esm/Button/ButtonDanger.d.ts +2 -2
  143. package/lib-esm/Button/ButtonGroup.js +1 -1
  144. package/lib-esm/Button/ButtonInvisible.d.ts +2 -2
  145. package/lib-esm/Button/ButtonOutline.d.ts +2 -2
  146. package/lib-esm/Button/ButtonPrimary.d.ts +2 -2
  147. package/lib-esm/Checkbox.d.ts +1 -1
  148. package/lib-esm/Checkbox.js +1 -1
  149. package/lib-esm/CircleOcticon.d.ts +35 -35
  150. package/lib-esm/Details.js +1 -1
  151. package/lib-esm/Dialog.d.ts +37 -37
  152. package/lib-esm/Dropdown.d.ts +6 -6
  153. package/lib-esm/DropdownMenu/DropdownButton.d.ts +6 -3
  154. package/lib-esm/FilterList.d.ts +1 -1
  155. package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
  156. package/lib-esm/Flex.js +1 -1
  157. package/lib-esm/LabelGroup.js +1 -1
  158. package/lib-esm/Overlay.js +1 -1
  159. package/lib-esm/Pagination/Pagination.js +2 -2
  160. package/lib-esm/Position.d.ts +4 -4
  161. package/lib-esm/Position.js +1 -1
  162. package/lib-esm/Radio.d.ts +38 -0
  163. package/lib-esm/Radio.js +40 -0
  164. package/lib-esm/SelectMenu/SelectMenu.d.ts +11 -10
  165. package/lib-esm/SelectMenu/SelectMenu.js +1 -1
  166. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  167. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  168. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  169. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  170. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  171. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  172. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  173. package/lib-esm/SelectMenu/SelectMenuTabs.js +1 -1
  174. package/lib-esm/StateLabel.js +1 -1
  175. package/lib-esm/StyledOcticon.js +1 -1
  176. package/lib-esm/SubNav.js +3 -3
  177. package/lib-esm/TextInputWithTokens.d.ts +2 -1
  178. package/lib-esm/ThemeProvider.d.ts +1 -0
  179. package/lib-esm/ThemeProvider.js +17 -4
  180. package/lib-esm/Timeline.js +4 -4
  181. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  182. package/lib-esm/Token/AvatarToken.js +1 -1
  183. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  184. package/lib-esm/Token/Token.d.ts +1 -1
  185. package/lib-esm/Token/TokenBase.js +1 -1
  186. package/lib-esm/Tooltip.js +1 -1
  187. package/lib-esm/UnderlineNav.js +2 -2
  188. package/lib-esm/__tests__/Radio.test.d.ts +2 -0
  189. package/lib-esm/__tests__/Radio.test.js +183 -0
  190. package/lib-esm/__tests__/ThemeProvider.test.js +114 -0
  191. package/lib-esm/drafts.d.ts +1 -0
  192. package/lib-esm/drafts.js +2 -1
  193. package/lib-esm/hooks/index.d.ts +1 -0
  194. package/lib-esm/hooks/index.js +2 -1
  195. package/lib-esm/index.d.ts +2 -0
  196. package/lib-esm/index.js +1 -0
  197. package/lib-esm/stories/ActionList.stories.js +3 -3
  198. package/lib-esm/stories/ActionList2.stories.js +1 -1
  199. package/lib-esm/stories/ActionMenu2.stories.js +393 -0
  200. package/lib-esm/stories/Checkbox.stories.js +5 -5
  201. package/lib-esm/stories/Radio.stories.js +121 -0
  202. package/lib-esm/stories/ThemeProvider.stories.js +1 -5
  203. package/lib-esm/stories/useFocusTrap.stories.js +1 -11
  204. package/lib-esm/stories/useFocusZone.stories.js +2 -6
  205. package/package-lock.json +1366 -3544
  206. package/package.json +14 -8
  207. package/script/component-status-project/build.ts +100 -0
  208. package/script/component-status-project/deploy.rb +142 -0
  209. package/src/ActionList2/ActionListContainerContext.tsx +14 -0
  210. package/src/ActionList2/Divider.tsx +13 -8
  211. package/src/ActionList2/Item.tsx +14 -6
  212. package/src/ActionList2/List.tsx +6 -2
  213. package/src/ActionList2/Selection.tsx +9 -0
  214. package/src/ActionMenu2.tsx +116 -0
  215. package/src/BranchName.tsx +2 -1
  216. package/src/Radio.tsx +76 -0
  217. package/src/ThemeProvider.tsx +22 -5
  218. package/src/__tests__/Radio.test.tsx +174 -0
  219. package/src/__tests__/ThemeProvider.test.tsx +116 -0
  220. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +3 -1
  221. package/src/__tests__/__snapshots__/Radio.test.tsx.snap +16 -0
  222. package/src/drafts.ts +1 -0
  223. package/src/hooks/index.ts +1 -0
  224. package/src/index.ts +2 -0
  225. package/src/stories/ActionMenu2.stories.tsx +605 -0
  226. package/src/stories/Checkbox.stories.tsx +1 -3
  227. package/src/stories/Radio.stories.tsx +126 -0
  228. package/stats.html +1 -1
  229. package/tsconfig.build.json +1 -1
  230. package/tsconfig.json +1 -1
  231. package/docs/content/ActionList2.mdx +0 -379
  232. package/docs/content/BranchName.md +0 -39
  233. package/docs/content/Link.md +0 -29
  234. package/docs/content/TextInput.md +0 -42
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: AnchoredOverlay
3
3
  status: Alpha
4
+ source: https://github.com/primer/react/blob/main/src/AnchoredOverlay/AnchoredOverlay.tsx
5
+ storybook: https://primer.style/react/storybook?path=/story/generic-behaviors-anchoredoverlay--default-portal
4
6
  ---
5
7
 
6
8
  An `AnchoredOverlay` provides an anchor that will open a floating overlay positioned relative to the anchor.
@@ -8,7 +10,7 @@ The overlay can be opened and navigated using keyboard or mouse.
8
10
 
9
11
  See also [Overlay positioning](/Overlay#positioning).
10
12
 
11
- ## Example
13
+ ## Examples
12
14
 
13
15
  ```jsx live
14
16
  <State default={false}>
@@ -35,3 +37,121 @@ See also [Overlay positioning](/Overlay#positioning).
35
37
  }}
36
38
  </State>
37
39
  ```
40
+
41
+ ## Props
42
+
43
+ <PropsTable>
44
+ <PropsTableRow
45
+ name="open"
46
+ type="boolean"
47
+ defaultValue="false"
48
+ description="Determines whether the overlay portion of the component should be shown or not."
49
+ />
50
+ <PropsTableRow
51
+ name="onOpen"
52
+ type="(gesture: 'anchor-click' | 'anchor-key-press') => unknown"
53
+ description='A callback that is called whenever the overlay is currently closed and an "open gesture" is detected.'
54
+ />
55
+ <PropsTableRow
56
+ name="onClose"
57
+ type="(gesture: 'anchor-click' | 'click-outside' | 'escape') => unknown"
58
+ description='A callback that is called whenever the overlay is currently open and a "close gesture" is detected.'
59
+ />
60
+ <PropsTableRow
61
+ name="renderAnchor"
62
+ type="<T extends React.HTMLAttributes<HTMLElement>>(props: T) => JSX.Element"
63
+ description={
64
+ <>
65
+ A custom function component used to render the anchor element. When renderAnchor is null, an anchorRef is
66
+ required.
67
+ </>
68
+ }
69
+ />
70
+ <PropsTableRow
71
+ name="anchorRef"
72
+ type="React.RefObject<HTMLElement>"
73
+ description={
74
+ <>
75
+ An override to the internal <InlineCode>renderAnchor</InlineCode> ref that will be used to position the overlay.
76
+ When <InlineCode>renderAnchor</InlineCode> is
77
+ <InlineCode>null</InlineCode>, this can be used to make an anchor that is detached from <InlineCode>
78
+ AnchoredOverlay
79
+ </InlineCode>.
80
+ </>
81
+ }
82
+ />
83
+ <PropsTableRow
84
+ name="side"
85
+ type={`| 'inside-top'
86
+ | 'inside-bottom'
87
+ | 'inside-left'
88
+ | 'inside-right'
89
+ | 'inside-center'
90
+ | 'outside-top'
91
+ | 'outside-bottom'
92
+ | 'outside-left'
93
+ | 'outside-right'`}
94
+ defaultValue="'outside-bottom'"
95
+ />
96
+ <PropsTableRow name="align" type="'start' | 'center' | 'end'" defaultValue="'start'" />
97
+ <PropsTableRow
98
+ name="overlayProps"
99
+ type={
100
+ <>
101
+ Partial&lt;<Link href="/Overlay#props">OverlayProps</Link>&gt;
102
+ </>
103
+ }
104
+ description={
105
+ <>
106
+ Props to be spread on the internal <InlineCode>Overlay</InlineCode> component.
107
+ </>
108
+ }
109
+ />
110
+ <PropsTableRow
111
+ name="focusTrapSettings"
112
+ type={
113
+ <>
114
+ Partial&lt;<Link href="/focusTrap#focustraphooksettings-interface">FocusTrapHookSettings</Link>&gt;
115
+ </>
116
+ }
117
+ description={
118
+ <>
119
+ Settings to apply to the focus trap on the internal <InlineCode>Overlay</InlineCode> component.
120
+ </>
121
+ }
122
+ />
123
+ <PropsTableRow
124
+ name="focusZoneSettings"
125
+ type={
126
+ <>
127
+ Partial&lt;<Link href="/focusZone#focuszonehooksettings-interface">FocusZoneHookSettings</Link>&gt;
128
+ </>
129
+ }
130
+ description={
131
+ <>
132
+ Settings to apply to the focus zone on the internal <InlineCode>Overlay</InlineCode> component.
133
+ </>
134
+ }
135
+ />
136
+ </PropsTable>
137
+
138
+ ## Status
139
+
140
+ <ComponentChecklist
141
+ items={{
142
+ propsDocumented: true,
143
+ noUnnecessaryDeps: true,
144
+ adaptsToThemes: true,
145
+ adaptsToScreenSizes: true,
146
+ fullTestCoverage: false,
147
+ usedInProduction: true,
148
+ usageExamplesDocumented: false,
149
+ hasStorybookStories: true,
150
+ designReviewed: false,
151
+ a11yReviewed: false,
152
+ stableApi: false,
153
+ addressedApiFeedback: false,
154
+ hasDesignGuidelines: false,
155
+ hasFigmaComponent: false
156
+ }}
157
+ />
@@ -5,17 +5,19 @@ componentId: avatar
5
5
  source: https://github.com/primer/react/blob/main/src/Avatar.tsx
6
6
  ---
7
7
 
8
- import {Avatar} from '@primer/components'
8
+ import {Avatar, Box} from '@primer/components'
9
9
 
10
- ```jsx live
11
- <Avatar src="https://avatars.githubusercontent.com/primer" />
10
+ ```js
11
+ import {Avatar} from '@primer/components'
12
12
  ```
13
13
 
14
- ## Props
14
+ ## Examples
15
15
 
16
- <Props of={Avatar} />
16
+ ### Default
17
17
 
18
- ## Examples
18
+ ```jsx live
19
+ <Avatar src="https://avatars.githubusercontent.com/primer" />
20
+ ```
19
21
 
20
22
  ### Square
21
23
 
@@ -23,16 +25,29 @@ import {Avatar} from '@primer/components'
23
25
  <Avatar square src="https://avatars.githubusercontent.com/primer" />
24
26
  ```
25
27
 
26
- ### AvatarPair
28
+ ## Props
27
29
 
28
- ```jsx live
29
- <AvatarPair>
30
- <Avatar src="https://avatars.githubusercontent.com/github" />
31
- <Avatar src="https://avatars.githubusercontent.com/primer" />
32
- </AvatarPair>
33
- ```
30
+ ### Avatar
31
+
32
+ <PropsTable>
33
+ <PropsTableRow name="src" type="string" required description="URL of the avatar image." />{' '}
34
+ <PropsTableRow
35
+ name="alt"
36
+ type="string"
37
+ defaultValue="''"
38
+ description="Provide alt text when the avatar is used without a name next to it."
39
+ />
40
+ <PropsTableRow name="size" type="number" defaultValue="20" description="The size of the avatar in pixels." />
41
+ <PropsTableRow
42
+ name="square"
43
+ type="boolean"
44
+ defaultValue="false"
45
+ description="If true, the avatar will be square instead of circular."
46
+ />
47
+ <PropsTableSxRow />
48
+ </PropsTable>
34
49
 
35
- ## Component status
50
+ ## Status
36
51
 
37
52
  <ComponentChecklist
38
53
  items={{
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: AvatarPair
3
+ status: Alpha
4
+ source: https://github.com/primer/react/blob/main/src/AvatarPair.tsx
5
+ ---
6
+
7
+ ```js
8
+ import {AvatarPair} from '@primer/components'
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ```jsx live
14
+ <AvatarPair>
15
+ <Avatar src="https://avatars.githubusercontent.com/github" />
16
+ <Avatar src="https://avatars.githubusercontent.com/primer" />
17
+ </AvatarPair>
18
+ ```
19
+
20
+ ## Props
21
+
22
+ ### AvatarPair
23
+
24
+ <PropsTable>
25
+ <PropsTableRow name="children" type="Avatar[]" />
26
+ <PropsTableSxRow />
27
+ </PropsTable>
28
+
29
+ ## Status
30
+
31
+ <ComponentChecklist
32
+ items={{
33
+ propsDocumented: true,
34
+ noUnnecessaryDeps: true,
35
+ adaptsToThemes: true,
36
+ adaptsToScreenSizes: true,
37
+ fullTestCoverage: false,
38
+ usedInProduction: false,
39
+ usageExamplesDocumented: true,
40
+ designReviewed: false,
41
+ a11yReviewed: false,
42
+ stableApi: false,
43
+ addressedApiFeedback: false,
44
+ hasDesignGuidelines: false,
45
+ hasFigmaComponent: false
46
+ }}
47
+ />
@@ -7,7 +7,13 @@ source: https://github.com/primer/react/blob/main/src/AvatarStack.tsx
7
7
 
8
8
  import {AvatarStack} from '@primer/components'
9
9
 
10
- ### Default example
10
+ ```js
11
+ import {AvatarStack} from '@primer/components'
12
+ ```
13
+
14
+ ## Examples
15
+
16
+ ### Default
11
17
 
12
18
  ```jsx live
13
19
  <AvatarStack>
@@ -31,12 +37,14 @@ import {AvatarStack} from '@primer/components'
31
37
 
32
38
  ## Props
33
39
 
34
- | Name | Type | Default | Description |
35
- | :--------- | :---------------- | :-----: | :----------------------------------- |
36
- | alignRight | Boolean | | Creates right aligned AvatarStack |
37
- | sx | SystemStyleObject | {} | Style to be applied to the component |
40
+ ### AvatarStack
41
+
42
+ <PropsTable>
43
+ <PropsTableRow name="alignRight" type="boolean" defaultValue="false" description="Align the avatars to the right" />
44
+ <PropsTableSxRow />
45
+ </PropsTable>
38
46
 
39
- ## Component status
47
+ ## Status
40
48
 
41
49
  <ComponentChecklist
42
50
  items={{
@@ -9,18 +9,10 @@ import {Props} from '../src/props'
9
9
  import {ComponentChecklist} from '../src/component-checklist'
10
10
  import {Box} from '@primer/components'
11
11
 
12
- ```jsx live
13
- <Box color="fg.muted" bg="canvas.subtle" p={3}>
14
- Hello
15
- </Box>
12
+ ```js
13
+ import {Box} from '@primer/components'
16
14
  ```
17
15
 
18
- ## Props
19
-
20
- <Props of={Box} />
21
-
22
- Box also accepts all [styled system props](https://styled-system.com/table/).
23
-
24
16
  ## Examples
25
17
 
26
18
  ### Border on all sides
@@ -75,7 +67,17 @@ Use Box to create [grid](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_
75
67
  </Box>
76
68
  ```
77
69
 
78
- ## Component status
70
+ ## Props
71
+
72
+ ### Box
73
+
74
+ <PropsTable>
75
+ <PropsTableBasePropRows elementType="div" isPolymorphic refType="HTMLDivElement" />
76
+ </PropsTable>
77
+
78
+ Box also accepts all [styled system props](https://styled-system.com/table/).
79
+
80
+ ## Status
79
81
 
80
82
  <ComponentChecklist
81
83
  items={{
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: BranchName
3
+ status: Alpha
4
+ source: https://github.com/primer/react/blob/main/src/BranchName.tsx
5
+ ---
6
+
7
+ ```js
8
+ import {BranchName} from '@primer/components'
9
+ ```
10
+
11
+ BranchName is a label-type component rendered as an `<a>` tag by default with monospace font.
12
+
13
+ ## Examples
14
+
15
+ ```jsx live
16
+ <BranchName href="#">a_new_feature_branch</BranchName>
17
+ ```
18
+
19
+ ## Props
20
+
21
+ ### BranchName
22
+
23
+ <PropsTable>
24
+ <PropsTableBasePropRows
25
+ elementType="a"
26
+ refType="HTMLAnchorElement"
27
+ isPolymorphic
28
+ passthroughPropsLink={
29
+ <Link href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Attributes">MDN</Link>
30
+ }
31
+ />
32
+ </PropsTable>
33
+
34
+ ## Status
35
+
36
+ <ComponentChecklist
37
+ items={{
38
+ propsDocumented: true,
39
+ noUnnecessaryDeps: true,
40
+ adaptsToThemes: true,
41
+ adaptsToScreenSizes: false,
42
+ fullTestCoverage: false,
43
+ usedInProduction: false,
44
+ usageExamplesDocumented: false,
45
+ designReviewed: false,
46
+ a11yReviewed: false,
47
+ stableApi: false,
48
+ addressedApiFeedback: false,
49
+ hasDesignGuidelines: false,
50
+ hasFigmaComponent: false
51
+ }}
52
+ />
@@ -5,6 +5,10 @@ description: Use breadcrumbs to show navigational context on pages that are many
5
5
  source: https://github.com/primer/react/blob/main/src/Breadcrumbs.tsx
6
6
  ---
7
7
 
8
+ ```js
9
+ import {Breadcrumbs} from '@primer/components'
10
+ ```
11
+
8
12
  Breadcrumbs are used to show taxonomical context on pages that are many levels deep in a site’s hierarchy. Breadcrumbs show and link to parent, grandparent, and sometimes great-grandparent pages. Breadcrumbs are most appropriate on pages that:
9
13
 
10
14
  - Are many levels deep on a site
@@ -16,7 +20,7 @@ To use Breadcrumbs with [react-router](https://github.com/ReactTraining/react-ro
16
20
  `as={NavLink}` and omit the `selected` prop.
17
21
  This ensures that the NavLink gets `activeClassName='selected'`
18
22
 
19
- ## Default example
23
+ ## Examples
20
24
 
21
25
  ```jsx live
22
26
  <Breadcrumbs>
@@ -32,22 +36,26 @@ This ensures that the NavLink gets `activeClassName='selected'`
32
36
 
33
37
  ### Breadcrumbs
34
38
 
35
- | Prop name | Type | Default | Description |
36
- | :-------- | :---------------- | :-----: | :----------------------------------- |
37
- | children | ReactNode | | The `Breadcrumbs.Item`s |
38
- | className | string | | |
39
- | sx | SystemStyleObject | `{}` | Style to be applied to the component |
39
+ <PropsTable>
40
+ <PropsTableRow name="children" type="Breadcrumbs.Item[]" />
41
+ <PropsTableSxRow />
42
+ </PropsTable>
40
43
 
41
44
  ### Breadcrumbs.Item
42
45
 
43
- | Prop name | Type | Default | Description |
44
- | :-------- | :---------------- | :-----: | :----------------------------------------------- |
45
- | as | string | `a` | Sets the HTML tag for the component |
46
- | href | string | | URL to be used for the Link |
47
- | selected | boolean | `false` | Used to style the link as selected or unselected |
48
- | sx | SystemStyleObject | `{}` | Style to be applied to the component |
46
+ <PropsTable>
47
+ <PropsTableRow name="selected" type="boolean" defaultValue="false" />
48
+ <PropsTableBasePropRows
49
+ elementType="a"
50
+ refType="HTMLAnchorElement"
51
+ isPolymorphic
52
+ passthroughPropsLink={
53
+ <Link href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Attributes">MDN</Link>
54
+ }
55
+ />
56
+ </PropsTable>
49
57
 
50
- ## Component status
58
+ ## Status
51
59
 
52
60
  <ComponentChecklist
53
61
  items={{
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: Link
3
+ status: Alpha
4
+ source: https://github.com/primer/react/blob/main/src/Link.tsx
5
+ ---
6
+
7
+ import InlineCode from '@primer/gatsby-theme-doctocat/src/components/inline-code'
8
+ import {Link} from '@primer/components'
9
+
10
+ The Link component styles anchor tags with default hyperlink color cues and hover text decoration. `Link` is used for destinations, or moving from one page to another.
11
+
12
+ In special cases where you'd like a `<button>` styled like a `Link`, use `<Link as='button'>`. Make sure to provide a click handler with `onClick`.
13
+
14
+ **Important:** When using the `as` prop, be sure to always render an accessible element type, like `a`, `button`, `input`, or `summary`.
15
+
16
+ ## Examples
17
+
18
+ ```jsx live
19
+ <Link href="https://github.com">Link</Link>
20
+ ```
21
+
22
+ ## Props
23
+
24
+ ### Link
25
+
26
+ <PropsTable>
27
+ <PropsTableRow
28
+ name="href"
29
+ type="string"
30
+ description={
31
+ <>
32
+ URL to be used for the Link. (The <InlineCode>href</InlineCode> is passed to the underlying{' '}
33
+ <InlineCode>&lt;a&gt;</InlineCode> element. If <InlineCode>as</InlineCode> is specified, the link behavior may
34
+ need different props).
35
+ </>
36
+ }
37
+ />
38
+ <PropsTableRow
39
+ name="muted"
40
+ type="boolean"
41
+ defaultValue="false"
42
+ description="Uses a less prominent shade for Link color, and the default link shade on hover"
43
+ />
44
+ <PropsTableRow name="underline" type="boolean" defaultValue="false" description="Adds underline to the Link" />
45
+ <PropsTableRow name="hoverColor" type="string" description="Color used when hovering over link" />
46
+ <PropsTableBasePropRows
47
+ elementType="a"
48
+ refType="HTMLAnchorElement"
49
+ passthroughPropsLink={
50
+ <Link href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Attributes">MDN</Link>
51
+ }
52
+ isPolymorphic
53
+ />
54
+ </PropsTable>
55
+
56
+ ## Status
57
+
58
+ <ComponentChecklist
59
+ items={{
60
+ propsDocumented: true,
61
+ noUnnecessaryDeps: true,
62
+ adaptsToThemes: true,
63
+ adaptsToScreenSizes: true,
64
+ fullTestCoverage: false,
65
+ usedInProduction: true,
66
+ usageExamplesDocumented: false,
67
+ hasStorybookStories: false,
68
+ designReviewed: false,
69
+ a11yReviewed: false,
70
+ stableApi: false,
71
+ addressedApiFeedback: false,
72
+ hasDesignGuidelines: false,
73
+ hasFigmaComponent: false
74
+ }}
75
+ />
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Radio
3
+ description: Use radios when a user needs to select one option from a list
4
+ status: Alpha
5
+ source: https://github.com/primer/react/blob/main/src/Radio.tsx
6
+ storybook: '/react/storybook?path=/story/forms-radio-button--default'
7
+ ---
8
+
9
+ ## Default example
10
+
11
+ ```jsx live
12
+ <>
13
+ <Radio value="one" name="radio-group-name" />
14
+ <Radio value="two" name="radio-group-name" />
15
+ <Radio disabled value="three" name="radio-group-name" />
16
+ </>
17
+ ```
18
+
19
+ <Note>
20
+ Please use a [Checkbox](/Checkbox) if the user needs to select more than one option in a list
21
+ </Note>
22
+ <Note variant="warning">
23
+ Radio components should always be accompanied by a corresponding label to improve support for assistive technologies.
24
+ </Note>
25
+
26
+ ## Grouping Radio components
27
+
28
+ Use the `name` prop to group together related `Radio` components in a list.
29
+
30
+ ```jsx live
31
+ <form>
32
+ <Box sx={{p: 1, display: 'flex', alignItems: 'center'}}>
33
+ <Radio id="radio-0" value="1" name="radio-example" />
34
+ <Text as="label" htmlFor="radio-0" sx={{fontSize: 1, marginLeft: 1}}>
35
+ <Text sx={{display: 'block'}}>Radio 1</Text>
36
+ </Text>
37
+ </Box>
38
+ <Box sx={{p: 1, display: 'flex', alignItems: 'center'}}>
39
+ <Radio id="radio-1" value="2" name="radio-example" />
40
+ <Text as="label" htmlFor="radio-1" sx={{fontSize: 1, marginLeft: 1}}>
41
+ <Text sx={{display: 'block'}}>Radio 2</Text>
42
+ </Text>
43
+ </Box>
44
+ <Box sx={{p: 1, display: 'flex', alignItems: 'center'}}>
45
+ <Radio id="radio-2" value="3" name="radio-example" />
46
+ <Text as="label" htmlFor="radio-2" sx={{fontSize: 1, marginLeft: 1}}>
47
+ <Text sx={{display: 'block'}}>Radio 3</Text>
48
+ </Text>
49
+ </Box>
50
+ <Box sx={{p: 1, display: 'flex', alignItems: 'center'}}>
51
+ <Radio id="radio-3" value="4" name="radio-example" />
52
+ <Text as="label" htmlFor="radio-3" sx={{fontSize: 1, marginLeft: 1}}>
53
+ <Text sx={{display: 'block'}}>Radio 4</Text>
54
+ </Text>
55
+ </Box>
56
+ </form>
57
+ ```
58
+
59
+ ## Component props
60
+
61
+ Native `<input>` attributes are forwarded to the underlying React `input` component and are not listed below.
62
+
63
+ | Name | Type | Default | Description |
64
+ | :------------- | :---------- | :-------: | :--------------------------------------------------------------------------------------- |
65
+ | value | String | undefined | Required. A unique value that is never shown to the user. |
66
+ | name | String | undefined | Required. Used for grouping multiple radios |
67
+ | checked | Boolean | undefined | Optional. Modifies true/false value of the native radio |
68
+ | defaultChecked | Boolean | undefined | Optional. Selects the radio by default in uncontrolled mode |
69
+ | onChange | ChangeEvent | undefined | Optional. A callback function that is triggered when the checked state has been changed. |
70
+ | disabled | Boolean | undefined | Optional. Modifies the native disabled state of the native radio |
71
+
72
+ ## Component status
73
+
74
+ <ComponentChecklist
75
+ items={{
76
+ propsDocumented: true,
77
+ noUnnecessaryDeps: true,
78
+ adaptsToThemes: true,
79
+ adaptsToScreenSizes: true,
80
+ fullTestCoverage: true,
81
+ usedInProduction: false,
82
+ usageExamplesDocumented: false,
83
+ designReviewed: false,
84
+ a11yReviewed: false,
85
+ stableApi: false,
86
+ addressedApiFeedback: false,
87
+ hasDesignGuidelines: false,
88
+ hasFigmaComponent: false
89
+ }}
90
+ />