@papillonbits/components 0.2.0 → 0.5.0

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 (599) hide show
  1. package/build/index.scss +1 -0
  2. package/build/primer/Alert/Alert.js +142 -0
  3. package/build/primer/Alert/Alert.prop.js +43 -0
  4. package/build/primer/Alert/Alert.scss +158 -0
  5. package/build/primer/Alert/index.js +21 -0
  6. package/build/primer/Blankslate/Blankslate.js +39 -0
  7. package/build/primer/Blankslate/Blankslate.prop.js +31 -0
  8. package/build/primer/Blankslate/Blankslate.scss +91 -0
  9. package/build/primer/Blankslate/index.js +21 -0
  10. package/build/primer/Box/box.scss +294 -0
  11. package/build/primer/BranchName/branch-name.scss +32 -0
  12. package/build/primer/Breadcrumb/Breadcrumb.js +87 -0
  13. package/build/primer/Breadcrumb/Breadcrumb.prop.js +34 -0
  14. package/build/primer/Breadcrumb/Breadcrumb.scss +35 -0
  15. package/build/primer/Breadcrumb/index.js +21 -0
  16. package/build/primer/Button/Button.js +85 -7
  17. package/build/primer/Button/Button.prop.js +64 -3
  18. package/build/primer/Button/Button.scss +293 -4
  19. package/build/primer/Button/index.js +39 -1
  20. package/build/primer/Button/misc.scss +182 -1
  21. package/build/primer/Dropdown/Dropdown.js +126 -0
  22. package/build/primer/Dropdown/Dropdown.prop.js +39 -0
  23. package/build/primer/Dropdown/Dropdown.scss +276 -0
  24. package/build/primer/Dropdown/index.js +21 -0
  25. package/build/primer/ErrorBoundary/ErrorBoundary.js +82 -0
  26. package/build/primer/ErrorBoundary/ErrorBoundary.prop.js +15 -0
  27. package/build/primer/ErrorBoundary/index.js +13 -0
  28. package/build/primer/Form/Checkbox/Checkbox.js +53 -0
  29. package/build/primer/Form/Checkbox/Checkbox.md +32 -0
  30. package/build/primer/Form/Checkbox/Checkbox.prop.js +42 -0
  31. package/build/primer/Form/Checkbox/Checkbox.scss +8 -0
  32. package/build/primer/Form/Checkbox/__tests__/__snapshots__/Checkbox.int.test.js.snap +77 -0
  33. package/build/primer/Form/Checkbox/index.js +21 -0
  34. package/build/primer/Form/Input/Input.js +58 -0
  35. package/build/primer/Form/Input/Input.md +34 -0
  36. package/build/primer/Form/Input/Input.prop.js +51 -0
  37. package/build/primer/Form/Input/Input.scss +9 -0
  38. package/build/primer/Form/Input/__tests__/__snapshots__/Input.int.test.js.snap +31 -0
  39. package/build/primer/Form/Input/index.js +27 -0
  40. package/build/primer/Form/Radio/Radio.js +52 -0
  41. package/build/primer/Form/Radio/Radio.md +25 -0
  42. package/build/primer/Form/Radio/Radio.prop.js +40 -0
  43. package/build/primer/Form/Radio/Radio.scss +6 -0
  44. package/build/primer/Form/Radio/__tests__/__snapshots__/Radio.int.test.js.snap +75 -0
  45. package/build/primer/Form/Radio/index.js +21 -0
  46. package/build/primer/Form/form-control.scss +264 -0
  47. package/build/primer/Form/form-group.scss +277 -0
  48. package/build/primer/Form/form-select.scss +46 -0
  49. package/build/primer/Form/form-validation.scss +365 -0
  50. package/build/primer/Form/index.js +29 -0
  51. package/build/primer/Form/index.scss +8 -0
  52. package/build/primer/Form/input-group.scss +55 -0
  53. package/build/primer/Form/radio-group.scss +62 -0
  54. package/build/primer/Grid/DisplayTable/DisplayTable.js +71 -0
  55. package/build/primer/Grid/DisplayTable/DisplayTable.md +14 -0
  56. package/build/primer/Grid/DisplayTable/DisplayTable.prop.js +22 -0
  57. package/build/primer/Grid/DisplayTable/__tests__/__snapshots__/DisplayTable.int.test.js.snap +346 -0
  58. package/build/primer/Grid/DisplayTable/index.js +13 -0
  59. package/build/primer/Grid/FlexGrid/FlexGrid.js +277 -0
  60. package/build/primer/Grid/FlexGrid/FlexGrid.md +106 -0
  61. package/build/primer/Grid/FlexGrid/FlexGrid.prop.js +55 -0
  62. package/build/primer/Grid/FlexGrid/FlexGrid.scss +27 -0
  63. package/build/primer/Grid/FlexGrid/__tests__/__snapshots__/FlexGrid.int.test.js.snap +7225 -0
  64. package/build/primer/Grid/FlexGrid/index.js +27 -0
  65. package/build/primer/Grid/index.js +18 -0
  66. package/build/primer/Icon/Icon.js +79 -0
  67. package/build/primer/Icon/Icon.part.js +1386 -0
  68. package/build/primer/Icon/Icon.prop.js +517 -0
  69. package/build/primer/Icon/index.js +27 -0
  70. package/build/primer/Label/Label.js +40 -0
  71. package/build/primer/Label/Label.prop.js +41 -0
  72. package/build/primer/Label/counters.scss +38 -0
  73. package/build/primer/Label/diffstat.scss +37 -0
  74. package/build/primer/Label/index.js +13 -0
  75. package/build/primer/Label/index.scss +8 -0
  76. package/build/primer/Label/issue-labels.scss +25 -0
  77. package/build/primer/Label/labels.scss +94 -0
  78. package/build/primer/Label/mixins.scss +39 -0
  79. package/build/primer/Label/states.scss +56 -0
  80. package/build/primer/Layout/container.scss +32 -0
  81. package/build/primer/Layout/grid-offset.scss +45 -0
  82. package/build/primer/Layout/grid.scss +123 -0
  83. package/build/primer/Loader/Loader.js +82 -0
  84. package/build/primer/Loader/Loader.prop.js +26 -0
  85. package/build/primer/Loader/Loader.scss +21 -0
  86. package/build/primer/Loader/index.js +21 -0
  87. package/build/primer/Navigation/Menu/Menu.js +87 -0
  88. package/build/primer/Navigation/Menu/Menu.md +25 -0
  89. package/build/primer/Navigation/Menu/Menu.prop.js +32 -0
  90. package/build/primer/Navigation/Menu/Menu.scss +128 -0
  91. package/build/primer/Navigation/Menu/__tests__/__snapshots__/Menu.int.test.js.snap +120 -0
  92. package/build/primer/Navigation/Menu/index.js +13 -0
  93. package/build/primer/Navigation/TabNav/TabNav.js +148 -0
  94. package/build/primer/Navigation/TabNav/TabNav.md +56 -0
  95. package/build/primer/Navigation/TabNav/TabNav.prop.js +41 -0
  96. package/build/primer/Navigation/TabNav/TabNav.scss +103 -0
  97. package/build/primer/Navigation/TabNav/__tests__/__snapshots__/TabNav.int.test.js.snap +218 -0
  98. package/build/primer/Navigation/TabNav/index.js +21 -0
  99. package/build/primer/Navigation/UnderlineNav/UnderlineNav.js +148 -0
  100. package/build/primer/Navigation/UnderlineNav/UnderlineNav.md +65 -0
  101. package/build/primer/Navigation/UnderlineNav/UnderlineNav.prop.js +47 -0
  102. package/build/primer/Navigation/UnderlineNav/UnderlineNav.scss +92 -0
  103. package/build/primer/Navigation/UnderlineNav/__tests__/__snapshots__/UnderlineNav.int.test.js.snap +271 -0
  104. package/build/primer/Navigation/UnderlineNav/index.js +27 -0
  105. package/build/primer/Navigation/index.js +22 -0
  106. package/build/primer/Pagination/PreviousNext/PreviousNext.js +89 -0
  107. package/build/primer/Pagination/PreviousNext/PreviousNext.md +20 -0
  108. package/build/primer/Pagination/PreviousNext/PreviousNext.prop.js +61 -0
  109. package/build/primer/Pagination/PreviousNext/PreviousNext.scss +157 -0
  110. package/build/primer/Pagination/PreviousNext/__tests__/__snapshots__/PreviousNext.int.test.js.snap +63 -0
  111. package/build/primer/Pagination/PreviousNext/index.js +21 -0
  112. package/build/primer/Pagination/index.js +14 -0
  113. package/build/primer/Popover/Popover.js +77 -0
  114. package/build/primer/Popover/Popover.prop.js +47 -0
  115. package/build/primer/Popover/Popover.scss +230 -0
  116. package/build/primer/Popover/index.js +27 -0
  117. package/build/primer/Progress/Progress.js +41 -0
  118. package/build/primer/Progress/Progress.prop.js +26 -0
  119. package/build/primer/Progress/Progress.scss +29 -0
  120. package/build/primer/Progress/index.js +21 -0
  121. package/build/primer/SVG/icon/alert-16.svg +1 -0
  122. package/build/primer/SVG/icon/alert-24.svg +1 -0
  123. package/build/primer/SVG/icon/archive-16.svg +1 -0
  124. package/build/primer/SVG/icon/archive-24.svg +1 -0
  125. package/build/primer/SVG/icon/arrow-both-16.svg +1 -0
  126. package/build/primer/SVG/icon/arrow-both-24.svg +1 -0
  127. package/build/primer/SVG/icon/arrow-down-16.svg +1 -0
  128. package/build/primer/SVG/icon/arrow-down-24.svg +1 -0
  129. package/build/primer/SVG/icon/arrow-down-left-24.svg +1 -0
  130. package/build/primer/SVG/icon/arrow-down-right-24.svg +1 -0
  131. package/build/primer/SVG/icon/arrow-left-16.svg +1 -0
  132. package/build/primer/SVG/icon/arrow-left-24.svg +1 -0
  133. package/build/primer/SVG/icon/arrow-right-16.svg +1 -0
  134. package/build/primer/SVG/icon/arrow-right-24.svg +1 -0
  135. package/build/primer/SVG/icon/arrow-switch-16.svg +1 -0
  136. package/build/primer/SVG/icon/arrow-switch-24.svg +1 -0
  137. package/build/primer/SVG/icon/arrow-up-16.svg +1 -0
  138. package/build/primer/SVG/icon/arrow-up-24.svg +1 -0
  139. package/build/primer/SVG/icon/arrow-up-left-24.svg +1 -0
  140. package/build/primer/SVG/icon/arrow-up-right-24.svg +1 -0
  141. package/build/primer/SVG/icon/beaker-16.svg +1 -0
  142. package/build/primer/SVG/icon/beaker-24.svg +1 -0
  143. package/build/primer/SVG/icon/bell-16.svg +1 -0
  144. package/build/primer/SVG/icon/bell-24.svg +1 -0
  145. package/build/primer/SVG/icon/bell-fill-24.svg +1 -0
  146. package/build/primer/SVG/icon/bell-slash-16.svg +1 -0
  147. package/build/primer/SVG/icon/bell-slash-24.svg +1 -0
  148. package/build/primer/SVG/icon/blocked-16.svg +1 -0
  149. package/build/primer/SVG/icon/blocked-24.svg +1 -0
  150. package/build/primer/SVG/icon/bold-16.svg +1 -0
  151. package/build/primer/SVG/icon/bold-24.svg +1 -0
  152. package/build/primer/SVG/icon/book-16.svg +1 -0
  153. package/build/primer/SVG/icon/book-24.svg +1 -0
  154. package/build/primer/SVG/icon/bookmark-16.svg +1 -0
  155. package/build/primer/SVG/icon/bookmark-24.svg +1 -0
  156. package/build/primer/SVG/icon/bookmark-fill-24.svg +1 -0
  157. package/build/primer/SVG/icon/bookmark-slash-16.svg +1 -0
  158. package/build/primer/SVG/icon/bookmark-slash-24.svg +1 -0
  159. package/build/primer/SVG/icon/bookmark-slash-fill-24.svg +1 -0
  160. package/build/primer/SVG/icon/briefcase-16.svg +1 -0
  161. package/build/primer/SVG/icon/briefcase-24.svg +1 -0
  162. package/build/primer/SVG/icon/broadcast-16.svg +1 -0
  163. package/build/primer/SVG/icon/broadcast-24.svg +1 -0
  164. package/build/primer/SVG/icon/browser-16.svg +1 -0
  165. package/build/primer/SVG/icon/browser-24.svg +1 -0
  166. package/build/primer/SVG/icon/bug-16.svg +1 -0
  167. package/build/primer/SVG/icon/bug-24.svg +1 -0
  168. package/build/primer/SVG/icon/calendar-16.svg +1 -0
  169. package/build/primer/SVG/icon/calendar-24.svg +1 -0
  170. package/build/primer/SVG/icon/check-16.svg +1 -0
  171. package/build/primer/SVG/icon/check-24.svg +1 -0
  172. package/build/primer/SVG/icon/check-circle-16.svg +1 -0
  173. package/build/primer/SVG/icon/check-circle-24.svg +1 -0
  174. package/build/primer/SVG/icon/check-circle-fill-16.svg +1 -0
  175. package/build/primer/SVG/icon/check-circle-fill-24.svg +1 -0
  176. package/build/primer/SVG/icon/checklist-16.svg +1 -0
  177. package/build/primer/SVG/icon/checklist-24.svg +1 -0
  178. package/build/primer/SVG/icon/chevron-down-16.svg +1 -0
  179. package/build/primer/SVG/icon/chevron-down-24.svg +1 -0
  180. package/build/primer/SVG/icon/chevron-left-16.svg +1 -0
  181. package/build/primer/SVG/icon/chevron-left-24.svg +1 -0
  182. package/build/primer/SVG/icon/chevron-right-16.svg +1 -0
  183. package/build/primer/SVG/icon/chevron-right-24.svg +1 -0
  184. package/build/primer/SVG/icon/chevron-up-16.svg +1 -0
  185. package/build/primer/SVG/icon/chevron-up-24.svg +1 -0
  186. package/build/primer/SVG/icon/circle-16.svg +1 -0
  187. package/build/primer/SVG/icon/circle-24.svg +1 -0
  188. package/build/primer/SVG/icon/circle-slash-16.svg +1 -0
  189. package/build/primer/SVG/icon/circle-slash-24.svg +1 -0
  190. package/build/primer/SVG/icon/clippy-16.svg +1 -0
  191. package/build/primer/SVG/icon/clippy-24.svg +1 -0
  192. package/build/primer/SVG/icon/clock-16.svg +1 -0
  193. package/build/primer/SVG/icon/clock-24.svg +1 -0
  194. package/build/primer/SVG/icon/code-16.svg +1 -0
  195. package/build/primer/SVG/icon/code-24.svg +1 -0
  196. package/build/primer/SVG/icon/code-review-16.svg +1 -0
  197. package/build/primer/SVG/icon/code-review-24.svg +1 -0
  198. package/build/primer/SVG/icon/code-square-16.svg +1 -0
  199. package/build/primer/SVG/icon/code-square-24.svg +1 -0
  200. package/build/primer/SVG/icon/codescan-16.svg +1 -0
  201. package/build/primer/SVG/icon/codescan-24.svg +1 -0
  202. package/build/primer/SVG/icon/codescan-checkmark-16.svg +1 -0
  203. package/build/primer/SVG/icon/codescan-checkmark-24.svg +1 -0
  204. package/build/primer/SVG/icon/codespaces-16.svg +1 -0
  205. package/build/primer/SVG/icon/codespaces-24.svg +1 -0
  206. package/build/primer/SVG/icon/columns-16.svg +1 -0
  207. package/build/primer/SVG/icon/columns-24.svg +1 -0
  208. package/build/primer/SVG/icon/comment-16.svg +1 -0
  209. package/build/primer/SVG/icon/comment-24.svg +1 -0
  210. package/build/primer/SVG/icon/comment-discussion-16.svg +1 -0
  211. package/build/primer/SVG/icon/comment-discussion-24.svg +1 -0
  212. package/build/primer/SVG/icon/commit-24.svg +1 -0
  213. package/build/primer/SVG/icon/container-16.svg +1 -0
  214. package/build/primer/SVG/icon/container-24.svg +1 -0
  215. package/build/primer/SVG/icon/copy-24.svg +1 -0
  216. package/build/primer/SVG/icon/cpu-16.svg +1 -0
  217. package/build/primer/SVG/icon/cpu-24.svg +1 -0
  218. package/build/primer/SVG/icon/credit-card-16.svg +1 -0
  219. package/build/primer/SVG/icon/credit-card-24.svg +1 -0
  220. package/build/primer/SVG/icon/cross-reference-16.svg +1 -0
  221. package/build/primer/SVG/icon/cross-reference-24.svg +1 -0
  222. package/build/primer/SVG/icon/dash-16.svg +1 -0
  223. package/build/primer/SVG/icon/dash-24.svg +1 -0
  224. package/build/primer/SVG/icon/database-16.svg +1 -0
  225. package/build/primer/SVG/icon/database-24.svg +1 -0
  226. package/build/primer/SVG/icon/dependabot-16.svg +1 -0
  227. package/build/primer/SVG/icon/dependabot-24.svg +1 -0
  228. package/build/primer/SVG/icon/desktop-download-16.svg +1 -0
  229. package/build/primer/SVG/icon/desktop-download-24.svg +1 -0
  230. package/build/primer/SVG/icon/device-camera-16.svg +1 -0
  231. package/build/primer/SVG/icon/device-camera-video-16.svg +1 -0
  232. package/build/primer/SVG/icon/device-camera-video-24.svg +1 -0
  233. package/build/primer/SVG/icon/device-desktop-16.svg +1 -0
  234. package/build/primer/SVG/icon/device-desktop-24.svg +1 -0
  235. package/build/primer/SVG/icon/device-mobile-16.svg +1 -0
  236. package/build/primer/SVG/icon/device-mobile-24.svg +1 -0
  237. package/build/primer/SVG/icon/diamond-16.svg +1 -0
  238. package/build/primer/SVG/icon/diamond-24.svg +1 -0
  239. package/build/primer/SVG/icon/diff-16.svg +1 -0
  240. package/build/primer/SVG/icon/diff-24.svg +1 -0
  241. package/build/primer/SVG/icon/diff-added-16.svg +1 -0
  242. package/build/primer/SVG/icon/diff-ignored-16.svg +1 -0
  243. package/build/primer/SVG/icon/diff-modified-16.svg +1 -0
  244. package/build/primer/SVG/icon/diff-removed-16.svg +1 -0
  245. package/build/primer/SVG/icon/diff-renamed-16.svg +1 -0
  246. package/build/primer/SVG/icon/dot-16.svg +1 -0
  247. package/build/primer/SVG/icon/dot-24.svg +1 -0
  248. package/build/primer/SVG/icon/dot-fill-16.svg +1 -0
  249. package/build/primer/SVG/icon/dot-fill-24.svg +1 -0
  250. package/build/primer/SVG/icon/download-16.svg +1 -0
  251. package/build/primer/SVG/icon/download-24.svg +1 -0
  252. package/build/primer/SVG/icon/duplicate-16.svg +1 -0
  253. package/build/primer/SVG/icon/duplicate-24.svg +1 -0
  254. package/build/primer/SVG/icon/ellipsis-16.svg +1 -0
  255. package/build/primer/SVG/icon/eye-16.svg +1 -0
  256. package/build/primer/SVG/icon/eye-24.svg +1 -0
  257. package/build/primer/SVG/icon/eye-closed-16.svg +1 -0
  258. package/build/primer/SVG/icon/eye-closed-24.svg +1 -0
  259. package/build/primer/SVG/icon/eye-slash-24.svg +1 -0
  260. package/build/primer/SVG/icon/file-16.svg +1 -0
  261. package/build/primer/SVG/icon/file-24.svg +1 -0
  262. package/build/primer/SVG/icon/file-badge-16.svg +1 -0
  263. package/build/primer/SVG/icon/file-binary-16.svg +1 -0
  264. package/build/primer/SVG/icon/file-binary-24.svg +1 -0
  265. package/build/primer/SVG/icon/file-code-16.svg +1 -0
  266. package/build/primer/SVG/icon/file-code-24.svg +1 -0
  267. package/build/primer/SVG/icon/file-diff-16.svg +1 -0
  268. package/build/primer/SVG/icon/file-diff-24.svg +1 -0
  269. package/build/primer/SVG/icon/file-directory-16.svg +1 -0
  270. package/build/primer/SVG/icon/file-directory-24.svg +1 -0
  271. package/build/primer/SVG/icon/file-directory-fill-24.svg +1 -0
  272. package/build/primer/SVG/icon/file-media-24.svg +1 -0
  273. package/build/primer/SVG/icon/file-submodule-16.svg +1 -0
  274. package/build/primer/SVG/icon/file-submodule-24.svg +1 -0
  275. package/build/primer/SVG/icon/file-symlink-24.svg +1 -0
  276. package/build/primer/SVG/icon/file-symlink-file-16.svg +1 -0
  277. package/build/primer/SVG/icon/file-symlink-file-24.svg +1 -0
  278. package/build/primer/SVG/icon/file-zip-16.svg +1 -0
  279. package/build/primer/SVG/icon/file-zip-24.svg +1 -0
  280. package/build/primer/SVG/icon/filter-16.svg +1 -0
  281. package/build/primer/SVG/icon/filter-24.svg +1 -0
  282. package/build/primer/SVG/icon/fire-24.svg +1 -0
  283. package/build/primer/SVG/icon/flame-16.svg +1 -0
  284. package/build/primer/SVG/icon/flame-24.svg +1 -0
  285. package/build/primer/SVG/icon/fold-16.svg +1 -0
  286. package/build/primer/SVG/icon/fold-24.svg +1 -0
  287. package/build/primer/SVG/icon/fold-down-16.svg +1 -0
  288. package/build/primer/SVG/icon/fold-down-24.svg +1 -0
  289. package/build/primer/SVG/icon/fold-up-16.svg +1 -0
  290. package/build/primer/SVG/icon/fold-up-24.svg +1 -0
  291. package/build/primer/SVG/icon/gear-16.svg +1 -0
  292. package/build/primer/SVG/icon/gear-24.svg +1 -0
  293. package/build/primer/SVG/icon/gift-16.svg +1 -0
  294. package/build/primer/SVG/icon/gift-24.svg +1 -0
  295. package/build/primer/SVG/icon/git-branch-16.svg +1 -0
  296. package/build/primer/SVG/icon/git-branch-24.svg +1 -0
  297. package/build/primer/SVG/icon/git-commit-16.svg +1 -0
  298. package/build/primer/SVG/icon/git-commit-24.svg +1 -0
  299. package/build/primer/SVG/icon/git-compare-16.svg +1 -0
  300. package/build/primer/SVG/icon/git-compare-24.svg +1 -0
  301. package/build/primer/SVG/icon/git-fork-24.svg +1 -0
  302. package/build/primer/SVG/icon/git-merge-16.svg +1 -0
  303. package/build/primer/SVG/icon/git-merge-24.svg +1 -0
  304. package/build/primer/SVG/icon/git-pull-request-16.svg +1 -0
  305. package/build/primer/SVG/icon/git-pull-request-24.svg +1 -0
  306. package/build/primer/SVG/icon/git-pull-request-closed-16.svg +1 -0
  307. package/build/primer/SVG/icon/git-pull-request-closed-24.svg +1 -0
  308. package/build/primer/SVG/icon/git-pull-request-draft-16.svg +1 -0
  309. package/build/primer/SVG/icon/git-pull-request-draft-24.svg +1 -0
  310. package/build/primer/SVG/icon/globe-16.svg +1 -0
  311. package/build/primer/SVG/icon/globe-24.svg +1 -0
  312. package/build/primer/SVG/icon/grabber-16.svg +1 -0
  313. package/build/primer/SVG/icon/grabber-24.svg +1 -0
  314. package/build/primer/SVG/icon/graph-16.svg +1 -0
  315. package/build/primer/SVG/icon/graph-24.svg +1 -0
  316. package/build/primer/SVG/icon/hash-16.svg +1 -0
  317. package/build/primer/SVG/icon/hash-24.svg +1 -0
  318. package/build/primer/SVG/icon/heading-16.svg +1 -0
  319. package/build/primer/SVG/icon/heading-24.svg +1 -0
  320. package/build/primer/SVG/icon/heart-16.svg +1 -0
  321. package/build/primer/SVG/icon/heart-24.svg +1 -0
  322. package/build/primer/SVG/icon/heart-fill-16.svg +1 -0
  323. package/build/primer/SVG/icon/heart-fill-24.svg +1 -0
  324. package/build/primer/SVG/icon/history-16.svg +1 -0
  325. package/build/primer/SVG/icon/history-24.svg +1 -0
  326. package/build/primer/SVG/icon/home-16.svg +1 -0
  327. package/build/primer/SVG/icon/home-24.svg +1 -0
  328. package/build/primer/SVG/icon/home-fill-24.svg +1 -0
  329. package/build/primer/SVG/icon/horizontal-rule-16.svg +1 -0
  330. package/build/primer/SVG/icon/horizontal-rule-24.svg +1 -0
  331. package/build/primer/SVG/icon/hourglass-16.svg +1 -0
  332. package/build/primer/SVG/icon/hourglass-24.svg +1 -0
  333. package/build/primer/SVG/icon/hubot-16.svg +1 -0
  334. package/build/primer/SVG/icon/hubot-24.svg +1 -0
  335. package/build/primer/SVG/icon/image-16.svg +1 -0
  336. package/build/primer/SVG/icon/image-24.svg +1 -0
  337. package/build/primer/SVG/icon/inbox-16.svg +1 -0
  338. package/build/primer/SVG/icon/inbox-24.svg +1 -0
  339. package/build/primer/SVG/icon/index.js +1248 -0
  340. package/build/primer/SVG/icon/infinity-16.svg +1 -0
  341. package/build/primer/SVG/icon/infinity-24.svg +1 -0
  342. package/build/primer/SVG/icon/info-16.svg +1 -0
  343. package/build/primer/SVG/icon/info-24.svg +1 -0
  344. package/build/primer/SVG/icon/insights-24.svg +1 -0
  345. package/build/primer/SVG/icon/issue-closed-16.svg +1 -0
  346. package/build/primer/SVG/icon/issue-closed-24.svg +1 -0
  347. package/build/primer/SVG/icon/issue-draft-16.svg +1 -0
  348. package/build/primer/SVG/icon/issue-draft-24.svg +1 -0
  349. package/build/primer/SVG/icon/issue-opened-16.svg +1 -0
  350. package/build/primer/SVG/icon/issue-opened-24.svg +1 -0
  351. package/build/primer/SVG/icon/issue-reopened-16.svg +1 -0
  352. package/build/primer/SVG/icon/issue-reopened-24.svg +1 -0
  353. package/build/primer/SVG/icon/italic-16.svg +1 -0
  354. package/build/primer/SVG/icon/italic-24.svg +1 -0
  355. package/build/primer/SVG/icon/kebab-horizontal-16.svg +1 -0
  356. package/build/primer/SVG/icon/kebab-horizontal-24.svg +1 -0
  357. package/build/primer/SVG/icon/key-16.svg +1 -0
  358. package/build/primer/SVG/icon/key-24.svg +1 -0
  359. package/build/primer/SVG/icon/law-16.svg +1 -0
  360. package/build/primer/SVG/icon/law-24.svg +1 -0
  361. package/build/primer/SVG/icon/light-bulb-16.svg +1 -0
  362. package/build/primer/SVG/icon/light-bulb-24.svg +1 -0
  363. package/build/primer/SVG/icon/link-16.svg +1 -0
  364. package/build/primer/SVG/icon/link-24.svg +1 -0
  365. package/build/primer/SVG/icon/link-external-16.svg +1 -0
  366. package/build/primer/SVG/icon/link-external-24.svg +1 -0
  367. package/build/primer/SVG/icon/list-ordered-16.svg +1 -0
  368. package/build/primer/SVG/icon/list-ordered-24.svg +1 -0
  369. package/build/primer/SVG/icon/list-unordered-16.svg +1 -0
  370. package/build/primer/SVG/icon/list-unordered-24.svg +1 -0
  371. package/build/primer/SVG/icon/location-16.svg +1 -0
  372. package/build/primer/SVG/icon/location-24.svg +1 -0
  373. package/build/primer/SVG/icon/lock-16.svg +1 -0
  374. package/build/primer/SVG/icon/lock-24.svg +1 -0
  375. package/build/primer/SVG/icon/logo-gist-16.svg +1 -0
  376. package/build/primer/SVG/icon/logo-github-16.svg +1 -0
  377. package/build/primer/SVG/icon/mail-16.svg +1 -0
  378. package/build/primer/SVG/icon/mail-24.svg +1 -0
  379. package/build/primer/SVG/icon/mark-github-16.svg +1 -0
  380. package/build/primer/SVG/icon/markdown-16.svg +1 -0
  381. package/build/primer/SVG/icon/megaphone-16.svg +1 -0
  382. package/build/primer/SVG/icon/megaphone-24.svg +1 -0
  383. package/build/primer/SVG/icon/mention-16.svg +1 -0
  384. package/build/primer/SVG/icon/mention-24.svg +1 -0
  385. package/build/primer/SVG/icon/meter-16.svg +1 -0
  386. package/build/primer/SVG/icon/milestone-16.svg +1 -0
  387. package/build/primer/SVG/icon/milestone-24.svg +1 -0
  388. package/build/primer/SVG/icon/mirror-16.svg +1 -0
  389. package/build/primer/SVG/icon/mirror-24.svg +1 -0
  390. package/build/primer/SVG/icon/moon-16.svg +1 -0
  391. package/build/primer/SVG/icon/moon-24.svg +1 -0
  392. package/build/primer/SVG/icon/mortar-board-16.svg +1 -0
  393. package/build/primer/SVG/icon/mortar-board-24.svg +1 -0
  394. package/build/primer/SVG/icon/multi-select-16.svg +1 -0
  395. package/build/primer/SVG/icon/multi-select-24.svg +1 -0
  396. package/build/primer/SVG/icon/mute-16.svg +1 -0
  397. package/build/primer/SVG/icon/mute-24.svg +1 -0
  398. package/build/primer/SVG/icon/no-entry-16.svg +1 -0
  399. package/build/primer/SVG/icon/no-entry-24.svg +1 -0
  400. package/build/primer/SVG/icon/north-star-16.svg +1 -0
  401. package/build/primer/SVG/icon/north-star-24.svg +1 -0
  402. package/build/primer/SVG/icon/note-16.svg +1 -0
  403. package/build/primer/SVG/icon/note-24.svg +1 -0
  404. package/build/primer/SVG/icon/number-16.svg +1 -0
  405. package/build/primer/SVG/icon/number-24.svg +1 -0
  406. package/build/primer/SVG/icon/octoface-16.svg +1 -0
  407. package/build/primer/SVG/icon/octoface-24.svg +1 -0
  408. package/build/primer/SVG/icon/organization-16.svg +1 -0
  409. package/build/primer/SVG/icon/organization-24.svg +1 -0
  410. package/build/primer/SVG/icon/package-16.svg +1 -0
  411. package/build/primer/SVG/icon/package-24.svg +1 -0
  412. package/build/primer/SVG/icon/package-dependencies-16.svg +1 -0
  413. package/build/primer/SVG/icon/package-dependencies-24.svg +1 -0
  414. package/build/primer/SVG/icon/package-dependents-16.svg +1 -0
  415. package/build/primer/SVG/icon/package-dependents-24.svg +1 -0
  416. package/build/primer/SVG/icon/paintbrush-16.svg +1 -0
  417. package/build/primer/SVG/icon/paper-airplane-16.svg +1 -0
  418. package/build/primer/SVG/icon/paper-airplane-24.svg +1 -0
  419. package/build/primer/SVG/icon/pencil-16.svg +1 -0
  420. package/build/primer/SVG/icon/pencil-24.svg +1 -0
  421. package/build/primer/SVG/icon/people-16.svg +1 -0
  422. package/build/primer/SVG/icon/people-24.svg +1 -0
  423. package/build/primer/SVG/icon/person-16.svg +1 -0
  424. package/build/primer/SVG/icon/person-24.svg +1 -0
  425. package/build/primer/SVG/icon/person-add-16.svg +1 -0
  426. package/build/primer/SVG/icon/person-add-24.svg +1 -0
  427. package/build/primer/SVG/icon/pin-16.svg +1 -0
  428. package/build/primer/SVG/icon/pin-24.svg +1 -0
  429. package/build/primer/SVG/icon/play-16.svg +1 -0
  430. package/build/primer/SVG/icon/play-24.svg +1 -0
  431. package/build/primer/SVG/icon/plug-16.svg +1 -0
  432. package/build/primer/SVG/icon/plug-24.svg +1 -0
  433. package/build/primer/SVG/icon/plus-16.svg +1 -0
  434. package/build/primer/SVG/icon/plus-24.svg +1 -0
  435. package/build/primer/SVG/icon/plus-circle-16.svg +1 -0
  436. package/build/primer/SVG/icon/plus-circle-24.svg +1 -0
  437. package/build/primer/SVG/icon/project-16.svg +1 -0
  438. package/build/primer/SVG/icon/project-24.svg +1 -0
  439. package/build/primer/SVG/icon/pulse-16.svg +1 -0
  440. package/build/primer/SVG/icon/pulse-24.svg +1 -0
  441. package/build/primer/SVG/icon/question-16.svg +1 -0
  442. package/build/primer/SVG/icon/question-24.svg +1 -0
  443. package/build/primer/SVG/icon/quote-16.svg +1 -0
  444. package/build/primer/SVG/icon/quote-24.svg +1 -0
  445. package/build/primer/SVG/icon/reply-16.svg +1 -0
  446. package/build/primer/SVG/icon/reply-24.svg +1 -0
  447. package/build/primer/SVG/icon/repo-16.svg +1 -0
  448. package/build/primer/SVG/icon/repo-24.svg +1 -0
  449. package/build/primer/SVG/icon/repo-clone-16.svg +1 -0
  450. package/build/primer/SVG/icon/repo-forked-16.svg +1 -0
  451. package/build/primer/SVG/icon/repo-forked-24.svg +1 -0
  452. package/build/primer/SVG/icon/repo-pull-16.svg +1 -0
  453. package/build/primer/SVG/icon/repo-push-16.svg +1 -0
  454. package/build/primer/SVG/icon/repo-push-24.svg +1 -0
  455. package/build/primer/SVG/icon/repo-template-16.svg +1 -0
  456. package/build/primer/SVG/icon/repo-template-24.svg +1 -0
  457. package/build/primer/SVG/icon/report-16.svg +1 -0
  458. package/build/primer/SVG/icon/report-24.svg +1 -0
  459. package/build/primer/SVG/icon/rocket-16.svg +1 -0
  460. package/build/primer/SVG/icon/rocket-24.svg +1 -0
  461. package/build/primer/SVG/icon/rows-16.svg +1 -0
  462. package/build/primer/SVG/icon/rows-24.svg +1 -0
  463. package/build/primer/SVG/icon/rss-16.svg +1 -0
  464. package/build/primer/SVG/icon/rss-24.svg +1 -0
  465. package/build/primer/SVG/icon/ruby-16.svg +1 -0
  466. package/build/primer/SVG/icon/ruby-24.svg +1 -0
  467. package/build/primer/SVG/icon/screen-full-16.svg +1 -0
  468. package/build/primer/SVG/icon/screen-full-24.svg +1 -0
  469. package/build/primer/SVG/icon/screen-normal-16.svg +1 -0
  470. package/build/primer/SVG/icon/screen-normal-24.svg +1 -0
  471. package/build/primer/SVG/icon/search-16.svg +1 -0
  472. package/build/primer/SVG/icon/search-24.svg +1 -0
  473. package/build/primer/SVG/icon/select-single-16.svg +1 -0
  474. package/build/primer/SVG/icon/server-16.svg +1 -0
  475. package/build/primer/SVG/icon/server-24.svg +1 -0
  476. package/build/primer/SVG/icon/settings-24.svg +1 -0
  477. package/build/primer/SVG/icon/share-16.svg +1 -0
  478. package/build/primer/SVG/icon/share-24.svg +1 -0
  479. package/build/primer/SVG/icon/share-android-16.svg +1 -0
  480. package/build/primer/SVG/icon/share-android-24.svg +1 -0
  481. package/build/primer/SVG/icon/shield-16.svg +1 -0
  482. package/build/primer/SVG/icon/shield-24.svg +1 -0
  483. package/build/primer/SVG/icon/shield-check-16.svg +1 -0
  484. package/build/primer/SVG/icon/shield-check-24.svg +1 -0
  485. package/build/primer/SVG/icon/shield-lock-16.svg +1 -0
  486. package/build/primer/SVG/icon/shield-lock-24.svg +1 -0
  487. package/build/primer/SVG/icon/shield-x-16.svg +1 -0
  488. package/build/primer/SVG/icon/shield-x-24.svg +1 -0
  489. package/build/primer/SVG/icon/sidebar-collapse-16.svg +1 -0
  490. package/build/primer/SVG/icon/sidebar-collapse-24.svg +1 -0
  491. package/build/primer/SVG/icon/sidebar-expand-16.svg +1 -0
  492. package/build/primer/SVG/icon/sidebar-expand-24.svg +1 -0
  493. package/build/primer/SVG/icon/sign-in-16.svg +1 -0
  494. package/build/primer/SVG/icon/sign-in-24.svg +1 -0
  495. package/build/primer/SVG/icon/sign-out-16.svg +1 -0
  496. package/build/primer/SVG/icon/sign-out-24.svg +1 -0
  497. package/build/primer/SVG/icon/single-select-24.svg +1 -0
  498. package/build/primer/SVG/icon/skip-16.svg +1 -0
  499. package/build/primer/SVG/icon/skip-24.svg +1 -0
  500. package/build/primer/SVG/icon/smiley-16.svg +1 -0
  501. package/build/primer/SVG/icon/smiley-24.svg +1 -0
  502. package/build/primer/SVG/icon/square-16.svg +1 -0
  503. package/build/primer/SVG/icon/square-24.svg +1 -0
  504. package/build/primer/SVG/icon/square-fill-16.svg +1 -0
  505. package/build/primer/SVG/icon/square-fill-24.svg +1 -0
  506. package/build/primer/SVG/icon/squirrel-16.svg +1 -0
  507. package/build/primer/SVG/icon/squirrel-24.svg +1 -0
  508. package/build/primer/SVG/icon/star-16.svg +1 -0
  509. package/build/primer/SVG/icon/star-24.svg +1 -0
  510. package/build/primer/SVG/icon/star-fill-16.svg +1 -0
  511. package/build/primer/SVG/icon/star-fill-24.svg +1 -0
  512. package/build/primer/SVG/icon/stop-16.svg +1 -0
  513. package/build/primer/SVG/icon/stop-24.svg +1 -0
  514. package/build/primer/SVG/icon/stopwatch-16.svg +1 -0
  515. package/build/primer/SVG/icon/stopwatch-24.svg +1 -0
  516. package/build/primer/SVG/icon/strikethrough-16.svg +1 -0
  517. package/build/primer/SVG/icon/strikethrough-24.svg +1 -0
  518. package/build/primer/SVG/icon/sun-16.svg +1 -0
  519. package/build/primer/SVG/icon/sun-24.svg +1 -0
  520. package/build/primer/SVG/icon/sync-16.svg +1 -0
  521. package/build/primer/SVG/icon/sync-24.svg +1 -0
  522. package/build/primer/SVG/icon/tab-24.svg +1 -0
  523. package/build/primer/SVG/icon/table-16.svg +1 -0
  524. package/build/primer/SVG/icon/table-24.svg +1 -0
  525. package/build/primer/SVG/icon/tag-16.svg +1 -0
  526. package/build/primer/SVG/icon/tag-24.svg +1 -0
  527. package/build/primer/SVG/icon/tasklist-16.svg +1 -0
  528. package/build/primer/SVG/icon/tasklist-24.svg +1 -0
  529. package/build/primer/SVG/icon/telescope-16.svg +1 -0
  530. package/build/primer/SVG/icon/telescope-24.svg +1 -0
  531. package/build/primer/SVG/icon/terminal-16.svg +1 -0
  532. package/build/primer/SVG/icon/terminal-24.svg +1 -0
  533. package/build/primer/SVG/icon/three-bars-16.svg +1 -0
  534. package/build/primer/SVG/icon/thumbsdown-16.svg +1 -0
  535. package/build/primer/SVG/icon/thumbsdown-24.svg +1 -0
  536. package/build/primer/SVG/icon/thumbsup-16.svg +1 -0
  537. package/build/primer/SVG/icon/thumbsup-24.svg +1 -0
  538. package/build/primer/SVG/icon/tools-16.svg +1 -0
  539. package/build/primer/SVG/icon/tools-24.svg +1 -0
  540. package/build/primer/SVG/icon/trash-16.svg +1 -0
  541. package/build/primer/SVG/icon/trash-24.svg +1 -0
  542. package/build/primer/SVG/icon/trashcan-16.svg +1 -0
  543. package/build/primer/SVG/icon/triangle-down-16.svg +1 -0
  544. package/build/primer/SVG/icon/triangle-down-24.svg +1 -0
  545. package/build/primer/SVG/icon/triangle-left-16.svg +1 -0
  546. package/build/primer/SVG/icon/triangle-left-24.svg +1 -0
  547. package/build/primer/SVG/icon/triangle-right-16.svg +1 -0
  548. package/build/primer/SVG/icon/triangle-right-24.svg +1 -0
  549. package/build/primer/SVG/icon/triangle-up-16.svg +1 -0
  550. package/build/primer/SVG/icon/triangle-up-24.svg +1 -0
  551. package/build/primer/SVG/icon/typography-16.svg +1 -0
  552. package/build/primer/SVG/icon/typography-24.svg +1 -0
  553. package/build/primer/SVG/icon/unfold-16.svg +1 -0
  554. package/build/primer/SVG/icon/unfold-24.svg +1 -0
  555. package/build/primer/SVG/icon/unlock-16.svg +1 -0
  556. package/build/primer/SVG/icon/unlock-24.svg +1 -0
  557. package/build/primer/SVG/icon/unmute-16.svg +1 -0
  558. package/build/primer/SVG/icon/unmute-24.svg +1 -0
  559. package/build/primer/SVG/icon/unverifed-24.svg +1 -0
  560. package/build/primer/SVG/icon/unverified-16.svg +1 -0
  561. package/build/primer/SVG/icon/unverified-24.svg +1 -0
  562. package/build/primer/SVG/icon/upload-16.svg +1 -0
  563. package/build/primer/SVG/icon/upload-24.svg +1 -0
  564. package/build/primer/SVG/icon/verified-16.svg +1 -0
  565. package/build/primer/SVG/icon/verified-24.svg +1 -0
  566. package/build/primer/SVG/icon/versions-16.svg +1 -0
  567. package/build/primer/SVG/icon/versions-24.svg +1 -0
  568. package/build/primer/SVG/icon/video-16.svg +1 -0
  569. package/build/primer/SVG/icon/video-24.svg +1 -0
  570. package/build/primer/SVG/icon/workflow-16.svg +1 -0
  571. package/build/primer/SVG/icon/workflow-24.svg +1 -0
  572. package/build/primer/SVG/icon/x-16.svg +1 -0
  573. package/build/primer/SVG/icon/x-24.svg +1 -0
  574. package/build/primer/SVG/icon/x-circle-16.svg +1 -0
  575. package/build/primer/SVG/icon/x-circle-24.svg +1 -0
  576. package/build/primer/SVG/icon/x-circle-fill-16.svg +1 -0
  577. package/build/primer/SVG/icon/x-circle-fill-24.svg +1 -0
  578. package/build/primer/SVG/icon/zap-16.svg +1 -0
  579. package/build/primer/SVG/icon/zap-24.svg +1 -0
  580. package/build/primer/SVG/index.js +13 -0
  581. package/build/primer/Select/Select.js +78 -0
  582. package/build/primer/Select/Select.prop.js +32 -0
  583. package/build/primer/Select/Select.scss +49 -0
  584. package/build/primer/Select/index.js +21 -0
  585. package/build/primer/SelectMenu/SelectMenu.js +114 -0
  586. package/build/primer/SelectMenu/SelectMenu.prop.js +31 -0
  587. package/build/primer/SelectMenu/SelectMenu.scss +467 -0
  588. package/build/primer/SelectMenu/index.js +13 -0
  589. package/build/primer/Subhead/Subhead.js +34 -0
  590. package/build/primer/Subhead/Subhead.prop.js +20 -0
  591. package/build/primer/Subhead/Subhead.scss +50 -0
  592. package/build/primer/Subhead/index.js +13 -0
  593. package/build/primer/Toast/Toast.js +64 -0
  594. package/build/primer/Toast/Toast.prop.js +31 -0
  595. package/build/primer/Toast/Toast.scss +130 -0
  596. package/build/primer/Toast/index.js +21 -0
  597. package/build/primer/index.js +93 -1
  598. package/build/primer/index.scss +1 -1
  599. package/package.json +6 -2
@@ -0,0 +1,25 @@
1
+ # Menu
2
+
3
+ > The menu is a vertical list of navigational links. A menu's width and placement must be set by you. If you like, just use our grid columns as a parent. Otherwise, apply a custom width.
4
+
5
+ # Variants
6
+
7
+ > - Default, WithIcons, WithHeading
8
+
9
+ ## Default
10
+
11
+ ```jsx
12
+ <Menu ariaAttr={ariaAttr} items={defaultItems} onClick={action('onClick')} />
13
+ ```
14
+
15
+ ## WithIcons
16
+
17
+ ```jsx
18
+ <Menu ariaAttr={ariaAttr} items={iconItems} onClick={action('onClick')} />
19
+ ```
20
+
21
+ ## WithHeading
22
+
23
+ ```jsx
24
+ <Menu heading={heading} ariaAttr={ariaAttr} items={defaultItems} onClick={action('onClick')} />
25
+ ```
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.propTypes = exports.defaultProps = void 0;
7
+
8
+ var _propTypes = require("prop-types");
9
+
10
+ var propTypes = {
11
+ className: _propTypes.string,
12
+ heading: _propTypes.string,
13
+ ariaAttr: (0, _propTypes.shape)({
14
+ label: _propTypes.string,
15
+ labelledBy: _propTypes.string,
16
+ current: _propTypes.string
17
+ }).isRequired,
18
+ items: (0, _propTypes.arrayOf)((0, _propTypes.shape)({
19
+ href: _propTypes.string,
20
+ icon: _propTypes.string,
21
+ text: _propTypes.string,
22
+ html: _propTypes.node,
23
+ isSelected: _propTypes.bool
24
+ })).isRequired,
25
+ onClick: _propTypes.func.isRequired
26
+ };
27
+ exports.propTypes = propTypes;
28
+ var defaultProps = {
29
+ className: null,
30
+ heading: null
31
+ };
32
+ exports.defaultProps = defaultProps;
@@ -0,0 +1,128 @@
1
+ @import '../../index.scss';
2
+ @import '../../../index.scss';
3
+
4
+ // Side menu
5
+ //
6
+ // A menu on the side of a page, defaults to left side. e.g. github.com/about
7
+
8
+ .menu {
9
+ margin-bottom: $spacer-3;
10
+ list-style: none;
11
+ background-color: var(--color-canvas-default);
12
+ border: $border-width $border-style var(--color-border-default);
13
+ border-radius: $border-radius;
14
+ }
15
+
16
+ .menu-item {
17
+ position: relative;
18
+ display: block;
19
+ padding: $spacer-2 $spacer-3;
20
+ color: var(--color-fg-default);
21
+ border-bottom: $border-width $border-style var(--color-border-muted);
22
+
23
+ &:first-child {
24
+ border-top: 0;
25
+ border-top-left-radius: $border-radius;
26
+ border-top-right-radius: $border-radius;
27
+
28
+ &::before {
29
+ border-top-left-radius: $border-radius;
30
+ }
31
+ }
32
+
33
+ &:last-child {
34
+ border-bottom: 0;
35
+ border-bottom-right-radius: $border-radius;
36
+ border-bottom-left-radius: $border-radius;
37
+
38
+ &::before {
39
+ border-bottom-left-radius: $border-radius;
40
+ }
41
+ }
42
+
43
+ &:focus {
44
+ z-index: 1;
45
+ outline: none;
46
+ box-shadow: var(--color-primer-shadow-focus);
47
+ }
48
+
49
+ &:hover {
50
+ text-decoration: none;
51
+ background-color: var(--color-neutral-subtle);
52
+ }
53
+
54
+ &:active {
55
+ background-color: var(--color-canvas-subtle);
56
+ }
57
+
58
+ &.selected,
59
+ &[aria-selected='true'],
60
+ &[aria-current]:not([aria-current='false']) {
61
+ cursor: default;
62
+ background-color: var(--color-menu-bg-active);
63
+
64
+ &::before {
65
+ position: absolute;
66
+ top: 0;
67
+ bottom: 0;
68
+ left: 0;
69
+ width: 2px;
70
+ content: '';
71
+ background-color: var(--color-primer-border-active);
72
+ }
73
+ }
74
+
75
+ .octicon {
76
+ width: 16px;
77
+ margin-right: $spacer-2;
78
+ color: var(--color-fg-muted);
79
+ text-align: center;
80
+ }
81
+
82
+ .Counter {
83
+ float: right;
84
+ margin-left: $spacer-1;
85
+ }
86
+
87
+ .menu-warning {
88
+ float: right;
89
+ color: var(--color-attention-fg);
90
+ }
91
+
92
+ .avatar {
93
+ float: left;
94
+ margin-right: $spacer-1;
95
+ }
96
+
97
+ &.alert {
98
+ .Counter {
99
+ color: var(--color-danger-fg);
100
+ }
101
+ }
102
+ }
103
+
104
+ .menu-heading {
105
+ display: block;
106
+ padding: $spacer-2 $spacer-3;
107
+ margin-top: 0;
108
+ margin-bottom: 0;
109
+ font-size: inherit;
110
+ font-weight: $font-weight-bold;
111
+ color: var(--color-fg-default);
112
+ border-bottom: $border-width $border-style var(--color-border-muted);
113
+
114
+ &:hover {
115
+ text-decoration: none;
116
+ }
117
+
118
+ &:first-child {
119
+ border-top-left-radius: $border-radius;
120
+ border-top-right-radius: $border-radius;
121
+ }
122
+
123
+ &:last-child {
124
+ border-bottom: 0;
125
+ border-bottom-right-radius: $border-radius;
126
+ border-bottom-left-radius: $border-radius;
127
+ }
128
+ }
@@ -0,0 +1,120 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<Menu /> Render must match regular() 1`] = `
4
+ <nav
5
+ aria-label="Person settings"
6
+ aria-labelledby="menu-heading"
7
+ className="menu"
8
+ >
9
+ <a
10
+ aria-current="page"
11
+ className="menu-item"
12
+ href="#url"
13
+ onClick={[Function]}
14
+ >
15
+ Account
16
+ </a>
17
+ <a
18
+ className="menu-item"
19
+ href="#url"
20
+ onClick={[Function]}
21
+ >
22
+ Profile
23
+ </a>
24
+ <a
25
+ className="menu-item"
26
+ href="#url"
27
+ onClick={[Function]}
28
+ >
29
+ Emails
30
+ </a>
31
+ <a
32
+ className="menu-item"
33
+ href="#url"
34
+ onClick={[Function]}
35
+ >
36
+ Notifications
37
+ </a>
38
+ </nav>
39
+ `;
40
+
41
+ exports[`<Menu /> Render must match withHeading() 1`] = `
42
+ <nav
43
+ aria-label="Person settings"
44
+ aria-labelledby="menu-heading"
45
+ className="menu"
46
+ >
47
+ <span
48
+ className="menu-heading"
49
+ >
50
+ Menu heading
51
+ </span>
52
+ <a
53
+ aria-current="page"
54
+ className="menu-item"
55
+ href="#url"
56
+ onClick={[Function]}
57
+ >
58
+ Account
59
+ </a>
60
+ <a
61
+ className="menu-item"
62
+ href="#url"
63
+ onClick={[Function]}
64
+ >
65
+ Profile
66
+ </a>
67
+ <a
68
+ className="menu-item"
69
+ href="#url"
70
+ onClick={[Function]}
71
+ >
72
+ Emails
73
+ </a>
74
+ <a
75
+ className="menu-item"
76
+ href="#url"
77
+ onClick={[Function]}
78
+ >
79
+ Notifications
80
+ </a>
81
+ </nav>
82
+ `;
83
+
84
+ exports[`<Menu /> Render must match withIcons() 1`] = `
85
+ <nav
86
+ aria-label="Person settings"
87
+ aria-labelledby="menu-heading"
88
+ className="menu"
89
+ >
90
+ <a
91
+ aria-current="page"
92
+ className="menu-item"
93
+ href="#url"
94
+ onClick={[Function]}
95
+ >
96
+ Account
97
+ </a>
98
+ <a
99
+ className="menu-item"
100
+ href="#url"
101
+ onClick={[Function]}
102
+ >
103
+ Profile
104
+ </a>
105
+ <a
106
+ className="menu-item"
107
+ href="#url"
108
+ onClick={[Function]}
109
+ >
110
+ Emails
111
+ </a>
112
+ <a
113
+ className="menu-item"
114
+ href="#url"
115
+ onClick={[Function]}
116
+ >
117
+ Notifications
118
+ </a>
119
+ </nav>
120
+ `;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Menu", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Menu.Menu;
10
+ }
11
+ });
12
+
13
+ var _Menu = require("./Menu");
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TabNav = TabNav;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _react = require("react");
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _uuid = require("uuid");
17
+
18
+ var _array = require("@papillonbits/library/array");
19
+
20
+ var _TabNav = require("./TabNav.prop");
21
+
22
+ var _TabNav2 = _interopRequireDefault(require("./TabNav.scss"));
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
+
30
+ function TabNav(_ref) {
31
+ var className = _ref.className,
32
+ ariaAttr = _ref.ariaAttr,
33
+ items = _ref.items,
34
+ actions = _ref.actions,
35
+ _onClick = _ref.onClick,
36
+ children = _ref.children,
37
+ state = _ref.state;
38
+
39
+ if (!items) {
40
+ return null;
41
+ }
42
+
43
+ var label = ariaAttr.label,
44
+ current = ariaAttr.current;
45
+ var indexItems = (0, _array.getIndexItems)(items);
46
+
47
+ function renderActions() {
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Fragment, {
49
+ children: actions
50
+ }); // eslint-disable-line react/jsx-no-useless-fragment
51
+ }
52
+
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
54
+ className: (0, _classnames["default"])(className, _TabNav2["default"].tabnav, (0, _defineProperty2["default"])({}, _TabNav2["default"]['tabnav-inactive'], state === _TabNav.tabNavState.inactive)),
55
+ children: [actions && renderActions(), /*#__PURE__*/(0, _jsxRuntime.jsx)("nav", {
56
+ className: _TabNav2["default"]['tabnav-tabs'],
57
+ "aria-label": label,
58
+ children: indexItems.map(function (indexItem) {
59
+ var href = indexItem.href,
60
+ text = indexItem.text,
61
+ link = indexItem.link,
62
+ isSelected = indexItem.isSelected,
63
+ enabled = indexItem.enabled,
64
+ visible = indexItem.visible;
65
+ var itemOtherProps = isSelected ? _objectSpread({}, {
66
+ 'aria-current': current
67
+ }) : null;
68
+
69
+ if (href && text) {
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("a", _objectSpread(_objectSpread({
71
+ onClick: function onClick() {
72
+ if (!enabled) {
73
+ return;
74
+ }
75
+
76
+ var newIndexItems = (0, _array.getIndexItemsWithSelected)(indexItems, indexItem);
77
+
78
+ _onClick({
79
+ ariaAttr: ariaAttr,
80
+ items: newIndexItems.map(function (newIndexItem) {
81
+ return function (_ref2) {
82
+ var href = _ref2.href,
83
+ text = _ref2.text,
84
+ isSelected = _ref2.isSelected;
85
+ return {
86
+ href: href,
87
+ text: text,
88
+ isSelected: isSelected,
89
+ enabled: enabled,
90
+ visible: visible
91
+ };
92
+ }(newIndexItem);
93
+ } // eslint-disable-line
94
+ )
95
+ });
96
+ },
97
+ className: _TabNav2["default"]['tabnav-tab'],
98
+ href: href
99
+ }, itemOtherProps), {}, {
100
+ children: text
101
+ }), (0, _uuid.v1)());
102
+ }
103
+
104
+ if (link) {
105
+ var _cx2;
106
+
107
+ var Link = link.component;
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Link, _objectSpread(_objectSpread(_objectSpread({
109
+ onClick: function onClick() {
110
+ if (!enabled) {
111
+ return;
112
+ }
113
+
114
+ var newIndexItems = (0, _array.getIndexItemsWithSelected)(indexItems, indexItem);
115
+
116
+ _onClick({
117
+ ariaAttr: ariaAttr,
118
+ items: newIndexItems.map(function (newIndexItem) {
119
+ return function (_ref3) {
120
+ var link = _ref3.link,
121
+ isSelected = _ref3.isSelected,
122
+ enabled = _ref3.enabled,
123
+ visible = _ref3.visible;
124
+ return {
125
+ link: link,
126
+ isSelected: isSelected,
127
+ enabled: enabled,
128
+ visible: visible
129
+ };
130
+ }(newIndexItem);
131
+ } // eslint-disable-line
132
+ )
133
+ });
134
+ },
135
+ className: (0, _classnames["default"])(className, _TabNav2["default"]['tabnav-tab'], (_cx2 = {}, (0, _defineProperty2["default"])(_cx2, _TabNav2["default"]['tabnav-tab-inactive'], enabled === false), (0, _defineProperty2["default"])(_cx2, _TabNav2["default"]['tabnav-tab-hidden'], visible === false), _cx2))
136
+ }, itemOtherProps), link.props), {}, {
137
+ children: link.children
138
+ }), (0, _uuid.v1)());
139
+ }
140
+
141
+ return null;
142
+ })
143
+ }), children]
144
+ });
145
+ }
146
+
147
+ TabNav.propTypes = _TabNav.propTypes;
148
+ TabNav.defaultProps = _TabNav.defaultProps;
@@ -0,0 +1,56 @@
1
+ # TabNav
2
+
3
+ > When you need to toggle between different views, consider using a tabnav. It'll give you a left-aligned horizontal row of tabs.
4
+
5
+ # Variants
6
+
7
+ > - Default
8
+ > - WithButtonActions, WithTextActions, WithLinkActions
9
+ > - WithNavigation, WithMixedEnabledVisibleItems
10
+ > - Inactive
11
+
12
+ ## Default
13
+
14
+ ```jsx
15
+ <TabNav ariaAttr={ariaAttr} items={defaultItems} onClick={action('onClick')} />
16
+ ```
17
+
18
+ ## WithButtonActions
19
+
20
+ ```jsx
21
+ <TabNav ariaAttr={ariaAttr} items={defaultItems} actions={buttonActions} onClick={action('onClick')} />
22
+ ```
23
+
24
+ ## WithTextActions
25
+
26
+ ```jsx
27
+ <TabNav ariaAttr={ariaAttr} items={defaultItems} actions={textActions} onClick={action('onClick')} />
28
+ ```
29
+
30
+ ## WithLinkActions
31
+
32
+ ```jsx
33
+ <TabNav ariaAttr={ariaAttr} items={defaultItems} actions={linkActions} onClick={action('onClick')} />
34
+ ```
35
+
36
+ ## WithNavigation
37
+
38
+ ```jsx
39
+ <BrowserRouter>
40
+ <TabNav ariaAttr={ariaAttr} items={navigationItems} onClick={action('onClick')} />
41
+ </BrowserRouter>
42
+ ```
43
+
44
+ ## WithMixedEnabledVisibleItems
45
+
46
+ ```jsx
47
+ <BrowserRouter>
48
+ <TabNav ariaAttr={ariaAttr} items={mixedEnabledVisibleItems} onClick={action('onClick')} />
49
+ </BrowserRouter>
50
+ ```
51
+
52
+ ## Inactive
53
+
54
+ ```jsx
55
+ <TabNav ariaAttr={ariaAttr} items={defaultItems} onClick={action('onClick')} state={tabNavState.inactive} />
56
+ ```
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.tabNavState = exports.propTypes = exports.defaultProps = void 0;
7
+
8
+ var _propTypes = require("prop-types");
9
+
10
+ var tabNavState = {
11
+ active: 'active',
12
+ inactive: 'inactive'
13
+ };
14
+ exports.tabNavState = tabNavState;
15
+ var propTypes = {
16
+ className: _propTypes.string,
17
+ ariaAttr: (0, _propTypes.shape)({
18
+ label: _propTypes.string,
19
+ current: _propTypes.string
20
+ }).isRequired,
21
+ items: (0, _propTypes.arrayOf)((0, _propTypes.shape)({
22
+ href: _propTypes.string,
23
+ text: _propTypes.string,
24
+ link: _propTypes.shape,
25
+ isSelected: _propTypes.bool,
26
+ enabled: _propTypes.bool,
27
+ visible: _propTypes.bool
28
+ })).isRequired,
29
+ actions: (0, _propTypes.arrayOf)(_propTypes.node),
30
+ onClick: _propTypes.func.isRequired,
31
+ children: _propTypes.node,
32
+ state: (0, _propTypes.oneOf)(Object.keys(tabNavState))
33
+ };
34
+ exports.propTypes = propTypes;
35
+ var defaultProps = {
36
+ className: null,
37
+ actions: null,
38
+ children: null,
39
+ state: tabNavState.active
40
+ };
41
+ exports.defaultProps = defaultProps;
@@ -0,0 +1,103 @@
1
+ @import '../../index.scss';
2
+ @import '../../../index.scss';
3
+
4
+ // Outer wrapper
5
+ // stylelint-disable no-descending-specificity
6
+ // stylelint-disable selector-max-type
7
+ .tabnav {
8
+ margin-top: 0;
9
+ margin-bottom: $spacer-3;
10
+ border-bottom: $border-width $border-style var(--color-border-default);
11
+ }
12
+
13
+ .tabnav-tabs {
14
+ display: flex;
15
+ // stylelint-disable-next-line primer/spacing
16
+ margin-bottom: -1px;
17
+ overflow: auto;
18
+ }
19
+
20
+ .tabnav-tab {
21
+ display: inline-block;
22
+ flex-shrink: 0;
23
+ padding: $spacer-2 $spacer-3;
24
+ font-size: $h5-size;
25
+ // stylelint-disable-next-line primer/typography
26
+ line-height: 23px;
27
+ color: var(--color-fg-muted);
28
+ text-decoration: none;
29
+ background-color: transparent;
30
+ border: $border-width $border-style transparent;
31
+ border-bottom: 0;
32
+ transition: color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
33
+
34
+ &.selected,
35
+ &[aria-selected='true'],
36
+ &[aria-current]:not([aria-current='false']) {
37
+ color: var(--color-fg-default);
38
+ background-color: var(--color-canvas-default); // cover bottom border
39
+ border-color: var(--color-border-default);
40
+ border-radius: $border-radius $border-radius 0 0;
41
+
42
+ .octicon {
43
+ color: inherit;
44
+ }
45
+ }
46
+
47
+ &:hover,
48
+ &:focus {
49
+ color: var(--color-fg-default);
50
+ text-decoration: none;
51
+ transition-duration: 0.1s;
52
+ }
53
+
54
+ &:active {
55
+ color: var(--color-fg-muted);
56
+ }
57
+
58
+ .octicon {
59
+ margin-right: $spacer-1;
60
+ color: var(--color-fg-muted);
61
+ }
62
+
63
+ .Counter {
64
+ margin-left: $spacer-1;
65
+ color: inherit;
66
+ }
67
+ }
68
+
69
+ // Tabnav extras
70
+ //
71
+ // Tabnav extras are non-tab elements that sit in the tabnav. Usually they're
72
+ // inline text or links.
73
+
74
+ .tabnav-extra {
75
+ display: inline-block;
76
+ // stylelint-disable-next-line primer/spacing
77
+ padding-top: 10px;
78
+ // stylelint-disable-next-line primer/spacing
79
+ margin-left: 10px;
80
+ font-size: $font-size-small;
81
+ color: var(--color-fg-muted);
82
+
83
+ > .octicon {
84
+ // stylelint-disable-next-line primer/spacing
85
+ margin-right: 2px;
86
+ }
87
+ }
88
+
89
+ // When tabnav-extra are anchors
90
+ // stylelint-disable-next-line selector-no-qualifying-type
91
+ a.tabnav-extra:hover {
92
+ color: var(--color-accent-fg);
93
+ text-decoration: none;
94
+ }
95
+
96
+ // Tabnav buttons
97
+ //
98
+ // For when there are multiple buttons, space them out appropriately. Requires
99
+ // the buttons to be floated or inline-block.
100
+
101
+ .tabnav-btn {
102
+ margin-left: $spacer-2;
103
+ }