@papillonbits/components 0.4.0 → 0.7.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 (629) hide show
  1. package/build/primer/Alert/Alert.js +142 -0
  2. package/build/primer/Alert/Alert.prop.js +43 -0
  3. package/build/primer/Alert/Alert.scss +158 -0
  4. package/build/primer/Alert/index.js +21 -0
  5. package/build/primer/Box/box.scss +294 -0
  6. package/build/primer/BranchName/branch-name.scss +32 -0
  7. package/build/primer/Breadcrumb/Breadcrumb.js +87 -0
  8. package/build/primer/Breadcrumb/Breadcrumb.prop.js +34 -0
  9. package/build/primer/Breadcrumb/Breadcrumb.scss +35 -0
  10. package/build/primer/Breadcrumb/index.js +21 -0
  11. package/build/primer/Button/Button.js +107 -0
  12. package/build/primer/Button/Button.prop.js +79 -0
  13. package/build/primer/Button/Button.scss +316 -0
  14. package/build/primer/Button/index.js +51 -0
  15. package/build/primer/Button/misc.scss +205 -0
  16. package/build/primer/Dropdown/Dropdown.js +126 -0
  17. package/build/primer/Dropdown/Dropdown.prop.js +39 -0
  18. package/build/primer/Dropdown/Dropdown.scss +276 -0
  19. package/build/primer/Dropdown/index.js +21 -0
  20. package/build/primer/ErrorBoundary/ErrorBoundary.js +82 -0
  21. package/build/primer/ErrorBoundary/ErrorBoundary.prop.js +15 -0
  22. package/build/primer/ErrorBoundary/index.js +13 -0
  23. package/build/primer/Form/Checkbox/Checkbox.js +53 -0
  24. package/build/primer/Form/Checkbox/Checkbox.md +32 -0
  25. package/build/primer/Form/Checkbox/Checkbox.prop.js +42 -0
  26. package/build/primer/Form/Checkbox/Checkbox.scss +8 -0
  27. package/build/primer/Form/Checkbox/__tests__/__snapshots__/Checkbox.int.test.js.snap +75 -0
  28. package/build/primer/Form/Checkbox/index.js +21 -0
  29. package/build/primer/Form/Input/Input.js +58 -0
  30. package/build/primer/Form/Input/Input.md +34 -0
  31. package/build/primer/Form/Input/Input.prop.js +51 -0
  32. package/build/primer/Form/Input/Input.scss +9 -0
  33. package/build/primer/Form/Input/__tests__/__snapshots__/Input.int.test.js.snap +25 -0
  34. package/build/primer/Form/Input/index.js +27 -0
  35. package/build/primer/Form/Radio/Radio.js +52 -0
  36. package/build/primer/Form/Radio/Radio.md +25 -0
  37. package/build/primer/Form/Radio/Radio.prop.js +40 -0
  38. package/build/primer/Form/Radio/Radio.scss +6 -0
  39. package/build/primer/Form/Radio/__tests__/__snapshots__/Radio.int.test.js.snap +65 -0
  40. package/build/primer/Form/Radio/index.js +21 -0
  41. package/build/primer/Form/form-control.scss +264 -0
  42. package/build/primer/Form/form-group.scss +277 -0
  43. package/build/primer/Form/form-select.scss +46 -0
  44. package/build/primer/Form/form-validation.scss +365 -0
  45. package/build/primer/Form/index.js +29 -0
  46. package/build/primer/Form/index.scss +8 -0
  47. package/build/primer/Form/input-group.scss +55 -0
  48. package/build/primer/Form/radio-group.scss +62 -0
  49. package/build/primer/Grid/DisplayTable/DisplayTable.js +71 -0
  50. package/build/primer/Grid/DisplayTable/DisplayTable.md +14 -0
  51. package/build/primer/Grid/DisplayTable/DisplayTable.prop.js +22 -0
  52. package/build/primer/Grid/DisplayTable/__tests__/__snapshots__/DisplayTable.int.test.js.snap +326 -0
  53. package/build/primer/Grid/DisplayTable/index.js +13 -0
  54. package/build/primer/Grid/FlexGrid/FlexGrid.js +277 -0
  55. package/build/primer/Grid/FlexGrid/FlexGrid.md +106 -0
  56. package/build/primer/Grid/FlexGrid/FlexGrid.prop.js +55 -0
  57. package/build/primer/Grid/FlexGrid/FlexGrid.scss +27 -0
  58. package/build/primer/Grid/FlexGrid/__tests__/__snapshots__/FlexGrid.int.test.js.snap +6247 -0
  59. package/build/primer/Grid/FlexGrid/index.js +27 -0
  60. package/build/primer/Grid/index.js +18 -0
  61. package/build/primer/Icon/Icon.js +79 -0
  62. package/build/primer/Icon/Icon.part.js +1497 -0
  63. package/build/primer/Icon/Icon.prop.js +554 -0
  64. package/build/primer/Icon/index.js +27 -0
  65. package/build/primer/Label/Label.js +40 -0
  66. package/build/primer/Label/Label.prop.js +41 -0
  67. package/build/primer/Label/counters.scss +38 -0
  68. package/build/primer/Label/diffstat.scss +37 -0
  69. package/build/primer/Label/index.js +13 -0
  70. package/build/primer/Label/index.scss +8 -0
  71. package/build/primer/Label/issue-labels.scss +25 -0
  72. package/build/primer/Label/labels.scss +94 -0
  73. package/build/primer/Label/mixins.scss +39 -0
  74. package/build/primer/Label/states.scss +56 -0
  75. package/build/primer/Layout/container.scss +32 -0
  76. package/build/primer/Layout/grid-offset.scss +45 -0
  77. package/build/primer/Layout/grid.scss +123 -0
  78. package/build/primer/Loader/Loader.js +82 -0
  79. package/build/primer/Loader/Loader.prop.js +26 -0
  80. package/build/primer/Loader/Loader.scss +21 -0
  81. package/build/primer/Loader/index.js +21 -0
  82. package/build/primer/Navigation/Menu/Menu.js +87 -0
  83. package/build/primer/Navigation/Menu/Menu.md +25 -0
  84. package/build/primer/Navigation/Menu/Menu.prop.js +32 -0
  85. package/build/primer/Navigation/Menu/Menu.scss +128 -0
  86. package/build/primer/Navigation/Menu/__tests__/__snapshots__/Menu.int.test.js.snap +114 -0
  87. package/build/primer/Navigation/Menu/index.js +13 -0
  88. package/build/primer/Navigation/TabNav/TabNav.js +148 -0
  89. package/build/primer/Navigation/TabNav/TabNav.md +56 -0
  90. package/build/primer/Navigation/TabNav/TabNav.prop.js +41 -0
  91. package/build/primer/Navigation/TabNav/TabNav.scss +103 -0
  92. package/build/primer/Navigation/TabNav/__tests__/__snapshots__/TabNav.int.test.js.snap +218 -0
  93. package/build/primer/Navigation/TabNav/index.js +21 -0
  94. package/build/primer/Navigation/UnderlineNav/UnderlineNav.js +148 -0
  95. package/build/primer/Navigation/UnderlineNav/UnderlineNav.md +65 -0
  96. package/build/primer/Navigation/UnderlineNav/UnderlineNav.prop.js +47 -0
  97. package/build/primer/Navigation/UnderlineNav/UnderlineNav.scss +92 -0
  98. package/build/primer/Navigation/UnderlineNav/__tests__/__snapshots__/UnderlineNav.int.test.js.snap +259 -0
  99. package/build/primer/Navigation/UnderlineNav/index.js +27 -0
  100. package/build/primer/Navigation/index.js +22 -0
  101. package/build/primer/Pagination/PreviousNext/PreviousNext.js +89 -0
  102. package/build/primer/Pagination/PreviousNext/PreviousNext.md +20 -0
  103. package/build/primer/Pagination/PreviousNext/PreviousNext.prop.js +61 -0
  104. package/build/primer/Pagination/PreviousNext/PreviousNext.scss +157 -0
  105. package/build/primer/Pagination/PreviousNext/__tests__/__snapshots__/PreviousNext.int.test.js.snap +63 -0
  106. package/build/primer/Pagination/PreviousNext/index.js +21 -0
  107. package/build/primer/Pagination/index.js +14 -0
  108. package/build/primer/Popover/Popover.js +77 -0
  109. package/build/primer/Popover/Popover.prop.js +47 -0
  110. package/build/primer/Popover/Popover.scss +230 -0
  111. package/build/primer/Popover/index.js +27 -0
  112. package/build/primer/Progress/Progress.js +41 -0
  113. package/build/primer/Progress/Progress.prop.js +26 -0
  114. package/build/primer/Progress/Progress.scss +29 -0
  115. package/build/primer/Progress/index.js +21 -0
  116. package/build/primer/SVG/icon/accessibility-16.svg +1 -0
  117. package/build/primer/SVG/icon/alert-16.svg +1 -0
  118. package/build/primer/SVG/icon/alert-24.svg +1 -0
  119. package/build/primer/SVG/icon/alert-fill-12.svg +1 -0
  120. package/build/primer/SVG/icon/apps-16.svg +1 -0
  121. package/build/primer/SVG/icon/archive-16.svg +1 -0
  122. package/build/primer/SVG/icon/archive-24.svg +1 -0
  123. package/build/primer/SVG/icon/arrow-both-16.svg +1 -0
  124. package/build/primer/SVG/icon/arrow-both-24.svg +1 -0
  125. package/build/primer/SVG/icon/arrow-down-16.svg +1 -0
  126. package/build/primer/SVG/icon/arrow-down-24.svg +1 -0
  127. package/build/primer/SVG/icon/arrow-down-left-24.svg +1 -0
  128. package/build/primer/SVG/icon/arrow-down-right-24.svg +1 -0
  129. package/build/primer/SVG/icon/arrow-left-16.svg +1 -0
  130. package/build/primer/SVG/icon/arrow-left-24.svg +1 -0
  131. package/build/primer/SVG/icon/arrow-right-16.svg +1 -0
  132. package/build/primer/SVG/icon/arrow-right-24.svg +1 -0
  133. package/build/primer/SVG/icon/arrow-switch-16.svg +1 -0
  134. package/build/primer/SVG/icon/arrow-switch-24.svg +1 -0
  135. package/build/primer/SVG/icon/arrow-up-16.svg +1 -0
  136. package/build/primer/SVG/icon/arrow-up-24.svg +1 -0
  137. package/build/primer/SVG/icon/arrow-up-left-24.svg +1 -0
  138. package/build/primer/SVG/icon/arrow-up-right-24.svg +1 -0
  139. package/build/primer/SVG/icon/beaker-16.svg +1 -0
  140. package/build/primer/SVG/icon/beaker-24.svg +1 -0
  141. package/build/primer/SVG/icon/bell-16.svg +1 -0
  142. package/build/primer/SVG/icon/bell-24.svg +1 -0
  143. package/build/primer/SVG/icon/bell-fill-16.svg +1 -0
  144. package/build/primer/SVG/icon/bell-fill-24.svg +1 -0
  145. package/build/primer/SVG/icon/bell-slash-16.svg +1 -0
  146. package/build/primer/SVG/icon/bell-slash-24.svg +1 -0
  147. package/build/primer/SVG/icon/blocked-16.svg +1 -0
  148. package/build/primer/SVG/icon/blocked-24.svg +1 -0
  149. package/build/primer/SVG/icon/bold-16.svg +1 -0
  150. package/build/primer/SVG/icon/bold-24.svg +1 -0
  151. package/build/primer/SVG/icon/book-16.svg +1 -0
  152. package/build/primer/SVG/icon/book-24.svg +1 -0
  153. package/build/primer/SVG/icon/bookmark-16.svg +1 -0
  154. package/build/primer/SVG/icon/bookmark-24.svg +1 -0
  155. package/build/primer/SVG/icon/bookmark-fill-24.svg +1 -0
  156. package/build/primer/SVG/icon/bookmark-slash-16.svg +1 -0
  157. package/build/primer/SVG/icon/bookmark-slash-24.svg +1 -0
  158. package/build/primer/SVG/icon/bookmark-slash-fill-24.svg +1 -0
  159. package/build/primer/SVG/icon/briefcase-16.svg +1 -0
  160. package/build/primer/SVG/icon/briefcase-24.svg +1 -0
  161. package/build/primer/SVG/icon/broadcast-16.svg +1 -0
  162. package/build/primer/SVG/icon/broadcast-24.svg +1 -0
  163. package/build/primer/SVG/icon/browser-16.svg +1 -0
  164. package/build/primer/SVG/icon/browser-24.svg +1 -0
  165. package/build/primer/SVG/icon/bug-16.svg +1 -0
  166. package/build/primer/SVG/icon/bug-24.svg +1 -0
  167. package/build/primer/SVG/icon/calendar-16.svg +1 -0
  168. package/build/primer/SVG/icon/calendar-24.svg +1 -0
  169. package/build/primer/SVG/icon/check-16.svg +1 -0
  170. package/build/primer/SVG/icon/check-24.svg +1 -0
  171. package/build/primer/SVG/icon/check-circle-16.svg +1 -0
  172. package/build/primer/SVG/icon/check-circle-24.svg +1 -0
  173. package/build/primer/SVG/icon/check-circle-fill-12.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/clock-16.svg +1 -0
  191. package/build/primer/SVG/icon/clock-24.svg +1 -0
  192. package/build/primer/SVG/icon/cloud-16.svg +1 -0
  193. package/build/primer/SVG/icon/cloud-24.svg +1 -0
  194. package/build/primer/SVG/icon/cloud-offline-16.svg +1 -0
  195. package/build/primer/SVG/icon/cloud-offline-24.svg +1 -0
  196. package/build/primer/SVG/icon/code-16.svg +1 -0
  197. package/build/primer/SVG/icon/code-24.svg +1 -0
  198. package/build/primer/SVG/icon/code-of-conduct-16.svg +1 -0
  199. package/build/primer/SVG/icon/code-of-conduct-24.svg +1 -0
  200. package/build/primer/SVG/icon/code-review-16.svg +1 -0
  201. package/build/primer/SVG/icon/code-review-24.svg +1 -0
  202. package/build/primer/SVG/icon/code-square-16.svg +1 -0
  203. package/build/primer/SVG/icon/code-square-24.svg +1 -0
  204. package/build/primer/SVG/icon/codescan-16.svg +1 -0
  205. package/build/primer/SVG/icon/codescan-24.svg +1 -0
  206. package/build/primer/SVG/icon/codescan-checkmark-16.svg +1 -0
  207. package/build/primer/SVG/icon/codescan-checkmark-24.svg +1 -0
  208. package/build/primer/SVG/icon/codespaces-16.svg +1 -0
  209. package/build/primer/SVG/icon/codespaces-24.svg +1 -0
  210. package/build/primer/SVG/icon/columns-16.svg +1 -0
  211. package/build/primer/SVG/icon/columns-24.svg +1 -0
  212. package/build/primer/SVG/icon/comment-16.svg +1 -0
  213. package/build/primer/SVG/icon/comment-24.svg +1 -0
  214. package/build/primer/SVG/icon/comment-discussion-16.svg +1 -0
  215. package/build/primer/SVG/icon/comment-discussion-24.svg +1 -0
  216. package/build/primer/SVG/icon/commit-24.svg +1 -0
  217. package/build/primer/SVG/icon/container-16.svg +1 -0
  218. package/build/primer/SVG/icon/container-24.svg +1 -0
  219. package/build/primer/SVG/icon/copy-16.svg +1 -0
  220. package/build/primer/SVG/icon/copy-24.svg +1 -0
  221. package/build/primer/SVG/icon/cpu-16.svg +1 -0
  222. package/build/primer/SVG/icon/cpu-24.svg +1 -0
  223. package/build/primer/SVG/icon/credit-card-16.svg +1 -0
  224. package/build/primer/SVG/icon/credit-card-24.svg +1 -0
  225. package/build/primer/SVG/icon/cross-reference-16.svg +1 -0
  226. package/build/primer/SVG/icon/cross-reference-24.svg +1 -0
  227. package/build/primer/SVG/icon/dash-16.svg +1 -0
  228. package/build/primer/SVG/icon/dash-24.svg +1 -0
  229. package/build/primer/SVG/icon/database-16.svg +1 -0
  230. package/build/primer/SVG/icon/database-24.svg +1 -0
  231. package/build/primer/SVG/icon/dependabot-16.svg +1 -0
  232. package/build/primer/SVG/icon/dependabot-24.svg +1 -0
  233. package/build/primer/SVG/icon/desktop-download-16.svg +1 -0
  234. package/build/primer/SVG/icon/desktop-download-24.svg +1 -0
  235. package/build/primer/SVG/icon/device-camera-16.svg +1 -0
  236. package/build/primer/SVG/icon/device-camera-video-16.svg +1 -0
  237. package/build/primer/SVG/icon/device-camera-video-24.svg +1 -0
  238. package/build/primer/SVG/icon/device-desktop-16.svg +1 -0
  239. package/build/primer/SVG/icon/device-desktop-24.svg +1 -0
  240. package/build/primer/SVG/icon/device-mobile-16.svg +1 -0
  241. package/build/primer/SVG/icon/device-mobile-24.svg +1 -0
  242. package/build/primer/SVG/icon/diamond-16.svg +1 -0
  243. package/build/primer/SVG/icon/diamond-24.svg +1 -0
  244. package/build/primer/SVG/icon/diff-16.svg +1 -0
  245. package/build/primer/SVG/icon/diff-24.svg +1 -0
  246. package/build/primer/SVG/icon/diff-added-16.svg +1 -0
  247. package/build/primer/SVG/icon/diff-ignored-16.svg +1 -0
  248. package/build/primer/SVG/icon/diff-modified-16.svg +1 -0
  249. package/build/primer/SVG/icon/diff-removed-16.svg +1 -0
  250. package/build/primer/SVG/icon/diff-renamed-16.svg +1 -0
  251. package/build/primer/SVG/icon/dot-16.svg +1 -0
  252. package/build/primer/SVG/icon/dot-24.svg +1 -0
  253. package/build/primer/SVG/icon/dot-fill-16.svg +1 -0
  254. package/build/primer/SVG/icon/dot-fill-24.svg +1 -0
  255. package/build/primer/SVG/icon/download-16.svg +1 -0
  256. package/build/primer/SVG/icon/download-24.svg +1 -0
  257. package/build/primer/SVG/icon/duplicate-16.svg +1 -0
  258. package/build/primer/SVG/icon/duplicate-24.svg +1 -0
  259. package/build/primer/SVG/icon/ellipsis-16.svg +1 -0
  260. package/build/primer/SVG/icon/eye-16.svg +1 -0
  261. package/build/primer/SVG/icon/eye-24.svg +1 -0
  262. package/build/primer/SVG/icon/eye-closed-16.svg +1 -0
  263. package/build/primer/SVG/icon/eye-closed-24.svg +1 -0
  264. package/build/primer/SVG/icon/feed-discussion-16.svg +1 -0
  265. package/build/primer/SVG/icon/feed-forked-16.svg +1 -0
  266. package/build/primer/SVG/icon/feed-heart-16.svg +1 -0
  267. package/build/primer/SVG/icon/feed-merged-16.svg +1 -0
  268. package/build/primer/SVG/icon/feed-person-16.svg +1 -0
  269. package/build/primer/SVG/icon/feed-repo-16.svg +1 -0
  270. package/build/primer/SVG/icon/feed-rocket-16.svg +1 -0
  271. package/build/primer/SVG/icon/feed-star-16.svg +1 -0
  272. package/build/primer/SVG/icon/feed-tag-16.svg +1 -0
  273. package/build/primer/SVG/icon/feed-trophy-16.svg +1 -0
  274. package/build/primer/SVG/icon/file-16.svg +1 -0
  275. package/build/primer/SVG/icon/file-24.svg +1 -0
  276. package/build/primer/SVG/icon/file-badge-16.svg +1 -0
  277. package/build/primer/SVG/icon/file-binary-16.svg +1 -0
  278. package/build/primer/SVG/icon/file-binary-24.svg +1 -0
  279. package/build/primer/SVG/icon/file-code-16.svg +1 -0
  280. package/build/primer/SVG/icon/file-code-24.svg +1 -0
  281. package/build/primer/SVG/icon/file-diff-16.svg +1 -0
  282. package/build/primer/SVG/icon/file-diff-24.svg +1 -0
  283. package/build/primer/SVG/icon/file-directory-16.svg +1 -0
  284. package/build/primer/SVG/icon/file-directory-24.svg +1 -0
  285. package/build/primer/SVG/icon/file-directory-fill-16.svg +1 -0
  286. package/build/primer/SVG/icon/file-directory-fill-24.svg +1 -0
  287. package/build/primer/SVG/icon/file-directory-open-fill-16.svg +1 -0
  288. package/build/primer/SVG/icon/file-media-24.svg +1 -0
  289. package/build/primer/SVG/icon/file-submodule-16.svg +1 -0
  290. package/build/primer/SVG/icon/file-submodule-24.svg +1 -0
  291. package/build/primer/SVG/icon/file-symlink-file-16.svg +1 -0
  292. package/build/primer/SVG/icon/file-symlink-file-24.svg +1 -0
  293. package/build/primer/SVG/icon/file-zip-16.svg +1 -0
  294. package/build/primer/SVG/icon/file-zip-24.svg +1 -0
  295. package/build/primer/SVG/icon/filter-16.svg +1 -0
  296. package/build/primer/SVG/icon/filter-24.svg +1 -0
  297. package/build/primer/SVG/icon/flame-16.svg +1 -0
  298. package/build/primer/SVG/icon/flame-24.svg +1 -0
  299. package/build/primer/SVG/icon/fold-16.svg +1 -0
  300. package/build/primer/SVG/icon/fold-24.svg +1 -0
  301. package/build/primer/SVG/icon/fold-down-16.svg +1 -0
  302. package/build/primer/SVG/icon/fold-down-24.svg +1 -0
  303. package/build/primer/SVG/icon/fold-up-16.svg +1 -0
  304. package/build/primer/SVG/icon/fold-up-24.svg +1 -0
  305. package/build/primer/SVG/icon/gear-16.svg +1 -0
  306. package/build/primer/SVG/icon/gear-24.svg +1 -0
  307. package/build/primer/SVG/icon/gift-16.svg +1 -0
  308. package/build/primer/SVG/icon/gift-24.svg +1 -0
  309. package/build/primer/SVG/icon/git-branch-16.svg +1 -0
  310. package/build/primer/SVG/icon/git-branch-24.svg +1 -0
  311. package/build/primer/SVG/icon/git-commit-16.svg +1 -0
  312. package/build/primer/SVG/icon/git-commit-24.svg +1 -0
  313. package/build/primer/SVG/icon/git-compare-16.svg +1 -0
  314. package/build/primer/SVG/icon/git-compare-24.svg +1 -0
  315. package/build/primer/SVG/icon/git-merge-16.svg +1 -0
  316. package/build/primer/SVG/icon/git-merge-24.svg +1 -0
  317. package/build/primer/SVG/icon/git-pull-request-16.svg +1 -0
  318. package/build/primer/SVG/icon/git-pull-request-24.svg +1 -0
  319. package/build/primer/SVG/icon/git-pull-request-closed-16.svg +1 -0
  320. package/build/primer/SVG/icon/git-pull-request-closed-24.svg +1 -0
  321. package/build/primer/SVG/icon/git-pull-request-draft-16.svg +1 -0
  322. package/build/primer/SVG/icon/git-pull-request-draft-24.svg +1 -0
  323. package/build/primer/SVG/icon/globe-16.svg +1 -0
  324. package/build/primer/SVG/icon/globe-24.svg +1 -0
  325. package/build/primer/SVG/icon/grabber-16.svg +1 -0
  326. package/build/primer/SVG/icon/grabber-24.svg +1 -0
  327. package/build/primer/SVG/icon/graph-16.svg +1 -0
  328. package/build/primer/SVG/icon/graph-24.svg +1 -0
  329. package/build/primer/SVG/icon/hash-16.svg +1 -0
  330. package/build/primer/SVG/icon/hash-24.svg +1 -0
  331. package/build/primer/SVG/icon/heading-16.svg +1 -0
  332. package/build/primer/SVG/icon/heading-24.svg +1 -0
  333. package/build/primer/SVG/icon/heart-16.svg +1 -0
  334. package/build/primer/SVG/icon/heart-24.svg +1 -0
  335. package/build/primer/SVG/icon/heart-fill-16.svg +1 -0
  336. package/build/primer/SVG/icon/heart-fill-24.svg +1 -0
  337. package/build/primer/SVG/icon/history-16.svg +1 -0
  338. package/build/primer/SVG/icon/history-24.svg +1 -0
  339. package/build/primer/SVG/icon/home-16.svg +1 -0
  340. package/build/primer/SVG/icon/home-24.svg +1 -0
  341. package/build/primer/SVG/icon/home-fill-24.svg +1 -0
  342. package/build/primer/SVG/icon/horizontal-rule-16.svg +1 -0
  343. package/build/primer/SVG/icon/horizontal-rule-24.svg +1 -0
  344. package/build/primer/SVG/icon/hourglass-16.svg +1 -0
  345. package/build/primer/SVG/icon/hourglass-24.svg +1 -0
  346. package/build/primer/SVG/icon/hubot-16.svg +1 -0
  347. package/build/primer/SVG/icon/hubot-24.svg +1 -0
  348. package/build/primer/SVG/icon/id-badge-16.svg +1 -0
  349. package/build/primer/SVG/icon/image-16.svg +1 -0
  350. package/build/primer/SVG/icon/image-24.svg +1 -0
  351. package/build/primer/SVG/icon/inbox-16.svg +1 -0
  352. package/build/primer/SVG/icon/inbox-24.svg +1 -0
  353. package/build/primer/SVG/icon/infinity-16.svg +1 -0
  354. package/build/primer/SVG/icon/infinity-24.svg +1 -0
  355. package/build/primer/SVG/icon/info-16.svg +1 -0
  356. package/build/primer/SVG/icon/info-24.svg +1 -0
  357. package/build/primer/SVG/icon/issue-closed-16.svg +1 -0
  358. package/build/primer/SVG/icon/issue-closed-24.svg +1 -0
  359. package/build/primer/SVG/icon/issue-draft-16.svg +1 -0
  360. package/build/primer/SVG/icon/issue-draft-24.svg +1 -0
  361. package/build/primer/SVG/icon/issue-opened-16.svg +1 -0
  362. package/build/primer/SVG/icon/issue-opened-24.svg +1 -0
  363. package/build/primer/SVG/icon/issue-reopened-16.svg +1 -0
  364. package/build/primer/SVG/icon/issue-reopened-24.svg +1 -0
  365. package/build/primer/SVG/icon/italic-16.svg +1 -0
  366. package/build/primer/SVG/icon/italic-24.svg +1 -0
  367. package/build/primer/SVG/icon/iterations-16.svg +1 -0
  368. package/build/primer/SVG/icon/iterations-24.svg +1 -0
  369. package/build/primer/SVG/icon/kebab-horizontal-16.svg +1 -0
  370. package/build/primer/SVG/icon/kebab-horizontal-24.svg +1 -0
  371. package/build/primer/SVG/icon/key-16.svg +1 -0
  372. package/build/primer/SVG/icon/key-24.svg +1 -0
  373. package/build/primer/SVG/icon/key-asterisk-16.svg +1 -0
  374. package/build/primer/SVG/icon/law-16.svg +1 -0
  375. package/build/primer/SVG/icon/law-24.svg +1 -0
  376. package/build/primer/SVG/icon/light-bulb-16.svg +1 -0
  377. package/build/primer/SVG/icon/light-bulb-24.svg +1 -0
  378. package/build/primer/SVG/icon/link-16.svg +1 -0
  379. package/build/primer/SVG/icon/link-24.svg +1 -0
  380. package/build/primer/SVG/icon/link-external-16.svg +1 -0
  381. package/build/primer/SVG/icon/link-external-24.svg +1 -0
  382. package/build/primer/SVG/icon/list-ordered-16.svg +1 -0
  383. package/build/primer/SVG/icon/list-ordered-24.svg +1 -0
  384. package/build/primer/SVG/icon/list-unordered-16.svg +1 -0
  385. package/build/primer/SVG/icon/list-unordered-24.svg +1 -0
  386. package/build/primer/SVG/icon/location-16.svg +1 -0
  387. package/build/primer/SVG/icon/location-24.svg +1 -0
  388. package/build/primer/SVG/icon/lock-16.svg +1 -0
  389. package/build/primer/SVG/icon/lock-24.svg +1 -0
  390. package/build/primer/SVG/icon/log-16.svg +1 -0
  391. package/build/primer/SVG/icon/logo-gist-16.svg +1 -0
  392. package/build/primer/SVG/icon/logo-github-16.svg +1 -0
  393. package/build/primer/SVG/icon/mail-16.svg +1 -0
  394. package/build/primer/SVG/icon/mail-24.svg +1 -0
  395. package/build/primer/SVG/icon/mark-github-16.svg +1 -0
  396. package/build/primer/SVG/icon/markdown-16.svg +1 -0
  397. package/build/primer/SVG/icon/megaphone-16.svg +1 -0
  398. package/build/primer/SVG/icon/megaphone-24.svg +1 -0
  399. package/build/primer/SVG/icon/mention-16.svg +1 -0
  400. package/build/primer/SVG/icon/mention-24.svg +1 -0
  401. package/build/primer/SVG/icon/meter-16.svg +1 -0
  402. package/build/primer/SVG/icon/milestone-16.svg +1 -0
  403. package/build/primer/SVG/icon/milestone-24.svg +1 -0
  404. package/build/primer/SVG/icon/mirror-16.svg +1 -0
  405. package/build/primer/SVG/icon/mirror-24.svg +1 -0
  406. package/build/primer/SVG/icon/moon-16.svg +1 -0
  407. package/build/primer/SVG/icon/moon-24.svg +1 -0
  408. package/build/primer/SVG/icon/mortar-board-16.svg +1 -0
  409. package/build/primer/SVG/icon/mortar-board-24.svg +1 -0
  410. package/build/primer/SVG/icon/multi-select-16.svg +1 -0
  411. package/build/primer/SVG/icon/multi-select-24.svg +1 -0
  412. package/build/primer/SVG/icon/mute-16.svg +1 -0
  413. package/build/primer/SVG/icon/mute-24.svg +1 -0
  414. package/build/primer/SVG/icon/no-entry-16.svg +1 -0
  415. package/build/primer/SVG/icon/no-entry-24.svg +1 -0
  416. package/build/primer/SVG/icon/no-entry-fill-12.svg +1 -0
  417. package/build/primer/SVG/icon/north-star-16.svg +1 -0
  418. package/build/primer/SVG/icon/north-star-24.svg +1 -0
  419. package/build/primer/SVG/icon/note-16.svg +1 -0
  420. package/build/primer/SVG/icon/note-24.svg +1 -0
  421. package/build/primer/SVG/icon/number-16.svg +1 -0
  422. package/build/primer/SVG/icon/number-24.svg +1 -0
  423. package/build/primer/SVG/icon/organization-16.svg +1 -0
  424. package/build/primer/SVG/icon/organization-24.svg +1 -0
  425. package/build/primer/SVG/icon/package-16.svg +1 -0
  426. package/build/primer/SVG/icon/package-24.svg +1 -0
  427. package/build/primer/SVG/icon/package-dependencies-16.svg +1 -0
  428. package/build/primer/SVG/icon/package-dependencies-24.svg +1 -0
  429. package/build/primer/SVG/icon/package-dependents-16.svg +1 -0
  430. package/build/primer/SVG/icon/package-dependents-24.svg +1 -0
  431. package/build/primer/SVG/icon/paintbrush-16.svg +1 -0
  432. package/build/primer/SVG/icon/paper-airplane-16.svg +1 -0
  433. package/build/primer/SVG/icon/paper-airplane-24.svg +1 -0
  434. package/build/primer/SVG/icon/paste-16.svg +1 -0
  435. package/build/primer/SVG/icon/paste-24.svg +1 -0
  436. package/build/primer/SVG/icon/pencil-16.svg +1 -0
  437. package/build/primer/SVG/icon/pencil-24.svg +1 -0
  438. package/build/primer/SVG/icon/people-16.svg +1 -0
  439. package/build/primer/SVG/icon/people-24.svg +1 -0
  440. package/build/primer/SVG/icon/person-16.svg +1 -0
  441. package/build/primer/SVG/icon/person-24.svg +1 -0
  442. package/build/primer/SVG/icon/person-add-16.svg +1 -0
  443. package/build/primer/SVG/icon/person-add-24.svg +1 -0
  444. package/build/primer/SVG/icon/person-fill-16.svg +1 -0
  445. package/build/primer/SVG/icon/person-fill-24.svg +1 -0
  446. package/build/primer/SVG/icon/pin-16.svg +1 -0
  447. package/build/primer/SVG/icon/pin-24.svg +1 -0
  448. package/build/primer/SVG/icon/play-16.svg +1 -0
  449. package/build/primer/SVG/icon/play-24.svg +1 -0
  450. package/build/primer/SVG/icon/plug-16.svg +1 -0
  451. package/build/primer/SVG/icon/plug-24.svg +1 -0
  452. package/build/primer/SVG/icon/plus-16.svg +1 -0
  453. package/build/primer/SVG/icon/plus-24.svg +1 -0
  454. package/build/primer/SVG/icon/plus-circle-16.svg +1 -0
  455. package/build/primer/SVG/icon/plus-circle-24.svg +1 -0
  456. package/build/primer/SVG/icon/project-16.svg +1 -0
  457. package/build/primer/SVG/icon/project-24.svg +1 -0
  458. package/build/primer/SVG/icon/pulse-16.svg +1 -0
  459. package/build/primer/SVG/icon/pulse-24.svg +1 -0
  460. package/build/primer/SVG/icon/question-16.svg +1 -0
  461. package/build/primer/SVG/icon/question-24.svg +1 -0
  462. package/build/primer/SVG/icon/quote-16.svg +1 -0
  463. package/build/primer/SVG/icon/quote-24.svg +1 -0
  464. package/build/primer/SVG/icon/reply-16.svg +1 -0
  465. package/build/primer/SVG/icon/reply-24.svg +1 -0
  466. package/build/primer/SVG/icon/repo-16.svg +1 -0
  467. package/build/primer/SVG/icon/repo-24.svg +1 -0
  468. package/build/primer/SVG/icon/repo-clone-16.svg +1 -0
  469. package/build/primer/SVG/icon/repo-deleted-16.svg +1 -0
  470. package/build/primer/SVG/icon/repo-forked-16.svg +1 -0
  471. package/build/primer/SVG/icon/repo-forked-24.svg +1 -0
  472. package/build/primer/SVG/icon/repo-locked-16.svg +1 -0
  473. package/build/primer/SVG/icon/repo-pull-16.svg +1 -0
  474. package/build/primer/SVG/icon/repo-push-16.svg +1 -0
  475. package/build/primer/SVG/icon/repo-push-24.svg +1 -0
  476. package/build/primer/SVG/icon/repo-template-16.svg +1 -0
  477. package/build/primer/SVG/icon/repo-template-24.svg +1 -0
  478. package/build/primer/SVG/icon/report-16.svg +1 -0
  479. package/build/primer/SVG/icon/report-24.svg +1 -0
  480. package/build/primer/SVG/icon/rocket-16.svg +1 -0
  481. package/build/primer/SVG/icon/rocket-24.svg +1 -0
  482. package/build/primer/SVG/icon/rows-16.svg +1 -0
  483. package/build/primer/SVG/icon/rows-24.svg +1 -0
  484. package/build/primer/SVG/icon/rss-16.svg +1 -0
  485. package/build/primer/SVG/icon/rss-24.svg +1 -0
  486. package/build/primer/SVG/icon/ruby-16.svg +1 -0
  487. package/build/primer/SVG/icon/ruby-24.svg +1 -0
  488. package/build/primer/SVG/icon/screen-full-16.svg +1 -0
  489. package/build/primer/SVG/icon/screen-full-24.svg +1 -0
  490. package/build/primer/SVG/icon/screen-normal-16.svg +1 -0
  491. package/build/primer/SVG/icon/screen-normal-24.svg +1 -0
  492. package/build/primer/SVG/icon/search-16.svg +1 -0
  493. package/build/primer/SVG/icon/search-24.svg +1 -0
  494. package/build/primer/SVG/icon/server-16.svg +1 -0
  495. package/build/primer/SVG/icon/server-24.svg +1 -0
  496. package/build/primer/SVG/icon/share-16.svg +1 -0
  497. package/build/primer/SVG/icon/share-24.svg +1 -0
  498. package/build/primer/SVG/icon/share-android-16.svg +1 -0
  499. package/build/primer/SVG/icon/share-android-24.svg +1 -0
  500. package/build/primer/SVG/icon/shield-16.svg +1 -0
  501. package/build/primer/SVG/icon/shield-24.svg +1 -0
  502. package/build/primer/SVG/icon/shield-check-16.svg +1 -0
  503. package/build/primer/SVG/icon/shield-check-24.svg +1 -0
  504. package/build/primer/SVG/icon/shield-lock-16.svg +1 -0
  505. package/build/primer/SVG/icon/shield-lock-24.svg +1 -0
  506. package/build/primer/SVG/icon/shield-x-16.svg +1 -0
  507. package/build/primer/SVG/icon/shield-x-24.svg +1 -0
  508. package/build/primer/SVG/icon/sidebar-collapse-16.svg +1 -0
  509. package/build/primer/SVG/icon/sidebar-collapse-24.svg +1 -0
  510. package/build/primer/SVG/icon/sidebar-expand-16.svg +1 -0
  511. package/build/primer/SVG/icon/sidebar-expand-24.svg +1 -0
  512. package/build/primer/SVG/icon/sign-in-16.svg +1 -0
  513. package/build/primer/SVG/icon/sign-in-24.svg +1 -0
  514. package/build/primer/SVG/icon/sign-out-16.svg +1 -0
  515. package/build/primer/SVG/icon/sign-out-24.svg +1 -0
  516. package/build/primer/SVG/icon/single-select-16.svg +1 -0
  517. package/build/primer/SVG/icon/single-select-24.svg +1 -0
  518. package/build/primer/SVG/icon/skip-16.svg +1 -0
  519. package/build/primer/SVG/icon/skip-24.svg +1 -0
  520. package/build/primer/SVG/icon/smiley-16.svg +1 -0
  521. package/build/primer/SVG/icon/smiley-24.svg +1 -0
  522. package/build/primer/SVG/icon/sort-asc-16.svg +1 -0
  523. package/build/primer/SVG/icon/sort-asc-24.svg +1 -0
  524. package/build/primer/SVG/icon/sort-desc-16.svg +1 -0
  525. package/build/primer/SVG/icon/sort-desc-24.svg +1 -0
  526. package/build/primer/SVG/icon/square-16.svg +1 -0
  527. package/build/primer/SVG/icon/square-24.svg +1 -0
  528. package/build/primer/SVG/icon/square-fill-16.svg +1 -0
  529. package/build/primer/SVG/icon/square-fill-24.svg +1 -0
  530. package/build/primer/SVG/icon/squirrel-16.svg +1 -0
  531. package/build/primer/SVG/icon/squirrel-24.svg +1 -0
  532. package/build/primer/SVG/icon/stack-16.svg +1 -0
  533. package/build/primer/SVG/icon/stack-24.svg +1 -0
  534. package/build/primer/SVG/icon/star-16.svg +1 -0
  535. package/build/primer/SVG/icon/star-24.svg +1 -0
  536. package/build/primer/SVG/icon/star-fill-16.svg +1 -0
  537. package/build/primer/SVG/icon/star-fill-24.svg +1 -0
  538. package/build/primer/SVG/icon/stop-16.svg +1 -0
  539. package/build/primer/SVG/icon/stop-24.svg +1 -0
  540. package/build/primer/SVG/icon/stopwatch-16.svg +1 -0
  541. package/build/primer/SVG/icon/stopwatch-24.svg +1 -0
  542. package/build/primer/SVG/icon/strikethrough-16.svg +1 -0
  543. package/build/primer/SVG/icon/strikethrough-24.svg +1 -0
  544. package/build/primer/SVG/icon/sun-16.svg +1 -0
  545. package/build/primer/SVG/icon/sun-24.svg +1 -0
  546. package/build/primer/SVG/icon/sync-16.svg +1 -0
  547. package/build/primer/SVG/icon/sync-24.svg +1 -0
  548. package/build/primer/SVG/icon/tab-24.svg +1 -0
  549. package/build/primer/SVG/icon/tab-external-16.svg +1 -0
  550. package/build/primer/SVG/icon/table-16.svg +1 -0
  551. package/build/primer/SVG/icon/table-24.svg +1 -0
  552. package/build/primer/SVG/icon/tag-16.svg +1 -0
  553. package/build/primer/SVG/icon/tag-24.svg +1 -0
  554. package/build/primer/SVG/icon/tasklist-16.svg +1 -0
  555. package/build/primer/SVG/icon/tasklist-24.svg +1 -0
  556. package/build/primer/SVG/icon/telescope-16.svg +1 -0
  557. package/build/primer/SVG/icon/telescope-24.svg +1 -0
  558. package/build/primer/SVG/icon/telescope-fill-16.svg +1 -0
  559. package/build/primer/SVG/icon/telescope-fill-24.svg +1 -0
  560. package/build/primer/SVG/icon/terminal-16.svg +1 -0
  561. package/build/primer/SVG/icon/terminal-24.svg +1 -0
  562. package/build/primer/SVG/icon/three-bars-16.svg +1 -0
  563. package/build/primer/SVG/icon/thumbsdown-16.svg +1 -0
  564. package/build/primer/SVG/icon/thumbsdown-24.svg +1 -0
  565. package/build/primer/SVG/icon/thumbsup-16.svg +1 -0
  566. package/build/primer/SVG/icon/thumbsup-24.svg +1 -0
  567. package/build/primer/SVG/icon/tools-16.svg +1 -0
  568. package/build/primer/SVG/icon/tools-24.svg +1 -0
  569. package/build/primer/SVG/icon/trash-16.svg +1 -0
  570. package/build/primer/SVG/icon/trash-24.svg +1 -0
  571. package/build/primer/SVG/icon/triangle-down-16.svg +1 -0
  572. package/build/primer/SVG/icon/triangle-down-24.svg +1 -0
  573. package/build/primer/SVG/icon/triangle-left-16.svg +1 -0
  574. package/build/primer/SVG/icon/triangle-left-24.svg +1 -0
  575. package/build/primer/SVG/icon/triangle-right-16.svg +1 -0
  576. package/build/primer/SVG/icon/triangle-right-24.svg +1 -0
  577. package/build/primer/SVG/icon/triangle-up-16.svg +1 -0
  578. package/build/primer/SVG/icon/triangle-up-24.svg +1 -0
  579. package/build/primer/SVG/icon/trophy-16.svg +1 -0
  580. package/build/primer/SVG/icon/trophy-24.svg +1 -0
  581. package/build/primer/SVG/icon/typography-16.svg +1 -0
  582. package/build/primer/SVG/icon/typography-24.svg +1 -0
  583. package/build/primer/SVG/icon/unfold-16.svg +1 -0
  584. package/build/primer/SVG/icon/unfold-24.svg +1 -0
  585. package/build/primer/SVG/icon/unlock-16.svg +1 -0
  586. package/build/primer/SVG/icon/unlock-24.svg +1 -0
  587. package/build/primer/SVG/icon/unmute-16.svg +1 -0
  588. package/build/primer/SVG/icon/unmute-24.svg +1 -0
  589. package/build/primer/SVG/icon/unverified-16.svg +1 -0
  590. package/build/primer/SVG/icon/unverified-24.svg +1 -0
  591. package/build/primer/SVG/icon/upload-16.svg +1 -0
  592. package/build/primer/SVG/icon/upload-24.svg +1 -0
  593. package/build/primer/SVG/icon/verified-16.svg +1 -0
  594. package/build/primer/SVG/icon/verified-24.svg +1 -0
  595. package/build/primer/SVG/icon/versions-16.svg +1 -0
  596. package/build/primer/SVG/icon/versions-24.svg +1 -0
  597. package/build/primer/SVG/icon/video-16.svg +1 -0
  598. package/build/primer/SVG/icon/video-24.svg +1 -0
  599. package/build/primer/SVG/icon/webhook-16.svg +1 -0
  600. package/build/primer/SVG/icon/workflow-16.svg +1 -0
  601. package/build/primer/SVG/icon/workflow-24.svg +1 -0
  602. package/build/primer/SVG/icon/x-16.svg +1 -0
  603. package/build/primer/SVG/icon/x-24.svg +1 -0
  604. package/build/primer/SVG/icon/x-circle-16.svg +1 -0
  605. package/build/primer/SVG/icon/x-circle-24.svg +1 -0
  606. package/build/primer/SVG/icon/x-circle-fill-12.svg +1 -0
  607. package/build/primer/SVG/icon/x-circle-fill-16.svg +1 -0
  608. package/build/primer/SVG/icon/x-circle-fill-24.svg +1 -0
  609. package/build/primer/SVG/icon/zap-16.svg +1 -0
  610. package/build/primer/SVG/icon/zap-24.svg +1 -0
  611. package/build/primer/Select/Select.js +78 -0
  612. package/build/primer/Select/Select.prop.js +32 -0
  613. package/build/primer/Select/Select.scss +49 -0
  614. package/build/primer/Select/index.js +21 -0
  615. package/build/primer/SelectMenu/SelectMenu.js +114 -0
  616. package/build/primer/SelectMenu/SelectMenu.prop.js +31 -0
  617. package/build/primer/SelectMenu/SelectMenu.scss +467 -0
  618. package/build/primer/SelectMenu/index.js +13 -0
  619. package/build/primer/Subhead/Subhead.js +34 -0
  620. package/build/primer/Subhead/Subhead.prop.js +20 -0
  621. package/build/primer/Subhead/Subhead.scss +50 -0
  622. package/build/primer/Subhead/index.js +13 -0
  623. package/build/primer/Toast/Toast.js +64 -0
  624. package/build/primer/Toast/Toast.prop.js +31 -0
  625. package/build/primer/Toast/Toast.scss +130 -0
  626. package/build/primer/Toast/index.js +21 -0
  627. package/build/primer/index.js +91 -0
  628. package/build/primer/index.scss +1 -1
  629. package/package.json +5 -4
@@ -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
+ }
@@ -0,0 +1,218 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<TabNav /> Render must match inactive() 1`] = `
4
+ <div>
5
+ <div
6
+ class="tabnav tabnav-inactive"
7
+ >
8
+ <nav
9
+ aria-label="Foo bar"
10
+ class="tabnav-tabs"
11
+ >
12
+ <a
13
+ aria-current="page"
14
+ class="tabnav-tab"
15
+ href="#url"
16
+ >
17
+ Foo tab
18
+ </a>
19
+ <a
20
+ class="tabnav-tab"
21
+ href="#url"
22
+ >
23
+ Bar tab
24
+ </a>
25
+ </nav>
26
+ </div>
27
+ </div>
28
+ `;
29
+
30
+ exports[`<TabNav /> Render must match regular() 1`] = `
31
+ <div>
32
+ <div
33
+ class="tabnav"
34
+ >
35
+ <nav
36
+ aria-label="Foo bar"
37
+ class="tabnav-tabs"
38
+ >
39
+ <a
40
+ aria-current="page"
41
+ class="tabnav-tab"
42
+ href="#url"
43
+ >
44
+ Foo tab
45
+ </a>
46
+ <a
47
+ class="tabnav-tab"
48
+ href="#url"
49
+ >
50
+ Bar tab
51
+ </a>
52
+ </nav>
53
+ </div>
54
+ </div>
55
+ `;
56
+
57
+ exports[`<TabNav /> Render must match withButtonActions() 1`] = `
58
+ <div>
59
+ <div
60
+ class="tabnav"
61
+ >
62
+ <a
63
+ class="btn btn-sm float-right"
64
+ href="#url"
65
+ role="button"
66
+ >
67
+ Button
68
+ </a>
69
+ <nav
70
+ aria-label="Foo bar"
71
+ class="tabnav-tabs"
72
+ >
73
+ <a
74
+ aria-current="page"
75
+ class="tabnav-tab"
76
+ href="#url"
77
+ >
78
+ Foo tab
79
+ </a>
80
+ <a
81
+ class="tabnav-tab"
82
+ href="#url"
83
+ >
84
+ Bar tab
85
+ </a>
86
+ </nav>
87
+ </div>
88
+ </div>
89
+ `;
90
+
91
+ exports[`<TabNav /> Render must match withLinkActions() 1`] = `
92
+ <div>
93
+ <div
94
+ class="tabnav"
95
+ >
96
+ <div
97
+ class="float-right"
98
+ >
99
+ <a
100
+ class="tabnav-extra"
101
+ href="#url"
102
+ >
103
+ Tabnav extra link
104
+ </a>
105
+ <a
106
+ class="tabnav-extra"
107
+ href="#url"
108
+ >
109
+ Tabnav extra link
110
+ </a>
111
+ </div>
112
+ <nav
113
+ aria-label="Foo bar"
114
+ class="tabnav-tabs"
115
+ >
116
+ <a
117
+ aria-current="page"
118
+ class="tabnav-tab"
119
+ href="#url"
120
+ >
121
+ Foo tab
122
+ </a>
123
+ <a
124
+ class="tabnav-tab"
125
+ href="#url"
126
+ >
127
+ Bar tab
128
+ </a>
129
+ </nav>
130
+ </div>
131
+ </div>
132
+ `;
133
+
134
+ exports[`<TabNav /> Render must match withMixedEnabledVisibleItems() 1`] = `
135
+ <div>
136
+ <div
137
+ class="tabnav"
138
+ >
139
+ <nav
140
+ aria-label="Foo bar"
141
+ class="tabnav-tabs"
142
+ >
143
+ <a
144
+ aria-current="page"
145
+ class="tabnav-tab"
146
+ href="#url"
147
+ >
148
+ Foo tab
149
+ </a>
150
+ <a
151
+ class="tabnav-tab"
152
+ href="#url"
153
+ >
154
+ Bar tab
155
+ </a>
156
+ </nav>
157
+ </div>
158
+ </div>
159
+ `;
160
+
161
+ exports[`<TabNav /> Render must match withNavigation() 1`] = `
162
+ <div>
163
+ <div
164
+ class="tabnav"
165
+ >
166
+ <nav
167
+ aria-label="Foo bar"
168
+ class="tabnav-tabs"
169
+ >
170
+ <a
171
+ aria-current="page"
172
+ class="tabnav-tab"
173
+ href="#url"
174
+ >
175
+ Foo tab
176
+ </a>
177
+ <a
178
+ class="tabnav-tab"
179
+ href="#url"
180
+ >
181
+ Bar tab
182
+ </a>
183
+ </nav>
184
+ </div>
185
+ </div>
186
+ `;
187
+
188
+ exports[`<TabNav /> Render must match withTextActions() 1`] = `
189
+ <div>
190
+ <div
191
+ class="tabnav"
192
+ >
193
+ <div
194
+ class="tabnav-extra float-right"
195
+ >
196
+ Tabnav widget text here.
197
+ </div>
198
+ <nav
199
+ aria-label="Foo bar"
200
+ class="tabnav-tabs"
201
+ >
202
+ <a
203
+ aria-current="page"
204
+ class="tabnav-tab"
205
+ href="#url"
206
+ >
207
+ Foo tab
208
+ </a>
209
+ <a
210
+ class="tabnav-tab"
211
+ href="#url"
212
+ >
213
+ Bar tab
214
+ </a>
215
+ </nav>
216
+ </div>
217
+ </div>
218
+ `;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TabNav", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _TabNav.TabNav;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "tabNavState", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _TabNav2.tabNavState;
16
+ }
17
+ });
18
+
19
+ var _TabNav = require("./TabNav");
20
+
21
+ var _TabNav2 = require("./TabNav.prop");
@@ -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.UnderlineNav = UnderlineNav;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = require("react");
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ var _uuid = require("uuid");
19
+
20
+ var _array = require("@papillonbits/library/array");
21
+
22
+ var _hooks = require("@papillonbits/library/hooks");
23
+
24
+ var _UnderlineNav = require("./UnderlineNav.prop");
25
+
26
+ var _UnderlineNav2 = _interopRequireDefault(require("./UnderlineNav.scss"));
27
+
28
+ var _container = _interopRequireDefault(require("../../Layout/container.scss"));
29
+
30
+ var _Icon = require("../../Icon");
31
+
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+
34
+ 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; }
35
+
36
+ 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; }
37
+
38
+ function UnderlineNav(_ref) {
39
+ var _cx;
40
+
41
+ var className = _ref.className,
42
+ ariaAttr = _ref.ariaAttr,
43
+ items = _ref.items,
44
+ itemType = _ref.itemType,
45
+ actions = _ref.actions,
46
+ align = _ref.align,
47
+ fullContainer = _ref.fullContainer,
48
+ _onClick = _ref.onClick;
49
+
50
+ var _useState = (0, _hooks.useState)((0, _array.getIndexItems)(items)),
51
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
+ indexItems = _useState2[0],
53
+ setIndexItems = _useState2[1];
54
+
55
+ var label = ariaAttr.label,
56
+ selected = ariaAttr.selected,
57
+ current = ariaAttr.current;
58
+
59
+ function renderActions() {
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
61
+ className: _UnderlineNav2["default"]['UnderlineNav-actions'],
62
+ children: actions
63
+ });
64
+ }
65
+
66
+ function renderBody() {
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
68
+ children: [align === _UnderlineNav.underlineNavAlignmentType.right && actions && renderActions(), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
69
+ className: _UnderlineNav2["default"]['UnderlineNav-body'],
70
+ role: "tablist",
71
+ children: indexItems.map(function (indexItem) {
72
+ var href = indexItem.href,
73
+ icon = indexItem.icon,
74
+ text = indexItem.text,
75
+ html = indexItem.html,
76
+ isSelected = indexItem.isSelected;
77
+ var anchorOtherProps = isSelected ? _objectSpread({}, {
78
+ 'aria-selected': selected
79
+ }) : null;
80
+ var buttonOtherProps = isSelected ? _objectSpread({}, {
81
+ 'aria-current': current
82
+ }) : null;
83
+
84
+ switch (itemType) {
85
+ case 'button':
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", _objectSpread(_objectSpread({
87
+ onClick: function onClick(e) {
88
+ e.preventDefault();
89
+ var newIndexItems = (0, _array.getIndexItemsWithSelected)(indexItems, indexItem);
90
+ setIndexItems(newIndexItems);
91
+
92
+ _onClick(newIndexItems);
93
+ },
94
+ className: _UnderlineNav2["default"]['UnderlineNav-item'],
95
+ role: "tab",
96
+ type: "button",
97
+ href: href
98
+ }, anchorOtherProps), {}, {
99
+ children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
100
+ className: _UnderlineNav2["default"]['UnderlineNav-octicon'],
101
+ icon: icon,
102
+ size: _Icon.iconSize.small
103
+ }), html || null, text]
104
+ }), (0, _uuid.v1)());
105
+
106
+ case 'a':
107
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("a", _objectSpread(_objectSpread({
108
+ onClick: function onClick(e) {
109
+ e.preventDefault();
110
+ var newIndexItems = (0, _array.getIndexItemsWithSelected)(indexItems, indexItem);
111
+ setIndexItems(newIndexItems);
112
+
113
+ _onClick(newIndexItems);
114
+ },
115
+ className: _UnderlineNav2["default"]['UnderlineNav-item'],
116
+ href: href
117
+ }, buttonOtherProps), {}, {
118
+ children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
119
+ className: _UnderlineNav2["default"]['UnderlineNav-octicon'],
120
+ icon: icon,
121
+ size: _Icon.iconSize.small
122
+ }), html || null, text]
123
+ }), (0, _uuid.v1)());
124
+
125
+ default:
126
+ return null;
127
+ }
128
+ })
129
+ }), align === _UnderlineNav.underlineNavAlignmentType.left && actions && renderActions()]
130
+ });
131
+ }
132
+
133
+ function renderBodyFullContainer() {
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
135
+ className: (0, _classnames["default"])(_container["default"]['container-lg'], _UnderlineNav2["default"]['UnderlineNav-container']),
136
+ children: renderBody()
137
+ });
138
+ }
139
+
140
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("nav", {
141
+ className: (0, _classnames["default"])(className, _UnderlineNav2["default"].UnderlineNav, (_cx = {}, (0, _defineProperty2["default"])(_cx, _UnderlineNav2["default"]['UnderlineNav--right'], align === _UnderlineNav.underlineNavAlignmentType.right), (0, _defineProperty2["default"])(_cx, _UnderlineNav2["default"]['UnderlineNav--full'], fullContainer === true), _cx)),
142
+ "aria-label": label,
143
+ children: [fullContainer === false && renderBody(), fullContainer === true && renderBodyFullContainer()]
144
+ });
145
+ }
146
+
147
+ UnderlineNav.propTypes = _UnderlineNav.propTypes;
148
+ UnderlineNav.defaultProps = _UnderlineNav.defaultProps;
@@ -0,0 +1,65 @@
1
+ # UnderlineNav
2
+
3
+ > Use UnderlineNav to style navigation with a minimal underlined selected state, typically used for navigation placed at the top of the page. This component comes with variations to accommodate icons, containers and other content.
4
+
5
+ # Variants
6
+
7
+ > - Default
8
+ > - WithActions, RightAligned, RightAlignedWithActions
9
+ > - WithIcons, FullContainer
10
+
11
+ ## Default
12
+
13
+ ```jsx
14
+ <UnderlineNav ariaAttr={ariaAttr} items={buttonItems} itemType={underlineNavItemType.button} onClick={action('onClick')} />
15
+ ```
16
+
17
+ ## WithActions
18
+
19
+ ```jsx
20
+ <UnderlineNav ariaAttr={ariaAttr} items={anchorItems} itemType={underlineNavItemType.a} actions={actions} onClick={action('onClick')} />
21
+ ```
22
+
23
+ ## RightAligned
24
+
25
+ ```jsx
26
+ <UnderlineNav
27
+ ariaAttr={ariaAttr}
28
+ items={anchorItems}
29
+ itemType={underlineNavItemType.a}
30
+ align={underlineNavAlignmentType.right}
31
+ onClick={action('onClick')}
32
+ />
33
+ ```
34
+
35
+ ## RightAlignedWithActions
36
+
37
+ ```jsx
38
+ <UnderlineNav
39
+ ariaAttr={ariaAttr}
40
+ items={anchorItems}
41
+ itemType={underlineNavItemType.a}
42
+ align={underlineNavAlignmentType.right}
43
+ actions={actions}
44
+ onClick={action('onClick')}
45
+ />
46
+ ```
47
+
48
+ ## WithIcons
49
+
50
+ ```jsx
51
+ <UnderlineNav ariaAttr={ariaAttr} items={iconItems} itemType={underlineNavItemType.a} onClick={action('onClick')} />
52
+ ```
53
+
54
+ ## FullContainer
55
+
56
+ ```jsx
57
+ <UnderlineNav
58
+ ariaAttr={ariaAttr}
59
+ items={fullContainerItems}
60
+ itemType={underlineNavItemType.a}
61
+ actions={actions}
62
+ fullContainer
63
+ onClick={action('onClick')}
64
+ />
65
+ ```
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.underlineNavItemType = exports.underlineNavAlignmentType = exports.propTypes = exports.defaultProps = void 0;
7
+
8
+ var _propTypes = require("prop-types");
9
+
10
+ var underlineNavItemType = {
11
+ a: 'a',
12
+ button: 'button'
13
+ };
14
+ exports.underlineNavItemType = underlineNavItemType;
15
+ var underlineNavAlignmentType = {
16
+ right: 'right',
17
+ left: 'left'
18
+ };
19
+ exports.underlineNavAlignmentType = underlineNavAlignmentType;
20
+ var propTypes = {
21
+ className: _propTypes.string,
22
+ ariaAttr: (0, _propTypes.shape)({
23
+ label: _propTypes.string,
24
+ selected: _propTypes.string,
25
+ current: _propTypes.string
26
+ }).isRequired,
27
+ items: (0, _propTypes.arrayOf)((0, _propTypes.shape)({
28
+ href: _propTypes.string,
29
+ icon: _propTypes.string,
30
+ text: _propTypes.string,
31
+ html: _propTypes.node,
32
+ isSelected: _propTypes.bool
33
+ })).isRequired,
34
+ itemType: (0, _propTypes.oneOf)(Object.keys(underlineNavItemType)).isRequired,
35
+ actions: (0, _propTypes.arrayOf)(_propTypes.node),
36
+ align: (0, _propTypes.oneOf)(Object.keys(underlineNavAlignmentType)).isRequired,
37
+ fullContainer: _propTypes.bool,
38
+ onClick: _propTypes.func.isRequired
39
+ };
40
+ exports.propTypes = propTypes;
41
+ var defaultProps = {
42
+ className: null,
43
+ actions: null,
44
+ align: 'left',
45
+ fullContainer: false
46
+ };
47
+ exports.defaultProps = defaultProps;
@@ -0,0 +1,92 @@
1
+ @import '../../index.scss';
2
+ @import '../../../index.scss';
3
+
4
+ // stylelint-disable no-descending-specificity
5
+
6
+ .UnderlineNav {
7
+ display: flex;
8
+ overflow-x: auto;
9
+ overflow-y: hidden;
10
+ // stylelint-disable-next-line primer/box-shadow
11
+ box-shadow: inset 0 -1px 0 var(--color-border-muted);
12
+ justify-content: space-between;
13
+ }
14
+
15
+ .UnderlineNav-body {
16
+ display: flex;
17
+ }
18
+
19
+ .UnderlineNav-item {
20
+ padding: $spacer-2 $spacer-3;
21
+ font-size: $body-font-size;
22
+ // stylelint-disable-next-line primer/typography
23
+ line-height: 30px;
24
+ color: var(--color-fg-default);
25
+ text-align: center;
26
+ white-space: nowrap;
27
+ background-color: transparent;
28
+ border: 0;
29
+ // stylelint-disable-next-line primer/borders
30
+ border-bottom: 2px $border-style transparent;
31
+
32
+ &:hover,
33
+ &:focus {
34
+ color: var(--color-fg-default);
35
+ text-decoration: none;
36
+ border-bottom-color: var(--color-neutral-muted);
37
+ outline: 1px dotted transparent; // Support Firefox custom colors
38
+ outline-offset: -1px;
39
+ transition: border-bottom-color 0.12s ease-out;
40
+ }
41
+
42
+ &.selected,
43
+ &[role='tab'][aria-selected='true'],
44
+ &[aria-current]:not([aria-current='false']) {
45
+ font-weight: $font-weight-bold;
46
+ color: var(--color-fg-default);
47
+ border-bottom-color: var(--color-primer-border-active);
48
+ outline: 1px dotted transparent; // Support Firefox custom colors
49
+ outline-offset: -1px;
50
+
51
+ .UnderlineNav-octicon {
52
+ color: var(--color-fg-muted);
53
+ }
54
+ }
55
+ }
56
+
57
+ .UnderlineNav--right {
58
+ justify-content: flex-end;
59
+
60
+ .UnderlineNav-actions {
61
+ flex: 1 1 auto;
62
+ }
63
+ }
64
+
65
+ .UnderlineNav-actions {
66
+ align-self: center;
67
+ }
68
+
69
+ .UnderlineNav--full {
70
+ display: block;
71
+ }
72
+
73
+ .UnderlineNav-octicon {
74
+ margin-right: $spacer-1;
75
+ color: var(--color-fg-subtle);
76
+ }
77
+
78
+ .UnderlineNav .Counter {
79
+ margin-left: $spacer-1;
80
+ color: var(--color-fg-default);
81
+ background-color: var(--color-neutral-muted);
82
+
83
+ &--primary {
84
+ color: var(--color-fg-on-emphasis);
85
+ background-color: var(--color-neutral-emphasis);
86
+ }
87
+ }
88
+
89
+ .UnderlineNav-container {
90
+ display: flex;
91
+ justify-content: space-between;
92
+ }