From 60690d203b7457d136a9bf1176d61a7670a66bbe Mon Sep 17 00:00:00 2001 From: Samson Orr Date: Wed, 7 Aug 2024 10:19:45 -0700 Subject: [PATCH 01/13] Move to the new repo --- _sass/jekyll-theme-primer.scss | 10 +- _sass/primer-base/index.scss | 5 - _sass/primer-base/lib/base.scss | 84 ---- _sass/primer-base/lib/normalize.scss | 421 ------------------ _sass/primer-base/lib/typography-base.scss | 86 ---- _sass/primer-layout/index.scss | 5 - _sass/primer-layout/lib/columns.scss | 54 --- _sass/primer-layout/lib/container.scss | 30 -- _sass/primer-layout/lib/grid-offset.scss | 19 - _sass/primer-layout/lib/grid.scss | 64 --- _sass/primer-markdown/index.scss | 8 - _sass/primer-markdown/lib/blob-csv.scss | 27 -- _sass/primer-markdown/lib/code.scss | 63 --- _sass/primer-markdown/lib/headings.scss | 65 --- _sass/primer-markdown/lib/images.scss | 119 ----- _sass/primer-markdown/lib/lists.scss | 76 ---- _sass/primer-markdown/lib/markdown-body.scss | 106 ----- _sass/primer-markdown/lib/tables.scss | 33 -- _sass/primer-support/index.scss | 11 - _sass/primer-support/lib/mixins/buttons.scss | 160 ------- _sass/primer-support/lib/mixins/layout.scss | 58 --- _sass/primer-support/lib/mixins/misc.scss | 29 -- .../primer-support/lib/mixins/typography.scss | 84 ---- .../lib/variables/color-system.scss | 114 ----- .../primer-support/lib/variables/colors.scss | 67 --- .../primer-support/lib/variables/layout.scss | 72 --- _sass/primer-support/lib/variables/misc.scss | 40 -- .../lib/variables/typography.scss | 43 -- _sass/primer-utilities/index.scss | 14 - _sass/primer-utilities/lib/animations.scss | 184 -------- _sass/primer-utilities/lib/borders.scss | 100 ----- _sass/primer-utilities/lib/box-shadow.scss | 26 -- _sass/primer-utilities/lib/colors.scss | 106 ----- _sass/primer-utilities/lib/details.scss | 18 - _sass/primer-utilities/lib/flexbox.scss | 52 --- _sass/primer-utilities/lib/layout.scss | 85 ---- _sass/primer-utilities/lib/margin.scss | 53 --- _sass/primer-utilities/lib/padding.scss | 54 --- _sass/primer-utilities/lib/typography.scss | 215 --------- .../lib/visibility-display.scss | 87 ---- package.json | 11 +- 41 files changed, 7 insertions(+), 2951 deletions(-) delete mode 100644 _sass/primer-base/index.scss delete mode 100644 _sass/primer-base/lib/base.scss delete mode 100644 _sass/primer-base/lib/normalize.scss delete mode 100644 _sass/primer-base/lib/typography-base.scss delete mode 100644 _sass/primer-layout/index.scss delete mode 100644 _sass/primer-layout/lib/columns.scss delete mode 100644 _sass/primer-layout/lib/container.scss delete mode 100644 _sass/primer-layout/lib/grid-offset.scss delete mode 100644 _sass/primer-layout/lib/grid.scss delete mode 100644 _sass/primer-markdown/index.scss delete mode 100644 _sass/primer-markdown/lib/blob-csv.scss delete mode 100644 _sass/primer-markdown/lib/code.scss delete mode 100644 _sass/primer-markdown/lib/headings.scss delete mode 100644 _sass/primer-markdown/lib/images.scss delete mode 100644 _sass/primer-markdown/lib/lists.scss delete mode 100644 _sass/primer-markdown/lib/markdown-body.scss delete mode 100644 _sass/primer-markdown/lib/tables.scss delete mode 100644 _sass/primer-support/index.scss delete mode 100644 _sass/primer-support/lib/mixins/buttons.scss delete mode 100644 _sass/primer-support/lib/mixins/layout.scss delete mode 100644 _sass/primer-support/lib/mixins/misc.scss delete mode 100644 _sass/primer-support/lib/mixins/typography.scss delete mode 100644 _sass/primer-support/lib/variables/color-system.scss delete mode 100644 _sass/primer-support/lib/variables/colors.scss delete mode 100644 _sass/primer-support/lib/variables/layout.scss delete mode 100644 _sass/primer-support/lib/variables/misc.scss delete mode 100644 _sass/primer-support/lib/variables/typography.scss delete mode 100644 _sass/primer-utilities/index.scss delete mode 100644 _sass/primer-utilities/lib/animations.scss delete mode 100644 _sass/primer-utilities/lib/borders.scss delete mode 100644 _sass/primer-utilities/lib/box-shadow.scss delete mode 100644 _sass/primer-utilities/lib/colors.scss delete mode 100644 _sass/primer-utilities/lib/details.scss delete mode 100644 _sass/primer-utilities/lib/flexbox.scss delete mode 100644 _sass/primer-utilities/lib/layout.scss delete mode 100644 _sass/primer-utilities/lib/margin.scss delete mode 100644 _sass/primer-utilities/lib/padding.scss delete mode 100644 _sass/primer-utilities/lib/typography.scss delete mode 100644 _sass/primer-utilities/lib/visibility-display.scss diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss index b523a9a4..c55d595d 100644 --- a/_sass/jekyll-theme-primer.scss +++ b/_sass/jekyll-theme-primer.scss @@ -1,7 +1,7 @@ -@import "primer-support/index.scss"; -@import "primer-base/index.scss"; -@import "primer-utilities/index.scss"; -@import "primer-layout/index.scss"; -@import "primer-markdown/index.scss"; +@import "@primer/css/support/index.scss"; +@import "@primer/css/base/index.scss"; +@import "@primer/css/utilities/index.scss"; +@import "@primer/css/layout/index.scss"; +@import "@primer/css/markdown/index.scss"; @import "rouge"; diff --git a/_sass/primer-base/index.scss b/_sass/primer-base/index.scss deleted file mode 100644 index 2ce815d1..00000000 --- a/_sass/primer-base/index.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "primer-support/index.scss"; - -@import "./lib/normalize.scss"; -@import "./lib/base.scss"; -@import "./lib/typography-base.scss"; diff --git a/_sass/primer-base/lib/base.scss b/_sass/primer-base/lib/base.scss deleted file mode 100644 index 21033a87..00000000 --- a/_sass/primer-base/lib/base.scss +++ /dev/null @@ -1,84 +0,0 @@ -// stylelint-disable selector-max-type -* { - box-sizing: border-box; -} - -input, -select, -textarea, -button { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -body { - font-family: $body-font; - font-size: $body-font-size; - line-height: $body-line-height; - color: $text-gray-dark; - background-color: $bg-white; -} - -a { - color: $text-blue; - text-decoration: none; - - &:hover { - text-decoration: underline; - } -} - -b, -strong { - font-weight: $font-weight-bold; -} - -// Horizontal lines -// -// TODO-MDO: Remove `.rule` from everywhere and replace with `
`s -hr, -.rule { - height: 0; - margin: 15px 0; - overflow: hidden; - background: transparent; - border: 0; - border-bottom: 1px solid lighten($gray-300, 5%); - @include clearfix(); -} - -// -// Remove most spacing between table cells. -// - -table { - border-spacing: 0; - border-collapse: collapse; -} - -td, -th { - padding: 0; -} - -button { - cursor: pointer; - // Remove border radius added by Chroma macOS - border-radius: 0; -} - -// increase the selector specificity for [hidden] -// so that it always overrides utility classes (.d-block, etc.) -[hidden][hidden] { - display: none !important; -} - -details { - summary { cursor: pointer; } - - &:not([open]) { - // Set details content hidden by default for browsers that don't do this - > *:not(summary) { display: none !important; } - } -} diff --git a/_sass/primer-base/lib/normalize.scss b/_sass/primer-base/lib/normalize.scss deleted file mode 100644 index 56697de8..00000000 --- a/_sass/primer-base/lib/normalize.scss +++ /dev/null @@ -1,421 +0,0 @@ -// stylelint-disable -/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */ - -/** - * 1. Change the default font family in all browsers (opinionated). - * 2. Prevent adjustments of font size after orientation changes in IE and iOS. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove the margin in all browsers (opinionated). - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - * 2. Add the correct display in IE. - */ - -article, -aside, -details, /* 1 */ -figcaption, -figure, -footer, -header, -main, /* 2 */ -menu, -nav, -section { /* 1 */ - display: block; -} - -summary { - display: list-item; -} - -/** - * Add the correct display in IE 9-. - */ - -audio, -canvas, -progress, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Add the correct display in IE 10-. - * 1. Add the correct display in IE. - */ - -template, /* 1 */ -[hidden] { - display: none !important; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; /* 1 */ -} - -/** - * Remove the outline on focused links when they are also active or hovered - * in all browsers (opinionated). - */ - -a:active, -a:hover { - outline-width: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * 1. Remove the bottom border in Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ - -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * Add the correct font style in Android 4.3-. - */ - -dfn { - font-style: italic; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Add the correct background and color in IE 9-. - */ - -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10-. - */ - -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct margin in IE 8. - */ - -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change font properties to `inherit` in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -select, -textarea { - font: inherit; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Restore the font weight unset by the previous rule. - */ - -optgroup { - font-weight: bold; -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ - -button, -html [type="button"], /* 1 */ -[type="reset"], -[type="submit"] { - -webkit-appearance: button; /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Change the border, margin, and padding in all browsers (opinionated). - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on OS X. - */ - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Correct the text style of placeholders in Chrome, Edge, and Safari. - */ - -::-webkit-input-placeholder { - color: inherit; - opacity: 0.54; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} diff --git a/_sass/primer-base/lib/typography-base.scss b/_sass/primer-base/lib/typography-base.scss deleted file mode 100644 index 091a558e..00000000 --- a/_sass/primer-base/lib/typography-base.scss +++ /dev/null @@ -1,86 +0,0 @@ -// Headings -// -------------------------------------------------- -// stylelint-disable selector-max-type -h1, -h2, -h3, -h4, -h5, -h6 { - margin-top: 0; - margin-bottom: 0; -} - -h1 { @include h1; } -h2 { @include h2; } -h3 { @include h3; } -h4 { @include h4; } -h5 { @include h5; } -h6 { @include h6; } - -// Body text -// -------------------------------------------------- - -p { - margin-top: 0; - margin-bottom: 10px; -} - -small { - font-size: 90%; -} - -blockquote { - margin: 0; -} - -// Lists -// -------------------------------------------------- - -ul, -ol { - padding-left: 0; - margin-top: 0; - margin-bottom: 0; -} - -ol ol, -ul ol { - list-style-type: lower-roman; -} - -ul ul ol, -ul ol ol, -ol ul ol, -ol ol ol { - list-style-type: lower-alpha; -} - -dd { - margin-left: 0; -} - -// Code -// -------------------------------------------------- - -tt, -code { - font-family: $mono-font; - font-size: $font-size-small; -} - -pre { - margin-top: 0; - margin-bottom: 0; - font-family: $mono-font; - font-size: $font-size-small; -} - -// Octicons -// -------------------------------------------------- - -// Move this over here as a temporary override to the octicons source repo -// instead of updating that upstream. -.octicon { - vertical-align: text-bottom; -} diff --git a/_sass/primer-layout/index.scss b/_sass/primer-layout/index.scss deleted file mode 100644 index 43a0d3e5..00000000 --- a/_sass/primer-layout/index.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "primer-support/index.scss"; -@import "./lib/container.scss"; -@import "./lib/columns.scss"; -@import "./lib/grid.scss"; -@import "./lib/grid-offset.scss"; diff --git a/_sass/primer-layout/lib/columns.scss b/_sass/primer-layout/lib/columns.scss deleted file mode 100644 index 9f77abd0..00000000 --- a/_sass/primer-layout/lib/columns.scss +++ /dev/null @@ -1,54 +0,0 @@ -// Grid system -// -// Create rows with `.columns` to clear the floated columns and outdent the -// padding on `.column`s with negative margin for alignment. - -.columns { - margin-right: -$grid-gutter; - margin-left: -$grid-gutter; - @include clearfix; -} - -// Base class for every column (requires a column width from below) -.column { - float: left; - padding-right: $grid-gutter; - padding-left: $grid-gutter; -} - -// Column widths -.one-third { - width: 33.333333%; -} - -.two-thirds { - width: 66.666667%; -} - -.one-fourth { - width: 25%; -} - -.one-half { - width: 50%; -} - -.three-fourths { - width: 75%; -} - -.one-fifth { - width: 20%; -} - -.four-fifths { - width: 80%; -} - -// Centers content horizontally. Can be used inside or outside the grid. -.centered { - display: block; - float: none; - margin-right: auto; - margin-left: auto; -} diff --git a/_sass/primer-layout/lib/container.scss b/_sass/primer-layout/lib/container.scss deleted file mode 100644 index 2f0f4dcc..00000000 --- a/_sass/primer-layout/lib/container.scss +++ /dev/null @@ -1,30 +0,0 @@ -// Fixed-width, centered column for site content. -// This will be deprecated and replaced with container-lg in future -.container { - width: $container-width; - margin-right: auto; - margin-left: auto; - @include clearfix; -} - -// Handy container styles that match our breakpoints -// 768px -.container-md { - max-width: $container-md; - margin-right: auto; - margin-left: auto; -} - -// 1004px - this matches the current fixed width: 980px + padding: px-3 -.container-lg { - max-width: $container-lg; - margin-right: auto; - margin-left: auto; -} - -// 1280px -.container-xl { - max-width: $container-xl; - margin-right: auto; - margin-left: auto; -} diff --git a/_sass/primer-layout/lib/grid-offset.scss b/_sass/primer-layout/lib/grid-offset.scss deleted file mode 100644 index bc2115d8..00000000 --- a/_sass/primer-layout/lib/grid-offset.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Optional offset options to work with grid.scss - -// Offset Columns - -@each $breakpoint, $variant in $responsive-variants { - @include breakpoint($breakpoint) { - .offset#{$variant}-1 { margin-left: (1 / 12 * 100%) !important; } - .offset#{$variant}-2 { margin-left: (2 / 12 * 100%) !important; } - .offset#{$variant}-3 { margin-left: (3 / 12 * 100%) !important; } - .offset#{$variant}-4 { margin-left: (4 / 12 * 100%) !important; } - .offset#{$variant}-5 { margin-left: (5 / 12 * 100%) !important; } - .offset#{$variant}-6 { margin-left: (6 / 12 * 100%) !important; } - .offset#{$variant}-7 { margin-left: (7 / 12 * 100%) !important; } - .offset#{$variant}-8 { margin-left: (8 / 12 * 100%) !important; } - .offset#{$variant}-9 { margin-left: (9 / 12 * 100%) !important; } - .offset#{$variant}-10 { margin-left: (10 / 12 * 100%) !important; } - .offset#{$variant}-11 { margin-left: (11 / 12 * 100%) !important; } - } -} diff --git a/_sass/primer-layout/lib/grid.scss b/_sass/primer-layout/lib/grid.scss deleted file mode 100644 index 5126c6b1..00000000 --- a/_sass/primer-layout/lib/grid.scss +++ /dev/null @@ -1,64 +0,0 @@ -// GRID - -// Columns -.col-1 { width: (1 / 12 * 100%); } -.col-2 { width: (2 / 12 * 100%); } -.col-3 { width: (3 / 12 * 100%); } -.col-4 { width: (4 / 12 * 100%); } -.col-5 { width: (5 / 12 * 100%); } -.col-6 { width: (6 / 12 * 100%); } -.col-7 { width: (7 / 12 * 100%); } -.col-8 { width: (8 / 12 * 100%); } -.col-9 { width: (9 / 12 * 100%); } -.col-10 { width: (10 / 12 * 100%); } -.col-11 { width: (11 / 12 * 100%); } -.col-12 { width: 100%; } - -@each $breakpoint in map-keys($breakpoints) { - @include breakpoint($breakpoint) { - .col-#{$breakpoint}-1 { width: ( 1 / 12 * 100%); } - .col-#{$breakpoint}-2 { width: ( 2 / 12 * 100%); } - .col-#{$breakpoint}-3 { width: ( 3 / 12 * 100%); } - .col-#{$breakpoint}-4 { width: ( 4 / 12 * 100%); } - .col-#{$breakpoint}-5 { width: ( 5 / 12 * 100%); } - .col-#{$breakpoint}-6 { width: ( 6 / 12 * 100%); } - .col-#{$breakpoint}-7 { width: ( 7 / 12 * 100%); } - .col-#{$breakpoint}-8 { width: ( 8 / 12 * 100%); } - .col-#{$breakpoint}-9 { width: ( 9 / 12 * 100%); } - .col-#{$breakpoint}-10 { width: ( 10 / 12 * 100%); } - .col-#{$breakpoint}-11 { width: ( 11 / 12 * 100%); } - .col-#{$breakpoint}-12 { width: 100%; } - } -} - -// Gutters -// Apply padding and a negative margin to the outside of the container -@mixin gutters ($gutter-width: $spacer-3) { - margin-right: -$gutter-width; - margin-left: -$gutter-width; - - > [class*="col-"] { - padding-right: $gutter-width !important; - padding-left: $gutter-width !important; - } -} - -.gutter { - @include gutters($spacer-3); -} - -.gutter-condensed { - @include gutters($spacer-2); -} - -.gutter-spacious { - @include gutters($spacer-4); -} - -@each $breakpoint in map-keys($breakpoints) { - @include breakpoint($breakpoint) { - .gutter-#{$breakpoint} { @include gutters($spacer-3); } - .gutter-#{$breakpoint}-condensed { @include gutters($spacer-2); } - .gutter-#{$breakpoint}-spacious { @include gutters($spacer-4); } - } -} diff --git a/_sass/primer-markdown/index.scss b/_sass/primer-markdown/index.scss deleted file mode 100644 index 064e775d..00000000 --- a/_sass/primer-markdown/index.scss +++ /dev/null @@ -1,8 +0,0 @@ -@import "primer-support/index.scss"; -@import "./lib/markdown-body.scss"; -@import "./lib/headings.scss"; -@import "./lib/lists.scss"; -@import "./lib/tables.scss"; -@import "./lib/images.scss"; -@import "./lib/code.scss"; -@import "./lib/blob-csv.scss"; diff --git a/_sass/primer-markdown/lib/blob-csv.scss b/_sass/primer-markdown/lib/blob-csv.scss deleted file mode 100644 index 5fa3c88c..00000000 --- a/_sass/primer-markdown/lib/blob-csv.scss +++ /dev/null @@ -1,27 +0,0 @@ -// stylelint-disable selector-max-type -.markdown-body .csv-data { - td, - th { - padding: 5px; - overflow: hidden; - font-size: $font-size-small; - line-height: $lh-condensed-ultra; - text-align: left; - white-space: nowrap; - } - - .blob-num { - padding: 10px $spacer-2 9px; - text-align: right; - background: $bg-white; - border: 0; - } - - tr { border-top: 0; } - - th { - font-weight: $font-weight-bold; - background: $gray-100; - border-top: 0; - } -} diff --git a/_sass/primer-markdown/lib/code.scss b/_sass/primer-markdown/lib/code.scss deleted file mode 100644 index 3cdd3f9b..00000000 --- a/_sass/primer-markdown/lib/code.scss +++ /dev/null @@ -1,63 +0,0 @@ -// stylelint-disable selector-max-type -.markdown-body { - // Inline code snippets - code, - tt { - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - background-color: rgba($black, 0.05); - border-radius: $border-radius; - - br { display: none; } - } - - del code { text-decoration: inherit; } - - pre { - word-wrap: normal; - - // Code tags within code blocks (
s)
-    > code {
-      padding: 0;
-      margin: 0;
-      font-size: 100%;
-      word-break: normal;
-      white-space: pre;
-      background: transparent;
-      border: 0;
-    }
-  }
-
-  .highlight {
-    margin-bottom: $spacer-3;
-
-    pre {
-      margin-bottom: 0;
-      word-break: normal;
-    }
-  }
-
-  .highlight pre,
-  pre {
-    padding: $spacer-3;
-    overflow: auto;
-    font-size: 85%;
-    line-height: 1.45;
-    background-color: $gray-100;
-    border-radius: $border-radius;
-  }
-
-  pre code,
-  pre tt {
-    display: inline;
-    max-width: auto;
-    padding: 0;
-    margin: 0;
-    overflow: visible;
-    line-height: inherit;
-    word-wrap: normal;
-    background-color: transparent;
-    border: 0;
-  }
-}
diff --git a/_sass/primer-markdown/lib/headings.scss b/_sass/primer-markdown/lib/headings.scss
deleted file mode 100644
index 49a03457..00000000
--- a/_sass/primer-markdown/lib/headings.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-// Needs refactoring
-// stylelint-disable selector-max-compound-selectors, selector-max-specificity
-// stylelint-disable selector-max-type
-.markdown-body {
-  // Headings
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6 {
-    margin-top: $spacer-4;
-    margin-bottom: $spacer-3;
-    font-weight: $font-weight-bold;
-    line-height: $lh-condensed;
-
-    .octicon-link {
-      color: $black;
-      vertical-align: middle;
-      visibility: hidden;
-    }
-
-    &:hover .anchor {
-      text-decoration: none;
-
-      .octicon-link {
-        visibility: visible;
-      }
-    }
-
-    tt,
-    code {
-      font-size: inherit;
-    }
-  }
-
-  h1 {
-    padding-bottom: 0.3em;
-    font-size: 2em;
-    border-bottom: 1px solid lighten($gray-200, 3%);
-  }
-
-  h2 {
-    padding-bottom: 0.3em;
-    font-size: 1.5em;
-    border-bottom: 1px solid lighten($gray-200, 3%);
-  }
-
-  h3 {
-    font-size: 1.25em;
-  }
-
-  h4 {
-    font-size: 1em;
-  }
-
-  h5 {
-    font-size: 0.875em;
-  }
-
-  h6 {
-    font-size: 0.85em;
-    color: $gray-500;
-  }
-}
diff --git a/_sass/primer-markdown/lib/images.scss b/_sass/primer-markdown/lib/images.scss
deleted file mode 100644
index 3d70f8da..00000000
--- a/_sass/primer-markdown/lib/images.scss
+++ /dev/null
@@ -1,119 +0,0 @@
-// Need to target base styles
-// stylelint-disable selector-max-compound-selectors, selector-no-qualifying-type, primer/selector-no-utility
-// stylelint-disable selector-max-type
-.markdown-body {
-  // Images & Stuff
-  img {
-    max-width: 100%;
-    // because we put padding on the images to hide header lines, and some people
-    // specify the width of their images in their markdown.
-    box-sizing: content-box;
-    background-color: $bg-white;
-
-    &[align=right] {
-      padding-left: 20px;
-    }
-
-    &[align=left] {
-      padding-right: 20px;
-    }
-  }
-
-  .emoji {
-    max-width: none;
-    vertical-align: text-top;
-    // Override `` styles so Emjois don't clash with zebra striping in our tables
-    background-color: transparent;
-  }
-
-  // Gollum Image Tags
-
-  // Framed
-  span.frame {
-    display: block;
-    overflow: hidden;
-
-    > span {
-      display: block;
-      float: left;
-      width: auto;
-      padding: 7px;
-      margin: 13px 0 0;
-      overflow: hidden;
-      border: 1px solid lighten($gray-300, 5%);
-    }
-
-    span img {
-      display: block;
-      float: left;
-    }
-
-    span span {
-      display: block;
-      padding: 5px 0 0;
-      clear: both;
-      color: $text-gray-dark;
-    }
-  }
-
-  span.align-center {
-    display: block;
-    overflow: hidden;
-    clear: both;
-
-    > span {
-      display: block;
-      margin: 13px auto 0;
-      overflow: hidden;
-      text-align: center;
-    }
-
-    span img {
-      margin: 0 auto;
-      text-align: center;
-    }
-  }
-
-  span.align-right {
-    display: block;
-    overflow: hidden;
-    clear: both;
-
-    > span {
-      display: block;
-      margin: 13px 0 0;
-      overflow: hidden;
-      text-align: right;
-    }
-
-    span img {
-      margin: 0;
-      text-align: right;
-    }
-  }
-
-  span.float-left {
-    display: block;
-    float: left;
-    margin-right: 13px;
-    overflow: hidden;
-
-    span {
-      margin: 13px 0 0;
-    }
-  }
-
-  span.float-right {
-    display: block;
-    float: right;
-    margin-left: 13px;
-    overflow: hidden;
-
-    > span {
-      display: block;
-      margin: 13px auto 0;
-      overflow: hidden;
-      text-align: right;
-    }
-  }
-}
diff --git a/_sass/primer-markdown/lib/lists.scss b/_sass/primer-markdown/lib/lists.scss
deleted file mode 100644
index c80cdfc3..00000000
--- a/_sass/primer-markdown/lib/lists.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-// Base styles
-// stylelint-disable selector-no-qualifying-type
-// stylelint-disable selector-max-type
-.markdown-body {
-
-  // Lists, Blockquotes & Such
-  ul,
-  ol {
-    padding-left: 2em;
-
-    &.no-list {
-      padding: 0;
-      list-style-type: none;
-    }
-  }
-
-  // Did someone complain about list spacing? Encourage them
-  // to create the spacing with their markdown formatting.
-  // List behavior should be controled by the markup, not the css.
-  //
-  // For lists with padding between items, use blank
-  // lines between items. This will generate paragraphs with
-  // padding to space things out.
-  //
-  // - item
-  //
-  // - item
-  //
-  // - item
-  //
-  // For list without padding, don't use blank lines.
-  //
-  // - item
-  // - item
-  // - item
-  //
-  // Modifying the css to emulate these behaviors merely brakes
-  // one case in the process of solving another. Don't change
-  // this unless it's really really a bug.
-  ul ul,
-  ul ol,
-  ol ol,
-  ol ul {
-    margin-top: 0;
-    margin-bottom: 0;
-  }
-
-  li {
-    word-wrap: break-all;
-  }
-
-  li > p {
-    margin-top: $spacer-3;
-  }
-
-  li + li {
-    margin-top: $em-spacer-3;
-  }
-
-  dl {
-    padding: 0;
-
-    dt {
-      padding: 0;
-      margin-top: $spacer-3;
-      font-size: 1em;
-      font-style: italic;
-      font-weight: $font-weight-bold;
-    }
-
-    dd {
-      padding: 0 $spacer-3;
-      margin-bottom: $spacer-3;
-    }
-  }
-}
diff --git a/_sass/primer-markdown/lib/markdown-body.scss b/_sass/primer-markdown/lib/markdown-body.scss
deleted file mode 100644
index 697fab90..00000000
--- a/_sass/primer-markdown/lib/markdown-body.scss
+++ /dev/null
@@ -1,106 +0,0 @@
-// All of our block level items should have the same margin
-// stylelint-disable selector-max-type
-
-// This is styling for generic markdownized text. Anything you put in a
-// container with .markdown-body on it should render generally well. It also
-// includes some GitHub Flavored Markdown specific styling (like @mentions)
-.markdown-body {
-  font-family: $body-font;
-  font-size: $h4-size;
-  line-height: $body-line-height;
-  word-wrap: break-word;
-
-  // Clearfix on the markdown body
-  &::before {
-    display: table;
-    content: "";
-  }
-
-  &::after {
-    display: table;
-    clear: both;
-    content: "";
-  }
-
-  > *:first-child {
-    margin-top: 0 !important;
-  }
-
-  > *:last-child {
-    margin-bottom: 0 !important;
-  }
-
-  // Anchors like . These sometimes end up wrapped around
-  // text when users mistakenly forget to close the tag or use self-closing tag
-  // syntax. We don't want them to appear like links.
-  // FIXME: a:not(:link):not(:visited) would be a little clearer here (and
-  // possibly faster to match), but it breaks styling of  elements due
-  // to https://bugs.webkit.org/show_bug.cgi?id=142737.
-  a:not([href]) {
-    color: inherit;
-    text-decoration: none;
-  }
-
-  // Link Colors
-  .absent {
-    color: $red-600;
-  }
-
-  .anchor {
-    float: left;
-    padding-right: $spacer-1;
-    margin-left: -20px;
-    line-height: $lh-condensed-ultra;
-
-    &:focus {
-      outline: none;
-    }
-  }
-
-  p,
-  blockquote,
-  ul,
-  ol,
-  dl,
-  table,
-  pre {
-    margin-top: 0;
-    margin-bottom: $spacer-3;
-  }
-
-  hr {
-    height: $em-spacer-3;
-    padding: 0;
-    margin: $spacer-4 0;
-    background-color: $gray-200;
-    border: 0;
-  }
-
-  blockquote {
-    padding: 0 1em;
-    color: $gray-500;
-    border-left: 0.25em solid lighten($gray-300, 5%);
-
-    > :first-child {
-      margin-top: 0;
-    }
-
-    > :last-child {
-      margin-bottom: 0;
-    }
-  }
-
-  kbd {
-    display: inline-block;
-    padding: 3px 5px;
-    font-size: 11px;
-    line-height: 10px;
-    color: $gray-700;
-    vertical-align: middle;
-    background-color: $gray-000;
-    border: solid 1px darken($gray-300, 4%);
-    border-bottom-color: $gray-400;
-    border-radius: 3px;
-    box-shadow: inset 0 -1px 0 $gray-400;
-  }
-}
diff --git a/_sass/primer-markdown/lib/tables.scss b/_sass/primer-markdown/lib/tables.scss
deleted file mode 100644
index 1f48119e..00000000
--- a/_sass/primer-markdown/lib/tables.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-// Needs refactoring
-// stylelint-disable selector-max-type
-.markdown-body {
-  // Tables
-  table {
-    display: block;
-    width: 100%;
-    overflow: auto;
-
-    th {
-      font-weight: $font-weight-bold;
-    }
-
-    th,
-    td {
-      padding: 6px 13px;
-      border: 1px solid lighten($gray-300, 5%);
-    }
-
-    tr {
-      background-color: $bg-white;
-      border-top: 1px solid darken($gray-300, 4%);
-
-      &:nth-child(2n) {
-        background-color: $gray-100;
-      }
-    }
-
-    img {
-      background-color: transparent;
-    }
-  }
-}
diff --git a/_sass/primer-support/index.scss b/_sass/primer-support/index.scss
deleted file mode 100644
index 1b5abdd8..00000000
--- a/_sass/primer-support/index.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// variables
-@import "./lib/variables/typography.scss";
-@import "./lib/variables/colors.scss";
-@import "./lib/variables/layout.scss";
-@import "./lib/variables/misc.scss";
-
-// mixins
-@import "./lib/mixins/typography.scss";
-@import "./lib/mixins/layout.scss";
-@import "./lib/mixins/buttons.scss";
-@import "./lib/mixins/misc.scss";
diff --git a/_sass/primer-support/lib/mixins/buttons.scss b/_sass/primer-support/lib/mixins/buttons.scss
deleted file mode 100644
index 8b0f30be..00000000
--- a/_sass/primer-support/lib/mixins/buttons.scss
+++ /dev/null
@@ -1,160 +0,0 @@
-// stylelint-disable block-closing-brace-newline-after
-
-// Button color generator for primary and themed buttons
-
-// New button hotness
-@mixin btn-solid($color, $bg, $bg2) {
-  color: $color;
-  background-color: $bg2;
-  background-image: linear-gradient(-180deg, $bg 0%, $bg2 90%);
-
-  @if $bg == $gray-000 {
-    &:focus,
-    &.focus {
-      box-shadow: $btn-input-focus-shadow;
-    }
-
-    &:hover,
-    &.hover {
-      background-color: darken($bg2, 3%);
-      background-image: linear-gradient(-180deg, darken($bg, 3%) 0%, darken($bg2, 3%) 90%);
-      background-position: 0 -$em-spacer-5;
-      border-color: rgba($black, 0.35);
-    }
-
-    &:active,
-    &.selected,
-    [open] > & {
-      background-color: darken(desaturate($bg, 10%), 6%);
-      background-image: none;
-      border-color: rgba($black, 0.35); // repeat to avoid shift on click-drag off of button
-      box-shadow: $btn-active-shadow;
-    }
-
-    &:disabled,
-    &.disabled {
-      color: rgba($color, 0.4);
-      background-color: $bg2;
-      background-image: none;
-      border-color: transparentize($black, 0.8); // back to default .btn
-      box-shadow: none;
-    }
-
-  } @else {
-    &:focus,
-    &.focus {
-      box-shadow: 0 0 0 0.2em rgba($bg, 0.4);
-    }
-
-    &:hover,
-    &.hover {
-      background-color: darken($bg2, 2%);
-      background-image: linear-gradient(-180deg, darken($bg, 2%) 0%, darken($bg2, 2%) 90%);
-      background-position: 0 -$em-spacer-5;
-      border-color: $black-fade-50;
-    }
-
-    &:active,
-    &.selected,
-    [open] > & {
-      background-color: darken(mix($bg, $bg2, 50%), 7%);
-      background-image: none;
-      border-color: $black-fade-50; // repeat to avoid shift on click-drag off of button
-      box-shadow: $btn-active-shadow;
-    }
-
-    &:disabled,
-    &.disabled {
-      color: rgba($color, 0.75);
-      background-color: mix($bg2, $white, 50%);
-      background-image: none;
-      border-color: transparentize($black, 0.8); // repeat .btn default to avoid shift on click-drag off of button
-      box-shadow: none;
-    }
-
-    .Counter {
-      color: darken($bg, 8%);
-      background-color: $white;
-    }
-  }
-}
-
-// Inverse button hover style
-@mixin btn-inverse($color, $bg, $bg2) {
-  color: $color;
-  background-color: $bg;
-  background-image: linear-gradient(-180deg, $bg 0%, $bg2 90%);
-
-  &:focus {
-    box-shadow: 0 0 0 0.2em rgba($color, 0.4);
-  }
-
-  &:hover {
-    color: $text-white;
-    background-color: $color;
-    background-image: linear-gradient(-180deg, lighten($color, 10%) 0%, $color 90%);
-    border-color: $black-fade-50;
-
-    .Counter {
-      color: $text-white;
-    }
-  }
-
-  &:active,
-  &.selected,
-  [open] > & {
-    color: $text-white;
-    background-color: darken($color, 5%);
-    background-image: none;
-    border-color: $black-fade-50;
-    box-shadow: $btn-active-shadow;
-  }
-
-  &:disabled,
-  &.disabled {
-    color: rgba($color, 0.4);
-    background-color: $bg2;
-    background-image: none;
-    border-color: transparentize($black, 0.8); // back to default .btn
-    box-shadow: none;
-  }
-}
-
-// Outline color generator for btn-outline to make the hover state inverse the text and bg colors.
-@mixin btn-outline($text-color: $text-blue, $bg-color: $bg-white) {
-  color: $text-color;
-  background-color: $bg-color;
-  background-image: none;
-
-  .Counter {
-    background-color: rgba($black, 0.07);
-  }
-
-  &:hover,
-  &:active,
-  &.selected,
-  [open] > & {
-    color: $bg-color;
-    background-color: $text-color;
-    background-image: none;
-    border-color: $text-color;
-
-    .Counter {
-      color: $text-color;
-      background-color: $bg-color;
-    }
-  }
-
-  &:focus {
-    border-color: $text-color;
-    box-shadow: 0 0 0 0.2em rgba($text-color, 0.4);
-  }
-
-  &:disabled,
-  &.disabled {
-    color: $black-fade-30;
-    background-color: $bg-white;
-    border-color: $black-fade-15;
-    box-shadow: none;
-  }
-}
diff --git a/_sass/primer-support/lib/mixins/layout.scss b/_sass/primer-support/lib/mixins/layout.scss
deleted file mode 100644
index a6d30cf1..00000000
--- a/_sass/primer-support/lib/mixins/layout.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-// Responsive media queries
-
-@mixin breakpoint($breakpoint) {
-  @if $breakpoint == "" {
-    @content;
-  }
-
-  @else {
-    // Retrieves the value from the key
-    $value: map-get($breakpoints, $breakpoint);
-
-    // If the key exists in the map
-    @if $value != null {
-      // Prints a media query based on the value
-      @media (min-width: $value) {
-        @content;
-      }
-    }
-
-    // If the key doesn't exist in the map
-    @else {
-      @warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
-        + "Please make sure it is defined in `$breakpoints` map.";
-    }
-  }
-}
-
-// Retina media query
-
-@mixin retina-media-query {
-  @media
-    only screen and (-webkit-min-device-pixel-ratio: 2),
-    only screen and (min--moz-device-pixel-ratio: 2),
-    only screen and (-moz-min-device-pixel-ratio: 2),
-    only screen and (-o-min-device-pixel-ratio: 2/1),
-    only screen and (min-device-pixel-ratio: 2),
-    only screen and (min-resolution: 192dpi),
-    only screen and (min-resolution: 2dppx) {
-    @content;
-  }
-}
-
-// Clearfix
-//
-// Clears floats via mixin.
-
-@mixin clearfix {
-  &::before {
-    display: table;
-    content: "";
-  }
-
-  &::after {
-    display: table;
-    clear: both;
-    content: "";
-  }
-}
diff --git a/_sass/primer-support/lib/mixins/misc.scss b/_sass/primer-support/lib/mixins/misc.scss
deleted file mode 100644
index ebdd32d0..00000000
--- a/_sass/primer-support/lib/mixins/misc.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-// Generate a two-color caret for any element.
-@mixin double-caret($foreground: $text-white, $background: lighten($gray-300, 5%)) {
-  &::after,
-  &::before {
-    position: absolute;
-    top: 11px;
-    right: 100%;
-    left: -16px;
-    display: block;
-    width: 0;
-    height: 0;
-    pointer-events: none;
-    content: " ";
-    border-color: transparent;
-    border-style: solid solid outset;
-  }
-
-  &::after {
-    margin-top: 1px;
-    margin-left: 2px;
-    border-width: 7px;
-    border-right-color: $foreground;
-  }
-
-  &::before {
-    border-width: 8px;
-    border-right-color: $background;
-  }
-}
diff --git a/_sass/primer-support/lib/mixins/typography.scss b/_sass/primer-support/lib/mixins/typography.scss
deleted file mode 100644
index d39aa44c..00000000
--- a/_sass/primer-support/lib/mixins/typography.scss
+++ /dev/null
@@ -1,84 +0,0 @@
-// Text hiding for image based text replacement.
-// Higher performance than -9999px because it only renders
-// the size of the actual text, not a full 9999px box.
-@mixin hide-text() {
-  overflow: hidden;
-  text-indent: 100%;
-  white-space: nowrap;
-}
-
-// Heading mixins for use within components
-// These match heading utilities in utilities/typography
-@mixin h1 {
-  font-size: $h1-size;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h2 {
-  font-size: $h2-size;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h3 {
-  font-size: $h3-size;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h4 {
-  font-size: $h4-size;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h5 {
-  font-size: $h5-size;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h6 {
-  font-size: $h6-size;
-  font-weight: $font-weight-bold;
-}
-
-// Responsive heading mixins
-// There are no responsive mixins for h4—h6 because they are small
-// and don't need to be smaller on mobile.
-@mixin f1-responsive {
-  font-size: $h1-size-mobile;
-
-  // 32px on desktop
-  @include breakpoint(md) { font-size: $h1-size; }
-
-}
-
-@mixin f2-responsive {
-  font-size: $h2-size-mobile;
-
-  // 24px on desktop
-  @include breakpoint(md) { font-size: $h2-size; }
-}
-
-@mixin f3-responsive {
-  font-size: $h3-size-mobile;
-
-  // 20px on desktop
-  @include breakpoint(md) { font-size: $h3-size; }
-
-}
-
-// These use the mixins from above for responsive heading sizes.
-// The following mixins can be used where it's convenient or necessary to
-// couple the responsive font-size with the font-weight.
-@mixin h1-responsive {
-  @include f1-responsive;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h2-responsive {
-  @include f2-responsive;
-  font-weight: $font-weight-bold;
-}
-
-@mixin h3-responsive {
-  @include f3-responsive;
-  font-weight: $font-weight-bold;
-}
diff --git a/_sass/primer-support/lib/variables/color-system.scss b/_sass/primer-support/lib/variables/color-system.scss
deleted file mode 100644
index 0ea1a711..00000000
--- a/_sass/primer-support/lib/variables/color-system.scss
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-//
-// -------- Grays --------
-$gray-000:        #fafbfc !default;
-$gray-100:        #f6f8fa !default;
-$gray-200:        #e1e4e8 !default;
-$gray-300:        #d1d5da !default;
-$gray-400:        #959da5 !default;
-$gray-500:        #6a737d !default;
-$gray-600:        #586069 !default;
-$gray-700:        #444d56 !default;
-$gray-800:        #2f363d !default;
-$gray-900:        #24292e !default; // body font color
-
-// -------- Blue --------
-$blue-000:        #f1f8ff !default;
-$blue-100:        #dbedff !default;
-$blue-200:        #c8e1ff !default;
-$blue-300:        #79b8ff !default;
-$blue-400:        #2188ff !default;
-$blue-500:        #0366d6 !default; // Default: Passes AA with #fff
-$blue-600:        #005cc5 !default;
-$blue-700:        #044289 !default;
-$blue-800:        #032f62 !default;
-$blue-900:        #05264c !default; // Passes with 1/2/300 blues
-
-// -------- Green --------
-$green-000:       #f0fff4 !default;
-$green-100:       #dcffe4 !default;
-$green-200:       #bef5cb !default;
-$green-300:       #85e89d !default;
-$green-400:       #34d058 !default;
-$green-500:       #28a745 !default; // Default. passes AA Large
-$green-600:       #22863a !default; // Text green, passes AA on #fff
-$green-700:       #176f2c !default;
-$green-800:       #165c26 !default;
-$green-900:       #144620 !default;
-
-// -------- Yellow --------
-$yellow-000:      #fffdef !default;
-$yellow-100:      #fffbdd !default;
-$yellow-200:      #fff5b1 !default;
-$yellow-300:      #ffea7f !default;
-$yellow-400:      #ffdf5d !default;
-$yellow-500:      #ffd33d !default;
-$yellow-600:      #f9c513 !default;
-$yellow-700:      #dbab09 !default;
-$yellow-800:      #b08800 !default;
-$yellow-900:      #735c0f !default;
-
-// -------- Orange --------
-$orange-000:      #fff8f2 !default;
-$orange-100:      #ffebda !default;
-$orange-200:      #ffd1ac !default;
-$orange-300:      #ffab70 !default;
-$orange-400:      #fb8532 !default;
-$orange-500:      #f66a0a !default; // Default. passes AA Large with #fff
-$orange-600:      #e36209 !default;
-$orange-700:      #d15704 !default;
-$orange-800:      #c24e00 !default;
-$orange-900:      #a04100 !default;
-
-// -------- Red --------
-$red-000:         #ffeef0 !default;
-$red-100:         #ffdce0 !default;
-$red-200:         #fdaeb7 !default;
-$red-300:         #f97583 !default;
-$red-400:         #ea4a5a !default;
-$red-500:         #d73a49 !default; // Default. passes AA
-$red-600:         #cb2431 !default;
-$red-700:         #b31d28 !default;
-$red-800:         #9e1c23 !default;
-$red-900:         #86181d !default;
-
-// -------- Purple --------
-$purple-000:      #f5f0ff !default;
-$purple-100:      #e6dcfd !default;
-$purple-200:      #d1bcf9 !default;
-$purple-300:      #b392f0 !default;
-$purple-400:      #8a63d2 !default;
-$purple-500:      #6f42c1 !default; // passes AA with #fff
-$purple-600:      #5a32a3 !default;
-$purple-700:      #4c2889 !default;
-$purple-800:      #3a1d6e !default;
-$purple-900:      #29134e !default;
-
-// -------- Fades --------
-// Black based on same hue as $gray-900
-$black: #1b1f23 !default;
-$white: #fff !default;
-
-$black-fade-15:      rgba($black, 0.15) !default;
-$black-fade-30:      rgba($black, 0.3) !default;
-$black-fade-50:      rgba($black, 0.5) !default;
-$black-fade-70:      rgba($black, 0.7) !default;
-$black-fade-85:      rgba($black, 0.85) !default;
-
-$white-fade-15:      rgba($white, 0.15) !default;
-$white-fade-30:      rgba($white, 0.3) !default;
-$white-fade-50:      rgba($white, 0.5) !default;
-$white-fade-70:      rgba($white, 0.7) !default;
-$white-fade-85:      rgba($white, 0.85) !default;
-
-// -------- Color defaults --------
-$red:         $red-500 !default;
-$purple:      $purple-500 !default;
-$blue:        $blue-500 !default;
-$green:       $green-500 !default;
-$yellow:      $yellow-500 !default;
-$orange:      $orange-500 !default;
-
-$gray-dark:   $gray-900 !default;
-$gray-light:  $gray-400 !default;
-$gray:        $gray-500 !default;
diff --git a/_sass/primer-support/lib/variables/colors.scss b/_sass/primer-support/lib/variables/colors.scss
deleted file mode 100644
index 36dc3c8a..00000000
--- a/_sass/primer-support/lib/variables/colors.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-@import "color-system.scss";
-// Color variables
-// stylelint-disable declaration-bang-space-before
-
-// State indicators.
-$status-pending:    desaturate($yellow-700, 15%) !default;
-
-// Repository type colors
-// Should be able to deprecate these in future
-$repo-private-text: $black-fade-70 !default;
-$repo-private-bg:   $yellow-000 !default;
-$repo-private-icon: transparentize($yellow-900, 0.5) !default;
-
-// Highlight used for things like search
-$highlight-yellow: rgba(255, 247, 140, 0.5);
-
-// Border colors
-$border-black-fade:  $black-fade-15 !default;
-
-$border-blue:        $blue-500 !default;
-$border-blue-light:  $blue-200 !default;
-
-$border-green:       $green-400 !default;
-$border-green-light: desaturate($green-300, 40%) !default;
-
-$border-purple:      $purple !default;
-
-$border-red:         $red !default;
-$border-red-light:   desaturate($red-300, 60%) !default;
-
-$border-purple:      $purple !default;
-
-$border-yellow:      desaturate($yellow-300, 60%) !default;
-
-$border-gray-dark:   $gray-300 !default;
-$border-gray-darker: $gray-700 !default;
-$border-gray-light:  lighten($gray-200, 3%) !default;
-$border-gray:        $gray-200 !default;
-
-// Background colors
-$bg-blue-light:     $blue-000 !default;
-$bg-blue:           $blue-500 !default;
-$bg-gray-dark:      $gray-900 !default;
-$bg-gray-light:     $gray-000 !default;
-$bg-gray:           $gray-100 !default;
-$bg-green:          $green-500 !default;
-$bg-green-light:    $green-100 !default;
-$bg-orange:         $orange-700 !default;
-$bg-purple:         $purple-500 !default;
-$bg-purple-light:   $purple-000 !default;
-$bg-red:            $red-500 !default;
-$bg-red-light:      $red-100 !default;
-$bg-white:          $white !default;
-$bg-yellow:         $yellow-500 !default;
-$bg-yellow-light:   $yellow-200 !default;
-
-// Text colors
-$text-blue:         $blue-500 !default;
-$text-gray-dark:    $gray-900 !default;
-$text-gray-light:   $gray-500 !default;
-$text-gray:         $gray-600 !default;
-$text-green:        $green-500 !default;
-$text-orange:       $orange-900 !default;
-$text-orange-light: $orange-600 !default;
-$text-purple:       $purple !default;
-$text-red:          $red-600 !default;
-$text-white:        $white !default;
diff --git a/_sass/primer-support/lib/variables/layout.scss b/_sass/primer-support/lib/variables/layout.scss
deleted file mode 100644
index 284407a4..00000000
--- a/_sass/primer-support/lib/variables/layout.scss
+++ /dev/null
@@ -1,72 +0,0 @@
-// Layout variables
-// stylelint-disable declaration-bang-space-before
-
-// These are our margin and padding utility spacers. The default step size we
-// use is 8px. This gives us a key of:
-//    0 => 0px
-//    1 => 4px
-//    2 => 8px
-//    3 => 16px
-//    4 => 24px
-//    5 => 32px
-//    6 => 40px
-$spacer: 8px !default;
-$spacers: (
-  0,
-  round($spacer / 2),
-  $spacer,
-  $spacer * 2,
-  $spacer * 3,
-  $spacer * 4,
-  $spacer * 5
-) !default;
-
-// Aliases for easy use
-$spacer-0: nth($spacers, 1) !default; // 0
-$spacer-1: nth($spacers, 2) !default; // 4px
-$spacer-2: nth($spacers, 3) !default; // 8px
-$spacer-3: nth($spacers, 4) !default; // 16px
-$spacer-4: nth($spacers, 5) !default; // 24px
-$spacer-5: nth($spacers, 6) !default; // 32px
-$spacer-6: nth($spacers, 7) !default; // 40px
-
-// Em spacer variables
-$em-spacer-1: 0.0625em !default; // 1/16
-$em-spacer-2: 0.125em !default;  // 1/8
-$em-spacer-3: 0.25em !default;   // 1/4
-$em-spacer-4: 0.375em !default;  // 3/8
-$em-spacer-5: 0.5em !default;    // 1/2
-$em-spacer-6: 0.75em !default;   // 3/4
-
-// Fixed-width container variables
-$container-width: 980px !default;
-$grid-gutter:     10px !default;
-
-// Breakpoint widths
-$width-xs: 0;
-$width-sm: 544px;
-$width-md: 768px;
-$width-lg: 1012px;
-$width-xl: 1280px;
-
-// Responsive container widths
-$container-md: $width-md !default;
-$container-lg: $width-lg !default;
-$container-xl: $width-xl !default;
-
-// Breakpoints
-$breakpoints: (
-  // Small screen / phone
-  sm: $width-sm,
-  // Medium screen / tablet
-  md: $width-md,
-  // Large screen / desktop (980 + (16 * 2)) <= container + gutters
-  lg: $width-lg,
-  // Extra large screen / wide desktop
-  xl: $width-xl
-) !default;
-
-$responsive-variants: ("": "");
-@each $key in map-keys($breakpoints) {
-  $responsive-variants: map-merge($responsive-variants, ($key: "-#{$key}"));
-}
diff --git a/_sass/primer-support/lib/variables/misc.scss b/_sass/primer-support/lib/variables/misc.scss
deleted file mode 100644
index cd6414f5..00000000
--- a/_sass/primer-support/lib/variables/misc.scss
+++ /dev/null
@@ -1,40 +0,0 @@
-// Miscellaneous variables
-// stylelint-disable declaration-bang-space-before
-
-// Border size
-$border-width: 1px !default;
-$border-color: $border-gray !default;
-$border-style: solid !default;
-$border: $border-width $border-color $border-style !default;
-$border-radius: 3px !default;
-
-// Custom explore grid border
-$exploregrid-item-border-radius: 4px;
-
-// Box shadow
-$box-shadow: 0 1px 1px rgba($black, 0.1) !default;
-$box-shadow-medium: 0 1px 5px $black-fade-15 !default;
-$box-shadow-large: 0 1px 15px $black-fade-15 !default;
-$box-shadow-extra-large: 0 10px 50px rgba($black, 0.07) !default;
-
-// Tooltips
-$tooltip-max-width: 250px !default;
-$tooltip-background-color: $black;
-$tooltip-text-color: $white !default;
-$tooltip-delay: 0.4s !default;
-$tooltip-duration: 0.1s !default;
-
-// Should be moved into custom github css
-$stats-switcher-py: 10px;
-// Future proof this `height` value by finding the computed line-height, then
-// adding the total value of the vertical padding. This var is used to toggle
-// between the stats bar and language breakdown.
-$stats-viewport-height: ($body-font-size * $body-line-height) + ($stats-switcher-py * 2);
-
-$min_tab_size: 1;
-$max_tab_size: 12;
-
-// Button and form variables
-$form-control-shadow: inset 0 1px 2px rgba($black, 0.075);
-$btn-input-focus-shadow: 0 0 0 0.2em rgba($blue, 0.3);
-$btn-active-shadow: inset 0 0.15em 0.3em $black-fade-15;
diff --git a/_sass/primer-support/lib/variables/typography.scss b/_sass/primer-support/lib/variables/typography.scss
deleted file mode 100644
index c3d85731..00000000
--- a/_sass/primer-support/lib/variables/typography.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-// Typography variables
-// stylelint-disable declaration-bang-space-before
-
-// Heading sizes - mobile
-// h4—h6 remain the same size on both mobile & desktop
-$h00-size-mobile: 40px !default;
-$h0-size-mobile: 32px !default;
-$h1-size-mobile: 26px !default;
-$h2-size-mobile: 22px !default;
-$h3-size-mobile: 18px !default;
-
-// Heading sizes - desktop
-$h00-size: 48px !default;
-$h0-size: 40px !default;
-$h1-size: 32px !default;
-$h2-size: 24px !default;
-$h3-size: 20px !default;
-$h4-size: 16px !default;
-$h5-size: 14px !default;
-$h6-size: 12px !default;
-
-$font-size-small: 12px !default;
-
-// Font weights
-$font-weight-bold: 600 !default;
-$font-weight-semibold: 500 !default;
-$font-weight-normal: 400 !default;
-$font-weight-light: 300 !default;
-
-// Line heights
-$lh-condensed-ultra: 1 !default;
-$lh-condensed: 1.25 !default;
-$lh-default: 1.5 !default;
-
-// Font stacks
-$body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
-
-// Monospace font stack
-$mono-font: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace !default;
-
-// The base body size
-$body-font-size: 14px !default;
-$body-line-height: $lh-default !default;
diff --git a/_sass/primer-utilities/index.scss b/_sass/primer-utilities/index.scss
deleted file mode 100644
index 307b6de0..00000000
--- a/_sass/primer-utilities/index.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import "primer-support/index.scss";
-// utilities
-@import "./lib/animations.scss";
-@import "./lib/borders.scss";
-@import "./lib/box-shadow.scss";
-@import "./lib/colors.scss";
-@import "./lib/details.scss";
-@import "./lib/flexbox.scss";
-@import "./lib/layout.scss";
-@import "./lib/margin.scss";
-@import "./lib/padding.scss";
-@import "./lib/typography.scss";
-// Visibility and display should always come last in the imports so that they override other utilities with !important
-@import "./lib/visibility-display.scss";
diff --git a/_sass/primer-utilities/lib/animations.scss b/_sass/primer-utilities/lib/animations.scss
deleted file mode 100644
index 9b530d4f..00000000
--- a/_sass/primer-utilities/lib/animations.scss
+++ /dev/null
@@ -1,184 +0,0 @@
-// This file contains reusable animations for github.
-// stylelint-disable primer/selector-no-utility
-
-/* Fade in an element */
-.anim-fade-in {
-  animation-name: fade-in;
-  animation-duration: 1s;
-  animation-timing-function: ease-in-out;
-
-  &.fast {
-    animation-duration: 300ms;
-  }
-}
-
-@keyframes fade-in {
-  0% {
-    opacity: 0;
-  }
-
-  100% {
-    opacity: 1;
-  }
-}
-
-/* Fade out an element */
-.anim-fade-out {
-  animation-name: fade-out;
-  animation-duration: 1s;
-  animation-timing-function: ease-out;
-
-  &.fast {
-    animation-duration: 0.3s;
-  }
-}
-
-@keyframes fade-out {
-  0% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0;
-  }
-}
-
-/* Fade in and slide up an element */
-.anim-fade-up {
-  opacity: 0;
-  animation-name: fade-up;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease-out;
-  animation-delay: 1s;
-}
-
-@keyframes fade-up {
-  0% {
-    opacity: 0.8;
-    transform: translateY(100%);
-  }
-
-  100% {
-    opacity: 1;
-    transform: translateY(0);
-  }
-}
-
-/* Fade an element out and slide down */
-.anim-fade-down {
-  animation-name: fade-down;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease-in;
-}
-
-@keyframes fade-down {
-  0% {
-    opacity: 1;
-    transform: translateY(0);
-  }
-
-  100% {
-    opacity: 0.5;
-    transform: translateY(100%);
-  }
-}
-
-/* Grow an element width from 0 to 100% */
-.anim-grow-x {
-  width: 0%;
-  animation-name: grow-x;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease;
-  animation-delay: 0.5s;
-}
-
-@keyframes grow-x {
-  to { width: 100%; }
-}
-
-/* Shrink an element from 100% to 0% */
-.anim-shrink-x {
-  animation-name: shrink-x;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease-in-out;
-  animation-delay: 0.5s;
-}
-
-@keyframes shrink-x {
-  to { width: 0%; }
-}
-
-/* Fade in an element and scale it fast */
-.anim-scale-in {
-  animation-name: scale-in;
-  animation-duration: 0.15s;
-  animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);
-}
-
-@keyframes scale-in {
-  0% {
-    opacity: 0;
-    transform: scale(0.5);
-  }
-
-  100% {
-    opacity: 1;
-    transform: scale(1);
-  }
-}
-
-/* Pulse an element's opacity */
-.anim-pulse {
-  animation-name: pulse;
-  animation-duration: 2s;
-  animation-timing-function: linear;
-  animation-iteration-count: infinite;
-}
-
-@keyframes pulse {
-  0% {
-    opacity: 0.3;
-  }
-
-  10% {
-    opacity: 1;
-  }
-
-  100% {
-    opacity: 0.3;
-  }
-}
-
-/* Pulse in an element */
-.anim-pulse-in {
-  animation-name: pulse-in;
-  animation-duration: 0.5s;
-}
-
-@keyframes pulse-in {
-  0% {
-    transform: scale3d(1, 1, 1);
-  }
-
-  50% {
-    transform: scale3d(1.1, 1.1, 1.1);
-  }
-
-  100% {
-    transform: scale3d(1, 1, 1);
-  }
-}
-
-/* Increase scale of an element on hover */
-.hover-grow {
-  transition: transform 0.3s;
-  backface-visibility: hidden;
-
-  &:hover {
-    transform: scale(1.025);
-  }
-}
diff --git a/_sass/primer-utilities/lib/borders.scss b/_sass/primer-utilities/lib/borders.scss
deleted file mode 100644
index 1b42ebd4..00000000
--- a/_sass/primer-utilities/lib/borders.scss
+++ /dev/null
@@ -1,100 +0,0 @@
-// Border utilities
-// stylelint-disable block-opening-brace-space-before, primer/selector-no-utility, comment-empty-line-before
-
-/* Add a gray border on all sides */
-.border { border: $border !important; }
-
-/* Add a gray border to the left and right */
-.border-y {
-  border-top: $border !important;
-  border-bottom: $border !important;
-}
-
-/* Remove borders from all sides */
-.border-0 { border: 0 !important; }
-
-.border-dashed { border-style: dashed !important; }
-
-/* Use with .border to turn the border blue */
-.border-blue        { border-color: $border-blue !important; }
-/* Use with .border to turn the border blue-light */
-.border-blue-light  { border-color: $border-blue-light !important; }
-/* Use with .border to turn the border green */
-.border-green       { border-color: $border-green !important; }
-/* Use with .border to turn the border green light */
-.border-green-light { border-color: $border-green-light !important; }
-/* Use with .border to turn the border red */
-.border-red         { border-color: $border-red !important; }
-/* Use with .border to turn the border red-light */
-.border-red-light   { border-color: $border-red-light !important; }
-/* Use with .border to turn the border purple */
-.border-purple      { border-color: $border-purple !important; }
-/* Use with .border to turn the border yellow */
-.border-yellow      { border-color: $border-yellow !important; }
-/* Use with .border to turn the border gray-light */
-.border-gray-light  { border-color: $border-gray-light !important; }
-/* Use with .border to turn the border gray-dark */
-.border-gray-dark   { border-color: $border-gray-dark !important; }
-/* Use with .border to turn the border rgba black 0.15 */
-.border-black-fade  { border-color: $border-black-fade !important; }
-
-$edges: (
-  top: (top-left, top-right),
-  right: (top-right, bottom-right),
-  bottom: (bottom-right, bottom-left),
-  left: (bottom-left, top-left)
-);
-
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    /* Add a gray border */
-    /* Add a gray border to the top */
-    .border#{$variant}-top    { border-top: $border !important; }
-    /* Add a gray border to the right */
-    .border#{$variant}-right  { border-right: $border !important; }
-    /* Add a gray border to the bottom */
-    .border#{$variant}-bottom { border-bottom: $border !important; }
-    /* Add a gray border to the left */
-    .border#{$variant}-left   { border-left: $border !important; }
-
-    /* Remove the top border */
-    .border#{$variant}-top-0    { border-top: 0 !important; }
-    /* Remove the right border */
-    .border#{$variant}-right-0  { border-right: 0 !important; }
-    /* Remove the bottom border */
-    .border#{$variant}-bottom-0 { border-bottom: 0 !important; }
-    /* Remove the left border */
-    .border#{$variant}-left-0   { border-left: 0 !important; }
-
-    // Rounded corners
-    /* Remove the border-radius */
-    .rounded#{$variant}-0 { border-radius: 0 !important; }
-    /* Add a border-radius to all corners */
-    .rounded#{$variant}-1 { border-radius: $border-radius !important; }
-    /* Add a 2x border-radius to all corners */
-    .rounded#{$variant}-2 { border-radius: $border-radius * 2 !important; }
-
-    @each $edge, $corners in $edges {
-      .rounded#{$variant}-#{$edge}-0 {
-        @each $corner in $corners {
-          border-#{$corner}-radius: 0 !important;
-        }
-      }
-
-      .rounded#{$variant}-#{$edge}-1 {
-        @each $corner in $corners {
-          border-#{$corner}-radius: $border-radius !important;
-        }
-      }
-
-      .rounded#{$variant}-#{$edge}-2 {
-        @each $corner in $corners {
-          border-#{$corner}-radius: $border-radius * 2 !important;
-        }
-      }
-    }
-  }
-}
-
-/* Add a 50% border-radius to make something into a circle */
-.circle { border-radius: 50% !important; }
diff --git a/_sass/primer-utilities/lib/box-shadow.scss b/_sass/primer-utilities/lib/box-shadow.scss
deleted file mode 100644
index 9093da30..00000000
--- a/_sass/primer-utilities/lib/box-shadow.scss
+++ /dev/null
@@ -1,26 +0,0 @@
-// Box shadow utilities
-// stylelint-disable primer/selector-no-utility
-
-// Box shadows
-
-.box-shadow {
-  box-shadow: $box-shadow !important;
-}
-
-.box-shadow-medium {
-  box-shadow: $box-shadow-medium !important;
-}
-
-.box-shadow-large {
-  box-shadow: $box-shadow-large !important;
-}
-
-.box-shadow-extra-large {
-  box-shadow: $box-shadow-extra-large !important;
-}
-
-// Turn off box shadow
-
-.box-shadow-none {
-  box-shadow: none !important;
-}
diff --git a/_sass/primer-utilities/lib/colors.scss b/_sass/primer-utilities/lib/colors.scss
deleted file mode 100644
index 0f22a810..00000000
--- a/_sass/primer-utilities/lib/colors.scss
+++ /dev/null
@@ -1,106 +0,0 @@
-// Color utilities
-// stylelint-disable block-opening-brace-space-before, primer/selector-no-utility
-// stylelint-disable comment-empty-line-before
-
-// background colors
-/* Set the background to $bg-white */
-.bg-white      { background-color: $bg-white !important; }
-/* Set the background to $bg-blue */
-.bg-blue       { background-color: $bg-blue !important; }
-/* Set the background to $bg-blue-light */
-.bg-blue-light { background-color: $bg-blue-light !important; }
-/* Set the background to $bg-gray-dark */
-.bg-gray-dark  { background-color: $bg-gray-dark !important; }
-/* Set the background to $bg-gray */
-.bg-gray       { background-color: $bg-gray !important; }
-/* Set the background to $bg-gray-light */
-.bg-gray-light { background-color: $bg-gray-light !important; }
-/* Set the background to $bg-green */
-.bg-green      { background-color: $bg-green !important; }
-/* Set the background to $bg-green-light */
-.bg-green-light     { background-color: $bg-green-light !important; }
-/* Set the background to $bg-red */
-.bg-red        { background-color: $bg-red !important; }
-/* Set the background to $bg-red-light */
-.bg-red-light  { background-color: $bg-red-light !important; }
-/* Set the background to $bg-yellow */
-.bg-yellow     { background-color: $bg-yellow !important; }
-/* Set the background to $bg-yellow-light */
-.bg-yellow-light     { background-color: $bg-yellow-light !important; }
-/* Set the background to $bg-purple */
-.bg-purple     { background-color: $bg-purple !important; }
-/* Set the background to $bg-purple-light */
-.bg-purple-light     { background-color: $bg-purple-light !important; }
-
-.bg-shade-gradient {
-  background-image: linear-gradient(180deg, rgba($black, 0.065), rgba($black, 0)) !important;
-  background-repeat: no-repeat !important;
-  background-size: 100% 200px !important;
-}
-
-// text colors
-/* Set the text color to $text-blue */
-.text-blue          { color: $text-blue !important; }
-/* Set the text color to $text-red */
-.text-red           { color: $text-red !important; }
-/* Set the text color to $text-gray-light */
-.text-gray-light    { color: $text-gray-light !important; }
-/* Set the text color to $text-gray */
-.text-gray          { color: $text-gray !important; }
-/* Set the text color to $text-gray-dark */
-.text-gray-dark     { color: $text-gray-dark !important; }
-/* Set the text color to $text-green */
-.text-green         { color: $text-green !important; }
-/* Set the text color to $text-orange */
-.text-orange        { color: $text-orange !important; }
-/* Set the text color to $text-orange-light */
-.text-orange-light        { color: $text-orange-light !important; }
-/* Set the text color to $text-purple */
-.text-purple        { color: $text-purple !important; }
-/* Set the text color to $text-white */
-.text-white         { color: $text-white !important; }
-/* Set the text color to inherit */
-.text-inherit       { color: inherit !important; }
-
-// Text states
-// These can probably all be regular utilities
-.text-pending { color: $yellow-800 !important; }
-// Separate text and background colors in future to improve a11y
-.bg-pending { color: $yellow-700 !important; }
-
-// Link colors
-// Sets the links color to $text-gray and $text-blue on hover
-.link-gray {
-  color: $text-gray !important;
-
-  &:hover {
-    color: $text-blue !important;
-  }
-}
-
-// Sets the links color to $text-gray-dark and $text-blue on hover
-.link-gray-dark {
-  color: $text-gray-dark !important;
-
-  &:hover {
-    color: $text-blue !important;
-  }
-}
-
-/* Set the link color to $text-blue on hover
-  Useful when you want only part of a link to turn blue on hover */
-.link-hover-blue {
-  &:hover {
-    color: $text-blue !important;
-  }
-}
-
-/* Make a link $text-gray, then $text-blue on hover and removes the underline */
-.muted-link {
-  color: $text-gray !important;
-
-  &:hover {
-    color: $text-blue !important;
-    text-decoration: none;
-  }
-}
diff --git a/_sass/primer-utilities/lib/details.scss b/_sass/primer-utilities/lib/details.scss
deleted file mode 100644
index 32ad69ee..00000000
--- a/_sass/primer-utilities/lib/details.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-// stylelint-disable selector-max-type
-.details-overlay[open] > summary::before {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 80;
-  display: block;
-  cursor: default;
-  content: " ";
-  background: transparent;
-}
-
-.details-overlay-dark[open] > summary::before {
-  z-index: 99;
-  background: $black-fade-50;
-}
diff --git a/_sass/primer-utilities/lib/flexbox.scss b/_sass/primer-utilities/lib/flexbox.scss
deleted file mode 100644
index 63e5121f..00000000
--- a/_sass/primer-utilities/lib/flexbox.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-// Flex utility classes
-// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before
-// stylelint-disable comment-empty-line-before
-
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    // Flexbox classes
-    // Container
-    .flex#{$variant}-row         { flex-direction: row !important; }
-    .flex#{$variant}-row-reverse { flex-direction: row-reverse !important; }
-    .flex#{$variant}-column      { flex-direction: column !important; }
-
-    .flex#{$variant}-wrap     { flex-wrap: wrap !important; }
-    .flex#{$variant}-nowrap   { flex-wrap: nowrap !important; }
-
-    .flex#{$variant}-justify-start    { justify-content: flex-start !important; }
-    .flex#{$variant}-justify-end      { justify-content: flex-end !important; }
-    .flex#{$variant}-justify-center   { justify-content: center !important; }
-    .flex#{$variant}-justify-between  { justify-content: space-between !important; }
-    .flex#{$variant}-justify-around   { justify-content: space-around !important; }
-
-    .flex#{$variant}-items-start      { align-items: flex-start !important; }
-    .flex#{$variant}-items-end        { align-items: flex-end !important; }
-    .flex#{$variant}-items-center     { align-items: center !important; }
-    .flex#{$variant}-items-baseline   { align-items: baseline !important; }
-    .flex#{$variant}-items-stretch    { align-items: stretch !important; }
-
-    .flex#{$variant}-content-start    { align-content: flex-start !important; }
-    .flex#{$variant}-content-end      { align-content: flex-end !important; }
-    .flex#{$variant}-content-center   { align-content: center !important; }
-    .flex#{$variant}-content-between  { align-content: space-between !important; }
-    .flex#{$variant}-content-around   { align-content: space-around !important; }
-    .flex#{$variant}-content-stretch  { align-content: stretch !important; }
-
-    // Item
-    .flex#{$variant}-auto { flex: 1 1 auto !important; }
-    .flex#{$variant}-shrink-0 { flex-shrink: 0 !important; }
-
-    .flex#{$variant}-self-auto        { align-self: auto !important; }
-    .flex#{$variant}-self-start       { align-self: flex-start !important; }
-    .flex#{$variant}-self-end         { align-self: flex-end !important; }
-    .flex#{$variant}-self-center      { align-self: center !important; }
-    .flex#{$variant}-self-baseline    { align-self: baseline !important; }
-    .flex#{$variant}-self-stretch     { align-self: stretch !important; }
-
-    // Shorthand for equal width and height cols
-    .flex#{$variant}-item-equal {
-      flex-grow: 1;
-      flex-basis: 0;
-    }
-  }
-}
diff --git a/_sass/primer-utilities/lib/layout.scss b/_sass/primer-utilities/lib/layout.scss
deleted file mode 100644
index d5a4210c..00000000
--- a/_sass/primer-utilities/lib/layout.scss
+++ /dev/null
@@ -1,85 +0,0 @@
-// Layout
-// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before, primer/selector-no-utility
-// stylelint-disable comment-empty-line-before
-
-/* Set position to static */
-.position-static   { position: static !important; }
-/* Set position to relative */
-.position-relative { position: relative !important; }
-/* Set position to absolute */
-.position-absolute { position: absolute !important; }
-/* Set position to fixed */
-.position-fixed    { position: fixed !important; }
-
-/* Set top 0 */
-.top-0    { top: 0 !important; }
-/* Set right 0 */
-.right-0  { right: 0 !important; }
-/* Set bottom 0 */
-.bottom-0 { bottom: 0 !important; }
-/* Set left 0 */
-.left-0   { left: 0 !important; }
-
-/* Vertical align middle */
-.v-align-middle      { vertical-align: middle !important; }
-/* Vertical align top */
-.v-align-top         { vertical-align: top !important; }
-/* Vertical align bottom */
-.v-align-bottom      { vertical-align: bottom !important; }
-/* Vertical align to the top of the text */
-.v-align-text-top    { vertical-align: text-top !important; }
-/* Vertical align to the bottom of the text */
-.v-align-text-bottom { vertical-align: text-bottom !important; }
-/* Vertical align to the parent's baseline */
-.v-align-baseline    { vertical-align: baseline !important; }
-
-// Overflow utilities
-// overflow-hidden can also be used to create a new
-// block formatting context or clear floats.
-/* Set the overflow hidden */
-.overflow-hidden { overflow: hidden !important; }
-/* Set the overflow scroll */
-.overflow-scroll { overflow: scroll !important; }
-/* Set the overflow auto */
-.overflow-auto   { overflow: auto !important; }
-
-// Clear floats
-/* Clear floats around the element */
-.clearfix {
-  @include clearfix;
-}
-
-// Floats
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    /* Float to the left */
-    .float#{$variant}-left  { float: left !important; }
-    /* Float to the right */
-    .float#{$variant}-right  { float: right !important; }
-    /* No float */
-    .float#{$variant}-none { float: none !important; }
-  }
-}
-
-// Width and height utilities, helpful in combination
-// with display-table utilities and images
-/* Max width 100% */
-.width-fit   { max-width: 100% !important; }
-/* Set the width to 100% */
-.width-full  { width: 100% !important; }
-/* Max height 100% */
-.height-fit  { max-height: 100% !important; }
-/* Set the height to 100% */
-.height-full { height: 100% !important; }
-
-/* Remove min-width from element */
-.min-width-0 { min-width: 0 !important; }
-
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    /* Set the direction to rtl */
-    .direction#{$variant}-rtl { direction: rtl !important; }
-    /* Set the direction to ltr */
-    .direction#{$variant}-ltr { direction: ltr !important; }
-  }
-}
diff --git a/_sass/primer-utilities/lib/margin.scss b/_sass/primer-utilities/lib/margin.scss
deleted file mode 100644
index c47fc14f..00000000
--- a/_sass/primer-utilities/lib/margin.scss
+++ /dev/null
@@ -1,53 +0,0 @@
-// Margin spacer utilities
-// stylelint-disable block-opening-brace-space-before, declaration-colon-space-before, primer/selector-no-utility, comment-empty-line-before
-
-// Loop through the breakpoint values
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    // Loop through the spacer values
-    @for $i from 1 through length($spacers) {
-      $size: nth($spacers, $i); // sm, md, lg, xl
-      $scale: $i - 1;  // 0, 1, 2, 3, 4, 5, 6
-
-      /* Set a $size margin to all sides at $breakpoint */
-      .m#{$variant}-#{$scale}  { margin: $size !important; }
-      /* Set a $size margin on the top at $breakpoint */
-      .mt#{$variant}-#{$scale} { margin-top: $size !important; }
-      /* Set a $size margin on the right at $breakpoint */
-      .mr#{$variant}-#{$scale} { margin-right: $size !important; }
-      /* Set a $size margin on the bottom at $breakpoint */
-      .mb#{$variant}-#{$scale} { margin-bottom: $size !important; }
-      /* Set a $size margin on the left at $breakpoint */
-      .ml#{$variant}-#{$scale} { margin-left: $size !important; }
-
-      @if ($size != 0) {
-        /* Set a negative $size margin on top at $breakpoint */
-        .mt#{$variant}-n#{$scale} { margin-top   : -$size !important; }
-        /* Set a negative $size margin on the right at $breakpoint */
-        .mr#{$variant}-n#{$scale} { margin-right : -$size !important; }
-        /* Set a negative $size margin on the bottom at $breakpoint */
-        .mb#{$variant}-n#{$scale} { margin-bottom: -$size !important; }
-        /* Set a negative $size margin on the left at $breakpoint */
-        .ml#{$variant}-n#{$scale} { margin-left  : -$size !important; }
-      }
-
-      /* Set a $size margin on the left & right at $breakpoint */
-      .mx#{$variant}-#{$scale} {
-        margin-right: $size !important;
-        margin-left: $size !important;
-      }
-
-      /* Set a $size margin on the top & bottom at $breakpoint */
-      .my#{$variant}-#{$scale} {
-        margin-top: $size !important;
-        margin-bottom: $size !important;
-      }
-    }
-
-    /* responsive horizontal auto margins */
-    .mx#{$variant}-auto {
-      margin-right: auto !important;
-      margin-left: auto !important;
-    }
-  }
-}
diff --git a/_sass/primer-utilities/lib/padding.scss b/_sass/primer-utilities/lib/padding.scss
deleted file mode 100644
index bc3ba09c..00000000
--- a/_sass/primer-utilities/lib/padding.scss
+++ /dev/null
@@ -1,54 +0,0 @@
-// Padding spacer utilities
-// stylelint-disable block-opening-brace-space-before, declaration-colon-space-before
-// stylelint-disable comment-empty-line-before
-
-// Responsive padding spacer utilities
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    // Loop through the spacer values
-    @for $i from 1 through length($spacers) {
-      $size: nth($spacers, $i); // xs, sm, md, lg, xl
-      $scale: $i - 1;  // 0, 1, 2, 3, 4, 5, 6
-
-      /* Set a $size padding to all sides at $breakpoint */
-      .p#{$variant}-#{$scale}  { padding: $size !important; }
-      /* Set a $size padding to the top at $breakpoint */
-      .pt#{$variant}-#{$scale} { padding-top: $size !important; }
-      /* Set a $size padding to the right at $breakpoint */
-      .pr#{$variant}-#{$scale} { padding-right: $size !important; }
-      /* Set a $size padding to the bottom at $breakpoint */
-      .pb#{$variant}-#{$scale} { padding-bottom: $size !important; }
-      /* Set a $size padding to the left at $breakpoint */
-      .pl#{$variant}-#{$scale} { padding-left: $size !important; }
-
-      /* Set a $size padding to the left & right at $breakpoint */
-      .px#{$variant}-#{$scale} {
-        padding-right: $size !important;
-        padding-left: $size !important;
-      }
-
-      /* Set a $size padding to the top & bottom at $breakpoint */
-      .py#{$variant}-#{$scale} {
-        padding-top: $size !important;
-        padding-bottom: $size !important;
-      }
-    }
-  }
-}
-
-// responsive padding for containers
-// stylelint-disable-next-line primer/selector-no-utility
-.p-responsive {
-  padding-right: $spacer-3 !important;
-  padding-left: $spacer-3 !important;
-
-  @include breakpoint(sm) {
-    padding-right: $spacer-6 !important;
-    padding-left: $spacer-6 !important;
-  }
-
-  @include breakpoint(lg) {
-    padding-right: $spacer-3 !important;
-    padding-left: $spacer-3 !important;
-  }
-}
diff --git a/_sass/primer-utilities/lib/typography.scss b/_sass/primer-utilities/lib/typography.scss
deleted file mode 100644
index 5d2fb035..00000000
--- a/_sass/primer-utilities/lib/typography.scss
+++ /dev/null
@@ -1,215 +0,0 @@
-// stylelint-disable block-closing-brace-space-before, primer/selector-no-utility, selector-list-comma-newline-after
-// stylelint-disable comment-empty-line-before
-// Type scale variables found in primer-support/lib/variables.scss
-// $h00-size-mobile: 40px;
-// $h0-size-mobile: 32px;
-// $h1-size-mobile: 26px;
-// $h2-size-mobile: 22px;
-// $h3-size-mobile: 18px;
-// $h00-size: 48px;
-// $h0-size: 40px;
-// $h1-size: 32px;
-// $h2-size: 24px;
-// $h3-size: 20px;
-// $h4-size: 16px;
-// $h5-size: 14px;
-// $h6-size: 12px;
-
-/* Set the font size to 26px */
-.h1 {
-  font-size: $h1-size-mobile !important;
-
-  @include breakpoint(md) { font-size: $h1-size !important; }
-}
-
-/* Set the font size to 22px */
-.h2 {
-  font-size: $h2-size-mobile !important;
-
-  @include breakpoint(md) { font-size: $h2-size !important; }
-}
-
-/* Set the font size to 18px */
-.h3 {
-  font-size: $h3-size-mobile !important;
-
-  @include breakpoint(md) { font-size: $h3-size !important; }
-}
-
-/* Set the font size to #{$h4-size} */
-.h4 {
-  font-size: $h4-size !important;
-}
-
-/* Set the font size to #{$h5-size} */
-.h5 { font-size: $h5-size !important; }
-
-// Does not include color property like typography base
-// styles, color should be applied with color utilities.
-/* Set the font size to #{$h6-size} */
-.h6 { font-size: $h6-size !important; }
-
-// Heading utilities
-.h1, .h2, .h3, .h4, .h5, .h6 { font-weight: $font-weight-bold !important; }
-
-// Type utilities that match type sale
-/* Set the font size to 26px */
-.f1 {
-  font-size: $h1-size-mobile !important;
-
-  @include breakpoint(md) { font-size: $h1-size !important; }
-}
-
-/* Set the font size to 22px */
-.f2 {
-  font-size: $h2-size-mobile !important;
-
-  @include breakpoint(md) { font-size: $h2-size !important; }
-}
-
-/* Set the font size to 18px */
-.f3 {
-  font-size: $h3-size-mobile !important;
-
-  @include breakpoint(md) { font-size: $h3-size !important; }
-}
-
-/* Set the font size to #{$h4-size} */
-.f4 {
-  font-size: $h4-size !important;
-
-  @include breakpoint(md) { font-size: $h4-size !important; }
-}
-
-/* Set the font size to #{$h5-size} */
-.f5 { font-size: $h5-size !important; }
-/* Set the font size to #{$h6-size} */
-.f6 { font-size: $h6-size !important; }
-
-// Type utils with light weight that match type scale
-/* Set the font size to 40px and weight to light */
-.f00-light {
-  font-size: $h00-size-mobile !important;
-  font-weight: $font-weight-light !important;
-
-  @include breakpoint(md) { font-size: $h00-size !important; }
-}
-
-/* Set the font size to 32px and weight to light */
-.f0-light {
-  font-size: $h0-size-mobile !important;
-  font-weight: $font-weight-light !important;
-
-  @include breakpoint(md) { font-size: $h0-size !important; }
-}
-
-/* Set the font size to 26px and weight to light */
-.f1-light {
-  font-size: $h1-size-mobile !important;
-  font-weight: $font-weight-light !important;
-
-  @include breakpoint(md) { font-size: $h1-size !important; }
-}
-
-/* Set the font size to 22px and weight to light */
-.f2-light {
-  font-size: $h2-size-mobile !important;
-  font-weight: $font-weight-light !important;
-
-  @include breakpoint(md) { font-size: $h2-size !important; }
-}
-
-// Same size and weight as .lead but without color property
-/* Set the font size to 18px and weight to light */
-.f3-light {
-  font-size: $h3-size-mobile !important;
-  font-weight: $font-weight-light !important;
-
-  @include breakpoint(md) { font-size: $h3-size !important; }
-}
-
-// Smallest text size
-/* Set the font size to ${#h6-size} */
-.text-small { font-size: $h6-size !important; } // 12px
-
-/* Large leading paragraphs */
-.lead {
-  margin-bottom: 30px;
-  font-size: $h3-size;
-  font-weight: $font-weight-light;
-  color: $gray-600;
-}
-
-// Line-height variations
-// Close to commonly used line-heights. Most line-heights
-// combined with type size equate to whole pixels.
-// Will be improved with future typography scale updates.
-/* Set the line height to ultra condensed */
-.lh-condensed-ultra { line-height: $lh-condensed-ultra !important; }
-/* Set the line height to condensed */
-.lh-condensed { line-height: $lh-condensed !important; }
-/* Set the line height to default */
-.lh-default { line-height: $lh-default !important; }
-/* Set the line height to zero */
-.lh-0 { line-height: 0 !important; }
-
-// Text alignments
-// Responsive text alignment
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    /* Text align to the right */
-    .text#{$variant}-right { text-align: right !important; }
-    /* Text align to the left */
-    .text#{$variant}-left { text-align: left !important; }
-    /* Text align to the center */
-    .text#{$variant}-center { text-align: center !important; }
-  }
-}
-
-// Text styles
-/* Set the font weight to normal */
-.text-normal { font-weight: $font-weight-normal !important; }
-/* Set the font weight to bold */
-.text-bold { font-weight: $font-weight-bold !important;}
-/* Set the font to italic */
-.text-italic { font-style: italic !important; }
-/* Make text uppercase */
-.text-uppercase { text-transform: uppercase !important; }
-/* Underline text */
-.text-underline { text-decoration: underline !important; }
-/* Don't underline text */
-.no-underline { text-decoration: none !important; }
-/* Don't wrap white space */
-.no-wrap { white-space: nowrap !important; }
-/* Normal white space */
-.ws-normal { white-space: normal !important; }
-/* Allow long lines with no spaces to line break */
-.wb-break-all { word-break: break-all !important; }
-
-.text-emphasized {
-  font-weight: $font-weight-bold;
-  color: $text-gray-dark;
-}
-
-// List styles
-.list-style-none { list-style: none !important; }
-
-// Text Shadows
-/* Add a dark text shadow */
-.text-shadow-dark {
-  text-shadow: 0 1px 1px rgba($black, 0.25), 0 1px 25px rgba($black, 0.75);
-}
-/* Add a light text shadow */
-.text-shadow-light {
-  text-shadow: 0 1px 0 rgba($white, 0.5);
-}
-
-/* Set to monospace font */
-.text-mono {
-  font-family: $mono-font;
-}
-
-/* Disallow user from selecting text */
-.user-select-none {
-  user-select: none !important;
-}
diff --git a/_sass/primer-utilities/lib/visibility-display.scss b/_sass/primer-utilities/lib/visibility-display.scss
deleted file mode 100644
index 879f7244..00000000
--- a/_sass/primer-utilities/lib/visibility-display.scss
+++ /dev/null
@@ -1,87 +0,0 @@
-// Visibility and display utilities
-// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before, primer/selector-no-utility
-// stylelint-disable comment-empty-line-before
-
-$display-values: (
-  block,
-  flex,
-  inline,
-  inline-block,
-  inline-flex,
-  none,
-  table,
-  table-cell
-);
-
-// Responsive display utilities
-@each $breakpoint, $variant in $responsive-variants {
-  @include breakpoint($breakpoint) {
-    @each $display in $display-values {
-      .d#{$variant}-#{$display} { display: $display !important; }
-    }
-  }
-}
-
-.v-hidden { visibility: hidden !important; }
-.v-visible { visibility: visible !important; }
-
-// Hide utilities for each breakpoint
-// Each hide utility only applies to one breakpoint range.
-@media (max-width: $width-sm) {
-  .hide-sm {
-    display: none !important;
-  }
-}
-
-@media (min-width: $width-sm) and (max-width: $width-md) {
-  .hide-md {
-    display: none !important;
-  }
-}
-
-@media (min-width: $width-md) and (max-width: $width-lg) {
-  .hide-lg {
-    display: none !important;
-  }
-}
-
-@media (min-width: $width-lg) {
-  .hide-xl {
-    display: none !important;
-  }
-}
-
-/* Set the table-layout to fixed */
-.table-fixed { table-layout: fixed !important; }
-
-// Only display content to screen readers
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1241631
-  word-wrap: normal;
-  border: 0;
-}
-
-// Only display content on focus
-.show-on-focus {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: 0;
-  overflow: hidden;
-  clip: rect(1px, 1px, 1px, 1px);
-
-  &:focus {
-    z-index: 20;
-    width: auto;
-    height: auto;
-    clip: auto;
-  }
-}
diff --git a/package.json b/package.json
index 65e43a05..165c2de0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jekyll-theme-primer",
-  "version": "0.1.0",
+  "version": "0.1.1",
   "description": "A Jekyll theme based on GitHub's Primer styles",
   "main": "index.html",
   "scripts": {
@@ -9,13 +9,6 @@
   "author": "Ben Balter",
   "license": "MIT",
   "dependencies": {
-    "primer-base": "^1.9.2",
-    "primer-layout": "^1.6.2",
-    "primer-markdown": "^3.7.13",
-    "primer-support": "^4.7.2",
-    "primer-utilities": "^4.14.4"
-  },
-  "devDependencies": {
-    "@primer/sync": "^0.1.0"
+    "@primer/css": "^21.3.6"
   }
 }

From 3d81372e948c7ffc60da3b67b3053797716bb8c5 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 10:29:15 -0700
Subject: [PATCH 02/13] Auto dark mode

---
 _layouts/default.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/_layouts/default.html b/_layouts/default.html
index 33a9e297..cb381b76 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -1,5 +1,5 @@
 
-
+
   
     
     

From 0d4dcfc2b25310d22abdaf9e0d3e9f71e5a1c2f9 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 10:33:50 -0700
Subject: [PATCH 03/13] Fix

---
 _sass/jekyll-theme-primer.scss | 1 +
 1 file changed, 1 insertion(+)

diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss
index c55d595d..cdc72b2f 100644
--- a/_sass/jekyll-theme-primer.scss
+++ b/_sass/jekyll-theme-primer.scss
@@ -1,4 +1,5 @@
 
+@import "@primer/css/index.scss";
 @import "@primer/css/support/index.scss";
 @import "@primer/css/base/index.scss";
 @import "@primer/css/utilities/index.scss";

From b1760123a1e7629231e8769977164b2c4d9c3739 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 10:39:11 -0700
Subject: [PATCH 04/13] Fix

---
 _sass/jekyll-theme-primer.scss | 1 +
 1 file changed, 1 insertion(+)

diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss
index cdc72b2f..e5a12849 100644
--- a/_sass/jekyll-theme-primer.scss
+++ b/_sass/jekyll-theme-primer.scss
@@ -1,5 +1,6 @@
 
 @import "@primer/css/index.scss";
+@import "@primer/css/color-modes/index.scss";
 @import "@primer/css/support/index.scss";
 @import "@primer/css/base/index.scss";
 @import "@primer/css/utilities/index.scss";

From 7747bb508d0dd3089a75de970fb05af241c0cbf1 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 10:59:53 -0700
Subject: [PATCH 05/13] Fix

---
 _sass/jekyll-theme-primer.scss | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss
index e5a12849..347a67c3 100644
--- a/_sass/jekyll-theme-primer.scss
+++ b/_sass/jekyll-theme-primer.scss
@@ -1,8 +1,7 @@
 
-@import "@primer/css/index.scss";
-@import "@primer/css/color-modes/index.scss";
 @import "@primer/css/support/index.scss";
 @import "@primer/css/base/index.scss";
+@import "@primer/css/base/native-colors.scss";
 @import "@primer/css/utilities/index.scss";
 @import "@primer/css/layout/index.scss";
 @import "@primer/css/markdown/index.scss";

From 9063e017bf05db6ba8a4052c01d78d61041dc0e4 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 11:02:41 -0700
Subject: [PATCH 06/13] Test theme

---
 _config.yml                    | 4 +++-
 _sass/jekyll-theme-primer.scss | 1 -
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/_config.yml b/_config.yml
index b9fd1f28..83ca4fc1 100644
--- a/_config.yml
+++ b/_config.yml
@@ -5,7 +5,9 @@ exclude:
 sass:
   style: :compressed
 
-theme: jekyll-theme-primer
+remote-theme: san-s-on/jekyll-theme-primer
+plugins:
+    - jekyll-remote-theme
 
 github:
   private: false
diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss
index 347a67c3..c55d595d 100644
--- a/_sass/jekyll-theme-primer.scss
+++ b/_sass/jekyll-theme-primer.scss
@@ -1,7 +1,6 @@
 
 @import "@primer/css/support/index.scss";
 @import "@primer/css/base/index.scss";
-@import "@primer/css/base/native-colors.scss";
 @import "@primer/css/utilities/index.scss";
 @import "@primer/css/layout/index.scss";
 @import "@primer/css/markdown/index.scss";

From 1fea4f352b4b4dfaf91814e4a8a7c877ae903ec1 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 11:21:18 -0700
Subject: [PATCH 07/13] Fix

---
 _config.yml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/_config.yml b/_config.yml
index 83ca4fc1..b9fd1f28 100644
--- a/_config.yml
+++ b/_config.yml
@@ -5,9 +5,7 @@ exclude:
 sass:
   style: :compressed
 
-remote-theme: san-s-on/jekyll-theme-primer
-plugins:
-    - jekyll-remote-theme
+theme: jekyll-theme-primer
 
 github:
   private: false

From 1cfb8a69dc5771dd0ec32d23d605ad10567a3a81 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 11:58:24 -0700
Subject: [PATCH 08/13] Fix

---
 script/install | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/script/install b/script/install
index 54dd6247..09fa25cf 100755
--- a/script/install
+++ b/script/install
@@ -14,11 +14,11 @@ fi
 
 # Add our own theme scss file for consistency of naming in `assets/style.scss`
 content='
-@import "primer-support/index.scss";
-@import "primer-base/index.scss";
-@import "primer-utilities/index.scss";
-@import "primer-layout/index.scss";
-@import "primer-markdown/index.scss";
+@import "@primer/css/support/index.scss";
+@import "@primer/css/base/index.scss";
+@import "@primer/css/utilities/index.scss";
+@import "@primer/css/layout/index.scss";
+@import "@primer/css/markdown/index.scss";
 @import "rouge";
 '
 echo "$content" >> _sass/jekyll-theme-primer.scss

From dbfa58ed130eb8a685f9df3222a6892a2c1fe9ca Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 12:09:28 -0700
Subject: [PATCH 09/13] Fix

---
 package.json | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package.json b/package.json
index 165c2de0..a12ed519 100644
--- a/package.json
+++ b/package.json
@@ -10,5 +10,8 @@
   "license": "MIT",
   "dependencies": {
     "@primer/css": "^21.3.6"
+  },
+  "devDependencies": {
+    "@primer/sync": "^2.0.0"
   }
 }

From 0460b712ea59f52f00afafb01a40a2e50fb3fe3a Mon Sep 17 00:00:00 2001
From: sans_on 
Date: Wed, 7 Aug 2024 14:09:00 -0700
Subject: [PATCH 10/13] Update

---
 _sass/jekyll-theme-primer.scss |    8 +
 _sass/rouge.scss               |   12 +-
 package-lock.json              | 2590 +++++++++++++++++++-------------
 3 files changed, 1578 insertions(+), 1032 deletions(-)

diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss
index c55d595d..87331d62 100644
--- a/_sass/jekyll-theme-primer.scss
+++ b/_sass/jekyll-theme-primer.scss
@@ -5,3 +5,11 @@
 @import "@primer/css/layout/index.scss";
 @import "@primer/css/markdown/index.scss";
 @import "rouge";
+
+@import "@primer/css/support/index.scss";
+@import "@primer/css/base/index.scss";
+@import "@primer/css/utilities/index.scss";
+@import "@primer/css/layout/index.scss";
+@import "@primer/css/markdown/index.scss";
+@import "rouge";
+
diff --git a/_sass/rouge.scss b/_sass/rouge.scss
index daf76ade..2af5601a 100644
--- a/_sass/rouge.scss
+++ b/_sass/rouge.scss
@@ -17,7 +17,7 @@
   font-weight: bold;
   font-style: italic;
 }
-.highlight .c, .highlight .cd {
+.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
   color: #999988;
   font-style: italic;
 }
@@ -104,6 +104,10 @@
 .highlight .m, .highlight .mb, .highlight .mx {
   color: #009999;
 }
+.highlight .sa {
+  color: #000000;
+  font-weight: bold;
+}
 .highlight .sb {
   color: #d14;
 }
@@ -137,7 +141,7 @@
 .highlight .ss {
   color: #990073;
 }
-.highlight .s {
+.highlight .s, .highlight .dl {
   color: #d14;
 }
 .highlight .na {
@@ -167,7 +171,7 @@
   color: #990000;
   font-weight: bold;
 }
-.highlight .nf {
+.highlight .nf, .highlight .fm {
   color: #990000;
   font-weight: bold;
 }
@@ -190,7 +194,7 @@
 .highlight .vi {
   color: #008080;
 }
-.highlight .nv {
+.highlight .nv, .highlight .vm {
   color: #008080;
 }
 .highlight .ow {
diff --git a/package-lock.json b/package-lock.json
index c20bd8e2..c167196a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,134 +1,303 @@
 {
   "name": "jekyll-theme-primer",
-  "version": "0.1.0",
-  "lockfileVersion": 1,
+  "version": "0.1.1",
+  "lockfileVersion": 3,
   "requires": true,
-  "dependencies": {
-    "@mrmlnc/readdir-enhanced": {
+  "packages": {
+    "": {
+      "name": "jekyll-theme-primer",
+      "version": "0.1.1",
+      "license": "MIT",
+      "dependencies": {
+        "@primer/css": "^21.3.6"
+      },
+      "devDependencies": {
+        "@primer/sync": "^2.0.0"
+      }
+    },
+    "node_modules/@github/auto-check-element": {
+      "version": "5.4.2",
+      "resolved": "https://registry.npmjs.org/@github/auto-check-element/-/auto-check-element-5.4.2.tgz",
+      "integrity": "sha512-8SU9sI/0LpDOXybZ6juzALHbtwwDpaitaTHwKRIr4uV/AFy4iUG8LsMYE4tYRsj0w0eTlR7+c+S737eveOcKnQ==",
+      "dependencies": {
+        "@github/mini-throttle": "^2.1.0"
+      }
+    },
+    "node_modules/@github/auto-complete-element": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmjs.org/@github/auto-complete-element/-/auto-complete-element-3.6.2.tgz",
+      "integrity": "sha512-AgkrawNa2Focapn05yc/mNVTlAOqPFlMPhqkkMygPtOddms6NYxlCuVx8OM6aCTzBeEJlYur+/CS56hk4mvwmA==",
+      "dependencies": {
+        "@github/combobox-nav": "^2.1.7"
+      }
+    },
+    "node_modules/@github/catalyst": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@github/catalyst/-/catalyst-1.6.0.tgz",
+      "integrity": "sha512-u8A+DameixqpeyHzvnJWTGj+wfiskQOYHzSiJscCWVfMkIT3rxnbHMtGh3lMthaRY21nbUOK71WcsCnCrXhBJQ=="
+    },
+    "node_modules/@github/clipboard-copy-element": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/@github/clipboard-copy-element/-/clipboard-copy-element-1.3.0.tgz",
+      "integrity": "sha512-wyntkQkwoLbLo+Hqg2LIVMXDIzcvUb9bSDz+clX6nVJItwzh103rHxdXFRZD+DmxVbuEW5xSznYQXkz1jZT+xg=="
+    },
+    "node_modules/@github/combobox-nav": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/@github/combobox-nav/-/combobox-nav-2.3.1.tgz",
+      "integrity": "sha512-gwxPzLw8XKecy1nP63i9lOBritS3bWmxl02UX6G0TwMQZbMem1BCS1tEZgYd3mkrkiDrUMWaX+DbFCuDFo3K+A=="
+    },
+    "node_modules/@github/details-menu-element": {
+      "version": "1.0.13",
+      "resolved": "https://registry.npmjs.org/@github/details-menu-element/-/details-menu-element-1.0.13.tgz",
+      "integrity": "sha512-gMkii86w/oUP5dq8yOWZn1sgbgtFj3AYETxxtpsqRggZktgd8te4+npAn4Hm+936c/lxmEzXqfjARL/CzGR4+w=="
+    },
+    "node_modules/@github/image-crop-element": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/@github/image-crop-element/-/image-crop-element-5.0.0.tgz",
+      "integrity": "sha512-Vgm2OwWAs1ESoib/t5sjxsAYo6YTOxxAjWDRxswX7qrqoyCejTZ3hshdo4Ep5e+Mz/GVTZC3rdMtg06dk/eT4g=="
+    },
+    "node_modules/@github/include-fragment-element": {
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/@github/include-fragment-element/-/include-fragment-element-6.3.0.tgz",
+      "integrity": "sha512-BJTt8ZE/arsbC9lQtTH8c1hZS0ZigiN+kzH54ffQ6MhHLT83h0OpSdS9NEVocPl2uuO6w3qxnEKTDzUGMQ5rdQ=="
+    },
+    "node_modules/@github/mini-throttle": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/@github/mini-throttle/-/mini-throttle-2.1.1.tgz",
+      "integrity": "sha512-KtOPaB+FiKJ6jcKm9UKyaM5fPURHGf+xcp+b4Mzoi81hOc6M1sIGpMZMAVbNzfa2lW5+RPGKq888Px0j76OZ/A=="
+    },
+    "node_modules/@github/relative-time-element": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/@github/relative-time-element/-/relative-time-element-4.4.2.tgz",
+      "integrity": "sha512-wTXunu3hmuGljA5CHaaoUIKV0oI35wno0FKJl2yqKplTRnsCA5bPNj4bDeVIubkuskql6jwionWLlGM1Y6QLaw=="
+    },
+    "node_modules/@github/tab-container-element": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/@github/tab-container-element/-/tab-container-element-3.4.0.tgz",
+      "integrity": "sha512-Yx70pO8A0p7Stnm9knKkUNX8i4bjuwDYZarRkM8JH0Z+ffhpe++oNAPbzGI9GEcGugRHvKuSC6p4YOdoHtTniQ=="
+    },
+    "node_modules/@mrmlnc/readdir-enhanced": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
       "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "call-me-maybe": "^1.0.1",
         "glob-to-regexp": "^0.3.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "@nodelib/fs.stat": {
+    "node_modules/@nodelib/fs.stat": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">= 6"
+      }
     },
-    "@primer/sync": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/@primer/sync/-/sync-0.1.0.tgz",
-      "integrity": "sha512-vTK5Q31Okq+IXWcBDPvjygFNtPrwoZZzL3Tfb0u0xzLqhm8exphlyOUx/ZIvrK3Y4utoa6naG/a5aNReH8a+AQ==",
+    "node_modules/@oddbird/popover-polyfill": {
+      "version": "0.4.4",
+      "resolved": "https://registry.npmjs.org/@oddbird/popover-polyfill/-/popover-polyfill-0.4.4.tgz",
+      "integrity": "sha512-n9q0ZXYRct6aYmOjjF5E+i5i0RSjVCkoKDJWILzJAkDBk4jmWOAZFjQfExtcAiJa0buX/Lx/CzBdGgiSSAlbrw=="
+    },
+    "node_modules/@primer/behaviors": {
+      "version": "1.7.1",
+      "resolved": "https://registry.npmjs.org/@primer/behaviors/-/behaviors-1.7.1.tgz",
+      "integrity": "sha512-Ew3C2ZNWHbW6R8YxBCQTAjDTBi4oYWxW0rBJSY1YZAaTb9VBioyNC6vLLxB0jYF5poP4qy8sd2hRer0VZRD6uQ=="
+    },
+    "node_modules/@primer/css": {
+      "version": "21.3.6",
+      "resolved": "https://registry.npmjs.org/@primer/css/-/css-21.3.6.tgz",
+      "integrity": "sha512-h2ITbCj415T1JpWQDeQd1xYL6TrzkehfUOXxnV0FpblYyMsVBAks6LL7HGJ+ZrydG+Ds0i1rvvi8Q61jErieNA==",
+      "dependencies": {
+        "@primer/primitives": "^8.2.0",
+        "@primer/view-components": "^0.27.0"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@primer/primitives": {
+      "version": "8.2.4",
+      "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-8.2.4.tgz",
+      "integrity": "sha512-gOLLcqSpscOL8Or/RzUUiZdB7kCuOfeuIzMpJQwxvim6igK2sFROBXzdYoSHbH6lOmIabbpPd2lX5rfMWsUjKA==",
+      "engines": {
+        "node": ">=18.18.0 <18.19.0"
+      }
+    },
+    "node_modules/@primer/sync": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@primer/sync/-/sync-2.0.0.tgz",
+      "integrity": "sha512-Wzme+T7vv7+zb+A6lQPPyRz6HKfr+AcvFyQLe1bUqCxoZXTCp73Z1HvWZaC1U+wOsiGrs39ic8z91yMfnCkbGA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "cosmiconfig": "^5.0.7",
         "fs-extra": "^7.0.1",
         "globby": "^9.0.0",
-        "primer-utilities": "^4.14.3",
         "resolve": "^1.9.0",
         "yargs": "^12.0.5"
       },
+      "bin": {
+        "primer-sync": "cli.js"
+      },
+      "peerDependencies": {
+        "@primer/css": ">12"
+      }
+    },
+    "node_modules/@primer/view-components": {
+      "version": "0.27.0",
+      "resolved": "https://registry.npmjs.org/@primer/view-components/-/view-components-0.27.0.tgz",
+      "integrity": "sha512-pNEnD6B6rDJ+uTEZyfSkiqV4MVkL0HQI8DJb+OaAvJP9x0HjUtKh0WHxTCsvlC6pCbDOeanph2JichE5XqWKRw==",
       "dependencies": {
-        "primer-support": {
-          "version": "4.7.2",
-          "resolved": "https://registry.npmjs.org/primer-support/-/primer-support-4.7.2.tgz",
-          "integrity": "sha512-WbfjjITtGV6iXQeaVPL+AzHj1Jv9RHJRp7kIu5ebFXwolWmCqTBpA/8VmWmssyeTfv8zR7iuCoT0UoBF+uGHww==",
-          "dev": true
-        },
-        "primer-utilities": {
-          "version": "4.14.4",
-          "resolved": "https://registry.npmjs.org/primer-utilities/-/primer-utilities-4.14.4.tgz",
-          "integrity": "sha512-EEZxsp/bjY4jkTqDeVJfWI/df55icDhFDGylX59VeiSVudIgUUe5G1VqtgGJIXgqnkiLf5u+iaOSayFvxqhTrg==",
-          "dev": true,
-          "requires": {
-            "primer-support": "4.7.2"
-          }
-        }
-      }
-    },
-    "ansi-regex": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-      "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+        "@github/auto-check-element": "^5.2.0",
+        "@github/auto-complete-element": "^3.6.2",
+        "@github/catalyst": "^1.6.0",
+        "@github/clipboard-copy-element": "^1.3.0",
+        "@github/details-menu-element": "^1.0.12",
+        "@github/image-crop-element": "^5.0.0",
+        "@github/include-fragment-element": "^6.1.1",
+        "@github/relative-time-element": "^4.0.0",
+        "@github/tab-container-element": "^3.1.2",
+        "@oddbird/popover-polyfill": "^0.4.0",
+        "@primer/behaviors": "^1.3.4"
+      }
+    },
+    "node_modules/@types/glob": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+      "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+      "dev": true,
+      "dependencies": {
+        "@types/minimatch": "*",
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/minimatch": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+      "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
       "dev": true
     },
-    "argparse": {
+    "node_modules/@types/node": {
+      "version": "22.1.0",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz",
+      "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==",
+      "dev": true,
+      "dependencies": {
+        "undici-types": "~6.13.0"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+      "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/argparse": {
       "version": "1.0.10",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "sprintf-js": "~1.0.2"
       }
     },
-    "arr-diff": {
+    "node_modules/arr-diff": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-      "dev": true
+      "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "arr-flatten": {
+    "node_modules/arr-flatten": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
       "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "arr-union": {
+    "node_modules/arr-union": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
-      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
-      "dev": true
+      "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "array-union": {
+    "node_modules/array-union": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
-      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "array-uniq": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "array-uniq": {
+    "node_modules/array-uniq": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
-      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
-      "dev": true
+      "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "array-unique": {
+    "node_modules/array-unique": {
       "version": "0.3.2",
       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-      "dev": true
+      "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "assign-symbols": {
+    "node_modules/assign-symbols": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
-      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
-      "dev": true
+      "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "atob": {
+    "node_modules/atob": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
       "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
-      "dev": true
+      "dev": true,
+      "bin": {
+        "atob": "bin/atob.js"
+      },
+      "engines": {
+        "node": ">= 4.5.0"
+      }
     },
-    "balanced-match": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
       "dev": true
     },
-    "base": {
+    "node_modules/base": {
       "version": "0.11.2",
       "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
       "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "cache-base": "^1.0.1",
         "class-utils": "^0.3.5",
         "component-emitter": "^1.2.1",
@@ -137,63 +306,38 @@
         "mixin-deep": "^1.2.0",
         "pascalcase": "^0.1.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/base/node_modules/define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+      "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
-          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "brace-expansion": {
+        "is-descriptor": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/brace-expansion": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
       "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "balanced-match": "^1.0.0",
         "concat-map": "0.0.1"
       }
     },
-    "braces": {
+    "node_modules/braces": {
       "version": "2.3.2",
       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "arr-flatten": "^1.1.0",
         "array-unique": "^0.3.2",
         "extend-shallow": "^2.0.1",
@@ -205,24 +349,37 @@
         "split-string": "^3.0.2",
         "to-regex": "^3.0.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/braces/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
       "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/braces/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "cache-base": {
+    "node_modules/cache-base": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
       "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "collection-visit": "^1.0.0",
         "component-emitter": "^1.2.1",
         "get-value": "^2.0.6",
@@ -232,238 +389,276 @@
         "to-object-path": "^0.3.0",
         "union-value": "^1.0.0",
         "unset-value": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "call-me-maybe": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
-      "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+    "node_modules/call-me-maybe": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
+      "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
       "dev": true
     },
-    "caller-callsite": {
+    "node_modules/caller-callsite": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
-      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+      "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "callsites": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "caller-path": {
+    "node_modules/caller-path": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
-      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+      "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "caller-callsite": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "callsites": {
+    "node_modules/callsites": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
-      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
-      "dev": true
+      "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "camelcase": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
-      "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
-      "dev": true
+    "node_modules/camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
     },
-    "class-utils": {
+    "node_modules/class-utils": {
       "version": "0.3.6",
       "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
       "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "arr-union": "^3.1.0",
         "define-property": "^0.2.5",
         "isobject": "^3.0.0",
         "static-extend": "^0.1.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/class-utils/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/class-utils/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        }
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
       }
     },
-    "cliui": {
+    "node_modules/cliui": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
       "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "string-width": "^2.1.1",
         "strip-ansi": "^4.0.0",
         "wrap-ansi": "^2.0.0"
       }
     },
-    "code-point-at": {
+    "node_modules/code-point-at": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
+      "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "collection-visit": {
+    "node_modules/collection-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
-      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "map-visit": "^1.0.0",
         "object-visit": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "component-emitter": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
-      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
-      "dev": true
+    "node_modules/component-emitter": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+      "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
     },
-    "concat-map": {
+    "node_modules/concat-map": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
       "dev": true
     },
-    "copy-descriptor": {
+    "node_modules/copy-descriptor": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
-      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
-      "dev": true
+      "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "cosmiconfig": {
-      "version": "5.0.7",
-      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz",
-      "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==",
+    "node_modules/cosmiconfig": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "import-fresh": "^2.0.0",
         "is-directory": "^0.3.1",
-        "js-yaml": "^3.9.0",
+        "js-yaml": "^3.13.1",
         "parse-json": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "cross-spawn": {
+    "node_modules/cross-spawn": {
       "version": "6.0.5",
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
       "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "nice-try": "^1.0.4",
         "path-key": "^2.0.1",
         "semver": "^5.5.0",
         "shebang-command": "^1.2.0",
         "which": "^1.2.9"
+      },
+      "engines": {
+        "node": ">=4.8"
       }
     },
-    "debug": {
+    "node_modules/debug": {
       "version": "2.6.9",
       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "ms": "2.0.0"
       }
     },
-    "decamelize": {
+    "node_modules/decamelize": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "decode-uri-component": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-      "dev": true
+    "node_modules/decode-uri-component": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+      "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10"
+      }
     },
-    "define-property": {
+    "node_modules/define-property": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
       "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-descriptor": "^1.0.2",
         "isobject": "^3.0.1"
       },
-      "dependencies": {
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
-          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "dir-glob": {
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/dir-glob": {
       "version": "2.2.2",
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
       "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "path-type": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "end-of-stream": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
-      "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+    "node_modules/end-of-stream": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "once": "^1.4.0"
       }
     },
-    "error-ex": {
+    "node_modules/error-ex": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
       "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-arrayish": "^0.2.1"
       }
     },
-    "esprima": {
+    "node_modules/esprima": {
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
       "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-      "dev": true
+      "dev": true,
+      "bin": {
+        "esparse": "bin/esparse.js",
+        "esvalidate": "bin/esvalidate.js"
+      },
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "execa": {
+    "node_modules/execa": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
       "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "cross-spawn": "^6.0.0",
         "get-stream": "^4.0.0",
         "is-stream": "^1.1.0",
@@ -471,14 +666,17 @@
         "p-finally": "^1.0.0",
         "signal-exit": "^3.0.0",
         "strip-eof": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "expand-brackets": {
+    "node_modules/expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "debug": "^2.3.3",
         "define-property": "^0.2.5",
         "extend-shallow": "^2.0.1",
@@ -487,54 +685,75 @@
         "snapdragon": "^0.8.1",
         "to-regex": "^3.0.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "extend-shallow": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extend-shallow": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
-      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "assign-symbols": "^1.0.0",
         "is-extendable": "^1.0.1"
       },
-      "dependencies": {
-        "is-extendable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
-          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
-          "dev": true,
-          "requires": {
-            "is-plain-object": "^2.0.4"
-          }
-        }
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "extglob": {
+    "node_modules/extglob": {
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
       "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "array-unique": "^0.3.2",
         "define-property": "^1.0.0",
         "expand-brackets": "^2.1.4",
@@ -544,547 +763,672 @@
         "snapdragon": "^0.8.1",
         "to-regex": "^3.0.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob/node_modules/define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+      "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fast-glob": {
+      "version": "2.2.7",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
+      "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
-          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "fast-glob": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz",
-      "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==",
-      "dev": true,
-      "requires": {
         "@mrmlnc/readdir-enhanced": "^2.2.1",
         "@nodelib/fs.stat": "^1.1.2",
         "glob-parent": "^3.1.0",
         "is-glob": "^4.0.0",
         "merge2": "^1.2.3",
         "micromatch": "^3.1.10"
+      },
+      "engines": {
+        "node": ">=4.0.0"
       }
     },
-    "fill-range": {
+    "node_modules/fill-range": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "extend-shallow": "^2.0.1",
         "is-number": "^3.0.0",
         "repeat-string": "^1.6.1",
         "to-regex-range": "^2.1.0"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fill-range/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
       "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fill-range/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "find-up": {
+    "node_modules/find-up": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
       "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "locate-path": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "for-in": {
+    "node_modules/for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
-      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
-      "dev": true
+      "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "fragment-cache": {
+    "node_modules/fragment-cache": {
       "version": "0.2.1",
       "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
-      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "map-cache": "^0.2.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "fs-extra": {
+    "node_modules/fs-extra": {
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
       "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "graceful-fs": "^4.1.2",
         "jsonfile": "^4.0.0",
         "universalify": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=6 <7 || >=8"
       }
     },
-    "fs.realpath": {
+    "node_modules/fs.realpath": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
       "dev": true
     },
-    "get-caller-file": {
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-caller-file": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
       "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
       "dev": true
     },
-    "get-stream": {
+    "node_modules/get-stream": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
       "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "pump": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "get-value": {
+    "node_modules/get-value": {
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
-      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
-      "dev": true
+      "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "glob": {
-      "version": "7.1.3",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-      "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "fs.realpath": "^1.0.0",
         "inflight": "^1.0.4",
         "inherits": "2",
-        "minimatch": "^3.0.4",
+        "minimatch": "^3.1.1",
         "once": "^1.3.0",
         "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
       }
     },
-    "glob-parent": {
+    "node_modules/glob-parent": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
-      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+      "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-glob": "^3.1.0",
         "path-dirname": "^1.0.0"
-      },
+      }
+    },
+    "node_modules/glob-parent/node_modules/is-glob": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+      "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+      "dev": true,
       "dependencies": {
-        "is-glob": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
-          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.0"
-          }
-        }
+        "is-extglob": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "glob-to-regexp": {
+    "node_modules/glob-to-regexp": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
-      "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+      "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==",
       "dev": true
     },
-    "globby": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-9.0.0.tgz",
-      "integrity": "sha512-q0qiO/p1w/yJ0hk8V9x1UXlgsXUxlGd0AHUOXZVXBO6aznDtpx7M8D1kBrCAItoPm+4l8r6ATXV1JpjY2SBQOw==",
+    "node_modules/globby": {
+      "version": "9.2.0",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
+      "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
+        "@types/glob": "^7.1.1",
         "array-union": "^1.0.2",
-        "dir-glob": "^2.2.1",
+        "dir-glob": "^2.2.2",
         "fast-glob": "^2.2.6",
         "glob": "^7.1.3",
         "ignore": "^4.0.3",
         "pify": "^4.0.1",
         "slash": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "graceful-fs": {
-      "version": "4.1.15",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-      "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
       "dev": true
     },
-    "has-value": {
+    "node_modules/has-value": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
-      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "get-value": "^2.0.6",
         "has-values": "^1.0.0",
         "isobject": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "has-values": {
+    "node_modules/has-values": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
-      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-number": "^3.0.0",
         "kind-of": "^4.0.0"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/has-values/node_modules/kind-of": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+      "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+      "dev": true,
       "dependencies": {
-        "kind-of": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
-          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "ignore": {
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/ignore": {
       "version": "4.0.6",
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
       "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">= 4"
+      }
     },
-    "import-fresh": {
+    "node_modules/import-fresh": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
-      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+      "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "caller-path": "^2.0.0",
         "resolve-from": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "inflight": {
+    "node_modules/inflight": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "once": "^1.3.0",
         "wrappy": "1"
       }
     },
-    "inherits": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
       "dev": true
     },
-    "invert-kv": {
+    "node_modules/invert-kv": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
       "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "is-accessor-descriptor": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+    "node_modules/is-accessor-descriptor": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
+      "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
       "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      },
       "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.10"
       }
     },
-    "is-arrayish": {
+    "node_modules/is-arrayish": {
       "version": "0.2.1",
       "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
-      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+      "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
       "dev": true
     },
-    "is-buffer": {
+    "node_modules/is-buffer": {
       "version": "1.1.6",
       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
       "dev": true
     },
-    "is-data-descriptor": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+    "node_modules/is-core-module": {
+      "version": "2.15.0",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
+      "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
       "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      },
       "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
-    "is-descriptor": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+    "node_modules/is-data-descriptor": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
+      "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
       "dev": true,
-      "requires": {
-        "is-accessor-descriptor": "^0.1.6",
-        "is-data-descriptor": "^0.1.4",
-        "kind-of": "^5.0.0"
+      "dependencies": {
+        "hasown": "^2.0.0"
       },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-descriptor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
+      "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
+      "dev": true,
       "dependencies": {
-        "kind-of": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-          "dev": true
-        }
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
       }
     },
-    "is-directory": {
+    "node_modules/is-directory": {
       "version": "0.3.1",
       "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
-      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
-      "dev": true
+      "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "is-extendable": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
-      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-      "dev": true
+    "node_modules/is-extendable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+      "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+      "dev": true,
+      "dependencies": {
+        "is-plain-object": "^2.0.4"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "is-extglob": {
+    "node_modules/is-extglob": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "is-fullwidth-code-point": {
+    "node_modules/is-fullwidth-code-point": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-      "dev": true
+      "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "is-glob": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-      "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "is-number": {
+    "node_modules/is-number": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "kind-of": "^3.0.2"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-number/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
       "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "is-plain-object": {
+    "node_modules/is-plain-object": {
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "isobject": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "is-stream": {
+    "node_modules/is-stream": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
-      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
-      "dev": true
+      "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "is-windows": {
+    "node_modules/is-windows": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
       "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "isarray": {
+    "node_modules/isarray": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
       "dev": true
     },
-    "isexe": {
+    "node_modules/isexe": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
       "dev": true
     },
-    "isobject": {
+    "node_modules/isobject": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-      "dev": true
+      "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "js-yaml": {
-      "version": "3.13.1",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
-      "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+    "node_modules/js-yaml": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "argparse": "^1.0.7",
         "esprima": "^4.0.0"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
       }
     },
-    "json-parse-better-errors": {
+    "node_modules/json-parse-better-errors": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
       "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
       "dev": true
     },
-    "jsonfile": {
+    "node_modules/jsonfile": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+      "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
       "dev": true,
-      "requires": {
+      "optionalDependencies": {
         "graceful-fs": "^4.1.6"
       }
     },
-    "kind-of": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-      "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-      "dev": true
+    "node_modules/kind-of": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "lcid": {
+    "node_modules/lcid": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
       "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "invert-kv": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "locate-path": {
+    "node_modules/locate-path": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
       "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "p-locate": "^3.0.0",
         "path-exists": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "map-age-cleaner": {
+    "node_modules/map-age-cleaner": {
       "version": "0.1.3",
       "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
       "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "p-defer": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "map-cache": {
+    "node_modules/map-cache": {
       "version": "0.2.2",
       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
-      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
-      "dev": true
+      "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "map-visit": {
+    "node_modules/map-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
-      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "object-visit": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "mem": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
-      "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
+    "node_modules/mem": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+      "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "map-age-cleaner": "^0.1.1",
-        "mimic-fn": "^1.0.0",
-        "p-is-promise": "^1.1.0"
+        "mimic-fn": "^2.0.0",
+        "p-is-promise": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "merge2": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz",
-      "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==",
-      "dev": true
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
     },
-    "micromatch": {
+    "node_modules/micromatch": {
       "version": "3.1.10",
       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
       "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "arr-diff": "^4.0.0",
         "array-unique": "^0.3.2",
         "braces": "^2.3.1",
@@ -1098,56 +1442,57 @@
         "regex-not": "^1.0.0",
         "snapdragon": "^0.8.1",
         "to-regex": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "mimic-fn": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-      "dev": true
+    "node_modules/mimic-fn": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
     },
-    "minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
       }
     },
-    "mixin-deep": {
+    "node_modules/mixin-deep": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
       "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "for-in": "^1.0.2",
         "is-extendable": "^1.0.1"
       },
-      "dependencies": {
-        "is-extendable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
-          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
-          "dev": true,
-          "requires": {
-            "is-plain-object": "^2.0.4"
-          }
-        }
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "ms": {
+    "node_modules/ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
       "dev": true
     },
-    "nanomatch": {
+    "node_modules/nanomatch": {
       "version": "1.2.13",
       "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
       "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "arr-diff": "^4.0.0",
         "array-unique": "^0.3.2",
         "define-property": "^2.0.2",
@@ -1159,400 +1504,499 @@
         "regex-not": "^1.0.0",
         "snapdragon": "^0.8.1",
         "to-regex": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "nice-try": {
+    "node_modules/nice-try": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
       "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
       "dev": true
     },
-    "npm-run-path": {
+    "node_modules/npm-run-path": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
-      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "path-key": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "number-is-nan": {
+    "node_modules/number-is-nan": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true
+      "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "object-copy": {
+    "node_modules/object-copy": {
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
-      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "copy-descriptor": "^0.1.0",
         "define-property": "^0.2.5",
         "kind-of": "^3.0.3"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-copy/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-copy/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object-copy/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "object-visit": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-visit": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
-      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "isobject": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "object.pick": {
+    "node_modules/object.pick": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
-      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "isobject": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "once": {
+    "node_modules/once": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "wrappy": "1"
       }
     },
-    "os-locale": {
+    "node_modules/os-locale": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
       "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "execa": "^1.0.0",
         "lcid": "^2.0.0",
         "mem": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "p-defer": {
+    "node_modules/p-defer": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
-      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
-      "dev": true
+      "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "p-finally": {
+    "node_modules/p-finally": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
-    },
-    "p-is-promise": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
-      "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
-      "dev": true
+      "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "p-limit": {
+    "node_modules/p-is-promise": {
       "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
-      "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
+      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+      "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "p-try": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "p-locate": {
+    "node_modules/p-locate": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
       "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "p-limit": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
       }
     },
-    "p-try": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-      "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-      "dev": true
+    "node_modules/p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
     },
-    "parse-json": {
+    "node_modules/parse-json": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-      "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+      "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "error-ex": "^1.3.1",
         "json-parse-better-errors": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "pascalcase": {
+    "node_modules/pascalcase": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
-      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
-      "dev": true
+      "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "path-dirname": {
+    "node_modules/path-dirname": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
-      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+      "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==",
       "dev": true
     },
-    "path-exists": {
+    "node_modules/path-exists": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-      "dev": true
+      "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "path-is-absolute": {
+    "node_modules/path-is-absolute": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-      "dev": true
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "path-key": {
+    "node_modules/path-key": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
-      "dev": true
+      "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "path-parse": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
       "dev": true
     },
-    "path-type": {
+    "node_modules/path-type": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
       "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "pify": "^3.0.0"
       },
-      "dependencies": {
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/path-type/node_modules/pify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+      "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
       }
     },
-    "pify": {
+    "node_modules/pify": {
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
       "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
     },
-    "posix-character-classes": {
+    "node_modules/posix-character-classes": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
-      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
-      "dev": true
-    },
-    "primer-base": {
-      "version": "1.9.2",
-      "resolved": "https://registry.npmjs.org/primer-base/-/primer-base-1.9.2.tgz",
-      "integrity": "sha512-KgZP0cGq0rdgyK5ozw7UbyqG52o0sbzAfRP3iEeoRhDwCJ3X0XaHeCINty7QhcIzWCccXkdamMe/P6HBwWM12g==",
-      "requires": {
-        "primer-support": "4.7.2"
-      }
-    },
-    "primer-layout": {
-      "version": "1.6.2",
-      "resolved": "https://registry.npmjs.org/primer-layout/-/primer-layout-1.6.2.tgz",
-      "integrity": "sha512-Ov/g9GiAaKhRAXku2wxsTlmJXhQPAjWpCwibJ+Ooxu0X8n6BA52y/ScZUPFdde+vZYhbFGFQwozU8y2bzuw3dg==",
-      "requires": {
-        "primer-support": "4.7.2"
-      }
-    },
-    "primer-markdown": {
-      "version": "3.7.13",
-      "resolved": "https://registry.npmjs.org/primer-markdown/-/primer-markdown-3.7.13.tgz",
-      "integrity": "sha512-8GficlbmQ8GIFDzsD9JiFdlgAdeZR66sZa1CTBYbu26osM55/8NyTM7cobRId/MT6uutpRu0J8LlQ2sYuNAIng==",
-      "requires": {
-        "primer-support": "4.7.2"
-      }
-    },
-    "primer-support": {
-      "version": "4.7.2",
-      "resolved": "https://registry.npmjs.org/primer-support/-/primer-support-4.7.2.tgz",
-      "integrity": "sha512-WbfjjITtGV6iXQeaVPL+AzHj1Jv9RHJRp7kIu5ebFXwolWmCqTBpA/8VmWmssyeTfv8zR7iuCoT0UoBF+uGHww=="
-    },
-    "primer-utilities": {
-      "version": "4.14.4",
-      "resolved": "https://registry.npmjs.org/primer-utilities/-/primer-utilities-4.14.4.tgz",
-      "integrity": "sha512-EEZxsp/bjY4jkTqDeVJfWI/df55icDhFDGylX59VeiSVudIgUUe5G1VqtgGJIXgqnkiLf5u+iaOSayFvxqhTrg==",
-      "requires": {
-        "primer-support": "4.7.2"
+      "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "pump": {
+    "node_modules/pump": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
       "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "end-of-stream": "^1.1.0",
         "once": "^1.3.1"
       }
     },
-    "regex-not": {
+    "node_modules/regex-not": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
       "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "extend-shallow": "^3.0.2",
         "safe-regex": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "repeat-element": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
-      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
-      "dev": true
+    "node_modules/repeat-element": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+      "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "repeat-string": {
+    "node_modules/repeat-string": {
       "version": "1.6.1",
       "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
-      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
-      "dev": true
+      "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10"
+      }
     },
-    "require-directory": {
+    "node_modules/require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "require-main-filename": {
+    "node_modules/require-main-filename": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
-      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+      "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==",
       "dev": true
     },
-    "resolve": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
-      "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
+    "node_modules/resolve": {
+      "version": "1.22.8",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
       "dev": true,
-      "requires": {
-        "path-parse": "^1.0.6"
+      "dependencies": {
+        "is-core-module": "^2.13.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
-    "resolve-from": {
+    "node_modules/resolve-from": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
-      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
-      "dev": true
+      "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
     },
-    "resolve-url": {
+    "node_modules/resolve-url": {
       "version": "0.2.1",
       "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
-      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+      "deprecated": "https://github.com/lydell/resolve-url#deprecated",
       "dev": true
     },
-    "ret": {
+    "node_modules/ret": {
       "version": "0.1.15",
       "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
       "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=0.12"
+      }
     },
-    "safe-regex": {
+    "node_modules/safe-regex": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
-      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "ret": "~0.1.10"
       }
     },
-    "semver": {
-      "version": "5.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-      "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
-      "dev": true
+    "node_modules/semver": {
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver"
+      }
     },
-    "set-blocking": {
+    "node_modules/set-blocking": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
       "dev": true
     },
-    "set-value": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
-      "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+    "node_modules/set-value": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "extend-shallow": "^2.0.1",
         "is-extendable": "^0.1.1",
         "is-plain-object": "^2.0.3",
         "split-string": "^3.0.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/set-value/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
       "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "shebang-command": {
+    "node_modules/set-value/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/shebang-command": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "shebang-regex": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "shebang-regex": {
+    "node_modules/shebang-regex": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
-      "dev": true
+      "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "signal-exit": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
-      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+    "node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
       "dev": true
     },
-    "slash": {
+    "node_modules/slash": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
       "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
     },
-    "snapdragon": {
+    "node_modules/snapdragon": {
       "version": "0.8.2",
       "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
       "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "base": "^0.11.1",
         "debug": "^2.2.0",
         "define-property": "^0.2.5",
@@ -1562,399 +2006,489 @@
         "source-map-resolve": "^0.5.0",
         "use": "^3.1.0"
       },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "snapdragon-node": {
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-node": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
       "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "define-property": "^1.0.0",
         "isobject": "^3.0.0",
         "snapdragon-util": "^3.0.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-node/node_modules/define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+      "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
-          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "snapdragon-util": {
+        "is-descriptor": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-util": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
       "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "kind-of": "^3.2.0"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-util/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
       "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/snapdragon/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "source-map": {
+    "node_modules/source-map": {
       "version": "0.5.7",
       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-      "dev": true
+      "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "source-map-resolve": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
-      "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+    "node_modules/source-map-resolve": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+      "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+      "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
       "dev": true,
-      "requires": {
-        "atob": "^2.1.1",
+      "dependencies": {
+        "atob": "^2.1.2",
         "decode-uri-component": "^0.2.0",
         "resolve-url": "^0.2.1",
         "source-map-url": "^0.4.0",
         "urix": "^0.1.0"
       }
     },
-    "source-map-url": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
-      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+    "node_modules/source-map-url": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+      "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+      "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
       "dev": true
     },
-    "split-string": {
+    "node_modules/split-string": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
       "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "extend-shallow": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "sprintf-js": {
+    "node_modules/sprintf-js": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
       "dev": true
     },
-    "static-extend": {
+    "node_modules/static-extend": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
-      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "define-property": "^0.2.5",
         "object-copy": "^0.1.0"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/static-extend/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/static-extend/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
       "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        }
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
       }
     },
-    "string-width": {
+    "node_modules/string-width": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
       "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-fullwidth-code-point": "^2.0.0",
         "strip-ansi": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "strip-ansi": {
+    "node_modules/strip-ansi": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-      "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+      "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "ansi-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
-    "strip-eof": {
+    "node_modules/strip-eof": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
-      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
-      "dev": true
+      "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
     },
-    "to-object-path": {
+    "node_modules/to-object-path": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
-      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "kind-of": "^3.0.2"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/to-object-path/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
       "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "to-regex": {
+    "node_modules/to-regex": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
       "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "define-property": "^2.0.2",
         "extend-shallow": "^3.0.2",
         "regex-not": "^1.0.2",
         "safe-regex": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "to-regex-range": {
+    "node_modules/to-regex-range": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
-      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "is-number": "^3.0.0",
         "repeat-string": "^1.6.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
       }
     },
-    "union-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
-      "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+    "node_modules/undici-types": {
+      "version": "6.13.0",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz",
+      "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==",
+      "dev": true
+    },
+    "node_modules/union-value": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "arr-union": "^3.1.0",
         "get-value": "^2.0.6",
         "is-extendable": "^0.1.1",
-        "set-value": "^0.4.3"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "set-value": {
-          "version": "0.4.3",
-          "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
-          "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-extendable": "^0.1.1",
-            "is-plain-object": "^2.0.1",
-            "to-object-path": "^0.3.0"
-          }
-        }
-      }
-    },
-    "universalify": {
+        "set-value": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/union-value/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/universalify": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
       "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">= 4.0.0"
+      }
     },
-    "unset-value": {
+    "node_modules/unset-value": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
-      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "has-value": "^0.3.1",
         "isobject": "^3.0.0"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/has-value": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+      "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+      "dev": true,
+      "dependencies": {
+        "get-value": "^2.0.3",
+        "has-values": "^0.1.4",
+        "isobject": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+      "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+      "dev": true,
       "dependencies": {
-        "has-value": {
-          "version": "0.3.1",
-          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
-          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
-          "dev": true,
-          "requires": {
-            "get-value": "^2.0.3",
-            "has-values": "^0.1.4",
-            "isobject": "^2.0.0"
-          },
-          "dependencies": {
-            "isobject": {
-              "version": "2.1.0",
-              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
-              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-              "dev": true,
-              "requires": {
-                "isarray": "1.0.0"
-              }
-            }
-          }
-        },
-        "has-values": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
-          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
-          "dev": true
-        }
-      }
-    },
-    "urix": {
+        "isarray": "1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/has-values": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+      "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/urix": {
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
-      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+      "deprecated": "Please see https://github.com/lydell/urix#deprecated",
       "dev": true
     },
-    "use": {
+    "node_modules/use": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
       "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
-      "dev": true
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
-    "which": {
+    "node_modules/which": {
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
       "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "isexe": "^2.0.0"
+      },
+      "bin": {
+        "which": "bin/which"
       }
     },
-    "which-module": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+    "node_modules/which-module": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+      "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
       "dev": true
     },
-    "wrap-ansi": {
+    "node_modules/wrap-ansi": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "string-width": "^1.0.1",
         "strip-ansi": "^3.0.1"
       },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+      "dev": true,
+      "dependencies": {
+        "number-is-nan": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+      "dev": true,
+      "dependencies": {
+        "code-point-at": "^1.0.0",
+        "is-fullwidth-code-point": "^1.0.0",
+        "strip-ansi": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+      "dev": true,
       "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        }
-      }
-    },
-    "wrappy": {
+        "ansi-regex": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
       "dev": true
     },
-    "y18n": {
+    "node_modules/y18n": {
       "version": "4.0.3",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
       "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
       "dev": true
     },
-    "yargs": {
+    "node_modules/yargs": {
       "version": "12.0.5",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
       "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "cliui": "^4.0.0",
         "decamelize": "^1.2.0",
         "find-up": "^3.0.0",
@@ -1969,12 +2503,12 @@
         "yargs-parser": "^11.1.1"
       }
     },
-    "yargs-parser": {
+    "node_modules/yargs-parser": {
       "version": "11.1.1",
       "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
       "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
       "dev": true,
-      "requires": {
+      "dependencies": {
         "camelcase": "^5.0.0",
         "decamelize": "^1.2.0"
       }

From 2fb18c18b208e0e169366cf53cc9d3e4f64173fe Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 14:18:48 -0700
Subject: [PATCH 11/13] Fix

---
 _config.yml                    | 2 ++
 _sass/jekyll-theme-primer.scss | 7 -------
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/_config.yml b/_config.yml
index b9fd1f28..0e79b108 100644
--- a/_config.yml
+++ b/_config.yml
@@ -4,6 +4,8 @@ exclude:
 
 sass:
   style: :compressed
+  load_paths:
+    - ../node_modules/
 
 theme: jekyll-theme-primer
 
diff --git a/_sass/jekyll-theme-primer.scss b/_sass/jekyll-theme-primer.scss
index 87331d62..2312082c 100644
--- a/_sass/jekyll-theme-primer.scss
+++ b/_sass/jekyll-theme-primer.scss
@@ -6,10 +6,3 @@
 @import "@primer/css/markdown/index.scss";
 @import "rouge";
 
-@import "@primer/css/support/index.scss";
-@import "@primer/css/base/index.scss";
-@import "@primer/css/utilities/index.scss";
-@import "@primer/css/layout/index.scss";
-@import "@primer/css/markdown/index.scss";
-@import "rouge";
-

From 493cef44574d963dbd7b624c229921d6a9a84901 Mon Sep 17 00:00:00 2001
From: Samson Orr 
Date: Wed, 7 Aug 2024 14:30:08 -0700
Subject: [PATCH 12/13] Fix

---
 _sass/@primer/css/alerts/flash.scss           |   1 +
 _sass/@primer/css/alerts/index.scss           |   3 +
 .../css/autocomplete/autocomplete.scss        |   1 +
 _sass/@primer/css/autocomplete/index.scss     |   4 +
 _sass/@primer/css/autocomplete/suggester.scss |  92 ++++
 .../css/avatars/avatar-parent-child.scss      |  17 +
 _sass/@primer/css/avatars/avatar-stack.scss   |   1 +
 _sass/@primer/css/avatars/avatar.scss         |   1 +
 _sass/@primer/css/avatars/circle-badge.scss   |  55 +++
 _sass/@primer/css/avatars/index.scss          |   7 +
 _sass/@primer/css/base/base.scss              | 153 ++++++
 _sass/@primer/css/base/index.scss             |   7 +
 _sass/@primer/css/base/kbd.scss               |  19 +
 _sass/@primer/css/base/native-colors.scss     |  24 +
 _sass/@primer/css/base/normalize.scss         | 382 +++++++++++++++
 _sass/@primer/css/base/octicons.scss          |   6 +
 _sass/@primer/css/base/typography-base.scss   |  89 ++++
 _sass/@primer/css/blankslate/blankslate.scss  |   1 +
 _sass/@primer/css/blankslate/index.scss       |   2 +
 _sass/@primer/css/box/box-overlay.scss        |  42 ++
 _sass/@primer/css/box/box.scss                |   1 +
 _sass/@primer/css/box/index.scss              |   3 +
 .../@primer/css/branch-name/branch-name.scss  |  31 ++
 _sass/@primer/css/branch-name/index.scss      |   3 +
 _sass/@primer/css/breadcrumb/breadcrumb.scss  |   1 +
 _sass/@primer/css/breadcrumb/index.scss       |   3 +
 _sass/@primer/css/buttons/button-group.scss   |  92 ++++
 _sass/@primer/css/buttons/button.scss         | 340 +++++++++++++
 _sass/@primer/css/buttons/index.scss          |   4 +
 _sass/@primer/css/buttons/misc.scss           | 232 +++++++++
 _sass/@primer/css/color-modes/index.scss      |  11 +
 .../@primer/css/color-modes/themes/dark.scss  |   1 +
 .../color-modes/themes/dark_colorblind.scss   |   1 +
 .../css/color-modes/themes/dark_dimmed.scss   |   1 +
 .../themes/dark_high_contrast.scss            |   1 +
 .../color-modes/themes/dark_tritanopia.scss   |   1 +
 .../@primer/css/color-modes/themes/light.scss |   1 +
 .../color-modes/themes/light_colorblind.scss  |   1 +
 .../themes/light_high_contrast.scss           |   1 +
 .../color-modes/themes/light_tritanopia.scss  |   1 +
 _sass/@primer/css/core/index.scss             |  29 ++
 _sass/@primer/css/dropdown/dropdown.scss      |   1 +
 _sass/@primer/css/dropdown/index.scss         |   2 +
 _sass/@primer/css/forms/FormControl.scss      |   1 +
 _sass/@primer/css/forms/form-control.scss     | 268 ++++++++++
 _sass/@primer/css/forms/form-group.scss       | 289 +++++++++++
 _sass/@primer/css/forms/form-select.scss      |  46 ++
 _sass/@primer/css/forms/index.scss            |   8 +
 _sass/@primer/css/forms/input-group.scss      |  81 +++
 _sass/@primer/css/forms/radio-group.scss      |  62 +++
 _sass/@primer/css/header/header.scss          |  47 ++
 _sass/@primer/css/header/index.scss           |   2 +
 _sass/@primer/css/index.scss                  |  20 +
 _sass/@primer/css/labels/counters.scss        |   1 +
 _sass/@primer/css/labels/index.scss           |   6 +
 _sass/@primer/css/labels/issue-labels.scss    |  24 +
 _sass/@primer/css/labels/labels.scss          |   1 +
 _sass/@primer/css/labels/mixins.scss          |  37 ++
 _sass/@primer/css/labels/states.scss          |   1 +
 _sass/@primer/css/layout/app-frame.scss       | 156 ++++++
 _sass/@primer/css/layout/container.scss       |  30 ++
 _sass/@primer/css/layout/grid-offset.scss     |  19 +
 _sass/@primer/css/layout/grid.scss            |  65 +++
 _sass/@primer/css/layout/index.scss           |   8 +
 _sass/@primer/css/layout/layout.scss          |   1 +
 _sass/@primer/css/layout/page-layout.scss     | 415 ++++++++++++++++
 _sass/@primer/css/layout/stack.scss           | 220 +++++++++
 _sass/@primer/css/links/index.scss            |   3 +
 _sass/@primer/css/links/link.scss             |   1 +
 _sass/@primer/css/loaders/index.scss          |   2 +
 _sass/@primer/css/loaders/loaders.scss        |  19 +
 _sass/@primer/css/markdown/blob-csv.scss      |  29 ++
 _sass/@primer/css/markdown/code.scss          |  78 +++
 _sass/@primer/css/markdown/footnotes.scss     |  55 +++
 _sass/@primer/css/markdown/headings.scss      |  96 ++++
 _sass/@primer/css/markdown/images.scss        | 130 +++++
 _sass/@primer/css/markdown/index.scss         |   9 +
 _sass/@primer/css/markdown/lists.scss         |  99 ++++
 _sass/@primer/css/markdown/markdown-body.scss |  96 ++++
 _sass/@primer/css/markdown/tables.scss        |  42 ++
 .../@primer/css/marketing/buttons/button.scss | 164 +++++++
 .../@primer/css/marketing/buttons/index.scss  |   3 +
 _sass/@primer/css/marketing/index.scss        |  15 +
 _sass/@primer/css/marketing/links/index.scss  |   3 +
 _sass/@primer/css/marketing/links/link.scss   |  52 ++
 .../@primer/css/marketing/support/index.scss  |   2 +
 .../css/marketing/support/variables.scss      | 140 ++++++
 _sass/@primer/css/marketing/type/index.scss   |   3 +
 .../css/marketing/type/typography.scss        | 118 +++++
 .../css/marketing/utilities/animations.scss   |  51 ++
 .../css/marketing/utilities/borders.scss      |   4 +
 .../css/marketing/utilities/filters.scss      |   3 +
 .../css/marketing/utilities/index.scss        |   6 +
 .../css/marketing/utilities/layout.scss       |  58 +++
 _sass/@primer/css/navigation/filter-list.scss |  82 ++++
 _sass/@primer/css/navigation/index.scss       |   8 +
 _sass/@primer/css/navigation/menu.scss        |   1 +
 _sass/@primer/css/navigation/sidenav.scss     |  99 ++++
 _sass/@primer/css/navigation/subnav.scss      | 147 ++++++
 _sass/@primer/css/navigation/tabnav.scss      |   1 +
 .../@primer/css/navigation/underline-nav.scss |   1 +
 _sass/@primer/css/overlay/index.scss          |   2 +
 _sass/@primer/css/overlay/overlay.scss        |   1 +
 _sass/@primer/css/pagination/index.scss       |   3 +
 _sass/@primer/css/pagination/pagination.scss  | 156 ++++++
 _sass/@primer/css/popover/index.scss          |   3 +
 _sass/@primer/css/popover/popover.scss        |   1 +
 _sass/@primer/css/primitives/index.scss       |   8 +
 .../primitives/temp-typography-tokens.scss    |  22 +
 _sass/@primer/css/product/index.scss          |  28 ++
 _sass/@primer/css/progress/index.scss         |   3 +
 _sass/@primer/css/progress/progress.scss      |   1 +
 _sass/@primer/css/select-menu/index.scss      |   3 +
 .../@primer/css/select-menu/select-menu.scss  | 463 ++++++++++++++++++
 _sass/@primer/css/subhead/index.scss          |   3 +
 _sass/@primer/css/subhead/subhead.scss        |   1 +
 _sass/@primer/css/support/index.scss          |  10 +
 .../css/support/mixins/color-modes.scss       | 197 ++++++++
 _sass/@primer/css/support/mixins/layout.scss  |  58 +++
 _sass/@primer/css/support/mixins/misc.scss    |  74 +++
 .../css/support/mixins/typography.scss        |  91 ++++
 .../@primer/css/support/variables/layout.scss | 230 +++++++++
 _sass/@primer/css/support/variables/misc.scss |  18 +
 .../css/support/variables/typography.scss     |  43 ++
 _sass/@primer/css/table-object/index.scss     |   1 +
 .../css/table-object/table-object.scss        |  23 +
 _sass/@primer/css/timeline/index.scss         |   2 +
 _sass/@primer/css/timeline/timeline-item.scss |   1 +
 _sass/@primer/css/toasts/index.scss           |   2 +
 _sass/@primer/css/toasts/toasts.scss          | 127 +++++
 _sass/@primer/css/toggle-switch/index.scss    |   2 +
 .../css/toggle-switch/toggle-switch.scss      |   1 +
 _sass/@primer/css/tooltips/index.scss         |   2 +
 _sass/@primer/css/tooltips/tooltips.scss      | 228 +++++++++
 _sass/@primer/css/truncate/index.scss         |   2 +
 _sass/@primer/css/truncate/truncate.scss      |   2 +
 _sass/@primer/css/utilities/animations.scss   | 196 ++++++++
 _sass/@primer/css/utilities/borders.scss      |  74 +++
 _sass/@primer/css/utilities/box-shadow.scss   |  29 ++
 _sass/@primer/css/utilities/colors.scss       |  94 ++++
 _sass/@primer/css/utilities/details.scss      | 105 ++++
 _sass/@primer/css/utilities/flexbox.scss      |  51 ++
 _sass/@primer/css/utilities/index.scss        |  14 +
 _sass/@primer/css/utilities/layout.scss       |  98 ++++
 _sass/@primer/css/utilities/margin.scss       |  69 +++
 _sass/@primer/css/utilities/padding.scss      |  55 +++
 _sass/@primer/css/utilities/typography.scss   | 332 +++++++++++++
 .../css/utilities/visibility-display.scss     | 124 +++++
 148 files changed, 8150 insertions(+)
 create mode 100644 _sass/@primer/css/alerts/flash.scss
 create mode 100644 _sass/@primer/css/alerts/index.scss
 create mode 100644 _sass/@primer/css/autocomplete/autocomplete.scss
 create mode 100644 _sass/@primer/css/autocomplete/index.scss
 create mode 100644 _sass/@primer/css/autocomplete/suggester.scss
 create mode 100644 _sass/@primer/css/avatars/avatar-parent-child.scss
 create mode 100644 _sass/@primer/css/avatars/avatar-stack.scss
 create mode 100644 _sass/@primer/css/avatars/avatar.scss
 create mode 100644 _sass/@primer/css/avatars/circle-badge.scss
 create mode 100644 _sass/@primer/css/avatars/index.scss
 create mode 100644 _sass/@primer/css/base/base.scss
 create mode 100644 _sass/@primer/css/base/index.scss
 create mode 100644 _sass/@primer/css/base/kbd.scss
 create mode 100644 _sass/@primer/css/base/native-colors.scss
 create mode 100644 _sass/@primer/css/base/normalize.scss
 create mode 100644 _sass/@primer/css/base/octicons.scss
 create mode 100644 _sass/@primer/css/base/typography-base.scss
 create mode 100644 _sass/@primer/css/blankslate/blankslate.scss
 create mode 100644 _sass/@primer/css/blankslate/index.scss
 create mode 100644 _sass/@primer/css/box/box-overlay.scss
 create mode 100644 _sass/@primer/css/box/box.scss
 create mode 100644 _sass/@primer/css/box/index.scss
 create mode 100644 _sass/@primer/css/branch-name/branch-name.scss
 create mode 100644 _sass/@primer/css/branch-name/index.scss
 create mode 100644 _sass/@primer/css/breadcrumb/breadcrumb.scss
 create mode 100644 _sass/@primer/css/breadcrumb/index.scss
 create mode 100644 _sass/@primer/css/buttons/button-group.scss
 create mode 100644 _sass/@primer/css/buttons/button.scss
 create mode 100644 _sass/@primer/css/buttons/index.scss
 create mode 100644 _sass/@primer/css/buttons/misc.scss
 create mode 100644 _sass/@primer/css/color-modes/index.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/dark.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/dark_colorblind.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/dark_dimmed.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/dark_high_contrast.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/dark_tritanopia.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/light.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/light_colorblind.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/light_high_contrast.scss
 create mode 100644 _sass/@primer/css/color-modes/themes/light_tritanopia.scss
 create mode 100644 _sass/@primer/css/core/index.scss
 create mode 100644 _sass/@primer/css/dropdown/dropdown.scss
 create mode 100644 _sass/@primer/css/dropdown/index.scss
 create mode 100644 _sass/@primer/css/forms/FormControl.scss
 create mode 100644 _sass/@primer/css/forms/form-control.scss
 create mode 100644 _sass/@primer/css/forms/form-group.scss
 create mode 100644 _sass/@primer/css/forms/form-select.scss
 create mode 100644 _sass/@primer/css/forms/index.scss
 create mode 100644 _sass/@primer/css/forms/input-group.scss
 create mode 100644 _sass/@primer/css/forms/radio-group.scss
 create mode 100644 _sass/@primer/css/header/header.scss
 create mode 100644 _sass/@primer/css/header/index.scss
 create mode 100644 _sass/@primer/css/index.scss
 create mode 100644 _sass/@primer/css/labels/counters.scss
 create mode 100644 _sass/@primer/css/labels/index.scss
 create mode 100644 _sass/@primer/css/labels/issue-labels.scss
 create mode 100644 _sass/@primer/css/labels/labels.scss
 create mode 100644 _sass/@primer/css/labels/mixins.scss
 create mode 100644 _sass/@primer/css/labels/states.scss
 create mode 100644 _sass/@primer/css/layout/app-frame.scss
 create mode 100644 _sass/@primer/css/layout/container.scss
 create mode 100644 _sass/@primer/css/layout/grid-offset.scss
 create mode 100644 _sass/@primer/css/layout/grid.scss
 create mode 100644 _sass/@primer/css/layout/index.scss
 create mode 100644 _sass/@primer/css/layout/layout.scss
 create mode 100644 _sass/@primer/css/layout/page-layout.scss
 create mode 100644 _sass/@primer/css/layout/stack.scss
 create mode 100644 _sass/@primer/css/links/index.scss
 create mode 100644 _sass/@primer/css/links/link.scss
 create mode 100644 _sass/@primer/css/loaders/index.scss
 create mode 100644 _sass/@primer/css/loaders/loaders.scss
 create mode 100644 _sass/@primer/css/markdown/blob-csv.scss
 create mode 100644 _sass/@primer/css/markdown/code.scss
 create mode 100644 _sass/@primer/css/markdown/footnotes.scss
 create mode 100644 _sass/@primer/css/markdown/headings.scss
 create mode 100644 _sass/@primer/css/markdown/images.scss
 create mode 100644 _sass/@primer/css/markdown/index.scss
 create mode 100644 _sass/@primer/css/markdown/lists.scss
 create mode 100644 _sass/@primer/css/markdown/markdown-body.scss
 create mode 100644 _sass/@primer/css/markdown/tables.scss
 create mode 100644 _sass/@primer/css/marketing/buttons/button.scss
 create mode 100644 _sass/@primer/css/marketing/buttons/index.scss
 create mode 100644 _sass/@primer/css/marketing/index.scss
 create mode 100644 _sass/@primer/css/marketing/links/index.scss
 create mode 100644 _sass/@primer/css/marketing/links/link.scss
 create mode 100644 _sass/@primer/css/marketing/support/index.scss
 create mode 100644 _sass/@primer/css/marketing/support/variables.scss
 create mode 100644 _sass/@primer/css/marketing/type/index.scss
 create mode 100644 _sass/@primer/css/marketing/type/typography.scss
 create mode 100644 _sass/@primer/css/marketing/utilities/animations.scss
 create mode 100644 _sass/@primer/css/marketing/utilities/borders.scss
 create mode 100644 _sass/@primer/css/marketing/utilities/filters.scss
 create mode 100644 _sass/@primer/css/marketing/utilities/index.scss
 create mode 100644 _sass/@primer/css/marketing/utilities/layout.scss
 create mode 100644 _sass/@primer/css/navigation/filter-list.scss
 create mode 100644 _sass/@primer/css/navigation/index.scss
 create mode 100644 _sass/@primer/css/navigation/menu.scss
 create mode 100644 _sass/@primer/css/navigation/sidenav.scss
 create mode 100644 _sass/@primer/css/navigation/subnav.scss
 create mode 100644 _sass/@primer/css/navigation/tabnav.scss
 create mode 100644 _sass/@primer/css/navigation/underline-nav.scss
 create mode 100644 _sass/@primer/css/overlay/index.scss
 create mode 100644 _sass/@primer/css/overlay/overlay.scss
 create mode 100644 _sass/@primer/css/pagination/index.scss
 create mode 100644 _sass/@primer/css/pagination/pagination.scss
 create mode 100644 _sass/@primer/css/popover/index.scss
 create mode 100644 _sass/@primer/css/popover/popover.scss
 create mode 100644 _sass/@primer/css/primitives/index.scss
 create mode 100644 _sass/@primer/css/primitives/temp-typography-tokens.scss
 create mode 100644 _sass/@primer/css/product/index.scss
 create mode 100644 _sass/@primer/css/progress/index.scss
 create mode 100644 _sass/@primer/css/progress/progress.scss
 create mode 100644 _sass/@primer/css/select-menu/index.scss
 create mode 100644 _sass/@primer/css/select-menu/select-menu.scss
 create mode 100644 _sass/@primer/css/subhead/index.scss
 create mode 100644 _sass/@primer/css/subhead/subhead.scss
 create mode 100644 _sass/@primer/css/support/index.scss
 create mode 100644 _sass/@primer/css/support/mixins/color-modes.scss
 create mode 100644 _sass/@primer/css/support/mixins/layout.scss
 create mode 100644 _sass/@primer/css/support/mixins/misc.scss
 create mode 100644 _sass/@primer/css/support/mixins/typography.scss
 create mode 100644 _sass/@primer/css/support/variables/layout.scss
 create mode 100644 _sass/@primer/css/support/variables/misc.scss
 create mode 100644 _sass/@primer/css/support/variables/typography.scss
 create mode 100644 _sass/@primer/css/table-object/index.scss
 create mode 100644 _sass/@primer/css/table-object/table-object.scss
 create mode 100644 _sass/@primer/css/timeline/index.scss
 create mode 100644 _sass/@primer/css/timeline/timeline-item.scss
 create mode 100644 _sass/@primer/css/toasts/index.scss
 create mode 100644 _sass/@primer/css/toasts/toasts.scss
 create mode 100644 _sass/@primer/css/toggle-switch/index.scss
 create mode 100644 _sass/@primer/css/toggle-switch/toggle-switch.scss
 create mode 100644 _sass/@primer/css/tooltips/index.scss
 create mode 100644 _sass/@primer/css/tooltips/tooltips.scss
 create mode 100644 _sass/@primer/css/truncate/index.scss
 create mode 100644 _sass/@primer/css/truncate/truncate.scss
 create mode 100644 _sass/@primer/css/utilities/animations.scss
 create mode 100644 _sass/@primer/css/utilities/borders.scss
 create mode 100644 _sass/@primer/css/utilities/box-shadow.scss
 create mode 100644 _sass/@primer/css/utilities/colors.scss
 create mode 100644 _sass/@primer/css/utilities/details.scss
 create mode 100644 _sass/@primer/css/utilities/flexbox.scss
 create mode 100644 _sass/@primer/css/utilities/index.scss
 create mode 100644 _sass/@primer/css/utilities/layout.scss
 create mode 100644 _sass/@primer/css/utilities/margin.scss
 create mode 100644 _sass/@primer/css/utilities/padding.scss
 create mode 100644 _sass/@primer/css/utilities/typography.scss
 create mode 100644 _sass/@primer/css/utilities/visibility-display.scss

diff --git a/_sass/@primer/css/alerts/flash.scss b/_sass/@primer/css/alerts/flash.scss
new file mode 100644
index 00000000..f953b91f
--- /dev/null
+++ b/_sass/@primer/css/alerts/flash.scss
@@ -0,0 +1 @@
+@import '@primer/view-components/app/components/primer/beta/flash';
diff --git a/_sass/@primer/css/alerts/index.scss b/_sass/@primer/css/alerts/index.scss
new file mode 100644
index 00000000..033fb3b1
--- /dev/null
+++ b/_sass/@primer/css/alerts/index.scss
@@ -0,0 +1,3 @@
+// support files
+@import '../support/index.scss';
+@import './flash.scss';
diff --git a/_sass/@primer/css/autocomplete/autocomplete.scss b/_sass/@primer/css/autocomplete/autocomplete.scss
new file mode 100644
index 00000000..44ecab95
--- /dev/null
+++ b/_sass/@primer/css/autocomplete/autocomplete.scss
@@ -0,0 +1 @@
+@import '@primer/view-components/app/components/primer/alpha/auto_complete';
diff --git a/_sass/@primer/css/autocomplete/index.scss b/_sass/@primer/css/autocomplete/index.scss
new file mode 100644
index 00000000..5eb68a36
--- /dev/null
+++ b/_sass/@primer/css/autocomplete/index.scss
@@ -0,0 +1,4 @@
+// support files
+@import '../support/index.scss';
+@import './autocomplete.scss';
+@import './suggester.scss';
diff --git a/_sass/@primer/css/autocomplete/suggester.scss b/_sass/@primer/css/autocomplete/suggester.scss
new file mode 100644
index 00000000..9e6d5c8a
--- /dev/null
+++ b/_sass/@primer/css/autocomplete/suggester.scss
@@ -0,0 +1,92 @@
+// Needs refactoring
+// stylelint-disable selector-max-type, selector-no-qualifying-type
+
+.suggester {
+  position: relative;
+  top: 0;
+  left: 0;
+  min-width: 180px;
+  padding: 0;
+  margin: 0;
+  margin-top: var(--base-size-24);
+  list-style: none;
+  cursor: pointer;
+  background: var(--overlay-bgColor, var(--color-canvas-overlay));
+  border: $border-width $border-style var(--borderColor-default, var(--color-border-default));
+  border-radius: $border-radius;
+  box-shadow: var(--shadow-resting-medium, var(--color-shadow-medium));
+
+  li {
+    display: block;
+    padding: var(--base-size-4) var(--base-size-8);
+    font-weight: $font-weight-semibold;
+    border-bottom: $border-width $border-style var(--borderColor-muted, var(--color-border-muted));
+
+    small {
+      font-weight: $font-weight-normal;
+      color: var(--fgColor-muted, var(--color-fg-muted));
+    }
+
+    &:last-child {
+      border-bottom: 0;
+      border-bottom-right-radius: $border-radius;
+      border-bottom-left-radius: $border-radius;
+    }
+
+    &:first-child {
+      border-top-left-radius: $border-radius;
+      border-top-right-radius: $border-radius;
+    }
+
+    &:hover {
+      color: var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));
+      text-decoration: none;
+      background: var(--bgColor-accent-emphasis, var(--color-accent-emphasis));
+
+      small {
+        color: var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));
+      }
+
+      .octicon {
+        color: inherit !important;
+      }
+    }
+
+    &[aria-selected='true'],
+    &.navigation-focus {
+      color: var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));
+      text-decoration: none;
+      background: var(--bgColor-accent-emphasis, var(--color-accent-emphasis));
+
+      small {
+        color: var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));
+      }
+
+      .octicon {
+        color: inherit !important;
+      }
+    }
+  }
+}
+
+.suggester-container {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 30;
+}
+
+// Responsive
+
+.page-responsive {
+  @media (max-width: $width-sm) {
+    .suggester-container {
+      right: var(--base-size-8) !important;
+      left: var(--base-size-8) !important;
+    }
+
+    .suggester li {
+      padding: var(--base-size-8) var(--base-size-16);
+    }
+  }
+}
diff --git a/_sass/@primer/css/avatars/avatar-parent-child.scss b/_sass/@primer/css/avatars/avatar-parent-child.scss
new file mode 100644
index 00000000..01a5c712
--- /dev/null
+++ b/_sass/@primer/css/avatars/avatar-parent-child.scss
@@ -0,0 +1,17 @@
+// .avatar-parent-child is when you see a small avatar at the bottom right
+// corner of a larger avatar.
+//
+// No Styleguide version
+.avatar-parent-child {
+  position: relative;
+}
+
+.avatar-child {
+  position: absolute;
+  right: -15%;
+  bottom: -9%;
+  background-color: var(--bgColor-default, var(--color-canvas-default)); // For transparent backgrounds
+  // stylelint-disable-next-line primer/borders
+  border-radius: $border-radius-1;
+  box-shadow: var(--avatar-shadow, var(--color-avatar-child-shadow));
+}
diff --git a/_sass/@primer/css/avatars/avatar-stack.scss b/_sass/@primer/css/avatars/avatar-stack.scss
new file mode 100644
index 00000000..7a9b9ec6
--- /dev/null
+++ b/_sass/@primer/css/avatars/avatar-stack.scss
@@ -0,0 +1 @@
+@import '@primer/view-components/app/components/primer/beta/avatar_stack';
diff --git a/_sass/@primer/css/avatars/avatar.scss b/_sass/@primer/css/avatars/avatar.scss
new file mode 100644
index 00000000..78a80820
--- /dev/null
+++ b/_sass/@primer/css/avatars/avatar.scss
@@ -0,0 +1 @@
+@import '@primer/view-components/app/components/primer/beta/avatar';
diff --git a/_sass/@primer/css/avatars/circle-badge.scss b/_sass/@primer/css/avatars/circle-badge.scss
new file mode 100644
index 00000000..63032cfb
--- /dev/null
+++ b/_sass/@primer/css/avatars/circle-badge.scss
@@ -0,0 +1,55 @@
+// Circle badge icon with drop shadow for icons and logos
+
+.CircleBadge {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: var(--bgColor-default, var(--color-canvas-default));
+  border-radius: 50%;
+  box-shadow: var(--shadow-resting-medium, var(--color-shadow-medium));
+}
+
+.CircleBadge-icon {
+  max-width: 60% !important;
+  height: auto !important;
+  max-height: 55% !important;
+}
+
+// Small badge
+.CircleBadge--small {
+  width: 56px;
+  height: 56px;
+}
+
+// Medium badge
+.CircleBadge--medium {
+  width: 96px;
+  height: 96px;
+}
+
+// Large badge
+.CircleBadge--large {
+  width: 128px;
+  height: 128px;
+}
+
+// Dashed line that connects badges..
+// Wrap around 2 or more badges to create a horizonal line:
+
+.DashedConnection {
+  position: relative;
+
+  &::before {
+    position: absolute;
+    top: 50%;
+    left: 0;
+    width: 100%;
+    content: '';
+    // stylelint-disable-next-line primer/borders
+    border-bottom: 2px dashed var(--borderColor-default, var(--color-border-default));
+  }
+
+  .CircleBadge {
+    position: relative;
+  }
+}
diff --git a/_sass/@primer/css/avatars/index.scss b/_sass/@primer/css/avatars/index.scss
new file mode 100644
index 00000000..2ddedec9
--- /dev/null
+++ b/_sass/@primer/css/avatars/index.scss
@@ -0,0 +1,7 @@
+@import '../support/index.scss';
+
+// Avatars
+@import './avatar.scss';
+@import './avatar-parent-child.scss';
+@import './avatar-stack.scss';
+@import './circle-badge.scss';
diff --git a/_sass/@primer/css/base/base.scss b/_sass/@primer/css/base/base.scss
new file mode 100644
index 00000000..7fde534c
--- /dev/null
+++ b/_sass/@primer/css/base/base.scss
@@ -0,0 +1,153 @@
+// stylelint-disable selector-max-type, selector-no-qualifying-type, primer/typography
+* {
+  box-sizing: border-box;
+}
+
+input,
+select,
+textarea,
+button {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+body {
+  font-family: $body-font;
+  font-size: var(--body-font-size, $body-font-size);
+  line-height: $body-line-height;
+  color: var(--fgColor-default, var(--color-fg-default));
+  background-color: var(--bgColor-default, var(--color-canvas-default));
+}
+
+a {
+  color: var(--fgColor-accent, var(--color-accent-fg));
+  text-decoration: none;
+
+  &:hover {
+    text-decoration: underline;
+  }
+}
+
+b,
+strong {
+  font-weight: $font-weight-bold;
+}
+
+fieldset {
+  padding: 0;
+  margin: 0;
+  border: 0;
+}
+
+label {
+  font-weight: $font-weight-bold;
+}
+
+// Custom styling for HTML5 validation bubbles (WebKit only)
+::placeholder {
+  color: var(--fgColor-muted, var(--color-fg-subtle));
+  opacity: 1; // override opacity in normalize.css
+}
+
+// Horizontal lines
+//
+// TODO-MDO: Remove `.rule` from everywhere and replace with `
`s +hr, +.rule { + height: 0; + // stylelint-disable-next-line primer/spacing + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: $border-width $border-style var(--borderColor-muted, var(--color-border-muted)); + + @include clearfix(); +} + +// +// Remove most spacing between table cells. +// + +table { + border-spacing: 0; + border-collapse: collapse; +} + +td, +th { + padding: 0; +} + +button { + cursor: pointer; + // Remove border radius added by Chrome macOS + border-radius: 0; +} + +// increase the selector specificity for [hidden] +// so that it always overrides utility classes (.d-block, etc.) +[hidden][hidden] { + display: none !important; +} + +details { + summary { + cursor: pointer; + } +} + +// global focus styles + +a, +button, +[role='button'], +input[type='radio'], +input[type='checkbox'] { + // fallback :focus state + &:focus { + @include focusOutline; + + // remove fallback :focus if :focus-visible is supported + &:not(:focus-visible) { + outline: solid 1px transparent; + } + } + + // default focus state + &:focus-visible { + @include focusOutline; + } +} + +a:not([class]), +input[type='radio'], +input[type='checkbox'] { + &:focus, + &:focus-visible { + outline-offset: 0; + } +} + +// for handling focus conditionally +.focus { + @include focusBoxShadowInset; +} + +// Windows High Contrast mode +@media (forced-colors: active) { + *:focus, + *:focus-visible { + outline: solid 1px transparent; + } + + input:not([type='radio'], [type='checkbox']), + textarea, + select { + &:focus, + &:focus-visible { + outline-offset: 2px; + } + } +} diff --git a/_sass/@primer/css/base/index.scss b/_sass/@primer/css/base/index.scss new file mode 100644 index 00000000..553abdb3 --- /dev/null +++ b/_sass/@primer/css/base/index.scss @@ -0,0 +1,7 @@ +@import '../support/index.scss'; +@import './native-colors.scss'; +@import './normalize.scss'; +@import './base.scss'; +@import './kbd.scss'; +@import './typography-base.scss'; +@import './octicons.scss'; diff --git a/_sass/@primer/css/base/kbd.scss b/_sass/@primer/css/base/kbd.scss new file mode 100644 index 00000000..0e435955 --- /dev/null +++ b/_sass/@primer/css/base/kbd.scss @@ -0,0 +1,19 @@ +// Keyboard shortcuts +// stylelint-disable selector-max-type + +kbd { + display: inline-block; + padding: var(--base-size-4); + font: 11px $mono-font; + // stylelint-disable-next-line primer/typography + line-height: 10px; + color: var(--fgColor-default, var(--color-fg-default)); + vertical-align: middle; + background-color: var(--bgColor-muted, var(--color-canvas-subtle)); + // stylelint-disable-next-line primer/borders + border: $border-style $border-width var(--borderColor-neutral-muted, var(--color-neutral-muted)); + border-bottom-color: var(--borderColor-neutral-muted, var(--color-neutral-muted)); + border-radius: $border-radius; + // stylelint-disable-next-line primer/box-shadow + box-shadow: inset 0 -1px 0 var(--borderColor-neutral-muted, var(--color-neutral-muted)); +} diff --git a/_sass/@primer/css/base/native-colors.scss b/_sass/@primer/css/base/native-colors.scss new file mode 100644 index 00000000..a7ff089f --- /dev/null +++ b/_sass/@primer/css/base/native-colors.scss @@ -0,0 +1,24 @@ +// color-scheme +// Enables color modes for native elements + +@include color-mode(light) { color-scheme: light; } + +@include color-mode(dark) { color-scheme: dark; } + +[data-color-mode] { + color: var(--fgColor-default, var(--color-fg-default)); + background-color: var(--bgColor-default, var(--color-canvas-default)); +} + +// Windows High Contrast mode + +// Improves focus state for various components when Windows High Contrast mode is enabled +// stylelint-disable selector-max-type +@media (forced-colors: active) { + body { + --color-accent-emphasis: Highlight; + --color-fg-on-emphasis: LinkText; + --fgColor-onEmphasis: LinkText; + --fgColor-accent: Highlight; + } +} diff --git a/_sass/@primer/css/base/normalize.scss b/_sass/@primer/css/base/normalize.scss new file mode 100644 index 00000000..84eaa338 --- /dev/null +++ b/_sass/@primer/css/base/normalize.scss @@ -0,0 +1,382 @@ +// stylelint-disable +/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Prevent adjustments of font size after orientation changes in IE and iOS. + */ + +html { + font-size: 16px; /* this can be removed when all of GitHub uses rem units */ + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove the margin in all browsers (opinionated). + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + * 2. Add the correct display in IE. + */ + +article, +aside, +details, /* 1 */ +figcaption, +figure, +footer, +header, +main, /* 2 */ +menu, +nav, +section { + /* 1 */ + display: block; +} + +summary { + display: list-item; +} + +/** + * Add the correct display in IE 9-. + */ + +audio, +canvas, +progress, +video { + display: inline-block; +} + +/** + * Add the correct display in iOS 4-7. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Add the correct display in IE 10-. + * 1. Add the correct display in IE. + */ + +template, /* 1 */ +[hidden] { + display: none !important; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; /* 1 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + +b, +strong { + font-weight: inherit; +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Add the correct background and color in IE 9-. + */ + +mark { + background-color: var(--bgColor-attention-muted, var(--color-attention-subtle)); + color: var(--fgColor-default, var(--color-fg-default)); +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10-. + */ + +img { + border-style: none; +} + +/** + * Hide the overflow in IE. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct margin in IE 8. + */ + +figure { + margin: 1em var(--base-size-40); +} + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change font properties to `inherit` in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +select, +textarea { + font: inherit; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Restore the font weight unset by the previous rule. + */ + +optgroup { + font-weight: $font-weight-bold; +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} + +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ + +fieldset { + border: $border-width $border-style #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em $em-spacer-6; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Remove the default vertical scrollbar in IE. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + +[type='checkbox'], +[type='radio'] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} + +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on OS X. + */ + +[type='search']::-webkit-search-cancel-button, +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Correct the text style of placeholders in Chrome, Edge, and Safari. + */ + +::-webkit-input-placeholder { + color: inherit; + opacity: 0.54; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} diff --git a/_sass/@primer/css/base/octicons.scss b/_sass/@primer/css/base/octicons.scss new file mode 100644 index 00000000..c9a105db --- /dev/null +++ b/_sass/@primer/css/base/octicons.scss @@ -0,0 +1,6 @@ +.octicon { + display: inline-block; + overflow: visible !important; + vertical-align: text-bottom; + fill: currentColor; +} diff --git a/_sass/@primer/css/base/typography-base.scss b/_sass/@primer/css/base/typography-base.scss new file mode 100644 index 00000000..85d6eede --- /dev/null +++ b/_sass/@primer/css/base/typography-base.scss @@ -0,0 +1,89 @@ +// Headings +// -------------------------------------------------- +// stylelint-disable selector-max-type +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0; +} + +h1 { @include h1; } +h2 { @include h2; } +h3 { @include h3; } +h4 { @include h4; } +h5 { @include h5; } +h6 { @include h6; } + +// Body text +// -------------------------------------------------- + +p { + margin-top: 0; + // stylelint-disable-next-line primer/spacing + margin-bottom: 10px; +} + +small { + // stylelint-disable-next-line primer/typography + font-size: 90%; +} + +blockquote { + margin: 0; +} + +// Lists +// -------------------------------------------------- + +ul, +ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +ol ol, +ul ol { + list-style-type: lower-roman; +} + +ul ul ol, +ul ol ol, +ol ul ol, +ol ol ol { + list-style-type: lower-alpha; +} + +dd { + margin-left: 0; +} + +// Monospaced +// -------------------------------------------------- + +tt, +code, +samp { + font-family: $mono-font; + font-size: $font-size-small; +} + +pre { + margin-top: 0; + margin-bottom: 0; + font-family: $mono-font; + font-size: $font-size-small; +} + +// Octicons +// -------------------------------------------------- + +// Move this over here as a temporary override to the octicons source repo +// instead of updating that upstream. +.octicon { + vertical-align: text-bottom; +} diff --git a/_sass/@primer/css/blankslate/blankslate.scss b/_sass/@primer/css/blankslate/blankslate.scss new file mode 100644 index 00000000..a573a11d --- /dev/null +++ b/_sass/@primer/css/blankslate/blankslate.scss @@ -0,0 +1 @@ +@import '@primer/view-components/app/components/primer/beta/blankslate'; diff --git a/_sass/@primer/css/blankslate/index.scss b/_sass/@primer/css/blankslate/index.scss new file mode 100644 index 00000000..80af2579 --- /dev/null +++ b/_sass/@primer/css/blankslate/index.scss @@ -0,0 +1,2 @@ +@import '../support/index.scss'; +@import './blankslate.scss'; diff --git a/_sass/@primer/css/box/box-overlay.scss b/_sass/@primer/css/box/box-overlay.scss new file mode 100644 index 00000000..5fd710c8 --- /dev/null +++ b/_sass/@primer/css/box/box-overlay.scss @@ -0,0 +1,42 @@ +.Box--overlay { + // stylelint-disable-next-line primer/responsive-widths + width: 448px; + margin-right: auto; + margin-left: auto; + background-color: var(--bgColor-default, var(--color-canvas-default)); + background-clip: padding-box; + border-color: var(--borderColor-default, var(--color-border-default)); + // stylelint-disable-next-line primer/box-shadow + box-shadow: 0 0 18px rgba(0, 0, 0, 0.4); + + .Box-header { + margin: 0; + border-width: 0; + border-bottom-width: $border-width; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + } +} + +.Box-overlay--narrow { + width: 320px; +} + +.Box-overlay--wide { + // stylelint-disable-next-line primer/responsive-widths + width: 640px; +} + +.Box-body { + &.scrollable-overlay { + max-height: 400px; + overflow-y: scroll; + } + + .help { + padding-top: var(--base-size-8); + margin: 0; + color: var(--fgColor-muted, var(--color-fg-muted)); + text-align: center; + } +} diff --git a/_sass/@primer/css/box/box.scss b/_sass/@primer/css/box/box.scss new file mode 100644 index 00000000..b60923b6 --- /dev/null +++ b/_sass/@primer/css/box/box.scss @@ -0,0 +1 @@ +@import '@primer/view-components/app/components/primer/beta/border_box'; diff --git a/_sass/@primer/css/box/index.scss b/_sass/@primer/css/box/index.scss new file mode 100644 index 00000000..5b391ad4 --- /dev/null +++ b/_sass/@primer/css/box/index.scss @@ -0,0 +1,3 @@ +@import '../support/index.scss'; +@import './box.scss'; +@import './box-overlay.scss'; diff --git a/_sass/@primer/css/branch-name/branch-name.scss b/_sass/@primer/css/branch-name/branch-name.scss new file mode 100644 index 00000000..c18c746e --- /dev/null +++ b/_sass/@primer/css/branch-name/branch-name.scss @@ -0,0 +1,31 @@ +// stylelint-disable selector-max-type, selector-no-qualifying-type + +// A nice way to display branch names inside the UI. Can be a link or not. + +.branch-name { + display: inline-block; + // stylelint-disable-next-line primer/spacing + padding: 2px 6px; + font: 12px $mono-font; + color: var(--fgColor-muted, var(--color-fg-muted)); + word-break: break-all; + background-color: var(--bgColor-accent-muted, var(--color-accent-subtle)); + border-radius: $border-radius; + + .octicon { + // stylelint-disable-next-line primer/spacing + margin: 1px -2px 0 0; + color: var(--fgColor-muted, var(--color-fg-muted)); + } +} + +// When a branch name is a link + +a.branch-name { + color: var(--fgColor-accent, var(--color-accent-fg)); + background-color: var(--bgColor-accent-muted, var(--color-accent-subtle)); + + .octicon { + color: var(--fgColor-accent, var(--color-accent-fg)); + } +} diff --git a/_sass/@primer/css/branch-name/index.scss b/_sass/@primer/css/branch-name/index.scss new file mode 100644 index 00000000..536a6984 --- /dev/null +++ b/_sass/@primer/css/branch-name/index.scss @@ -0,0 +1,3 @@ +// support files +@import '../support/index.scss'; +@import './branch-name.scss'; diff --git a/_sass/@primer/css/breadcrumb/breadcrumb.scss b/_sass/@primer/css/breadcrumb/breadcrumb.scss new file mode 100644 index 00000000..f3151d70 --- /dev/null +++ b/_sass/@primer/css/breadcrumb/breadcrumb.scss @@ -0,0 +1 @@ +@import '@primer/view-components/app/components/primer/beta/breadcrumbs'; diff --git a/_sass/@primer/css/breadcrumb/index.scss b/_sass/@primer/css/breadcrumb/index.scss new file mode 100644 index 00000000..bad6ce5e --- /dev/null +++ b/_sass/@primer/css/breadcrumb/index.scss @@ -0,0 +1,3 @@ +// support files +@import '../support/index.scss'; +@import './breadcrumb.scss'; diff --git a/_sass/@primer/css/buttons/button-group.scss b/_sass/@primer/css/buttons/button-group.scss new file mode 100644 index 00000000..1f0240f7 --- /dev/null +++ b/_sass/@primer/css/buttons/button-group.scss @@ -0,0 +1,92 @@ +// Button group +// +// A button group is a series of buttons laid out next to each other, all part +// of one visual button, but separated by rules to be separate. + +.BtnGroup { + display: inline-block; + vertical-align: middle; + + @include clearfix(); + + // Proper spacing for multiple button groups (a la, gollum editor) + + .BtnGroup, + + .btn { + margin-left: var(--base-size-4); + } +} + +.BtnGroup-item { + position: relative; + float: left; + border-right-width: 0; + border-radius: 0; + + &:first-child { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + + &:last-child { + border-right-width: $border-width; + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + + &.selected, + &[aria-selected='true'], + &:focus, + &:active, + &:hover { + border-right-width: $border-width; + + + .BtnGroup-item, + + .BtnGroup-parent .BtnGroup-item { + border-left-width: 0; + } + } +} + +.BtnGroup-parent { + float: left; + + &:first-child .BtnGroup-item { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + + &:last-child .BtnGroup-item { + border-right-width: $border-width; + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + + .BtnGroup-item { + border-right-width: 0; + border-radius: 0; + } + + &.selected, + &[aria-selected='true'], + &:focus, + &:active, + &:hover { + .BtnGroup-item { + border-right-width: $border-width; + } + + + .BtnGroup-item, + + .BtnGroup-parent .BtnGroup-item { + border-left-width: 0; + } + } +} + +// ensure that the focus ring sits above the adjacent buttons +.BtnGroup-item, +.BtnGroup-parent { + &:focus, + &:active { + z-index: 1; + } +} diff --git a/_sass/@primer/css/buttons/button.scss b/_sass/@primer/css/buttons/button.scss new file mode 100644 index 00000000..bf3995ad --- /dev/null +++ b/_sass/@primer/css/buttons/button.scss @@ -0,0 +1,340 @@ +// stylelint-disable selector-max-type, no-duplicate-selectors + +// Base button styles +.btn { + position: relative; + display: inline-block; + // stylelint-disable-next-line primer/spacing + padding: 5px var(--base-size-16); + font-size: $body-font-size; + font-weight: $font-weight-semibold; + // stylelint-disable-next-line primer/typography + line-height: 20px; // Specifically not inherit our `` default + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + user-select: none; + border: $border-width $border-style; + border-radius: $border-radius; + appearance: none; // Corrects inability to style clickable `input` types in iOS. + + &:hover { + text-decoration: none; + } + + &:disabled, + &.disabled, + &[aria-disabled='true'] { + cursor: default; + } + + i { + font-style: normal; + font-weight: $font-weight-semibold; + opacity: 0.75; + } + + .octicon { + margin-right: var(--base-size-4); + color: var(--fgColor-muted, var(--color-fg-muted)); + vertical-align: text-bottom; + + &:only-child { + margin-right: 0; + } + } + + .Counter { + // stylelint-disable-next-line primer/spacing + margin-left: 2px; + color: inherit; + text-shadow: none; + vertical-align: top; + background-color: var(--buttonCounter-default-bgColor-rest, var(--color-btn-counter-bg)); + } + + .dropdown-caret { + margin-left: var(--base-size-4); + opacity: 0.8; + } +} + +// Default button + +.btn { + color: var(--button-default-fgColor-rest, var(--color-btn-text)); + background-color: var(--button-default-bgColor-rest, var(--color-btn-bg)); + border-color: var(--button-default-borderColor-rest, var(--color-btn-border)); + box-shadow: var(--button-default-shadow-resting, var(--color-btn-shadow)), var(--button-default-shadow-inset, var(--color-btn-inset-shadow)); + transition: 80ms cubic-bezier(0.33, 1, 0.68, 1); + transition-property: color, background-color, box-shadow, border-color; + + &:hover, + &.hover, + [open] > & { + background-color: var(--button-default-bgColor-hover, var(--color-btn-hover-bg)); + border-color: var(--button-default-borderColor-hover, var(--color-btn-hover-border)); + transition-duration: 0.1s; + } + + &:active { + background-color: var(--button-default-bgColor-active, var(--color-btn-active-bg)); + border-color: var(--button-default-borderColor-active, var(--color-btn-active-border)); + transition: none; + } + + &.selected, + &[aria-selected='true'] { + background-color: var(--button-default-bgColor-selected, var(--color-btn-selected-bg)); + box-shadow: var(--shadow-inset, var(--color-primer-shadow-inset)); + } + + &:disabled, + &.disabled, + &[aria-disabled='true'] { + color: var(--fgColor-disabled, var(--color-primer-fg-disabled)); + background-color: var(--button-default-bgColor-disabled, var(--color-btn-bg)); + border-color: var(--button-default-borderColor-disabled, var(--color-btn-border)); + + .octicon { + color: var(--fgColor-disabled, var(--color-primer-fg-disabled)); + } + } +} + +// Primary button + +.btn-primary { + color: var(--button-primary-fgColor-rest, var(--color-btn-primary-text)); + background-color: var(--button-primary-bgColor-rest, var(--color-btn-primary-bg)); + border-color: var(--button-primary-borderColor-rest, var(--color-btn-primary-border)); + box-shadow: var(--shadow-resting-small, var(--color-btn-primary-shadow)), var(--shadow-highlight, var(--color-btn-primary-inset-shadow)); + + &:hover, + &.hover, + [open] > & { + background-color: var(--button-primary-bgColor-hover, var(--color-btn-primary-hover-bg)); + border-color: var(--button-primary-borderColor-hover, var(--color-btn-primary-hover-border)); + } + + // fallback :focus state + &:focus { + @include focusOutlineOnEmphasis; + + // remove fallback :focus if :focus-visible is supported + &:not(:focus-visible) { + outline: solid 1px transparent; + box-shadow: none; + } + } + + // default focus state + &:focus-visible { + @include focusOutlineOnEmphasis; + } + + &:active, + &.selected, + &[aria-selected='true'] { + background-color: var(--button-primary-bgColor-active, var(--color-btn-primary-selected-bg)); + box-shadow: var(--button-primary-shadow-selected, var(--color-btn-primary-selected-shadow)); + } + + &:disabled, + &.disabled, + &[aria-disabled='true'] { + color: var(--button-primary-fgColor-disabled, var(--color-btn-primary-disabled-text)); + background-color: var(--button-primary-bgColor-disabled, var(--color-btn-primary-disabled-bg)); + border-color: var(--button-primary-borderColor-disabled, var(--color-btn-primary-disabled-border)); + + .octicon { + color: var(--button-primary-fgColor-disabled, var(--color-btn-primary-disabled-text)); + } + } + + .Counter { + color: inherit; + background-color: var(--buttonCounter-primary-bgColor-rest, var(--color-btn-primary-counter-bg)); + } + + .octicon { + color: var(--button-primary-iconColor-rest, var(--color-btn-primary-icon)); + } +} + +// ensure links styled as button primary gets proper focus style +// stylelint-disable-next-line selector-no-qualifying-type +a.btn-primary { + // fallback :focus state + &:focus { + @include focusOutlineOnEmphasis; + + // remove fallback :focus if :focus-visible is supported + &:not(:focus-visible) { + outline: solid 1px transparent; + box-shadow: none; + } + } + + // default focus state + &:focus-visible { + @include focusOutlineOnEmphasis; + } +} + +// Outline button + +.btn-outline { + color: var(--button-outline-fgColor-rest, var(--color-btn-outline-text)); + + &:hover, + [open] > & { + color: var(--button-outline-fgColor-hover, var(--color-btn-outline-hover-text)); + background-color: var(--button-outline-bgColor-hover, var(--color-btn-outline-hover-bg)); + border-color: var(--button-outline-borderColor-hover, var(--color-btn-outline-hover-border)); + box-shadow: var(--shadow-resting-small, var(--color-btn-outline-hover-shadow)), var(--shadow-highlight, var(--color-btn-outline-hover-inset-shadow)); + + .Counter { + background-color: var(--buttonCounter-outline-bgColor-hover, var(--color-btn-outline-hover-counter-bg)); + } + + .octicon { + color: inherit; + } + } + + &:active, + &.selected, + &[aria-selected='true'] { + color: var(--button-outline-fgColor-active, var(--color-btn-outline-selected-text)); + background-color: var(--button-outline-bgColor-active, var(--color-btn-outline-selected-bg)); + border-color: var(--button-outline-borderColor-active, var(--color-btn-outline-selected-border)); + box-shadow: var(--button-outline-shadow-selected, var(--color-btn-outline-selected-shadow)); + + // fallback :focus state + &:focus { + @include focusOutlineOnEmphasis; + + // remove fallback :focus if :focus-visible is supported + &:not(:focus-visible) { + outline: solid 1px transparent; + box-shadow: none; + } + } + + // default focus state + &:focus-visible { + @include focusOutlineOnEmphasis; + } + } + + &:disabled, + &.disabled, + &[aria-disabled='true'] { + color: var(--button-outline-fgColor-disabled, var(--color-btn-outline-disabled-text)); + background-color: var(--button-outline-bgColor-disabled, var(--color-btn-outline-disabled-bg)); + border-color: var(--button-default-borderColor-rest, var(--color-btn-border)); + box-shadow: none; + + .Counter { + background-color: var(--buttonCounter-outline-bgColor-disabled, var(--color-btn-outline-disabled-counter-bg)); + } + } + + .Counter { + color: inherit; + background-color: var(--buttonCounter-outline-bgColor-rest, var(--color-btn-outline-counter-bg)); + } +} + +// Danger button + +.btn-danger { + color: var(--button-danger-fgColor-rest, var(--color-btn-danger-text)); + + .octicon { + color: var(--button-danger-iconColor-rest, var(--color-btn-danger-icon)); + } + + &:hover, + [open] > & { + color: var(--button-danger-fgColor-hover, var(--color-btn-danger-hover-text)); + background-color: var(--button-danger-bgColor-hover, var(--color-btn-danger-hover-bg)); + border-color: var(--button-danger-borderColor-hover, var(--color-btn-danger-hover-border)); + box-shadow: var(--shadow-resting-small, var(--color-btn-danger-hover-shadow)), var(--shadow-highlight, var(--color-btn-danger-hover-inset-shadow)); + + .Counter { + background-color: var(--buttonCounter-danger-bgColor-hover, var(--color-btn-danger-hover-counter-bg)); + } + + .octicon { + color: var(--button-danger-iconColor-hover, var(--color-btn-danger-hover-icon)); + } + } + + &:active, + &.selected, + &[aria-selected='true'] { + color: var(--button-danger-fgColor-active, var(--color-btn-danger-selected-text)); + background-color: var(--button-danger-bgColor-active, var(--color-btn-danger-selected-bg)); + border-color: var(--button-danger-borderColor-active, var(--color-btn-danger-selected-border)); + box-shadow: var(--button-danger-shadow-selected, var(--color-btn-danger-selected-shadow)); + } + + &:disabled, + &.disabled, + &[aria-disabled='true'] { + color: var(--button-danger-fgColor-disabled, var(--color-btn-danger-disabled-text)); + background-color: var(--button-danger-bgColor-disabled, var(--color-btn-danger-disabled-bg)); + border-color: var(--button-default-borderColor-rest, var(--color-btn-border)); + box-shadow: none; + + .Counter { + background-color: var(--buttonCounter-danger-bgColor-disabled, var(--color-btn-danger-disabled-counter-bg)); + } + + .octicon { + color: var(--button-danger-fgColor-disabled, var(--color-btn-danger-disabled-text)); + } + } + + .Counter { + color: inherit; + background-color: var(--buttonCounter-danger-bgColor-rest, var(--color-btn-danger-counter-bg)); + } +} + +// Sizes +// +// Tweak `line-height` to make them smaller. +.btn-sm { + // stylelint-disable-next-line primer/spacing + padding: 3px 12px; + font-size: $font-size-small; + // stylelint-disable-next-line primer/typography + line-height: 20px; + + .octicon { + vertical-align: text-top; + } +} + +// Large button adds more padding around text. Use font-size utils to increase font-size.. e.g,

+.btn-large { + // stylelint-disable-next-line primer/spacing + padding: $em-spacer-6 1.5em; + font-size: inherit; + line-height: $lh-default; + + // stylelint-disable-next-line primer/borders + border-radius: 0.5em; +} + +// Full-width button +// +// These buttons expand to the full width of their parent container +.btn-block { + display: block; + width: 100%; + text-align: center; +} diff --git a/_sass/@primer/css/buttons/index.scss b/_sass/@primer/css/buttons/index.scss new file mode 100644 index 00000000..0b8c5aa7 --- /dev/null +++ b/_sass/@primer/css/buttons/index.scss @@ -0,0 +1,4 @@ +@import '../support/index.scss'; +@import './button.scss'; +@import './button-group.scss'; +@import './misc.scss'; diff --git a/_sass/@primer/css/buttons/misc.scss b/_sass/@primer/css/buttons/misc.scss new file mode 100644 index 00000000..904c457b --- /dev/null +++ b/_sass/@primer/css/buttons/misc.scss @@ -0,0 +1,232 @@ +// stylelint-disable selector-max-type + +// Link-like buttons +// +// This class is for styling