@primer/components 0.0.0-20211030175556 → 0.0.0-20211030182910

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 (272) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/dist/browser.esm.js +186 -183
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +190 -187
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Item.js +3 -3
  7. package/lib/ActionList/index.js +23 -12
  8. package/lib/ActionList2/Item.js +3 -1
  9. package/lib/ActionList2/List.js +1 -2
  10. package/lib/ActionList2/Selection.js +3 -1
  11. package/lib/ActionList2/index.js +41 -23
  12. package/lib/AnchoredOverlay/index.js +12 -4
  13. package/lib/Autocomplete/Autocomplete.d.ts +1 -0
  14. package/lib/Autocomplete/AutocompleteInput.d.ts +1 -0
  15. package/lib/Autocomplete/index.js +14 -7
  16. package/lib/Avatar.d.ts +1 -2
  17. package/lib/Avatar.js +1 -1
  18. package/lib/BranchName.d.ts +1 -2
  19. package/lib/BranchName.js +1 -1
  20. package/lib/Button/Button.d.ts +1 -0
  21. package/lib/Button/ButtonClose.d.ts +2 -1
  22. package/lib/Button/ButtonDanger.d.ts +1 -0
  23. package/lib/Button/ButtonInvisible.d.ts +1 -0
  24. package/lib/Button/ButtonOutline.d.ts +1 -0
  25. package/lib/Button/ButtonPrimary.d.ts +1 -0
  26. package/lib/Button/index.js +70 -21
  27. package/lib/Checkbox.d.ts +29 -0
  28. package/lib/Checkbox.js +64 -0
  29. package/lib/CircleOcticon.d.ts +1 -0
  30. package/lib/Details.d.ts +1 -2
  31. package/lib/Details.js +1 -3
  32. package/lib/Dialog.d.ts +3 -2
  33. package/lib/Dropdown.d.ts +6 -66
  34. package/lib/DropdownMenu/DropdownButton.d.ts +2 -1
  35. package/lib/DropdownMenu/index.js +20 -6
  36. package/lib/DropdownStyles.js +26 -18
  37. package/lib/FilterList.d.ts +1 -0
  38. package/lib/FilteredActionList/index.js +12 -4
  39. package/lib/Heading.d.ts +1 -2
  40. package/lib/Heading.js +1 -6
  41. package/lib/NewButton/index.js +12 -5
  42. package/lib/NewButton/types.js +1 -2
  43. package/lib/Overlay.d.ts +5 -3
  44. package/lib/Pagination/index.js +12 -6
  45. package/lib/Portal/index.js +16 -5
  46. package/lib/Position.d.ts +4 -4
  47. package/lib/ProgressBar.d.ts +16 -11
  48. package/lib/ProgressBar.js +6 -10
  49. package/lib/SelectMenu/SelectMenu.d.ts +10 -4
  50. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  51. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  52. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  53. package/lib/SelectMenu/index.js +14 -7
  54. package/lib/SelectPanel/index.js +12 -4
  55. package/lib/Spinner.d.ts +1 -2
  56. package/lib/Spinner.js +1 -3
  57. package/lib/TextInputWithTokens.d.ts +1 -0
  58. package/lib/Token/AvatarToken.d.ts +1 -1
  59. package/lib/Token/IssueLabelToken.d.ts +1 -1
  60. package/lib/Token/Token.d.ts +1 -1
  61. package/lib/Token/index.js +30 -11
  62. package/lib/behaviors/anchoredPosition.js +234 -205
  63. package/lib/behaviors/focusTrap.js +157 -121
  64. package/lib/behaviors/focusZone.js +509 -434
  65. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  66. package/lib/constants.js +43 -39
  67. package/lib/drafts.js +30 -20
  68. package/lib/hooks/index.js +60 -16
  69. package/lib/hooks/useAnchoredPosition.js +40 -32
  70. package/lib/hooks/useCombinedRefs.js +36 -32
  71. package/lib/hooks/useDialog.js +96 -72
  72. package/lib/hooks/useFocusTrap.js +60 -43
  73. package/lib/hooks/useFocusZone.js +50 -54
  74. package/lib/hooks/useOnEscapePress.js +36 -25
  75. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  76. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  77. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  78. package/lib/hooks/useRenderForcingRef.js +17 -13
  79. package/lib/hooks/useResizeObserver.js +18 -15
  80. package/lib/hooks/useSafeTimeout.js +30 -22
  81. package/lib/hooks/useScrollFlash.js +23 -16
  82. package/lib/index.d.ts +2 -0
  83. package/lib/index.js +652 -163
  84. package/lib/polyfills/eventListenerSignal.js +45 -37
  85. package/lib/sx.js +22 -10
  86. package/lib/theme-preval.js +3169 -64
  87. package/lib/theme.js +12 -3
  88. package/lib/utils/iterateFocusableElements.js +85 -63
  89. package/lib/utils/testing.d.ts +2 -1
  90. package/lib/utils/testing.js +29 -0
  91. package/lib/utils/theme.js +47 -33
  92. package/lib/utils/types/AriaRole.js +1 -2
  93. package/lib/utils/types/ComponentProps.js +1 -2
  94. package/lib/utils/types/Flatten.js +1 -2
  95. package/lib/utils/types/KeyPaths.js +1 -2
  96. package/lib/utils/types/MandateProps.js +1 -16
  97. package/lib/utils/types/Merge.js +1 -2
  98. package/lib/utils/types/index.js +69 -16
  99. package/lib/utils/uniqueId.js +8 -5
  100. package/lib/utils/use-force-update.js +14 -8
  101. package/lib/utils/useIsomorphicLayoutEffect.js +11 -8
  102. package/lib/utils/userAgent.js +12 -8
  103. package/lib-esm/ActionList/Item.js +3 -3
  104. package/lib-esm/ActionList2/Item.js +3 -1
  105. package/lib-esm/ActionList2/List.js +1 -2
  106. package/lib-esm/ActionList2/Selection.js +3 -1
  107. package/lib-esm/Autocomplete/Autocomplete.d.ts +1 -0
  108. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +1 -0
  109. package/lib-esm/Avatar.d.ts +1 -2
  110. package/lib-esm/Avatar.js +2 -2
  111. package/lib-esm/BranchName.d.ts +1 -2
  112. package/lib-esm/BranchName.js +2 -2
  113. package/lib-esm/Button/Button.d.ts +1 -0
  114. package/lib-esm/Button/ButtonClose.d.ts +2 -1
  115. package/lib-esm/Button/ButtonDanger.d.ts +1 -0
  116. package/lib-esm/Button/ButtonInvisible.d.ts +1 -0
  117. package/lib-esm/Button/ButtonOutline.d.ts +1 -0
  118. package/lib-esm/Button/ButtonPrimary.d.ts +1 -0
  119. package/lib-esm/Checkbox.d.ts +29 -0
  120. package/lib-esm/Checkbox.js +44 -0
  121. package/lib-esm/CircleOcticon.d.ts +1 -0
  122. package/lib-esm/Details.d.ts +1 -2
  123. package/lib-esm/Details.js +1 -2
  124. package/lib-esm/Dialog.d.ts +3 -2
  125. package/lib-esm/Dropdown.d.ts +6 -66
  126. package/lib-esm/DropdownMenu/DropdownButton.d.ts +2 -1
  127. package/lib-esm/FilterList.d.ts +1 -0
  128. package/lib-esm/Heading.d.ts +1 -2
  129. package/lib-esm/Heading.js +2 -6
  130. package/lib-esm/Overlay.d.ts +5 -3
  131. package/lib-esm/Position.d.ts +4 -4
  132. package/lib-esm/ProgressBar.d.ts +16 -11
  133. package/lib-esm/ProgressBar.js +7 -11
  134. package/lib-esm/SelectMenu/SelectMenu.d.ts +10 -4
  135. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  136. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  137. package/lib-esm/Spinner.d.ts +1 -2
  138. package/lib-esm/Spinner.js +1 -2
  139. package/lib-esm/TextInputWithTokens.d.ts +1 -0
  140. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  141. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  142. package/lib-esm/Token/Token.d.ts +1 -1
  143. package/lib-esm/index.d.ts +2 -0
  144. package/lib-esm/index.js +1 -0
  145. package/lib-esm/theme-preval.js +446 -0
  146. package/lib-esm/utils/testing.d.ts +2 -1
  147. package/lib-esm/utils/testing.js +24 -0
  148. package/package.json +4 -5
  149. package/lib/ActionList/Divider.jsx +0 -29
  150. package/lib/ActionList/Group.jsx +0 -23
  151. package/lib/ActionList/Header.jsx +0 -66
  152. package/lib/ActionList/Item.jsx +0 -288
  153. package/lib/ActionList/List.jsx +0 -138
  154. package/lib/ActionList2/Description.jsx +0 -29
  155. package/lib/ActionList2/Divider.jsx +0 -22
  156. package/lib/ActionList2/Group.jsx +0 -54
  157. package/lib/ActionList2/Header.d.ts +0 -26
  158. package/lib/ActionList2/Header.js +0 -55
  159. package/lib/ActionList2/Header.jsx +0 -36
  160. package/lib/ActionList2/Item.jsx +0 -174
  161. package/lib/ActionList2/LinkItem.jsx +0 -28
  162. package/lib/ActionList2/List.jsx +0 -41
  163. package/lib/ActionList2/Selection.jsx +0 -50
  164. package/lib/ActionList2/Visuals.jsx +0 -48
  165. package/lib/ActionMenu.jsx +0 -73
  166. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  167. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  168. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  169. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  170. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  171. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  172. package/lib/Avatar.jsx +0 -34
  173. package/lib/AvatarPair.jsx +0 -29
  174. package/lib/AvatarStack.jsx +0 -151
  175. package/lib/BaseStyles.jsx +0 -65
  176. package/lib/BorderBox.jsx +0 -18
  177. package/lib/Box.jsx +0 -10
  178. package/lib/BranchName.jsx +0 -20
  179. package/lib/Breadcrumbs.jsx +0 -71
  180. package/lib/Button/Button.jsx +0 -40
  181. package/lib/Button/ButtonBase.jsx +0 -33
  182. package/lib/Button/ButtonClose.jsx +0 -53
  183. package/lib/Button/ButtonDanger.jsx +0 -43
  184. package/lib/Button/ButtonGroup.jsx +0 -55
  185. package/lib/Button/ButtonInvisible.jsx +0 -32
  186. package/lib/Button/ButtonOutline.jsx +0 -43
  187. package/lib/Button/ButtonPrimary.jsx +0 -42
  188. package/lib/Button/ButtonStyles.jsx +0 -37
  189. package/lib/Button/ButtonTableList.jsx +0 -46
  190. package/lib/Caret.jsx +0 -93
  191. package/lib/CircleBadge.jsx +0 -42
  192. package/lib/CircleOcticon.jsx +0 -21
  193. package/lib/CounterLabel.jsx +0 -43
  194. package/lib/Details.jsx +0 -21
  195. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  196. package/lib/Dialog/Dialog.jsx +0 -279
  197. package/lib/Dialog.jsx +0 -129
  198. package/lib/Dropdown.jsx +0 -131
  199. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  200. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  201. package/lib/FilterList.jsx +0 -59
  202. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  203. package/lib/FilteredSearch.jsx +0 -28
  204. package/lib/Flash.jsx +0 -69
  205. package/lib/Flex.jsx +0 -15
  206. package/lib/FormGroup.jsx +0 -22
  207. package/lib/Grid.jsx +0 -15
  208. package/lib/Header.jsx +0 -83
  209. package/lib/Heading.jsx +0 -21
  210. package/lib/Label.jsx +0 -82
  211. package/lib/LabelGroup.jsx +0 -18
  212. package/lib/Link.jsx +0 -36
  213. package/lib/NewButton/button-counter.jsx +0 -14
  214. package/lib/NewButton/button.jsx +0 -279
  215. package/lib/Overlay.jsx +0 -154
  216. package/lib/Pagehead.jsx +0 -17
  217. package/lib/Pagination/Pagination.jsx +0 -161
  218. package/lib/Pagination/model.jsx +0 -174
  219. package/lib/PointerBox.jsx +0 -25
  220. package/lib/Popover.jsx +0 -202
  221. package/lib/Portal/Portal.jsx +0 -79
  222. package/lib/Position.jsx +0 -46
  223. package/lib/ProgressBar.jsx +0 -39
  224. package/lib/SelectMenu/SelectMenu.jsx +0 -112
  225. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  226. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -42
  227. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -58
  228. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -45
  229. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -42
  230. package/lib/SelectMenu/SelectMenuItem.jsx +0 -142
  231. package/lib/SelectMenu/SelectMenuList.jsx +0 -59
  232. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -22
  233. package/lib/SelectMenu/SelectMenuModal.jsx +0 -118
  234. package/lib/SelectMenu/SelectMenuTab.jsx +0 -92
  235. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -42
  236. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -57
  237. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  238. package/lib/SideNav.jsx +0 -173
  239. package/lib/Spinner.jsx +0 -35
  240. package/lib/StateLabel.jsx +0 -93
  241. package/lib/StyledOcticon.jsx +0 -18
  242. package/lib/SubNav.jsx +0 -101
  243. package/lib/TabNav.jsx +0 -58
  244. package/lib/Text.jsx +0 -14
  245. package/lib/TextInput.jsx +0 -23
  246. package/lib/TextInputWithTokens.jsx +0 -218
  247. package/lib/ThemeProvider.jsx +0 -130
  248. package/lib/Timeline.jsx +0 -123
  249. package/lib/Token/AvatarToken.jsx +0 -54
  250. package/lib/Token/IssueLabelToken.jsx +0 -125
  251. package/lib/Token/Token.jsx +0 -103
  252. package/lib/Token/TokenBase.jsx +0 -88
  253. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  254. package/lib/Token/_TokenTextContainer.jsx +0 -49
  255. package/lib/Tooltip.jsx +0 -246
  256. package/lib/Truncate.jsx +0 -24
  257. package/lib/UnderlineNav.jsx +0 -88
  258. package/lib/_TextInputWrapper.jsx +0 -120
  259. package/lib/_UnstyledTextInput.jsx +0 -22
  260. package/lib/hooks/useDetails.jsx +0 -39
  261. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  262. package/lib/hooks/useOverlay.jsx +0 -15
  263. package/lib/utils/create-slots.jsx +0 -65
  264. package/lib/utils/deprecate.jsx +0 -59
  265. package/lib/utils/isNumeric.jsx +0 -7
  266. package/lib/utils/ssr.jsx +0 -6
  267. package/lib/utils/test-deprecations.jsx +0 -20
  268. package/lib/utils/test-helpers.jsx +0 -8
  269. package/lib/utils/test-matchers.jsx +0 -100
  270. package/lib/utils/testing.jsx +0 -206
  271. package/lib-esm/ActionList2/Header.d.ts +0 -26
  272. package/lib-esm/ActionList2/Header.js +0 -44
@@ -479,6 +479,452 @@ module.exports = {
479
479
  }
480
480
  }
481
481
  },
482
+ "light_high_contrast": {
483
+ "colors": {
484
+ "canvasDefaultTransparent": "rgba(255,255,255,0)",
485
+ "marketingIcon": {
486
+ "primary": "#1168e3",
487
+ "secondary": "#368cf9"
488
+ },
489
+ "diffBlob": {
490
+ "addition": {
491
+ "numText": "#24292F",
492
+ "fg": "#ffffff",
493
+ "numBg": "#CCFFD8",
494
+ "lineBg": "#E6FFEC",
495
+ "wordBg": "#055d20"
496
+ },
497
+ "deletion": {
498
+ "numText": "#24292F",
499
+ "fg": "#ffffff",
500
+ "numBg": "#FFD7D5",
501
+ "lineBg": "#fff0ee",
502
+ "wordBg": "#a0111f"
503
+ },
504
+ "hunk": {
505
+ "numBg": "#9cd7ff"
506
+ },
507
+ "expander": {
508
+ "icon": "#24292F"
509
+ }
510
+ },
511
+ "diffstat": {
512
+ "deletionBorder": "rgba(1,4,9,0.8)",
513
+ "additionBorder": "rgba(1,4,9,0.8)",
514
+ "additionBg": "#117f32"
515
+ },
516
+ "searchKeyword": {
517
+ "hl": "#fcf7be"
518
+ },
519
+ "prettylights": {
520
+ "syntax": {
521
+ "comment": "#67707A",
522
+ "constant": "#023b95",
523
+ "entity": "#622cbc",
524
+ "storageModifierImport": "#24292F",
525
+ "entityTag": "#024c1a",
526
+ "keyword": "#a0111f",
527
+ "string": "#032563",
528
+ "variable": "#702c00",
529
+ "brackethighlighterUnmatched": "#6e011a",
530
+ "invalidIllegalText": "#FFFFFF",
531
+ "invalidIllegalBg": "#6e011a",
532
+ "carriageReturnText": "#FFFFFF",
533
+ "carriageReturnBg": "#a0111f",
534
+ "stringRegexp": "#024c1a",
535
+ "markupList": "#2e1800",
536
+ "markupHeading": "#023b95",
537
+ "markupItalic": "#24292F",
538
+ "markupBold": "#24292F",
539
+ "markupDeletedText": "#6e011a",
540
+ "markupDeletedBg": "#fff0ee",
541
+ "markupInsertedText": "#024c1a",
542
+ "markupInsertedBg": "#d2fedb",
543
+ "markupChangedText": "#702c00",
544
+ "markupChangedBg": "#ffc67b",
545
+ "markupIgnoredText": "#E7ECF0",
546
+ "markupIgnoredBg": "#023b95",
547
+ "metaDiffRange": "#622cbc",
548
+ "brackethighlighterAngle": "#4F5760",
549
+ "sublimelinterGutterMark": "#88929D",
550
+ "constantOtherReferenceLink": "#032563"
551
+ }
552
+ },
553
+ "codemirror": {
554
+ "text": "#24292F",
555
+ "bg": "#ffffff",
556
+ "guttersBg": "#ffffff",
557
+ "guttermarkerText": "#ffffff",
558
+ "guttermarkerSubtleText": "#67707A",
559
+ "linenumberText": "#24292F",
560
+ "cursor": "#24292F",
561
+ "selectionBg": "#368cf9",
562
+ "activelineBg": "#E7ECF0",
563
+ "matchingbracketText": "#24292F",
564
+ "linesBg": "#ffffff",
565
+ "syntax": {
566
+ "comment": "#24292F",
567
+ "constant": "#023b95",
568
+ "entity": "#622cbc",
569
+ "keyword": "#a0111f",
570
+ "storage": "#a0111f",
571
+ "string": "#032563",
572
+ "support": "#023b95",
573
+ "variable": "#702c00"
574
+ }
575
+ },
576
+ "checks": {
577
+ "bg": "#24292F",
578
+ "textPrimary": "#FFFFFF",
579
+ "textSecondary": "#88929D",
580
+ "textLink": "#368cf9",
581
+ "btnIcon": "#ACB6C0",
582
+ "btnHoverIcon": "#FFFFFF",
583
+ "btnHoverBg": "rgba(255,255,255,0.125)",
584
+ "inputText": "#E7ECF0",
585
+ "inputPlaceholderText": "#88929D",
586
+ "inputFocusText": "#88929D",
587
+ "inputBg": "#30363D",
588
+ "donutError": "#d5232c",
589
+ "donutPending": "#956400",
590
+ "donutSuccess": "#117f32",
591
+ "donutNeutral": "#ACB6C0",
592
+ "dropdownText": "#ACB6C0",
593
+ "dropdownBg": "#30363D",
594
+ "dropdownBorder": "#3D454E",
595
+ "dropdownShadow": "rgba(1,4,9,0.3)",
596
+ "dropdownHoverText": "#FFFFFF",
597
+ "dropdownHoverBg": "#3D454E",
598
+ "dropdownBtnHoverText": "#FFFFFF",
599
+ "dropdownBtnHoverBg": "#30363D",
600
+ "scrollbarThumbBg": "#4F5760",
601
+ "headerLabelText": "#CED5DC",
602
+ "headerLabelOpenText": "#FFFFFF",
603
+ "headerBorder": "#30363D",
604
+ "headerIcon": "#88929D",
605
+ "lineText": "#CED5DC",
606
+ "lineNumText": "rgba(136,146,157,0.75)",
607
+ "lineTimestampText": "#88929D",
608
+ "lineHoverBg": "#30363D",
609
+ "lineSelectedBg": "rgba(17,104,227,0.15)",
610
+ "lineSelectedNumText": "#368cf9",
611
+ "lineDtFmText": "#24292F",
612
+ "lineDtFmBg": "#744500",
613
+ "gateBg": "rgba(96,55,0,0.15)",
614
+ "gateText": "#CED5DC",
615
+ "gateWaitingText": "#ACB6C0",
616
+ "stepHeaderOpenBg": "#30363D",
617
+ "stepErrorText": "#ee5a5d",
618
+ "stepWarningText": "#b58407",
619
+ "loglineText": "#88929D",
620
+ "loglineNumText": "rgba(136,146,157,0.75)",
621
+ "loglineDebugText": "#a371f7",
622
+ "loglineErrorText": "#CED5DC",
623
+ "loglineErrorNumText": "#ee5a5d",
624
+ "loglineErrorBg": "rgba(134,6,29,0.15)",
625
+ "loglineWarningText": "#CED5DC",
626
+ "loglineWarningNumText": "#b58407",
627
+ "loglineWarningBg": "rgba(96,55,0,0.15)",
628
+ "loglineCommandText": "#368cf9",
629
+ "loglineSectionText": "#26a148",
630
+ "ansi": {
631
+ "black": "#24292F",
632
+ "blackBright": "#30363D",
633
+ "white": "#CED5DC",
634
+ "whiteBright": "#CED5DC",
635
+ "gray": "#88929D",
636
+ "red": "#ee5a5d",
637
+ "redBright": "#ff8e8a",
638
+ "green": "#26a148",
639
+ "greenBright": "#43c663",
640
+ "yellow": "#b58407",
641
+ "yellowBright": "#d5a824",
642
+ "blue": "#368cf9",
643
+ "blueBright": "#67b3fd",
644
+ "magenta": "#a371f7",
645
+ "magentaBright": "#c49bff",
646
+ "cyan": "#76e3ea",
647
+ "cyanBright": "#b3f0ff"
648
+ }
649
+ },
650
+ "project": {
651
+ "headerBg": "#24292F",
652
+ "sidebarBg": "#ffffff",
653
+ "gradientIn": "#ffffff",
654
+ "gradientOut": "rgba(255,255,255,0)"
655
+ },
656
+ "mktg": {
657
+ "btn": {
658
+ "bg": "#1b1f23"
659
+ }
660
+ },
661
+ "avatar": {
662
+ "bg": "#ffffff",
663
+ "border": "rgba(1,4,9,0.8)",
664
+ "stackFade": "#ACB6C0",
665
+ "stackFadeMore": "#CED5DC"
666
+ },
667
+ "topicTag": {
668
+ "border": "rgba(0,0,0,0)"
669
+ },
670
+ "selectMenu": {
671
+ "backdropBorder": "rgba(0,0,0,0)",
672
+ "tapHighlight": "rgba(172,182,192,0.5)",
673
+ "tapFocusBg": "#9cd7ff"
674
+ },
675
+ "header": {
676
+ "text": "rgba(255,255,255,0.7)",
677
+ "bg": "#24292F",
678
+ "logo": "#ffffff"
679
+ },
680
+ "headerSearch": {
681
+ "bg": "#24292F",
682
+ "border": "#4F5760"
683
+ },
684
+ "sidenav": {
685
+ "selectedBg": "#ffffff"
686
+ },
687
+ "menu": {
688
+ "bgActive": "rgba(0,0,0,0)"
689
+ },
690
+ "input": {
691
+ "disabledBg": "rgba(172,182,192,0.2)"
692
+ },
693
+ "timeline": {
694
+ "badgeBg": "#E7ECF0"
695
+ },
696
+ "ansi": {
697
+ "black": "#24292F",
698
+ "blackBright": "#4F5760",
699
+ "white": "#67707A",
700
+ "whiteBright": "#88929D",
701
+ "gray": "#67707A",
702
+ "red": "#a0111f",
703
+ "redBright": "#86061d",
704
+ "green": "#024c1a",
705
+ "greenBright": "#055d20",
706
+ "yellow": "#3f2200",
707
+ "yellowBright": "#4e2c00",
708
+ "blue": "#0349b4",
709
+ "blueBright": "#1168e3",
710
+ "magenta": "#622cbc",
711
+ "magentaBright": "#844ae7",
712
+ "cyan": "#1b7c83",
713
+ "cyanBright": "#3192aa"
714
+ },
715
+ "btn": {
716
+ "text": "#24292F",
717
+ "bg": "#E7ECF0",
718
+ "border": "rgba(1,4,9,0.8)",
719
+ "hoverBg": "#CED5DC",
720
+ "hoverBorder": "rgba(1,4,9,0.8)",
721
+ "activeBg": "#ACB6C0",
722
+ "activeBorder": "rgba(1,4,9,0.8)",
723
+ "selectedBg": "#ACB6C0",
724
+ "focusBg": "#CED5DC",
725
+ "focusBorder": "rgba(1,4,9,0.8)",
726
+ "counterBg": "rgba(1,4,9,0.08)",
727
+ "primary": {
728
+ "text": "#ffffff",
729
+ "bg": "#055d20",
730
+ "border": "#013d14",
731
+ "hoverBg": "#024c1a",
732
+ "hoverBorder": "#013d14",
733
+ "selectedBg": "hsla(139,95%,13%,1)",
734
+ "disabledText": "rgba(255,255,255,0.8)",
735
+ "disabledBg": "#94d3a2",
736
+ "disabledBorder": "rgba(1,4,9,0.8)",
737
+ "focusBg": "#013d14",
738
+ "focusBorder": "#013d14",
739
+ "icon": "rgba(255,255,255,0.8)",
740
+ "counterBg": "rgba(255,255,255,0.2)"
741
+ },
742
+ "outline": {
743
+ "text": "#023b95",
744
+ "hoverText": "#ffffff",
745
+ "hoverBg": "#0349b4",
746
+ "hoverBorder": "#022f7a",
747
+ "hoverCounterBg": "rgba(255,255,255,0.2)",
748
+ "selectedText": "#ffffff",
749
+ "selectedBg": "#022f7a",
750
+ "selectedBorder": "#022f7a",
751
+ "disabledText": "rgba(3,73,180,0.5)",
752
+ "disabledBg": "#E7ECF0",
753
+ "disabledCounterBg": "rgba(3,73,180,0.05)",
754
+ "focusBorder": "#022f7a",
755
+ "counterBg": "rgba(3,73,180,0.1)"
756
+ },
757
+ "danger": {
758
+ "text": "#86061d",
759
+ "hoverText": "#ffffff",
760
+ "hoverBg": "#a0111f",
761
+ "hoverBorder": "#6e011a",
762
+ "hoverCounterBg": "rgba(255,255,255,0.2)",
763
+ "selectedText": "#ffffff",
764
+ "selectedBg": "#6e011a",
765
+ "selectedBorder": "#6e011a",
766
+ "disabledText": "rgba(160,17,31,0.5)",
767
+ "disabledBg": "#E7ECF0",
768
+ "disabledCounterBg": "rgba(160,17,31,0.05)",
769
+ "focusBorder": "#6e011a",
770
+ "counterBg": "rgba(160,17,31,0.1)",
771
+ "icon": "#86061d",
772
+ "hoverIcon": "#ffffff"
773
+ }
774
+ },
775
+ "underlinenav": {
776
+ "icon": "#67707A",
777
+ "borderHover": "rgba(172,182,192,0.2)"
778
+ },
779
+ "actionListItem": {
780
+ "inlineDivider": "rgba(48,54,61,0.48)",
781
+ "default": {
782
+ "hoverBg": "rgba(206,213,220,0.32)",
783
+ "activeBg": "rgba(206,213,220,0.48)",
784
+ "selectedBg": "rgba(206,213,220,0.24)"
785
+ },
786
+ "danger": {
787
+ "hoverBg": "rgba(255,240,238,0.64)",
788
+ "activeBg": "#fff0ee",
789
+ "hoverText": "#a0111f"
790
+ }
791
+ },
792
+ "fg": {
793
+ "default": "#24292F",
794
+ "muted": "#24292F",
795
+ "subtle": "#67707A",
796
+ "onEmphasis": "#ffffff"
797
+ },
798
+ "canvas": {
799
+ "default": "#ffffff",
800
+ "overlay": "#ffffff",
801
+ "inset": "#ffffff",
802
+ "subtle": "#E7ECF0"
803
+ },
804
+ "border": {
805
+ "default": "#30363D",
806
+ "muted": "#88929D",
807
+ "subtle": "rgba(1,4,9,0.8)"
808
+ },
809
+ "neutral": {
810
+ "emphasisPlus": "#24292F",
811
+ "emphasis": "#67707A",
812
+ "muted": "rgba(172,182,192,0.2)",
813
+ "subtle": "#E7ECF0"
814
+ },
815
+ "accent": {
816
+ "fg": "#0349b4",
817
+ "emphasis": "#0349b4",
818
+ "muted": "#368cf9",
819
+ "subtle": "#dff7ff"
820
+ },
821
+ "success": {
822
+ "fg": "#055d20",
823
+ "emphasis": "#055d20",
824
+ "muted": "#26a148",
825
+ "subtle": "#d2fedb"
826
+ },
827
+ "attention": {
828
+ "fg": "#744500",
829
+ "emphasis": "#744500",
830
+ "muted": "#b58407",
831
+ "subtle": "#fcf7be"
832
+ },
833
+ "severe": {
834
+ "fg": "#873800",
835
+ "emphasis": "#873800",
836
+ "muted": "#dc6d1a",
837
+ "subtle": "#fff2d5"
838
+ },
839
+ "danger": {
840
+ "fg": "#a0111f",
841
+ "emphasis": "#a0111f",
842
+ "muted": "#ee5a5d",
843
+ "subtle": "#fff0ee"
844
+ },
845
+ "done": {
846
+ "fg": "#622cbc",
847
+ "emphasis": "#622cbc",
848
+ "muted": "#a371f7",
849
+ "subtle": "#faf0fe"
850
+ },
851
+ "sponsors": {
852
+ "fg": "#971368",
853
+ "emphasis": "#971368",
854
+ "muted": "#ed4baf",
855
+ "subtle": "#feeff7"
856
+ },
857
+ "primer": {
858
+ "fg": {
859
+ "disabled": "#88929D"
860
+ },
861
+ "canvas": {
862
+ "backdrop": "rgba(1,4,9,0.5)",
863
+ "sticky": "rgba(255,255,255,0.95)"
864
+ },
865
+ "border": {
866
+ "active": "#ef5b48",
867
+ "contrast": "rgba(1,4,9,0.1)"
868
+ }
869
+ }
870
+ },
871
+ "shadows": {
872
+ "mktg": {
873
+ "btn": {
874
+ "shadow": {
875
+ "outline": "rgb(0 0 0 / 15%) 0 0 0 1px inset",
876
+ "focus": "rgb(0 0 0 / 15%) 0 0 0 4px",
877
+ "hover": "0 3px 2px rgba(0, 0, 0, 0.07), 0 7px 5px rgba(0, 0, 0, 0.04), 0 12px 10px rgba(0, 0, 0, 0.03), 0 22px 18px rgba(0, 0, 0, 0.03), 0 42px 33px rgba(0, 0, 0, 0.02), 0 100px 80px rgba(0, 0, 0, 0.02)",
878
+ "hoverMuted": "rgb(0 0 0 / 70%) 0 0 0 2px inset"
879
+ }
880
+ }
881
+ },
882
+ "avatar": {
883
+ "childShadow": "-2px -2px 0 rgba(255,255,255,0.8)"
884
+ },
885
+ "overlay": {
886
+ "shadow": "0 1px 3px rgba(1,4,9,0.12), 0 8px 24px rgba(61,69,78,0.12)"
887
+ },
888
+ "btn": {
889
+ "shadow": "0 1px 0 rgba(1,4,9,0.04)",
890
+ "insetShadow": "inset 0 1px 0 rgba(255,255,255,0.25)",
891
+ "focusShadow": "0 0 0 3px rgba(3,73,180,0.3)",
892
+ "shadowActive": "inset 0 0.15em 0.3em rgba(1,4,9,0.15)",
893
+ "shadowInputFocus": "0 0 0 0.2em rgba(3,73,180,0.3)",
894
+ "primary": {
895
+ "shadow": "0 1px 0 rgba(1,4,9,0.1)",
896
+ "insetShadow": "inset 0 1px 0 rgba(255,255,255,0.03)",
897
+ "selectedShadow": "inset 0 1px 0 rgba(0,35,11,0.2)",
898
+ "focusShadow": "0 0 0 3px rgba(1,61,20,0.4)"
899
+ },
900
+ "outline": {
901
+ "hoverShadow": "0 1px 0 rgba(1,4,9,0.1)",
902
+ "hoverInsetShadow": "inset 0 1px 0 rgba(255,255,255,0.03)",
903
+ "selectedShadow": "inset 0 1px 0 rgba(2,26,74,0.2)",
904
+ "focusShadow": "0 0 0 3px rgba(2,59,149,0.4)"
905
+ },
906
+ "danger": {
907
+ "hoverShadow": "0 1px 0 rgba(1,4,9,0.1)",
908
+ "hoverInsetShadow": "inset 0 1px 0 rgba(255,255,255,0.03)",
909
+ "selectedShadow": "inset 0 1px 0 rgba(67,0,17,0.2)",
910
+ "focusShadow": "0 0 0 3px rgba(134,6,29,0.4)"
911
+ }
912
+ },
913
+ "shadow": {
914
+ "small": "0 1px 0 rgba(1,4,9,0.04)",
915
+ "medium": "0 3px 6px rgba(136,146,157,0.15)",
916
+ "large": "0 8px 24px rgba(136,146,157,0.2)",
917
+ "extraLarge": "0 12px 28px rgba(136,146,157,0.3)"
918
+ },
919
+ "primer": {
920
+ "shadow": {
921
+ "highlight": "inset 0 1px 0 rgba(255,255,255,0.25)",
922
+ "inset": "inset 0 1px 0 rgba(206,213,220,0.2)",
923
+ "focus": "0 0 0 3px rgba(3,73,180,0.3)"
924
+ }
925
+ }
926
+ }
927
+ },
482
928
  "light_colorblind": {
483
929
  "colors": {
484
930
  "canvasDefaultTransparent": "rgba(255,255,255,0)",
@@ -53,7 +53,7 @@ export declare function render(component: React.ReactElement, theme?: {
53
53
  xlarge: string;
54
54
  };
55
55
  space: string[];
56
- colorSchemes: Record<"light" | "light_colorblind" | "dark" | "dark_dimmed" | "dark_high_contrast" | "dark_colorblind", Record<"colors" | "shadows", Partial<{
56
+ colorSchemes: Record<"light" | "light_high_contrast" | "light_colorblind" | "dark" | "dark_dimmed" | "dark_high_contrast" | "dark_colorblind", Record<"colors" | "shadows", Partial<{
57
57
  canvasDefaultTransparent: string;
58
58
  marketingIcon: {
59
59
  primary: string;
@@ -541,4 +541,5 @@ interface BehavesAsComponent {
541
541
  }
542
542
  export declare function behavesAsComponent({ Component, toRender, options }: BehavesAsComponent): void;
543
543
  export declare function checkExports(path: string, exports: Record<any, any>): void;
544
+ export declare function checkStoriesForAxeViolations(name: string): void;
544
545
  export {};
@@ -3,6 +3,8 @@ import { promisify } from 'util';
3
3
  import renderer from 'react-test-renderer';
4
4
  import enzyme from 'enzyme';
5
5
  import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
+ import { cleanup, render as HTMLRender } from '@testing-library/react';
7
+ import { axe, toHaveNoViolations } from 'jest-axe';
6
8
  import { ThemeProvider } from '..';
7
9
  import { default as defaultTheme } from '../theme';
8
10
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -219,4 +221,26 @@ export function checkExports(path, exports) {
219
221
 
220
222
  expect(mod).toSetExports(exports);
221
223
  });
224
+ }
225
+ expect.extend(toHaveNoViolations);
226
+ export function checkStoriesForAxeViolations(name) {
227
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
228
+ const stories = require(`../stories/${name}.stories`); // eslint-disable-next-line @typescript-eslint/no-unused-vars -- _meta
229
+
230
+
231
+ const {
232
+ default: _meta,
233
+ ...Stories
234
+ } = stories;
235
+ Object.values(Stories).map(Story => {
236
+ if (typeof Story !== 'function') return;
237
+ it(`story ${Story.storyName} should have no axe violations`, async () => {
238
+ const {
239
+ container
240
+ } = HTMLRender( /*#__PURE__*/React.createElement(Story, null));
241
+ const results = await axe(container);
242
+ expect(results).toHaveNoViolations();
243
+ cleanup();
244
+ });
245
+ });
222
246
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/components",
3
- "version": "0.0.0-20211030175556",
3
+ "version": "0.0.0-20211030182910",
4
4
  "description": "Primer react components",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -20,8 +20,7 @@
20
20
  "test": "jest",
21
21
  "test:update": "npm run test -- --updateSnapshot",
22
22
  "release": "npm run build && changeset publish",
23
- "size": "size-limit",
24
- "typecheck": "npx tsc --project tsconfig.json"
23
+ "size": "size-limit"
25
24
  },
26
25
  "repository": "primer/react",
27
26
  "keywords": [
@@ -45,7 +44,7 @@
45
44
  "license": "MIT",
46
45
  "dependencies": {
47
46
  "@primer/octicons-react": "^16.1.0",
48
- "@primer/primitives": "7.0.1",
47
+ "@primer/primitives": "7.1.1",
49
48
  "@radix-ui/react-polymorphic": "0.0.14",
50
49
  "@react-aria/ssr": "3.1.0",
51
50
  "@styled-system/css": "5.1.5",
@@ -88,7 +87,7 @@
88
87
  "@testing-library/user-event": "13.1.9",
89
88
  "@types/chroma-js": "2.1.3",
90
89
  "@types/enzyme": "3.10.9",
91
- "@types/jest": "26.0.23",
90
+ "@types/jest": "27.0.2",
92
91
  "@types/jest-axe": "3.5.3",
93
92
  "@types/lodash.isempty": "4.4.6",
94
93
  "@types/lodash.isobject": "3.0.6",
@@ -1,29 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Divider = exports.StyledDivider = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const styled_components_1 = __importDefault(require("styled-components"));
9
- const constants_1 = require("../constants");
10
- exports.StyledDivider = styled_components_1.default.div `
11
- height: 1px;
12
- background: ${constants_1.get('colors.border.muted')};
13
- margin-top: calc(${constants_1.get('space.2')} - 1px);
14
- margin-bottom: ${constants_1.get('space.2')};
15
- `;
16
- /**
17
- * Visually separates `Item`s or `Group`s in an `ActionList`.
18
- */
19
- function Divider() {
20
- return <exports.StyledDivider />;
21
- }
22
- exports.Divider = Divider;
23
- /**
24
- * `Divider` fulfills the `ItemPropsWithCustomRenderer` contract,
25
- * so it can be used inline in an `ActionList`’s `items` prop.
26
- * In other words, `items={[ActionList.Divider]}` is supported as a concise
27
- * alternative to `items={[{renderItem: () => <ActionList.Divider />}]}`.
28
- */
29
- Divider.renderItem = Divider;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Group = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const styled_components_1 = __importDefault(require("styled-components"));
9
- const sx_1 = __importDefault(require("../sx"));
10
- const Header_1 = require("./Header");
11
- const StyledGroup = styled_components_1.default.div `
12
- ${sx_1.default}
13
- `;
14
- /**
15
- * Collects related `Items` in an `ActionList`.
16
- */
17
- function Group({ header, items, ...props }) {
18
- return (<StyledGroup {...props}>
19
- {header && <Header_1.Header {...header}/>}
20
- {items}
21
- </StyledGroup>);
22
- }
23
- exports.Group = Group;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.Header = exports.StyledHeader = void 0;
26
- const react_1 = __importDefault(require("react"));
27
- const styled_components_1 = __importStar(require("styled-components"));
28
- const constants_1 = require("../constants");
29
- const sx_1 = __importDefault(require("../sx"));
30
- exports.StyledHeader = styled_components_1.default.div `
31
- {
32
- /* 6px vertical padding + 20px line height = 32px total height
33
- *
34
- * TODO: When rem-based spacing on a 4px scale lands, replace
35
- * hardcoded '6px' with 'calc((${constants_1.get('space.s32')} - ${constants_1.get('space.20')}) / 2)'.
36
- */
37
- }
38
- padding: 6px ${constants_1.get('space.3')};
39
- font-size: ${constants_1.get('fontSizes.0')};
40
- font-weight: ${constants_1.get('fontWeights.bold')};
41
- color: ${constants_1.get('colors.fg.muted')};
42
-
43
- ${({ variant }) => variant === 'filled' &&
44
- styled_components_1.css `
45
- background: ${constants_1.get('colors.canvas.subtle')};
46
- margin: ${constants_1.get('space.2')} 0;
47
- border-top: 1px solid ${constants_1.get('colors.neutral.muted')};
48
- border-bottom: 1px solid ${constants_1.get('colors.neutral.muted')};
49
-
50
- &:first-child {
51
- margin-top: 0;
52
- }
53
- `}
54
-
55
- ${sx_1.default}
56
- `;
57
- /**
58
- * Displays the name and description of a `Group`.
59
- */
60
- function Header({ variant = 'subtle', title, auxiliaryText, children: _children, ...props }) {
61
- return (<exports.StyledHeader role="heading" variant={variant} {...props}>
62
- {title}
63
- {auxiliaryText && <span>{auxiliaryText}</span>}
64
- </exports.StyledHeader>);
65
- }
66
- exports.Header = Header;