From 82c98d584d4a5e0e4aff69331ebda9215b5439d6 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 20 Mar 2023 20:04:59 +0100 Subject: [PATCH 01/67] WIP --- .stylelintignore | 3 --- preview/assets/scss/component/_color.scss | 2 +- preview/assets/scss/main.scss | 2 +- scss/config/_button.scss | 2 +- scss/config/_display.scss | 12 ++++++++++-- scss/config/_form.scss | 4 ++-- scss/config/_typography.scss | 2 +- scss/element/_table.scss | 9 +++++---- scss/function/_config.scss | 24 +++++++++++++++++++++++ scss/function/_index.scss | 1 + scss/mixin/_utilities.scss | 3 ++- 11 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 scss/function/_config.scss diff --git a/.stylelintignore b/.stylelintignore index 9e0a143..c7f8a7d 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -1,5 +1,2 @@ -# Layout mixins scss/mixin/_layout.scss - -# Normalize scss/plugin/_normalize.scss diff --git a/preview/assets/scss/component/_color.scss b/preview/assets/scss/component/_color.scss index bb2e201..006e6c5 100644 --- a/preview/assets/scss/component/_color.scss +++ b/preview/assets/scss/component/_color.scss @@ -15,7 +15,7 @@ } &__color { - border-radius: spruce.$border-radius-lg; + border-radius: spruce.config(border-radius-lg, display); height: 3rem; width: 3rem; } diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index b7b6a3e..ad27ad1 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -117,7 +117,7 @@ .card { @include spruce.a11y-card-link('.card__link', true); border: 1px solid spruce.color(border); - border-radius: spruce.$border-radius-lg; + border-radius: spruce.config(border-radius-lg, display); padding: spruce.spacer(m); &__link { diff --git a/scss/config/_button.scss b/scss/config/_button.scss index 298a7ce..2e714c3 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -3,7 +3,7 @@ @use 'typography' as *; @use 'spacer' as *; -$btn-border-radius: $border-radius-sm !default; +$btn-border-radius: map.get($display, border-radius-sm) !default; $btn-font-family: null !default; $btn-font-size: $font-size-base !default; diff --git a/scss/config/_display.scss b/scss/config/_display.scss index 5f0ab0e..aab4b78 100644 --- a/scss/config/_display.scss +++ b/scss/config/_display.scss @@ -1,2 +1,10 @@ -$border-radius-sm: 0.425rem !default; -$border-radius-lg: 0.925rem !default; +@use 'sass:map'; + +$display: () !default; +$display: map.merge( + ( + border-radius-lg: 0.925rem, + border-radius-sm: 0.425rem + ), + $display +); diff --git a/scss/config/_form.scss b/scss/config/_form.scss index 0a8764c..d36931e 100644 --- a/scss/config/_form.scss +++ b/scss/config/_form.scss @@ -31,7 +31,7 @@ $form-control-padding: 0.5em 0.75em !default; $form-control-padding-sm: 0.25em 0.5em !default; $form-control-padding-lg: 0.65em 1em !default; $form-control-border-width: 1px !default; -$form-control-border-radius: $border-radius-sm !default; +$form-control-border-radius: map.get($display, border-radius-sm) !default; $form-control-focus-ring-type: box-shadow !default; $form-control-focus-ring-box-shadow-type: outside !default; @@ -48,7 +48,7 @@ $form-control-color-height-lg: calc(#{$form-control-line-height}em + ( #{$form-c $form-control-textarea-height: 6rem !default; $form-check-border-width: 1px !default; -$form-check-checkbox-border-radius: $border-radius-sm !default; +$form-check-checkbox-border-radius: map.get($display, border-radius-sm) !default; $form-check-font-size: 1.125rem !default; $form-check-font-size-sm: $font-size-base !default; $form-check-font-size-lg: $font-size-lg !default; diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index a19e0c2..8c86057 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -39,4 +39,4 @@ $line-height-base: $line-height-lg !default; $line-height-heading: calc(2px + 2ex + 2px) !default; $inline-text-element-padding: 0.1em 0.3em !default; -$inline-text-element-border-radius: $border-radius-sm !default; +$inline-text-element-border-radius: map.get($display, border-radius-sm) !default; diff --git a/scss/element/_table.scss b/scss/element/_table.scss index a25c099..5f45343 100644 --- a/scss/element/_table.scss +++ b/scss/element/_table.scss @@ -1,3 +1,4 @@ +@use 'sass:map'; @use '../config' as *; @use '../function' as *; @@ -87,13 +88,13 @@ th, td { &:first-child { - border-end-start-radius: $border-radius-sm; - border-start-start-radius: $border-radius-sm; + border-end-start-radius: map.get($display, border-radius-sm); + border-start-start-radius: map.get($display, border-radius-sm); } &:last-child { - border-end-end-radius: $border-radius-sm; - border-start-end-radius: $border-radius-sm; + border-end-end-radius: map.get($display, border-radius-sm); + border-start-end-radius: map.get($display, border-radius-sm); } } } diff --git a/scss/function/_config.scss b/scss/function/_config.scss new file mode 100644 index 0000000..5450648 --- /dev/null +++ b/scss/function/_config.scss @@ -0,0 +1,24 @@ +@use 'sass:map'; +@use 'setting' as *; +@use '../config' as *; + +@function config( + $key, + $map +) { + @if $map == display { + $map: $display; + } @else if $map == btn { + $map: $btn; + } + + @if not map.has-key($map, $key) { + @error 'The #{$key} key name doesn\'t exist under #{$type} at the specified map.'; + } + + @if map.get($map, $key) == null { + @return null; + } + + @return map.get($map, $key); +} diff --git a/scss/function/_index.scss b/scss/function/_index.scss index 10891b8..cee6571 100644 --- a/scss/function/_index.scss +++ b/scss/function/_index.scss @@ -1,4 +1,5 @@ @forward 'color'; +@forward 'config'; @forward 'css-variable'; @forward 'font-size'; @forward 'utilities'; diff --git a/scss/mixin/_utilities.scss b/scss/mixin/_utilities.scss index a7334f5..a64394c 100644 --- a/scss/mixin/_utilities.scss +++ b/scss/mixin/_utilities.scss @@ -1,3 +1,4 @@ +@use 'sass:map'; @use '../function' as *; @use '../config' as *; @@ -40,7 +41,7 @@ $thumb-background-color-hover: color(thumb-background-hover, scrollbar), $track-background-color: color(track-background, scrollbar), $size: 0.5rem, - $border-radius: $border-radius-sm + $border-radius: map.get($display, border-radius-sm) ) { &::-webkit-scrollbar { height: $size; From 3307c55ab8ec95014be72a1cb71c0ffcfa4fea9b Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 21 Mar 2023 20:23:16 +0100 Subject: [PATCH 02/67] WIP --- preview/assets/scss/config/_config.scss | 14 ++- scss/config/_breakpoint.scss | 12 +- scss/config/_button.scss | 79 +++++++------ scss/config/_color.scss | 145 ++++++++++++------------ scss/config/_display.scss | 4 +- scss/config/_setting.scss | 17 +-- scss/form/_button.scss | 77 +++++++++---- scss/function/_config.scss | 12 +- scss/mixin/_button.scss | 8 +- 9 files changed, 209 insertions(+), 159 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index a1d9998..3fd8454 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -13,7 +13,7 @@ $spacer: 1.25rem; custom-foreground-hover: hsl(0 0% 100%), tertiary-background: $color-tertiary, tertiary-foreground: hsl(0 0% 100%), - tertiary-shadow-focus: color.adjust($color-tertiary, $alpha: -0.75) + tertiary-shadow-focus: color.adjust($color-tertiary, $alpha: -0.75), ) ), $dark-colors: dark.$colors, @@ -21,11 +21,15 @@ $spacer: 1.25rem; color-fallback: false, html-smooth-scrolling: false, hyphens: true, + prefix: 'spruce', + print: true, utilities: true, - prefix: null, - print: true + css-custom-properties: false, ), - $btn-text-transform: uppercase, + $btn: ( + 'text-transform': uppercase + ), + // $btn-text-transform: uppercase, $form-check-font-size-lg: 1.35rem, - $form-check-font-weight: 400 + $form-check-font-weight: 400, ); diff --git a/scss/config/_breakpoint.scss b/scss/config/_breakpoint.scss index 4eabc36..35f5638 100644 --- a/scss/config/_breakpoint.scss +++ b/scss/config/_breakpoint.scss @@ -3,12 +3,12 @@ $breakpoints: () !default; $breakpoints: map.merge( ( - xs: 32em, - sm: 48em, - md: 64em, - lg: 80em, - xl: 90em, - xxl: 110em + 'xs': 32em, + 'sm': 48em, + 'md': 64em, + 'lg': 80em, + 'xl': 90em, + 'xxl': 110em, ), $breakpoints ); diff --git a/scss/config/_button.scss b/scss/config/_button.scss index 2e714c3..10ab5ea 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -3,37 +3,48 @@ @use 'typography' as *; @use 'spacer' as *; -$btn-border-radius: map.get($display, border-radius-sm) !default; - -$btn-font-family: null !default; -$btn-font-size: $font-size-base !default; -$btn-font-size-sm: 0.8rem !default; -$btn-font-size-lg: 1.15rem !default; -$btn-font-style: null !default; -$btn-font-weight: 500 !default; - -$btn-focus-ring-type: outline !default; -$btn-focus-ring-box-shadow-type: outside !default; -$btn-focus-ring-width: 2px !default; -$btn-focus-ring-offset: 2px !default; - -$btn-icon-padding: 0.75em !default; -$btn-icon-padding-sm: 0.5em !default; -$btn-icon-padding-lg: 0.9em !default; - -$btn-icon-size-sm: 0.85em !default; -$btn-icon-size: 1em !default; - -$btn-gap: map.get($spacers, xs) !default; -$btn-gap-sm: map.get($spacers, xxs) !default; -$btn-gap-lg: map.get($spacers, xs) !default; - -$btn-padding: 0.75em 1em !default; -$btn-padding-sm: 0.5em !default; -$btn-padding-lg: 0.9em 1.15em !default; - -$btn-text-transform: null !default; - -$btn-shadow-width: 0.25rem !default; - -$btn-outline-width: 1px !default; +$btn: () !default; +$btn: map.merge( + ( + 'border-radius': map.get($display, border-radius-sm), + 'focus-ring-box-shadow-type': outside, + 'focus-ring-offset': 2px, + 'focus-ring-type': outline, + 'focus-ring-width': 2px, + 'font-family': null, + 'font-size': $font-size-base, + 'font-style': null, + 'font-weight': 500, + 'gap': map.get($spacers, xs), + 'icon-padding': 0.75em, + 'icon-size': 1em, + 'outline-width': 1px, + 'padding': 0.75em 1em, + 'shadow-width': 0.25rem, + 'text-transform': null, + ), + $btn +); + +$btn-lg: () !default; +$btn-lg: map.merge( + ( + 'font-size': 1.15rem, + 'gap': map.get($spacers, xs), + 'icon-padding': 0.9em, + 'padding': 0.9em 1.15em, + ), + $btn-lg +); + +$btn-sm: () !default; +$btn-sm: map.merge( + ( + 'font-size': 0.8rem, + 'gap': map.get($spacers, xxs), + 'icon-padding': 0.5em, + 'icon-size': 0.85em, + 'padding': 0.5em, + ), + $btn-sm +); diff --git a/scss/config/_color.scss b/scss/config/_color.scss index 01ffd82..41521b8 100644 --- a/scss/config/_color.scss +++ b/scss/config/_color.scss @@ -1,90 +1,87 @@ @use 'sass:color'; @use 'sass:map'; -$color-primary: hsl(262 71% 49%) !default; -$color-secondary: hsl(227 92% 55%) !default; - -$color-black: hsl(205 100% 2%) !default; -$color-white: hsl(0 0% 100%) !default; - -$color-gray-light: hsl(0 0% 90%) !default; -$color-gray: hsl(208 7% 30%) !default; - -$color-danger: hsl(0 71% 51%) !default; -$color-success: hsl(150 100% 33%) !default; +$color-black: hsl(205deg 100% 2%) !default; +$color-danger: hsl(0deg 71% 51%) !default; +$color-gray-light: hsl(0deg 0% 90%) !default; +$color-gray: hsl(208deg 7% 30%) !default; +$color-primary: hsl(262deg 71% 49%) !default; +$color-secondary: hsl(227deg 92% 55%) !default; +$color-success: hsl(150deg 100% 33%) !default; +$color-white: hsl(0deg 0% 100%) !default; $colors: () !default; $colors: map.deep-merge( ( - alert: ( - danger: $color-danger, - info: hsl(195 100% 42%), - success: $color-success, - warning: hsl(48 89% 55%) + 'alert': ( + 'danger': $color-danger, + 'info': hsl(195deg 100% 42%), + 'success': $color-success, + 'warning': hsl(48deg 89% 55%), ), - base: ( - primary: $color-primary, - secondary: $color-secondary, - background: $color-white, - heading: $color-black, - text: $color-gray, - link: $color-primary, - link-hover: color.scale($color-primary, $lightness: -20%), - border: $color-gray-light, - mark-background: hsl(50 100% 80%), - mark-foreground: $color-black, - marker: $color-primary, - code-background: color.change($color-primary, $lightness: 97%), - code-foreground: $color-black, - blockquote-border: $color-primary + 'base': ( + 'background': $color-white, + 'blockquote-border': $color-primary, + 'border': $color-gray-light, + 'code-background': color.change($color-primary, $lightness: 97%), + 'code-foreground': $color-black, + 'heading': $color-black, + 'link-hover': color.scale($color-primary, $lightness: -20%), + 'link': $color-primary, + 'mark-background': hsl(50deg 100% 80%), + 'mark-foreground': $color-black, + 'marker': $color-primary, + 'primary': $color-primary, + 'secondary': $color-secondary, + 'text': $color-gray, ), - btn: ( - primary-background: $color-primary, - primary-background-hover: color.adjust($color-primary, $lightness: -10%), - primary-foreground: $color-white, - secondary-background: $color-secondary, - secondary-background-hover: color.adjust($color-secondary, $lightness: -10%), - secondary-foreground: $color-white + 'btn': ( + 'primary-background': $color-primary, + 'primary-background-hover': color.adjust($color-primary, $lightness: -10%), + 'primary-foreground': $color-white, + 'secondary-background': $color-secondary, + 'secondary-background-hover': color.adjust($color-secondary, $lightness: -10%), + 'secondary-foreground': $color-white, ), - form: ( - background: $color-white, - background-disabled: hsl(0 0% 95%), - border: hsl(260 4% 70%), - border-disabled: $color-gray-light, - border-focus: $color-primary, - ring-focus: color.adjust($color-primary, $alpha: -0.75), - check-foreground: $color-white, - check-background: $color-primary, - check-focus-ring: $color-primary, - invalid: $color-danger, - invalid-focus-ring: color.adjust($color-danger, $alpha: -0.75), - label: $color-black, - legend: $color-black, - placeholder: hsl(208 7% 40%), - range-thumb-background: $color-primary, - range-thumb-focus-ring: $color-primary, - range-track-background: $color-gray-light, - text: $color-gray, - select-foreground: $color-black, - valid: $color-success, - valid-focus-ring: color.adjust($color-success, $alpha: -0.75) + 'form': ( + 'background-disabled': hsl(0deg 0% 95%), + 'background': $color-white, + 'border-disabled': $color-gray-light, + 'border-focus': $color-primary, + 'border': hsl(260deg 4% 70%), + 'check-background': $color-primary, + 'check-focus-ring': $color-primary, + 'check-foreground': $color-white, + 'invalid-focus-ring': color.adjust($color-danger, $alpha: -0.75), + 'invalid': $color-danger, + 'label': $color-black, + 'legend': $color-black, + 'placeholder': hsl(208deg 7% 40%), + 'range-thumb-background': $color-primary, + 'range-thumb-focus-ring': $color-primary, + 'range-track-background': $color-gray-light, + 'ring-focus': color.adjust($color-primary, $alpha: -0.75), + 'select-foreground': $color-black, + 'text': $color-gray, + 'valid-focus-ring': color.adjust($color-success, $alpha: -0.75), + 'valid': $color-success, ), - selection: ( - foreground: $color-white, - background: $color-primary + 'selection': ( + 'foreground': $color-white, + 'background': $color-primary, ), - scrollbar: ( - thumb-background: hsl(0 0% 0% / 0.15), - thumb-background-hover: hsl(0 0% 0% / 0.25), - track-background: hsl(0 0% 0% / 0.05) + 'scrollbar': ( + 'thumb-background': hsl(0deg 0% 0% / 15%), + 'thumb-background-hover': hsl(0deg 0% 0% / 25%), + 'track-background': hsl(0deg 0% 0% / 5%), ), - table: ( - border: $color-gray-light, - caption: $color-gray, - heading: $color-black, - hover: hsl(0 0% 0% / 0.05), - text: $color-gray, - stripe: hsl(0 0% 0% / 0.025) + 'table': ( + 'border': $color-gray-light, + 'caption': $color-gray, + 'heading': $color-black, + 'hover': hsl(0deg 0% 0% / 5%), + 'stripe': hsl(0deg 0% 0% / 0.025%), + 'text': $color-gray, ) ), $colors diff --git a/scss/config/_display.scss b/scss/config/_display.scss index aab4b78..33078ca 100644 --- a/scss/config/_display.scss +++ b/scss/config/_display.scss @@ -3,8 +3,8 @@ $display: () !default; $display: map.merge( ( - border-radius-lg: 0.925rem, - border-radius-sm: 0.425rem + 'border-radius-lg': 0.925rem, + 'border-radius-sm': 0.425rem, ), $display ); diff --git a/scss/config/_setting.scss b/scss/config/_setting.scss index 4a1ea96..8c818d8 100644 --- a/scss/config/_setting.scss +++ b/scss/config/_setting.scss @@ -3,14 +3,15 @@ $settings: () !default; $settings: map.merge( ( - color-fallback: false, - html-smooth-scrolling: true, - hyphens: true, - optimal-responsive-font-size: '2vw + 1rem', - optimal-spacer-size: '5vw', - prefix: 'spruce', - utilities: false, - print: false + 'color-fallback': false, + 'html-smooth-scrolling': true, + 'hyphens': true, + 'optimal-responsive-font-size': '2vw + 1rem', + 'optimal-spacer-size': '5vw', + 'prefix': 'spruce', + 'print': false, + 'utilities': false, + 'css-custom-properties': false, ), $settings ); diff --git a/scss/form/_button.scss b/scss/form/_button.scss index ff4f429..5316624 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -1,7 +1,32 @@ +@use 'sass:map'; @use '../function' as *; @use '../mixin' as *; @use '../config' as *; +@mixin styles { + @if map.get($settings, 'css-custom-properties') { + @each $key, $value in $btn { + --#{$internal-prefix}#{$key}: #{$value}; + } + } +} + +@mixin styles-lg { + @if map.get($settings, 'css-custom-properties') { + @each $key, $value in $btn-lg { + --#{$internal-prefix}#{$key}: #{$value}; + } + } +} + +@mixin styles-sm { + @if map.get($settings, 'css-custom-properties') { + @each $key, $value in $btn-sm { + --#{$internal-prefix}#{$key}: #{$value}; + } + } +} + @mixin generate-btn( $selector, $pseudo-selector: null, @@ -9,23 +34,25 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { + @include styles; + align-items: center; - border-radius: $btn-border-radius; + border-radius: config('border-radius', 'btn'); border-style: solid; - border-width: $btn-outline-width; + border-width: map.get($btn, outline-width); cursor: pointer; display: inline-flex; - font-family: $btn-font-family; - font-size: $btn-font-size; - font-style: $btn-font-style; - font-weight: $btn-font-weight; - gap: $btn-gap; + font-family: map.get($btn, font-family); + font-size: config('font-size', 'btn'); + font-style: map.get($btn, font-style); + font-weight: map.get($btn, font-weight); + gap: map.get($btn, gap); justify-content: center; line-height: 1; - padding: $btn-padding; + padding: config('padding', 'btn'); text-align: start; text-decoration: none; - text-transform: $btn-text-transform; + text-transform: map.get($btn, text-transform); transition-duration: transition(duration); transition-property: background-color,border-color, box-shadow, color; transition-timing-function: transition(timing-function); @@ -45,26 +72,26 @@ @if ($has-icons) { // Icon button #{$selector}--icon { - padding: $btn-icon-padding; + padding: map.get($btn, icon-padding); &#{$selector}--sm { - padding: $btn-icon-padding-sm; + padding: map.get($btn, icon-padding-sm); } &#{$selector}--lg { - padding: $btn-icon-padding-lg; + padding: config(icon-padding, btn); } } // Icons #{$selector}__icon { flex-shrink: 0; - height: $btn-icon-size; - width: $btn-icon-size; + height: map.get($btn, icon-size); + width: map.get($btn, icon-size); &--sm { - height: $btn-icon-size-sm; - width: $btn-icon-size-sm; + height: map.get($btn, icon-size-sm); + width: map.get($btn, icon-size-sm); } } } @@ -72,17 +99,21 @@ @if ($has-sizes) { // Sizes #{$selector}--sm#{$pseudo-selector} { - font-size: $btn-font-size-sm; - gap: $btn-gap-sm; - padding: $btn-padding-sm; + font-size: map.get($btn, font-size-sm); + gap: map.get($btn, gap-sm); + padding: map.get($btn, padding-sm); } #{$selector}--lg#{$pseudo-selector} { - gap: $btn-gap-lg; - padding: $btn-padding-lg; + @include styles-lg; + + @if not map.get($settings, 'css-custom-properties') { + gap: config(gap, btn-lg); + padding: config(padding, btn-lg); - @include breakpoint(md) { - font-size: $btn-font-size-lg; + @include breakpoint(md) { + font-size: config(font-size, btn-lg); + } } } diff --git a/scss/function/_config.scss b/scss/function/_config.scss index 5450648..da6af4b 100644 --- a/scss/function/_config.scss +++ b/scss/function/_config.scss @@ -4,11 +4,13 @@ @function config( $key, - $map + $name ) { - @if $map == display { + $map: null; + + @if $name == 'display' { $map: $display; - } @else if $map == btn { + } @else if $name == 'btn' { $map: $btn; } @@ -20,5 +22,9 @@ @return null; } + @if map.get($settings, 'css-custom-properties') { + @return var(--#{$internal-prefix}#{$key}); + } + @return map.get($map, $key); } diff --git a/scss/mixin/_button.scss b/scss/mixin/_button.scss index 8617454..d68ca5b 100644 --- a/scss/mixin/_button.scss +++ b/scss/mixin/_button.scss @@ -19,11 +19,11 @@ } @include focus-ring( - $type: $btn-focus-ring-type, + $type: map.get($btn, focus-ring-type), $ring-color: $ring-color, - $box-shadow-type: $btn-focus-ring-box-shadow-type, - $ring-width: $btn-focus-ring-width, - $ring-offset: $btn-focus-ring-offset + $box-shadow-type: map.get($btn, focus-ring-box-shadow-type), + $ring-width: map.get($btn, focus-ring-width), + $ring-offset: map.get($btn, focus-ring-offset) ); } } From 47dfa5fa623340c38e7974205d2364edc33c7763 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 22 Mar 2023 18:41:52 +0100 Subject: [PATCH 03/67] WIP --- preview/assets/scss/component/_color.scss | 2 +- preview/assets/scss/main.scss | 2 +- scss/form/_button.scss | 14 +++++++------- scss/function/_config.scss | 11 ++--------- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/preview/assets/scss/component/_color.scss b/preview/assets/scss/component/_color.scss index 006e6c5..5bdaef1 100644 --- a/preview/assets/scss/component/_color.scss +++ b/preview/assets/scss/component/_color.scss @@ -15,7 +15,7 @@ } &__color { - border-radius: spruce.config(border-radius-lg, display); + border-radius: spruce.config(border-radius-lg, spruce.$display); height: 3rem; width: 3rem; } diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index ad27ad1..837bc39 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -117,7 +117,7 @@ .card { @include spruce.a11y-card-link('.card__link', true); border: 1px solid spruce.color(border); - border-radius: spruce.config(border-radius-lg, display); + border-radius: spruce.config(border-radius-lg, spruce.$display); padding: spruce.spacer(m); &__link { diff --git a/scss/form/_button.scss b/scss/form/_button.scss index 5316624..34abdc7 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -37,19 +37,19 @@ @include styles; align-items: center; - border-radius: config('border-radius', 'btn'); + border-radius: config('border-radius', $btn); border-style: solid; border-width: map.get($btn, outline-width); cursor: pointer; display: inline-flex; font-family: map.get($btn, font-family); - font-size: config('font-size', 'btn'); + font-size: config('font-size', $btn); font-style: map.get($btn, font-style); font-weight: map.get($btn, font-weight); gap: map.get($btn, gap); justify-content: center; line-height: 1; - padding: config('padding', 'btn'); + padding: config('padding', $btn); text-align: start; text-decoration: none; text-transform: map.get($btn, text-transform); @@ -79,7 +79,7 @@ } &#{$selector}--lg { - padding: config(icon-padding, btn); + padding: config(icon-padding, $btn); } } @@ -108,11 +108,11 @@ @include styles-lg; @if not map.get($settings, 'css-custom-properties') { - gap: config(gap, btn-lg); - padding: config(padding, btn-lg); + gap: config(gap, $btn-lg); + padding: config(padding, $btn-lg); @include breakpoint(md) { - font-size: config(font-size, btn-lg); + font-size: config(font-size, $btn-lg); } } } diff --git a/scss/function/_config.scss b/scss/function/_config.scss index da6af4b..6fbfd64 100644 --- a/scss/function/_config.scss +++ b/scss/function/_config.scss @@ -1,19 +1,12 @@ @use 'sass:map'; +@use 'sass:string'; @use 'setting' as *; @use '../config' as *; @function config( $key, - $name + $map ) { - $map: null; - - @if $name == 'display' { - $map: $display; - } @else if $name == 'btn' { - $map: $btn; - } - @if not map.has-key($map, $key) { @error 'The #{$key} key name doesn\'t exist under #{$type} at the specified map.'; } From 6352c057f870c7bba55ceb688bf8de2eab5626f3 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 22 Mar 2023 20:35:43 +0100 Subject: [PATCH 04/67] WIP --- preview/assets/scss/config/_config.scss | 9 +++- scss/form/_button.scss | 70 +++++++++---------------- scss/mixin/_index.scss | 1 + scss/mixin/_variables.scss | 10 ++++ 4 files changed, 42 insertions(+), 48 deletions(-) create mode 100644 scss/mixin/_variables.scss diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 3fd8454..0a9f3ec 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -24,10 +24,15 @@ $spacer: 1.25rem; prefix: 'spruce', print: true, utilities: true, - css-custom-properties: false, + css-custom-properties: true, ), $btn: ( - 'text-transform': uppercase + 'border-radius': 3em, + 'text-transform': none, + ), + $btn-lg: ( + 'border-radius': 0.25em, + 'text-transform': uppercase, ), // $btn-text-transform: uppercase, $form-check-font-size-lg: 1.35rem, diff --git a/scss/form/_button.scss b/scss/form/_button.scss index 34abdc7..812648c 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -3,30 +3,6 @@ @use '../mixin' as *; @use '../config' as *; -@mixin styles { - @if map.get($settings, 'css-custom-properties') { - @each $key, $value in $btn { - --#{$internal-prefix}#{$key}: #{$value}; - } - } -} - -@mixin styles-lg { - @if map.get($settings, 'css-custom-properties') { - @each $key, $value in $btn-lg { - --#{$internal-prefix}#{$key}: #{$value}; - } - } -} - -@mixin styles-sm { - @if map.get($settings, 'css-custom-properties') { - @each $key, $value in $btn-sm { - --#{$internal-prefix}#{$key}: #{$value}; - } - } -} - @mixin generate-btn( $selector, $pseudo-selector: null, @@ -34,27 +10,27 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { - @include styles; + @include generate-variables($btn); align-items: center; border-radius: config('border-radius', $btn); border-style: solid; - border-width: map.get($btn, outline-width); + border-width: config('outline-width', $btn); cursor: pointer; display: inline-flex; - font-family: map.get($btn, font-family); + font-family: config('font-family', $btn); font-size: config('font-size', $btn); - font-style: map.get($btn, font-style); - font-weight: map.get($btn, font-weight); - gap: map.get($btn, gap); + font-style: config('font-style', $btn); + font-weight: config('font-weight', $btn); + gap: config('gap', $btn); justify-content: center; line-height: 1; padding: config('padding', $btn); text-align: start; text-decoration: none; - text-transform: map.get($btn, text-transform); + text-transform: config('text-transform', $btn); transition-duration: transition(duration); - transition-property: background-color,border-color, box-shadow, color; + transition-property: background-color, border-color, box-shadow, color; transition-timing-function: transition(timing-function); } @@ -72,26 +48,26 @@ @if ($has-icons) { // Icon button #{$selector}--icon { - padding: map.get($btn, icon-padding); + padding: config('icon-padding', $btn); &#{$selector}--sm { - padding: map.get($btn, icon-padding-sm); + padding: config('icon-padding', $btn-sm); } &#{$selector}--lg { - padding: config(icon-padding, $btn); + padding: config('icon-padding', $btn-lg); } } // Icons #{$selector}__icon { flex-shrink: 0; - height: map.get($btn, icon-size); - width: map.get($btn, icon-size); + height: config('icon-size', $btn); + width: config('icon-size', $btn); &--sm { - height: map.get($btn, icon-size-sm); - width: map.get($btn, icon-size-sm); + height: config('icon-size', $btn-sm); + width: config('icon-size', $btn-sm); } } } @@ -99,20 +75,22 @@ @if ($has-sizes) { // Sizes #{$selector}--sm#{$pseudo-selector} { - font-size: map.get($btn, font-size-sm); - gap: map.get($btn, gap-sm); - padding: map.get($btn, padding-sm); + @include generate-variables($btn-sm); + + font-size: config('font-size', $btn-sm); + gap: config('gap', $btn-sm); + padding: config('padding', $btn-sm); } #{$selector}--lg#{$pseudo-selector} { - @include styles-lg; + @include generate-variables($btn-lg); @if not map.get($settings, 'css-custom-properties') { - gap: config(gap, $btn-lg); - padding: config(padding, $btn-lg); + gap: config('gap', $btn-lg); + padding: config('padding', $btn-lg); @include breakpoint(md) { - font-size: config(font-size, $btn-lg); + font-size: config('font-size', $btn-lg); } } } diff --git a/scss/mixin/_index.scss b/scss/mixin/_index.scss index 9400c90..596c0ed 100644 --- a/scss/mixin/_index.scss +++ b/scss/mixin/_index.scss @@ -8,3 +8,4 @@ @forward 'transition'; @forward 'selection'; @forward 'utilities'; +@forward 'variables'; diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss new file mode 100644 index 0000000..0b2fcfd --- /dev/null +++ b/scss/mixin/_variables.scss @@ -0,0 +1,10 @@ +@use 'sass:map'; +@use '../config' as *; + +@mixin generate-variables($map) { + @if map.get($settings, 'css-custom-properties') { + @each $key, $value in $map { + --#{$internal-prefix}#{$key}: #{$value}; + } + } +} From d16e8603cc69bbd0f8b345c1cce03407ba845b93 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Thu, 23 Mar 2023 17:00:55 +0100 Subject: [PATCH 05/67] WIP --- preview/assets/scss/config/_config.scss | 32 ++++++++++++------------- scss/element/_root.scss | 2 ++ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 0a9f3ec..c57ac96 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -6,25 +6,25 @@ $spacer: 1.25rem; @use 'spruce' with ( $colors: ( - btn: ( - custom-background: hsl(0 0% 100%), - custom-background-hover: hsl(332 49% 29%), - custom-foreground: hsl(0 0% 0%), - custom-foreground-hover: hsl(0 0% 100%), - tertiary-background: $color-tertiary, - tertiary-foreground: hsl(0 0% 100%), - tertiary-shadow-focus: color.adjust($color-tertiary, $alpha: -0.75), - ) + 'btn': ( + 'custom-background': hsl(0 0% 100%), + 'custom-background-hover': hsl(332 49% 29%), + 'custom-foreground': hsl(0 0% 0%), + 'custom-foreground-hover': hsl(0 0% 100%), + 'tertiary-background': $color-tertiary, + 'tertiary-foreground': hsl(0 0% 100%), + 'tertiary-shadow-focus': color.adjust($color-tertiary, $alpha: -0.75), + ), ), $dark-colors: dark.$colors, $settings: ( - color-fallback: false, - html-smooth-scrolling: false, - hyphens: true, - prefix: 'spruce', - print: true, - utilities: true, - css-custom-properties: true, + 'color-fallback': false, + 'html-smooth-scrolling': false, + 'hyphens': true, + 'prefix': 'spruce', + 'print': true, + 'utilities': true, + 'css-custom-properties': false, ), $btn: ( 'border-radius': 3em, diff --git a/scss/element/_root.scss b/scss/element/_root.scss index 4923a93..dc65841 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -14,5 +14,7 @@ @media (prefers-reduced-motion: reduce) { --#{$internal-prefix}transition-duration: 0; } + + @include generate-variables($display); } } From 67b48f896f09104cca288fc78a677d7a00ca47e3 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Thu, 23 Mar 2023 17:55:05 +0100 Subject: [PATCH 06/67] Refactor to map --- scss/config/_layout.scss | 10 +++++++++- scss/config/_print.scss | 12 ++++++++++-- scss/mixin/_layout.scss | 2 +- scss/print/_index.scss | 4 ++-- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/scss/config/_layout.scss b/scss/config/_layout.scss index 71a4763..e5dd5f7 100644 --- a/scss/config/_layout.scss +++ b/scss/config/_layout.scss @@ -1 +1,9 @@ -$container-width: 84rem !default; +@use 'sass:map'; + +$layout: () !default; +$layout: map.merge( + ( + 'container-width': 84rem, + ), + $layout +); diff --git a/scss/config/_print.scss b/scss/config/_print.scss index 6f815e8..c95e7dc 100644 --- a/scss/config/_print.scss +++ b/scss/config/_print.scss @@ -1,2 +1,10 @@ -$print-page-margin: 2cm !default; -$print-hidden-elements: 'header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]' !default; +@use 'sass:map'; + +$print: () !default; +$print: map.merge( + ( + 'page-margin': 2cm, + 'hidden-elements': 'header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]', + ), + $print +); diff --git a/scss/mixin/_layout.scss b/scss/mixin/_layout.scss index 22a7e5b..9a0f7b1 100644 --- a/scss/mixin/_layout.scss +++ b/scss/mixin/_layout.scss @@ -9,7 +9,7 @@ /// @return {mixin} - The centered layout. @mixin layout-center( $gap: m, - $max-width: $container-width + $max-width: config('container-width', $layout) ) { @if map.has-key($spacers, $gap) { $gap: map.get($spacers, $gap); diff --git a/scss/print/_index.scss b/scss/print/_index.scss index 6ba8240..f8c9fb2 100644 --- a/scss/print/_index.scss +++ b/scss/print/_index.scss @@ -6,10 +6,10 @@ @if setting(print) == true { @media print { @page { - margin: $print-page-margin; + margin: config('page-margin', $print); } - #{$print-hidden-elements} { + #{config('hidden-elements', $print)} { display: none !important; } From d80619c106e66d80d8cfe855bfe1bbf63f8ad204 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Thu, 23 Mar 2023 18:46:01 +0100 Subject: [PATCH 07/67] Updates --- preview/assets/scss/config/_config.scss | 2 +- scss/config/_form-control.scss | 45 +++++++++++++++++ scss/config/_form.scss | 26 ---------- scss/config/_index.scss | 1 + scss/config/_spacer.scss | 16 +++--- scss/element/_root.scss | 2 + scss/form/_control.scss | 67 +++++++++++++------------ scss/form/_group.scss | 4 +- scss/function/_config.scss | 3 +- scss/print/_index.scss | 3 +- 10 files changed, 98 insertions(+), 71 deletions(-) create mode 100644 scss/config/_form-control.scss diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index c57ac96..657b0ef 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -24,7 +24,7 @@ $spacer: 1.25rem; 'prefix': 'spruce', 'print': true, 'utilities': true, - 'css-custom-properties': false, + 'css-custom-properties': true, ), $btn: ( 'border-radius': 3em, diff --git a/scss/config/_form-control.scss b/scss/config/_form-control.scss new file mode 100644 index 0000000..d261136 --- /dev/null +++ b/scss/config/_form-control.scss @@ -0,0 +1,45 @@ +@use 'sass:map'; +@use 'display' as *; +@use 'typography' as *; + +$form-control: () !default; +$form-control: map.merge( + ( + 'font-size': $font-size-base, + 'font-weight': null, + 'line-height': 1.5, + 'padding': 0.5em 0.75em, + 'border-width': 1px, + 'border-radius': map.get($display, border-radius-sm), + 'focus-ring-type': box-shadow, + 'focus-ring-box-shadow-type': outside, + 'focus-ring-width': 0.25rem, + 'focus-ring-offset': 2px, + 'color-padding': 0.5em, + 'color-height': calc(#{map.get($form-control, 'line-height')}em + ( #{map.get($form-control, 'color-padding')} + #{map.get($form-control, 'border-width')} ) * 2), + 'textarea-height': 6rem, + ), + $form-control +); + +$form-control-lg: () !default; +$form-control-lg: map.merge( + ( + 'font-size': $font-size-lg, + 'padding': 0.65em 1em, + 'color-padding': 0.75em, + 'color-height': calc(#{map.get($form-control-lg, 'line-height')}em + ( #{map.get($form-control-lg, 'line-height')} + #{map.get($form-control, 'border-width')} ) * 2), + ), + $form-control-lg +); + +$form-control-sm: () !default; +$form-control-sm: map.merge( + ( + 'font-size': $font-size-sm, + 'padding': 0.25em 0.5em, + 'color-padding': 0.25em, + 'color-height': calc(#{map.get($form-control-sm, 'line-height')}em + ( #{map.get($form-control-sm, 'line-height')} + #{map.get($form-control, 'border-width')} ) * 2), + ), + $form-control +); diff --git a/scss/config/_form.scss b/scss/config/_form.scss index d36931e..05130f2 100644 --- a/scss/config/_form.scss +++ b/scss/config/_form.scss @@ -21,32 +21,6 @@ $form-description-font-weight: null !default; $form-row-col-width: 20ch !default; -$form-control-font-size: $font-size-base !default; -$form-control-font-size-sm: $font-size-sm !default; -$form-control-font-size-lg: $font-size-lg !default; - -$form-control-font-weight: null !default; -$form-control-line-height: 1.5 !default; -$form-control-padding: 0.5em 0.75em !default; -$form-control-padding-sm: 0.25em 0.5em !default; -$form-control-padding-lg: 0.65em 1em !default; -$form-control-border-width: 1px !default; -$form-control-border-radius: map.get($display, border-radius-sm) !default; - -$form-control-focus-ring-type: box-shadow !default; -$form-control-focus-ring-box-shadow-type: outside !default; -$form-control-focus-ring-width: 0.25rem !default; -$form-control-focus-ring-offset: 2px !default; - -$form-control-color-padding: 0.5em !default; -$form-control-color-padding-sm: 0.25em !default; -$form-control-color-padding-lg: 0.75em !default; -$form-control-color-height: calc(#{$form-control-line-height}em + ( #{$form-control-color-padding} + #{$form-control-border-width} ) * 2) !default; -$form-control-color-height-sm: calc(#{$form-control-line-height}em + ( #{$form-control-color-padding-sm} + #{$form-control-border-width} ) * 2) !default; -$form-control-color-height-lg: calc(#{$form-control-line-height}em + ( #{$form-control-color-padding-lg} + #{$form-control-border-width} ) * 2) !default; - -$form-control-textarea-height: 6rem !default; - $form-check-border-width: 1px !default; $form-check-checkbox-border-radius: map.get($display, border-radius-sm) !default; $form-check-font-size: 1.125rem !default; diff --git a/scss/config/_index.scss b/scss/config/_index.scss index 575d475..a50e73a 100644 --- a/scss/config/_index.scss +++ b/scss/config/_index.scss @@ -5,6 +5,7 @@ @forward 'typography'; @forward 'button'; @forward 'form'; +@forward 'form-control'; @forward 'table'; @forward 'layout'; @forward 'transition'; diff --git a/scss/config/_spacer.scss b/scss/config/_spacer.scss index 95cba56..7b09f43 100644 --- a/scss/config/_spacer.scss +++ b/scss/config/_spacer.scss @@ -5,14 +5,14 @@ $spacer: 1rem !default; $spacers: () !default; $spacers: map.merge( ( - xxs: $spacer * 0.25, - xs: $spacer * 0.5, - s: $spacer, - m: $spacer * 1.5, - l: $spacer * 3, - xl: $spacer * 4.5, - xxl: $spacer * 7, - xxxl: $spacer * 10 + 'xxs': $spacer * 0.25, + 'xs': $spacer * 0.5, + 's': $spacer, + 'm': $spacer * 1.5, + 'l': $spacer * 3, + 'xl': $spacer * 4.5, + 'xxl': $spacer * 7, + 'xxxl': $spacer * 10 ), $spacers ); diff --git a/scss/element/_root.scss b/scss/element/_root.scss index dc65841..37da57c 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -16,5 +16,7 @@ } @include generate-variables($display); + @include generate-variables($layout); + @include generate-variables($print); } } diff --git a/scss/form/_control.scss b/scss/form/_control.scss index f7c9abc..fd95c19 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -11,18 +11,19 @@ ) { #{$selector} { --webkit-date-line-height: 1.375; + @include generate-variables($form-control); appearance: none; background-color: color(background, form); - border: $form-control-border-width solid color(border, form); - border-radius: $form-control-border-radius; + border: config('border-width', $form-control) solid color(border, form); + border-radius: config('border-radius', $form-control); box-sizing: border-box; color: color(text, form); display: block; - font-size: $form-control-font-size; - font-weight: $form-control-font-weight; - line-height: $form-control-line-height; - padding: $form-control-padding; + font-size: config('font-size', $form-control); + font-weight: config('font-weight', $form-control); + line-height: config('line-height', $form-control); + padding: config('padding', $form-control); transition-duration: transition(duration); transition-property: border, box-shadow; transition-timing-function: transition(timing-function); @@ -38,18 +39,18 @@ &:focus { @include focus-ring( - $type: $form-control-focus-ring-type, + $type: config('focus-ring-type', $form-control), $border-color: color(border-focus, form), $ring-color: color(ring-focus, form), - $box-shadow-type: $form-control-focus-ring-box-shadow-type, - $ring-width: $form-control-focus-ring-width, - $ring-offset: $form-control-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), + $ring-width: config('focus-ring-width', $form-control), + $ring-offset: config('focus-ring-offset', $form-control) ); } &[type='color'] { - height: $form-control-color-height; - padding: $form-control-color-padding; + height: config('color-height', $form-control); + padding: config('color-padding', $form-control); &::-webkit-color-swatch-wrapper { padding: 0; @@ -57,12 +58,12 @@ &::-moz-color-swatch { border: 0; - border-radius: $form-control-border-radius; + border-radius: config('border-radius', $form-control); } &::-webkit-color-swatch { border: 0; - border-radius: $form-control-border-radius; + border-radius: config('border-radius', $form-control); } } @@ -77,8 +78,8 @@ // Set height to textarea @at-root { textarea#{$selector} { - height: $form-control-textarea-height; - min-height: $form-control-textarea-height; + height: config('textarea-height', $form-control); + min-height: config('textarea-height', $form-control); resize: vertical; } } @@ -103,12 +104,12 @@ &:focus { @include focus-ring( - $type: $form-control-focus-ring-type, + $type: config('focus-ring-type', $form-control), $border-color: color(valid, form), $ring-color: color(valid-focus-ring, form), - $box-shadow-type: $form-control-focus-ring-box-shadow-type, - $ring-width: $form-control-focus-ring-width, - $ring-offset: $form-control-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), + $ring-width: config('focus-ring-width', $form-control), + $ring-offset: config('focus-ring-offset', $form-control) ); } } @@ -119,12 +120,12 @@ &:focus { @include focus-ring( - $type: $form-control-focus-ring-type, + $type: config('focus-ring-type', $form-control), $border-color: color(invalid, form), $ring-color: color(invalid-focus-ring, form), - $box-shadow-type: $form-control-focus-ring-box-shadow-type, - $ring-width: $form-control-focus-ring-width, - $ring-offset: $form-control-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), + $ring-width: config('focus-ring-width', $form-control), + $ring-offset: config('focus-ring-offset', $form-control) ); } } @@ -134,25 +135,27 @@ @if ($has-sizes) { &--sm { --webkit-date-line-height: 1.36; + @include generate-variables($form-control-sm); - font-size: $form-control-font-size-sm; - padding: $form-control-padding-sm; + font-size: config('font-size', $form-control-sm); + padding: config('padding', $form-control-sm); &[type='color'] { - height: $form-control-color-height-sm; - padding: $form-control-color-padding-sm; + height: config('color-height', $form-control-sm); + padding: config('color-padding', $form-control-sm); } } &--lg { --webkit-date-line-height: 1.387; + @include generate-variables($form-control-lg); - font-size: $form-control-font-size-lg; - padding: $form-control-padding-lg; + font-size: config('font-size', $form-control-lg); + padding: config('padding', $form-control-lg); &[type='color'] { - height: $form-control-color-height-lg; - padding: $form-control-color-padding-lg; + height: config('color-height', $form-control-lg); + padding: config('color-padding', $form-control-lg); } } } diff --git a/scss/form/_group.scss b/scss/form/_group.scss index 2a41b0a..a53c19c 100644 --- a/scss/form/_group.scss +++ b/scss/form/_group.scss @@ -55,7 +55,7 @@ @include breakpoint(sm) { border-end-start-radius: 0; - border-start-end-radius: $form-control-border-radius; + border-start-end-radius: config('border-radius', $form-control); margin-block-start: 0; margin-inline-start: -1px; } @@ -74,7 +74,7 @@ /* stylelint-disable */ @include breakpoint(sm) { &:first-child { - border-end-start-radius: $form-control-border-radius; + border-end-start-radius: config('border-radius', $form-control); } } /* stylelint-enable */ diff --git a/scss/function/_config.scss b/scss/function/_config.scss index 6fbfd64..dba0140 100644 --- a/scss/function/_config.scss +++ b/scss/function/_config.scss @@ -8,7 +8,8 @@ $map ) { @if not map.has-key($map, $key) { - @error 'The #{$key} key name doesn\'t exist under #{$type} at the specified map.'; + @error $key; + @error 'The #{$key} key name doesn\'t exist under #{$map} at the specified map.'; } @if map.get($map, $key) == null { diff --git a/scss/print/_index.scss b/scss/print/_index.scss index f8c9fb2..4f7ec61 100644 --- a/scss/print/_index.scss +++ b/scss/print/_index.scss @@ -1,3 +1,4 @@ +@use 'sass:map'; @use '../config' as *; @use '../function' as *; @use '../mixin' as *; @@ -9,7 +10,7 @@ margin: config('page-margin', $print); } - #{config('hidden-elements', $print)} { + #{map.get($print, 'hidden-elements')} { display: none !important; } From abffc668baff70dedea81649c06d17caffa3594e Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Thu, 23 Mar 2023 20:16:47 +0100 Subject: [PATCH 08/67] Form-control, exclude from generator, config third option --- preview/assets/scss/config/_config.scss | 3 +++ scss/config/_button.scss | 2 +- scss/config/_form-control.scss | 2 +- scss/form/_control.scss | 24 +++++++++--------------- scss/function/_config.scss | 7 ++++++- scss/mixin/_variables.scss | 9 +++++++-- 6 files changed, 27 insertions(+), 20 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 657b0ef..aa56035 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -34,6 +34,9 @@ $spacer: 1.25rem; 'border-radius': 0.25em, 'text-transform': uppercase, ), + $form-control: ( + 'font-weight': 400, + ), // $btn-text-transform: uppercase, $form-check-font-size-lg: 1.35rem, $form-check-font-weight: 400, diff --git a/scss/config/_button.scss b/scss/config/_button.scss index 10ab5ea..f2f0ab6 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -44,7 +44,7 @@ $btn-sm: map.merge( 'gap': map.get($spacers, xxs), 'icon-padding': 0.5em, 'icon-size': 0.85em, - 'padding': 0.5em, + 'padding': 0.5em 1em, ), $btn-sm ); diff --git a/scss/config/_form-control.scss b/scss/config/_form-control.scss index d261136..b07858a 100644 --- a/scss/config/_form-control.scss +++ b/scss/config/_form-control.scss @@ -41,5 +41,5 @@ $form-control-sm: map.merge( 'color-padding': 0.25em, 'color-height': calc(#{map.get($form-control-sm, 'line-height')}em + ( #{map.get($form-control-sm, 'line-height')} + #{map.get($form-control, 'border-width')} ) * 2), ), - $form-control + $form-control-sm ); diff --git a/scss/form/_control.scss b/scss/form/_control.scss index fd95c19..7cfff4c 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -11,7 +11,7 @@ ) { #{$selector} { --webkit-date-line-height: 1.375; - @include generate-variables($form-control); + @include generate-variables($form-control, 'focus-'); appearance: none; background-color: color(background, form); @@ -39,12 +39,12 @@ &:focus { @include focus-ring( - $type: config('focus-ring-type', $form-control), + $type: config('focus-ring-type', $form-control, false), $border-color: color(border-focus, form), $ring-color: color(ring-focus, form), - $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), - $ring-width: config('focus-ring-width', $form-control), - $ring-offset: config('focus-ring-offset', $form-control) + $box-shadow-type: config('focus-ring-box-shadow-type', $form-control, false), + $ring-width: config('focus-ring-width', $form-control, false), + $ring-offset: config('focus-ring-offset', $form-control, false) ); } @@ -104,12 +104,12 @@ &:focus { @include focus-ring( - $type: config('focus-ring-type', $form-control), + $type: config('focus-ring-type', $form-control, false), $border-color: color(valid, form), - $ring-color: color(valid-focus-ring, form), + $ring-color: color(valid-focus-ring, form, false), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), - $ring-width: config('focus-ring-width', $form-control), - $ring-offset: config('focus-ring-offset', $form-control) + $ring-width: config('focus-ring-width', $form-control, false), + $ring-offset: config('focus-ring-offset', $form-control, false) ); } } @@ -137,9 +137,6 @@ --webkit-date-line-height: 1.36; @include generate-variables($form-control-sm); - font-size: config('font-size', $form-control-sm); - padding: config('padding', $form-control-sm); - &[type='color'] { height: config('color-height', $form-control-sm); padding: config('color-padding', $form-control-sm); @@ -150,9 +147,6 @@ --webkit-date-line-height: 1.387; @include generate-variables($form-control-lg); - font-size: config('font-size', $form-control-lg); - padding: config('padding', $form-control-lg); - &[type='color'] { height: config('color-height', $form-control-lg); padding: config('color-padding', $form-control-lg); diff --git a/scss/function/_config.scss b/scss/function/_config.scss index dba0140..b08daba 100644 --- a/scss/function/_config.scss +++ b/scss/function/_config.scss @@ -5,7 +5,8 @@ @function config( $key, - $map + $map, + $custom-property: true ) { @if not map.has-key($map, $key) { @error $key; @@ -16,6 +17,10 @@ @return null; } + @if not $custom-property { + @return map.get($map, $key); + } + @if map.get($settings, 'css-custom-properties') { @return var(--#{$internal-prefix}#{$key}); } diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 0b2fcfd..9704a8c 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -1,10 +1,15 @@ @use 'sass:map'; +@use 'sass:string'; @use '../config' as *; -@mixin generate-variables($map) { +@mixin generate-variables($map, $exclude: null) { @if map.get($settings, 'css-custom-properties') { @each $key, $value in $map { - --#{$internal-prefix}#{$key}: #{$value}; + @if $exclude and not string.index($key, $exclude) and $value { + --#{$internal-prefix}#{$key}: #{$value}; + } @else if not $exclude and $value { + --#{$internal-prefix}#{$key}: #{$value}; + } } } } From 5cc6e0acf9e486370f19577ee6b082c26f31fa8d Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 24 Mar 2023 19:36:49 +0100 Subject: [PATCH 09/67] Form control --- preview/pug/page/form.pug | 6 ++++++ scss/config/_form-control.scss | 39 ++++++++++++++++++++++++++++------ scss/form/_button.scss | 2 +- scss/form/_control.scss | 13 ++++++------ scss/print/_index.scss | 2 +- 5 files changed, 48 insertions(+), 14 deletions(-) diff --git a/preview/pug/page/form.pug b/preview/pug/page/form.pug index 0024b85..76ae25d 100644 --- a/preview/pug/page/form.pug +++ b/preview/pug/page/form.pug @@ -38,9 +38,15 @@ block content div(class='form-group') label(for='url' class='form-label') URL input(class='form-control' id='url' type='url') + div(class='form-group') + label(for='color-sm' class='form-label') Color + input(class='form-control form-control--sm' id='color-sm' type='color' value='#6524d6') div(class='form-group') label(for='color' class='form-label') Color input(class='form-control' id='color' type='color' value='#6524d6') + div(class='form-group') + label(for='color-lg' class='form-label') Color + input(class='form-control form-control--lg' id='color-lg' type='color' value='#6524d6') div(class='form-group') label(for='date' class='form-label') Date input(class='form-control' id='date' type='date') diff --git a/scss/config/_form-control.scss b/scss/config/_form-control.scss index b07858a..94be4c4 100644 --- a/scss/config/_form-control.scss +++ b/scss/config/_form-control.scss @@ -15,8 +15,6 @@ $form-control: map.merge( 'focus-ring-box-shadow-type': outside, 'focus-ring-width': 0.25rem, 'focus-ring-offset': 2px, - 'color-padding': 0.5em, - 'color-height': calc(#{map.get($form-control, 'line-height')}em + ( #{map.get($form-control, 'color-padding')} + #{map.get($form-control, 'border-width')} ) * 2), 'textarea-height': 6rem, ), $form-control @@ -27,8 +25,6 @@ $form-control-lg: map.merge( ( 'font-size': $font-size-lg, 'padding': 0.65em 1em, - 'color-padding': 0.75em, - 'color-height': calc(#{map.get($form-control-lg, 'line-height')}em + ( #{map.get($form-control-lg, 'line-height')} + #{map.get($form-control, 'border-width')} ) * 2), ), $form-control-lg ); @@ -38,8 +34,39 @@ $form-control-sm: map.merge( ( 'font-size': $font-size-sm, 'padding': 0.25em 0.5em, - 'color-padding': 0.25em, - 'color-height': calc(#{map.get($form-control-sm, 'line-height')}em + ( #{map.get($form-control-sm, 'line-height')} + #{map.get($form-control, 'border-width')} ) * 2), ), $form-control-sm ); + +$form-control-color: () !default; +$form-control-color: map.merge( + ( + 'aspect-ratio': 1, + 'height': 100%, + 'padding': 0.5em, + 'width': 2.625rem, + ), + $form-control-color +); + +$form-control-color-lg: () !default; +$form-control-color-lg: map.merge( + ( + 'aspect-ratio': 1, + 'height': 100%, + 'padding': 0.5em, + 'width': 3.204rem, + ), + $form-control-color-lg +); + +$form-control-color-sm: () !default; +$form-control-color-sm: map.merge( + ( + 'aspect-ratio': 1, + 'height': 100%, + 'padding': 0.25em, + 'width': 1.925rem, + ), + $form-control-color-sm +); diff --git a/scss/form/_button.scss b/scss/form/_button.scss index 812648c..8e3827c 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -10,7 +10,7 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { - @include generate-variables($btn); + @include generate-variables($btn, 'focus-'); align-items: center; border-radius: config('border-radius', $btn); diff --git a/scss/form/_control.scss b/scss/form/_control.scss index 7cfff4c..e4c0c0a 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -49,8 +49,11 @@ } &[type='color'] { - height: config('color-height', $form-control); - padding: config('color-padding', $form-control); + @include generate-variables($form-control-color); + aspect-ratio: config('aspect-ratio', $form-control-color); + height: config('height', $form-control-color); + padding: config('padding', $form-control-color); + width: config('width', $form-control-color); &::-webkit-color-swatch-wrapper { padding: 0; @@ -138,8 +141,7 @@ @include generate-variables($form-control-sm); &[type='color'] { - height: config('color-height', $form-control-sm); - padding: config('color-padding', $form-control-sm); + @include generate-variables($form-control-color-sm); } } @@ -148,8 +150,7 @@ @include generate-variables($form-control-lg); &[type='color'] { - height: config('color-height', $form-control-lg); - padding: config('color-padding', $form-control-lg); + @include generate-variables($form-control-color-lg); } } } diff --git a/scss/print/_index.scss b/scss/print/_index.scss index 4f7ec61..ff3d349 100644 --- a/scss/print/_index.scss +++ b/scss/print/_index.scss @@ -10,7 +10,7 @@ margin: config('page-margin', $print); } - #{map.get($print, 'hidden-elements')} { + #{config('hidden-elements', $print, false)} { display: none !important; } From 64799645d81efe87a2130280f3b317aea534628e Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 07:52:49 +0100 Subject: [PATCH 10/67] WIP --- scss/config/_table.scss | 29 ++++++++++++++++++++--------- scss/element/_table.scss | 28 +++++++++++++++------------- scss/form/_button.scss | 2 +- scss/form/_control.scss | 2 +- scss/mixin/_variables.scss | 33 ++++++++++++++++++++++++++++----- 5 files changed, 65 insertions(+), 29 deletions(-) diff --git a/scss/config/_table.scss b/scss/config/_table.scss index 70cd6e1..1068f9d 100644 --- a/scss/config/_table.scss +++ b/scss/config/_table.scss @@ -2,13 +2,24 @@ @use 'typography' as *; @use 'spacer' as *; -$table-responsive-width: 40rem !default; -$table-line-height: $line-height-md !default; -$table-padding: map.get($spacers, s) !default; -$table-padding-sm: map.get($spacers, xs) !default; +$table: () !default; +$table: map.merge( + ( + 'caption-font-size': null, + 'caption-font-style': null, + 'caption-font-weight': null, + 'line-height': $line-height-md, + 'padding': map.get($spacers, s), + 'responsive-width': 40rem, + 'stripe': odd, + ), + $table +); -$table-caption-font-size: null !default; -$table-caption-font-style: null !default; -$table-caption-font-weight: null !default; - -$table-stripe: odd !default; +$table-sm: () !default; +$table-sm: map.merge( + ( + 'padding': map.get($spacers, xs), + ), + $table +); diff --git a/scss/element/_table.scss b/scss/element/_table.scss index 5f45343..6ed42aa 100644 --- a/scss/element/_table.scss +++ b/scss/element/_table.scss @@ -1,6 +1,6 @@ -@use 'sass:map'; @use '../config' as *; @use '../function' as *; +@use '../mixin' as *; @mixin generate-table( $selector: '.table', @@ -9,7 +9,7 @@ ) { @if ($has-responsive-table) { .table-responsive { - --min-width: #{$table-responsive-width}; + --min-width: #{config('responsive-width', $table)}; -webkit-overflow-scrolling: touch; overflow-x: auto; @@ -20,23 +20,25 @@ } #{$selector} { + @include generate-variables($table); + border-collapse: collapse; color: color(text, table); width: 100%; caption { color: color(caption, table); - font-size: $table-caption-font-size; - font-style: $table-caption-font-style; - font-weight: $table-caption-font-weight; + font-size: config('caption-font-size', $table); + font-style: config('caption-font-style', $table); + font-weight: config('caption-font-weight', $table); margin-block-end: spacer(s); } th, td { border-block-end: 1px solid color(border, table); - line-height: $table-line-height; - padding: $table-padding; + line-height: config('line-height', $table); + padding: config('padding', $table); } th { @@ -47,7 +49,7 @@ @if ($has-variations) { &--striped { - > tbody > tr:nth-child(#{$table-stripe}) { + > tbody > tr:nth-child(#{config('stripe', $table, false)}) { background-color: color(stripe, table); } } @@ -80,7 +82,7 @@ &--sm { th, td { - padding: $table-padding-sm; + padding: config('padding', $table-sm); } } @@ -88,13 +90,13 @@ th, td { &:first-child { - border-end-start-radius: map.get($display, border-radius-sm); - border-start-start-radius: map.get($display, border-radius-sm); + border-end-start-radius: config('border-radius-sm', $display); + border-start-start-radius: config('border-radius-sm', $display); } &:last-child { - border-end-end-radius: map.get($display, border-radius-sm); - border-start-end-radius: map.get($display, border-radius-sm); + border-end-end-radius: config('border-radius-sm', $display); + border-start-end-radius: config('border-radius-sm', $display); } } } diff --git a/scss/form/_button.scss b/scss/form/_button.scss index 8e3827c..eebad77 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -10,7 +10,7 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { - @include generate-variables($btn, 'focus-'); + @include generate-variables($btn, ('focus-', 'font-')); align-items: center; border-radius: config('border-radius', $btn); diff --git a/scss/form/_control.scss b/scss/form/_control.scss index e4c0c0a..f6c8c31 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -11,7 +11,7 @@ ) { #{$selector} { --webkit-date-line-height: 1.375; - @include generate-variables($form-control, 'focus-'); + @include generate-variables($form-control, ('focus-')); appearance: none; background-color: color(background, form); diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 9704a8c..3e6c66b 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -4,11 +4,34 @@ @mixin generate-variables($map, $exclude: null) { @if map.get($settings, 'css-custom-properties') { - @each $key, $value in $map { - @if $exclude and not string.index($key, $exclude) and $value { - --#{$internal-prefix}#{$key}: #{$value}; - } @else if not $exclude and $value { - --#{$internal-prefix}#{$key}: #{$value}; + $excludeMap: (); + + @if $exclude { + @each $key, $value in $map { + @if $value { + @each $fraction in $exclude { + @debug string.index($key, $fraction); + @if not string.index($key, $fraction) { + $excludeMap: map.set($excludeMap, $key, $value); + } + } + } + } + } + + @if $exclude { + @each $key, $value in $excludeMap { + @if $value { + --#{$internal-prefix}#{$key}: #{$value}; + } + } + } + + @if not $exclude { + @each $key, $value in $map { + @if $value { + --#{$internal-prefix}#{$key}: #{$value}; + } } } } From 4a30d506cb71fc603150665bd5f5e8bc743f8248 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 08:00:16 +0100 Subject: [PATCH 11/67] Exclude --- scss/form/_button.scss | 2 +- scss/mixin/_variables.scss | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/scss/form/_button.scss b/scss/form/_button.scss index eebad77..4f649b1 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -10,7 +10,7 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { - @include generate-variables($btn, ('focus-', 'font-')); + @include generate-variables($btn, ('focus-')); align-items: center; border-radius: config('border-radius', $btn); diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 3e6c66b..4d48aec 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -4,15 +4,14 @@ @mixin generate-variables($map, $exclude: null) { @if map.get($settings, 'css-custom-properties') { - $excludeMap: (); + $excludeMap: $map; @if $exclude { @each $key, $value in $map { @if $value { @each $fraction in $exclude { - @debug string.index($key, $fraction); - @if not string.index($key, $fraction) { - $excludeMap: map.set($excludeMap, $key, $value); + @if string.index($key, $fraction) { + $excludeMap: map.remove($excludeMap, $key); } } } From da4eeea2f4866c6b09252d484d58297fc16c1d4b Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 08:21:40 +0100 Subject: [PATCH 12/67] Generate variables: exclude, include --- scss/form/_button.scss | 2 +- scss/mixin/_variables.scss | 29 +++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/scss/form/_button.scss b/scss/form/_button.scss index 4f649b1..eebad77 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -10,7 +10,7 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { - @include generate-variables($btn, ('focus-')); + @include generate-variables($btn, ('focus-', 'font-')); align-items: center; border-radius: config('border-radius', $btn); diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 4d48aec..5199769 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -2,9 +2,14 @@ @use 'sass:string'; @use '../config' as *; -@mixin generate-variables($map, $exclude: null) { +@mixin generate-variables($map, $exclude: null, $include: null) { + @if $exclude and $include { + @error 'You can\'t use both $exclude and $include arguments.'; + } + @if map.get($settings, 'css-custom-properties') { $excludeMap: $map; + $includeMap: (); @if $exclude { @each $key, $value in $map { @@ -18,6 +23,18 @@ } } + @if $include { + @each $key, $value in $map { + @if $value { + @each $fraction in $include { + @if string.index($key, $fraction) { + $includeMap: map.set($includeMap, $key, $value); + } + } + } + } + } + @if $exclude { @each $key, $value in $excludeMap { @if $value { @@ -26,7 +43,15 @@ } } - @if not $exclude { + @if $include { + @each $key, $value in $includeMap { + @if $value { + --#{$internal-prefix}#{$key}: #{$value}; + } + } + } + + @if not $exclude and not $include { @each $key, $value in $map { @if $value { --#{$internal-prefix}#{$key}: #{$value}; From f8941cfbb457fba534c7dc861c50fe3e16e263fd Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 09:48:53 +0100 Subject: [PATCH 13/67] Reorganize transitions --- scss/config/_transition.scss | 12 ++++++++++-- scss/element/_root.scss | 7 ++----- scss/function/_transition.scss | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/scss/config/_transition.scss b/scss/config/_transition.scss index d40802d..ed645b3 100644 --- a/scss/config/_transition.scss +++ b/scss/config/_transition.scss @@ -1,2 +1,10 @@ -$transition-duration: 0.15s !default; -$transition-timing-function: ease-in-out !default; +@use 'sass:map'; + +$transition: () !default; +$transition: map.merge( + ( + 'duration': 0.15s, + 'timing-function': ease-in-out, + ), + $transition +); diff --git a/scss/element/_root.scss b/scss/element/_root.scss index 37da57c..cc13ab8 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -8,11 +8,8 @@ @include generate-color-variables; :root { - --#{$internal-prefix}transition-duration: #{$transition-duration}; - --#{$internal-prefix}transition-timing-function: #{$transition-timing-function}; - - @media (prefers-reduced-motion: reduce) { - --#{$internal-prefix}transition-duration: 0; + @media (prefers-reduced-motion: no-preference) { + @include generate-variables($transition); } @include generate-variables($display); diff --git a/scss/function/_transition.scss b/scss/function/_transition.scss index 68993d7..cbd7e59 100644 --- a/scss/function/_transition.scss +++ b/scss/function/_transition.scss @@ -9,5 +9,5 @@ @error 'The #{$key} key name not supported, use duration or timing-function.'; } - @return var(--#{$internal-prefix}transition-#{$key}); + @return var(--#{$internal-prefix}#{$key}); } From 162e35cccd4578e107173f5f3e4bbbfde2b1d2b6 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 09:51:51 +0100 Subject: [PATCH 14/67] Generate small variables --- scss/config/_table.scss | 2 +- scss/element/_table.scss | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scss/config/_table.scss b/scss/config/_table.scss index 1068f9d..9338d33 100644 --- a/scss/config/_table.scss +++ b/scss/config/_table.scss @@ -21,5 +21,5 @@ $table-sm: map.merge( ( 'padding': map.get($spacers, xs), ), - $table + $table-sm ); diff --git a/scss/element/_table.scss b/scss/element/_table.scss index 6ed42aa..9955713 100644 --- a/scss/element/_table.scss +++ b/scss/element/_table.scss @@ -80,6 +80,8 @@ } &--sm { + @include generate-variables($table-sm); + th, td { padding: config('padding', $table-sm); From 645da9f13fa1dbb0f7cca5d1c285c6b32ee03539 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 11:06:03 +0100 Subject: [PATCH 15/67] Typography rework --- preview/assets/scss/component/_color.scss | 2 +- preview/assets/scss/main.scss | 7 +-- scss/config/_button.scss | 2 +- scss/config/_form-control.scss | 8 +-- scss/config/_form.scss | 16 +++--- scss/config/_table.scss | 2 +- scss/config/_typography.scss | 60 +++++++++++------------ scss/element/_typography.scss | 27 +++++----- scss/form/_description.scss | 3 +- scss/form/_label.scss | 3 +- scss/form/_validation.scss | 3 +- scss/function/_font-size.scss | 2 +- 12 files changed, 66 insertions(+), 69 deletions(-) diff --git a/preview/assets/scss/component/_color.scss b/preview/assets/scss/component/_color.scss index 5bdaef1..5a67a7d 100644 --- a/preview/assets/scss/component/_color.scss +++ b/preview/assets/scss/component/_color.scss @@ -21,7 +21,7 @@ } &__caption { - font-family: spruce.$font-family-cursive; + font-family: spruce.config('family-cursive', spruce.$typography); } } diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index 837bc39..e26d04a 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -41,7 +41,7 @@ box-shadow: -3px 5px spruce.color(custom-foreground, btn); border: 3px solid spruce.color(custom-foreground, btn); border-radius: 0; - font-family: spruce.$font-family-cursive; + font-family: spruce.config('family-cursive', spruce.$typography); } .btn--tertiary { @@ -98,11 +98,6 @@ } .custom-link { - /* - transition-duration: spruce.transition(duration); - transition-property: background-color; - transition-timing-function: spruce.transition(timing-function); - */ @include spruce.transition(2s, background-color, linear); &:hover { diff --git a/scss/config/_button.scss b/scss/config/_button.scss index f2f0ab6..64a4478 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -12,7 +12,7 @@ $btn: map.merge( 'focus-ring-type': outline, 'focus-ring-width': 2px, 'font-family': null, - 'font-size': $font-size-base, + 'font-size': map.get($typography, 'size-base'), 'font-style': null, 'font-weight': 500, 'gap': map.get($spacers, xs), diff --git a/scss/config/_form-control.scss b/scss/config/_form-control.scss index 94be4c4..f7e9e08 100644 --- a/scss/config/_form-control.scss +++ b/scss/config/_form-control.scss @@ -5,12 +5,12 @@ $form-control: () !default; $form-control: map.merge( ( - 'font-size': $font-size-base, + 'font-size': map.get($typography, 'size-base'), 'font-weight': null, 'line-height': 1.5, 'padding': 0.5em 0.75em, 'border-width': 1px, - 'border-radius': map.get($display, border-radius-sm), + 'border-radius': map.get($display, 'border-radius-sm'), 'focus-ring-type': box-shadow, 'focus-ring-box-shadow-type': outside, 'focus-ring-width': 0.25rem, @@ -23,7 +23,7 @@ $form-control: map.merge( $form-control-lg: () !default; $form-control-lg: map.merge( ( - 'font-size': $font-size-lg, + 'font-size': map.get($typography, 'size-lg'), 'padding': 0.65em 1em, ), $form-control-lg @@ -32,7 +32,7 @@ $form-control-lg: map.merge( $form-control-sm: () !default; $form-control-sm: map.merge( ( - 'font-size': $font-size-sm, + 'font-size': map.get($typography, 'size-sm'), 'padding': 0.25em 0.5em, ), $form-control-sm diff --git a/scss/config/_form.scss b/scss/config/_form.scss index 05130f2..3c6ec91 100644 --- a/scss/config/_form.scss +++ b/scss/config/_form.scss @@ -4,8 +4,8 @@ @use 'display' as *; $form-label-font-size: null !default; -$form-label-font-size-sm: $font-size-sm !default; -$form-label-font-size-lg: $font-size-lg !default; +$form-label-font-size-sm: map.get($typography, 'size-sm') !default; +$form-label-font-size-lg: map.get($typography, 'size-lg') !default; $form-label-font-style: null !default; $form-label-font-weight: null !default; @@ -24,10 +24,10 @@ $form-row-col-width: 20ch !default; $form-check-border-width: 1px !default; $form-check-checkbox-border-radius: map.get($display, border-radius-sm) !default; $form-check-font-size: 1.125rem !default; -$form-check-font-size-sm: $font-size-base !default; -$form-check-font-size-lg: $font-size-lg !default; +$form-check-font-size-sm: map.get($typography, 'size-base') !default; +$form-check-font-size-lg: map.get($typography, 'size-lg') !default; $form-check-font-weight: $form-label-font-weight !default; -$form-check-line-height: $line-height-heading !default; +$form-check-line-height: map.get($typography, 'line-height-heading') !default; $form-check-margin-block-start: 0.1em !default; $form-check-vertical-alignment: center !default; @@ -38,10 +38,10 @@ $form-check-focus-ring-offset: 2px !default; $form-switch-border-width: 1px !default; $form-switch-font-size: 1.125rem !default; -$form-switch-font-size-sm: $font-size-base !default; -$form-switch-font-size-lg: $font-size-lg !default; +$form-switch-font-size-sm: map.get($typography, 'size-base') !default; +$form-switch-font-size-lg: map.get($typography, 'size-lg') !default; $form-switch-font-weight: $form-label-font-weight !default; -$form-switch-line-height: $line-height-heading !default; +$form-switch-line-height: map.get($typography, 'line-height-heading') !default; $form-switch-margin-block-start: 0.25em !default; $form-file-background: primary !default; diff --git a/scss/config/_table.scss b/scss/config/_table.scss index 9338d33..4f00cd5 100644 --- a/scss/config/_table.scss +++ b/scss/config/_table.scss @@ -8,7 +8,7 @@ $table: map.merge( 'caption-font-size': null, 'caption-font-style': null, 'caption-font-weight': null, - 'line-height': $line-height-md, + 'line-height': map.get($typography, 'line-height-md'), 'padding': map.get($spacers, s), 'responsive-width': 40rem, 'stripe': odd, diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index 8c86057..168fcfa 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -2,41 +2,39 @@ @use 'sass:math'; @use 'display' as *; -$font-size-ratio: 1.25 !default; - -$font-size-base: 1rem !default; - -$font-size-sm: 0.9rem !default; -$font-size-lg: 1.1rem !default; +$typography: () !default; +$typography: map.merge( + ( + 'family-base': #{eravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif}, + 'family-cursive': #{ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace}, + 'family-heading': #{Avenir, 'Avenir Next LT Pro', Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif}, + 'inline-border-radius': map.get($display, border-radius-sm), + 'inline-padding': 0.1em 0.3em, + 'line-height-base': 1.8, + 'line-height-heading': calc(2px + 2ex + 2px), + 'line-height-lg': 1.8, + 'line-height-md': 1.5, + 'line-height-sm': 1.2, + 'size-base': 1rem, + 'size-lead': clamp(#{1.5rem, 2vw, 1.25rem}), + 'size-lg': 1.1rem, + 'size-ratio': 1.25, + 'size-sm': 0.9rem, + 'weight-base': null, + 'weight-heading': 700, + ), + $typography +); $font-sizes: () !default; $font-sizes: map.merge( ( - h1: math.pow($font-size-ratio, 4) * $font-size-base, - h2: math.pow($font-size-ratio, 3) * $font-size-base, - h3: math.pow($font-size-ratio, 2) * $font-size-base, - h4: math.pow($font-size-ratio, 1) * $font-size-base, - h5: $font-size-base, - h6: $font-size-base + h1: math.pow(map.get($typography, 'size-ratio'), 4) * map.get($typography, 'size-base'), + h2: math.pow(map.get($typography, 'size-ratio'), 3) * map.get($typography, 'size-base'), + h3: math.pow(map.get($typography, 'size-ratio'), 2) * map.get($typography, 'size-base'), + h4: math.pow(map.get($typography, 'size-ratio'), 1) * map.get($typography, 'size-base'), + h5: map.get($typography, 'size-base'), + h6: map.get($typography, 'size-base') ), $font-sizes ); - -$font-size-lead: clamp(#{$font-size-lg}, 2vw, #{map.get($font-sizes, h4)}) !default; - -$font-family-base: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji' !default; -$font-family-heading: $font-family-base !default; -$font-family-cursive: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace !default; - -$font-weight-base: null !default; - -$heading-font-weight: 700 !default; - -$line-height-sm: 1.2 !default; -$line-height-md: 1.5 !default; -$line-height-lg: 1.8 !default; -$line-height-base: $line-height-lg !default; -$line-height-heading: calc(2px + 2ex + 2px) !default; - -$inline-text-element-padding: 0.1em 0.3em !default; -$inline-text-element-border-radius: map.get($display, border-radius-sm) !default; diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index 1e2b160..1d4b4d1 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -1,3 +1,4 @@ +@use 'sass:map'; @use '../function' as *; @use '../mixin' as *; @use '../config' as *; @@ -5,14 +6,14 @@ @mixin generate-typography { // Basics html { - -webkit-tap-highlight-color: hsl(0 0% 0% / 0); + -webkit-tap-highlight-color: hsl(0deg 0% 0% / 0%); } body { - font-family: $font-family-base; - font-size: $font-size-base; - font-weight: $font-weight-base; - line-height: $line-height-base; + font-family: map.get($typography, 'family-base'); + font-size: map.get($typography, 'size-base'); + font-weight: map.get($typography, 'weight-base'); + line-height: map.get($typography, 'line-height-base'); } @if setting(hyphens) { @@ -37,9 +38,9 @@ h5, h6 { color: color(heading); - font-family: $font-family-heading; - font-weight: $heading-font-weight; - line-height: $line-height-heading; + font-family: map.get($typography, 'family-heading'); + font-weight: map.get($typography, 'weight-heading'); + line-height: map.get($typography, 'line-height-heading'); } h1, @@ -139,22 +140,22 @@ mark { background-color: color(mark-background); - border-radius: $inline-text-element-border-radius; + border-radius: map.get($typography, 'inline-border-radius'); color: color(mark-foreground); - padding: $inline-text-element-padding; + padding: map.get($typography, 'inline-padding'); } code, kbd, samp { background-color: color(code-background); - border-radius: $inline-text-element-border-radius; + border-radius: map.get($typography, 'inline-border-radius'); color: color(code-foreground); - padding: $inline-text-element-padding; + padding: map.get($typography, 'inline-padding'); } // Lead .lead { - font-size: $font-size-lead; + font-size: map.get($typography, 'size-lead'); } } diff --git a/scss/form/_description.scss b/scss/form/_description.scss index 2d9a3a9..5c6bf87 100644 --- a/scss/form/_description.scss +++ b/scss/form/_description.scss @@ -1,3 +1,4 @@ +@use 'sass:map'; @use '../function' as *; @use '../config' as *; @@ -8,6 +9,6 @@ font-size: $form-description-font-size; font-style: $form-description-font-style; font-weight: $form-description-font-weight; - line-height: $line-height-md; + line-height: map.get($typography, 'line-height-md'); } } diff --git a/scss/form/_label.scss b/scss/form/_label.scss index 240fb88..e60c0d7 100644 --- a/scss/form/_label.scss +++ b/scss/form/_label.scss @@ -1,3 +1,4 @@ +@use 'sass:map'; @use '../config' as *; @use '../function' as *; @@ -7,7 +8,7 @@ font-size: $form-label-font-size; font-style: $form-label-font-style; font-weight: $form-label-font-weight; - line-height: $line-height-md; + line-height: map.get($typography, 'line-height-md'); &--sm { font-size: $form-label-font-size-sm; diff --git a/scss/form/_validation.scss b/scss/form/_validation.scss index 76d0520..1a9d822 100644 --- a/scss/form/_validation.scss +++ b/scss/form/_validation.scss @@ -1,10 +1,11 @@ +@use 'sass:map'; @use '../config' as *; @use '../function' as *; @mixin generate-field-feedback { .field-feedback { display: block; - line-height: $line-height-md; + line-height: map.get($typography, 'line-height-md'); &--valid { color: color(success, alert); diff --git a/scss/function/_font-size.scss b/scss/function/_font-size.scss index 1e43cc4..c2f2390 100644 --- a/scss/function/_font-size.scss +++ b/scss/function/_font-size.scss @@ -20,7 +20,7 @@ @if $fluid { $scaled-size: map.get($font-sizes, $key) * math.div(100 - $scaler, 100); - @if $scaled-size < $font-size-base { + @if $scaled-size < map.get($typography, 'size-base') { @return map.get($font-sizes, $key); } From b96d8a292f546904f51e4763795171495efb22af Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 12:53:10 +0100 Subject: [PATCH 16/67] WIP check --- preview/assets/scss/config/_config.scss | 4 +-- scss/config/_form-check.scss | 38 +++++++++++++++++++++++++ scss/config/_form.scss | 15 ---------- scss/config/_index.scss | 1 + scss/config/_typography.scss | 2 +- scss/form/_check.scss | 28 +++++++++--------- scss/form/_switch.scss | 8 +++--- 7 files changed, 61 insertions(+), 35 deletions(-) create mode 100644 scss/config/_form-check.scss diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index aa56035..27bae88 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -38,6 +38,6 @@ $spacer: 1.25rem; 'font-weight': 400, ), // $btn-text-transform: uppercase, - $form-check-font-size-lg: 1.35rem, - $form-check-font-weight: 400, + // $form-check-font-size-lg: 1.35rem, + // $form-check-font-weight: 400, ); diff --git a/scss/config/_form-check.scss b/scss/config/_form-check.scss new file mode 100644 index 0000000..b391b94 --- /dev/null +++ b/scss/config/_form-check.scss @@ -0,0 +1,38 @@ +@use 'sass:map'; +@use 'display' as *; +@use 'typography' as *; +@use 'form' as *; + +$form-check: () !default; +$form-check: map.merge( + ( + 'border-width': 1px, + 'border-radius': map.get($display, border-radius-sm), + 'font-size': 1.125rem, + 'font-weight': $form-label-font-weight, + 'line-height': map.get($typography, 'line-height-heading'), + 'margin-block-start': 0.1em, + 'vertical-alignment': center, + 'focus-ring-type': outline, + 'focus-ring-box-shadow-type': outside, + 'focus-ring-width': 2px, + 'focus-ring-offset': 2px, + ), + $form-check +); + +$form-check-sm: () !default; +$form-check-sm: map.merge( + ( + 'font-size': map.get($typography, 'size-base'), + ), + $form-check-sm +); + +$form-check-lg: () !default; +$form-check-lg: map.merge( + ( + 'font-size': map.get($typography, 'size-lg'), + ), + $form-check-lg +); diff --git a/scss/config/_form.scss b/scss/config/_form.scss index 3c6ec91..8e00b7e 100644 --- a/scss/config/_form.scss +++ b/scss/config/_form.scss @@ -21,21 +21,6 @@ $form-description-font-weight: null !default; $form-row-col-width: 20ch !default; -$form-check-border-width: 1px !default; -$form-check-checkbox-border-radius: map.get($display, border-radius-sm) !default; -$form-check-font-size: 1.125rem !default; -$form-check-font-size-sm: map.get($typography, 'size-base') !default; -$form-check-font-size-lg: map.get($typography, 'size-lg') !default; -$form-check-font-weight: $form-label-font-weight !default; -$form-check-line-height: map.get($typography, 'line-height-heading') !default; -$form-check-margin-block-start: 0.1em !default; -$form-check-vertical-alignment: center !default; - -$form-check-focus-ring-type: outline !default; -$form-check-focus-ring-box-shadow-type: outside !default; -$form-check-focus-ring-width: 2px !default; -$form-check-focus-ring-offset: 2px !default; - $form-switch-border-width: 1px !default; $form-switch-font-size: 1.125rem !default; $form-switch-font-size-sm: map.get($typography, 'size-base') !default; diff --git a/scss/config/_index.scss b/scss/config/_index.scss index a50e73a..1708d97 100644 --- a/scss/config/_index.scss +++ b/scss/config/_index.scss @@ -6,6 +6,7 @@ @forward 'button'; @forward 'form'; @forward 'form-control'; +@forward 'form-check'; @forward 'table'; @forward 'layout'; @forward 'transition'; diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index 168fcfa..b87c2c9 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -16,7 +16,7 @@ $typography: map.merge( 'line-height-md': 1.5, 'line-height-sm': 1.2, 'size-base': 1rem, - 'size-lead': clamp(#{1.5rem, 2vw, 1.25rem}), + 'size-lead': clamp(#{1.35rem, 2vw, 1.15rem}), 'size-lg': 1.1rem, 'size-ratio': 1.25, 'size-sm': 0.9rem, diff --git a/scss/form/_check.scss b/scss/form/_check.scss index 6c4d1cc..4b99e1c 100644 --- a/scss/form/_check.scss +++ b/scss/form/_check.scss @@ -11,7 +11,9 @@ $has-sizes: false ) { #{$parent} { - align-items: $form-check-vertical-alignment; + @include generate-variables($form-check, ('focus-')); + + align-items: config('vertical-alignment', $form-check); display: inline-flex; gap: spacer(xs); } @@ -27,13 +29,13 @@ @if ($has-sizes) { #{$parent}--sm { #{$input} { - font-size: $form-check-font-size-sm; + font-size: config('font-size', $form-check-sm); } } #{$parent}--lg { #{$input} { - font-size: $form-check-font-size-lg; + font-size: config('font-size', $form-check-lg); } } } @@ -45,12 +47,12 @@ background-position: center; background-repeat: no-repeat; background-size: contain; - border: $form-check-border-width solid color(border, form); + border: config('border-width', $form-check) solid color(border, form); flex-shrink: 0; - font-size: $form-check-font-size; + font-size: config('font-size', $form-check); height: 1em; line-height: 1; - margin-block-start: $form-check-margin-block-start; + margin-block-start: config('margin-block-start', $form-check); transition-duration: transition(duration); transition-property: border, box-shadow; transition-timing-function: transition(timing-function); @@ -61,17 +63,17 @@ } &[type='checkbox'] { - border-radius: $form-check-checkbox-border-radius; + border-radius: config('border-radius', $form-check); } &:focus-visible { @include focus-ring( - $type: $form-check-focus-ring-type, + $type: config('focus-ring-type', $form-check), $border-color: color(border-focus, form), $ring-color: color(check-focus-ring, form), - $box-shadow-type: $form-check-focus-ring-box-shadow-type, - $ring-width: $form-check-focus-ring-width, - $ring-offset: $form-check-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-check), + $ring-width: config('focus-ring-width', $form-check), + $ring-offset: config('focus-ring-offset', $form-check), ); } @@ -109,8 +111,8 @@ } #{$label} { - font-weight: $form-check-font-weight; - line-height: $form-check-line-height; + font-weight: config('font-weight', $form-check); + line-height: config('line-height', $form-check); } } } diff --git a/scss/form/_switch.scss b/scss/form/_switch.scss index 1179a62..9fa9604 100644 --- a/scss/form/_switch.scss +++ b/scss/form/_switch.scss @@ -57,12 +57,12 @@ &:focus-visible { @include focus-ring( - $type: $form-check-focus-ring-type, + $type: config('focus-ring-type', $form-check), $border-color: color(border-focus, form), $ring-color: color(check-focus-ring, form), - $box-shadow-type: $form-check-focus-ring-box-shadow-type, - $ring-width: $form-check-focus-ring-width, - $ring-offset: $form-check-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-check), + $ring-width: config('focus-ring-width', $form-check), + $ring-offset: config('focus-ring-offset', $form-check), ); } From 0334742ec6de3a329844b31d714e58dd8fb0d66e Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 13:02:24 +0100 Subject: [PATCH 17/67] Form control size fixes without custom properties --- scss/form/_check.scss | 12 ++++++++---- scss/form/_control.scss | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/scss/form/_check.scss b/scss/form/_check.scss index 4b99e1c..649b767 100644 --- a/scss/form/_check.scss +++ b/scss/form/_check.scss @@ -28,12 +28,16 @@ @if ($has-sizes) { #{$parent}--sm { + @include generate-variables($form-control-sm); + #{$input} { font-size: config('font-size', $form-check-sm); } } #{$parent}--lg { + @include generate-variables($form-control-lg); + #{$input} { font-size: config('font-size', $form-check-lg); } @@ -68,12 +72,12 @@ &:focus-visible { @include focus-ring( - $type: config('focus-ring-type', $form-check), + $type: config('focus-ring-type', $form-check, false), $border-color: color(border-focus, form), $ring-color: color(check-focus-ring, form), - $box-shadow-type: config('focus-ring-box-shadow-type', $form-check), - $ring-width: config('focus-ring-width', $form-check), - $ring-offset: config('focus-ring-offset', $form-check), + $box-shadow-type: config('focus-ring-box-shadow-type', $form-check, false), + $ring-width: config('focus-ring-width', $form-check, false), + $ring-offset: config('focus-ring-offset', $form-check, false), ); } diff --git a/scss/form/_control.scss b/scss/form/_control.scss index f6c8c31..6ff07a0 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -143,6 +143,18 @@ &[type='color'] { @include generate-variables($form-control-color-sm); } + + @if not map.get($settings, 'css-custom-properties') { + font-size: config('font-size', $form-control-sm); + padding: config('padding', $form-control-sm); + + &[type='color'] { + aspect-ratio: config('aspect-ratio', $form-control-color-sm); + height: config('height', $form-control-color-sm); + padding: config('padding', $form-control-color-sm); + width: config('width', $form-control-color-sm); + } + } } &--lg { @@ -152,6 +164,18 @@ &[type='color'] { @include generate-variables($form-control-color-lg); } + + @if not map.get($settings, 'css-custom-properties') { + font-size: config('font-size', $form-control-lg); + padding: config('padding', $form-control-lg); + + &[type='color'] { + aspect-ratio: config('aspect-ratio', $form-control-color-lg); + height: config('height', $form-control-color-lg); + padding: config('padding', $form-control-color-lg); + width: config('width', $form-control-color-lg); + } + } } } } From 2a8ec68341045b328c2321fae0397695752770e1 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 17:35:04 +0100 Subject: [PATCH 18/67] WIP --- preview/assets/scss/config/_config.scss | 2 +- scss/config/_typography.scss | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 27bae88..12c4d5d 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -24,7 +24,7 @@ $spacer: 1.25rem; 'prefix': 'spruce', 'print': true, 'utilities': true, - 'css-custom-properties': true, + 'css-custom-properties': false, ), $btn: ( 'border-radius': 3em, diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index b87c2c9..85a3a89 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -17,9 +17,9 @@ $typography: map.merge( 'line-height-sm': 1.2, 'size-base': 1rem, 'size-lead': clamp(#{1.35rem, 2vw, 1.15rem}), - 'size-lg': 1.1rem, + 'size-lg': 1.125rem, 'size-ratio': 1.25, - 'size-sm': 0.9rem, + 'size-sm': 0.875rem, 'weight-base': null, 'weight-heading': 700, ), From 865600b790d710061144a2c334862e7f6663d095 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 25 Mar 2023 18:59:30 +0100 Subject: [PATCH 19/67] Form label reorganize --- package-lock.json | 1378 +++++++++++++---------- package.json | 12 +- preview/assets/scss/config/_config.scss | 6 +- scss/config/_form-check.scss | 2 +- scss/config/_form-label.scss | 11 + scss/config/_form.scss | 10 +- scss/config/_index.scss | 1 + scss/form/_button.scss | 2 +- scss/form/_label.scss | 14 +- 9 files changed, 843 insertions(+), 593 deletions(-) create mode 100644 scss/config/_form-label.scss diff --git a/package-lock.json b/package-lock.json index 75eb3e7..d5de192 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,18 +9,18 @@ "version": "1.2.1", "license": "MIT", "devDependencies": { - "autoprefixer": "^10.4.13", - "browser-sync": "^2.27.11", + "autoprefixer": "^10.4.14", + "browser-sync": "^2.29.1", "del-cli": "^5.0.0", - "eslint": "^8.32.0", + "eslint": "^8.36.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.27.5", "npm-run-all": "^4.1.5", "postcss-cli": "^10.1.0", "pug-cli": "^1.0.0-alpha6", - "sass": "^1.57.1", - "stylelint": "^14.16.1", - "stylelint-config-sass-guidelines": "^9.0.1" + "sass": "^1.60.0", + "stylelint": "^15.3.0", + "stylelint-config-sass-guidelines": "^10.0.0" } }, "node_modules/@babel/code-frame": { @@ -58,32 +58,101 @@ "node": ">=6.9.0" } }, - "node_modules/@csstools/selector-specificity": { + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz", + "integrity": "sha512-KP8TicdXpUyeB1NMlbHud/1l39xvLGvqNFWMpG4qC6H1zs9SadGUHe5SO92n/659sDW9aGDvm9AMru0DZkN1Bw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.0.0" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", + "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/@csstools/media-query-list-parser": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.2.tgz", + "integrity": "sha512-8V6JD8Av1HttuClYr1ZBu0LRVe5Nnz4qrv8RppO8mobsX/USBHZy5JQOXYIlpOVhl46nzkx3X5cfH6CqUghjrQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.0.0", + "@csstools/css-tokenizer": "^2.0.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", "dev": true, "engines": { - "node": "^12 || ^14 || >=16" + "node": "^14 || ^16 || >=18" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.2", "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", + "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -121,6 +190,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -284,12 +362,6 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -541,9 +613,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "funding": [ { @@ -556,8 +628,8 @@ } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -678,21 +750,22 @@ } }, "node_modules/browser-sync": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz", - "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", + "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", "dev": true, "dependencies": { - "browser-sync-client": "^2.27.11", - "browser-sync-ui": "^2.27.11", + "browser-sync-client": "^2.29.1", + "browser-sync-ui": "^2.29.1", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", "chokidar": "^3.5.1", "connect": "3.6.6", "connect-history-api-fallback": "^1", "dev-ip": "^1.0.1", "easy-extender": "^2.3.4", - "eazy-logger": "3.1.0", + "eazy-logger": "^4.0.1", "etag": "^1.8.1", "fresh": "^0.5.2", "fs-extra": "3.0.1", @@ -711,7 +784,7 @@ "serve-static": "1.13.2", "server-destroy": "1.0.1", "socket.io": "^4.4.1", - "ua-parser-js": "1.0.2", + "ua-parser-js": "^1.0.33", "yargs": "^17.3.1" }, "bin": { @@ -722,28 +795,27 @@ } }, "node_modules/browser-sync-client": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz", - "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", + "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", "dev": true, "dependencies": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6", - "typescript": "^4.6.2" + "mitt": "^1.1.3" }, "engines": { "node": ">=8.0.0" } }, "node_modules/browser-sync-ui": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz", - "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", + "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", "dev": true, "dependencies": { "async-each-series": "0.1.1", + "chalk": "4.1.2", "connect-history-api-fallback": "^1", "immutable": "^3", "server-destroy": "1.0.1", @@ -751,10 +823,150 @@ "stream-throttle": "^0.1.3" } }, + "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync-ui/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -767,10 +979,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -853,9 +1065,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "version": "1.0.30001469", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", + "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", "dev": true, "funding": [ { @@ -1087,19 +1299,21 @@ } }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" } }, "node_modules/cosmiconfig/node_modules/parse-json": { @@ -1154,6 +1368,19 @@ "node": ">=12.22" } }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1361,12 +1588,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1398,17 +1619,87 @@ } }, "node_modules/eazy-logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", - "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, "dependencies": { - "tfunk": "^4.0.0" + "chalk": "4.1.2" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/eazy-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eazy-logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -1416,9 +1707,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz", + "integrity": "sha512-zx8hqumOqltKsv/MF50yvdAlPF9S/4PXbyfzJS6ZGhbddGkRegdwImmfSVqCkEziYzrIGZ/TlrzBND4FysfkDg==", "dev": true }, "node_modules/emoji-regex": { @@ -1458,15 +1749,15 @@ } }, "node_modules/engine.io-client": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz", - "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", - "ws": "~8.2.3", + "ws": "~8.11.0", "xmlhttprequest-ssl": "~2.0.0" } }, @@ -1493,6 +1784,27 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/engine.io-parser": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", @@ -1649,12 +1961,15 @@ } }, "node_modules/eslint": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", - "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -1665,10 +1980,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -1689,7 +2003,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -1868,33 +2181,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-visitor-keys": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", @@ -2090,9 +2376,9 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", "dev": true, "dependencies": { "acorn": "^8.8.0", @@ -2128,9 +2414,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -2524,9 +2810,9 @@ } }, "node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3336,9 +3622,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "dev": true }, "node_modules/lazy-cache": { @@ -3549,6 +3835,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -3735,9 +4027,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "node_modules/normalize-package-data": { @@ -4331,19 +4623,25 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", - "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + } + ], "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.19" } }, "node_modules/postcss-selector-parser": { @@ -4359,15 +4657,6 @@ "node": ">=4" } }, - "node_modules/postcss-sorting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", - "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", - "dev": true, - "peerDependencies": { - "postcss": "^8.3.9" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -4864,18 +5153,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -5014,18 +5291,6 @@ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", "dev": true }, - "node_modules/rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dev": true, - "dependencies": { - "symbol-observable": "1.0.1" - }, - "engines": { - "npm": ">=2.0.0" - } - }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -5047,9 +5312,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.57.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", - "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", + "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -5355,14 +5620,14 @@ "dev": true }, "node_modules/socket.io-client": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz", - "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.2.3", + "engine.io-client": "~6.4.0", "socket.io-parser": "~4.2.1" }, "engines": { @@ -5654,16 +5919,20 @@ "dev": true }, "node_modules/stylelint": { - "version": "14.16.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", - "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.3.0.tgz", + "integrity": "sha512-9UYBYk7K9rtlKcTUDZrtntE840sZM00qyYBQHHe7tjwMNUsPsGvR6Fd43IxHEAhRrDLzpy3TVaHb6CReBB3eFg==", "dev": true, "dependencies": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.0.1", + "@csstools/css-tokenizer": "^2.1.0", + "@csstools/media-query-list-parser": "^2.0.1", + "@csstools/selector-specificity": "^2.1.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", + "cosmiconfig": "^8.1.0", "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", "debug": "^4.3.4", "fast-glob": "^3.2.12", "fastest-levenshtein": "^1.0.16", @@ -5672,17 +5941,17 @@ "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.2.0", - "ignore": "^5.2.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.19", + "postcss": "^8.4.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", @@ -5692,17 +5961,17 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.0" }, "bin": { "stylelint": "bin/stylelint.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -5710,40 +5979,26 @@ } }, "node_modules/stylelint-config-sass-guidelines": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-9.0.1.tgz", - "integrity": "sha512-N06PsVsrgKijQ3YT5hqKA7x3NUkgELTRI1cbWMqcYiCGG6MjzvNk6Cb5YYA1PrvrksBV76BvY9P9bAswojVMqA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-10.0.0.tgz", + "integrity": "sha512-+Rr2Dd4b72CWA4qoj1Kk+y449nP/WJsrD0nzQAWkmPPIuyVcy2GMIcfNr0Z8JJOLjRvtlkKxa49FCNXMePBikQ==", "dev": true, "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-order": "^5.0.0", - "stylelint-scss": "^4.0.0" + "postcss-scss": "^4.0.6", + "stylelint-scss": "^4.4.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.13.1 || >=16.13.0 || >=18.0.0" }, "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^14.0.1" - } - }, - "node_modules/stylelint-order": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", - "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", - "dev": true, - "dependencies": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" - }, - "peerDependencies": { - "stylelint": "^14.0.0" + "postcss": "^8.4.21", + "stylelint": "^15.2.0" } }, "node_modules/stylelint-scss": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.1.0.tgz", - "integrity": "sha512-BNYTo7MMamhFOlcaAWp2dMpjg6hPyM/FFqfDIYzmYVLMmQJqc8lWRIiTqP4UX5bresj9Vo0dKC6odSh43VP2NA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.5.0.tgz", + "integrity": "sha512-/+rQ8FePOiwT5xblOHkujYzRYfSjmE6HYhLpqJShL+9wH6/HaAVj4mWpXlpEsM3ZgIpOblG9Y+/BycSJzWgjNw==", "dev": true, "dependencies": { "lodash": "^4.17.21", @@ -5753,7 +6008,7 @@ "postcss-value-parser": "^4.1.0" }, "peerDependencies": { - "stylelint": "^14.0.0" + "stylelint": "^14.5.1 || ^15.0.0" } }, "node_modules/stylelint/node_modules/balanced-match": { @@ -6061,16 +6316,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/supports-hyperlinks/node_modules/has-flag": { @@ -6112,15 +6367,6 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, - "node_modules/symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/table": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", @@ -6165,71 +6411,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/tfunk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", - "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "dlv": "^1.1.3" - } - }, - "node_modules/tfunk/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/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, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/thenby": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", @@ -6346,23 +6527,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.34.tgz", + "integrity": "sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew==", "dev": true, "funding": [ { @@ -6725,16 +6893,16 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", + "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/ws": { @@ -6782,15 +6950,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/yargs": { "version": "17.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", @@ -6867,22 +7026,57 @@ "js-tokens": "^4.0.0" } }, - "@csstools/selector-specificity": { + "@csstools/css-parser-algorithms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz", + "integrity": "sha512-KP8TicdXpUyeB1NMlbHud/1l39xvLGvqNFWMpG4qC6H1zs9SadGUHe5SO92n/659sDW9aGDvm9AMru0DZkN1Bw==", + "dev": true, + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", + "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", + "dev": true + }, + "@csstools/media-query-list-parser": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.2.tgz", + "integrity": "sha512-8V6JD8Av1HttuClYr1ZBu0LRVe5Nnz4qrv8RppO8mobsX/USBHZy5JQOXYIlpOVhl46nzkx3X5cfH6CqUghjrQ==", + "dev": true, + "requires": {} + }, + "@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", "dev": true, "requires": {} }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", + "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -6908,6 +7102,12 @@ } } }, + "@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true + }, "@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -7043,12 +7243,6 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -7234,13 +7428,13 @@ "dev": true }, "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -7334,21 +7528,22 @@ } }, "browser-sync": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz", - "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", + "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", "dev": true, "requires": { - "browser-sync-client": "^2.27.11", - "browser-sync-ui": "^2.27.11", + "browser-sync-client": "^2.29.1", + "browser-sync-ui": "^2.29.1", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", "chokidar": "^3.5.1", "connect": "3.6.6", "connect-history-api-fallback": "^1", "dev-ip": "^1.0.1", "easy-extender": "^2.3.4", - "eazy-logger": "3.1.0", + "eazy-logger": "^4.0.1", "etag": "^1.8.1", "fresh": "^0.5.2", "fs-extra": "3.0.1", @@ -7367,47 +7562,148 @@ "serve-static": "1.13.2", "server-destroy": "1.0.1", "socket.io": "^4.4.1", - "ua-parser-js": "1.0.2", + "ua-parser-js": "^1.0.33", "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browser-sync-client": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz", - "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", + "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", "dev": true, "requires": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6", - "typescript": "^4.6.2" + "mitt": "^1.1.3" } }, "browser-sync-ui": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz", - "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", + "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", "dev": true, "requires": { "async-each-series": "0.1.1", + "chalk": "4.1.2", "connect-history-api-fallback": "^1", "immutable": "^3", "server-destroy": "1.0.1", "socket.io-client": "^4.4.1", "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "bs-recipes": { @@ -7463,9 +7759,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "version": "1.0.30001469", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", + "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", "dev": true }, "center-align": { @@ -7649,16 +7945,15 @@ } }, "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "dependencies": { "parse-json": { @@ -7702,6 +7997,16 @@ "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", "dev": true }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -7843,12 +8148,6 @@ "path-type": "^4.0.0" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -7874,12 +8173,63 @@ } }, "eazy-logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", - "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, "requires": { - "tfunk": "^4.0.0" + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "ee-first": { @@ -7889,9 +8239,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz", + "integrity": "sha512-zx8hqumOqltKsv/MF50yvdAlPF9S/4PXbyfzJS6ZGhbddGkRegdwImmfSVqCkEziYzrIGZ/TlrzBND4FysfkDg==", "dev": true }, "emoji-regex": { @@ -7942,15 +8292,15 @@ } }, "engine.io-client": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz", - "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", - "ws": "~8.2.3", + "ws": "~8.11.0", "xmlhttprequest-ssl": "~2.0.0" }, "dependencies": { @@ -7968,6 +8318,13 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} } } }, @@ -8080,12 +8437,15 @@ "dev": true }, "eslint": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", - "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8096,10 +8456,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -8120,7 +8479,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -8393,23 +8751,6 @@ "estraverse": "^5.2.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "eslint-visitor-keys": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", @@ -8417,9 +8758,9 @@ "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -8443,9 +8784,9 @@ } }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -8734,9 +9075,9 @@ } }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -9325,9 +9666,9 @@ "dev": true }, "known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "dev": true }, "lazy-cache": { @@ -9488,6 +9829,12 @@ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -9629,9 +9976,9 @@ "dev": true }, "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "normalize-package-data": { @@ -10031,9 +10378,9 @@ "requires": {} }, "postcss-scss": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", - "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", "dev": true, "requires": {} }, @@ -10047,13 +10394,6 @@ "util-deprecate": "^1.0.2" } }, - "postcss-sorting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", - "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", - "dev": true, - "requires": {} - }, "postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -10448,12 +10788,6 @@ "functions-have-names": "^1.2.2" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -10544,15 +10878,6 @@ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", "dev": true }, - "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - } - }, "safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -10571,9 +10896,9 @@ "dev": true }, "sass": { - "version": "1.57.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", - "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", + "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -10841,14 +11166,14 @@ "dev": true }, "socket.io-client": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz", - "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.2.3", + "engine.io-client": "~6.4.0", "socket.io-parser": "~4.2.1" }, "dependencies": { @@ -11048,16 +11373,20 @@ "dev": true }, "stylelint": { - "version": "14.16.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", - "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.3.0.tgz", + "integrity": "sha512-9UYBYk7K9rtlKcTUDZrtntE840sZM00qyYBQHHe7tjwMNUsPsGvR6Fd43IxHEAhRrDLzpy3TVaHb6CReBB3eFg==", "dev": true, "requires": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.0.1", + "@csstools/css-tokenizer": "^2.1.0", + "@csstools/media-query-list-parser": "^2.0.1", + "@csstools/selector-specificity": "^2.1.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", + "cosmiconfig": "^8.1.0", "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", "debug": "^4.3.4", "fast-glob": "^3.2.12", "fastest-levenshtein": "^1.0.16", @@ -11066,17 +11395,17 @@ "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.2.0", - "ignore": "^5.2.1", + "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.19", + "postcss": "^8.4.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", @@ -11086,11 +11415,11 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.0" }, "dependencies": { "balanced-match": { @@ -11309,30 +11638,19 @@ } }, "stylelint-config-sass-guidelines": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-9.0.1.tgz", - "integrity": "sha512-N06PsVsrgKijQ3YT5hqKA7x3NUkgELTRI1cbWMqcYiCGG6MjzvNk6Cb5YYA1PrvrksBV76BvY9P9bAswojVMqA==", - "dev": true, - "requires": { - "postcss-scss": "^4.0.2", - "stylelint-order": "^5.0.0", - "stylelint-scss": "^4.0.0" - } - }, - "stylelint-order": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", - "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-10.0.0.tgz", + "integrity": "sha512-+Rr2Dd4b72CWA4qoj1Kk+y449nP/WJsrD0nzQAWkmPPIuyVcy2GMIcfNr0Z8JJOLjRvtlkKxa49FCNXMePBikQ==", "dev": true, "requires": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" + "postcss-scss": "^4.0.6", + "stylelint-scss": "^4.4.0" } }, "stylelint-scss": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.1.0.tgz", - "integrity": "sha512-BNYTo7MMamhFOlcaAWp2dMpjg6hPyM/FFqfDIYzmYVLMmQJqc8lWRIiTqP4UX5bresj9Vo0dKC6odSh43VP2NA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.5.0.tgz", + "integrity": "sha512-/+rQ8FePOiwT5xblOHkujYzRYfSjmE6HYhLpqJShL+9wH6/HaAVj4mWpXlpEsM3ZgIpOblG9Y+/BycSJzWgjNw==", "dev": true, "requires": { "lodash": "^4.17.21", @@ -11352,9 +11670,9 @@ } }, "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -11390,12 +11708,6 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", - "dev": true - }, "table": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", @@ -11435,58 +11747,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "tfunk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", - "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "dlv": "^1.1.3" - }, - "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 - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.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" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "thenby": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", @@ -11575,16 +11835,10 @@ "is-typed-array": "^1.1.9" } }, - "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true - }, "ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.34.tgz", + "integrity": "sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew==", "dev": true }, "uglify-js": { @@ -11847,9 +12101,9 @@ "dev": true }, "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", + "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -11881,12 +12135,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, "yargs": { "version": "17.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", diff --git a/package.json b/package.json index b5fd939..da24379 100644 --- a/package.json +++ b/package.json @@ -38,17 +38,17 @@ }, "license": "MIT", "devDependencies": { - "autoprefixer": "^10.4.13", - "browser-sync": "^2.27.11", + "autoprefixer": "^10.4.14", + "browser-sync": "^2.29.1", "del-cli": "^5.0.0", - "eslint": "^8.32.0", + "eslint": "^8.36.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.27.5", "npm-run-all": "^4.1.5", "postcss-cli": "^10.1.0", "pug-cli": "^1.0.0-alpha6", - "sass": "^1.57.1", - "stylelint": "^14.16.1", - "stylelint-config-sass-guidelines": "^9.0.1" + "sass": "^1.60.0", + "stylelint": "^15.3.0", + "stylelint-config-sass-guidelines": "^10.0.0" } } diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 12c4d5d..4cc2da4 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -24,10 +24,11 @@ $spacer: 1.25rem; 'prefix': 'spruce', 'print': true, 'utilities': true, - 'css-custom-properties': false, + 'css-custom-properties': true, ), $btn: ( 'border-radius': 3em, + 'font-weight': 400, 'text-transform': none, ), $btn-lg: ( @@ -37,6 +38,9 @@ $spacer: 1.25rem; $form-control: ( 'font-weight': 400, ), + $typography: ( + 'weight-base': 300, + ), // $btn-text-transform: uppercase, // $form-check-font-size-lg: 1.35rem, // $form-check-font-weight: 400, diff --git a/scss/config/_form-check.scss b/scss/config/_form-check.scss index b391b94..bdc4a09 100644 --- a/scss/config/_form-check.scss +++ b/scss/config/_form-check.scss @@ -9,7 +9,7 @@ $form-check: map.merge( 'border-width': 1px, 'border-radius': map.get($display, border-radius-sm), 'font-size': 1.125rem, - 'font-weight': $form-label-font-weight, + 'font-weight': map.get($form-check, 'font-weight'), 'line-height': map.get($typography, 'line-height-heading'), 'margin-block-start': 0.1em, 'vertical-alignment': center, diff --git a/scss/config/_form-label.scss b/scss/config/_form-label.scss new file mode 100644 index 0000000..e10a553 --- /dev/null +++ b/scss/config/_form-label.scss @@ -0,0 +1,11 @@ +@use 'sass:map'; + +$form-label: () !default; +$form-label: map.merge( + ( + 'font-size': null, + 'font-style': null, + 'font-weight': null, + ), + $form-label +); diff --git a/scss/config/_form.scss b/scss/config/_form.scss index 8e00b7e..3d8dac5 100644 --- a/scss/config/_form.scss +++ b/scss/config/_form.scss @@ -3,13 +3,6 @@ @use 'spacer' as *; @use 'display' as *; -$form-label-font-size: null !default; -$form-label-font-size-sm: map.get($typography, 'size-sm') !default; -$form-label-font-size-lg: map.get($typography, 'size-lg') !default; - -$form-label-font-style: null !default; -$form-label-font-weight: null !default; - $fieldset-gap-size: map.get($spacers, s) !default; $legend-font-size: clamp(#{map.get($font-sizes, 'h5')}, 5vw, #{map.get($font-sizes, 'h4')}) !default; @@ -25,7 +18,8 @@ $form-switch-border-width: 1px !default; $form-switch-font-size: 1.125rem !default; $form-switch-font-size-sm: map.get($typography, 'size-base') !default; $form-switch-font-size-lg: map.get($typography, 'size-lg') !default; -$form-switch-font-weight: $form-label-font-weight !default; +// $form-switch-font-weight: map.get($form-label, 'font-weight') !default; +$form-switch-font-weight: 1rem !default; $form-switch-line-height: map.get($typography, 'line-height-heading') !default; $form-switch-margin-block-start: 0.25em !default; diff --git a/scss/config/_index.scss b/scss/config/_index.scss index 1708d97..6d50ee8 100644 --- a/scss/config/_index.scss +++ b/scss/config/_index.scss @@ -7,6 +7,7 @@ @forward 'form'; @forward 'form-control'; @forward 'form-check'; +@forward 'form-label'; @forward 'table'; @forward 'layout'; @forward 'transition'; diff --git a/scss/form/_button.scss b/scss/form/_button.scss index eebad77..4f649b1 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -10,7 +10,7 @@ $has-sizes: true, ) { #{$selector}#{$pseudo-selector} { - @include generate-variables($btn, ('focus-', 'font-')); + @include generate-variables($btn, ('focus-')); align-items: center; border-radius: config('border-radius', $btn); diff --git a/scss/form/_label.scss b/scss/form/_label.scss index e60c0d7..7823739 100644 --- a/scss/form/_label.scss +++ b/scss/form/_label.scss @@ -5,17 +5,9 @@ @mixin generate-form-label { .form-label { color: color(label, form); - font-size: $form-label-font-size; - font-style: $form-label-font-style; - font-weight: $form-label-font-weight; + font-size: map.get($form-label, 'font-size'); + font-style: map.get($form-label, 'font-style'); + font-weight: map.get($form-label, 'font-weight'); line-height: map.get($typography, 'line-height-md'); - - &--sm { - font-size: $form-label-font-size-sm; - } - - &--lg { - font-size: $form-label-font-size-lg; - } } } From 5d7539ec7b3e3fd4fa3a82705e2c43379c490761 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 26 Mar 2023 13:21:01 +0200 Subject: [PATCH 20/67] Rest of the form elements --- preview/assets/scss/config/_dark-mode.scss | 2 +- scss/config/_form-description.scss | 11 ++++++ scss/config/_form-fieldset.scss | 13 ++++++ scss/config/_form-file.scss | 9 +++++ scss/config/_form-icon.scss | 15 +++++++ scss/config/_form-range.scss | 17 ++++++++ scss/config/_form-row.scss | 9 +++++ scss/config/_form-select.scss | 12 ++++++ scss/config/_form-switch.scss | 31 +++++++++++++++ scss/config/_form.scss | 46 ---------------------- scss/config/_index.scss | 8 ++++ scss/form/_check.scss | 6 +-- scss/form/_control.scss | 22 +++++------ scss/form/_description.scss | 11 ++++-- scss/form/_fieldset.scss | 7 ++-- scss/form/_file.scss | 6 +-- scss/form/_range.scss | 39 +++++++++--------- scss/form/_row.scss | 4 +- scss/form/_switch.scss | 31 +++++++++------ 19 files changed, 197 insertions(+), 102 deletions(-) create mode 100644 scss/config/_form-description.scss create mode 100644 scss/config/_form-fieldset.scss create mode 100644 scss/config/_form-file.scss create mode 100644 scss/config/_form-icon.scss create mode 100644 scss/config/_form-range.scss create mode 100644 scss/config/_form-row.scss create mode 100644 scss/config/_form-select.scss create mode 100644 scss/config/_form-switch.scss diff --git a/preview/assets/scss/config/_dark-mode.scss b/preview/assets/scss/config/_dark-mode.scss index 87cf8a4..39e857e 100644 --- a/preview/assets/scss/config/_dark-mode.scss +++ b/preview/assets/scss/config/_dark-mode.scss @@ -10,7 +10,7 @@ select.form-control:not([multiple]):not([size]) { @include spruce.field-icon( - spruce.$select-icon, + spruce.config('select', spruce.$form-icon, false), spruce.color(select-foreground, form, true, spruce.$dark-colors) ); } diff --git a/scss/config/_form-description.scss b/scss/config/_form-description.scss new file mode 100644 index 0000000..28e9d8b --- /dev/null +++ b/scss/config/_form-description.scss @@ -0,0 +1,11 @@ +@use 'sass:map'; + +$form-description: () !default; +$form-description: map.merge( + ( + 'font-size': null, + 'font-style': null, + 'font-weight': null, + ), + $form-description +); diff --git a/scss/config/_form-fieldset.scss b/scss/config/_form-fieldset.scss new file mode 100644 index 0000000..feab253 --- /dev/null +++ b/scss/config/_form-fieldset.scss @@ -0,0 +1,13 @@ +@use 'sass:map'; +@use 'spacer' as *; +@use 'typography' as *; + +$form-fieldset: () !default; +$form-fieldset: map.merge( + ( + 'gap': map.get($spacers, s), + 'legend-font-size': clamp(#{map.get($font-sizes, 'h5')}, 5vw, #{map.get($font-sizes, 'h4')}), + 'legend-font-weight': 700, + ), + $form-fieldset +); diff --git a/scss/config/_form-file.scss b/scss/config/_form-file.scss new file mode 100644 index 0000000..f1e7792 --- /dev/null +++ b/scss/config/_form-file.scss @@ -0,0 +1,9 @@ +@use 'sass:map'; + +$form-file: () !default; +$form-file: map.merge( + ( + 'background': 'primary', + ), + $form-file +); diff --git a/scss/config/_form-icon.scss b/scss/config/_form-icon.scss new file mode 100644 index 0000000..0d0a8be --- /dev/null +++ b/scss/config/_form-icon.scss @@ -0,0 +1,15 @@ +@use 'sass:map'; + +$form-icon: () !default; +$form-icon: map.merge( + ( + 'checkbox-indeterminate': '', + 'checkbox': '', + 'invalid': '', + 'radio': '', + 'select': '', + 'switch': '', + 'valid': '', + ), + $form-icon +); diff --git a/scss/config/_form-range.scss b/scss/config/_form-range.scss new file mode 100644 index 0000000..db888c8 --- /dev/null +++ b/scss/config/_form-range.scss @@ -0,0 +1,17 @@ +@use 'sass:map'; + +$form-range: () !default; +$form-range: map.merge( + ( + 'focus-ring-box-shadow-type': outside, + 'focus-ring-offset': 2px, + 'focus-ring-type': outline, + 'focus-ring-width': 2px, + 'thumb-border-radius': 0.5rem, + 'thumb-height': 1rem, + 'thumb-width': 1rem, + 'track-border-radius': 0.15rem, + 'track-height': 0.25rem, + ), + $form-range +); diff --git a/scss/config/_form-row.scss b/scss/config/_form-row.scss new file mode 100644 index 0000000..adac5cd --- /dev/null +++ b/scss/config/_form-row.scss @@ -0,0 +1,9 @@ +@use 'sass:map'; + +$form-row: () !default; +$form-row: map.merge( + ( + 'col-width': 20ch, + ), + $form-row +); diff --git a/scss/config/_form-select.scss b/scss/config/_form-select.scss new file mode 100644 index 0000000..dfd850d --- /dev/null +++ b/scss/config/_form-select.scss @@ -0,0 +1,12 @@ + +@use 'sass:map'; + +$form-select: () !default; +$form-select: map.merge( + ( + 'icon-width': 1.25em, + 'icon-right-offset': 0.5em, + 'padding-right': calc(0.75em + 1.25em), + ), + $form-select +); diff --git a/scss/config/_form-switch.scss b/scss/config/_form-switch.scss new file mode 100644 index 0000000..8e7c807 --- /dev/null +++ b/scss/config/_form-switch.scss @@ -0,0 +1,31 @@ +@use 'sass:map'; +@use 'typography' as *; +@use 'form-label' as *; + +$form-switch: () !default; +$form-switch: map.merge( + ( + 'border-width': 1px, + 'font-size': 1.125rem, + 'font-weight': map.get($form-label, 'font-weight'), + 'line-height': map.get($typography, 'line-height-heading'), + 'margin-block-start': 0.25em, + ), + $form-switch +); + +$form-switch-sm: () !default; +$form-switch-sm: map.merge( + ( + 'font-size': map.get($typography, 'size-base'), + ), + $form-switch-sm +); + +$form-switch-lg: () !default; +$form-switch-lg: map.merge( + ( + 'font-size': map.get($typography, 'size-lg'), + ), + $form-switch-lg +); diff --git a/scss/config/_form.scss b/scss/config/_form.scss index 3d8dac5..a5caa05 100644 --- a/scss/config/_form.scss +++ b/scss/config/_form.scss @@ -3,49 +3,3 @@ @use 'spacer' as *; @use 'display' as *; -$fieldset-gap-size: map.get($spacers, s) !default; - -$legend-font-size: clamp(#{map.get($font-sizes, 'h5')}, 5vw, #{map.get($font-sizes, 'h4')}) !default; -$legend-font-weight: 700 !default; - -$form-description-font-size: null !default; -$form-description-font-style: null !default; -$form-description-font-weight: null !default; - -$form-row-col-width: 20ch !default; - -$form-switch-border-width: 1px !default; -$form-switch-font-size: 1.125rem !default; -$form-switch-font-size-sm: map.get($typography, 'size-base') !default; -$form-switch-font-size-lg: map.get($typography, 'size-lg') !default; -// $form-switch-font-weight: map.get($form-label, 'font-weight') !default; -$form-switch-font-weight: 1rem !default; -$form-switch-line-height: map.get($typography, 'line-height-heading') !default; -$form-switch-margin-block-start: 0.25em !default; - -$form-file-background: primary !default; - -$form-range-track-height: 0.25rem !default; -$form-range-track-broder-radius: 0.15rem !default; -$form-range-thumb-height: 1rem !default; -$form-range-thumb-width: 1rem !default; -$form-range-thumb-broder-radius: 0.5rem !default; - -$form-range-focus-ring-type: outline !default; -$form-range-focus-ring-box-shadow-type: outside !default; -$form-range-focus-ring-width: 2px !default; -$form-range-focus-ring-offset: 2px !default; - -$select-icon-width: 1.25em !default; -$select-icon-right-offset: 0.5em !default; -$select-padding-right: calc(0.75em + $select-icon-width) !default; -$select-icon: '' !default; - -$form-radio-icon: '' !default; -$form-checkbox-icon: '' !default; -$form-checkbox-indeterminate-icon: '' !default; - -$form-switch-icon: '' !default; - -$form-valid-icon: '' !default; -$form-invalid-icon: '' !default; diff --git a/scss/config/_index.scss b/scss/config/_index.scss index 6d50ee8..59fb4a0 100644 --- a/scss/config/_index.scss +++ b/scss/config/_index.scss @@ -6,6 +6,14 @@ @forward 'button'; @forward 'form'; @forward 'form-control'; +@forward 'form-description'; +@forward 'form-fieldset'; +@forward 'form-file'; +@forward 'form-icon'; +@forward 'form-range'; +@forward 'form-row'; +@forward 'form-select'; +@forward 'form-switch'; @forward 'form-check'; @forward 'form-label'; @forward 'table'; diff --git a/scss/form/_check.scss b/scss/form/_check.scss index 649b767..8187753 100644 --- a/scss/form/_check.scss +++ b/scss/form/_check.scss @@ -86,17 +86,17 @@ border-color: color(check-background, form); &[type='radio'] { - @include field-icon($form-radio-icon, color(check-foreground, form, true)); + @include field-icon(config('radio', $form-icon, false), color(check-foreground, form, true)); } &[type='checkbox'] { - @include field-icon($form-checkbox-icon, color(check-foreground, form, true)); + @include field-icon(config('checkbox', $form-icon, false), color(check-foreground, form, true)); } } &:indeterminate { &[type='checkbox'] { - @include field-icon($form-checkbox-indeterminate-icon, color(check-foreground, form, true)); + @include field-icon(config('checkbox-indeterminate', $form-icon, false), color(check-foreground, form, true)); background-color: color(check-background, form); border-color: color(check-background, form); } diff --git a/scss/form/_control.scss b/scss/form/_control.scss index 6ff07a0..f684a09 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -91,18 +91,18 @@ @if ($has-states) { &--valid, &--invalid { - background-position: center right $select-icon-right-offset; + background-position: center right config('icon-right-offset', $form-select, false); background-repeat: no-repeat; - background-size: $select-icon-width auto; - padding-inline-end: $select-padding-right; + background-size: config('icon-width', $form-select, false) auto; + padding-inline-end: config('padding-right', $form-select, false); html[dir='rtl'] & { - background-position: center left $select-icon-right-offset; + background-position: center left config('icon-right-offset', $form-select, false); } } &--valid { - @include field-icon($form-valid-icon, color(success, alert, true)); + @include field-icon(config('valid', $form-icon, false), color(success, alert, true)); border-color: color(success, alert); &:focus { @@ -118,7 +118,7 @@ } &--invalid { - @include field-icon($form-invalid-icon, color(danger, alert, true)); + @include field-icon(config('invalid', $form-icon, false), color(danger, alert, true)); border-color: color(danger, alert); &:focus { @@ -184,14 +184,14 @@ @if ($has-select) { select#{$selector} { &:not([multiple]):not([size]) { - @include field-icon($select-icon, color(select-foreground, form, true)); - background-position: center right $select-icon-right-offset; + @include field-icon(config('select', $form-icon, false), color(select-foreground, form, true)); + background-position: center right config('icon-right-offset', $form-select, false); background-repeat: no-repeat; - background-size: $select-icon-width auto; - padding-inline-end: $select-padding-right; + background-size: config('icon-width', $form-select, false) auto; + padding-inline-end: config('padding-right', $form-select, false); html[dir='rtl'] & { - background-position: center left $select-icon-right-offset; + background-position: center left config('icon-right-offset', $form-select, false); } } } diff --git a/scss/form/_description.scss b/scss/form/_description.scss index 5c6bf87..2a14a2f 100644 --- a/scss/form/_description.scss +++ b/scss/form/_description.scss @@ -1,14 +1,17 @@ @use 'sass:map'; @use '../function' as *; +@use '../mixin' as *; @use '../config' as *; @mixin generate-form-description { .form-description { + @include generate-variables($form-description); + color: color(text, form); display: block; - font-size: $form-description-font-size; - font-style: $form-description-font-style; - font-weight: $form-description-font-weight; - line-height: map.get($typography, 'line-height-md'); + font-size: config('font-size', $form-description); + font-style: config('font-style', $form-description); + font-weight: config('font-weight', $form-description); + line-height: config('line-height-md', $typography); } } diff --git a/scss/form/_fieldset.scss b/scss/form/_fieldset.scss index ffac606..40da12f 100644 --- a/scss/form/_fieldset.scss +++ b/scss/form/_fieldset.scss @@ -4,7 +4,8 @@ @mixin generate-fieldset { fieldset { - @include layout-stack($fieldset-gap-size); + @include generate-variables($form-fieldset); + @include layout-stack(config('gap', $form-fieldset)); border: 0; margin: 0; @@ -17,7 +18,7 @@ legend { color: color(legend, form); - font-size: $legend-font-size; - font-weight: $legend-font-weight; + font-size: config('legend-font-size', $form-fieldset); + font-weight: config('legend-font-weight', $form-fieldset); } } diff --git a/scss/form/_file.scss b/scss/form/_file.scss index 6deedc4..6204906 100644 --- a/scss/form/_file.scss +++ b/scss/form/_file.scss @@ -17,12 +17,12 @@ &:focus-within#{$pseudo-selector} { background-color: transparent; - box-shadow: 0 0 0 2px color($form-file-background + '-background', btn) inset; - color: color($form-file-background + '-background', btn); + box-shadow: 0 0 0 2px color(config('background', $form-file, false) + '-background', btn) inset; + color: color(config('background', $form-file, false) + '-background', btn); } &#{$pseudo-selector} { - @include btn-variant($form-file-background, false); + @include btn-variant(config('background', $form-file, false), false); margin-inline-end: spacer(s); } } diff --git a/scss/form/_range.scss b/scss/form/_range.scss index dc72bab..9fabf97 100644 --- a/scss/form/_range.scss +++ b/scss/form/_range.scss @@ -4,62 +4,63 @@ @mixin generate-form-range { .form-range { + @include generate-variables($form-range); appearance: none; - margin-block-start: calc(#{$form-range-thumb-height} / 2 - #{$form-range-track-height} / 2); + margin-block-start: calc(#{config('thumb-height', $form-range)} / 2 - #{config('track-height', $form-range)} / 2); &:focus-visible { outline: none; &::-webkit-slider-thumb { @include focus-ring( - $type: $form-range-focus-ring-type, + $type: config('focus-ring-type', $form-range, false), $border-color: null, $ring-color: color(range-thumb-focus-ring, form), - $box-shadow-type: $form-range-focus-ring-box-shadow-type, - $ring-width: $form-range-focus-ring-width, - $ring-offset: $form-range-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-range, false), + $ring-width: config('focus-ring-width', $form-range, false), + $ring-offset: config('focus-ring-offset', $form-range, false), ); } &::-moz-range-thumb { @include focus-ring( - $type: $form-range-focus-ring-type, + $type: config('focus-ring-type', $form-range, false), $border-color: null, $ring-color: color(range-thumb-focus-ring, form), - $box-shadow-type: $form-range-focus-ring-box-shadow-type, - $ring-width: $form-range-focus-ring-width, - $ring-offset: $form-range-focus-ring-offset + $box-shadow-type: config('focus-ring-box-shadow-type', $form-range, false), + $ring-width: config('focus-ring-width', $form-range, false), + $ring-offset: config('focus-ring-offset', $form-range, false), ); } } &::-webkit-slider-runnable-track { background-color: color(range-track-background, form); - border-radius: $form-range-track-broder-radius; - height: $form-range-track-height; + border-radius: config('track-border-radius', $form-range); + height: config('track-height', $form-range); } &::-moz-range-track { background-color: color(range-track-background, form); - border-radius: $form-range-track-broder-radius; - height: $form-range-track-height; + border-radius: config('track-border-radius', $form-range); + height: config('track-height', $form-range); } &::-webkit-slider-thumb { appearance: none; background-color: color(range-thumb-background, form); - border-radius: $form-range-thumb-broder-radius; - height: $form-range-thumb-height; - margin-block-start: calc(#{$form-range-track-height} / 2 - #{$form-range-thumb-height} / 2); + border-radius: config('thumb-border-radius', $form-range); + height: config('thumb-height', $form-range); + margin-block-start: calc(#{config('track-height', $form-range)} / 2 - #{config('thumb-height', $form-range)} / 2); width: 1rem; } &::-moz-range-thumb { background-color: color(range-thumb-background, form); border: 0; /*Removes extra border that FF applies*/ - border-radius: $form-range-thumb-broder-radius; - height: $form-range-thumb-height; - width: $form-range-thumb-width; + border-radius: config('thumb-border-radius', $form-range); + height: config('thumb-height', $form-range); + width: config('thumb-width', $form-range); } } } diff --git a/scss/form/_row.scss b/scss/form/_row.scss index 1dc3f5d..0e5af25 100644 --- a/scss/form/_row.scss +++ b/scss/form/_row.scss @@ -4,8 +4,10 @@ @mixin generate-form-row { .form-row { + @include generate-variables($form-row); + &--mixed { - --col-width: #{$form-row-col-width}; + --col-width: #{config('col-width', $form-row)}; @include layout-flex(s); } diff --git a/scss/form/_switch.scss b/scss/form/_switch.scss index 9fa9604..1aa0f17 100644 --- a/scss/form/_switch.scss +++ b/scss/form/_switch.scss @@ -23,33 +23,42 @@ @if ($has-sizes) { #{$parent}--sm { - #{$input} { - font-size: $form-switch-font-size-sm; + @include generate-variables($form-switch-sm, ('focus-')); + + @if not map.get($settings, 'css-custom-properties') { + #{$input} { + font-size: config('font-size', $form-switch-sm); + } } } #{$parent}--lg { - #{$input} { - font-size: $form-switch-font-size-lg; + @include generate-variables($form-switch-lg, ('focus-')); + + @if not map.get($settings, 'css-custom-properties') { + #{$input} { + font-size: config('font-size', $form-switch-lg); + } } } } @at-root { #{$input} { - @include field-icon($form-switch-icon, color(border, form, true)); + @include generate-variables($form-switch, ('focus-')); + @include field-icon(config('switch', $form-icon, false), color(border, form, true)); appearance: none; background-color: color(background, form); background-position: left center; background-repeat: no-repeat; background-size: contain; - border: $form-switch-border-width solid color(border, form); + border: config('border-width', $form-switch) solid color(border, form); border-radius: 2em; flex-shrink: 0; - font-size: $form-switch-font-size; + font-size: config('font-size', $form-switch); height: 1em; line-height: 1; - margin-block-start: $form-switch-margin-block-start; + margin-block-start: config('margin-block-start', $form-switch); transition-duration: transition(duration); transition-property: background-position, border, box-shadow; transition-timing-function: transition(timing-function); @@ -67,7 +76,7 @@ } &:checked { - @include field-icon($form-switch-icon, color(check-foreground, form, true)); + @include field-icon(config('switch', $form-icon, false), color(check-foreground, form, true)); background-color: color(check-background, form); background-position: right center; border-color: color(check-background, form); @@ -94,8 +103,8 @@ } #{$label} { - font-weight: $form-switch-font-weight; - line-height: $form-switch-line-height; + font-weight: config('font-weight', $form-switch); + line-height: config('line-height', $form-switch); } } } From 2becffbd827de7d2b70398db0e7f4460c9307e90 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 26 Mar 2023 13:36:06 +0200 Subject: [PATCH 21/67] Reorganize form files under a folder --- scss/config/_form.scss | 5 ----- scss/config/_index.scss | 11 ----------- scss/config/{_form-check.scss => form/_check.scss} | 5 ++--- .../config/{_form-control.scss => form/_control.scss} | 5 +++-- .../_description.scss} | 0 .../{_form-fieldset.scss => form/_fieldset.scss} | 4 ++-- scss/config/{_form-file.scss => form/_file.scss} | 0 scss/config/{_form-icon.scss => form/_icon.scss} | 0 scss/config/form/_index.scss | 11 +++++++++++ scss/config/{_form-label.scss => form/_label.scss} | 0 scss/config/{_form-range.scss => form/_range.scss} | 0 scss/config/{_form-row.scss => form/_row.scss} | 0 scss/config/{_form-select.scss => form/_select.scss} | 1 - scss/config/{_form-switch.scss => form/_switch.scss} | 4 ++-- scss/form/_row.scss | 3 +-- 15 files changed, 21 insertions(+), 28 deletions(-) delete mode 100644 scss/config/_form.scss rename scss/config/{_form-check.scss => form/_check.scss} (92%) rename scss/config/{_form-control.scss => form/_control.scss} (94%) rename scss/config/{_form-description.scss => form/_description.scss} (100%) rename scss/config/{_form-fieldset.scss => form/_fieldset.scss} (84%) rename scss/config/{_form-file.scss => form/_file.scss} (100%) rename scss/config/{_form-icon.scss => form/_icon.scss} (100%) create mode 100644 scss/config/form/_index.scss rename scss/config/{_form-label.scss => form/_label.scss} (100%) rename scss/config/{_form-range.scss => form/_range.scss} (100%) rename scss/config/{_form-row.scss => form/_row.scss} (100%) rename scss/config/{_form-select.scss => form/_select.scss} (99%) rename scss/config/{_form-switch.scss => form/_switch.scss} (92%) diff --git a/scss/config/_form.scss b/scss/config/_form.scss deleted file mode 100644 index a5caa05..0000000 --- a/scss/config/_form.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use 'sass:map'; -@use 'typography' as *; -@use 'spacer' as *; -@use 'display' as *; - diff --git a/scss/config/_index.scss b/scss/config/_index.scss index 59fb4a0..575d475 100644 --- a/scss/config/_index.scss +++ b/scss/config/_index.scss @@ -5,17 +5,6 @@ @forward 'typography'; @forward 'button'; @forward 'form'; -@forward 'form-control'; -@forward 'form-description'; -@forward 'form-fieldset'; -@forward 'form-file'; -@forward 'form-icon'; -@forward 'form-range'; -@forward 'form-row'; -@forward 'form-select'; -@forward 'form-switch'; -@forward 'form-check'; -@forward 'form-label'; @forward 'table'; @forward 'layout'; @forward 'transition'; diff --git a/scss/config/_form-check.scss b/scss/config/form/_check.scss similarity index 92% rename from scss/config/_form-check.scss rename to scss/config/form/_check.scss index bdc4a09..e980f64 100644 --- a/scss/config/_form-check.scss +++ b/scss/config/form/_check.scss @@ -1,7 +1,6 @@ @use 'sass:map'; -@use 'display' as *; -@use 'typography' as *; -@use 'form' as *; +@use '../display' as *; +@use '../typography' as *; $form-check: () !default; $form-check: map.merge( diff --git a/scss/config/_form-control.scss b/scss/config/form/_control.scss similarity index 94% rename from scss/config/_form-control.scss rename to scss/config/form/_control.scss index f7e9e08..9c7921d 100644 --- a/scss/config/_form-control.scss +++ b/scss/config/form/_control.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use 'display' as *; -@use 'typography' as *; +@use '../display' as *; +@use '../typography' as *; $form-control: () !default; $form-control: map.merge( @@ -32,6 +32,7 @@ $form-control-lg: map.merge( $form-control-sm: () !default; $form-control-sm: map.merge( ( + 'border-radius': 0.35em, 'font-size': map.get($typography, 'size-sm'), 'padding': 0.25em 0.5em, ), diff --git a/scss/config/_form-description.scss b/scss/config/form/_description.scss similarity index 100% rename from scss/config/_form-description.scss rename to scss/config/form/_description.scss diff --git a/scss/config/_form-fieldset.scss b/scss/config/form/_fieldset.scss similarity index 84% rename from scss/config/_form-fieldset.scss rename to scss/config/form/_fieldset.scss index feab253..3251df2 100644 --- a/scss/config/_form-fieldset.scss +++ b/scss/config/form/_fieldset.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use 'spacer' as *; -@use 'typography' as *; +@use '../spacer' as *; +@use '../typography' as *; $form-fieldset: () !default; $form-fieldset: map.merge( diff --git a/scss/config/_form-file.scss b/scss/config/form/_file.scss similarity index 100% rename from scss/config/_form-file.scss rename to scss/config/form/_file.scss diff --git a/scss/config/_form-icon.scss b/scss/config/form/_icon.scss similarity index 100% rename from scss/config/_form-icon.scss rename to scss/config/form/_icon.scss diff --git a/scss/config/form/_index.scss b/scss/config/form/_index.scss new file mode 100644 index 0000000..879f398 --- /dev/null +++ b/scss/config/form/_index.scss @@ -0,0 +1,11 @@ +@forward 'control'; +@forward 'description'; +@forward 'fieldset'; +@forward 'file'; +@forward 'icon'; +@forward 'range'; +@forward 'row'; +@forward 'select'; +@forward 'switch'; +@forward 'check'; +@forward 'label'; diff --git a/scss/config/_form-label.scss b/scss/config/form/_label.scss similarity index 100% rename from scss/config/_form-label.scss rename to scss/config/form/_label.scss diff --git a/scss/config/_form-range.scss b/scss/config/form/_range.scss similarity index 100% rename from scss/config/_form-range.scss rename to scss/config/form/_range.scss diff --git a/scss/config/_form-row.scss b/scss/config/form/_row.scss similarity index 100% rename from scss/config/_form-row.scss rename to scss/config/form/_row.scss diff --git a/scss/config/_form-select.scss b/scss/config/form/_select.scss similarity index 99% rename from scss/config/_form-select.scss rename to scss/config/form/_select.scss index dfd850d..13ce6f8 100644 --- a/scss/config/_form-select.scss +++ b/scss/config/form/_select.scss @@ -1,4 +1,3 @@ - @use 'sass:map'; $form-select: () !default; diff --git a/scss/config/_form-switch.scss b/scss/config/form/_switch.scss similarity index 92% rename from scss/config/_form-switch.scss rename to scss/config/form/_switch.scss index 8e7c807..2aa7610 100644 --- a/scss/config/_form-switch.scss +++ b/scss/config/form/_switch.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use 'typography' as *; -@use 'form-label' as *; +@use '../typography' as *; +@use 'label' as *; $form-switch: () !default; $form-switch: map.merge( diff --git a/scss/form/_row.scss b/scss/form/_row.scss index 0e5af25..eac9c38 100644 --- a/scss/form/_row.scss +++ b/scss/form/_row.scss @@ -4,9 +4,8 @@ @mixin generate-form-row { .form-row { - @include generate-variables($form-row); - &--mixed { + @include generate-variables($form-row); --col-width: #{config('col-width', $form-row)}; @include layout-flex(s); From 6461755914da0f19f5b7de0538c2bf7ce13dcfeb Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 26 Mar 2023 16:03:45 +0200 Subject: [PATCH 22/67] Fixes --- preview/assets/scss/config/_config.scss | 7 +------ scss/config/_color.scss | 2 +- scss/config/_display.scss | 4 ++-- scss/element/_table.scss | 4 ++-- scss/form/_control.scss | 10 +++++----- 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 4cc2da4..5c6992a 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -27,9 +27,7 @@ $spacer: 1.25rem; 'css-custom-properties': true, ), $btn: ( - 'border-radius': 3em, - 'font-weight': 400, - 'text-transform': none, + 'font-style': italic, ), $btn-lg: ( 'border-radius': 0.25em, @@ -41,7 +39,4 @@ $spacer: 1.25rem; $typography: ( 'weight-base': 300, ), - // $btn-text-transform: uppercase, - // $form-check-font-size-lg: 1.35rem, - // $form-check-font-weight: 400, ); diff --git a/scss/config/_color.scss b/scss/config/_color.scss index 41521b8..9857013 100644 --- a/scss/config/_color.scss +++ b/scss/config/_color.scss @@ -80,7 +80,7 @@ $colors: map.deep-merge( 'caption': $color-gray, 'heading': $color-black, 'hover': hsl(0deg 0% 0% / 5%), - 'stripe': hsl(0deg 0% 0% / 0.025%), + 'stripe': hsl(0deg 0% 0% / 2.5%), 'text': $color-gray, ) ), diff --git a/scss/config/_display.scss b/scss/config/_display.scss index 33078ca..784b05c 100644 --- a/scss/config/_display.scss +++ b/scss/config/_display.scss @@ -3,8 +3,8 @@ $display: () !default; $display: map.merge( ( - 'border-radius-lg': 0.925rem, - 'border-radius-sm': 0.425rem, + 'border-radius-lg': 0.725rem, + 'border-radius-sm': 0.325rem, ), $display ); diff --git a/scss/element/_table.scss b/scss/element/_table.scss index 9955713..7823786 100644 --- a/scss/element/_table.scss +++ b/scss/element/_table.scss @@ -14,13 +14,13 @@ overflow-x: auto; table { - min-width: var(--min-width); + min-width: get-css-variable(--responsive-width); } } } #{$selector} { - @include generate-variables($table); + @include generate-variables($table, ('stripe')); border-collapse: collapse; color: color(text, table); diff --git a/scss/form/_control.scss b/scss/form/_control.scss index f684a09..4ab3d0a 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -112,7 +112,7 @@ $ring-color: color(valid-focus-ring, form, false), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), $ring-width: config('focus-ring-width', $form-control, false), - $ring-offset: config('focus-ring-offset', $form-control, false) + $ring-offset: config('focus-ring-offset', $form-control, false), ); } } @@ -123,12 +123,12 @@ &:focus { @include focus-ring( - $type: config('focus-ring-type', $form-control), + $type: config('focus-ring-type', $form-control, false), $border-color: color(invalid, form), $ring-color: color(invalid-focus-ring, form), - $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), - $ring-width: config('focus-ring-width', $form-control), - $ring-offset: config('focus-ring-offset', $form-control) + $box-shadow-type: config('focus-ring-box-shadow-type', $form-control, false), + $ring-width: config('focus-ring-width', $form-control, false), + $ring-offset: config('focus-ring-offset', $form-control, false), ); } } From 35dfd16e3267729b876040c794a649466bd7d9b1 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 26 Mar 2023 16:29:19 +0200 Subject: [PATCH 23/67] Modify file input (revert focus state to default) --- scss/form/_file.scss | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scss/form/_file.scss b/scss/form/_file.scss index 6204906..730bbb2 100644 --- a/scss/form/_file.scss +++ b/scss/form/_file.scss @@ -15,10 +15,12 @@ #{$selector} { display: block; + &:focus { + outline: revert; + } + &:focus-within#{$pseudo-selector} { - background-color: transparent; - box-shadow: 0 0 0 2px color(config('background', $form-file, false) + '-background', btn) inset; - color: color(config('background', $form-file, false) + '-background', btn); + background-color: color(config('background', $form-file, false) + '-background-hover', btn); } &#{$pseudo-selector} { From 0113366d1786d5d606db299e09d7c4ba5f688490 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 27 Mar 2023 16:41:28 +0200 Subject: [PATCH 24/67] v2.0.0-beta.0 --- css/spruce.css | 238 ++++++++++++------------ css/spruce.min.css | 2 +- package.json | 2 +- preview/assets/scss/config/_config.scss | 2 +- 4 files changed, 119 insertions(+), 125 deletions(-) diff --git a/css/spruce.css b/css/spruce.css index 536aae1..3cbd02f 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -309,90 +309,80 @@ template { } :root { - --spruce-base-color-primary: hsl(262deg, 71%, 49%); - --spruce-base-color-secondary: hsl(227deg, 92%, 55%); - --spruce-base-color-background: hsl(0deg, 0%, 100%); - --spruce-base-color-heading: hsl(205deg, 100%, 2%); - --spruce-base-color-text: hsl(208deg, 7%, 30%); - --spruce-base-color-link: hsl(262deg, 71%, 49%); - --spruce-base-color-link-hover: #511dab; - --spruce-base-color-border: hsl(0deg, 0%, 90%); - --spruce-base-color-mark-background: hsl(50deg, 100%, 80%); - --spruce-base-color-mark-foreground: hsl(205deg, 100%, 2%); - --spruce-base-color-marker: hsl(262deg, 71%, 49%); - --spruce-base-color-code-background: #f6f2fd; - --spruce-base-color-code-foreground: hsl(205deg, 100%, 2%); - --spruce-base-color-blockquote-border: hsl(262deg, 71%, 49%); -} - -:root { - --spruce-selection-color-foreground: hsl(0deg, 0%, 100%); - --spruce-selection-color-background: hsl(262deg, 71%, 49%); + --spruce-alert-color-danger: hsl(0, 71%, 51%); + --spruce-alert-color-info: hsl(195, 100%, 42%); + --spruce-alert-color-success: hsl(150, 100%, 33%); + --spruce-alert-color-warning: hsl(48, 89%, 55%); } :root { - --spruce-alert-color-danger: hsl(0deg, 71%, 51%); - --spruce-alert-color-info: hsl(195deg, 100%, 42%); - --spruce-alert-color-success: hsl(150deg, 100%, 33%); - --spruce-alert-color-warning: hsl(48deg, 89%, 55%); + --spruce-base-color-background: hsl(0, 0%, 100%); + --spruce-base-color-blockquote-border: hsl(262, 71%, 49%); + --spruce-base-color-border: hsl(0, 0%, 90%); + --spruce-base-color-code-background: #f6f2fd; + --spruce-base-color-code-foreground: hsl(205, 100%, 2%); + --spruce-base-color-heading: hsl(205, 100%, 2%); + --spruce-base-color-link-hover: #511dab; + --spruce-base-color-link: hsl(262, 71%, 49%); + --spruce-base-color-mark-background: hsl(50, 100%, 80%); + --spruce-base-color-mark-foreground: hsl(205, 100%, 2%); + --spruce-base-color-marker: hsl(262, 71%, 49%); + --spruce-base-color-primary: hsl(262, 71%, 49%); + --spruce-base-color-secondary: hsl(227, 92%, 55%); + --spruce-base-color-text: hsl(208, 7%, 30%); } :root { - --spruce-btn-color-primary-background: hsl(262deg, 71%, 49%); + --spruce-btn-color-primary-background: hsl(262, 71%, 49%); --spruce-btn-color-primary-background-hover: #511daa; - --spruce-btn-color-primary-foreground: hsl(0deg, 0%, 100%); - --spruce-btn-color-secondary-background: hsl(227deg, 92%, 55%); + --spruce-btn-color-primary-foreground: hsl(0, 0%, 100%); + --spruce-btn-color-secondary-background: hsl(227, 92%, 55%); --spruce-btn-color-secondary-background-hover: #0937dc; - --spruce-btn-color-secondary-foreground: hsl(0deg, 0%, 100%); + --spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%); } :root { - --spruce-form-color-background: hsl(0deg, 0%, 100%); - --spruce-form-color-background-disabled: hsl(0deg, 0%, 95%); - --spruce-form-color-border: hsl(260deg, 4%, 70%); - --spruce-form-color-border-disabled: hsl(0deg, 0%, 90%); - --spruce-form-color-border-focus: hsl(262deg, 71%, 49%); - --spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25); - --spruce-form-color-check-foreground: hsl(0deg, 0%, 100%); - --spruce-form-color-check-background: hsl(262deg, 71%, 49%); - --spruce-form-color-check-focus-ring: hsl(262deg, 71%, 49%); - --spruce-form-color-invalid: hsl(0deg, 71%, 51%); + --spruce-form-color-background-disabled: hsl(0, 0%, 95%); + --spruce-form-color-background: hsl(0, 0%, 100%); + --spruce-form-color-border-disabled: hsl(0, 0%, 90%); + --spruce-form-color-border-focus: hsl(262, 71%, 49%); + --spruce-form-color-border: hsl(260, 4%, 70%); + --spruce-form-color-check-background: hsl(262, 71%, 49%); + --spruce-form-color-check-focus-ring: hsl(262, 71%, 49%); + --spruce-form-color-check-foreground: hsl(0, 0%, 100%); --spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25); - --spruce-form-color-label: hsl(205deg, 100%, 2%); - --spruce-form-color-legend: hsl(205deg, 100%, 2%); - --spruce-form-color-placeholder: hsl(208deg, 7%, 40%); - --spruce-form-color-range-thumb-background: hsl(262deg, 71%, 49%); - --spruce-form-color-range-thumb-focus-ring: hsl(262deg, 71%, 49%); - --spruce-form-color-range-track-background: hsl(0deg, 0%, 90%); - --spruce-form-color-text: hsl(208deg, 7%, 30%); - --spruce-form-color-select-foreground: hsl(205deg, 100%, 2%); - --spruce-form-color-valid: hsl(150deg, 100%, 33%); + --spruce-form-color-invalid: hsl(0, 71%, 51%); + --spruce-form-color-label: hsl(205, 100%, 2%); + --spruce-form-color-legend: hsl(205, 100%, 2%); + --spruce-form-color-placeholder: hsl(208, 7%, 40%); + --spruce-form-color-range-thumb-background: hsl(262, 71%, 49%); + --spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%); + --spruce-form-color-range-track-background: hsl(0, 0%, 90%); + --spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25); + --spruce-form-color-select-foreground: hsl(205, 100%, 2%); + --spruce-form-color-text: hsl(208, 7%, 30%); --spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25); + --spruce-form-color-valid: hsl(150, 100%, 33%); } :root { - --spruce-table-color-border: hsl(0deg, 0%, 90%); - --spruce-table-color-caption: hsl(208deg, 7%, 30%); - --spruce-table-color-heading: hsl(205deg, 100%, 2%); - --spruce-table-color-hover: hsla(0deg, 0%, 0%, 0.05); - --spruce-table-color-text: hsl(208deg, 7%, 30%); - --spruce-table-color-stripe: hsla(0deg, 0%, 0%, 0.025); + --spruce-selection-color-foreground: hsl(0, 0%, 100%); + --spruce-selection-color-background: hsl(262, 71%, 49%); } :root { - --spruce-scrollbar-color-thumb-background: hsla(0deg, 0%, 0%, 0.15); - --spruce-scrollbar-color-thumb-background-hover: hsla(0deg, 0%, 0%, 0.25); - --spruce-scrollbar-color-track-background: hsla(0deg, 0%, 0%, 0.05); + --spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15); + --spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25); + --spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05); } :root { - --spruce-transition-duration: 0.15s; - --spruce-transition-timing-function: ease-in-out; -} -@media (prefers-reduced-motion: reduce) { - :root { - --spruce-transition-duration: 0; - } + --spruce-table-color-border: hsl(0, 0%, 90%); + --spruce-table-color-caption: hsl(208, 7%, 30%); + --spruce-table-color-heading: hsl(205, 100%, 2%); + --spruce-table-color-hover: hsla(0, 0%, 0%, 0.05); + --spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025); + --spruce-table-color-text: hsl(208, 7%, 30%); } .sr-only { @@ -446,9 +436,9 @@ body { a { color: var(--spruce-base-color-link); text-decoration: underline; - transition-duration: var(--spruce-transition-duration); + transition-duration: var(--spruce-duration); transition-property: color; - transition-timing-function: var(--spruce-transition-timing-function); + transition-timing-function: var(--spruce-timing-function); } a:hover { color: var(--spruce-base-color-link-hover); @@ -465,7 +455,8 @@ button { hr { border: 0; - border-top: 1px solid var(--spruce-base-color-border); + -webkit-border-before: 1px solid var(--spruce-base-color-border); + border-block-start: 1px solid var(--spruce-base-color-border); } img { @@ -499,7 +490,7 @@ figure figcaption { overflow-x: auto; } .table-responsive table { - min-width: var(--min-width); + min-width: var(--spruce-responsive-width); } .table { @@ -550,21 +541,21 @@ figure figcaption { } .table--rounded th:first-child, .table--rounded td:first-child { - border-end-start-radius: 0.425rem; - border-start-start-radius: 0.425rem; + border-end-start-radius: 0.325rem; + border-start-start-radius: 0.325rem; } .table--rounded th:last-child, .table--rounded td:last-child { - border-end-end-radius: 0.425rem; - border-start-end-radius: 0.425rem; + border-end-end-radius: 0.325rem; + border-start-end-radius: 0.325rem; } html { - -webkit-tap-highlight-color: hsla(0deg, 0%, 0%, 0); + -webkit-tap-highlight-color: hsla(0, 0%, 0%, 0); } body { - font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif; font-size: 1rem; line-height: 1.8; } @@ -589,7 +580,7 @@ h4, h5, h6 { color: var(--spruce-base-color-heading); - font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif; font-weight: 700; line-height: calc(2px + 2ex + 2px); } @@ -721,7 +712,7 @@ abbr[title] { mark { background-color: var(--spruce-base-color-mark-background); - border-radius: 0.425rem; + border-radius: 0.325rem; color: var(--spruce-base-color-mark-foreground); padding: 0.1em 0.3em; } @@ -730,19 +721,19 @@ code, kbd, samp { background-color: var(--spruce-base-color-code-background); - border-radius: 0.425rem; + border-radius: 0.325rem; color: var(--spruce-base-color-code-foreground); padding: 0.1em 0.3em; } .lead { - font-size: clamp(1.1rem, 2vw, 1.25rem); + font-size: clamp(1.35rem, 2vw, 1.15rem); } /* stylelint-disable */ .btn { align-items: center; - border-radius: 0.425rem; + border-radius: 0.325rem; border-style: solid; border-width: 1px; cursor: pointer; @@ -755,9 +746,9 @@ samp { padding: 0.75em 1em; text-align: start; text-decoration: none; - transition-duration: var(--spruce-transition-duration); + transition-duration: var(--spruce-duration); transition-property: background-color, border-color, box-shadow, color; - transition-timing-function: var(--spruce-transition-timing-function); + transition-timing-function: var(--spruce-timing-function); } .btn:focus { @@ -794,7 +785,7 @@ samp { .btn--sm { font-size: 0.8rem; gap: 0.25rem; - padding: 0.5em; + padding: 0.5em 1em; } .btn--lg { @@ -871,7 +862,7 @@ samp { .form-file::file-selector-button { align-items: center; - border-radius: 0.425rem; + border-radius: 0.325rem; border-style: solid; border-width: 1px; cursor: pointer; @@ -884,9 +875,9 @@ samp { padding: 0.75em 1em; text-align: start; text-decoration: none; - transition-duration: var(--spruce-transition-duration); + transition-duration: var(--spruce-duration); transition-property: background-color, border-color, box-shadow, color; - transition-timing-function: var(--spruce-transition-timing-function); + transition-timing-function: var(--spruce-timing-function); } .form-file:focus { @@ -903,7 +894,7 @@ samp { .form-file--sm::file-selector-button { font-size: 0.8rem; gap: 0.25rem; - padding: 0.5em; + padding: 0.5em 1em; } .form-file--lg::file-selector-button { @@ -923,10 +914,11 @@ samp { .form-file { display: block; } +.form-file:focus { + outline: revert; +} .form-file:focus-within::file-selector-button { - background-color: transparent; - box-shadow: 0 0 0 2px var(--spruce-btn-color-primary-background) inset; - color: var(--spruce-btn-color-primary-background); + background-color: var(--spruce-btn-color-primary-background-hover); } .form-file::file-selector-button { background-color: var(--spruce-btn-color-primary-background); @@ -945,12 +937,6 @@ samp { color: var(--spruce-form-color-label); line-height: 1.5; } -.form-label--sm { - font-size: 0.9rem; -} -.form-label--lg { - font-size: 1.1rem; -} .form-control { --webkit-date-line-height: 1.375; @@ -959,16 +945,16 @@ samp { appearance: none; background-color: var(--spruce-form-color-background); border: 1px solid var(--spruce-form-color-border); - border-radius: 0.425rem; + border-radius: 0.325rem; box-sizing: border-box; color: var(--spruce-form-color-text); display: block; font-size: 1rem; line-height: 1.5; padding: 0.5em 0.75em; - transition-duration: var(--spruce-transition-duration); + transition-duration: var(--spruce-duration); transition-property: border, box-shadow; - transition-timing-function: var(--spruce-transition-timing-function); + transition-timing-function: var(--spruce-timing-function); width: 100%; } .form-control::-moz-placeholder { @@ -986,19 +972,21 @@ samp { outline: 2px solid transparent; } .form-control[type=color] { - height: calc(1.5em + ( 0.5em + 1px ) * 2); + aspect-ratio: 1; + height: 100%; padding: 0.5em; + width: 2.625rem; } .form-control[type=color]::-webkit-color-swatch-wrapper { padding: 0; } .form-control[type=color]::-moz-color-swatch { border: 0; - border-radius: 0.425rem; + border-radius: 0.325rem; } .form-control[type=color]::-webkit-color-swatch { border: 0; - border-radius: 0.425rem; + border-radius: 0.325rem; } .form-control[disabled], .form-control[disabled=true] { background-color: var(--spruce-form-color-background-disabled); @@ -1022,7 +1010,7 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid { background-position: center left 0.5em; } .form-control--valid { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150deg, 100%, 33%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e'); border-color: var(--spruce-alert-color-success); } .form-control--valid:focus { @@ -1031,7 +1019,7 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid { outline: 2px solid transparent; } .form-control--invalid { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280deg, 71%, 51%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e'); border-color: var(--spruce-alert-color-danger); } .form-control--invalid:focus { @@ -1041,25 +1029,29 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid { } .form-control--sm { --webkit-date-line-height: 1.36; - font-size: 0.9rem; + font-size: 0.875rem; padding: 0.25em 0.5em; } .form-control--sm[type=color] { - height: calc(1.5em + ( 0.25em + 1px ) * 2); + aspect-ratio: 1; + height: 100%; padding: 0.25em; + width: 1.925rem; } .form-control--lg { --webkit-date-line-height: 1.387; - font-size: 1.1rem; + font-size: 1.125rem; padding: 0.65em 1em; } .form-control--lg[type=color] { - height: calc(1.5em + ( 0.75em + 1px ) * 2); - padding: 0.75em; + aspect-ratio: 1; + height: 100%; + padding: 0.5em; + width: 3.204rem; } select.form-control:not([multiple]):not([size]) { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205deg, 100%, 2%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e'); background-position: center right 0.5em; background-repeat: no-repeat; background-size: 1.25em auto; @@ -1089,7 +1081,7 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { } .form-check--lg .form-check__control { - font-size: 1.1rem; + font-size: 1.125rem; } .form-check__control { @@ -1107,16 +1099,16 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { line-height: 1; -webkit-margin-before: 0.1em; margin-block-start: 0.1em; - transition-duration: var(--spruce-transition-duration); + transition-duration: var(--spruce-duration); transition-property: border, box-shadow; - transition-timing-function: var(--spruce-transition-timing-function); + transition-timing-function: var(--spruce-timing-function); width: 1em; } .form-check__control[type=radio] { border-radius: 50%; } .form-check__control[type=checkbox] { - border-radius: 0.425rem; + border-radius: 0.325rem; } .form-check__control:focus-visible { outline: 2px solid var(--spruce-form-color-check-focus-ring); @@ -1127,13 +1119,13 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { border-color: var(--spruce-form-color-check-background); } .form-check__control:checked[type=radio] { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e'); } .form-check__control:checked[type=checkbox] { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e'); } .form-check__control:indeterminate[type=checkbox] { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e'); background-color: var(--spruce-form-color-check-background); border-color: var(--spruce-form-color-check-background); } @@ -1165,11 +1157,11 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { } .form-switch--lg .form-switch__control { - font-size: 1.1rem; + font-size: 1.125rem; } .form-switch__control { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260deg, 4%, 70%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e'); -webkit-appearance: none; -moz-appearance: none; appearance: none; @@ -1185,9 +1177,9 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { line-height: 1; -webkit-margin-before: 0.25em; margin-block-start: 0.25em; - transition-duration: var(--spruce-transition-duration); + transition-duration: var(--spruce-duration); transition-property: background-position, border, box-shadow; - transition-timing-function: var(--spruce-transition-timing-function); + transition-timing-function: var(--spruce-timing-function); width: 2em; } .form-switch__control:focus-visible { @@ -1195,7 +1187,7 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { outline-offset: 2px; } .form-switch__control:checked { - background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e'); + background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e'); background-color: var(--spruce-form-color-check-background); background-position: right center; border-color: var(--spruce-form-color-check-background); @@ -1320,7 +1312,7 @@ legend { @media (min-width: 48em) { .form-group--stacked > * + * { border-end-start-radius: 0; - border-start-end-radius: 0.425rem; + border-start-end-radius: 0.325rem; -webkit-margin-before: 0; margin-block-start: 0; -webkit-margin-start: -1px; @@ -1339,7 +1331,7 @@ legend { } @media (min-width: 48em) { .form-group--stacked > *:first-child { - border-end-start-radius: 0.425rem; + border-end-start-radius: 0.325rem; } } .form-group--stacked > *:focus { @@ -1411,4 +1403,6 @@ legend { border-radius: 0.5rem; height: 1rem; width: 1rem; -} /* stylelint-enable */ +} + +/* stylelint-enable */ diff --git a/css/spruce.min.css b/css/spruce.min.css index f24acb9..b498d0c 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-base-color-primary: hsl(262deg, 71%, 49%);--spruce-base-color-secondary: hsl(227deg, 92%, 55%);--spruce-base-color-background: hsl(0deg, 0%, 100%);--spruce-base-color-heading: hsl(205deg, 100%, 2%);--spruce-base-color-text: hsl(208deg, 7%, 30%);--spruce-base-color-link: hsl(262deg, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-border: hsl(0deg, 0%, 90%);--spruce-base-color-mark-background: hsl(50deg, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205deg, 100%, 2%);--spruce-base-color-marker: hsl(262deg, 71%, 49%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205deg, 100%, 2%);--spruce-base-color-blockquote-border: hsl(262deg, 71%, 49%)}:root{--spruce-selection-color-foreground: hsl(0deg, 0%, 100%);--spruce-selection-color-background: hsl(262deg, 71%, 49%)}:root{--spruce-alert-color-danger: hsl(0deg, 71%, 51%);--spruce-alert-color-info: hsl(195deg, 100%, 42%);--spruce-alert-color-success: hsl(150deg, 100%, 33%);--spruce-alert-color-warning: hsl(48deg, 89%, 55%)}:root{--spruce-btn-color-primary-background: hsl(262deg, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0deg, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227deg, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0deg, 0%, 100%)}:root{--spruce-form-color-background: hsl(0deg, 0%, 100%);--spruce-form-color-background-disabled: hsl(0deg, 0%, 95%);--spruce-form-color-border: hsl(260deg, 4%, 70%);--spruce-form-color-border-disabled: hsl(0deg, 0%, 90%);--spruce-form-color-border-focus: hsl(262deg, 71%, 49%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-check-foreground: hsl(0deg, 0%, 100%);--spruce-form-color-check-background: hsl(262deg, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262deg, 71%, 49%);--spruce-form-color-invalid: hsl(0deg, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205deg, 100%, 2%);--spruce-form-color-legend: hsl(205deg, 100%, 2%);--spruce-form-color-placeholder: hsl(208deg, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262deg, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262deg, 71%, 49%);--spruce-form-color-range-track-background: hsl(0deg, 0%, 90%);--spruce-form-color-text: hsl(208deg, 7%, 30%);--spruce-form-color-select-foreground: hsl(205deg, 100%, 2%);--spruce-form-color-valid: hsl(150deg, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-table-color-border: hsl(0deg, 0%, 90%);--spruce-table-color-caption: hsl(208deg, 7%, 30%);--spruce-table-color-heading: hsl(205deg, 100%, 2%);--spruce-table-color-hover: hsla(0deg, 0%, 0%, 0.05);--spruce-table-color-text: hsl(208deg, 7%, 30%);--spruce-table-color-stripe: hsla(0deg, 0%, 0%, 0.025)}:root{--spruce-scrollbar-color-thumb-background: hsla(0deg, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0deg, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0deg, 0%, 0%, 0.05)}:root{--spruce-transition-duration: 0.15s;--spruce-transition-timing-function: ease-in-out}@media(prefers-reduced-motion: reduce){:root{--spruce-transition-duration: 0}}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-transition-duration);transition-property:color;transition-timing-function:var(--spruce-transition-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;border-top:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--min-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.425rem;border-start-start-radius:.425rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.425rem;border-start-end-radius:.425rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:700;line-height:calc(2px + 2ex + 2px)}h1,.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2,.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3,.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4,.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.425rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.425rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.1rem, 2vw, 1.25rem)}.btn{align-items:center;border-radius:.425rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-transition-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-transition-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.425rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-transition-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-transition-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus-within::file-selector-button{background-color:rgba(0,0,0,0);box-shadow:0 0 0 2px var(--spruce-btn-color-primary-background) inset;color:var(--spruce-btn-color-primary-background)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-label--sm{font-size:.9rem}.form-label--lg{font-size:1.1rem}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.425rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-transition-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-transition-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{height:calc(1.5em + ( 0.5em + 1px ) * 2);padding:.5em}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.425rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.425rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150deg, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280deg, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;font-size:.9rem;padding:.25em .5em}.form-control--sm[type=color]{height:calc(1.5em + ( 0.25em + 1px ) * 2);padding:.25em}.form-control--lg{--webkit-date-line-height: 1.387;font-size:1.1rem;padding:.65em 1em}.form-control--lg[type=color]{height:calc(1.5em + ( 0.75em + 1px ) * 2);padding:.75em}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205deg, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check--lg .form-check__control{font-size:1.1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-transition-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-transition-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.425rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch--lg .form-switch__control{font-size:1.1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260deg, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-transition-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-transition-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}.form-description{color:var(--spruce-form-color-text);display:block;line-height:1.5}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.425rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.425rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(0, 0%, 90%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 7%, 30%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-border-disabled: hsl(0, 0%, 90%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(0, 0%, 90%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 7%, 30%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25);--spruce-form-color-valid: hsl(150, 100%, 33%)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(0, 0%, 90%);--spruce-table-color-caption: hsl(208, 7%, 30%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 7%, 30%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1,.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2,.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3,.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4,.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.35rem, 2vw, 1.15rem)}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;font-size:.875rem;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;font-size:1.125rem;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check--lg .form-check__control{font-size:1.125rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch--lg .form-switch__control{font-size:1.125rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}.form-description{color:var(--spruce-form-color-text);display:block;line-height:1.5}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} diff --git a/package.json b/package.json index da24379..ea41c15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "1.2.1", + "version": "2.0.0-beta.0", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 5c6992a..29343ef 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -24,7 +24,7 @@ $spacer: 1.25rem; 'prefix': 'spruce', 'print': true, 'utilities': true, - 'css-custom-properties': true, + 'css-custom-properties': false, ), $btn: ( 'font-style': italic, From 9988612d095aa202d38904d84cd2e240c8855b1b Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 27 Mar 2023 17:04:04 +0200 Subject: [PATCH 25/67] Fix forward order --- preview/assets/scss/config/_config.scss | 3 +++ scss/config/form/_index.scss | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 29343ef..ca2c59c 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -36,6 +36,9 @@ $spacer: 1.25rem; $form-control: ( 'font-weight': 400, ), + $form-label: ( + 'font-size': 1.25rem, + ), $typography: ( 'weight-base': 300, ), diff --git a/scss/config/form/_index.scss b/scss/config/form/_index.scss index 879f398..23bba60 100644 --- a/scss/config/form/_index.scss +++ b/scss/config/form/_index.scss @@ -1,3 +1,4 @@ +@forward 'label'; @forward 'control'; @forward 'description'; @forward 'fieldset'; @@ -8,4 +9,3 @@ @forward 'select'; @forward 'switch'; @forward 'check'; -@forward 'label'; From 97d833b68d96745ed4b2445b963b3035a6cb5a0b Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 27 Mar 2023 17:04:33 +0200 Subject: [PATCH 26/67] 2.0.0-beta.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d5de192..2982d67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "1.2.1", + "version": "2.0.0-beta.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "1.2.1", + "version": "2.0.0-beta.1", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index ea41c15..1c3d006 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.0", + "version": "2.0.0-beta.1", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From a7cf7c068844f01ee8658ca769f3af6321b8084d Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 27 Mar 2023 19:54:13 +0200 Subject: [PATCH 27/67] Generate typography related variables --- preview/assets/scss/config/_config.scss | 2 +- scss/element/_root.scss | 1 + scss/element/_typography.scss | 30 ++++++++++--------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index ca2c59c..593d22d 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -24,7 +24,7 @@ $spacer: 1.25rem; 'prefix': 'spruce', 'print': true, 'utilities': true, - 'css-custom-properties': false, + 'css-custom-properties': true, ), $btn: ( 'font-style': italic, diff --git a/scss/element/_root.scss b/scss/element/_root.scss index cc13ab8..359df5e 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -12,6 +12,7 @@ @include generate-variables($transition); } + @include generate-variables($typography); @include generate-variables($display); @include generate-variables($layout); @include generate-variables($print); diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index 1d4b4d1..a785efd 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -4,16 +4,15 @@ @use '../config' as *; @mixin generate-typography { - // Basics html { -webkit-tap-highlight-color: hsl(0deg 0% 0% / 0%); } body { - font-family: map.get($typography, 'family-base'); - font-size: map.get($typography, 'size-base'); - font-weight: map.get($typography, 'weight-base'); - line-height: map.get($typography, 'line-height-base'); + font-family: config('family-base', $typography); + font-size: config('size-base', $typography); + font-weight: config('weight-base', $typography); + line-height: config('line-height-base', $typography); } @if setting(hyphens) { @@ -30,7 +29,6 @@ } } - // Headings h1, h2, h3, @@ -38,9 +36,9 @@ h5, h6 { color: color(heading); - font-family: map.get($typography, 'family-heading'); - font-weight: map.get($typography, 'weight-heading'); - line-height: map.get($typography, 'line-height-heading'); + font-family: config('family-heading', $typography); + font-weight: config('weight-heading', $typography); + line-height: config('line-height-heading', $typography); } h1, @@ -73,7 +71,6 @@ font-size: font-size(h6); } - // Lists ul, ol { @include layout-stack(xxs, $width: false); @@ -108,7 +105,6 @@ } } - // Quote, blockquote .quote { @include layout-stack(xs); border-inline-start: 0.5rem solid color(blockquote-border); @@ -131,7 +127,6 @@ padding-inline-start: spacer(m); } - // Inline elmeents abbr[title] { border-block-end: 1px dotted; cursor: help; @@ -140,22 +135,21 @@ mark { background-color: color(mark-background); - border-radius: map.get($typography, 'inline-border-radius'); + border-radius: config('inline-border-radius', $typography); color: color(mark-foreground); - padding: map.get($typography, 'inline-padding'); + padding: config('inline-padding', $typography); } code, kbd, samp { background-color: color(code-background); - border-radius: map.get($typography, 'inline-border-radius'); + border-radius: config('inline-border-radius', $typography); color: color(code-foreground); - padding: map.get($typography, 'inline-padding'); + padding: config('inline-padding', $typography); } - // Lead .lead { - font-size: map.get($typography, 'size-lead'); + font-size: config('size-lead', $typography); } } From b3fcf0972c70b9ddef2155756199dedc39dad117 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 27 Mar 2023 20:15:22 +0200 Subject: [PATCH 28/67] 2.0.0-beta.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2982d67..a6a9978 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index 1c3d006..f680ef4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.1", + "version": "2.0.0-beta.2", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From ce1f5c1471fda045bfef2d90a21eac1bef4847b2 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 28 Mar 2023 19:29:38 +0200 Subject: [PATCH 29/67] Rename $typography variables --- preview/assets/scss/component/_color.scss | 2 +- preview/assets/scss/config/_config.scss | 4 +-- preview/assets/scss/main.scss | 2 +- scss/config/_button.scss | 2 +- scss/config/_typography.scss | 32 +++++++++++------------ scss/config/form/_check.scss | 2 +- scss/config/form/_control.scss | 2 +- scss/config/form/_switch.scss | 2 +- scss/element/_typography.scss | 10 +++---- scss/function/_font-size.scss | 2 +- 10 files changed, 29 insertions(+), 31 deletions(-) diff --git a/preview/assets/scss/component/_color.scss b/preview/assets/scss/component/_color.scss index 5a67a7d..84714b6 100644 --- a/preview/assets/scss/component/_color.scss +++ b/preview/assets/scss/component/_color.scss @@ -21,7 +21,7 @@ } &__caption { - font-family: spruce.config('family-cursive', spruce.$typography); + font-family: spruce.config('font-family-cursive', spruce.$typography); } } diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 593d22d..53a9661 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -35,9 +35,7 @@ $spacer: 1.25rem; ), $form-control: ( 'font-weight': 400, - ), - $form-label: ( - 'font-size': 1.25rem, + 'font-weight-heading': 300, ), $typography: ( 'weight-base': 300, diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index e26d04a..8bd5f36 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -41,7 +41,7 @@ box-shadow: -3px 5px spruce.color(custom-foreground, btn); border: 3px solid spruce.color(custom-foreground, btn); border-radius: 0; - font-family: spruce.config('family-cursive', spruce.$typography); + font-family: spruce.config('font-family-cursive', spruce.$typography); } .btn--tertiary { diff --git a/scss/config/_button.scss b/scss/config/_button.scss index 64a4478..35142bd 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -12,7 +12,7 @@ $btn: map.merge( 'focus-ring-type': outline, 'focus-ring-width': 2px, 'font-family': null, - 'font-size': map.get($typography, 'size-base'), + 'font-size': map.get($typography, 'font-size-base'), 'font-style': null, 'font-weight': 500, 'gap': map.get($spacers, xs), diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index 85a3a89..91e346f 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -5,9 +5,16 @@ $typography: () !default; $typography: map.merge( ( - 'family-base': #{eravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif}, - 'family-cursive': #{ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace}, - 'family-heading': #{Avenir, 'Avenir Next LT Pro', Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif}, + 'font-family-base': #{eravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif}, + 'font-family-cursive': #{ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace}, + 'font-family-heading': #{Avenir, 'Avenir Next LT Pro', Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif}, + 'font-size-base': 1rem, + 'font-size-lead': clamp(1.35rem, 2vw, 1.15rem), + 'font-size-lg': 1.125rem, + 'font-size-ratio': 1.25, + 'font-size-sm': 0.875rem, + 'font-weight-base': null, + 'font-weight-heading': 700, 'inline-border-radius': map.get($display, border-radius-sm), 'inline-padding': 0.1em 0.3em, 'line-height-base': 1.8, @@ -15,13 +22,6 @@ $typography: map.merge( 'line-height-lg': 1.8, 'line-height-md': 1.5, 'line-height-sm': 1.2, - 'size-base': 1rem, - 'size-lead': clamp(#{1.35rem, 2vw, 1.15rem}), - 'size-lg': 1.125rem, - 'size-ratio': 1.25, - 'size-sm': 0.875rem, - 'weight-base': null, - 'weight-heading': 700, ), $typography ); @@ -29,12 +29,12 @@ $typography: map.merge( $font-sizes: () !default; $font-sizes: map.merge( ( - h1: math.pow(map.get($typography, 'size-ratio'), 4) * map.get($typography, 'size-base'), - h2: math.pow(map.get($typography, 'size-ratio'), 3) * map.get($typography, 'size-base'), - h3: math.pow(map.get($typography, 'size-ratio'), 2) * map.get($typography, 'size-base'), - h4: math.pow(map.get($typography, 'size-ratio'), 1) * map.get($typography, 'size-base'), - h5: map.get($typography, 'size-base'), - h6: map.get($typography, 'size-base') + h1: math.pow(map.get($typography, 'font-size-ratio'), 4) * map.get($typography, 'font-size-base'), + h2: math.pow(map.get($typography, 'font-size-ratio'), 3) * map.get($typography, 'font-size-base'), + h3: math.pow(map.get($typography, 'font-size-ratio'), 2) * map.get($typography, 'font-size-base'), + h4: math.pow(map.get($typography, 'font-size-ratio'), 1) * map.get($typography, 'font-size-base'), + h5: map.get($typography, 'font-size-base'), + h6: map.get($typography, 'font-size-base') ), $font-sizes ); diff --git a/scss/config/form/_check.scss b/scss/config/form/_check.scss index e980f64..f3491c7 100644 --- a/scss/config/form/_check.scss +++ b/scss/config/form/_check.scss @@ -23,7 +23,7 @@ $form-check: map.merge( $form-check-sm: () !default; $form-check-sm: map.merge( ( - 'font-size': map.get($typography, 'size-base'), + 'font-size': map.get($typography, 'font-size-base'), ), $form-check-sm ); diff --git a/scss/config/form/_control.scss b/scss/config/form/_control.scss index 9c7921d..fa4aa38 100644 --- a/scss/config/form/_control.scss +++ b/scss/config/form/_control.scss @@ -5,7 +5,7 @@ $form-control: () !default; $form-control: map.merge( ( - 'font-size': map.get($typography, 'size-base'), + 'font-size': map.get($typography, 'font-size-base'), 'font-weight': null, 'line-height': 1.5, 'padding': 0.5em 0.75em, diff --git a/scss/config/form/_switch.scss b/scss/config/form/_switch.scss index 2aa7610..f13aefb 100644 --- a/scss/config/form/_switch.scss +++ b/scss/config/form/_switch.scss @@ -17,7 +17,7 @@ $form-switch: map.merge( $form-switch-sm: () !default; $form-switch-sm: map.merge( ( - 'font-size': map.get($typography, 'size-base'), + 'font-size': map.get($typography, 'font-size-base'), ), $form-switch-sm ); diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index a785efd..93941f7 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -9,8 +9,8 @@ } body { - font-family: config('family-base', $typography); - font-size: config('size-base', $typography); + font-family: config('font-family-base', $typography); + font-size: config('font-size-base', $typography); font-weight: config('weight-base', $typography); line-height: config('line-height-base', $typography); } @@ -36,8 +36,8 @@ h5, h6 { color: color(heading); - font-family: config('family-heading', $typography); - font-weight: config('weight-heading', $typography); + font-family: config('font-family-heading', $typography); + font-weight: config('font-weight-heading', $typography); line-height: config('line-height-heading', $typography); } @@ -150,6 +150,6 @@ } .lead { - font-size: config('size-lead', $typography); + font-size: config('font-size-lead', $typography); } } diff --git a/scss/function/_font-size.scss b/scss/function/_font-size.scss index c2f2390..d02fca9 100644 --- a/scss/function/_font-size.scss +++ b/scss/function/_font-size.scss @@ -20,7 +20,7 @@ @if $fluid { $scaled-size: map.get($font-sizes, $key) * math.div(100 - $scaler, 100); - @if $scaled-size < map.get($typography, 'size-base') { + @if $scaled-size < map.get($typography, 'font-size-base') { @return map.get($font-sizes, $key); } From bb47f8f214ff3391156cc828cb68ab9a2b1d2fc6 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 28 Mar 2023 19:35:19 +0200 Subject: [PATCH 30/67] Fix --- preview/assets/scss/config/_config.scss | 4 ++-- scss/element/_typography.scss | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 53a9661..d87e12c 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -35,9 +35,9 @@ $spacer: 1.25rem; ), $form-control: ( 'font-weight': 400, - 'font-weight-heading': 300, ), $typography: ( - 'weight-base': 300, + 'font-weight-base': 300, + 'font-weight-heading': 300, ), ); diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index 93941f7..d14f0c4 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -11,7 +11,7 @@ body { font-family: config('font-family-base', $typography); font-size: config('font-size-base', $typography); - font-weight: config('weight-base', $typography); + font-weight: config('font-weight-base', $typography); line-height: config('line-height-base', $typography); } From 7ffb882e385fb4574f277caf578029a2d1a43a1f Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 29 Mar 2023 17:15:33 +0200 Subject: [PATCH 31/67] 2.0.0-beta.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6a9978..7d5c04c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.2", + "version": "2.0.0-beta.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.2", + "version": "2.0.0-beta.3", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index f680ef4..ec167f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.2", + "version": "2.0.0-beta.3", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From 87c06f76f3000e28133b19deb862e00988e2ca5a Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 10:54:16 +0200 Subject: [PATCH 32/67] Fix range slider thumb width customization --- scss/form/_range.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scss/form/_range.scss b/scss/form/_range.scss index 9fabf97..2ebf63f 100644 --- a/scss/form/_range.scss +++ b/scss/form/_range.scss @@ -52,7 +52,7 @@ border-radius: config('thumb-border-radius', $form-range); height: config('thumb-height', $form-range); margin-block-start: calc(#{config('track-height', $form-range)} / 2 - #{config('thumb-height', $form-range)} / 2); - width: 1rem; + width: config('thumb-width', $form-range); } &::-moz-range-thumb { From 68fd4259134a003595c80d26abe5f4609e4151ea Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 13:22:31 +0200 Subject: [PATCH 33/67] Rework main generator function --- preview/assets/scss/config/_config.scss | 25 +++- preview/assets/scss/config/_styles.scss | 5 +- scss/config/_generator.scss | 34 +++++ scss/config/_index.scss | 1 + scss/element/_root.scss | 10 +- scss/form/_fieldset.scss | 2 +- scss/form/_validation.scss | 2 +- scss/mixin/_generator.scss | 172 ++++++++++++++++-------- 8 files changed, 181 insertions(+), 70 deletions(-) create mode 100644 scss/config/_generator.scss diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index d87e12c..51a7db7 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -1,18 +1,18 @@ @use 'sass:color'; @use 'dark-colors' as dark; -$color-tertiary: hsl(337 55% 43%); +$color-tertiary: hsl(337deg 55% 43%); $spacer: 1.25rem; @use 'spruce' with ( $colors: ( 'btn': ( - 'custom-background': hsl(0 0% 100%), - 'custom-background-hover': hsl(332 49% 29%), - 'custom-foreground': hsl(0 0% 0%), - 'custom-foreground-hover': hsl(0 0% 100%), + 'custom-background': hsl(0deg 0% 100%), + 'custom-background-hover': hsl(332deg 49% 29%), + 'custom-foreground': hsl(0deg 0% 0%), + 'custom-foreground-hover': hsl(0deg 0% 100%), 'tertiary-background': $color-tertiary, - 'tertiary-foreground': hsl(0 0% 100%), + 'tertiary-foreground': hsl(0deg 0% 100%), 'tertiary-shadow-focus': color.adjust($color-tertiary, $alpha: -0.75), ), ), @@ -36,8 +36,19 @@ $spacer: 1.25rem; $form-control: ( 'font-weight': 400, ), + $form-range: ( + 'thumb-height': 2rem, + 'thumb-width': 3rem, + ), + $generator: ( + 'content': ( + 'normalize': true, + ), + 'form': ( + 'btn': true, + ) + ), $typography: ( 'font-weight-base': 300, - 'font-weight-heading': 300, ), ); diff --git a/preview/assets/scss/config/_styles.scss b/preview/assets/scss/config/_styles.scss index 61b4442..295be86 100644 --- a/preview/assets/scss/config/_styles.scss +++ b/preview/assets/scss/config/_styles.scss @@ -1,4 +1,3 @@ -@use 'spruce'; +@use 'spruce' as *; -@include spruce.generate-content; -@include spruce.generate-form; +@include generate-styles; diff --git a/scss/config/_generator.scss b/scss/config/_generator.scss new file mode 100644 index 0000000..8d0ede6 --- /dev/null +++ b/scss/config/_generator.scss @@ -0,0 +1,34 @@ +@use 'sass:map'; + +$generator: () !default; +$generator: map.deep-merge( + ( + 'content': ( + 'normalize': true, + 'root': true, + 'accessibility': true, + 'default': true, + 'divider': true, + 'media': true, + 'table': true, + 'typography': true, + 'utilities': true, + 'print': true, + ), + 'form': ( + 'btn': true, + 'file-btn': true, + 'form-label': true, + 'form-control': true, + 'form-check': true, + 'form-switch': true, + 'form-description': true, + 'form-fieldset': true, + 'form-group': true, + 'form-row': true, + 'form-feedback': true, + 'form-range': true, + ) + ), + $generator +); diff --git a/scss/config/_index.scss b/scss/config/_index.scss index 575d475..56a8046 100644 --- a/scss/config/_index.scss +++ b/scss/config/_index.scss @@ -11,3 +11,4 @@ @forward 'breakpoint'; @forward 'print'; @forward 'escaping-characters'; +@forward 'generator'; diff --git a/scss/element/_root.scss b/scss/element/_root.scss index 359df5e..b844759 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -12,9 +12,15 @@ @include generate-variables($transition); } - @include generate-variables($typography); + @if map.get($generator, 'content', 'typography') { + @include generate-variables($typography); + } + @include generate-variables($display); @include generate-variables($layout); - @include generate-variables($print); + + @if map.get($generator, 'content', 'print') { + @include generate-variables($print); + } } } diff --git a/scss/form/_fieldset.scss b/scss/form/_fieldset.scss index 40da12f..1ca1c8c 100644 --- a/scss/form/_fieldset.scss +++ b/scss/form/_fieldset.scss @@ -2,7 +2,7 @@ @use '../mixin' as *; @use '../config' as *; -@mixin generate-fieldset { +@mixin generate-form-fieldset { fieldset { @include generate-variables($form-fieldset); @include layout-stack(config('gap', $form-fieldset)); diff --git a/scss/form/_validation.scss b/scss/form/_validation.scss index 1a9d822..48bc0e9 100644 --- a/scss/form/_validation.scss +++ b/scss/form/_validation.scss @@ -2,7 +2,7 @@ @use '../config' as *; @use '../function' as *; -@mixin generate-field-feedback { +@mixin generate-form-feedback { .field-feedback { display: block; line-height: map.get($typography, 'line-height-md'); diff --git a/scss/mixin/_generator.scss b/scss/mixin/_generator.scss index 412c854..ef1ce1f 100644 --- a/scss/mixin/_generator.scss +++ b/scss/mixin/_generator.scss @@ -1,64 +1,124 @@ +@use 'sass:map'; +@use '../config' as *; @use '../element' as *; @use '../plugin' as *; @use '../form' as *; @use '../print' as *; @use 'button' as *; -// Generate content styling -@mixin generate-content { - @include generate-normalize; - @include generate-root; - @include generate-accessibility; - @include generate-default; - @include generate-divider; - @include generate-media; - @include generate-table; - @include generate-typography; - @include generate-utilities; - @include generate-print; -} +@mixin generate-styles { + @debug $generator; + + @if map.get($generator, 'content', 'normalize') { + @include generate-normalize; + } + + @if map.get($generator, 'content', 'root') { + @include generate-root; + } + + @if map.get($generator, 'content', 'accessibility') { + @include generate-accessibility; + } + + @if map.get($generator, 'content', 'default') { + @include generate-default; + } + + @if map.get($generator, 'content', 'divider') { + @include generate-divider; + } + + @if map.get($generator, 'content', 'media') { + @include generate-media; + } + + @if map.get($generator, 'content', 'table') { + @include generate-table; + } + + @if map.get($generator, 'content', 'typography') { + @include generate-typography; + } + + @if map.get($generator, 'content', 'utilities') { + @include generate-utilities; + } + + @if map.get($generator, 'content', 'print') { + @include generate-print; + } + + @if map.get($generator, 'form', 'btn') { + @include generate-btn('.btn'); + + .btn--primary { @include btn-variant(primary); } + .btn--secondary { @include btn-variant(secondary); } + .btn--outline-primary { @include btn-variant-outline(primary); } + .btn--outline-secondary { @include btn-variant-outline(secondary); } + } + + @if map.get($generator, 'form', 'file-btn') { + @include generate-file-btn( + '.form-file', + '::file-selector-button', + false, + true + ); + } + + @if map.get($generator, 'form', 'form-label') { + @include generate-form-label; + } + + @if map.get($generator, 'form', 'form-control') { + @include generate-form-control( + '.form-control', + true, + true, + true + ); + } + + @if map.get($generator, 'form', 'form-check') { + @include generate-form-check( + '.form-check', + '.form-check__control', + '.form-check__label', + true + ); + } + + @if map.get($generator, 'form', 'form-switch') { + @include generate-form-switch( + '.form-switch', + '.form-switch__control', + '.form-switch__label', + true + ); + } + + @if map.get($generator, 'form', 'form-fieldset') { + @include generate-form-fieldset; + } + + @if map.get($generator, 'form', 'form-group') { + @include generate-form-group; + } + + @if map.get($generator, 'form', 'form-row') { + @include generate-form-row; + } + + @if map.get($generator, 'form', 'form-row') { + @include generate-form-row; + } + + @if map.get($generator, 'form', 'form-feedback') { + @include generate-form-feedback; + } -// Generate form styling -@mixin generate-form { - /* stylelint-disable */ - @include generate-btn('.btn'); - - .btn--primary { @include btn-variant(primary); } - .btn--secondary { @include btn-variant(secondary); } - - .btn--outline-primary { @include btn-variant-outline(primary); } - .btn--outline-secondary { @include btn-variant-outline(secondary); } - - @include generate-file-btn( - '.form-file', - '::file-selector-button', - false, - true - ); - @include generate-form-label; - @include generate-form-control( - '.form-control', - true, - true, - true - ); - @include generate-form-check( - '.form-check', - '.form-check__control', - '.form-check__label', - true - ); - @include generate-form-switch( - '.form-switch', - '.form-switch__control', - '.form-switch__label', - true - ); - @include generate-form-description; - @include generate-fieldset; - @include generate-form-group; - @include generate-form-row; - @include generate-field-feedback; - @include generate-form-range; - /* stylelint-enable */ + @if map.get($generator, 'form', 'form-range') { + @include generate-form-range; + } } From 6f5eaa6061331c30f1968b8484ac07a5816dc896 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 13:57:17 +0200 Subject: [PATCH 34/67] .form-row update --- preview/assets/scss/config/_config.scss | 2 +- preview/pug/page/form.pug | 2 +- scss/config/_generator.scss | 6 ++-- scss/element/_root.scss | 4 +-- scss/form/_row.scss | 2 -- scss/mixin/_generator.scss | 46 ++++++++++++------------- scss/mixin/_layout.scss | 4 +-- 7 files changed, 31 insertions(+), 35 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 51a7db7..d2baf20 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -40,7 +40,7 @@ $spacer: 1.25rem; 'thumb-height': 2rem, 'thumb-width': 3rem, ), - $generator: ( + $generators: ( 'content': ( 'normalize': true, ), diff --git a/preview/pug/page/form.pug b/preview/pug/page/form.pug index 76ae25d..02448b8 100644 --- a/preview/pug/page/form.pug +++ b/preview/pug/page/form.pug @@ -290,7 +290,7 @@ block content div(class='form-group') label(for='state' class='form-label') State input(id='state' class='form-control' type='text') - div(class='form-group form-group--width-auto' style='--col-width: 8ch;') + div(class='form-group form-group--width-auto' style='--spruce-col-width: 8ch;') label(for='zip' class='form-label') Zip input(id='zip' class='form-control' type='text') script. diff --git a/scss/config/_generator.scss b/scss/config/_generator.scss index 8d0ede6..cd5340b 100644 --- a/scss/config/_generator.scss +++ b/scss/config/_generator.scss @@ -1,7 +1,7 @@ @use 'sass:map'; -$generator: () !default; -$generator: map.deep-merge( +$generators: () !default; +$generators: map.deep-merge( ( 'content': ( 'normalize': true, @@ -30,5 +30,5 @@ $generator: map.deep-merge( 'form-range': true, ) ), - $generator + $generators ); diff --git a/scss/element/_root.scss b/scss/element/_root.scss index b844759..f2c9892 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -12,14 +12,14 @@ @include generate-variables($transition); } - @if map.get($generator, 'content', 'typography') { + @if map.get($generators, 'content', 'typography') { @include generate-variables($typography); } @include generate-variables($display); @include generate-variables($layout); - @if map.get($generator, 'content', 'print') { + @if map.get($generators, 'content', 'print') { @include generate-variables($print); } } diff --git a/scss/form/_row.scss b/scss/form/_row.scss index eac9c38..a52e29a 100644 --- a/scss/form/_row.scss +++ b/scss/form/_row.scss @@ -6,8 +6,6 @@ .form-row { &--mixed { @include generate-variables($form-row); - --col-width: #{config('col-width', $form-row)}; - @include layout-flex(s); } } diff --git a/scss/mixin/_generator.scss b/scss/mixin/_generator.scss index ef1ce1f..34713d8 100644 --- a/scss/mixin/_generator.scss +++ b/scss/mixin/_generator.scss @@ -7,49 +7,47 @@ @use 'button' as *; @mixin generate-styles { - @debug $generator; - - @if map.get($generator, 'content', 'normalize') { + @if map.get($generators, 'content', 'normalize') { @include generate-normalize; } - @if map.get($generator, 'content', 'root') { + @if map.get($generators, 'content', 'root') { @include generate-root; } - @if map.get($generator, 'content', 'accessibility') { + @if map.get($generators, 'content', 'accessibility') { @include generate-accessibility; } - @if map.get($generator, 'content', 'default') { + @if map.get($generators, 'content', 'default') { @include generate-default; } - @if map.get($generator, 'content', 'divider') { + @if map.get($generators, 'content', 'divider') { @include generate-divider; } - @if map.get($generator, 'content', 'media') { + @if map.get($generators, 'content', 'media') { @include generate-media; } - @if map.get($generator, 'content', 'table') { + @if map.get($generators, 'content', 'table') { @include generate-table; } - @if map.get($generator, 'content', 'typography') { + @if map.get($generators, 'content', 'typography') { @include generate-typography; } - @if map.get($generator, 'content', 'utilities') { + @if map.get($generators, 'content', 'utilities') { @include generate-utilities; } - @if map.get($generator, 'content', 'print') { + @if map.get($generators, 'content', 'print') { @include generate-print; } - @if map.get($generator, 'form', 'btn') { + @if map.get($generators, 'form', 'btn') { @include generate-btn('.btn'); .btn--primary { @include btn-variant(primary); } @@ -58,7 +56,7 @@ .btn--outline-secondary { @include btn-variant-outline(secondary); } } - @if map.get($generator, 'form', 'file-btn') { + @if map.get($generators, 'form', 'file-btn') { @include generate-file-btn( '.form-file', '::file-selector-button', @@ -67,11 +65,11 @@ ); } - @if map.get($generator, 'form', 'form-label') { + @if map.get($generators, 'form', 'form-label') { @include generate-form-label; } - @if map.get($generator, 'form', 'form-control') { + @if map.get($generators, 'form', 'form-control') { @include generate-form-control( '.form-control', true, @@ -80,7 +78,7 @@ ); } - @if map.get($generator, 'form', 'form-check') { + @if map.get($generators, 'form', 'form-check') { @include generate-form-check( '.form-check', '.form-check__control', @@ -89,7 +87,7 @@ ); } - @if map.get($generator, 'form', 'form-switch') { + @if map.get($generators, 'form', 'form-switch') { @include generate-form-switch( '.form-switch', '.form-switch__control', @@ -98,27 +96,27 @@ ); } - @if map.get($generator, 'form', 'form-fieldset') { + @if map.get($generators, 'form', 'form-fieldset') { @include generate-form-fieldset; } - @if map.get($generator, 'form', 'form-group') { + @if map.get($generators, 'form', 'form-group') { @include generate-form-group; } - @if map.get($generator, 'form', 'form-row') { + @if map.get($generators, 'form', 'form-row') { @include generate-form-row; } - @if map.get($generator, 'form', 'form-row') { + @if map.get($generators, 'form', 'form-row') { @include generate-form-row; } - @if map.get($generator, 'form', 'form-feedback') { + @if map.get($generators, 'form', 'form-feedback') { @include generate-form-feedback; } - @if map.get($generator, 'form', 'form-range') { + @if map.get($generators, 'form', 'form-range') { @include generate-form-range; } } diff --git a/scss/mixin/_layout.scss b/scss/mixin/_layout.scss index 9a0f7b1..0e42459 100644 --- a/scss/mixin/_layout.scss +++ b/scss/mixin/_layout.scss @@ -124,7 +124,7 @@ // Create instinctive flex layout. @mixin layout-flex( $gap: m, - $width-variable: --col-width + $width-variable: get-css-variable(--col-width) ) { @if map.has-key($spacers, $gap) { $gap: map.get($spacers, $gap); @@ -135,6 +135,6 @@ gap: $gap; > * { - flex: 1 1 var(#{$width-variable}); + flex: 1 1 $width-variable; } } From f1db259bb1aadfdb1aacd15d6072bd5b2835d014 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 15:29:09 +0200 Subject: [PATCH 35/67] Document sass functions and mixins --- scss/config/_escaping-characters.scss | 2 +- scss/element/_media.scss | 1 - scss/element/_root.scss | 1 - scss/function/_config.scss | 6 +++++ scss/function/_css-variable.scss | 1 + scss/function/_font-size.scss | 8 ++++++- scss/function/_setting.scss | 5 +++- scss/function/_spacer.scss | 11 +++++++-- scss/function/_transition.scss | 5 +++- scss/function/_utilities.scss | 5 +++- scss/mixin/_breakpoint.scss | 5 ++++ scss/mixin/_button.scss | 14 +++++++++++ scss/mixin/_color.scss | 4 ++++ scss/mixin/_css-variable.scss | 5 +++- scss/mixin/_font-face.scss | 8 +++++++ scss/mixin/_form.scss | 19 ++++++++++++--- scss/mixin/_generator.scss | 1 + scss/mixin/_layout.scss | 25 ++++++++++++++++---- scss/mixin/_transition.scss | 6 +++++ scss/mixin/_utilities.scss | 34 ++++++++++++++++++++------- scss/mixin/_variables.scss | 6 +++++ 21 files changed, 145 insertions(+), 27 deletions(-) diff --git a/scss/config/_escaping-characters.scss b/scss/config/_escaping-characters.scss index 99f97b3..d01c798 100644 --- a/scss/config/_escaping-characters.scss +++ b/scss/config/_escaping-characters.scss @@ -1,4 +1,4 @@ -// Characters to escape using SVG as data:image +/// Characters to escape using SVG as data:image. $escaping-characters: ( ('<', '%3c'), ('>', '%3e'), diff --git a/scss/element/_media.scss b/scss/element/_media.scss index 3c2921d..5966334 100644 --- a/scss/element/_media.scss +++ b/scss/element/_media.scss @@ -2,7 +2,6 @@ @use '../mixin' as *; @mixin generate-media { - // Set responsive images and disable image select img { display: block; height: auto; diff --git a/scss/element/_root.scss b/scss/element/_root.scss index f2c9892..c8b2d50 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -4,7 +4,6 @@ @use '../config' as *; @mixin generate-root { - // Generate the $colors maps into CSS custom properties. @include generate-color-variables; :root { diff --git a/scss/function/_config.scss b/scss/function/_config.scss index b08daba..f915bd7 100644 --- a/scss/function/_config.scss +++ b/scss/function/_config.scss @@ -3,6 +3,12 @@ @use 'setting' as *; @use '../config' as *; +/// Get the value of a key from a map. +/// @param {string} $key - The key name. +/// @param {map} $map - The map to get the value from. +/// @param {boolean} $custom-property - Whether to return the value as a CSS custom property. +/// @return {string} - The value of the key. +/// @throws {error} - If the key doesn't exist. @function config( $key, $map, diff --git a/scss/function/_css-variable.scss b/scss/function/_css-variable.scss index cac5229..f9ac652 100644 --- a/scss/function/_css-variable.scss +++ b/scss/function/_css-variable.scss @@ -5,6 +5,7 @@ /// Add the prefix value to a CSS custom properties. /// @param {string} $var - The name of the CSS custom property. /// @return {string} - The CSS custom property with the prefix. +/// @throws {error} - If the CSS custom property name is invalid. @function get-css-variable($var) { @if string.index($var, --) != 1 { @error 'It seems that this is not a valid CSS custom property name.'; diff --git a/scss/function/_font-size.scss b/scss/function/_font-size.scss index d02fca9..338108a 100644 --- a/scss/function/_font-size.scss +++ b/scss/function/_font-size.scss @@ -2,7 +2,13 @@ @use 'sass:math'; @use '../config' as *; -// Get font-size value from $font-sizes Sass map +/// Get the font size of a key from the $font-sizes map. +/// @param {string} $key - The key name. +/// @param {boolean} $fluid - Whether to return the fluid font size. +/// @param {number} $scaler - The scaler value (15 = 15% smaller). +/// @param {number} $optimal-size - The optimal font size. +/// @return {string} - The font size of the key. +/// @throws {error} - If the key doesn't exist. @function font-size( $key, $fluid: true, diff --git a/scss/function/_setting.scss b/scss/function/_setting.scss index eb1a3f5..3bc9134 100644 --- a/scss/function/_setting.scss +++ b/scss/function/_setting.scss @@ -1,7 +1,10 @@ @use 'sass:map'; @use '../config' as *; -// Get spacer value from $settings Sass map +/// Get spacer value from $settings map. +/// @param {string} $key - The key name. +/// @return {string} - The value of the key. +/// @throws {error} - If the key doesn't exist. @function setting($key) { @if not map.has-key($settings, $key) { @error 'The #{$key} key name doesn\'t exist at the $settings map.'; diff --git a/scss/function/_spacer.scss b/scss/function/_spacer.scss index 6c8c03c..33557aa 100644 --- a/scss/function/_spacer.scss +++ b/scss/function/_spacer.scss @@ -1,7 +1,10 @@ @use 'sass:map'; @use '../config' as *; -// Get spacer value from $spacers Sass map +/// Get spacer value from $spacers map. +/// @param {string} $key - The key name. +/// @return {string} - The value of the key. +/// @throws {error} - If the key doesn't exist. @function spacer($key) { @if not map.has-key($spacers, $key) { @error 'The #{$key} key name doesn\'t exist at the $spacers map.'; @@ -10,7 +13,11 @@ @return map.get($spacers, $key); } -// Get value returned in a clamp from $spacers maps. +/// Get value returned in a clamp from $spacers maps. +/// @param {string} $min - The minimum value. +/// @param {string} $max - The maximum value. +/// @param {string} $optimal - The optimal value. +/// @return {string} - The value returned in a clamp. @function spacer-clamp( $min, $max, diff --git a/scss/function/_transition.scss b/scss/function/_transition.scss index cbd7e59..3efea87 100644 --- a/scss/function/_transition.scss +++ b/scss/function/_transition.scss @@ -1,7 +1,10 @@ @use 'sass:map'; @use '../config' as *; -// Get transition custom CSS properties +/// Get transition custom CSS properties. +/// @param {string} $key - The key name. +/// @return {string} - The value of the key. +/// @throws {error} - If the key doesn't exist. @function transition( $key ) { diff --git a/scss/function/_utilities.scss b/scss/function/_utilities.scss index 00c4953..c35884f 100644 --- a/scss/function/_utilities.scss +++ b/scss/function/_utilities.scss @@ -16,7 +16,10 @@ @return $string; } -// See https://codepen.io/kevinweber/pen/dXWoRw +/// Escape a string to be used as a data URI. +/// @param {String} $string - The string to escape. +/// @return {String} - The escaped string. +/// @author Kevin Weber - https://codepen.io/kevinweber/pen/dXWoRw @function svg-escape($svg) { @each $char, $encoded in $escaping-characters { $svg: str-replace($svg, $char, $encoded); diff --git a/scss/mixin/_breakpoint.scss b/scss/mixin/_breakpoint.scss index 4ec42fb..81c4dd3 100644 --- a/scss/mixin/_breakpoint.scss +++ b/scss/mixin/_breakpoint.scss @@ -1,6 +1,11 @@ @use 'sass:map'; @use '../config' as *; +/// Return a media query for a breakpoint based on min-width. +/// @param {string} $breakpoint - The breakpoint name. +/// @param {string} $logic - The logic operator. +/// @return {string} - The media query. +/// @throws {error} - If the breakpoint doesn't exist. @mixin breakpoint( $breakpoint, $logic: false diff --git a/scss/mixin/_button.scss b/scss/mixin/_button.scss index d68ca5b..54a67d1 100644 --- a/scss/mixin/_button.scss +++ b/scss/mixin/_button.scss @@ -4,6 +4,10 @@ @use '../config' as *; @use 'form' as *; +/// Generate a button focus ring. +/// @param {string} $type - The type of the button for the color value. +/// @param {boolean} $focus - If the focus ring should be generated. +/// @return {string} - The generated focus ring. @mixin btn-focus-helper( $type: primary, $focus: true @@ -29,6 +33,11 @@ } } +/// Generate a button variant. +/// @param {string} $type - The type of the button for the color value. +/// @param {boolean} $focus - If the focus ring should be generated. +/// @return {string} - The generated button variant. +/// @throws {error} - If the color key doesn't exist. @mixin btn-variant( $type: primary, $focus: true @@ -60,6 +69,11 @@ } } +/// Generate a button variant with outline. +/// @param {string} $type - The type of the button for the color value. +/// @param {boolean} $focus - If the focus ring should be generated. +/// @return {string} - The generated button variant with outline. +/// @throws {error} - If the color key doesn't exist. @mixin btn-variant-outline( $type: primary, $focus: true diff --git a/scss/mixin/_color.scss b/scss/mixin/_color.scss index 6402f54..762cd09 100644 --- a/scss/mixin/_color.scss +++ b/scss/mixin/_color.scss @@ -2,6 +2,10 @@ @use '../function' as *; @use '../config' as *; +/// Generate color variables. +/// @param {map} $colors - The colors map. +/// @param {string} $selector - The selector. +/// @return {string} - The generated color variables. @mixin generate-color-variables( $colors: $colors, $selector: ':root' diff --git a/scss/mixin/_css-variable.scss b/scss/mixin/_css-variable.scss index 1d0246e..e8a9d8b 100644 --- a/scss/mixin/_css-variable.scss +++ b/scss/mixin/_css-variable.scss @@ -2,7 +2,10 @@ @use 'sass:map'; @use '../config' as *; -// Declare CSS custom properties through Spruce to add the prefix +/// Declare CSS custom properties through Spruce to add the prefix. +/// @param {map} $vars - The CSS custom properties. +/// @return {null} +/// @throws {error} - If the CSS custom property name is invalid. @mixin set-css-variable($vars) { @each $name, $value in $vars { @if string.index($name, --) != 1 { diff --git a/scss/mixin/_font-face.scss b/scss/mixin/_font-face.scss index 3408a47..603e020 100644 --- a/scss/mixin/_font-face.scss +++ b/scss/mixin/_font-face.scss @@ -1,5 +1,13 @@ @use 'sass:string'; +/// Generate font-face declaration. +/// @param {string} $font-family - The font family name. +/// @param {string} $src - The font source. +/// @param {number} $font-weight - The font weight. +/// @param {string} $font-style - The font style. +/// @param {string} $font-display - The font display. +/// @return {string} - The generated font-face declaration. +/// @throws {error} - If the font format is not .woff2. @mixin font-face( $font-family: null, $src: null, diff --git a/scss/mixin/_form.scss b/scss/mixin/_form.scss index e4ea97f..49f1816 100644 --- a/scss/mixin/_form.scss +++ b/scss/mixin/_form.scss @@ -2,7 +2,14 @@ @use '../function' as *; @use '../config' as *; -// Style field focus state +/// Generate a from focus ring. +/// @param {string} $type - The type of focus ring (box-shadow, outline). +/// @param {string} $border-color - The border color. +/// @param {string} $ring-color - The ring color. +/// @param {string} $box-shadow-type - The box shadow type (outset, inset). +/// @param {string} $ring-width - The ring width. +/// @param {string} $ring-offset - The ring offset. +/// @return {string} - The generated focus ring. @mixin focus-ring( $type: 'box-shadow', $border-color: null, @@ -27,7 +34,10 @@ } } -// Style field disabled state +/// Style field disabled input states. +/// @param {string} $background - The background color. +/// @param {string} $border - The border color. +/// @return {string} - The generated disabled input states. @mixin field-disabled( $background, $border @@ -37,7 +47,10 @@ cursor: not-allowed; } -// Get custom icon background for input and select fields +/// Get custom icon background for input and select fields. +/// @param {string} $icon - The icon (an SVG in string). +/// @param {string} $color - The color. +/// @return {string} - The generated icon background. @mixin field-icon( $icon, $color diff --git a/scss/mixin/_generator.scss b/scss/mixin/_generator.scss index 34713d8..2885f58 100644 --- a/scss/mixin/_generator.scss +++ b/scss/mixin/_generator.scss @@ -6,6 +6,7 @@ @use '../print' as *; @use 'button' as *; +/// Generate all the styles. @mixin generate-styles { @if map.get($generators, 'content', 'normalize') { @include generate-normalize; diff --git a/scss/mixin/_layout.scss b/scss/mixin/_layout.scss index 0e42459..5ca0b65 100644 --- a/scss/mixin/_layout.scss +++ b/scss/mixin/_layout.scss @@ -3,7 +3,7 @@ @use '../function' as *; @use '../config' as *; -/// Create Center layout +/// Create center layout. /// @param {string} $gap - The gap between the container and the content. /// @param {string} $max-width - The maximum width of the container. /// @return {mixin} - The centered layout. @@ -20,7 +20,13 @@ padding-inline: $gap; } -// Create Stack layout +/// Create stack layout. +/// @param {string} $gap - The gap between the the elements. +/// @param {boolean} $width - The width of the elements. +/// @param {string} $align - The horizontal alignment of the elements. +/// @param {boolean} $important - Whether it should use the !important keyword. +/// @param {number} $split - The number of element where it should split the layout. +/// @return {mixin} - The stacked layout. @mixin layout-stack( $gap: m, $width: false, @@ -77,7 +83,10 @@ } } -// Create Grid layout +/// Create grid layout. +/// @param {string} $gap - The gap between the the elements. +/// @param {string} $minimum - The minimum width of the elements. +/// @return {mixin} - The grid layout. @mixin layout-grid( $gap: m, $minimum: 12.5rem @@ -96,7 +105,10 @@ } } -// Create Sidebar Layout +/// Create sidebar layout. +/// @param {string} $gap - The gap between the the elements. +/// @param {string} $sidebar-width - The width of the sidebar. +/// @return {mixin} - The sidebar layout. @mixin layout-sidebar( $gap: m, $sidebar-width: 18.75rem @@ -121,7 +133,10 @@ } } -// Create instinctive flex layout. +/// Create instinctive flex layout. +/// @param {string} $gap - The gap between the the elements. +/// @param {string} $width-variable - The width of the elements. +/// @return {mixin} - The instinctive flex layout. @mixin layout-flex( $gap: m, $width-variable: get-css-variable(--col-width) diff --git a/scss/mixin/_transition.scss b/scss/mixin/_transition.scss index 01d9b71..01ab861 100644 --- a/scss/mixin/_transition.scss +++ b/scss/mixin/_transition.scss @@ -1,5 +1,11 @@ @use '../function' as *; +/// Generates transiton related declarations. +/// @param {string} $duration - The duration of the transition. +/// @param {string} $property - The property to which the transition is applied. +/// @param {string} $timing-function - The speed curve of the transition. +/// @return {string} - The generated transition declarations. +/// @throws {error} - If the duration or timing-function is invalid. @mixin transition( $duration: duration, $property: all, diff --git a/scss/mixin/_utilities.scss b/scss/mixin/_utilities.scss index a64394c..be8dc38 100644 --- a/scss/mixin/_utilities.scss +++ b/scss/mixin/_utilities.scss @@ -2,7 +2,8 @@ @use '../function' as *; @use '../config' as *; -// Hide something from the screen but keep it visible for assistive technology +/// Hide something from the screen but keep it visible for assistive technology. +/// @return {mixin} - The visually hidden mixin. @mixin visually-hidden { border: 0 !important; clip: rect(0, 0, 0, 0) !important; @@ -15,7 +16,9 @@ width: 1px !important; } -// Crop text and display an ellipsis with multiline +/// Crop text and display an ellipsis with multiline. +/// @param {number} $number-of-lines - The number of lines. +/// @return {mixin} - The text ellipsis mixin. @mixin text-ellipsis( $number-of-lines: 1 ) { @@ -35,7 +38,13 @@ } } -// Custom scrollbar +/// Custom scrollbar. +/// @param {string} $thumb-background-color - The background color of the thumb. +/// @param {string} $thumb-background-color-hover - The background color of the thumb when hovered. +/// @param {string} $track-background-color - The background color of the track. +/// @param {string} $size - The size of the scrollbar. +/// @param {string} $border-radius - The border radius of the scrollbar. +/// @return {mixin} - The scrollbar mixin. @mixin scrollbar( $thumb-background-color: color(thumb-background, scrollbar), $thumb-background-color-hover: color(thumb-background-hover, scrollbar), @@ -63,7 +72,8 @@ } } -// Clear default button styles +/// Clear default button styles. +/// @return {mixin} - The clear button mixin. @mixin clear-btn { background: none; border: 0; @@ -81,8 +91,14 @@ padding: 0; } -// More accessible card linking -@mixin a11y-card-link($link, $at-root: false) { +/// More accessible card linking. +/// @param {string} $link - The link element's selector. +/// @param {boolean} $at-root - Whether to use @at-root. +/// @return {mixin} - The a11y card link mixin. +@mixin a11y-card-link( + $link, + $at-root: false +) { position: relative; @if $at-root == true { @@ -102,9 +118,9 @@ } } -// Break long string -// @author Chris Coyier -// https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/ +/// Break long string +/// @author Chris Coyier - https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/ +/// @return {mixin} - The word-wrap mixin. @mixin word-wrap { hyphens: auto; overflow-wrap: break-word; diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 5199769..6edb91a 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -2,6 +2,12 @@ @use 'sass:string'; @use '../config' as *; +/// Generate CSS custom properties based on a map. +/// @param {map} $map - The map to generate the CSS custom properties from. +/// @param {list} $exclude - The list of keys (or a segment of it) to exclude. +/// @param {list} $include - The list of keys (or a segment of it) to include. +/// @return {string} - The generated CSS custom properties. +/// @throws {error} - If you use both $exclude and $include arguments. @mixin generate-variables($map, $exclude: null, $include: null) { @if $exclude and $include { @error 'You can\'t use both $exclude and $include arguments.'; From f1d398d601896760f7946048a99d987ae7922365 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 15:53:48 +0200 Subject: [PATCH 36/67] Add missing generator settings --- preview/assets/scss/config/_config.scss | 2 +- scss/config/_generator.scss | 18 ++++++++++-------- scss/element/_root.scss | 9 +++++++-- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index d2baf20..a8b76ea 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -34,7 +34,7 @@ $spacer: 1.25rem; 'text-transform': uppercase, ), $form-control: ( - 'font-weight': 400, + 'font-weight': 300, ), $form-range: ( 'thumb-height': 2rem, diff --git a/scss/config/_generator.scss b/scss/config/_generator.scss index cd5340b..2c398f4 100644 --- a/scss/config/_generator.scss +++ b/scss/config/_generator.scss @@ -4,30 +4,32 @@ $generators: () !default; $generators: map.deep-merge( ( 'content': ( - 'normalize': true, - 'root': true, 'accessibility': true, 'default': true, + 'display': true, 'divider': true, + 'layout': true, 'media': true, + 'normalize': true, + 'print': true, + 'root': true, 'table': true, 'typography': true, 'utilities': true, - 'print': true, ), 'form': ( 'btn': true, 'file-btn': true, - 'form-label': true, - 'form-control': true, 'form-check': true, - 'form-switch': true, + 'form-control': true, 'form-description': true, + 'form-feedback': true, 'form-fieldset': true, 'form-group': true, - 'form-row': true, - 'form-feedback': true, + 'form-label': true, 'form-range': true, + 'form-row': true, + 'form-switch': true, ) ), $generators diff --git a/scss/element/_root.scss b/scss/element/_root.scss index c8b2d50..46e5eb5 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -15,8 +15,13 @@ @include generate-variables($typography); } - @include generate-variables($display); - @include generate-variables($layout); + @if map.get($generators, 'content', 'display') { + @include generate-variables($display); + } + + @if map.get($generators, 'content', 'layout') { + @include generate-variables($layout); + } @if map.get($generators, 'content', 'print') { @include generate-variables($print); From e393c6e840d5d871966801f6cb98717e77ae307c Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 18:07:41 +0200 Subject: [PATCH 37/67] Rework utilities --- preview/assets/scss/config/_config.scss | 4 +++- preview/pug/page/media.pug | 4 ++-- preview/pug/page/typography.pug | 2 ++ scss/config/_setting.scss | 7 ++++-- scss/element/_media.scss | 6 ----- scss/element/_typography.scss | 18 +++++---------- scss/element/_utilities.scss | 29 ++++++++++++++++++++++++- scss/function/_setting.scss | 17 ++++++++++++++- 8 files changed, 62 insertions(+), 25 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index a8b76ea..06c5c36 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -23,7 +23,9 @@ $spacer: 1.25rem; 'hyphens': true, 'prefix': 'spruce', 'print': true, - 'utilities': true, + 'utilities': ( + 'typography': false, + ), 'css-custom-properties': true, ), $btn: ( diff --git a/preview/pug/page/media.pug b/preview/pug/page/media.pug index 0dbbec0..32ad854 100644 --- a/preview/pug/page/media.pug +++ b/preview/pug/page/media.pug @@ -5,11 +5,11 @@ block variables -var page = 'media'; block content - div(class='aspect-ratio-16-9') + div(style='aspect-ratio: 16 / 9;') iframe(width='560' height='315' src='https://www.youtube.com/embed/-6Xl9tBWt54' title='YouTube video player' frameborder='0' allow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture' allowfullscreen) img(src='https://images.unsplash.com/photo-1482539259217-f31001045448?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1650&q=80' alt='...') figure(class='figure') img(src='https://images.unsplash.com/photo-1550745165-9bc0b252726f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1650&q=80' alt='...') figcaption(class='figure-caption') A caption for the above image. - div(class='aspect-ratio-4-3') + div(style='aspect-ratio: 4 / 3;') iframe(src='https://www.google.com/maps/embed?pb=!1m14!1m12!1m3!1d41126.9496578375!2d17.890734642764393!3d46.95617814407089!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!5e0!3m2!1shu!2shu!4v1646924792947!5m2!1shu!2shu' width='600' height='450' style='border:0;' allowfullscreen loading='lazy') diff --git a/preview/pug/page/typography.pug b/preview/pug/page/typography.pug index 2b06e1a..15e8d8c 100644 --- a/preview/pug/page/typography.pug +++ b/preview/pug/page/typography.pug @@ -71,3 +71,5 @@ block content li List item two li List item three li List item four + p.h1 Heading level #1 + p.hidden This is a hidden paragraph. diff --git a/scss/config/_setting.scss b/scss/config/_setting.scss index 8c818d8..4387a9f 100644 --- a/scss/config/_setting.scss +++ b/scss/config/_setting.scss @@ -1,7 +1,7 @@ @use 'sass:map'; $settings: () !default; -$settings: map.merge( +$settings: map.deep-merge( ( 'color-fallback': false, 'html-smooth-scrolling': true, @@ -10,7 +10,10 @@ $settings: map.merge( 'optimal-spacer-size': '5vw', 'prefix': 'spruce', 'print': false, - 'utilities': false, + 'utilities': ( + 'display': true, + 'typography': true, + ), 'css-custom-properties': false, ), $settings diff --git a/scss/element/_media.scss b/scss/element/_media.scss index 5966334..6a2f60b 100644 --- a/scss/element/_media.scss +++ b/scss/element/_media.scss @@ -24,10 +24,4 @@ text-align: center; } } - - @if setting(utilities) == true { - .aspect-ratio-16-9 { aspect-ratio: 16 / 9; } - .aspect-ratio-4-3 { aspect-ratio: 4 / 3; } - .aspect-ratio-1 { aspect-ratio: 1; } - } } diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index d14f0c4..d23faff 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -41,33 +41,27 @@ line-height: config('line-height-heading', $typography); } - h1, - .h1 { + h1 { font-size: font-size(h1); } - h2, - .h2 { + h2 { font-size: font-size(h2); } - h3, - .h3 { + h3 { font-size: font-size(h3); } - h4, - .h4 { + h4 { font-size: font-size(h4); } - h5, - .h5 { + h5 { font-size: font-size(h5); } - h6, - .h6 { + h6 { font-size: font-size(h6); } diff --git a/scss/element/_utilities.scss b/scss/element/_utilities.scss index 66af907..a23c2bb 100644 --- a/scss/element/_utilities.scss +++ b/scss/element/_utilities.scss @@ -1,10 +1,37 @@ @use '../function' as *; @mixin generate-utilities { - @if setting(utilities) == true { + @debug setting('display', 'utilities'); + @if setting('display', 'utilities') == true { .hidden, [hidden] { display: none !important; } } + + @if setting('typography', 'utilities') == true { + .h1 { + font-size: font-size('h1'); + } + + .h2 { + font-size: font-size('h2'); + } + + .h3 { + font-size: font-size('h3'); + } + + .h4 { + font-size: font-size('h4'); + } + + .h5 { + font-size: font-size('h5'); + } + + .h6 { + font-size: font-size('h6'); + } + } } diff --git a/scss/function/_setting.scss b/scss/function/_setting.scss index 3bc9134..64af6cb 100644 --- a/scss/function/_setting.scss +++ b/scss/function/_setting.scss @@ -5,7 +5,22 @@ /// @param {string} $key - The key name. /// @return {string} - The value of the key. /// @throws {error} - If the key doesn't exist. -@function setting($key) { +@function setting( + $key, + $group: null +) { + @if $group { + @if not map.has-key($settings, $group) { + @error 'The #{$group} key name doesn\'t exist at the $settings map.'; + } + + @if not map.has-key(map.get($settings, $group), $key) { + @error 'The #{$key} key name doesn\'t exist at the #{$group} map.'; + } + + @return map.get(map.get($settings, $group), $key); + } + @if not map.has-key($settings, $key) { @error 'The #{$key} key name doesn\'t exist at the $settings map.'; } From 2970ee842e5507b22ebffd82987a3f7fed3fee84 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 18:15:13 +0200 Subject: [PATCH 38/67] WIP --- scss/element/_typography.scss | 42 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index d23faff..35ba7ef 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -35,58 +35,58 @@ h4, h5, h6 { - color: color(heading); + color: color('heading'); font-family: config('font-family-heading', $typography); font-weight: config('font-weight-heading', $typography); line-height: config('line-height-heading', $typography); } h1 { - font-size: font-size(h1); + font-size: font-size('h1'); } h2 { - font-size: font-size(h2); + font-size: font-size('h2'); } h3 { - font-size: font-size(h3); + font-size: font-size('h3'); } h4 { - font-size: font-size(h4); + font-size: font-size('h4'); } h5 { - font-size: font-size(h5); + font-size: font-size('h5'); } h6 { - font-size: font-size(h6); + font-size: font-size('h6'); } ul, ol { - @include layout-stack(xxs, $width: false); + @include layout-stack('xxs', $width: false); list-style-position: inside; li { list-style-position: outside; &::marker { - color: color(marker); + color: color('marker'); } } } li > ul, li > ol { - margin-block-start: spacer(xxs); + margin-block-start: spacer('xxs'); } dl { dt { - color: color(heading); + color: color('heading'); font-weight: bold; } @@ -95,13 +95,13 @@ } dd + dt { - margin-block-start: spacer(s); + margin-block-start: spacer('s'); } } .quote { - @include layout-stack(xs); - border-inline-start: 0.5rem solid color(blockquote-border); + @include layout-stack('xs'); + border-inline-start: 0.5rem solid color('blockquote-border'); padding-inline-start: spacer(m); blockquote { @@ -115,10 +115,10 @@ } blockquote { - @include layout-stack(xs); - border-inline-start: 0.5rem solid color(blockquote-border); + @include layout-stack('xs'); + border-inline-start: 0.5rem solid color('blockquote-border'); margin-inline-start: 0; - padding-inline-start: spacer(m); + padding-inline-start: spacer('m'); } abbr[title] { @@ -128,18 +128,18 @@ } mark { - background-color: color(mark-background); + background-color: color('mark-background'); border-radius: config('inline-border-radius', $typography); - color: color(mark-foreground); + color: color('mark-foreground'); padding: config('inline-padding', $typography); } code, kbd, samp { - background-color: color(code-background); + background-color: color('code-background'); border-radius: config('inline-border-radius', $typography); - color: color(code-foreground); + color: color('code-foreground'); padding: config('inline-padding', $typography); } From 370e42055f14920c09f06f0a020b62948de721c9 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 18:19:28 +0200 Subject: [PATCH 39/67] Remove cookie handler JS --- js/cookie.js | 60 -------------------------------- package.json | 5 --- preview/assets/js/cookie-test.js | 24 ------------- preview/pug/layout.pug | 2 -- preview/pug/page/js.pug | 16 --------- 5 files changed, 107 deletions(-) delete mode 100644 js/cookie.js delete mode 100644 preview/assets/js/cookie-test.js delete mode 100644 preview/pug/page/js.pug diff --git a/js/cookie.js b/js/cookie.js deleted file mode 100644 index 575a9cb..0000000 --- a/js/cookie.js +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Set a cookie value for the given key. - * - * @param {string} key - * @param {string} value - * @param {number|null} expires - * @param {string} path - * @param {object} options - * @return {void} - */ -export function setCookie(key, value, expires = null, path = '/', options = {}) { - const defaults = { - [key]: value, - expires, - path, - SameSite: 'Lax', - Secure: true, - }; - - const pairs = { ...defaults, ...options }; - - pairs.expires = pairs.expires ? new Date(Date.now() + 86400 * 1000 * pairs.expires) - .toUTCString() : null; - - document.cookie = Object.entries(pairs) - .reduce((stack, entry) => stack.concat(entry.join('=')), []) - .join('; '); -} - -/** - * Get the cookie with the given key. - * - * @param {string} key - * @return {mixed} - */ -export function getCookie(key) { - const cookie = document.cookie.match(new RegExp(`(^| )${key}=([^;]+)`)); - - return (cookie && cookie[2]) ? cookie[2] : null; -} - -/** - * Determine if the given cookie exists. - * - * @param {string} key - * @return {bool} - */ -export function issetCookie(key) { - return document.cookie.match(new RegExp(`(^| )${key}=([^;]+)`)) !== null; -} - -/** - * Remove the given cookie. - * - * @param {string} key - * @return {void} - */ -export function removeCookie(key) { - setCookie(key, null, 'Thu, 01 Jan 1970 00:00:01 GMT'); -} diff --git a/package.json b/package.json index ec167f2..c7cf4df 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,6 @@ "autoprefixer": "postcss css/*.css -u autoprefixer --replace --no-map", "browser-sync": "browser-sync start --server --startPath \"preview/html/page/color.html\" --files \"**/*\" --directory --no-notify --no-open", "delete:dev-folder": "del-cli --force css", - "js:lint": "npx eslint \"js/**\"", - "js:lint:fix": "npx eslint \"js/**\" --fix", "prod": "npm-run-all delete:dev-folder sass:prod:expanded sass:prod:compressed autoprefixer", "pug": "pug --obj preview/pug/assets/data.json --watch preview/pug/ --out preview/html/ --pretty", "sass:preview": "sass --watch --update --style=expanded --no-source-map preview/assets/scss:preview/assets/css --load-path=scss", @@ -41,9 +39,6 @@ "autoprefixer": "^10.4.14", "browser-sync": "^2.29.1", "del-cli": "^5.0.0", - "eslint": "^8.36.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.27.5", "npm-run-all": "^4.1.5", "postcss-cli": "^10.1.0", "pug-cli": "^1.0.0-alpha6", diff --git a/preview/assets/js/cookie-test.js b/preview/assets/js/cookie-test.js deleted file mode 100644 index d6f0fa2..0000000 --- a/preview/assets/js/cookie-test.js +++ /dev/null @@ -1,24 +0,0 @@ -// eslint-disable-next-line import/extensions -import {setCookie, getCookie, issetCookie, removeCookie} from '../../../js/cookie.js'; - -document.addEventListener('click', (e) => { - if (!e.target.matches('[data-cookie]')) return; - - switch (e.target.dataset.cookie) { - case 'set': - setCookie('spruce-test', true, 10, '/'); - break; - case 'get': - // eslint-disable-next-line no-alert - alert(getCookie('spruce-test')); - break; - case 'isset': - // eslint-disable-next-line no-alert - alert(issetCookie('spruce-test')); - break; - case 'remove': - removeCookie('spruce-test'); - break; - default: - } -}); diff --git a/preview/pug/layout.pug b/preview/pug/layout.pug index b137ad6..63564e2 100644 --- a/preview/pug/layout.pug +++ b/preview/pug/layout.pug @@ -37,8 +37,6 @@ html(lang='en') a(href='form.html' aria-current=page === 'form' ? 'page' : '') Form li a(href='mixin.html' aria-current=page === 'mixin' ? 'page' : '') Mixin - li - a(href='js.html' aria-current=page === 'js' ? 'page' : '') JS div(class='form-group') label(class='form-label') Reading direction select(id='reading-direction' class='form-control form-control--sm') diff --git a/preview/pug/page/js.pug b/preview/pug/page/js.pug deleted file mode 100644 index 4788c66..0000000 --- a/preview/pug/page/js.pug +++ /dev/null @@ -1,16 +0,0 @@ -extends ../layout.pug - -block variables - -var title = 'JS'; - -var page = 'js'; - -block content - h3(class='section-title') Manage Cookies - div(class='btn-group') - button(class='btn btn--primary' data-cookie='set') Set - button(class='btn btn--primary' data-cookie='get') Get - button(class='btn btn--primary' data-cookie='isset') Isset - button(class='btn btn--primary' data-cookie='remove') Remove - -block scripts - script(src='../../assets/js/cookie-test.js' type='module') From 4a03973360af711dae4967db89001f17552aa646 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 20:13:55 +0200 Subject: [PATCH 40/67] WIP --- preview/assets/scss/main.scss | 1 + scss/config/_button.scss | 8 +++---- scss/config/_table.scss | 4 ++-- scss/config/_typography.scss | 2 +- scss/element/_default.scss | 18 +++++++-------- scss/element/_divider.scss | 2 +- scss/element/_media.scss | 2 +- scss/element/_table.scss | 12 +++++----- scss/element/_typography.scss | 2 +- scss/form/_button.scss | 3 --- scss/form/_check.scss | 32 +++++++++++++------------- scss/form/_control.scss | 42 ++++++++++++++++------------------- scss/form/_description.scss | 2 +- scss/form/_fieldset.scss | 4 ++-- scss/form/_file.scss | 2 +- scss/form/_group.scss | 20 ++++++++--------- scss/form/_label.scss | 2 +- scss/form/_range.scss | 12 +++++----- scss/form/_row.scss | 2 +- scss/form/_switch.scss | 26 +++++++++++----------- scss/form/_validation.scss | 4 ++-- scss/function/_color.scss | 2 +- scss/function/_font-size.scss | 10 ++++++--- scss/function/_spacer.scss | 2 +- scss/mixin/_button.scss | 4 ++-- scss/mixin/_layout.scss | 8 +++---- scss/mixin/_selection.scss | 2 +- scss/mixin/_utilities.scss | 8 +++---- scss/mixin/_variables.scss | 6 ++++- scss/print/_index.scss | 2 +- 30 files changed, 124 insertions(+), 122 deletions(-) diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index 8bd5f36..a60d8f3 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -73,6 +73,7 @@ .selection-1 { @include spruce.selection(secondary, $is-direct: true); + @include spruce.transition; } .selection-2 { diff --git a/scss/config/_button.scss b/scss/config/_button.scss index 35142bd..b1de2ec 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -6,7 +6,7 @@ $btn: () !default; $btn: map.merge( ( - 'border-radius': map.get($display, border-radius-sm), + 'border-radius': map.get($display, 'border-radius-sm'), 'focus-ring-box-shadow-type': outside, 'focus-ring-offset': 2px, 'focus-ring-type': outline, @@ -15,7 +15,7 @@ $btn: map.merge( 'font-size': map.get($typography, 'font-size-base'), 'font-style': null, 'font-weight': 500, - 'gap': map.get($spacers, xs), + 'gap': map.get($spacers, 'xs'), 'icon-padding': 0.75em, 'icon-size': 1em, 'outline-width': 1px, @@ -30,7 +30,7 @@ $btn-lg: () !default; $btn-lg: map.merge( ( 'font-size': 1.15rem, - 'gap': map.get($spacers, xs), + 'gap': map.get($spacers, 'xs'), 'icon-padding': 0.9em, 'padding': 0.9em 1.15em, ), @@ -41,7 +41,7 @@ $btn-sm: () !default; $btn-sm: map.merge( ( 'font-size': 0.8rem, - 'gap': map.get($spacers, xxs), + 'gap': map.get($spacers, 'xxs'), 'icon-padding': 0.5em, 'icon-size': 0.85em, 'padding': 0.5em 1em, diff --git a/scss/config/_table.scss b/scss/config/_table.scss index 4f00cd5..caeba1b 100644 --- a/scss/config/_table.scss +++ b/scss/config/_table.scss @@ -9,7 +9,7 @@ $table: map.merge( 'caption-font-style': null, 'caption-font-weight': null, 'line-height': map.get($typography, 'line-height-md'), - 'padding': map.get($spacers, s), + 'padding': map.get($spacers, 's'), 'responsive-width': 40rem, 'stripe': odd, ), @@ -19,7 +19,7 @@ $table: map.merge( $table-sm: () !default; $table-sm: map.merge( ( - 'padding': map.get($spacers, xs), + 'padding': map.get($spacers, 'xs'), ), $table-sm ); diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index 91e346f..2c08979 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -15,7 +15,7 @@ $typography: map.merge( 'font-size-sm': 0.875rem, 'font-weight-base': null, 'font-weight-heading': 700, - 'inline-border-radius': map.get($display, border-radius-sm), + 'inline-border-radius': map.get($display, 'border-radius-sm'), 'inline-padding': 0.1em 0.3em, 'line-height-base': 1.8, 'line-height-heading': calc(2px + 2ex + 2px), diff --git a/scss/element/_default.scss b/scss/element/_default.scss index d4677f2..f84ef15 100644 --- a/scss/element/_default.scss +++ b/scss/element/_default.scss @@ -3,15 +3,15 @@ @mixin generate-default { ::selection { - background-color: color(background, selection); - color: color(foreground, selection); + background-color: color('background', 'selection'); + color: color('foreground', 'selection'); text-shadow: none; } html { box-sizing: border-box; - @if setting(html-smooth-scrolling) { + @if setting('html-smooth-scrolling') { @media (prefers-reduced-motion: no-preference) { scroll-behavior: smooth; } @@ -25,19 +25,19 @@ } body { - background: color(background); - color: color(text); + background: color('background'); + color: color('text'); } a { - color: color(link); + color: color('link'); text-decoration: underline; - transition-duration: transition(duration); + transition-duration: transition('duration'); transition-property: color; - transition-timing-function: transition(timing-function); + transition-timing-function: transition('timing-function'); &:hover { - color: color(link-hover); + color: color('link-hover'); } } diff --git a/scss/element/_divider.scss b/scss/element/_divider.scss index 01adf4a..8061237 100644 --- a/scss/element/_divider.scss +++ b/scss/element/_divider.scss @@ -3,6 +3,6 @@ @mixin generate-divider { hr { border: 0; - border-block-start: 1px solid color(border); + border-block-start: 1px solid color('border'); } } diff --git a/scss/element/_media.scss b/scss/element/_media.scss index 6a2f60b..8145ff1 100644 --- a/scss/element/_media.scss +++ b/scss/element/_media.scss @@ -20,7 +20,7 @@ margin-right: 0; figcaption { - margin-block-start: spacer(xs); + margin-block-start: spacer('xs'); text-align: center; } } diff --git a/scss/element/_table.scss b/scss/element/_table.scss index 7823786..4d61c0a 100644 --- a/scss/element/_table.scss +++ b/scss/element/_table.scss @@ -23,7 +23,7 @@ @include generate-variables($table, ('stripe')); border-collapse: collapse; - color: color(text, table); + color: color('text', 'table'); width: 100%; caption { @@ -31,18 +31,18 @@ font-size: config('caption-font-size', $table); font-style: config('caption-font-style', $table); font-weight: config('caption-font-weight', $table); - margin-block-end: spacer(s); + margin-block-end: spacer('s'); } th, td { - border-block-end: 1px solid color(border, table); + border-block-end: 1px solid color('border', 'table'); line-height: config('line-height', $table); padding: config('padding', $table); } th { - color: color(heading, table); + color: color('heading', 'table'); text-align: inherit; text-align: -webkit-match-parent; } @@ -50,13 +50,13 @@ @if ($has-variations) { &--striped { > tbody > tr:nth-child(#{config('stripe', $table, false)}) { - background-color: color(stripe, table); + background-color: color('stripe', 'table'); } } &--hover { > tbody > tr:hover { - background: color(hover, table); + background: color('hover', 'table'); } } diff --git a/scss/element/_typography.scss b/scss/element/_typography.scss index 35ba7ef..ea5e5ed 100644 --- a/scss/element/_typography.scss +++ b/scss/element/_typography.scss @@ -102,7 +102,7 @@ .quote { @include layout-stack('xs'); border-inline-start: 0.5rem solid color('blockquote-border'); - padding-inline-start: spacer(m); + padding-inline-start: spacer('m'); blockquote { border-inline-start: 0; diff --git a/scss/form/_button.scss b/scss/form/_button.scss index 4f649b1..e4510ed 100644 --- a/scss/form/_button.scss +++ b/scss/form/_button.scss @@ -46,7 +46,6 @@ } @if ($has-icons) { - // Icon button #{$selector}--icon { padding: config('icon-padding', $btn); @@ -59,7 +58,6 @@ } } - // Icons #{$selector}__icon { flex-shrink: 0; height: config('icon-size', $btn); @@ -95,7 +93,6 @@ } } - // Display types #{$selector}--block#{$pseudo-selector} { width: 100%; } diff --git a/scss/form/_check.scss b/scss/form/_check.scss index 8187753..28a8ee3 100644 --- a/scss/form/_check.scss +++ b/scss/form/_check.scss @@ -15,7 +15,7 @@ align-items: config('vertical-alignment', $form-check); display: inline-flex; - gap: spacer(xs); + gap: spacer('xs'); } #{$parent}--vertical-center { @@ -47,19 +47,19 @@ @at-root { #{$input} { appearance: none; - background-color: color(background, form); + background-color: color('background', 'form'); background-position: center; background-repeat: no-repeat; background-size: contain; - border: config('border-width', $form-check) solid color(border, form); + border: config('border-width', $form-check) solid color('border', 'form'); flex-shrink: 0; font-size: config('font-size', $form-check); height: 1em; line-height: 1; margin-block-start: config('margin-block-start', $form-check); - transition-duration: transition(duration); + transition-duration: transition('duration'); transition-property: border, box-shadow; - transition-timing-function: transition(timing-function); + transition-timing-function: transition('timing-function'); width: 1em; &[type='radio'] { @@ -73,8 +73,8 @@ &:focus-visible { @include focus-ring( $type: config('focus-ring-type', $form-check, false), - $border-color: color(border-focus, form), - $ring-color: color(check-focus-ring, form), + $border-color: color('border-focus', 'form'), + $ring-color: color('check-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-check, false), $ring-width: config('focus-ring-width', $form-check, false), $ring-offset: config('focus-ring-offset', $form-check, false), @@ -82,30 +82,30 @@ } &:checked { - background-color: color(check-background, form); - border-color: color(check-background, form); + background-color: color('check-background', 'form'); + border-color: color('check-background', 'form'); &[type='radio'] { - @include field-icon(config('radio', $form-icon, false), color(check-foreground, form, true)); + @include field-icon(config('radio', $form-icon, false), color('check-foreground', 'form', true)); } &[type='checkbox'] { - @include field-icon(config('checkbox', $form-icon, false), color(check-foreground, form, true)); + @include field-icon(config('checkbox', $form-icon, false), color('check-foreground', 'form', true)); } } &:indeterminate { &[type='checkbox'] { - @include field-icon(config('checkbox-indeterminate', $form-icon, false), color(check-foreground, form, true)); - background-color: color(check-background, form); - border-color: color(check-background, form); + @include field-icon(config('checkbox-indeterminate', $form-icon, false), color('check-foreground', 'form', true)); + background-color: color('check-background', 'form'); + border-color: color('check-background', 'form'); } } &:disabled { @include field-disabled( - $background: color(background-disabled, form), - $border: color(border-disabled, form) + $background: color('background-disabled', 'form'), + $border: color('border-disabled', 'form') ); + #{$label} { diff --git a/scss/form/_control.scss b/scss/form/_control.scss index 4ab3d0a..53a9860 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -14,23 +14,23 @@ @include generate-variables($form-control, ('focus-')); appearance: none; - background-color: color(background, form); - border: config('border-width', $form-control) solid color(border, form); + background-color: color('background', 'form'); + border: config('border-width', $form-control) solid color('border', 'form'); border-radius: config('border-radius', $form-control); box-sizing: border-box; - color: color(text, form); + color: color('text', 'form'); display: block; font-size: config('font-size', $form-control); font-weight: config('font-weight', $form-control); line-height: config('line-height', $form-control); padding: config('padding', $form-control); - transition-duration: transition(duration); + transition-duration: transition('duration'); transition-property: border, box-shadow; - transition-timing-function: transition(timing-function); + transition-timing-function: transition('timing-function'); width: 100%; &::placeholder { - color: color(placeholder, form); + color: color('placeholder', 'form'); }; &::-webkit-datetime-edit { @@ -40,8 +40,8 @@ &:focus { @include focus-ring( $type: config('focus-ring-type', $form-control, false), - $border-color: color(border-focus, form), - $ring-color: color(ring-focus, form), + $border-color: color('border-focus', 'form'), + $ring-color: color('ring-focus', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control, false), $ring-width: config('focus-ring-width', $form-control, false), $ring-offset: config('focus-ring-offset', $form-control, false) @@ -73,12 +73,11 @@ &[disabled], &[disabled='true'] { @include field-disabled( - $background: color(background-disabled, form), - $border: color(border-disabled, form) + $background: color('background-disabled', 'form'), + $border: color('border-disabled', 'form') ); } - // Set height to textarea @at-root { textarea#{$selector} { height: config('textarea-height', $form-control); @@ -87,7 +86,6 @@ } } - // Validation states @if ($has-states) { &--valid, &--invalid { @@ -102,14 +100,14 @@ } &--valid { - @include field-icon(config('valid', $form-icon, false), color(success, alert, true)); - border-color: color(success, alert); + @include field-icon(config('valid', $form-icon, false), color('success', 'alert', true)); + border-color: color('success', 'alert'); &:focus { @include focus-ring( $type: config('focus-ring-type', $form-control, false), - $border-color: color(valid, form), - $ring-color: color(valid-focus-ring, form, false), + $border-color: color('valid', 'form'), + $ring-color: color('valid-focus-ring', 'form', false), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), $ring-width: config('focus-ring-width', $form-control, false), $ring-offset: config('focus-ring-offset', $form-control, false), @@ -118,14 +116,14 @@ } &--invalid { - @include field-icon(config('invalid', $form-icon, false), color(danger, alert, true)); - border-color: color(danger, alert); + @include field-icon(config('invalid', $form-icon, false), color('danger', 'alert', true)); + border-color: color('danger', 'alert'); &:focus { @include focus-ring( $type: config('focus-ring-type', $form-control, false), - $border-color: color(invalid, form), - $ring-color: color(invalid-focus-ring, form), + $border-color: color('invalid', 'form'), + $ring-color: color('invalid-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control, false), $ring-width: config('focus-ring-width', $form-control, false), $ring-offset: config('focus-ring-offset', $form-control, false), @@ -134,7 +132,6 @@ } } - // Sizes @if ($has-sizes) { &--sm { --webkit-date-line-height: 1.36; @@ -180,11 +177,10 @@ } } - // Generate select styling @if ($has-select) { select#{$selector} { &:not([multiple]):not([size]) { - @include field-icon(config('select', $form-icon, false), color(select-foreground, form, true)); + @include field-icon(config('select', $form-icon, false), color('select-foreground', 'form', true)); background-position: center right config('icon-right-offset', $form-select, false); background-repeat: no-repeat; background-size: config('icon-width', $form-select, false) auto; diff --git a/scss/form/_description.scss b/scss/form/_description.scss index 2a14a2f..86dec06 100644 --- a/scss/form/_description.scss +++ b/scss/form/_description.scss @@ -7,7 +7,7 @@ .form-description { @include generate-variables($form-description); - color: color(text, form); + color: color('text', 'form'); display: block; font-size: config('font-size', $form-description); font-style: config('font-style', $form-description); diff --git a/scss/form/_fieldset.scss b/scss/form/_fieldset.scss index 1ca1c8c..b8620be 100644 --- a/scss/form/_fieldset.scss +++ b/scss/form/_fieldset.scss @@ -12,12 +12,12 @@ padding: 0; + fieldset { - margin-block-start: spacer(l); + margin-block-start: spacer('l'); } } legend { - color: color(legend, form); + color: color('legend', 'form'); font-size: config('legend-font-size', $form-fieldset); font-weight: config('legend-font-weight', $form-fieldset); } diff --git a/scss/form/_file.scss b/scss/form/_file.scss index 730bbb2..569cdb1 100644 --- a/scss/form/_file.scss +++ b/scss/form/_file.scss @@ -25,7 +25,7 @@ &#{$pseudo-selector} { @include btn-variant(config('background', $form-file, false), false); - margin-inline-end: spacer(s); + margin-inline-end: spacer('s'); } } } diff --git a/scss/form/_group.scss b/scss/form/_group.scss index a53c19c..88b5bc4 100644 --- a/scss/form/_group.scss +++ b/scss/form/_group.scss @@ -6,22 +6,22 @@ .form-group { display: flex; flex-direction: column; - gap: spacer(xxs); + gap: spacer('xxs'); &--horizontal-check { display: flex; flex-direction: row; flex-wrap: wrap; - gap: spacer(s); + gap: spacer('s'); } &--vertical-check { - @include layout-stack(s, true, left); + @include layout-stack('s', true, 'left'); gap: 0; } &--row { - --gap: #{spacer(xxs)} #{spacer(s)}; + --gap: #{spacer('xxs')} #{spacer('s')}; --label-column: 10rem; align-items: center; @@ -29,13 +29,13 @@ gap: var(--gap); grid-template-columns: minmax(0, 1fr); - @include breakpoint(sm) { + @include breakpoint('sm') { grid-template-columns: minmax(0, var(--label-column)) minmax(0, 1fr); } .form-description, .field-feedback { - @include breakpoint(sm) { + @include breakpoint('sm') { grid-column-start: 2; } } @@ -45,7 +45,7 @@ display: flex; flex-direction: column; - @include breakpoint(sm) { flex-direction: row; } + @include breakpoint('sm') { flex-direction: row; } > * { + * { @@ -53,7 +53,7 @@ border-start-start-radius: 0; margin-block-start: -1px; - @include breakpoint(sm) { + @include breakpoint('sm') { border-end-start-radius: 0; border-start-end-radius: config('border-radius', $form-control); margin-block-start: 0; @@ -65,14 +65,14 @@ border-end-end-radius: 0; border-end-start-radius: 0; - @include breakpoint(sm) { + @include breakpoint('sm') { border-end-end-radius: 0; border-start-end-radius: 0; } } /* stylelint-disable */ - @include breakpoint(sm) { + @include breakpoint('sm') { &:first-child { border-end-start-radius: config('border-radius', $form-control); } diff --git a/scss/form/_label.scss b/scss/form/_label.scss index 7823739..49b8e90 100644 --- a/scss/form/_label.scss +++ b/scss/form/_label.scss @@ -4,7 +4,7 @@ @mixin generate-form-label { .form-label { - color: color(label, form); + color: color('label', 'form'); font-size: map.get($form-label, 'font-size'); font-style: map.get($form-label, 'font-style'); font-weight: map.get($form-label, 'font-weight'); diff --git a/scss/form/_range.scss b/scss/form/_range.scss index 2ebf63f..4c7f926 100644 --- a/scss/form/_range.scss +++ b/scss/form/_range.scss @@ -15,7 +15,7 @@ @include focus-ring( $type: config('focus-ring-type', $form-range, false), $border-color: null, - $ring-color: color(range-thumb-focus-ring, form), + $ring-color: color('range-thumb-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-range, false), $ring-width: config('focus-ring-width', $form-range, false), $ring-offset: config('focus-ring-offset', $form-range, false), @@ -26,7 +26,7 @@ @include focus-ring( $type: config('focus-ring-type', $form-range, false), $border-color: null, - $ring-color: color(range-thumb-focus-ring, form), + $ring-color: color('range-thumb-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-range, false), $ring-width: config('focus-ring-width', $form-range, false), $ring-offset: config('focus-ring-offset', $form-range, false), @@ -35,20 +35,20 @@ } &::-webkit-slider-runnable-track { - background-color: color(range-track-background, form); + background-color: color('range-track-background', 'form'); border-radius: config('track-border-radius', $form-range); height: config('track-height', $form-range); } &::-moz-range-track { - background-color: color(range-track-background, form); + background-color: color('range-track-background', 'form'); border-radius: config('track-border-radius', $form-range); height: config('track-height', $form-range); } &::-webkit-slider-thumb { appearance: none; - background-color: color(range-thumb-background, form); + background-color: color('range-thumb-background', 'form'); border-radius: config('thumb-border-radius', $form-range); height: config('thumb-height', $form-range); margin-block-start: calc(#{config('track-height', $form-range)} / 2 - #{config('thumb-height', $form-range)} / 2); @@ -56,7 +56,7 @@ } &::-moz-range-thumb { - background-color: color(range-thumb-background, form); + background-color: color('range-thumb-background', 'form'); border: 0; /*Removes extra border that FF applies*/ border-radius: config('thumb-border-radius', $form-range); height: config('thumb-height', $form-range); diff --git a/scss/form/_row.scss b/scss/form/_row.scss index a52e29a..850f2a8 100644 --- a/scss/form/_row.scss +++ b/scss/form/_row.scss @@ -6,7 +6,7 @@ .form-row { &--mixed { @include generate-variables($form-row); - @include layout-flex(s); + @include layout-flex('s'); } } } diff --git a/scss/form/_switch.scss b/scss/form/_switch.scss index 1aa0f17..53902d0 100644 --- a/scss/form/_switch.scss +++ b/scss/form/_switch.scss @@ -13,7 +13,7 @@ #{$parent} { align-items: center; display: inline-flex; - gap: spacer(xs); + gap: spacer('xs'); &--block { justify-content: space-between; @@ -46,29 +46,29 @@ @at-root { #{$input} { @include generate-variables($form-switch, ('focus-')); - @include field-icon(config('switch', $form-icon, false), color(border, form, true)); + @include field-icon(config('switch', $form-icon, false), color('border', 'form', 'true')); appearance: none; - background-color: color(background, form); + background-color: color('background', 'form'); background-position: left center; background-repeat: no-repeat; background-size: contain; - border: config('border-width', $form-switch) solid color(border, form); + border: config('border-width', $form-switch) solid color('border', 'form'); border-radius: 2em; flex-shrink: 0; font-size: config('font-size', $form-switch); height: 1em; line-height: 1; margin-block-start: config('margin-block-start', $form-switch); - transition-duration: transition(duration); + transition-duration: transition('duration'); transition-property: background-position, border, box-shadow; - transition-timing-function: transition(timing-function); + transition-timing-function: transition('timing-function'); width: 2em; &:focus-visible { @include focus-ring( $type: config('focus-ring-type', $form-check), - $border-color: color(border-focus, form), - $ring-color: color(check-focus-ring, form), + $border-color: color('border-focus', 'form'), + $ring-color: color('check-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-check), $ring-width: config('focus-ring-width', $form-check), $ring-offset: config('focus-ring-offset', $form-check), @@ -76,16 +76,16 @@ } &:checked { - @include field-icon(config('switch', $form-icon, false), color(check-foreground, form, true)); - background-color: color(check-background, form); + @include field-icon(config('switch', $form-icon, false), color('check-foreground', 'form', 'true')); + background-color: color('check-background', 'form'); background-position: right center; - border-color: color(check-background, form); + border-color: color('check-background', 'form'); } &:disabled { @include field-disabled( - $background: color(background-disabled, form), - $border: color(border-disabled, form) + $background: color('background-disabled', 'form'), + $border: color('border-disabled', 'form') ); + #{$label} { diff --git a/scss/form/_validation.scss b/scss/form/_validation.scss index 48bc0e9..e55d414 100644 --- a/scss/form/_validation.scss +++ b/scss/form/_validation.scss @@ -8,11 +8,11 @@ line-height: map.get($typography, 'line-height-md'); &--valid { - color: color(success, alert); + color: color('success', 'alert'); } &--invalid { - color: color(danger, alert); + color: color('danger', 'alert'); } } } diff --git a/scss/function/_color.scss b/scss/function/_color.scss index f7dd583..4712d14 100644 --- a/scss/function/_color.scss +++ b/scss/function/_color.scss @@ -12,7 +12,7 @@ /// @return {color} - The color value or the variable. @function color( $key, - $type: base, + $type: 'base', $only-color: false, $map: $colors ) { diff --git a/scss/function/_font-size.scss b/scss/function/_font-size.scss index 338108a..38628d7 100644 --- a/scss/function/_font-size.scss +++ b/scss/function/_font-size.scss @@ -13,7 +13,7 @@ $key, $fluid: true, $scaler: 15, - $optimal-size: map.get($settings, optimal-responsive-font-size) + $optimal-size: map.get($settings, 'optimal-responsive-font-size') ) { @if not map.has-key($font-sizes, $key) { @error 'The #{$key} key name doesn\'t exist at the $font-sizes map.'; @@ -36,11 +36,15 @@ @return map.get($font-sizes, $key); } -// Generate responsive font-size value using clamp(). +/// Generate responsive font-size value using clamp(). +/// @param {number} $size - The font size. +/// @param {number} $scaler - The scaler value (15 = 15% smaller). +/// @param {number} $optimal-size - The optimal font size. +/// @return {string} - The responsive font-size value. @function responsive-font-size( $size, $scaler: 15, - $optimal-size: map.get($settings, optimal-responsive-font-size) + $optimal-size: map.get($settings, 'optimal-responsive-font-size') ) { @if $scaler < 0 or $scaler > 100 { @error 'The $scaler value must be between 0 and 100.'; diff --git a/scss/function/_spacer.scss b/scss/function/_spacer.scss index 33557aa..39c5d07 100644 --- a/scss/function/_spacer.scss +++ b/scss/function/_spacer.scss @@ -21,7 +21,7 @@ @function spacer-clamp( $min, $max, - $optimal: map.get($settings, optimal-spacer-size) + $optimal: map.get($settings, 'optimal-spacer-size') ) { @if map.has-key($spacers, $min) { $min: map.get($spacers, $min); diff --git a/scss/mixin/_button.scss b/scss/mixin/_button.scss index 54a67d1..0dbcec5 100644 --- a/scss/mixin/_button.scss +++ b/scss/mixin/_button.scss @@ -9,7 +9,7 @@ /// @param {boolean} $focus - If the focus ring should be generated. /// @return {string} - The generated focus ring. @mixin btn-focus-helper( - $type: primary, + $type: 'primary', $focus: true ) { @if $focus { @@ -39,7 +39,7 @@ /// @return {string} - The generated button variant. /// @throws {error} - If the color key doesn't exist. @mixin btn-variant( - $type: primary, + $type: 'primary', $focus: true ) { @if not map.has-key($colors, btn, $type + '-foreground') or not map.has-key($colors, btn, $type + '-background') { diff --git a/scss/mixin/_layout.scss b/scss/mixin/_layout.scss index 5ca0b65..6bbf63e 100644 --- a/scss/mixin/_layout.scss +++ b/scss/mixin/_layout.scss @@ -28,7 +28,7 @@ /// @param {number} $split - The number of element where it should split the layout. /// @return {mixin} - The stacked layout. @mixin layout-stack( - $gap: m, + $gap: 'm', $width: false, $align: none, $important: false, @@ -88,7 +88,7 @@ /// @param {string} $minimum - The minimum width of the elements. /// @return {mixin} - The grid layout. @mixin layout-grid( - $gap: m, + $gap: 'm', $minimum: 12.5rem ) { @if map.has-key($spacers, $gap) { @@ -110,7 +110,7 @@ /// @param {string} $sidebar-width - The width of the sidebar. /// @return {mixin} - The sidebar layout. @mixin layout-sidebar( - $gap: m, + $gap: 'm', $sidebar-width: 18.75rem ) { @if map.has-key($spacers, $gap) { @@ -138,7 +138,7 @@ /// @param {string} $width-variable - The width of the elements. /// @return {mixin} - The instinctive flex layout. @mixin layout-flex( - $gap: m, + $gap: 'm', $width-variable: get-css-variable(--col-width) ) { @if map.has-key($spacers, $gap) { diff --git a/scss/mixin/_selection.scss b/scss/mixin/_selection.scss index a3342b6..3b60713 100644 --- a/scss/mixin/_selection.scss +++ b/scss/mixin/_selection.scss @@ -8,7 +8,7 @@ /// @param {boolean} $is-direct - If true, the selection will be applied to the current element if false it will be applied to its children. /// @return {mixin} - The selection mixin. @mixin selection( - $background: primary, + $background: 'primary', $foreground: null, $is-direct: false ) { diff --git a/scss/mixin/_utilities.scss b/scss/mixin/_utilities.scss index be8dc38..92a05ea 100644 --- a/scss/mixin/_utilities.scss +++ b/scss/mixin/_utilities.scss @@ -46,11 +46,11 @@ /// @param {string} $border-radius - The border radius of the scrollbar. /// @return {mixin} - The scrollbar mixin. @mixin scrollbar( - $thumb-background-color: color(thumb-background, scrollbar), - $thumb-background-color-hover: color(thumb-background-hover, scrollbar), - $track-background-color: color(track-background, scrollbar), + $thumb-background-color: color('thumb-background', 'scrollbar'), + $thumb-background-color-hover: color('thumb-background-hover', 'scrollbar'), + $track-background-color: color('track-background', 'scrollbar'), $size: 0.5rem, - $border-radius: map.get($display, border-radius-sm) + $border-radius: map.get($display, 'border-radius-sm') ) { &::-webkit-scrollbar { height: $size; diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 6edb91a..410efb3 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -8,7 +8,11 @@ /// @param {list} $include - The list of keys (or a segment of it) to include. /// @return {string} - The generated CSS custom properties. /// @throws {error} - If you use both $exclude and $include arguments. -@mixin generate-variables($map, $exclude: null, $include: null) { +@mixin generate-variables( + $map, + $exclude: null, + $include: null +) { @if $exclude and $include { @error 'You can\'t use both $exclude and $include arguments.'; } diff --git a/scss/print/_index.scss b/scss/print/_index.scss index ff3d349..3f92665 100644 --- a/scss/print/_index.scss +++ b/scss/print/_index.scss @@ -4,7 +4,7 @@ @use '../mixin' as *; @mixin generate-print { - @if setting(print) == true { + @if setting('print') == true { @media print { @page { margin: config('page-margin', $print); From b689387c445bfdf78ddad6c3a8d9c919aa7ce0ad Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 7 Apr 2023 20:15:37 +0200 Subject: [PATCH 41/67] Fixes --- scss/config/form/_fieldset.scss | 2 +- scss/mixin/_utilities.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scss/config/form/_fieldset.scss b/scss/config/form/_fieldset.scss index 3251df2..b9e6368 100644 --- a/scss/config/form/_fieldset.scss +++ b/scss/config/form/_fieldset.scss @@ -5,7 +5,7 @@ $form-fieldset: () !default; $form-fieldset: map.merge( ( - 'gap': map.get($spacers, s), + 'gap': map.get($spacers, 's'), 'legend-font-size': clamp(#{map.get($font-sizes, 'h5')}, 5vw, #{map.get($font-sizes, 'h4')}), 'legend-font-weight': 700, ), diff --git a/scss/mixin/_utilities.scss b/scss/mixin/_utilities.scss index 92a05ea..0f158ad 100644 --- a/scss/mixin/_utilities.scss +++ b/scss/mixin/_utilities.scss @@ -50,7 +50,7 @@ $thumb-background-color-hover: color('thumb-background-hover', 'scrollbar'), $track-background-color: color('track-background', 'scrollbar'), $size: 0.5rem, - $border-radius: map.get($display, 'border-radius-sm') + $border-radius: config('border-radius-sm', $display) ) { &::-webkit-scrollbar { height: $size; From b87cfd011bf28910d9d676080a478e237f7b810f Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 16 Apr 2023 14:35:08 +0200 Subject: [PATCH 42/67] Preview cleanup --- css/spruce.css | 78 ++++---- css/spruce.min.css | 2 +- package.json | 2 +- preview/assets/scss/component/_color.scss | 18 +- preview/assets/scss/config/_config.scss | 9 +- preview/assets/scss/config/_dark-colors.scss | 126 ++++++------ preview/assets/scss/config/_dark-mode.scss | 12 +- preview/assets/scss/config/_font.scss | 12 ++ preview/assets/scss/config/_index.scss | 1 + preview/assets/scss/layout/_container.scss | 19 ++ preview/assets/scss/layout/_index.scss | 1 + preview/assets/scss/layout/_main.scss | 22 +-- preview/assets/scss/main.scss | 15 +- preview/pug/assets/data.json | 198 ++++++++++++------- preview/pug/layout.pug | 8 +- preview/pug/page/color.pug | 63 +++--- scss/config/_color.scss | 10 +- scss/element/_utilities.scss | 1 - scss/spruce-styles.scss | 4 +- 19 files changed, 352 insertions(+), 249 deletions(-) create mode 100644 preview/assets/scss/config/_font.scss create mode 100644 preview/assets/scss/layout/_container.scss diff --git a/css/spruce.css b/css/spruce.css index 3cbd02f..ba6a1ef 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -585,33 +585,27 @@ h6 { line-height: calc(2px + 2ex + 2px); } -h1, -.h1 { +h1 { font-size: clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem); } -h2, -.h2 { +h2 { font-size: clamp(1.66015625rem, 2vw + 1rem, 1.953125rem); } -h3, -.h3 { +h3 { font-size: clamp(1.328125rem, 2vw + 1rem, 1.5625rem); } -h4, -.h4 { +h4 { font-size: clamp(1.0625rem, 2vw + 1rem, 1.25rem); } -h5, -.h5 { +h5 { font-size: 1rem; } -h6, -.h6 { +h6 { font-size: 1rem; } @@ -730,7 +724,35 @@ samp { font-size: clamp(1.35rem, 2vw, 1.15rem); } -/* stylelint-disable */ +.hidden, +[hidden] { + display: none !important; +} + +.h1 { + font-size: clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem); +} + +.h2 { + font-size: clamp(1.66015625rem, 2vw + 1rem, 1.953125rem); +} + +.h3 { + font-size: clamp(1.328125rem, 2vw + 1rem, 1.5625rem); +} + +.h4 { + font-size: clamp(1.0625rem, 2vw + 1rem, 1.25rem); +} + +.h5 { + font-size: 1rem; +} + +.h6 { + font-size: 1rem; +} + .btn { align-items: center; border-radius: 0.325rem; @@ -1029,7 +1051,6 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid { } .form-control--sm { --webkit-date-line-height: 1.36; - font-size: 0.875rem; padding: 0.25em 0.5em; } .form-control--sm[type=color] { @@ -1040,7 +1061,6 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid { } .form-control--lg { --webkit-date-line-height: 1.387; - font-size: 1.125rem; padding: 0.65em 1em; } .form-control--lg[type=color] { @@ -1080,10 +1100,6 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { font-size: 1rem; } -.form-check--lg .form-check__control { - font-size: 1.125rem; -} - .form-check__control { -webkit-appearance: none; -moz-appearance: none; @@ -1156,10 +1172,6 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { font-size: 1rem; } -.form-switch--lg .form-switch__control { - font-size: 1.125rem; -} - .form-switch__control { background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e'); -webkit-appearance: none; @@ -1212,12 +1224,6 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { line-height: calc(2px + 2ex + 2px); } -.form-description { - color: var(--spruce-form-color-text); - display: block; - line-height: 1.5; -} - fieldset { border: 0; margin: 0; @@ -1339,13 +1345,21 @@ legend { } .form-row--mixed { - --col-width: 20ch; display: flex; flex-wrap: wrap; gap: 1rem; } .form-row--mixed > * { - flex: 1 1 var(--col-width); + flex: 1 1 var(--spruce-col-width); +} + +.form-row--mixed { + display: flex; + flex-wrap: wrap; + gap: 1rem; +} +.form-row--mixed > * { + flex: 1 1 var(--spruce-col-width); } .field-feedback { @@ -1404,5 +1418,3 @@ legend { height: 1rem; width: 1rem; } - -/* stylelint-enable */ diff --git a/css/spruce.min.css b/css/spruce.min.css index b498d0c..663bec1 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(0, 0%, 90%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 7%, 30%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-border-disabled: hsl(0, 0%, 90%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(0, 0%, 90%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 7%, 30%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25);--spruce-form-color-valid: hsl(150, 100%, 33%)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(0, 0%, 90%);--spruce-table-color-caption: hsl(208, 7%, 30%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 7%, 30%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1,.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2,.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3,.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4,.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.35rem, 2vw, 1.15rem)}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;font-size:.875rem;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;font-size:1.125rem;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check--lg .form-check__control{font-size:1.125rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch--lg .form-switch__control{font-size:1.125rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}.form-description{color:var(--spruce-form-color-text);display:block;line-height:1.5}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(0, 0%, 90%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 7%, 30%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-border-disabled: hsl(0, 0%, 90%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(0, 0%, 90%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 7%, 30%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25);--spruce-form-color-valid: hsl(150, 100%, 33%)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(0, 0%, 90%);--spruce-table-color-caption: hsl(208, 7%, 30%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 7%, 30%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.35rem,2vw,1.15rem)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} diff --git a/package.json b/package.json index c7cf4df..0497709 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.3", + "version": "2.0.0-beta.4", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", diff --git a/preview/assets/scss/component/_color.scss b/preview/assets/scss/component/_color.scss index 84714b6..c460d71 100644 --- a/preview/assets/scss/component/_color.scss +++ b/preview/assets/scss/component/_color.scss @@ -1,12 +1,12 @@ @use 'sass:map'; @use 'spruce'; -.color-items { +.colors { @include spruce.layout-grid($minimum: 15rem); } .color-item { - align-items: center; + align-items: start; display: flex; gap: spruce.spacer(m); @@ -16,12 +16,24 @@ &__color { border-radius: spruce.config(border-radius-lg, spruce.$display); + flex-shrink: 0; height: 3rem; width: 3rem; } &__caption { - font-family: spruce.config('font-family-cursive', spruce.$typography); + display: flex; + flex-direction: column; + line-height: spruce.config('line-height-md', spruce.$typography); + } + + &__name { + color: spruce.color('heading'); + font-weight: 700; + } + + &__value { + font-weight: 300; } } diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 06c5c36..e65d4b9 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -26,7 +26,7 @@ $spacer: 1.25rem; 'utilities': ( 'typography': false, ), - 'css-custom-properties': true, + 'css-custom-properties': false, ), $btn: ( 'font-style': italic, @@ -35,9 +35,6 @@ $spacer: 1.25rem; 'border-radius': 0.25em, 'text-transform': uppercase, ), - $form-control: ( - 'font-weight': 300, - ), $form-range: ( 'thumb-height': 2rem, 'thumb-width': 3rem, @@ -50,7 +47,7 @@ $spacer: 1.25rem; 'btn': true, ) ), - $typography: ( - 'font-weight-base': 300, + $layout: ( + 'container-width': 70rem, ), ); diff --git a/preview/assets/scss/config/_dark-colors.scss b/preview/assets/scss/config/_dark-colors.scss index fdae774..6091ee6 100644 --- a/preview/assets/scss/config/_dark-colors.scss +++ b/preview/assets/scss/config/_dark-colors.scss @@ -13,73 +13,73 @@ $color-danger: hsl(0 71% 51%); $color-success: hsl(150 100% 33%); $colors: ( - base: ( - card-border: hsl(207 90% 13%), - primary: $color-primary, - secondary: $color-secondary, - background: $color-black, - heading: $color-white, - text: $color-gray, - link: $color-primary, - link-hover: color.scale($color-primary, $lightness: -20%), - border: $color-gray-dark, - mark-background: hsl(50 100% 80%), - mark-foreground: $color-black, - marker: $color-primary, - code-background: hsl(207 64% 18%), - code-foreground: $color-white, - blockquote-border: $color-primary, - footer-background: hsl(0 0% 0% / 0.15) + 'base': ( + 'card-border': hsl(207 90% 13%), + 'primary': $color-primary, + 'secondary': $color-secondary, + 'background': $color-black, + 'heading': $color-white, + 'text': $color-gray, + 'link': $color-primary, + 'link-hover': color.scale($color-primary, $lightness: -20%), + 'border': $color-gray-dark, + 'mark-background': hsl(50 100% 80%), + 'mark-foreground': $color-black, + 'marker': $color-primary, + 'code-background': hsl(207 64% 18%), + 'code-foreground': $color-white, + 'blockquote-border': $color-primary, + 'footer-background': hsl(0 0% 0% / 0.15), ), - btn: ( - primary-background: hsl(261 52% 59%), - primary-background-hover: hsl(261 52% 65%), - primary-foreground: $color-white, - secondary-background: $color-secondary, - secondary-background-hover: color.adjust($color-secondary, $lightness: 5%), - secondary-foreground: $color-white, - install-background: hsl(207 39% 17%), - install-background-hover: hsl(207 23% 26%), - install-foreground: hsl(0 0% 100%) + 'btn': ( + 'primary-background': hsl(261 52% 59%), + 'primary-background-hover': hsl(261 52% 65%), + 'primary-foreground': $color-white, + 'secondary-background': $color-secondary, + 'secondary-background-hover': color.adjust($color-secondary, $lightness: 5%), + 'secondary-foreground': $color-white, + 'install-background': hsl(207 39% 17%), + 'install-background-hover': hsl(207 23% 26%), + 'install-foreground': hsl(0 0% 100%), ), - form: ( - background: color.scale($color-black, $lightness: 5%), - background-disabled: $color-black, - border: $color-gray-dark, - border-disabled: $color-gray-dark, - border-focus: $color-primary, - ring-focus: color.adjust($color-primary, $alpha: -0.75), - check-foreground: $color-black, - check-background: $color-primary, - check-focus-ring: $color-primary, - invalid: $color-danger, - invalid-focus-ring: color.adjust($color-danger, $alpha: -0.75), - label: $color-white, - legend: $color-white, - placeholder: hsl(0 0% 60%), - range-thumb-background: $color-primary, - range-thumb-focus-ring: $color-primary, - range-track-background: $color-gray-dark, - text: $color-gray, - select-foreground: hsl(0 0% 100%), - valid: $color-success, - valid-focus-ring: color.adjust($color-success, $alpha: -0.75) + 'form': ( + 'background': color.scale($color-black, $lightness: 5%), + 'background-disabled': $color-black, + 'border': $color-gray-dark, + 'border-disabled': $color-gray-dark, + 'border-focus': $color-primary, + 'ring-focus': color.adjust($color-primary, $alpha: -0.75), + 'check-foreground': $color-black, + 'check-background': $color-primary, + 'check-focus-ring': $color-primary, + 'invalid': $color-danger, + 'invalid-focus-ring': color.adjust($color-danger, $alpha: -0.75), + 'label': $color-white, + 'legend': $color-white, + 'placeholder': hsl(0 0% 60%), + 'range-thumb-background': $color-primary, + 'range-thumb-focus-ring': $color-primary, + 'range-track-background': $color-gray-dark, + 'text': $color-gray, + 'select-foreground': hsl(0 0% 100%), + 'valid': $color-success, + 'valid-focus-ring': color.adjust($color-success, $alpha: -0.75), ), - selection: ( - foreground: $color-white, - background: $color-primary + 'selection': ( + 'foreground': $color-white, + 'background': $color-primary, ), - scrollbar: ( - thumb-background: hsl(0 0% 100% / 0.15), - thumb-background-hover: hsl(0 0% 100% / 0.25), - track-background: hsl(0 0% 100% / 0.05) + 'scrollbar': ( + 'thumb-background': hsl(0 0% 100% / 0.15), + 'thumb-background-hover': hsl(0 0% 100% / 0.25), + 'track-background': hsl(0 0% 100% / 0.05), ), - table: ( - border: $color-gray-dark, - caption: $color-gray, - heading: $color-white, - hover: hsl(0 0% 100% / 0.05), - text: $color-gray, - stripe: hsl(0 0% 100% / 0.025) + 'table': ( + 'border': $color-gray-dark, + 'caption': $color-gray, + 'heading': $color-white, + 'hover': hsl(0 0% 100% / 0.05), + 'text': $color-gray, + 'stripe': hsl(0 0% 100% / 0.025), ) ); diff --git a/preview/assets/scss/config/_dark-mode.scss b/preview/assets/scss/config/_dark-mode.scss index 39e857e..3f7102c 100644 --- a/preview/assets/scss/config/_dark-mode.scss +++ b/preview/assets/scss/config/_dark-mode.scss @@ -1,7 +1,7 @@ -@use 'spruce'; +@use 'spruce' as *; -@include spruce.generate-color-variables( - spruce.$dark-colors, +@include generate-color-variables( + $dark-colors, ':root[data-theme-mode="dark"]' ); @@ -9,9 +9,9 @@ color-scheme: dark; select.form-control:not([multiple]):not([size]) { - @include spruce.field-icon( - spruce.config('select', spruce.$form-icon, false), - spruce.color(select-foreground, form, true, spruce.$dark-colors) + @include field-icon( + config('select', $form-icon, false), + color(select-foreground, form, true, $dark-colors) ); } } diff --git a/preview/assets/scss/config/_font.scss b/preview/assets/scss/config/_font.scss new file mode 100644 index 0000000..71acedc --- /dev/null +++ b/preview/assets/scss/config/_font.scss @@ -0,0 +1,12 @@ +@use 'spruce' as *; + +@include font-face( + 'Montserrat', + '../fonts/montserrat-v25-latin-ext_latin-regular.woff2' +); + +@include font-face( + 'Montserrat', + '../fonts/montserrat-v25-latin-ext_latin-700.woff2', + '700' +); diff --git a/preview/assets/scss/config/_index.scss b/preview/assets/scss/config/_index.scss index 5a385dd..ba2512a 100644 --- a/preview/assets/scss/config/_index.scss +++ b/preview/assets/scss/config/_index.scss @@ -1,3 +1,4 @@ @forward 'config'; +@forward 'font'; @forward 'styles'; @forward 'dark-mode'; diff --git a/preview/assets/scss/layout/_container.scss b/preview/assets/scss/layout/_container.scss new file mode 100644 index 0000000..dd50da8 --- /dev/null +++ b/preview/assets/scss/layout/_container.scss @@ -0,0 +1,19 @@ +@use 'spruce' as *; + +.container { + --container-width: #{config('container-width', $layout)}; + --container-gap: #{spacer-clamp('m', 'l')}; + + @include layout-center( + var(--container-gap), + var(--container-width) + ); + + &--wide { + --container-width: 100%; + } + + &--narrow { + --container-width: 50rem; + } +} diff --git a/preview/assets/scss/layout/_index.scss b/preview/assets/scss/layout/_index.scss index 992a60f..d9899f7 100644 --- a/preview/assets/scss/layout/_index.scss +++ b/preview/assets/scss/layout/_index.scss @@ -1 +1,2 @@ +@forward 'container'; @forward 'main'; diff --git a/preview/assets/scss/layout/_main.scss b/preview/assets/scss/layout/_main.scss index 1f61689..7d59010 100644 --- a/preview/assets/scss/layout/_main.scss +++ b/preview/assets/scss/layout/_main.scss @@ -1,35 +1,29 @@ -@use 'spruce'; +@use 'spruce' as *; -.site-main { - padding-block: clamp(spruce.spacer(l), 5vw, spruce.spacer(xl)); - - &__container { - @include spruce.layout-center( - spruce.get-css-variable(--container-gap) - ); - } +.l-main { + padding-block: spacer-clamp('l', 'xl'); &__inner { display: grid; - gap: spruce.spacer(l); + gap: spacer('l') spacer('xl'); grid-template-columns: minmax(0, 1fr); - @include spruce.breakpoint(sm) { + @include breakpoint('sm') { grid-template-columns: minmax(0, 12rem) minmax(0, 3.5fr); } } &__sidebar { - @include spruce.layout-stack(m); + @include layout-stack('m'); } &__body { margin-inline: auto; max-width: 100%; - width: 85ch; + width: 80ch; } &__content { - @include spruce.layout-stack(spruce.spacer(s)); + @include layout-stack('s'); } } diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index a60d8f3..259b301 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -25,17 +25,6 @@ false ); -@include spruce.font-face( - 'Montserrat', - '../fonts/montserrat-v25-latin-ext_latin-regular.woff2' -); - -@include spruce.font-face( - 'Montserrat', - '../fonts/montserrat-v25-latin-ext_latin-700.woff2', - '700' -); - .btn--custom { @include spruce.btn-variant(custom); box-shadow: -3px 5px spruce.color(custom-foreground, btn); @@ -55,8 +44,8 @@ .section-title { border-block-end: 1px solid spruce.color(border); font-size: spruce.font-size(h4); - margin-block-end: spruce.spacer(s); - padding-block-end: spruce.spacer(xs); + margin-block-end: spruce.spacer(m); + padding-block-end: spruce.spacer(s); * + & { margin-block-start: spruce.spacer(l); diff --git a/preview/pug/assets/data.json b/preview/pug/assets/data.json index 0c8f765..9065064 100644 --- a/preview/pug/assets/data.json +++ b/preview/pug/assets/data.json @@ -1,248 +1,296 @@ { - "baseColors": [ + "alertColors": [ { - "name": "primary", + "name": "danger", + "value": "$color-danger", "bordered": "false" }, { - "name": "secondary", + "name": "info", + "value": "hsl(195deg 100% 42%)", "bordered": "false" }, { - "name": "background", - "bordered": "true" - }, - { - "name": "heading", + "name": "success", + "value": "$color-success", "bordered": "false" }, { - "name": "text", + "name": "warning", + "value": "hsl(48deg 89% 55%)", "bordered": "false" - }, + } + ], + "baseColors": [ { - "name": "link", - "bordered": "false" + "name": "background", + "value": "$color-white", + "bordered": "true" }, { - "name": "link-hover", + "name": "blockquote-border", + "value": "$color-primary", "bordered": "false" }, { "name": "border", - "bordered": "false" + "value": "$color-gray-light", + "bordered": "true" }, { - "name": "mark-background", - "bordered": "false" + "name": "code-background", + "value": "color.change($color-primary, $lightness: 97%)", + "bordered": "true" }, { - "name": "mark-foreground", + "name": "code-foreground", + "value": "$color-black", "bordered": "false" }, { - "name": "marker", + "name": "heading", + "value": "$color-black", "bordered": "false" }, { - "name": "code-background", + "name": "link", + "value": "$color-primary", "bordered": "false" }, { - "name": "code-foreground", + "name": "link-hover", + "value": "color.scale($color-primary, $lightness: -20%)", "bordered": "false" }, { - "name": "blockquote-border", + "name": "mark-background", + "value": "hsl(50deg 100% 80%)", "bordered": "false" - } - ], - "selectionColors": [ + }, { - "name": "background", + "name": "mark-foreground", + "value": "$color-black", "bordered": "false" }, { - "name": "foreground", - "bordered": "true" - } - ], - "alertColors": [ - { - "name": "danger", + "name": "marker", + "value": "$color-primary", "bordered": "false" }, { - "name": "info", + "name": "primary", + "value": "$color-primary", "bordered": "false" }, { - "name": "success", + "name": "secondary", + "value": "$color-secondary", "bordered": "false" }, { - "name": "warning", + "name": "text", + "value": "$color-gray", "bordered": "false" } ], "btnColors": [ { "name": "primary-background", + "value": "$color-primary", "bordered": "false" }, { "name": "primary-background-hover", + "value": "color.adjust($color-primary, $lightness: -10%)", "bordered": "false" }, { "name": "primary-foreground", + "value": "$color-white", "bordered": "true" }, - { - "name": "primary-foreground-hover", - "bordered": "true" - }, - { - "name": "primary-shadow-focus", - "bordered": "false" - }, { "name": "secondary-background", + "value": "$color-secondary", "bordered": "false" }, { "name": "secondary-background-hover", + "value": "color.adjust($color-secondary, $lightness: -10%)", "bordered": "false" }, { "name": "secondary-foreground", + "value": "$color-white", "bordered": "true" - }, - { - "name": "secondary-foreground-hover", - "bordered": "true" - }, - { - "name": "secondary-shadow-focus", - "bordered": "false" } ], "formColors": [ { "name": "background", + "value": "$color-white", "bordered": "true" }, { "name": "background-disabled", - "bordered": "false" + "value": "hsl(0deg 0% 95%)", + "bordered": "true" }, { "name": "border", + "value": "hsl(260deg 4% 70%)", "bordered": "false" }, { "name": "border-disabled", + "value": "$color-gray-light", "bordered": "false" }, { - "name": "shadow-focus", + "name": "border-focus", + "value": "$color-primary", "bordered": "false" }, { - "name": "check-foreground", - "bordered": "true" + "name": "check-background", + "value": "$color-primary", + "bordered": "false" }, { - "name": "check-background", + "name": "check-focus-ring", + "value": "$color-primary", "bordered": "false" }, + { + "name": "check-foreground", + "value": "$color-white", + "bordered": "true" + }, { "name": "invalid", + "value": "$color-danger", "bordered": "false" }, { - "name": "invalid-shadow", + "name": "invalid-focus-ring", + "value": "color.adjust($color-danger, $alpha: -0.75)", "bordered": "false" }, { "name": "label", + "value": "$color-black", "bordered": "false" }, { "name": "legend", + "value": "$color-black", "bordered": "false" }, { "name": "placeholder", + "value": "hsl(208deg 7% 40%)", "bordered": "false" }, { "name": "range-thumb-background", + "value": "$color-primary", "bordered": "false" }, { - "name": "range-thumb-shadow", + "name": "range-thumb-focus-ring", + "value": "$color-primary", "bordered": "false" }, { "name": "range-track-background", + "value": "$color-gray-light", "bordered": "false" }, { - "name": "text", + "name": "ring-focus", + "value": "color.adjust($color-primary, $alpha: -0.75)", "bordered": "false" }, { "name": "select-foreground", + "value": "$color-black", + "bordered": "false" + }, + { + "name": "text", + "value": "$color-gray", "bordered": "false" }, { "name": "valid", + "value": "$color-success", "bordered": "false" }, { - "name": "valid-shadow", + "name": "valid-focus-ring", + "value": "color.adjust($color-success, $alpha: -0.75)", "bordered": "false" } ], + "selectionColors": [ + { + "name": "foreground", + "value": "$color-white", + "bordered": "true" + }, + { + "name": "background", + "value": "$color-primary", + "bordered": "false" + } + ], + "scrollbarColors": [ + { + "name": "thumb-background", + "value": "hsl(0deg 0% 0% / 15%)", + "bordered": "false" + }, + { + "name": "thumb-background-hover", + "value": "hsl(0deg 0% 0% / 25%)", + "bordered": "false" + }, + { + "name": "track-background", + "value": "hsl(0deg 0% 0% / 5%)", + "bordered": "true" + } + ], "tableColors": [ { "name": "border", + "value": "$color-gray-light", "bordered": "false" }, { "name": "caption", + "value": "$color-gray", "bordered": "false" }, { "name": "heading", + "value": "$color-black", "bordered": "false" }, { "name": "hover", - "bordered": "false" - }, - { - "name": "text", + "value": "hsl(0deg 0% 0% / 5%)", "bordered": "false" }, { "name": "stripe", + "value": "hsl(0deg 0% 0% / 2.5%)", "bordered": "true" - } - ], - "scrollbar": [ - { - "name": "thumb-background", - "bordered": "false" }, { - "name": "thumb-background-hover", + "name": "text", + "value": "$color-gray", "bordered": "false" - }, - { - "name": "track-background", - "bordered": "true" } ] } diff --git a/preview/pug/layout.pug b/preview/pug/layout.pug index 63564e2..339100f 100644 --- a/preview/pug/layout.pug +++ b/preview/pug/layout.pug @@ -18,10 +18,10 @@ html(lang='en') link(rel='stylesheet' href=`../../assets/css/main.css?time=${time}`) link(rel='icon' href='../../assets/img/favicon-32x32.png' type='image/png') body - main(class='site-main') - div(class='site-main__container') - div(class='site-main__inner') - aside(class='site-main__sidebar') + main(class='l-main') + div(class='container') + div(class='l-main__inner') + aside(class='l-main__sidebar') ul(class='sidebar-navigation') li a(href='color.html' aria-current=page === 'color' ? 'page' : '') Color diff --git a/preview/pug/page/color.pug b/preview/pug/page/color.pug index f1cc324..d4ab187 100644 --- a/preview/pug/page/color.pug +++ b/preview/pug/page/color.pug @@ -5,40 +5,59 @@ block variables -var page = 'color'; block content - h2(class='section-title') Base - div(class='color-items') - each color in baseColors - div(class=`color-item color-item--base-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) - span(class='color-item__color') - span(class='color-item__caption')= color.name - h2(class='section-title') Selection - div(class='color-items') - each color in selectionColors - div(class=`color-item color-item--selection-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) - span(class='color-item__color') - span(class='color-item__caption')= color.name h2(class='section-title') Alert - div(class='color-items') + div(class='colors') each color in alertColors div(class=`color-item color-item--alert-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) span(class='color-item__color') - span(class='color-item__caption')= color.name + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value + h2(class='section-title') Base + div(class='colors') + each color in baseColors + div(class=`color-item color-item--base-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) + span(class='color-item__color') + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value h2(class='section-title') Button - div(class='color-items') + div(class='colors') each color in btnColors div(class=`color-item color-item--btn-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) span(class='color-item__color') - span(class='color-item__caption')= color.name + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value h2(class='section-title') Form - div(class='color-items') + div(class='colors') each color in formColors div(class=`color-item color-item--form-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) span(class='color-item__color') - span(class='color-item__caption')= color.name + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value + h2(class='section-title') Selection + div(class='colors') + each color in selectionColors + div(class=`color-item color-item--selection-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) + span(class='color-item__color') + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value h2(class='section-title') Scrollbar - div(class='color-items') - each color in scrollbar + div(class='colors') + each color in scrollbarColors div(class=`color-item color-item--scrollbar-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) span(class='color-item__color') - span(class='color-item__caption')= color.name - + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value + h2(class='section-title') Table + div(class='colors') + each color in tableColors + div(class=`color-item color-item--table-${color.name} ${color.bordered === 'true' ? 'color-item--bordered' : ''}`) + span(class='color-item__color') + span(class='color-item__caption') + span(class='color-item__name')= color.name + span(class='color-item__value')= color.value diff --git a/scss/config/_color.scss b/scss/config/_color.scss index 9857013..3c86d2d 100644 --- a/scss/config/_color.scss +++ b/scss/config/_color.scss @@ -26,8 +26,8 @@ $colors: map.deep-merge( 'code-background': color.change($color-primary, $lightness: 97%), 'code-foreground': $color-black, 'heading': $color-black, - 'link-hover': color.scale($color-primary, $lightness: -20%), 'link': $color-primary, + 'link-hover': color.scale($color-primary, $lightness: -20%), 'mark-background': hsl(50deg 100% 80%), 'mark-foreground': $color-black, 'marker': $color-primary, @@ -44,16 +44,16 @@ $colors: map.deep-merge( 'secondary-foreground': $color-white, ), 'form': ( - 'background-disabled': hsl(0deg 0% 95%), 'background': $color-white, + 'background-disabled': hsl(0deg 0% 95%), + 'border': hsl(260deg 4% 70%), 'border-disabled': $color-gray-light, 'border-focus': $color-primary, - 'border': hsl(260deg 4% 70%), 'check-background': $color-primary, 'check-focus-ring': $color-primary, 'check-foreground': $color-white, - 'invalid-focus-ring': color.adjust($color-danger, $alpha: -0.75), 'invalid': $color-danger, + 'invalid-focus-ring': color.adjust($color-danger, $alpha: -0.75), 'label': $color-black, 'legend': $color-black, 'placeholder': hsl(208deg 7% 40%), @@ -63,8 +63,8 @@ $colors: map.deep-merge( 'ring-focus': color.adjust($color-primary, $alpha: -0.75), 'select-foreground': $color-black, 'text': $color-gray, - 'valid-focus-ring': color.adjust($color-success, $alpha: -0.75), 'valid': $color-success, + 'valid-focus-ring': color.adjust($color-success, $alpha: -0.75), ), 'selection': ( 'foreground': $color-white, diff --git a/scss/element/_utilities.scss b/scss/element/_utilities.scss index a23c2bb..4c1b374 100644 --- a/scss/element/_utilities.scss +++ b/scss/element/_utilities.scss @@ -1,7 +1,6 @@ @use '../function' as *; @mixin generate-utilities { - @debug setting('display', 'utilities'); @if setting('display', 'utilities') == true { .hidden, [hidden] { diff --git a/scss/spruce-styles.scss b/scss/spruce-styles.scss index 03eb309..0690b9e 100644 --- a/scss/spruce-styles.scss +++ b/scss/spruce-styles.scss @@ -1,4 +1,4 @@ @use 'spruce' as *; -@include generate-content; -@include generate-form; +@include generate-styles; + From 8c93a3ac6be75cffdbaff2bb75fa8bbca96ac360 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 16 Apr 2023 14:54:25 +0200 Subject: [PATCH 43/67] Preview cleanup --- preview/assets/scss/component/_color.scss | 42 ++++++++++----------- preview/assets/scss/component/_index.scss | 1 - preview/assets/scss/component/_sidebar.scss | 12 +++--- preview/assets/scss/component/_title.scss | 6 --- preview/assets/scss/config/_config.scss | 3 -- preview/assets/scss/config/_font.scss | 2 +- preview/assets/scss/layout/_main.scss | 5 +++ preview/assets/scss/main.scss | 7 +--- preview/pug/layout.pug | 6 +-- 9 files changed, 37 insertions(+), 47 deletions(-) delete mode 100644 preview/assets/scss/component/_title.scss diff --git a/preview/assets/scss/component/_color.scss b/preview/assets/scss/component/_color.scss index c460d71..3e82807 100644 --- a/preview/assets/scss/component/_color.scss +++ b/preview/assets/scss/component/_color.scss @@ -1,21 +1,21 @@ @use 'sass:map'; -@use 'spruce'; +@use 'spruce' as *; .colors { - @include spruce.layout-grid($minimum: 15rem); + @include layout-grid($minimum: 15rem); } .color-item { align-items: start; display: flex; - gap: spruce.spacer(m); + gap: spacer(m); &--bordered &__color { - box-shadow: 0 0 0 1px spruce.color(border) inset; + box-shadow: 0 0 0 1px color('border') inset; } &__color { - border-radius: spruce.config(border-radius-lg, spruce.$display); + border-radius: config('border-radius-lg', $display); flex-shrink: 0; height: 3rem; width: 3rem; @@ -24,11 +24,11 @@ &__caption { display: flex; flex-direction: column; - line-height: spruce.config('line-height-md', spruce.$typography); + line-height: config('line-height-md', $typography); } &__name { - color: spruce.color('heading'); + color: color('heading'); font-weight: 700; } @@ -37,44 +37,44 @@ } } -@each $name, $value in map.get(spruce.$colors, base) { +@each $name, $value in map.get($colors, 'base') { .color-item--base-#{$name} .color-item__color { - background-color: spruce.color($name, base); + background-color: color($name, 'base'); } } -@each $name, $value in map.get(spruce.$colors, selection) { +@each $name, $value in map.get($colors, 'selection') { .color-item--selection-#{$name} .color-item__color { - background-color: spruce.color($name, selection); + background-color: color($name, 'selection'); } } -@each $name, $value in map.get(spruce.$colors, alert) { +@each $name, $value in map.get($colors, 'alert') { .color-item--alert-#{$name} .color-item__color { - background-color: spruce.color($name, alert); + background-color: color($name, 'alert'); } } -@each $name, $value in map.get(spruce.$colors, btn) { +@each $name, $value in map.get($colors, 'btn') { .color-item--btn-#{$name} .color-item__color { - background-color: spruce.color($name, btn); + background-color: color($name, 'btn'); } } -@each $name, $value in map.get(spruce.$colors, form) { +@each $name, $value in map.get($colors, 'form') { .color-item--form-#{$name} .color-item__color { - background-color: spruce.color($name, form); + background-color: color($name, 'form'); } } -@each $name, $value in map.get(spruce.$colors, table) { +@each $name, $value in map.get($colors, 'table') { .color-item--table-#{$name} .color-item__color { - background-color: spruce.color($name, table); + background-color: color($name, 'table'); } } -@each $name, $value in map.get(spruce.$colors, scrollbar) { +@each $name, $value in map.get($colors, 'scrollbar') { .color-item--scrollbar-#{$name} .color-item__color { - background-color: spruce.color($name, scrollbar); + background-color: color($name, 'scrollbar'); } } diff --git a/preview/assets/scss/component/_index.scss b/preview/assets/scss/component/_index.scss index f24e12c..f9dcf61 100644 --- a/preview/assets/scss/component/_index.scss +++ b/preview/assets/scss/component/_index.scss @@ -1,3 +1,2 @@ @forward 'color'; -@forward 'title'; @forward 'sidebar'; diff --git a/preview/assets/scss/component/_sidebar.scss b/preview/assets/scss/component/_sidebar.scss index b224f7d..e3bb664 100644 --- a/preview/assets/scss/component/_sidebar.scss +++ b/preview/assets/scss/component/_sidebar.scss @@ -1,16 +1,16 @@ -@use 'spruce'; +@use 'spruce' as *; .sidebar-navigation { - @include spruce.clear-list; - @include spruce.layout-stack(s); - font-size: 1.1rem; + @include clear-list; + @include layout-stack('s'); + font-size: 1.0375rem; a { - color: spruce.color(text); + color: color('text'); text-decoration: none; &[aria-current='page'] { - color: spruce.color(primary); + color: color('primary'); font-weight: 700; } } diff --git a/preview/assets/scss/component/_title.scss b/preview/assets/scss/component/_title.scss deleted file mode 100644 index a500472..0000000 --- a/preview/assets/scss/component/_title.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use 'spruce'; - -.site-title { - font-size: spruce.responsive-font-size(4rem); - margin-block: 0 spruce.spacer(l); -} diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index e65d4b9..868c255 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -28,9 +28,6 @@ $spacer: 1.25rem; ), 'css-custom-properties': false, ), - $btn: ( - 'font-style': italic, - ), $btn-lg: ( 'border-radius': 0.25em, 'text-transform': uppercase, diff --git a/preview/assets/scss/config/_font.scss b/preview/assets/scss/config/_font.scss index 71acedc..763d907 100644 --- a/preview/assets/scss/config/_font.scss +++ b/preview/assets/scss/config/_font.scss @@ -8,5 +8,5 @@ @include font-face( 'Montserrat', '../fonts/montserrat-v25-latin-ext_latin-700.woff2', - '700' + 700 ); diff --git a/preview/assets/scss/layout/_main.scss b/preview/assets/scss/layout/_main.scss index 7d59010..a2fe562 100644 --- a/preview/assets/scss/layout/_main.scss +++ b/preview/assets/scss/layout/_main.scss @@ -23,6 +23,11 @@ width: 80ch; } + &__title { + font-size: responsive-font-size(4rem); + margin-block: 0 spacer('l'); + } + &__content { @include layout-stack('s'); } diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index 259b301..c4188b5 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -5,13 +5,8 @@ @forward 'config'; @forward 'layout'; @forward 'component'; -@use 'spruce'; -:root { - @include spruce.set-css-variable(( - --container-gap: spruce.spacer-clamp(m, l) - )); -} +@use 'spruce'; @include spruce.generate-form-check( '.wpcf7-list-item label', diff --git a/preview/pug/layout.pug b/preview/pug/layout.pug index 339100f..4f025fc 100644 --- a/preview/pug/layout.pug +++ b/preview/pug/layout.pug @@ -47,9 +47,9 @@ html(lang='en') select(id='theme-mode' class='form-control form-control--sm') option(value='light') Light option(value='dark') Dark - div(class='site-main__body') - h1(class='site-title')= title - div(class='site-main__content') + div(class='l-main__body') + h1(class='l-main__title')= title + div(class='l-main__content') block content script. if (localStorage.getItem('spruce-reading-direction')) { From 3430f6b35f4e99f0d07d9b603f40ffda5394efcc Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 16 Apr 2023 14:54:59 +0200 Subject: [PATCH 44/67] Compile production --- css/spruce.css | 10 +++++----- css/spruce.min.css | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/css/spruce.css b/css/spruce.css index ba6a1ef..f3dea9b 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -322,8 +322,8 @@ template { --spruce-base-color-code-background: #f6f2fd; --spruce-base-color-code-foreground: hsl(205, 100%, 2%); --spruce-base-color-heading: hsl(205, 100%, 2%); - --spruce-base-color-link-hover: #511dab; --spruce-base-color-link: hsl(262, 71%, 49%); + --spruce-base-color-link-hover: #511dab; --spruce-base-color-mark-background: hsl(50, 100%, 80%); --spruce-base-color-mark-foreground: hsl(205, 100%, 2%); --spruce-base-color-marker: hsl(262, 71%, 49%); @@ -342,16 +342,16 @@ template { } :root { - --spruce-form-color-background-disabled: hsl(0, 0%, 95%); --spruce-form-color-background: hsl(0, 0%, 100%); + --spruce-form-color-background-disabled: hsl(0, 0%, 95%); + --spruce-form-color-border: hsl(260, 4%, 70%); --spruce-form-color-border-disabled: hsl(0, 0%, 90%); --spruce-form-color-border-focus: hsl(262, 71%, 49%); - --spruce-form-color-border: hsl(260, 4%, 70%); --spruce-form-color-check-background: hsl(262, 71%, 49%); --spruce-form-color-check-focus-ring: hsl(262, 71%, 49%); --spruce-form-color-check-foreground: hsl(0, 0%, 100%); - --spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25); --spruce-form-color-invalid: hsl(0, 71%, 51%); + --spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25); --spruce-form-color-label: hsl(205, 100%, 2%); --spruce-form-color-legend: hsl(205, 100%, 2%); --spruce-form-color-placeholder: hsl(208, 7%, 40%); @@ -361,8 +361,8 @@ template { --spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25); --spruce-form-color-select-foreground: hsl(205, 100%, 2%); --spruce-form-color-text: hsl(208, 7%, 30%); - --spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25); --spruce-form-color-valid: hsl(150, 100%, 33%); + --spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25); } :root { diff --git a/css/spruce.min.css b/css/spruce.min.css index 663bec1..a7fc7e7 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(0, 0%, 90%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 7%, 30%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-border-disabled: hsl(0, 0%, 90%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(0, 0%, 90%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 7%, 30%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25);--spruce-form-color-valid: hsl(150, 100%, 33%)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(0, 0%, 90%);--spruce-table-color-caption: hsl(208, 7%, 30%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 7%, 30%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.35rem,2vw,1.15rem)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(0, 0%, 90%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 7%, 30%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(0, 0%, 90%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(0, 0%, 90%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 7%, 30%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(0, 0%, 90%);--spruce-table-color-caption: hsl(208, 7%, 30%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 7%, 30%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.35rem,2vw,1.15rem)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} From a3913151fb792e9d8975dd443c3bed99b1b48c37 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sun, 16 Apr 2023 15:34:59 +0200 Subject: [PATCH 45/67] Add true and write the first test --- package-lock.json | 19146 +++++++++++++++++++++++------------ package.json | 9 +- test/function/_config.scss | 9 + test/function/_index.scss | 1 + test/sass.test.js | 5 + test/test.scss | 1 + 6 files changed, 12460 insertions(+), 6711 deletions(-) create mode 100644 test/function/_config.scss create mode 100644 test/function/_index.scss create mode 100644 test/sass.test.js create mode 100644 test/test.scss diff --git a/package-lock.json b/package-lock.json index 7d5c04c..b4281f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,829 +1,805 @@ { "name": "sprucecss", - "version": "2.0.0-beta.3", + "version": "2.0.0-beta.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.3", + "version": "2.0.0-beta.4", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", "browser-sync": "^2.29.1", "del-cli": "^5.0.0", - "eslint": "^8.36.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.27.5", + "jest": "^29.5.0", + "jest-environment-node-single-context": "^29.0.0", "npm-run-all": "^4.1.5", "postcss-cli": "^10.1.0", "pug-cli": "^1.0.0-alpha6", "sass": "^1.60.0", + "sass-true": "^7.0.0", "stylelint": "^15.3.0", "stylelint-config-sass-guidelines": "^10.0.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz", - "integrity": "sha512-KP8TicdXpUyeB1NMlbHud/1l39xvLGvqNFWMpG4qC6H1zs9SadGUHe5SO92n/659sDW9aGDvm9AMru0DZkN1Bw==", - "dev": true, + "node_modules/@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=6.9.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^2.0.0" + "url": "https://opencollective.com/babel" } }, - "node_modules/@csstools/css-tokenizer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", - "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=6.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@csstools/media-query-list-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.2.tgz", - "integrity": "sha512-8V6JD8Av1HttuClYr1ZBu0LRVe5Nnz4qrv8RppO8mobsX/USBHZy5JQOXYIlpOVhl46nzkx3X5cfH6CqUghjrQ==", + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.0.0", - "@csstools/css-tokenizer": "^2.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "node_modules/@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" + "dependencies": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.10" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", - "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6.9.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6.9.0" } }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@babel/types": "^7.20.2" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "node_modules/@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "engines": { - "node": ">= 0.6.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@types/babel-types": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.11.tgz", - "integrity": "sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A==", - "dev": true + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@types/babylon": { - "version": "6.16.6", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.6.tgz", - "integrity": "sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@types/babel-types": "*" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", - "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=0.4.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { - "acorn": "^4.0.4" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/align-text/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "ms": "2.1.2" }, "engines": { - "node": ">= 8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.9.0" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz", + "integrity": "sha512-KP8TicdXpUyeB1NMlbHud/1l39xvLGvqNFWMpG4qC6H1zs9SadGUHe5SO92n/659sDW9aGDvm9AMru0DZkN1Bw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": "^14 || ^16 || >=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.0.0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "node_modules/@csstools/css-tokenizer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", + "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": "^14 || ^16 || >=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/csstools" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "node_modules/@csstools/media-query-list-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.2.tgz", + "integrity": "sha512-8V6JD8Av1HttuClYr1ZBu0LRVe5Nnz4qrv8RppO8mobsX/USBHZy5JQOXYIlpOVhl46nzkx3X5cfH6CqUghjrQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.0.0", + "@csstools/css-tokenizer": "^2.0.0" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", "dev": true, "engines": { - "node": ">=8" + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" } }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each-series": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", - "dev": true, + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "node_modules/@istanbuljs/load-nyc-config/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, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/@istanbuljs/load-nyc-config/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": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.0" + "node": ">=6" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "node_modules/@istanbuljs/load-nyc-config/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, "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, "bin": { - "babylon": "bin/babylon.js" - } - }, - "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 - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { "node": ">=8" } }, - "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==", + "node_modules/@istanbuljs/load-nyc-config/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, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, - "node_modules/browser-sync": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", - "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "browser-sync-client": "^2.29.1", - "browser-sync-ui": "^2.29.1", - "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", - "chalk": "4.1.2", - "chokidar": "^3.5.1", - "connect": "3.6.6", - "connect-history-api-fallback": "^1", - "dev-ip": "^1.0.1", - "easy-extender": "^2.3.4", - "eazy-logger": "^4.0.1", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "^1.18.1", - "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", - "opn": "5.3.0", - "portscanner": "2.2.0", - "qs": "^6.11.0", - "raw-body": "^2.3.2", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", - "server-destroy": "1.0.1", - "socket.io": "^4.4.1", - "ua-parser-js": "^1.0.33", - "yargs": "^17.3.1" - }, - "bin": { - "browser-sync": "dist/bin.js" - }, "engines": { - "node": ">= 8.0.0" + "node": ">=8" } }, - "node_modules/browser-sync-client": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", - "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", + "node_modules/@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", "dev": true, "dependencies": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/browser-sync-ui": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", - "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", - "dev": true, - "dependencies": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "node_modules/@jest/console/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -838,7 +814,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/browser-sync-ui/node_modules/chalk": { + "node_modules/@jest/console/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -854,7 +830,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/browser-sync-ui/node_modules/color-convert": { + "node_modules/@jest/console/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -866,13 +842,13 @@ "node": ">=7.0.0" } }, - "node_modules/browser-sync-ui/node_modules/color-name": { + "node_modules/@jest/console/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/browser-sync-ui/node_modules/has-flag": { + "node_modules/@jest/console/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -881,7 +857,7 @@ "node": ">=8" } }, - "node_modules/browser-sync-ui/node_modules/supports-color": { + "node_modules/@jest/console/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -893,7 +869,54 @@ "node": ">=8" } }, - "node_modules/browser-sync/node_modules/ansi-styles": { + "node_modules/@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -908,7 +931,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/browser-sync/node_modules/chalk": { + "node_modules/@jest/core/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -924,7 +947,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/browser-sync/node_modules/color-convert": { + "node_modules/@jest/core/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -936,13 +959,13 @@ "node": ">=7.0.0" } }, - "node_modules/browser-sync/node_modules/color-name": { + "node_modules/@jest/core/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/browser-sync/node_modules/has-flag": { + "node_modules/@jest/core/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -951,7 +974,7 @@ "node": ">=8" } }, - "node_modules/browser-sync/node_modules/supports-color": { + "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -963,1234 +986,1023 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "node_modules/@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/bs-recipes": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", - "dev": true + "node_modules/@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "dev": true, + "dependencies": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/bs-snippet-injector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", - "dev": true + "node_modules/@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "node_modules/@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001469", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", - "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@sinclair/typebox": "^0.25.16" }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "node_modules/@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", "dev": true, "dependencies": { - "is-regex": "^1.0.3" + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "node_modules/@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", "dev": true, "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "node_modules/@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", "dev": true, "dependencies": { - "source-map": "~0.6.0" + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "node_modules/@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", "dev": true, "dependencies": { - "escape-string-regexp": "5.0.0" + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "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=", - "dev": true - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, "engines": { - "node": ">= 0.6" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">= 0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=14" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/d-fischer" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cosmiconfig/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4.8" + "node": ">=7.0.0" } }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=12.22" + "node": ">=8" } }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "bin": { - "cssesc": "bin/cssesc" + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0.0" } }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "type-detect": "4.0.8" } }, - "node_modules/del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "dependencies": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@sinonjs/commons": "^2.0.0" } }, - "node_modules/del-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", - "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", + "node_modules/@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", "dev": true, - "dependencies": { - "del": "^7.0.0", - "meow": "^10.1.3" - }, - "bin": { - "del": "cli.js", - "del-cli": "cli.js" - }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6.0" } }, - "node_modules/del/node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/del/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@babel/types": "^7.0.0" } }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, - "engines": { - "node": ">= 0.6.0" + "dependencies": { + "@babel/types": "^7.3.0" } }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "node_modules/@types/babel-types": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.11.tgz", + "integrity": "sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A==", "dev": true }, - "node_modules/dev-ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "node_modules/@types/babylon": { + "version": "6.16.6", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.6.tgz", + "integrity": "sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w==", "dev": true, - "bin": { - "dev-ip": "lib/dev-ip.js" - }, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "@types/babel-types": "*" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "node_modules/@types/css": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/css/-/css-0.0.33.tgz", + "integrity": "sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@types/node": "*" } }, - "node_modules/doctrine": { + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, - "node_modules/easy-extender": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", - "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "node_modules/@types/node": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", + "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", "dev": true, "dependencies": { - "lodash": "^4.17.10" + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" }, "engines": { - "node": ">= 4.0.0" + "node": ">= 0.6" } }, - "node_modules/eazy-logger": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", - "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", "dev": true, - "dependencies": { - "chalk": "4.1.2" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.4.0" } }, - "node_modules/eazy-logger/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "acorn": "^4.0.4" + } + }, + "node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eazy-logger/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/aggregate-error/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eazy-logger/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/eazy-logger/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eazy-logger/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/eazy-logger/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "type-fest": "^0.21.3" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.340", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz", - "integrity": "sha512-zx8hqumOqltKsv/MF50yvdAlPF9S/4PXbyfzJS6ZGhbddGkRegdwImmfSVqCkEziYzrIGZ/TlrzBND4FysfkDg==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/engine.io": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", - "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" - }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/engine.io-client": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", - "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { - "ms": "2.1.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 8" } }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=8" } }, - "node_modules/engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true, - "dependencies": { - "@socket.io/base64-arraybuffer": "~1.0.2" - }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "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==", + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "dependencies": { - "is-arrayish": "^0.2.1" + "lodash": "^4.17.14" } }, - "node_modules/es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "node_modules/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.8.0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "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, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "bin": { + "atob": "bin/atob.js" }, "engines": { - "node": ">= 0.4" + "node": ">= 4.5.0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" }, "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" + "autoprefixer": "bin/autoprefixer" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^10 || ^12 || >=14" }, "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "postcss": "^8.1.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, "engines": { - "node": ">=4" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "follow-redirects": "^1.14.0" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "node_modules/babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@babel/core": "^7.8.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { + "node_modules/babel-jest/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -2205,7 +2017,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/chalk": { + "node_modules/babel-jest/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -2221,7 +2033,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/color-convert": { + "node_modules/babel-jest/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -2233,68 +2045,13 @@ "node": ">=7.0.0" } }, - "node_modules/eslint/node_modules/color-name": { + "node_modules/babel-jest/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/has-flag": { + "node_modules/babel-jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -2303,1830 +2060,1945 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dev": true, "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/espree/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true, - "engines": { - "node": ">=4.0" + "bin": { + "babylon": "bin/babylon.js" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "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 }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, "engines": { - "node": ">= 0.6" + "node": "^4.5.0 || >= 5.9" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, "engines": { - "node": ">=8.6.0" + "node": ">=8" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "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, - "engines": { - "node": ">= 4.9.1" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "reusify": "^1.0.4" + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/browser-sync": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", + "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "browser-sync-client": "^2.29.1", + "browser-sync-ui": "^2.29.1", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "qs": "^6.11.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 8.0.0" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/browser-sync-client": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", + "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "node_modules/browser-sync-ui": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", + "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", "dev": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=7.0.0" } }, - "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "node_modules/browser-sync-ui/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=8" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "is-callable": "^1.1.3" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "node_modules/browser-sync/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "node_modules/browser-sync/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "node_modules/browser-sync/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "node_modules/browser-sync/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/browser-sync/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "node_modules/browser-sync/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "node_modules/bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "node-int64": "^0.4.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">= 0.8" } }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "dependencies": { "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "get-intrinsic": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/caniuse-lite": { + "version": "1.0.30001469", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", + "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "global-prefix": "^3.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=8" + "node": ">= 8.10.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "source-map": "~0.6.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 4.0" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { - "node": ">=6" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "color-name": "1.1.3" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "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=", + "dev": true + }, + "node_modules/connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10.0" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.6" } }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, - "engines": { - "node": ">= 0.4" + "hasInstallScript": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.10" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/d-fischer" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "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, "dependencies": { - "lru-cache": "^6.0.0" + "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": ">=10" + "node": ">=4.8" } }, - "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "semver": "bin/semver" } }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" } }, - "node_modules/http-errors/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=12.22" } }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "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, - "engines": { - "node": ">= 4" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "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.8.19" + "node": ">=0.10" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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 - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "node_modules/del": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", + "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", + "rimraf": "^3.0.2", + "slash": "^4.0.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/del-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", + "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "del": "^7.0.0", + "meow": "^10.1.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" + "bin": { + "del": "cli.js", + "del-cli": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/del/node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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 - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/del/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.6" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6.0" } }, - "node_modules/is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "dependencies": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" + "engines": { + "node": ">=8" } }, - "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=", + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "path-type": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, "engines": { - "node": ">=0.12.0" + "node": ">= 4.0.0" } }, - "node_modules/is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, "dependencies": { - "lodash.isfinite": "^3.3.2" + "chalk": "4.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/eazy-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node_modules/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eazy-logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/electron-to-chromium": { + "version": "1.4.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz", + "integrity": "sha512-zx8hqumOqltKsv/MF50yvdAlPF9S/4PXbyfzJS6ZGhbddGkRegdwImmfSVqCkEziYzrIGZ/TlrzBND4FysfkDg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/is-shared-array-buffer": { + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.8" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/engine.io": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.0.0" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/engine.io-parser": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "@socket.io/base64-arraybuffer": "~1.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=4" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "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, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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 + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "node_modules/jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "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, - "dependencies": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "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==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/known-css-properties": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", - "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/execa/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 8" } }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "node_modules/execa/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "node_modules/execa/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/load-json-file/node_modules/pify": { + "node_modules/execa/node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/localtunnel": { + "node_modules/execa/node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", - "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" + "isexe": "^2.0.0" }, "bin": { - "lt": "bin/lt.js" + "node-which": "bin/node-which" }, "engines": { - "node": ">=8.3.0" + "node": ">= 8" } }, - "node_modules/localtunnel/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/localtunnel/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/localtunnel/node_modules/yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=12" + "node": ">=8.6.0" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.9.1" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "bser": "2.1.1" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=10" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, "engines": { - "node": ">= 0.10.0" + "node": ">= 0.8" } }, - "node_modules/meow": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.3.tgz", - "integrity": "sha512-0WL7RMCPPdUTE00+GxJjL4d5Dm6eUbmAzxlzywJWiRUKCW093owmZ7/q74tH9VI91vxw9KJJNxAcvdpxb2G4iA==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, "engines": { - "node": ">= 8" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", + "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=8.6" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "is-callable": "^1.1.3" } }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true, "engines": { - "node": ">= 0.6" + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" } }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, "engines": { "node": ">= 0.6" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" } }, - "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, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/mitt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", - "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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 - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" }, - "engines": { - "node": ">= 4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true, + "engines": { + "node": ">=12" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "get-intrinsic": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -4135,115 +4007,100 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "dependencies": { - "ee-first": "1.1.1" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/openurl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", - "dev": true - }, - "node_modules/opn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "dependencies": { - "is-wsl": "^1.1.0" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { "node": ">=10" @@ -4252,1333 +4109,1360 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" + "get-intrinsic": "^1.1.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { - "callsites": "^3.0.0" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4.0" } }, - "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=", + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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=", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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 - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "dependencies": { + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/portscanner": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", - "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", "dev": true, - "dependencies": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - }, "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">= 0.6" } }, - "node_modules/postcss-cli": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", - "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^11.0.0", - "get-stdin": "^9.0.0", - "globby": "^13.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^5.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "postcss": "index.js" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "postcss": "^8.0.0" + "node": ">=8.0.0" } }, - "node_modules/postcss-cli/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=14.14" + "node": ">=0.10.0" } }, - "node_modules/postcss-cli/node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-cli/node_modules/globby/node_modules/slash": { + "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/postcss-cli/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=8" } }, - "node_modules/postcss-cli/node_modules/slash": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", - "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, "engines": { - "node": ">=14.16" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-cli/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">=0.8.19" } }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "node": ">=8" } }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, - "engines": { - "node": ">= 14" + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "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 }, - "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "dependencies": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "engines": { - "node": ">=12.0" + "dependencies": { + "has-bigints": "^1.0.1" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-scss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", - "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-scss" - } - ], - "engines": { - "node": ">=12.0" + "dependencies": { + "binary-extensions": "^2.0.0" }, - "peerDependencies": { - "postcss": "^8.4.19" + "engines": { + "node": ">=8" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "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 }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "dependencies": { - "asap": "~2.0.3" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pug": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", - "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pug-attrs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", - "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "dependencies": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pug-cli": { - "version": "1.0.0-alpha6", - "resolved": "https://registry.npmjs.org/pug-cli/-/pug-cli-1.0.0-alpha6.tgz", - "integrity": "sha1-HKU56krA67ac5KroSu7V1k/+ZQE=", + "node_modules/is-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", "dev": true, "dependencies": { - "chalk": "^1.0.0", - "commander": "^2.8.1", - "mkdirp": "^0.5.1", - "pug": "^2.0.0-alpha7" - }, - "bin": { - "pug": "index.js" + "acorn": "~4.0.2", + "object-assign": "^4.0.1" } }, - "node_modules/pug-cli/node_modules/ansi-regex": { + "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/pug-cli/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/pug-cli/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/pug-cli/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "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, "dependencies": { - "ansi-regex": "^2.0.0" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/pug-cli/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pug-code-gen": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz", - "integrity": "sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" + "engines": { + "node": ">=0.12.0" } }, - "node_modules/pug-error": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", - "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==", - "dev": true - }, - "node_modules/pug-filters": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", - "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", "dev": true, "dependencies": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" + "lodash.isfinite": "^3.3.2" } }, - "node_modules/pug-lexer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", - "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pug-linker": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", - "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", + "node_modules/is-path-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true, - "dependencies": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pug-load": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", - "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pug-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", - "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, - "dependencies": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/pug-runtime": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", - "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==", - "dev": true - }, - "node_modules/pug-strip-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", - "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "pug-error": "^1.3.3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/pug-walk": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", - "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==", + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "dependencies": { - "pify": "^2.3.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "call-bind": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, "engines": { "node": ">=4" } }, - "node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/read-pkg/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==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "pify": "^3.0.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=4" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, - "bin": { - "semver": "bin/semver" + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=8.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" + "execa": "^5.0.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/redent/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "node_modules/jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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=", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10" + "node": ">=7.0.0" } }, - "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=", + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" }, "bin": { - "resolve": "bin/resolve" + "jest": "bin/jest.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/resp-modifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", - "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "debug": "^2.2.0", - "minimatch": "^3.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "align-text": "^0.1.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "queue-microtask": "^1.2.2" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "dev": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", - "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12.0.0" + "node": ">=7.0.0" } }, - "node_modules/sass/node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/send/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/send/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/send/node_modules/statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.6" + "node": ">=7.0.0" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/server-destroy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "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=", + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "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, - "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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 - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/color-convert": { + "node_modules/jest-each/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -5590,745 +5474,812 @@ "node": ">=7.0.0" } }, - "node_modules/slice-ansi/node_modules/color-name": { + "node_modules/jest-each/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", - "dev": true + "node_modules/jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/socket.io-client": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", - "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", + "node_modules/jest-environment-node-single-context": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/jest-environment-node-single-context/-/jest-environment-node-single-context-29.0.0.tgz", + "integrity": "sha512-/XB09Hje38Kl5k9ISUpXNom3M4DQo5ifEsnELPFP5r3yrJDRyNQCEjL/9ScUN6z6UeF4FCNZUsiJIX/tGtTXNw==", "dev": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.4.0", - "socket.io-parser": "~4.2.1" + "jest-environment-node": "^29.0.1" }, + "funding": { + "url": "https://github.com/kayahr/jest-environment-node-single-context?sponsor=1" + } + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, "engines": { - "node": ">=10.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=6.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "node_modules/jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", "dev": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=10.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", "dev": true, "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=10.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "ms": "2.1.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.0" + "node": ">=8" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/stream-throttle": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - }, - "bin": { - "throttleproxy": "bin/throttleproxy.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "min-indent": "^1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true - }, - "node_modules/stylelint": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.3.0.tgz", - "integrity": "sha512-9UYBYk7K9rtlKcTUDZrtntE840sZM00qyYBQHHe7tjwMNUsPsGvR6Fd43IxHEAhRrDLzpy3TVaHb6CReBB3eFg==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.0.1", - "@csstools/css-tokenizer": "^2.1.0", - "@csstools/media-query-list-parser": "^2.0.1", - "@csstools/selector-specificity": "^2.1.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^8.1.0", - "css-functions-list": "^3.1.0", - "css-tree": "^2.3.1", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.4", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.27.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^3.0.0", - "svg-tags": "^1.0.0", - "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^5.0.0" - }, - "bin": { - "stylelint": "bin/stylelint.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/stylelint-config-sass-guidelines": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-10.0.0.tgz", - "integrity": "sha512-+Rr2Dd4b72CWA4qoj1Kk+y449nP/WJsrD0nzQAWkmPPIuyVcy2GMIcfNr0Z8JJOLjRvtlkKxa49FCNXMePBikQ==", + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "postcss-scss": "^4.0.6", - "stylelint-scss": "^4.4.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.13.1 || >=16.13.0 || >=18.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.21", - "stylelint": "^15.2.0" - } - }, - "node_modules/stylelint-scss": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.5.0.tgz", - "integrity": "sha512-/+rQ8FePOiwT5xblOHkujYzRYfSjmE6HYhLpqJShL+9wH6/HaAVj4mWpXlpEsM3ZgIpOblG9Y+/BycSJzWgjNw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1 || ^15.0.0" + "node": ">=7.0.0" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/stylelint/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/stylelint/node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", "dev": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/stylelint/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/stylelint/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/stylelint/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/stylelint/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/stylelint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/stylelint/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==", + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/stylelint/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { "node": ">=8" } }, - "node_modules/stylelint/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, + "node_modules/jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/stylelint/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/stylelint/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/stylelint/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/stylelint/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/stylelint/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/stylelint/node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/stylelint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/stylelint/node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dev": true, "dependencies": { - "min-indent": "^1.0.0" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/stylelint/node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=14.18" + "node": ">=7.0.0" } }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6337,7 +6288,7 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { + "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -6349,2001 +6300,6553 @@ "node": ">=8" } }, - "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==", + "node_modules/jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", "dev": true, + "dependencies": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + }, "engines": { - "node": ">=0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", - "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "minimist": "^1.2.0" + "color-name": "~1.1.4" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ua-parser-js": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.34.tgz", - "integrity": "sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=10" }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/uglify-js/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true }, - "node_modules/uglify-js/node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/uglify-js/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "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 + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/uglify-js/node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", "dev": true, - "optional": true + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "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, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "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==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">=6" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "node_modules/known-css-properties": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", + "dev": true + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=6" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "engines": { + "node": ">=10" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", "dev": true }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "node_modules/load-json-file/node_modules/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": ">= 0.8" + "node": ">=4" } }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.3.0" } }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "ms": "2.1.2" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "node_modules/localtunnel/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "p-locate": "^5.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "node_modules/with/node_modules/acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">=0.4.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "tmpl": "1.0.5" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { + "node_modules/map-obj": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, - "node_modules/write-file-atomic": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", - "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.10.0" } }, - "node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "node_modules/meow": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.3.tgz", + "integrity": "sha512-0WL7RMCPPdUTE00+GxJjL4d5Dm6eUbmAzxlzywJWiRUKCW093owmZ7/q74tH9VI91vxw9KJJNxAcvdpxb2G4iA==", "dev": true, - "engines": { - "node": ">=10.0.0" + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xmlhttprequest-ssl": { + "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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": ">=10" + "node": ">= 8" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", - "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=12" + "node": ">=8.6" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true, - "engines": { - "node": ">=10" + "bin": { + "mime": "cli.js" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true, "engines": { - "node": ">=12" + "node": ">= 0.6" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "mime-db": "1.51.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.6" } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + }, + "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, - "requires": { - "@babel/highlight": "^7.18.6" + "engines": { + "node": ">=6" } }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "engines": { + "node": ">=4" } }, - "@csstools/css-parser-algorithms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz", - "integrity": "sha512-KP8TicdXpUyeB1NMlbHud/1l39xvLGvqNFWMpG4qC6H1zs9SadGUHe5SO92n/659sDW9aGDvm9AMru0DZkN1Bw==", + "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": "*" + } }, - "@csstools/css-tokenizer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", - "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "@csstools/media-query-list-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.2.tgz", - "integrity": "sha512-8V6JD8Av1HttuClYr1ZBu0LRVe5Nnz4qrv8RppO8mobsX/USBHZy5JQOXYIlpOVhl46nzkx3X5cfH6CqUghjrQ==", + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "requires": {} + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } }, - "@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", - "dev": true, - "requires": {} + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "@eslint-community/regexpp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", - "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "bin": { + "nanoid": "bin/nanoid.cjs" }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "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 }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", - "dev": true - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, - "@types/babel-types": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.11.tgz", - "integrity": "sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A==", - "dev": true - }, - "@types/babylon": { - "version": "6.16.6", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.6.tgz", - "integrity": "sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "requires": { - "@types/babel-types": "*" + "engines": { + "node": ">=0.10.0" } }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", - "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "engines": { + "node": ">=0.10.0" } }, - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, - "requires": { - "acorn": "^4.0.4" + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" } }, - "aggregate-error": { + "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, "dependencies": { - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - } + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "engines": { + "node": ">=8" } }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.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" - } - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "engines": { + "node": ">=0.10.0" + } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, - "requires": { - "color-convert": "^1.9.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "engines": { + "node": ">= 0.4" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "dependencies": { + "wrappy": "1" } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", "dev": true }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "lodash": "^4.17.14" + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "async-each-series": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", - "dev": true + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "node_modules/p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, - "requires": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "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" + } }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { - "follow-redirects": "^1.14.0" + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "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=", "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "engines": { + "node": ">= 0.8" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "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 + "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, + "engines": { + "node": ">=0.10.0" + } }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true + "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, + "engines": { + "node": ">=4" + } }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "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 }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, - "requires": { - "fill-range": "^7.0.1" + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" } }, - "browser-sync": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", - "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, - "requires": { - "browser-sync-client": "^2.29.1", - "browser-sync-ui": "^2.29.1", - "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", - "chalk": "4.1.2", - "chokidar": "^3.5.1", - "connect": "3.6.6", - "connect-history-api-fallback": "^1", - "dev-ip": "^1.0.1", - "easy-extender": "^2.3.4", - "eazy-logger": "^4.0.1", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "^1.18.1", - "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", - "opn": "5.3.0", - "portscanner": "2.2.0", - "qs": "^6.11.0", - "raw-body": "^2.3.2", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", - "server-destroy": "1.0.1", - "socket.io": "^4.4.1", - "ua-parser-js": "^1.0.33", - "yargs": "^17.3.1" + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "browser-sync-client": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", - "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3" + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "browser-sync-ui": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", - "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", + "node_modules/pkg-dir/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": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "dependencies": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" } }, - "bs-recipes": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", - "dev": true - }, - "bs-snippet-injector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", - "dev": true - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", "dev": true, - "requires": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" } }, - "caniuse-lite": { - "version": "1.0.30001469", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", - "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "node_modules/postcss-cli/node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/postcss-cli/node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "node_modules/postcss-cli/node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, - "requires": { - "is-regex": "^1.0.3" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "node_modules/postcss-cli/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "node_modules/postcss-cli/node_modules/slash": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", + "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", "dev": true, - "requires": { - "source-map": "~0.6.0" + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - } + "node_modules/postcss-cli/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", "dev": true, - "requires": { - "color-name": "1.1.3" + "engines": { + "node": ">= 14" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true + "node_modules/postcss-scss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.19" + } }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "node_modules/pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", "dev": true, - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" + "engines": { + "node": ">= 0.8" } }, - "cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } + "asap": "~2.0.3" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" } }, - "css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true - }, - "css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "node_modules/pug": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", + "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", "dev": true, - "requires": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "dependencies": { + "pug-code-gen": "^2.0.2", + "pug-filters": "^3.1.1", + "pug-lexer": "^4.1.0", + "pug-linker": "^3.0.6", + "pug-load": "^2.0.12", + "pug-parser": "^5.0.1", + "pug-runtime": "^2.0.5", + "pug-strip-comments": "^1.0.4" } }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/pug-attrs": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", + "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", "dev": true, - "requires": { - "ms": "2.0.0" + "dependencies": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.5" } }, - "decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "node_modules/pug-cli": { + "version": "1.0.0-alpha6", + "resolved": "https://registry.npmjs.org/pug-cli/-/pug-cli-1.0.0-alpha6.tgz", + "integrity": "sha1-HKU56krA67ac5KroSu7V1k/+ZQE=", "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } + "chalk": "^1.0.0", + "commander": "^2.8.1", + "mkdirp": "^0.5.1", + "pug": "^2.0.0-alpha7" + }, + "bin": { + "pug": "index.js" } }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "node_modules/pug-cli/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/pug-cli/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "engines": { + "node": ">=0.10.0" } }, - "del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "node_modules/pug-cli/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, - "requires": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - }, "dependencies": { - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "del-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", - "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", + "node_modules/pug-cli/node_modules/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": { - "del": "^7.0.0", - "meow": "^10.1.3" + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true + "node_modules/pug-cli/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "node_modules/pug-code-gen": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz", + "integrity": "sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA==", + "dev": true, + "dependencies": { + "constantinople": "^3.1.2", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.4", + "pug-error": "^1.3.3", + "pug-runtime": "^2.0.5", + "void-elements": "^2.0.1", + "with": "^5.0.0" + } }, - "dev-ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "node_modules/pug-error": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", + "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==", "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/pug-filters": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", + "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", "dev": true, - "requires": { - "path-type": "^4.0.0" + "dependencies": { + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", + "jstransformer": "1.0.0", + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/pug-lexer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", + "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "dependencies": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.3" } }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", - "dev": true + "node_modules/pug-linker": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", + "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", + "dev": true, + "dependencies": { + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8" + } }, - "easy-extender": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", - "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "node_modules/pug-load": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", + "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", "dev": true, - "requires": { - "lodash": "^4.17.10" + "dependencies": { + "object-assign": "^4.1.0", + "pug-walk": "^1.1.8" } }, - "eazy-logger": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", - "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "node_modules/pug-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", + "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", "dev": true, - "requires": { - "chalk": "4.1.2" - }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "pug-error": "^1.3.3", + "token-stream": "0.0.1" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "node_modules/pug-runtime": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", + "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==", "dev": true }, - "electron-to-chromium": { - "version": "1.4.340", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz", - "integrity": "sha512-zx8hqumOqltKsv/MF50yvdAlPF9S/4PXbyfzJS6ZGhbddGkRegdwImmfSVqCkEziYzrIGZ/TlrzBND4FysfkDg==", - "dev": true + "node_modules/pug-strip-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", + "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", + "dev": true, + "dependencies": { + "pug-error": "^1.3.3" + } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/pug-walk": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", + "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==", "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "engine.io": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", - "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "node_modules/pure-rand": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", + "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" } - } + ] }, - "engine.io-client": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", - "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} + { + "type": "consulting", + "url": "https://feross.org/support" } - } + ] }, - "engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, - "requires": { - "@socket.io/base64-arraybuffer": "~1.0.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/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, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/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/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=0.10" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", + "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-true": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/sass-true/-/sass-true-7.0.0.tgz", + "integrity": "sha512-sRdXX7MrrYdg+lPRm+/vIr8wVvDrNtWj3ttOVyIMHZQ8vNoV67+YjZKTsY9+B4Ecee+/U3ryXKJLi1YcMEkaJQ==", + "dev": true, + "dependencies": { + "@types/css": "^0.0.33", + "css": "^3.0.0", + "jest-diff": "^29.3.1", + "lodash": "^4.17.21" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "sass": ">=1.45.0" + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "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=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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 + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/socket.io": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.4.0", + "socket.io-parser": "~4.2.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", + "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "node_modules/stylelint": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.3.0.tgz", + "integrity": "sha512-9UYBYk7K9rtlKcTUDZrtntE840sZM00qyYBQHHe7tjwMNUsPsGvR6Fd43IxHEAhRrDLzpy3TVaHb6CReBB3eFg==", + "dev": true, + "dependencies": { + "@csstools/css-parser-algorithms": "^2.0.1", + "@csstools/css-tokenizer": "^2.1.0", + "@csstools/media-query-list-parser": "^2.0.1", + "@csstools/selector-specificity": "^2.1.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.1.0", + "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.27.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^5.0.0" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-sass-guidelines": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-10.0.0.tgz", + "integrity": "sha512-+Rr2Dd4b72CWA4qoj1Kk+y449nP/WJsrD0nzQAWkmPPIuyVcy2GMIcfNr0Z8JJOLjRvtlkKxa49FCNXMePBikQ==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.6", + "stylelint-scss": "^4.4.0" + }, + "engines": { + "node": "^14.13.1 || >=16.13.0 || >=18.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.21", + "stylelint": "^15.2.0" + } + }, + "node_modules/stylelint-scss": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.5.0.tgz", + "integrity": "sha512-/+rQ8FePOiwT5xblOHkujYzRYfSjmE6HYhLpqJShL+9wH6/HaAVj4mWpXlpEsM3ZgIpOblG9Y+/BycSJzWgjNw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1 || ^15.0.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/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" + } + }, + "node_modules/stylelint/node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/stylelint/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/stylelint/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/stylelint/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/stylelint/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/stylelint/node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-stream": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", + "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.34.tgz", + "integrity": "sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js/node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/uglify-js/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js/node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/with": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", + "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", + "dev": true, + "dependencies": { + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" + } + }, + "node_modules/with/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", + "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true + }, + "@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + } + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@csstools/css-parser-algorithms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz", + "integrity": "sha512-KP8TicdXpUyeB1NMlbHud/1l39xvLGvqNFWMpG4qC6H1zs9SadGUHe5SO92n/659sDW9aGDvm9AMru0DZkN1Bw==", + "dev": true, + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.0.tgz", + "integrity": "sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==", + "dev": true + }, + "@csstools/media-query-list-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.2.tgz", + "integrity": "sha512-8V6JD8Av1HttuClYr1ZBu0LRVe5Nnz4qrv8RppO8mobsX/USBHZy5JQOXYIlpOVhl46nzkx3X5cfH6CqUghjrQ==", + "dev": true, + "requires": {} + }, + "@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "dev": true, + "requires": {} + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "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": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + } + }, + "@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "dev": true, + "requires": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + } + }, + "@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3" + } + }, + "@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + } + }, + "@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "dev": true, + "requires": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + } + } + }, + "@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0" + } + }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "@types/babel__core": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/babel-types": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.11.tgz", + "integrity": "sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.6", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.6.tgz", + "integrity": "sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w==", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/css": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/css/-/css-0.0.33.tgz", + "integrity": "sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ==", + "dev": true + }, + "@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", + "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "dev": true, + "requires": { + "acorn": "^4.0.4" + } + }, + "aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "dependencies": { + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + } + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.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" + } + } + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true + }, + "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 + }, + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "dev": true, + "requires": { + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "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 + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "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": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-sync": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", + "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", + "dev": true, + "requires": { + "browser-sync-client": "^2.29.1", + "browser-sync-ui": "^2.29.1", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "qs": "^6.11.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "browser-sync-client": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", + "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + } + }, + "browser-sync-ui": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", + "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "requires": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001469", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", + "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "dev": true, + "requires": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "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": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "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 + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", + "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "dev": true, + "requires": { + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", + "rimraf": "^3.0.2", + "slash": "^4.0.0" + }, + "dependencies": { + "globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "del-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", + "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", + "dev": true, + "requires": { + "del": "^7.0.0", + "meow": "^10.1.3" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "requires": { + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz", + "integrity": "sha512-zx8hqumOqltKsv/MF50yvdAlPF9S/4PXbyfzJS6ZGhbddGkRegdwImmfSVqCkEziYzrIGZ/TlrzBND4FysfkDg==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "engine.io": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + } + } + }, + "engine.io-parser": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "dev": true, + "requires": { + "@socket.io/base64-arraybuffer": "~1.0.2" + } + }, + "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": { + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -8398,15 +12901,6 @@ "has-tostringtag": "^1.0.0" } }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -8436,140 +12930,57 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "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 + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } }, "path-key": { "version": "3.1.1", @@ -8592,15 +13003,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8612,989 +13014,2095 @@ } } }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", + "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "global-prefix": "^3.0.0" } }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" } }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } + "define-properties": "^1.1.3" } }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" }, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true } } }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "get-intrinsic": "^1.1.1" } }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", "dev": true }, - "espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} } } }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { - "estraverse": "^5.1.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "estraverse": "^5.2.0" + "safer-buffer": ">= 2.1.2 < 3" } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "once": "^1.3.0", + "wrappy": "1" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { - "reusify": "^1.0.4" + "has-bigints": "^1.0.1" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "binary-extensions": "^2.0.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "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-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" + "has": "^1.0.3" } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "has-tostringtag": "^1.0.0" } }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "is-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "acorn": "~4.0.2", + "object-assign": "^4.0.1" } }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "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 }, - "follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "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": { - "is-callable": "^1.1.3" + "is-extglob": "^2.1.1" } }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" + "lodash.isfinite": "^3.3.2" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", + "dev": true + }, + "is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "has-tostringtag": "^1.0.0" } }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "has-tostringtag": "^1.0.0" } }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "has-symbols": "^1.0.2" } }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "call-bind": "^1.0.2" } }, - "global-modules": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { - "global-prefix": "^3.0.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "global-prefix": { + "istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { - "type-fest": "^0.20.2" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { - "define-properties": "^1.1.3" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", "dev": true, "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" } }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "requires": { - "get-intrinsic": "^1.1.3" + "execa": "^5.0.0", + "p-limit": "^3.1.0" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "dependencies": { - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", "dev": true, "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "detect-newline": "^3.0.0" } }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" }, "dependencies": { - "resolve-from": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", "dev": true, "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" } }, - "is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "jest-environment-node-single-context": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/jest-environment-node-single-context/-/jest-environment-node-single-context-29.0.0.tgz", + "integrity": "sha512-/XB09Hje38Kl5k9ISUpXNom3M4DQo5ifEsnELPFP5r3yrJDRyNQCEjL/9ScUN6z6UeF4FCNZUsiJIX/tGtTXNw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" + "jest-environment-node": "^29.0.1" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dev": true, "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "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-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", "dev": true, "requires": { - "has": "^1.0.3" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, "requires": { - "has-tostringtag": "^1.0.0" + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" } }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - } - }, - "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 + "requires": {} }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "dev": true }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", "dev": true, "requires": { - "lodash.isfinite": "^3.3.2" + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" } }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", "dev": true, "requires": { - "has-tostringtag": "^1.0.0" + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", - "dev": true - }, - "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dev": true, "requires": { - "has-tostringtag": "^1.0.0" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", "dev": true, "requires": { - "has-symbols": "^1.0.2" + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, "js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -9616,6 +15124,12 @@ "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "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", @@ -9628,16 +15142,10 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonfile": { @@ -9665,6 +15173,12 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, "known-css-properties": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", @@ -9677,15 +15191,11 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true }, "lilconfig": { "version": "2.0.6", @@ -9790,12 +15300,6 @@ "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "dev": true }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -9817,6 +15321,32 @@ "yallist": "^4.0.0" } }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, "map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", @@ -9861,6 +15391,12 @@ "yargs-parser": "^20.2.9" } }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -9898,6 +15434,12 @@ "mime-db": "1.51.0" } }, + "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 + }, "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -9975,6 +15517,12 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, "node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", @@ -10022,6 +15570,23 @@ "string.prototype.padend": "^3.0.0" } }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -10052,28 +15617,6 @@ "object-keys": "^1.1.1" } }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -10092,6 +15635,15 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, "openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -10107,20 +15659,6 @@ "is-wsl": "^1.1.0" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -10233,6 +15771,60 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, "portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -10400,11 +15992,24 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } }, "pretty-hrtime": { "version": "1.0.3", @@ -10421,6 +16026,16 @@ "asap": "~2.0.3" } }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, "pug": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", @@ -10607,6 +16222,12 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "pure-rand": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", + "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "dev": true + }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -10646,6 +16267,12 @@ "unpipe": "1.0.0" } }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -10823,12 +16450,27 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, "resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", @@ -10914,6 +16556,18 @@ } } }, + "sass-true": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/sass-true/-/sass-true-7.0.0.tgz", + "integrity": "sha512-sRdXX7MrrYdg+lPRm+/vIr8wVvDrNtWj3ttOVyIMHZQ8vNoV67+YjZKTsY9+B4Ecee+/U3ryXKJLi1YcMEkaJQ==", + "dev": true, + "requires": { + "@types/css": "^0.0.33", + "css": "^3.0.0", + "jest-diff": "^29.3.1", + "lodash": "^4.17.21" + } + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -11085,6 +16739,12 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -11244,6 +16904,26 @@ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -11276,6 +16956,29 @@ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -11292,6 +16995,16 @@ "limiter": "^1.0.5" } }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -11351,6 +17064,12 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "strip-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", @@ -11741,11 +17460,16 @@ } } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } }, "thenby": { "version": "1.3.4", @@ -11753,6 +17477,12 @@ "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", "dev": true }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -11786,37 +17516,11 @@ "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", "dev": true }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true }, "type-fest": { "version": "1.4.0", @@ -11963,6 +17667,25 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + } + } + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -11985,6 +17708,15 @@ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -12045,12 +17777,6 @@ } } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", diff --git a/package.json b/package.json index 0497709..c4d3e62 100644 --- a/package.json +++ b/package.json @@ -32,18 +32,25 @@ "sass:prod:compressed": "sass --no-source-map --style=compressed scss/spruce-styles.scss:css/spruce.min.css", "sass:lint": "stylelint scss/**/*.scss", "sass:lint:fix": "stylelint scss/**/*.scss --fix", - "start": "npm-run-all --parallel pug sass:preview browser-sync" + "start": "npm-run-all --parallel pug sass:preview browser-sync", + "test": "jest" }, "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", "browser-sync": "^2.29.1", "del-cli": "^5.0.0", + "jest": "^29.5.0", + "jest-environment-node-single-context": "^29.0.0", "npm-run-all": "^4.1.5", "postcss-cli": "^10.1.0", "pug-cli": "^1.0.0-alpha6", "sass": "^1.60.0", + "sass-true": "^7.0.0", "stylelint": "^15.3.0", "stylelint-config-sass-guidelines": "^10.0.0" + }, + "jest": { + "testEnvironment": "jest-environment-node-single-context" } } diff --git a/test/function/_config.scss b/test/function/_config.scss new file mode 100644 index 0000000..afc1a10 --- /dev/null +++ b/test/function/_config.scss @@ -0,0 +1,9 @@ +@use 'true' as *; +@use '../../scss/config' as *; +@use '../../scss/function/config' as *; + +@include describe('config()') { + @include it('should return "0.75em 1em" as the base padding for the button elements') { + @include assert-equal(config('padding', $btn), 0.75em 1em); + } +} diff --git a/test/function/_index.scss b/test/function/_index.scss new file mode 100644 index 0000000..34d56fc --- /dev/null +++ b/test/function/_index.scss @@ -0,0 +1 @@ +@forward 'config'; diff --git a/test/sass.test.js b/test/sass.test.js new file mode 100644 index 0000000..611043a --- /dev/null +++ b/test/sass.test.js @@ -0,0 +1,5 @@ +const path = require('path'); +const sassTrue = require('sass-true'); + +const sassFile = path.join(__dirname, 'test.scss'); +sassTrue.runSass({ describe, it }, sassFile); diff --git a/test/test.scss b/test/test.scss new file mode 100644 index 0000000..9edb546 --- /dev/null +++ b/test/test.scss @@ -0,0 +1 @@ +@forward 'function'; From 25b2e2769f64dba60eac5b2e55f9f1e7fca77a32 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 17 Apr 2023 19:10:13 +0200 Subject: [PATCH 46/67] Modify text color --- package-lock.json | 4 ++-- package.json | 2 +- scss/config/_color.scss | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4281f6..666eed0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.4", + "version": "2.0.0-beta.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.4", + "version": "2.0.0-beta.5", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index c4d3e62..cc54b0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.4", + "version": "2.0.0-beta.5", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", diff --git a/scss/config/_color.scss b/scss/config/_color.scss index 3c86d2d..82741d8 100644 --- a/scss/config/_color.scss +++ b/scss/config/_color.scss @@ -4,7 +4,7 @@ $color-black: hsl(205deg 100% 2%) !default; $color-danger: hsl(0deg 71% 51%) !default; $color-gray-light: hsl(0deg 0% 90%) !default; -$color-gray: hsl(208deg 7% 30%) !default; +$color-gray: hsl(208deg 9% 42%) !default; $color-primary: hsl(262deg 71% 49%) !default; $color-secondary: hsl(227deg 92% 55%) !default; $color-success: hsl(150deg 100% 33%) !default; From eb0baf3c323cec0bd19aa9a0ff683c4860f70233 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 19 Apr 2023 10:18:52 +0200 Subject: [PATCH 47/67] font-size-lead fix --- scss/config/_setting.scss | 2 +- scss/config/_typography.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scss/config/_setting.scss b/scss/config/_setting.scss index 4387a9f..846c444 100644 --- a/scss/config/_setting.scss +++ b/scss/config/_setting.scss @@ -4,6 +4,7 @@ $settings: () !default; $settings: map.deep-merge( ( 'color-fallback': false, + 'css-custom-properties': false, 'html-smooth-scrolling': true, 'hyphens': true, 'optimal-responsive-font-size': '2vw + 1rem', @@ -14,7 +15,6 @@ $settings: map.deep-merge( 'display': true, 'typography': true, ), - 'css-custom-properties': false, ), $settings ); diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index 2c08979..3ed6c42 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -9,7 +9,7 @@ $typography: map.merge( 'font-family-cursive': #{ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace}, 'font-family-heading': #{Avenir, 'Avenir Next LT Pro', Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif}, 'font-size-base': 1rem, - 'font-size-lead': clamp(1.35rem, 2vw, 1.15rem), + 'font-size-lead': clamp(1.15rem, 2vw, 1.35rem), 'font-size-lg': 1.125rem, 'font-size-ratio': 1.25, 'font-size-sm': 0.875rem, From 6f3917c78b393989a3d40a9cfa90175f7a1ddf57 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 19 Apr 2023 14:54:47 +0200 Subject: [PATCH 48/67] Update dark colors --- preview/assets/scss/config/_dark-colors.scss | 58 +++++++++----------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/preview/assets/scss/config/_dark-colors.scss b/preview/assets/scss/config/_dark-colors.scss index 6091ee6..ed55044 100644 --- a/preview/assets/scss/config/_dark-colors.scss +++ b/preview/assets/scss/config/_dark-colors.scss @@ -1,35 +1,30 @@ @use 'sass:color'; -$color-primary: hsl(261 54% 70%); -$color-secondary: hsl(227 92% 55%); - -$color-black: hsl(206 100% 7%); -$color-white: hsl(0 0% 95%); - -$color-gray: hsl(0 0% 97%); -$color-gray-dark: hsl(0 0% 100% / 8%); - -$color-danger: hsl(0 71% 51%); -$color-success: hsl(150 100% 33%); +$color-black: hsl(206deg 100% 7%); +$color-danger: hsl(0deg 71% 51%); +$color-gray-dark: hsl(0deg 0% 100% / 8%); +$color-gray: hsl(0deg 0% 97%); +$color-primary: hsl(261deg 54% 70%); +$color-secondary: hsl(227deg 92% 55%); +$color-success: hsl(150deg 100% 33%); +$color-white: hsl(0deg 0% 95%); $colors: ( 'base': ( - 'card-border': hsl(207 90% 13%), - 'primary': $color-primary, - 'secondary': $color-secondary, 'background': $color-black, + 'blockquote-border': $color-primary, + 'border': $color-gray-dark, + 'code-background': hsl(207deg 64% 18%), + 'code-foreground': $color-white, 'heading': $color-white, - 'text': $color-gray, 'link': $color-primary, 'link-hover': color.scale($color-primary, $lightness: -20%), - 'border': $color-gray-dark, 'mark-background': hsl(50 100% 80%), 'mark-foreground': $color-black, 'marker': $color-primary, - 'code-background': hsl(207 64% 18%), - 'code-foreground': $color-white, - 'blockquote-border': $color-primary, - 'footer-background': hsl(0 0% 0% / 0.15), + 'primary': $color-primary, + 'secondary': $color-secondary, + 'text': $color-gray, ), 'btn': ( 'primary-background': hsl(261 52% 59%), @@ -38,9 +33,6 @@ $colors: ( 'secondary-background': $color-secondary, 'secondary-background-hover': color.adjust($color-secondary, $lightness: 5%), 'secondary-foreground': $color-white, - 'install-background': hsl(207 39% 17%), - 'install-background-hover': hsl(207 23% 26%), - 'install-foreground': hsl(0 0% 100%), ), 'form': ( 'background': color.scale($color-black, $lightness: 5%), @@ -48,38 +40,38 @@ $colors: ( 'border': $color-gray-dark, 'border-disabled': $color-gray-dark, 'border-focus': $color-primary, - 'ring-focus': color.adjust($color-primary, $alpha: -0.75), - 'check-foreground': $color-black, 'check-background': $color-primary, 'check-focus-ring': $color-primary, + 'check-foreground': $color-black, 'invalid': $color-danger, 'invalid-focus-ring': color.adjust($color-danger, $alpha: -0.75), 'label': $color-white, 'legend': $color-white, - 'placeholder': hsl(0 0% 60%), + 'placeholder': hsl(0deg 0% 60%), 'range-thumb-background': $color-primary, 'range-thumb-focus-ring': $color-primary, 'range-track-background': $color-gray-dark, + 'ring-focus': color.adjust($color-primary, $alpha: -0.75), + 'select-foreground': hsl(0deg 0% 100%), 'text': $color-gray, - 'select-foreground': hsl(0 0% 100%), 'valid': $color-success, 'valid-focus-ring': color.adjust($color-success, $alpha: -0.75), ), 'selection': ( - 'foreground': $color-white, 'background': $color-primary, + 'foreground': $color-white, ), 'scrollbar': ( - 'thumb-background': hsl(0 0% 100% / 0.15), - 'thumb-background-hover': hsl(0 0% 100% / 0.25), - 'track-background': hsl(0 0% 100% / 0.05), + 'thumb-background': hsl(0deg 0% 100% / 0.15), + 'thumb-background-hover': hsl(0deg 0% 100% / 0.25), + 'track-background': hsl(0deg 0% 100% / 0.05), ), 'table': ( 'border': $color-gray-dark, 'caption': $color-gray, 'heading': $color-white, - 'hover': hsl(0 0% 100% / 0.05), + 'hover': hsl(0deg 0% 100% / 0.05), 'text': $color-gray, - 'stripe': hsl(0 0% 100% / 0.025), + 'stripe': hsl(0deg 0% 100% / 0.025), ) ); From b38ce73539edaa339d7a6e5cc4b8e1188a1b8ed1 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 19 Apr 2023 15:01:12 +0200 Subject: [PATCH 49/67] Update border color --- scss/config/_color.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scss/config/_color.scss b/scss/config/_color.scss index 82741d8..217cebc 100644 --- a/scss/config/_color.scss +++ b/scss/config/_color.scss @@ -3,7 +3,7 @@ $color-black: hsl(205deg 100% 2%) !default; $color-danger: hsl(0deg 71% 51%) !default; -$color-gray-light: hsl(0deg 0% 90%) !default; +$color-gray-light: hsl(215deg 63% 93%) !default; $color-gray: hsl(208deg 9% 42%) !default; $color-primary: hsl(262deg 71% 49%) !default; $color-secondary: hsl(227deg 92% 55%) !default; From 8ae48876d12ffa0c1fdd9ade5c1718122802a32d Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 19 Apr 2023 15:13:04 +0200 Subject: [PATCH 50/67] Color updates --- css/spruce.css | 18 +++++++++--------- css/spruce.min.css | 2 +- preview/assets/scss/config/_dark-colors.scss | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/css/spruce.css b/css/spruce.css index f3dea9b..e709343 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -318,7 +318,7 @@ template { :root { --spruce-base-color-background: hsl(0, 0%, 100%); --spruce-base-color-blockquote-border: hsl(262, 71%, 49%); - --spruce-base-color-border: hsl(0, 0%, 90%); + --spruce-base-color-border: hsl(215, 63%, 93%); --spruce-base-color-code-background: #f6f2fd; --spruce-base-color-code-foreground: hsl(205, 100%, 2%); --spruce-base-color-heading: hsl(205, 100%, 2%); @@ -329,7 +329,7 @@ template { --spruce-base-color-marker: hsl(262, 71%, 49%); --spruce-base-color-primary: hsl(262, 71%, 49%); --spruce-base-color-secondary: hsl(227, 92%, 55%); - --spruce-base-color-text: hsl(208, 7%, 30%); + --spruce-base-color-text: hsl(208, 9%, 42%); } :root { @@ -345,7 +345,7 @@ template { --spruce-form-color-background: hsl(0, 0%, 100%); --spruce-form-color-background-disabled: hsl(0, 0%, 95%); --spruce-form-color-border: hsl(260, 4%, 70%); - --spruce-form-color-border-disabled: hsl(0, 0%, 90%); + --spruce-form-color-border-disabled: hsl(215, 63%, 93%); --spruce-form-color-border-focus: hsl(262, 71%, 49%); --spruce-form-color-check-background: hsl(262, 71%, 49%); --spruce-form-color-check-focus-ring: hsl(262, 71%, 49%); @@ -357,10 +357,10 @@ template { --spruce-form-color-placeholder: hsl(208, 7%, 40%); --spruce-form-color-range-thumb-background: hsl(262, 71%, 49%); --spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%); - --spruce-form-color-range-track-background: hsl(0, 0%, 90%); + --spruce-form-color-range-track-background: hsl(215, 63%, 93%); --spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25); --spruce-form-color-select-foreground: hsl(205, 100%, 2%); - --spruce-form-color-text: hsl(208, 7%, 30%); + --spruce-form-color-text: hsl(208, 9%, 42%); --spruce-form-color-valid: hsl(150, 100%, 33%); --spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25); } @@ -377,12 +377,12 @@ template { } :root { - --spruce-table-color-border: hsl(0, 0%, 90%); - --spruce-table-color-caption: hsl(208, 7%, 30%); + --spruce-table-color-border: hsl(215, 63%, 93%); + --spruce-table-color-caption: hsl(208, 9%, 42%); --spruce-table-color-heading: hsl(205, 100%, 2%); --spruce-table-color-hover: hsla(0, 0%, 0%, 0.05); --spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025); - --spruce-table-color-text: hsl(208, 7%, 30%); + --spruce-table-color-text: hsl(208, 9%, 42%); } .sr-only { @@ -721,7 +721,7 @@ samp { } .lead { - font-size: clamp(1.35rem, 2vw, 1.15rem); + font-size: clamp(1.15rem, 2vw, 1.35rem); } .hidden, diff --git a/css/spruce.min.css b/css/spruce.min.css index a7fc7e7..4bf5e3f 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(0, 0%, 90%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 7%, 30%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(0, 0%, 90%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(0, 0%, 90%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 7%, 30%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(0, 0%, 90%);--spruce-table-color-caption: hsl(208, 7%, 30%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 7%, 30%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.35rem,2vw,1.15rem)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.15rem,2vw,1.35rem)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} diff --git a/preview/assets/scss/config/_dark-colors.scss b/preview/assets/scss/config/_dark-colors.scss index ed55044..a1d55d7 100644 --- a/preview/assets/scss/config/_dark-colors.scss +++ b/preview/assets/scss/config/_dark-colors.scss @@ -62,16 +62,16 @@ $colors: ( 'foreground': $color-white, ), 'scrollbar': ( - 'thumb-background': hsl(0deg 0% 100% / 0.15), - 'thumb-background-hover': hsl(0deg 0% 100% / 0.25), - 'track-background': hsl(0deg 0% 100% / 0.05), + 'thumb-background': hsl(0deg 0% 100% / 15%), + 'thumb-background-hover': hsl(0deg 0% 100% / 25%), + 'track-background': hsl(0deg 0% 100% / 5%), ), 'table': ( 'border': $color-gray-dark, 'caption': $color-gray, 'heading': $color-white, - 'hover': hsl(0deg 0% 100% / 0.05), + 'hover': hsl(0deg 0% 100% / 5%), 'text': $color-gray, - 'stripe': hsl(0deg 0% 100% / 0.025), + 'stripe': hsl(0deg 0% 100% / 2.5%), ) ); From 4714d03fcf3e1a037e85149af68333541e6138dc Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 19 Apr 2023 15:13:13 +0200 Subject: [PATCH 51/67] 2.0.0-beta.6 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 666eed0..972ef53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index cc54b0a..b703b98 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From 64aa826ca42bc894c02f918ff0a458c12c7db20e Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Fri, 21 Apr 2023 19:08:05 +0200 Subject: [PATCH 52/67] Fix icon button sizes --- css/spruce.css | 336 +++++++++++++++--------- css/spruce.min.css | 2 +- preview/assets/scss/config/_config.scss | 2 +- preview/assets/scss/main.scss | 76 +++--- preview/pug/page/button.pug | 9 + preview/pug/page/typography.pug | 3 +- scss/config/_button.scss | 4 +- scss/spruce-styles.scss | 7 +- 8 files changed, 278 insertions(+), 161 deletions(-) diff --git a/css/spruce.css b/css/spruce.css index e709343..31a26ab 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -385,6 +385,36 @@ template { --spruce-table-color-text: hsl(208, 9%, 42%); } +:root { + --spruce-font-family-base: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif; + --spruce-font-family-cursive: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace; + --spruce-font-family-heading: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif; + --spruce-font-size-base: 1rem; + --spruce-font-size-lead: clamp(1.15rem, 2vw, 1.35rem); + --spruce-font-size-lg: 1.125rem; + --spruce-font-size-ratio: 1.25; + --spruce-font-size-sm: 0.875rem; + --spruce-font-weight-heading: 700; + --spruce-inline-border-radius: 0.325rem; + --spruce-inline-padding: 0.1em 0.3em; + --spruce-line-height-base: 1.8; + --spruce-line-height-heading: calc(2px + 2ex + 2px); + --spruce-line-height-lg: 1.8; + --spruce-line-height-md: 1.5; + --spruce-line-height-sm: 1.2; + --spruce-border-radius-lg: 0.725rem; + --spruce-border-radius-sm: 0.325rem; + --spruce-container-width: 84rem; + --spruce-page-margin: 2cm; + --spruce-hidden-elements: header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]; +} +@media (prefers-reduced-motion: no-preference) { + :root { + --spruce-duration: 0.15s; + --spruce-timing-function: ease-in-out; + } +} + .sr-only { border: 0 !important; clip: rect(0, 0, 0, 0) !important; @@ -485,7 +515,7 @@ figure figcaption { } .table-responsive { - --min-width: 40rem; + --min-width: var(--spruce-responsive-width); -webkit-overflow-scrolling: touch; overflow-x: auto; } @@ -494,6 +524,9 @@ figure figcaption { } .table { + --spruce-line-height: 1.5; + --spruce-padding: 1rem; + --spruce-responsive-width: 40rem; border-collapse: collapse; color: var(--spruce-table-color-text); width: 100%; @@ -507,8 +540,8 @@ figure figcaption { .table td { -webkit-border-after: 1px solid var(--spruce-table-color-border); border-block-end: 1px solid var(--spruce-table-color-border); - line-height: 1.5; - padding: 1rem; + line-height: var(--spruce-line-height); + padding: var(--spruce-padding); } .table th { color: var(--spruce-table-color-heading); @@ -535,19 +568,22 @@ figure figcaption { -webkit-padding-end: 0; padding-inline-end: 0; } +.table--sm { + --spruce-padding: 0.5rem; +} .table--sm th, .table--sm td { - padding: 0.5rem; + padding: var(--spruce-padding); } .table--rounded th:first-child, .table--rounded td:first-child { - border-end-start-radius: 0.325rem; - border-start-start-radius: 0.325rem; + border-end-start-radius: var(--spruce-border-radius-sm); + border-start-start-radius: var(--spruce-border-radius-sm); } .table--rounded th:last-child, .table--rounded td:last-child { - border-end-end-radius: 0.325rem; - border-start-end-radius: 0.325rem; + border-end-end-radius: var(--spruce-border-radius-sm); + border-start-end-radius: var(--spruce-border-radius-sm); } html { @@ -555,9 +591,9 @@ html { } body { - font-family: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif; - font-size: 1rem; - line-height: 1.8; + font-family: var(--spruce-font-family-base); + font-size: var(--spruce-font-size-base); + line-height: var(--spruce-line-height-base); } p, @@ -580,9 +616,9 @@ h4, h5, h6 { color: var(--spruce-base-color-heading); - font-family: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif; - font-weight: 700; - line-height: calc(2px + 2ex + 2px); + font-family: var(--spruce-font-family-heading); + font-weight: var(--spruce-font-weight-heading); + line-height: var(--spruce-line-height-heading); } h1 { @@ -706,22 +742,22 @@ abbr[title] { mark { background-color: var(--spruce-base-color-mark-background); - border-radius: 0.325rem; + border-radius: var(--spruce-inline-border-radius); color: var(--spruce-base-color-mark-foreground); - padding: 0.1em 0.3em; + padding: var(--spruce-inline-padding); } code, kbd, samp { background-color: var(--spruce-base-color-code-background); - border-radius: 0.325rem; + border-radius: var(--spruce-inline-border-radius); color: var(--spruce-base-color-code-foreground); - padding: 0.1em 0.3em; + padding: var(--spruce-inline-padding); } .lead { - font-size: clamp(1.15rem, 2vw, 1.35rem); + font-size: var(--spruce-font-size-lead); } .hidden, @@ -754,18 +790,27 @@ samp { } .btn { + --spruce-border-radius: 0.325rem; + --spruce-font-size: 1rem; + --spruce-font-weight: 500; + --spruce-gap: 0.5rem; + --spruce-icon-padding: 0.75em; + --spruce-icon-size: 1em; + --spruce-outline-width: 1px; + --spruce-padding: 0.75em 1em; + --spruce-shadow-width: 0.25rem; align-items: center; - border-radius: 0.325rem; + border-radius: var(--spruce-border-radius); border-style: solid; - border-width: 1px; + border-width: var(--spruce-outline-width); cursor: pointer; display: inline-flex; - font-size: 1rem; - font-weight: 500; - gap: 0.5rem; + font-size: var(--spruce-font-size); + font-weight: var(--spruce-font-weight); + gap: var(--spruce-gap); justify-content: center; line-height: 1; - padding: 0.75em 1em; + padding: var(--spruce-padding); text-align: start; text-decoration: none; transition-duration: var(--spruce-duration); @@ -785,39 +830,41 @@ samp { } .btn--icon { - padding: 0.75em; + padding: var(--spruce-icon-padding); } .btn--icon.btn--sm { - padding: 0.5em; + padding: var(--spruce-icon-padding); } .btn--icon.btn--lg { - padding: 0.9em; + padding: var(--spruce-icon-padding); } .btn__icon { flex-shrink: 0; - height: 1em; - width: 1em; + height: var(--spruce-icon-size); + width: var(--spruce-icon-size); } .btn__icon--sm { - height: 0.85em; - width: 0.85em; + height: var(--spruce-icon-size); + width: var(--spruce-icon-size); } .btn--sm { - font-size: 0.8rem; - gap: 0.25rem; - padding: 0.5em 1em; + --spruce-font-size: 0.8rem; + --spruce-gap: 0.25rem; + --spruce-icon-padding: 0.5em; + --spruce-icon-size: 0.85em; + --spruce-padding: 0.5em 1em; + font-size: var(--spruce-font-size); + gap: var(--spruce-gap); + padding: var(--spruce-padding); } .btn--lg { - gap: 0.5rem; - padding: 0.9em 1.15em; -} -@media (min-width: 64em) { - .btn--lg { - font-size: 1.15rem; - } + --spruce-font-size: 1.15rem; + --spruce-gap: 0.5rem; + --spruce-icon-padding: 0.9em; + --spruce-padding: 0.9em 1.15em; } .btn--block { @@ -883,18 +930,27 @@ samp { } .form-file::file-selector-button { + --spruce-border-radius: 0.325rem; + --spruce-font-size: 1rem; + --spruce-font-weight: 500; + --spruce-gap: 0.5rem; + --spruce-icon-padding: 0.75em; + --spruce-icon-size: 1em; + --spruce-outline-width: 1px; + --spruce-padding: 0.75em 1em; + --spruce-shadow-width: 0.25rem; align-items: center; - border-radius: 0.325rem; + border-radius: var(--spruce-border-radius); border-style: solid; - border-width: 1px; + border-width: var(--spruce-outline-width); cursor: pointer; display: inline-flex; - font-size: 1rem; - font-weight: 500; - gap: 0.5rem; + font-size: var(--spruce-font-size); + font-weight: var(--spruce-font-weight); + gap: var(--spruce-gap); justify-content: center; line-height: 1; - padding: 0.75em 1em; + padding: var(--spruce-padding); text-align: start; text-decoration: none; transition-duration: var(--spruce-duration); @@ -914,19 +970,21 @@ samp { } .form-file--sm::file-selector-button { - font-size: 0.8rem; - gap: 0.25rem; - padding: 0.5em 1em; + --spruce-font-size: 0.8rem; + --spruce-gap: 0.25rem; + --spruce-icon-padding: 0.5em; + --spruce-icon-size: 0.85em; + --spruce-padding: 0.5em 1em; + font-size: var(--spruce-font-size); + gap: var(--spruce-gap); + padding: var(--spruce-padding); } .form-file--lg::file-selector-button { - gap: 0.5rem; - padding: 0.9em 1.15em; -} -@media (min-width: 64em) { - .form-file--lg::file-selector-button { - font-size: 1.15rem; - } + --spruce-font-size: 1.15rem; + --spruce-gap: 0.5rem; + --spruce-icon-padding: 0.9em; + --spruce-padding: 0.9em 1.15em; } .form-file--block::file-selector-button { @@ -962,18 +1020,24 @@ samp { .form-control { --webkit-date-line-height: 1.375; + --spruce-font-size: 1rem; + --spruce-line-height: 1.5; + --spruce-padding: 0.5em 0.75em; + --spruce-border-width: 1px; + --spruce-border-radius: 0.325rem; + --spruce-textarea-height: 6rem; -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: var(--spruce-form-color-background); - border: 1px solid var(--spruce-form-color-border); - border-radius: 0.325rem; + border: var(--spruce-border-width) solid var(--spruce-form-color-border); + border-radius: var(--spruce-border-radius); box-sizing: border-box; color: var(--spruce-form-color-text); display: block; - font-size: 1rem; - line-height: 1.5; - padding: 0.5em 0.75em; + font-size: var(--spruce-font-size); + line-height: var(--spruce-line-height); + padding: var(--spruce-padding); transition-duration: var(--spruce-duration); transition-property: border, box-shadow; transition-timing-function: var(--spruce-timing-function); @@ -994,21 +1058,25 @@ samp { outline: 2px solid transparent; } .form-control[type=color] { - aspect-ratio: 1; - height: 100%; - padding: 0.5em; - width: 2.625rem; + --spruce-aspect-ratio: 1; + --spruce-height: 100%; + --spruce-padding: 0.5em; + --spruce-width: 2.625rem; + aspect-ratio: var(--spruce-aspect-ratio); + height: var(--spruce-height); + padding: var(--spruce-padding); + width: var(--spruce-width); } .form-control[type=color]::-webkit-color-swatch-wrapper { padding: 0; } .form-control[type=color]::-moz-color-swatch { border: 0; - border-radius: 0.325rem; + border-radius: var(--spruce-border-radius); } .form-control[type=color]::-webkit-color-swatch { border: 0; - border-radius: 0.325rem; + border-radius: var(--spruce-border-radius); } .form-control[disabled], .form-control[disabled=true] { background-color: var(--spruce-form-color-background-disabled); @@ -1016,8 +1084,8 @@ samp { cursor: not-allowed; } textarea.form-control { - height: 6rem; - min-height: 6rem; + height: var(--spruce-textarea-height); + min-height: var(--spruce-textarea-height); resize: vertical; } @@ -1051,23 +1119,24 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid { } .form-control--sm { --webkit-date-line-height: 1.36; - padding: 0.25em 0.5em; + --spruce-border-radius: 0.35em; + --spruce-padding: 0.25em 0.5em; } .form-control--sm[type=color] { - aspect-ratio: 1; - height: 100%; - padding: 0.25em; - width: 1.925rem; + --spruce-aspect-ratio: 1; + --spruce-height: 100%; + --spruce-padding: 0.25em; + --spruce-width: 1.925rem; } .form-control--lg { --webkit-date-line-height: 1.387; - padding: 0.65em 1em; + --spruce-padding: 0.65em 1em; } .form-control--lg[type=color] { - aspect-ratio: 1; - height: 100%; - padding: 0.5em; - width: 3.204rem; + --spruce-aspect-ratio: 1; + --spruce-height: 100%; + --spruce-padding: 0.5em; + --spruce-width: 3.204rem; } select.form-control:not([multiple]):not([size]) { @@ -1083,7 +1152,13 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { } .form-check { - align-items: center; + --spruce-border-width: 1px; + --spruce-border-radius: 0.325rem; + --spruce-font-size: 1.125rem; + --spruce-line-height: calc(2px + 2ex + 2px); + --spruce-margin-block-start: 0.1em; + --spruce-vertical-alignment: center; + align-items: var(--spruce-vertical-alignment); display: inline-flex; gap: 0.5rem; } @@ -1096,10 +1171,17 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { align-items: flex-start; } +.form-check--sm { + --spruce-border-radius: 0.35em; + --spruce-padding: 0.25em 0.5em; +} .form-check--sm .form-check__control { - font-size: 1rem; + font-size: var(--spruce-font-size); } +.form-check--lg { + --spruce-padding: 0.65em 1em; +} .form-check__control { -webkit-appearance: none; -moz-appearance: none; @@ -1108,13 +1190,13 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { background-position: center; background-repeat: no-repeat; background-size: contain; - border: 1px solid var(--spruce-form-color-border); + border: var(--spruce-border-width) solid var(--spruce-form-color-border); flex-shrink: 0; - font-size: 1.125rem; + font-size: var(--spruce-font-size); height: 1em; line-height: 1; - -webkit-margin-before: 0.1em; - margin-block-start: 0.1em; + -webkit-margin-before: var(--spruce-margin-block-start); + margin-block-start: var(--spruce-margin-block-start); transition-duration: var(--spruce-duration); transition-property: border, box-shadow; transition-timing-function: var(--spruce-timing-function); @@ -1124,7 +1206,7 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { border-radius: 50%; } .form-check__control[type=checkbox] { - border-radius: 0.325rem; + border-radius: var(--spruce-border-radius); } .form-check__control:focus-visible { outline: 2px solid var(--spruce-form-color-check-focus-ring); @@ -1155,7 +1237,7 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { } .form-check__label { - line-height: calc(2px + 2ex + 2px); + line-height: var(--spruce-line-height); } .form-switch { @@ -1168,11 +1250,15 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { width: 100%; } -.form-switch--sm .form-switch__control { - font-size: 1rem; +.form-switch--sm { + --spruce-font-size: 1rem; } .form-switch__control { + --spruce-border-width: 1px; + --spruce-font-size: 1.125rem; + --spruce-line-height: calc(2px + 2ex + 2px); + --spruce-margin-block-start: 0.25em; background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e'); -webkit-appearance: none; -moz-appearance: none; @@ -1181,23 +1267,19 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { background-position: left center; background-repeat: no-repeat; background-size: contain; - border: 1px solid var(--spruce-form-color-border); + border: var(--spruce-border-width) solid var(--spruce-form-color-border); border-radius: 2em; flex-shrink: 0; - font-size: 1.125rem; + font-size: var(--spruce-font-size); height: 1em; line-height: 1; - -webkit-margin-before: 0.25em; - margin-block-start: 0.25em; + -webkit-margin-before: var(--spruce-margin-block-start); + margin-block-start: var(--spruce-margin-block-start); transition-duration: var(--spruce-duration); transition-property: background-position, border, box-shadow; transition-timing-function: var(--spruce-timing-function); width: 2em; } -.form-switch__control:focus-visible { - outline: 2px solid var(--spruce-form-color-check-focus-ring); - outline-offset: 2px; -} .form-switch__control:checked { background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e'); background-color: var(--spruce-form-color-check-background); @@ -1221,10 +1303,13 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { } .form-switch__label { - line-height: calc(2px + 2ex + 2px); + line-height: var(--spruce-line-height); } fieldset { + --spruce-gap: 1rem; + --spruce-legend-font-size: clamp(1rem, 5vw, 1.25rem); + --spruce-legend-font-weight: 700; border: 0; margin: 0; padding: 0; @@ -1236,8 +1321,8 @@ fieldset > * { margin-block-start: 0; } fieldset > * + * { - -webkit-margin-before: 1rem; - margin-block-start: 1rem; + -webkit-margin-before: var(--spruce-gap); + margin-block-start: var(--spruce-gap); } fieldset + fieldset { -webkit-margin-before: 3rem; @@ -1246,8 +1331,8 @@ fieldset + fieldset { legend { color: var(--spruce-form-color-legend); - font-size: clamp(1rem, 5vw, 1.25rem); - font-weight: 700; + font-size: var(--spruce-legend-font-size); + font-weight: var(--spruce-legend-font-weight); } .form-group { @@ -1318,7 +1403,7 @@ legend { @media (min-width: 48em) { .form-group--stacked > * + * { border-end-start-radius: 0; - border-start-end-radius: 0.325rem; + border-start-end-radius: var(--spruce-border-radius); -webkit-margin-before: 0; margin-block-start: 0; -webkit-margin-start: -1px; @@ -1337,7 +1422,7 @@ legend { } @media (min-width: 48em) { .form-group--stacked > *:first-child { - border-end-start-radius: 0.325rem; + border-end-start-radius: var(--spruce-border-radius); } } .form-group--stacked > *:focus { @@ -1345,6 +1430,7 @@ legend { } .form-row--mixed { + --spruce-col-width: 20ch; display: flex; flex-wrap: wrap; gap: 1rem; @@ -1354,6 +1440,7 @@ legend { } .form-row--mixed { + --spruce-col-width: 20ch; display: flex; flex-wrap: wrap; gap: 1rem; @@ -1374,11 +1461,20 @@ legend { } .form-range { + --spruce-focus-ring-box-shadow-type: outside; + --spruce-focus-ring-offset: 2px; + --spruce-focus-ring-type: outline; + --spruce-focus-ring-width: 2px; + --spruce-thumb-border-radius: 0.5rem; + --spruce-thumb-height: 1rem; + --spruce-thumb-width: 1rem; + --spruce-track-border-radius: 0.15rem; + --spruce-track-height: 0.25rem; -webkit-appearance: none; -moz-appearance: none; appearance: none; - -webkit-margin-before: calc(1rem / 2 - 0.25rem / 2); - margin-block-start: calc(1rem / 2 - 0.25rem / 2); + -webkit-margin-before: calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2); + margin-block-start: calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2); } .form-range:focus-visible { outline: none; @@ -1393,28 +1489,28 @@ legend { } .form-range::-webkit-slider-runnable-track { background-color: var(--spruce-form-color-range-track-background); - border-radius: 0.15rem; - height: 0.25rem; + border-radius: var(--spruce-track-border-radius); + height: var(--spruce-track-height); } .form-range::-moz-range-track { background-color: var(--spruce-form-color-range-track-background); - border-radius: 0.15rem; - height: 0.25rem; + border-radius: var(--spruce-track-border-radius); + height: var(--spruce-track-height); } .form-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; background-color: var(--spruce-form-color-range-thumb-background); - border-radius: 0.5rem; - height: 1rem; - -webkit-margin-before: calc(0.25rem / 2 - 1rem / 2); - margin-block-start: calc(0.25rem / 2 - 1rem / 2); - width: 1rem; + border-radius: var(--spruce-thumb-border-radius); + height: var(--spruce-thumb-height); + -webkit-margin-before: calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2); + margin-block-start: calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2); + width: var(--spruce-thumb-width); } .form-range::-moz-range-thumb { background-color: var(--spruce-form-color-range-thumb-background); border: 0; /*Removes extra border that FF applies*/ - border-radius: 0.5rem; - height: 1rem; - width: 1rem; + border-radius: var(--spruce-thumb-border-radius); + height: var(--spruce-thumb-height); + width: var(--spruce-thumb-width); } diff --git a/css/spruce.min.css b/css/spruce.min.css index 4bf5e3f..c034808 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: 40rem;-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:1.5;padding:1rem}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm th,.table--sm td{padding:.5rem}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:.325rem;border-start-start-radius:.325rem}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:.325rem;border-start-end-radius:.325rem}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;font-size:1rem;line-height:1.8}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;font-weight:700;line-height:calc(2px + 2ex + 2px)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:.325rem;color:var(--spruce-base-color-mark-foreground);padding:.1em .3em}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:.325rem;color:var(--spruce-base-color-code-foreground);padding:.1em .3em}.lead{font-size:clamp(1.15rem,2vw,1.35rem)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:.75em}.btn--icon.btn--sm{padding:.5em}.btn--icon.btn--lg{padding:.9em}.btn__icon{flex-shrink:0;height:1em;width:1em}.btn__icon--sm{height:.85em;width:.85em}.btn--sm{font-size:.8rem;gap:.25rem;padding:.5em 1em}.btn--lg{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.btn--lg{font-size:1.15rem}}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{align-items:center;border-radius:.325rem;border-style:solid;border-width:1px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;line-height:1;padding:.75em 1em;text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{font-size:.8rem;gap:.25rem;padding:.5em 1em}.form-file--lg::file-selector-button{gap:.5rem;padding:.9em 1.15em}@media(min-width: 64em){.form-file--lg::file-selector-button{font-size:1.15rem}}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:1px solid var(--spruce-form-color-border);border-radius:.325rem;box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:1rem;line-height:1.5;padding:.5em .75em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:2.625rem}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:.325rem}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:.325rem}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:6rem;min-height:6rem;resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;padding:.25em .5em}.form-control--sm[type=color]{aspect-ratio:1;height:100%;padding:.25em;width:1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;padding:.65em 1em}.form-control--lg[type=color]{aspect-ratio:1;height:100%;padding:.5em;width:3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{align-items:center;display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm .form-check__control{font-size:1rem}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.1em;margin-block-start:.1em;transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:.325rem}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:calc(2px + 2ex + 2px)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm .form-switch__control{font-size:1rem}.form-switch__control{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:1.125rem;height:1em;line-height:1;-webkit-margin-before:.25em;margin-block-start:.25em;transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:calc(2px + 2ex + 2px)}fieldset{border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:clamp(1rem, 5vw, 1.25rem);font-weight:700}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:.325rem;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:.325rem}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(1rem / 2 - 0.25rem / 2);margin-block-start:calc(1rem / 2 - 0.25rem / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:.15rem;height:.25rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:.5rem;height:1rem;-webkit-margin-before:calc(0.25rem / 2 - 1rem / 2);margin-block-start:calc(0.25rem / 2 - 1rem / 2);width:1rem}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:.5rem;height:1rem;width:1rem} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}:root{--spruce-font-family-base: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;--spruce-font-family-cursive: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--spruce-font-family-heading: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;--spruce-font-size-base: 1rem;--spruce-font-size-lead: clamp(1.15rem, 2vw, 1.35rem);--spruce-font-size-lg: 1.125rem;--spruce-font-size-ratio: 1.25;--spruce-font-size-sm: 0.875rem;--spruce-font-weight-heading: 700;--spruce-inline-border-radius: 0.325rem;--spruce-inline-padding: 0.1em 0.3em;--spruce-line-height-base: 1.8;--spruce-line-height-heading: calc(2px + 2ex + 2px);--spruce-line-height-lg: 1.8;--spruce-line-height-md: 1.5;--spruce-line-height-sm: 1.2;--spruce-border-radius-lg: 0.725rem;--spruce-border-radius-sm: 0.325rem;--spruce-container-width: 84rem;--spruce-page-margin: 2cm;--spruce-hidden-elements: header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]}@media(prefers-reduced-motion: no-preference){:root{--spruce-duration: 0.15s;--spruce-timing-function: ease-in-out}}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: var(--spruce-responsive-width);-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{--spruce-line-height: 1.5;--spruce-padding: 1rem;--spruce-responsive-width: 40rem;border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:var(--spruce-line-height);padding:var(--spruce-padding)}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm{--spruce-padding: 0.5rem}.table--sm th,.table--sm td{padding:var(--spruce-padding)}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:var(--spruce-border-radius-sm);border-start-start-radius:var(--spruce-border-radius-sm)}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:var(--spruce-border-radius-sm);border-start-end-radius:var(--spruce-border-radius-sm)}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:var(--spruce-font-family-base);font-size:var(--spruce-font-size-base);line-height:var(--spruce-line-height-base)}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:var(--spruce-font-family-heading);font-weight:var(--spruce-font-weight-heading);line-height:var(--spruce-line-height-heading)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-mark-foreground);padding:var(--spruce-inline-padding)}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-code-foreground);padding:var(--spruce-inline-padding)}.lead{font-size:var(--spruce-font-size-lead)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:var(--spruce-icon-padding)}.btn--icon.btn--sm{padding:var(--spruce-icon-padding)}.btn--icon.btn--lg{padding:var(--spruce-icon-padding)}.btn__icon{flex-shrink:0;height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn__icon--sm{height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn--sm{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.85em;--spruce-padding: 0.5em 1em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.btn--lg{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.85em;--spruce-padding: 0.5em 1em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.form-file--lg::file-selector-button{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;--spruce-font-size: 1rem;--spruce-line-height: 1.5;--spruce-padding: 0.5em 0.75em;--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-textarea-height: 6rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:var(--spruce-border-radius);box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:var(--spruce-font-size);line-height:var(--spruce-line-height);padding:var(--spruce-padding);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 2.625rem;aspect-ratio:var(--spruce-aspect-ratio);height:var(--spruce-height);padding:var(--spruce-padding);width:var(--spruce-width)}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:var(--spruce-textarea-height);min-height:var(--spruce-textarea-height);resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-control--sm[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.25em;--spruce-width: 1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;--spruce-padding: 0.65em 1em}.form-control--lg[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.1em;--spruce-vertical-alignment: center;align-items:var(--spruce-vertical-alignment);display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm{--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-check--sm .form-check__control{font-size:var(--spruce-font-size)}.form-check--lg{--spruce-padding: 0.65em 1em}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:var(--spruce-border-radius)}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:var(--spruce-line-height)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm{--spruce-font-size: 1rem}.form-switch__control{--spruce-border-width: 1px;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.25em;background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:var(--spruce-line-height)}fieldset{--spruce-gap: 1rem;--spruce-legend-font-size: clamp(1rem, 5vw, 1.25rem);--spruce-legend-font-weight: 700;border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:var(--spruce-gap);margin-block-start:var(--spruce-gap)}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:var(--spruce-legend-font-size);font-weight:var(--spruce-legend-font-weight)}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:var(--spruce-border-radius);-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:var(--spruce-border-radius)}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{--spruce-focus-ring-box-shadow-type: outside;--spruce-focus-ring-offset: 2px;--spruce-focus-ring-type: outline;--spruce-focus-ring-width: 2px;--spruce-thumb-border-radius: 0.5rem;--spruce-thumb-height: 1rem;--spruce-thumb-width: 1rem;--spruce-track-border-radius: 0.15rem;--spruce-track-height: 0.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2);margin-block-start:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);-webkit-margin-before:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);margin-block-start:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);width:var(--spruce-thumb-width)}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);width:var(--spruce-thumb-width)} diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index 868c255..bb4a1ae 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -19,7 +19,7 @@ $spacer: 1.25rem; $dark-colors: dark.$colors, $settings: ( 'color-fallback': false, - 'html-smooth-scrolling': false, + 'html-smooth-scrolling': true, 'hyphens': true, 'prefix': 'spruce', 'print': true, diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index c4188b5..9a1df8b 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -6,84 +6,84 @@ @forward 'layout'; @forward 'component'; -@use 'spruce'; +@use 'spruce' as *; -@include spruce.generate-form-check( +@include generate-form-check( '.wpcf7-list-item label', '.wpcf7-list-item input', '.wpcf7-list-item .wpcf7-list-item-label' ); -@include spruce.generate-table( +@include generate-table( 'table', false, false ); .btn--custom { - @include spruce.btn-variant(custom); - box-shadow: -3px 5px spruce.color(custom-foreground, btn); - border: 3px solid spruce.color(custom-foreground, btn); + @include btn-variant('custom'); + box-shadow: -3px 5px color('custom-foreground', 'btn'); + border: 3px solid color('custom-foreground', 'btn'); border-radius: 0; - font-family: spruce.config('font-family-cursive', spruce.$typography); + font-family: config('font-family-cursive', $typography); } .btn--tertiary { - @include spruce.btn-variant(tertiary); + @include btn-variant('tertiary'); } .clear-btn { - @include spruce.clear-btn; + @include clear-btn; } .section-title { - border-block-end: 1px solid spruce.color(border); - font-size: spruce.font-size(h4); - margin-block-end: spruce.spacer(m); - padding-block-end: spruce.spacer(s); + border-block-end: 1px solid color('border'); + font-size: font-size('h4'); + margin-block-end: spacer('m'); + padding-block-end: spacer('s'); * + & { - margin-block-start: spruce.spacer(l); + margin-block-start: spacer('l'); } } .ellipsis-1 { - @include spruce.text-ellipsis(1); + @include text-ellipsis(1); } .ellipsis-2 { - @include spruce.text-ellipsis(2); + @include text-ellipsis(2); } .selection-1 { - @include spruce.selection(secondary, $is-direct: true); - @include spruce.transition; + @include selection('secondary', $is-direct: true); + @include transition; } .selection-2 { - @include spruce.selection(aqua, $is-direct: true); + @include selection(aqua, $is-direct: true); } .ellipsis-btn { - @include spruce.text-ellipsis(1); + @include text-ellipsis(1); max-width: 10ch; } .scrollbar { - @include spruce.scrollbar; - @include spruce.layout-stack; + @include scrollbar; + @include layout-stack; max-height: 15rem; overflow: auto; - padding-inline-end: spruce.spacer(m); + padding-inline-end: spacer('m'); } .custom-heading-size { - font-size: spruce.responsive-font-size(4rem, 30, 4vw); + font-size: responsive-font-size(4rem, 30, 4vw); font-family: 'Montserrat', sans-serif; } .custom-link { - @include spruce.transition(2s, background-color, linear); + @include transition(2s, background-color, linear); &:hover { background-color: aqua; @@ -91,29 +91,37 @@ } .cleared-list { - @include spruce.clear-list; + @include clear-list; } .card { - @include spruce.a11y-card-link('.card__link', true); - border: 1px solid spruce.color(border); - border-radius: spruce.config(border-radius-lg, spruce.$display); - padding: spruce.spacer(m); + @include a11y-card-link('.card__link', true); + border: 1px solid color('border'); + border-radius: config('border-radius-lg', $display); + padding: spacer('m'); &__link { - color: spruce.color(heading); - font-size: spruce.font-size(h3); + color: color('heading'); + font-size: font-size('h3'); font-weight: 700; text-decoration: none; } } .break-long-url { - @include spruce.word-wrap; + @include word-wrap; } .btn-group { display: flex; flex-wrap: wrap; - gap: spruce.spacer(s); + gap: spacer('s'); +} + +.form-group { + &--height-test { + align-items: center; + display: flex; + gap: spacer('xs'); + } } diff --git a/preview/pug/page/button.pug b/preview/pug/page/button.pug index 6b7f5b9..762ff29 100644 --- a/preview/pug/page/button.pug +++ b/preview/pug/page/button.pug @@ -54,3 +54,12 @@ block content button(class='btn btn--secondary btn--icon btn--lg' aria-label="Copy Text") svg(class='btn__icon' height='24px' viewBox='0 0 24 24' width='24px') path(d='M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z' style='fill: currentColor;') + h3(class='section-title') Icon Size Compare + div(class='form-group--height-test') + button(class='btn btn--secondary btn--icon btn--sm') + | Copy Text + button(class='btn btn--secondary btn--icon btn--sm') + | Copy Text + button(class='btn btn--secondary btn--icon btn--sm' aria-label="Copy Text") + svg(class='btn__icon' height='24px' viewBox='0 0 24 24' width='24px') + path(d='M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z' style='fill: currentColor;') diff --git a/preview/pug/page/typography.pug b/preview/pug/page/typography.pug index 15e8d8c..bbc1a39 100644 --- a/preview/pug/page/typography.pug +++ b/preview/pug/page/typography.pug @@ -6,6 +6,7 @@ block variables block content p(class='lead') Morbi dui augue, consequat non pulvinar ac, consequat nec massa. Nulla nec purus vitae enim eleifend laoreet quis vitae nunc. Fusce lacinia nunc eget arcu pulvinar finibus. Nulla et egestas augue. Nulla at nunc vel massa ullamcorper posuere. Donec cursus venenatis dui sed aliquam. Curabitur ultrices, odio ac aliquam mollis, urna felis gravida dolor, id mattis ante mauris eu dui. + a(href='#ol-list') This is an anchor link h2(class='custom-heading-size') Custom heading size p Lorem ipsum dolor sit amet, consectetur adipiscing elit. In aliquam nibh in facilisis vestibulum. Pellentesque bibendum lorem risus, ut viverra #[a(href='https://conedevelopment.com') lectus blandit] sit amet. Ut rhoncus a dui ac euismod. h1 The quick brown fox jumps over the lazy dog @@ -56,7 +57,7 @@ block content li List item three li List item four hr - ol + ol(id="ol-list") li List item one ol li List item one diff --git a/scss/config/_button.scss b/scss/config/_button.scss index b1de2ec..dd41a79 100644 --- a/scss/config/_button.scss +++ b/scss/config/_button.scss @@ -43,8 +43,8 @@ $btn-sm: map.merge( 'font-size': 0.8rem, 'gap': map.get($spacers, 'xxs'), 'icon-padding': 0.5em, - 'icon-size': 0.85em, - 'padding': 0.5em 1em, + 'icon-size': 0.8rem, + 'padding': 0.5em 0.75em, ), $btn-sm ); diff --git a/scss/spruce-styles.scss b/scss/spruce-styles.scss index 0690b9e..6026b7c 100644 --- a/scss/spruce-styles.scss +++ b/scss/spruce-styles.scss @@ -1,4 +1,7 @@ -@use 'spruce' as *; +@use 'spruce' as * with ( + $settings: ( + 'css-custom-properties': true, + ), +); @include generate-styles; - From 417fe64c3a74e2a11b7a862c9abff256ca2a48b6 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Sat, 22 Apr 2023 08:14:39 +0200 Subject: [PATCH 53/67] 2.0.0-beta.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 972ef53..f5ee599 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.6", + "version": "2.0.0-beta.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.6", + "version": "2.0.0-beta.7", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index b703b98..028905b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.6", + "version": "2.0.0-beta.7", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From 214b7ef7202c1a5b4d9c8edecf34be38b0537f9b Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Mon, 24 Apr 2023 18:03:43 +0200 Subject: [PATCH 54/67] Cleanup --- preview/assets/scss/config/_config.scss | 2 +- preview/assets/scss/config/_dark-colors.scss | 4 +- preview/assets/scss/config/_dark-mode.scss | 2 +- scss/config/_color.scss | 4 +- scss/config/_generator.scss | 2 +- scss/config/_spacer.scss | 16 +++---- scss/config/_typography.scss | 2 +- scss/config/form/_check.scss | 17 +++---- scss/config/form/_switch.scss | 17 +++---- scss/form/_check.scss | 2 +- scss/form/_control.scss | 4 +- scss/form/_range.scss | 4 +- scss/form/_switch.scss | 2 +- scss/mixin/_button.scss | 48 ++++++++++---------- 14 files changed, 64 insertions(+), 62 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index bb4a1ae..ae32f0c 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -42,7 +42,7 @@ $spacer: 1.25rem; ), 'form': ( 'btn': true, - ) + ), ), $layout: ( 'container-width': 70rem, diff --git a/preview/assets/scss/config/_dark-colors.scss b/preview/assets/scss/config/_dark-colors.scss index a1d55d7..47861f0 100644 --- a/preview/assets/scss/config/_dark-colors.scss +++ b/preview/assets/scss/config/_dark-colors.scss @@ -2,8 +2,8 @@ $color-black: hsl(206deg 100% 7%); $color-danger: hsl(0deg 71% 51%); -$color-gray-dark: hsl(0deg 0% 100% / 8%); $color-gray: hsl(0deg 0% 97%); +$color-gray-dark: hsl(0deg 0% 100% / 8%); $color-primary: hsl(261deg 54% 70%); $color-secondary: hsl(227deg 92% 55%); $color-success: hsl(150deg 100% 33%); @@ -73,5 +73,5 @@ $colors: ( 'hover': hsl(0deg 0% 100% / 5%), 'text': $color-gray, 'stripe': hsl(0deg 0% 100% / 2.5%), - ) + ), ); diff --git a/preview/assets/scss/config/_dark-mode.scss b/preview/assets/scss/config/_dark-mode.scss index 3f7102c..844d973 100644 --- a/preview/assets/scss/config/_dark-mode.scss +++ b/preview/assets/scss/config/_dark-mode.scss @@ -11,7 +11,7 @@ select.form-control:not([multiple]):not([size]) { @include field-icon( config('select', $form-icon, false), - color(select-foreground, form, true, $dark-colors) + color('select-foreground', 'form', true, $dark-colors) ); } } diff --git a/scss/config/_color.scss b/scss/config/_color.scss index 217cebc..17a42c9 100644 --- a/scss/config/_color.scss +++ b/scss/config/_color.scss @@ -3,8 +3,8 @@ $color-black: hsl(205deg 100% 2%) !default; $color-danger: hsl(0deg 71% 51%) !default; -$color-gray-light: hsl(215deg 63% 93%) !default; $color-gray: hsl(208deg 9% 42%) !default; +$color-gray-light: hsl(215deg 63% 93%) !default; $color-primary: hsl(262deg 71% 49%) !default; $color-secondary: hsl(227deg 92% 55%) !default; $color-success: hsl(150deg 100% 33%) !default; @@ -82,7 +82,7 @@ $colors: map.deep-merge( 'hover': hsl(0deg 0% 0% / 5%), 'stripe': hsl(0deg 0% 0% / 2.5%), 'text': $color-gray, - ) + ), ), $colors ); diff --git a/scss/config/_generator.scss b/scss/config/_generator.scss index 2c398f4..2018af9 100644 --- a/scss/config/_generator.scss +++ b/scss/config/_generator.scss @@ -30,7 +30,7 @@ $generators: map.deep-merge( 'form-range': true, 'form-row': true, 'form-switch': true, - ) + ), ), $generators ); diff --git a/scss/config/_spacer.scss b/scss/config/_spacer.scss index 7b09f43..d9262d5 100644 --- a/scss/config/_spacer.scss +++ b/scss/config/_spacer.scss @@ -5,14 +5,14 @@ $spacer: 1rem !default; $spacers: () !default; $spacers: map.merge( ( - 'xxs': $spacer * 0.25, - 'xs': $spacer * 0.5, - 's': $spacer, - 'm': $spacer * 1.5, - 'l': $spacer * 3, - 'xl': $spacer * 4.5, - 'xxl': $spacer * 7, - 'xxxl': $spacer * 10 + 'xxs': $spacer * 0.25, + 'xs': $spacer * 0.5, + 's': $spacer, + 'm': $spacer * 1.5, + 'l': $spacer * 3, + 'xl': $spacer * 4.5, + 'xxl': $spacer * 7, + 'xxxl': $spacer * 10, ), $spacers ); diff --git a/scss/config/_typography.scss b/scss/config/_typography.scss index 3ed6c42..d24cf21 100644 --- a/scss/config/_typography.scss +++ b/scss/config/_typography.scss @@ -34,7 +34,7 @@ $font-sizes: map.merge( h3: math.pow(map.get($typography, 'font-size-ratio'), 2) * map.get($typography, 'font-size-base'), h4: math.pow(map.get($typography, 'font-size-ratio'), 1) * map.get($typography, 'font-size-base'), h5: map.get($typography, 'font-size-base'), - h6: map.get($typography, 'font-size-base') + h6: map.get($typography, 'font-size-base'), ), $font-sizes ); diff --git a/scss/config/form/_check.scss b/scss/config/form/_check.scss index f3491c7..36b8a38 100644 --- a/scss/config/form/_check.scss +++ b/scss/config/form/_check.scss @@ -20,14 +20,6 @@ $form-check: map.merge( $form-check ); -$form-check-sm: () !default; -$form-check-sm: map.merge( - ( - 'font-size': map.get($typography, 'font-size-base'), - ), - $form-check-sm -); - $form-check-lg: () !default; $form-check-lg: map.merge( ( @@ -35,3 +27,12 @@ $form-check-lg: map.merge( ), $form-check-lg ); + + +$form-check-sm: () !default; +$form-check-sm: map.merge( + ( + 'font-size': map.get($typography, 'font-size-base'), + ), + $form-check-sm +); diff --git a/scss/config/form/_switch.scss b/scss/config/form/_switch.scss index f13aefb..2e83a06 100644 --- a/scss/config/form/_switch.scss +++ b/scss/config/form/_switch.scss @@ -14,14 +14,6 @@ $form-switch: map.merge( $form-switch ); -$form-switch-sm: () !default; -$form-switch-sm: map.merge( - ( - 'font-size': map.get($typography, 'font-size-base'), - ), - $form-switch-sm -); - $form-switch-lg: () !default; $form-switch-lg: map.merge( ( @@ -29,3 +21,12 @@ $form-switch-lg: map.merge( ), $form-switch-lg ); + + +$form-switch-sm: () !default; +$form-switch-sm: map.merge( + ( + 'font-size': map.get($typography, 'font-size-base'), + ), + $form-switch-sm +); diff --git a/scss/form/_check.scss b/scss/form/_check.scss index 28a8ee3..af42f40 100644 --- a/scss/form/_check.scss +++ b/scss/form/_check.scss @@ -77,7 +77,7 @@ $ring-color: color('check-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-check, false), $ring-width: config('focus-ring-width', $form-check, false), - $ring-offset: config('focus-ring-offset', $form-check, false), + $ring-offset: config('focus-ring-offset', $form-check, false) ); } diff --git a/scss/form/_control.scss b/scss/form/_control.scss index 53a9860..6424915 100644 --- a/scss/form/_control.scss +++ b/scss/form/_control.scss @@ -110,7 +110,7 @@ $ring-color: color('valid-focus-ring', 'form', false), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control), $ring-width: config('focus-ring-width', $form-control, false), - $ring-offset: config('focus-ring-offset', $form-control, false), + $ring-offset: config('focus-ring-offset', $form-control, false) ); } } @@ -126,7 +126,7 @@ $ring-color: color('invalid-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-control, false), $ring-width: config('focus-ring-width', $form-control, false), - $ring-offset: config('focus-ring-offset', $form-control, false), + $ring-offset: config('focus-ring-offset', $form-control, false) ); } } diff --git a/scss/form/_range.scss b/scss/form/_range.scss index 4c7f926..1fe2e34 100644 --- a/scss/form/_range.scss +++ b/scss/form/_range.scss @@ -18,7 +18,7 @@ $ring-color: color('range-thumb-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-range, false), $ring-width: config('focus-ring-width', $form-range, false), - $ring-offset: config('focus-ring-offset', $form-range, false), + $ring-offset: config('focus-ring-offset', $form-range, false) ); } @@ -29,7 +29,7 @@ $ring-color: color('range-thumb-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-range, false), $ring-width: config('focus-ring-width', $form-range, false), - $ring-offset: config('focus-ring-offset', $form-range, false), + $ring-offset: config('focus-ring-offset', $form-range, false) ); } } diff --git a/scss/form/_switch.scss b/scss/form/_switch.scss index 53902d0..2a6555c 100644 --- a/scss/form/_switch.scss +++ b/scss/form/_switch.scss @@ -71,7 +71,7 @@ $ring-color: color('check-focus-ring', 'form'), $box-shadow-type: config('focus-ring-box-shadow-type', $form-check), $ring-width: config('focus-ring-width', $form-check), - $ring-offset: config('focus-ring-offset', $form-check), + $ring-offset: config('focus-ring-offset', $form-check) ); } diff --git a/scss/mixin/_button.scss b/scss/mixin/_button.scss index 0dbcec5..fb05746 100644 --- a/scss/mixin/_button.scss +++ b/scss/mixin/_button.scss @@ -16,18 +16,18 @@ &:focus-visible { $ring-color: null; - @if map.has-key($colors, btn, $type + '-focus-ring') { - $ring-color: color($type + '-focus-ring', btn); + @if map.has-key($colors, 'btn', $type + '-focus-ring') { + $ring-color: color($type + '-focus-ring', 'btn'); } @else { - $ring-color: color($type + '-background', btn); + $ring-color: color($type + '-background', 'btn'); } @include focus-ring( - $type: map.get($btn, focus-ring-type), + $type: map.get($btn, 'focus-ring-type'), $ring-color: $ring-color, - $box-shadow-type: map.get($btn, focus-ring-box-shadow-type), - $ring-width: map.get($btn, focus-ring-width), - $ring-offset: map.get($btn, focus-ring-offset) + $box-shadow-type: map.get($btn, 'focus-ring-box-shadow-type'), + $ring-width: map.get($btn, 'focus-ring-width'), + $ring-offset: map.get($btn, 'focus-ring-offset') ); } } @@ -42,29 +42,29 @@ $type: 'primary', $focus: true ) { - @if not map.has-key($colors, btn, $type + '-foreground') or not map.has-key($colors, btn, $type + '-background') { + @if not map.has-key($colors, 'btn', $type + '-foreground') or not map.has-key($colors, 'btn', $type + '-background') { @error 'The #{$type + '-foreground'} or #{$type + '-background'} key name doesn\'t exist under btn at the $colors map.'; } @include btn-focus-helper($type, $focus); - background-color: color($type + '-background', btn); - border-color: color($type + '-background', btn); - color: color($type + '-foreground', btn); + background-color: color($type + '-background', 'btn'); + border-color: color($type + '-background', 'btn'); + color: color($type + '-foreground', 'btn'); &:hover { - @if map.has-key($colors, btn, $type + '-background-hover') { - background-color: color($type + '-background-hover', btn); - border-color: color($type + '-background-hover', btn); + @if map.has-key($colors, 'btn', $type + '-background-hover') { + background-color: color($type + '-background-hover', 'btn'); + border-color: color($type + '-background-hover', 'btn'); } @else { - background-color: color.adjust(color($type + '-background', btn, true), $lightness: -10%); - border-color: color.adjust(color($type + '-background', btn, true), $lightness: -10%); + background-color: color.adjust(color($type + '-background', 'btn', true), $lightness: -10%); + border-color: color.adjust(color($type + '-background', 'btn', true), $lightness: -10%); } - @if map.has-key($colors, btn, $type + '-foreground-hover') { - color: color($type + '-foreground-hover', btn); + @if map.has-key($colors, 'btn', $type + '-foreground-hover') { + color: color($type + '-foreground-hover', 'btn'); } @else { - color: color($type + '-foreground', btn); + color: color($type + '-foreground', 'btn'); } } } @@ -78,18 +78,18 @@ $type: primary, $focus: true ) { - @if not map.has-key($colors, btn, $type + '-foreground') or not map.has-key($colors, btn, $type + '-background') { + @if not map.has-key($colors, 'btn', $type + '-foreground') or not map.has-key($colors, 'btn', $type + '-background') { @error 'The #{$type + '-foreground'} or #{$type + '-background'} key name doesn\'t exist under btn at the $colors map.'; } @include btn-focus-helper($type, $focus); background-color: transparent; - border-color: color($type + '-background', btn); - color: color($type + '-background', btn); + border-color: color($type + '-background', 'btn'); + color: color($type + '-background', 'btn'); &:hover { - background-color: color($type + '-background', btn); - color: color($type + '-foreground', btn); + background-color: color($type + '-background', 'btn'); + color: color($type + '-foreground', 'btn'); } } From cb8ed936b2d9f296807fb972e7f6a58c94c283b4 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 25 Apr 2023 10:55:24 +0200 Subject: [PATCH 55/67] Fix transition variable generation --- preview/assets/scss/config/_config.scss | 2 +- preview/assets/scss/config/_dark-colors.scss | 6 +++--- scss/element/_root.scss | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/preview/assets/scss/config/_config.scss b/preview/assets/scss/config/_config.scss index ae32f0c..481cc1e 100644 --- a/preview/assets/scss/config/_config.scss +++ b/preview/assets/scss/config/_config.scss @@ -18,6 +18,7 @@ $spacer: 1.25rem; ), $dark-colors: dark.$colors, $settings: ( + 'css-custom-properties': false, 'color-fallback': false, 'html-smooth-scrolling': true, 'hyphens': true, @@ -26,7 +27,6 @@ $spacer: 1.25rem; 'utilities': ( 'typography': false, ), - 'css-custom-properties': false, ), $btn-lg: ( 'border-radius': 0.25em, diff --git a/preview/assets/scss/config/_dark-colors.scss b/preview/assets/scss/config/_dark-colors.scss index 47861f0..6c707fe 100644 --- a/preview/assets/scss/config/_dark-colors.scss +++ b/preview/assets/scss/config/_dark-colors.scss @@ -19,7 +19,7 @@ $colors: ( 'heading': $color-white, 'link': $color-primary, 'link-hover': color.scale($color-primary, $lightness: -20%), - 'mark-background': hsl(50 100% 80%), + 'mark-background': hsl(50deg 100% 80%), 'mark-foreground': $color-black, 'marker': $color-primary, 'primary': $color-primary, @@ -27,8 +27,8 @@ $colors: ( 'text': $color-gray, ), 'btn': ( - 'primary-background': hsl(261 52% 59%), - 'primary-background-hover': hsl(261 52% 65%), + 'primary-background': hsl(261deg 52% 59%), + 'primary-background-hover': hsl(261deg 52% 65%), 'primary-foreground': $color-white, 'secondary-background': $color-secondary, 'secondary-background-hover': color.adjust($color-secondary, $lightness: 5%), diff --git a/scss/element/_root.scss b/scss/element/_root.scss index 46e5eb5..2f4bee6 100644 --- a/scss/element/_root.scss +++ b/scss/element/_root.scss @@ -8,7 +8,8 @@ :root { @media (prefers-reduced-motion: no-preference) { - @include generate-variables($transition); + --#{$internal-prefix}duration: #{config('duration', $transition, false)}; + --#{$internal-prefix}timing-function: #{config('timing-function', $transition, false)}; } @if map.get($generators, 'content', 'typography') { From 8d1b24049eba5b2f1fb8aefccc62c3d187232b90 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 25 Apr 2023 11:08:01 +0200 Subject: [PATCH 56/67] Compile CSS --- css/spruce.css | 8 ++++---- css/spruce.min.css | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/css/spruce.css b/css/spruce.css index 31a26ab..202eceb 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -853,8 +853,8 @@ samp { --spruce-font-size: 0.8rem; --spruce-gap: 0.25rem; --spruce-icon-padding: 0.5em; - --spruce-icon-size: 0.85em; - --spruce-padding: 0.5em 1em; + --spruce-icon-size: 0.8rem; + --spruce-padding: 0.5em 0.75em; font-size: var(--spruce-font-size); gap: var(--spruce-gap); padding: var(--spruce-padding); @@ -973,8 +973,8 @@ samp { --spruce-font-size: 0.8rem; --spruce-gap: 0.25rem; --spruce-icon-padding: 0.5em; - --spruce-icon-size: 0.85em; - --spruce-padding: 0.5em 1em; + --spruce-icon-size: 0.8rem; + --spruce-padding: 0.5em 0.75em; font-size: var(--spruce-font-size); gap: var(--spruce-gap); padding: var(--spruce-padding); diff --git a/css/spruce.min.css b/css/spruce.min.css index c034808..af872f0 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}:root{--spruce-font-family-base: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;--spruce-font-family-cursive: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--spruce-font-family-heading: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;--spruce-font-size-base: 1rem;--spruce-font-size-lead: clamp(1.15rem, 2vw, 1.35rem);--spruce-font-size-lg: 1.125rem;--spruce-font-size-ratio: 1.25;--spruce-font-size-sm: 0.875rem;--spruce-font-weight-heading: 700;--spruce-inline-border-radius: 0.325rem;--spruce-inline-padding: 0.1em 0.3em;--spruce-line-height-base: 1.8;--spruce-line-height-heading: calc(2px + 2ex + 2px);--spruce-line-height-lg: 1.8;--spruce-line-height-md: 1.5;--spruce-line-height-sm: 1.2;--spruce-border-radius-lg: 0.725rem;--spruce-border-radius-sm: 0.325rem;--spruce-container-width: 84rem;--spruce-page-margin: 2cm;--spruce-hidden-elements: header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]}@media(prefers-reduced-motion: no-preference){:root{--spruce-duration: 0.15s;--spruce-timing-function: ease-in-out}}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: var(--spruce-responsive-width);-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{--spruce-line-height: 1.5;--spruce-padding: 1rem;--spruce-responsive-width: 40rem;border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:var(--spruce-line-height);padding:var(--spruce-padding)}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm{--spruce-padding: 0.5rem}.table--sm th,.table--sm td{padding:var(--spruce-padding)}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:var(--spruce-border-radius-sm);border-start-start-radius:var(--spruce-border-radius-sm)}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:var(--spruce-border-radius-sm);border-start-end-radius:var(--spruce-border-radius-sm)}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:var(--spruce-font-family-base);font-size:var(--spruce-font-size-base);line-height:var(--spruce-line-height-base)}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:var(--spruce-font-family-heading);font-weight:var(--spruce-font-weight-heading);line-height:var(--spruce-line-height-heading)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-mark-foreground);padding:var(--spruce-inline-padding)}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-code-foreground);padding:var(--spruce-inline-padding)}.lead{font-size:var(--spruce-font-size-lead)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:var(--spruce-icon-padding)}.btn--icon.btn--sm{padding:var(--spruce-icon-padding)}.btn--icon.btn--lg{padding:var(--spruce-icon-padding)}.btn__icon{flex-shrink:0;height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn__icon--sm{height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn--sm{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.85em;--spruce-padding: 0.5em 1em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.btn--lg{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.85em;--spruce-padding: 0.5em 1em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.form-file--lg::file-selector-button{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;--spruce-font-size: 1rem;--spruce-line-height: 1.5;--spruce-padding: 0.5em 0.75em;--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-textarea-height: 6rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:var(--spruce-border-radius);box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:var(--spruce-font-size);line-height:var(--spruce-line-height);padding:var(--spruce-padding);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 2.625rem;aspect-ratio:var(--spruce-aspect-ratio);height:var(--spruce-height);padding:var(--spruce-padding);width:var(--spruce-width)}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:var(--spruce-textarea-height);min-height:var(--spruce-textarea-height);resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-control--sm[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.25em;--spruce-width: 1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;--spruce-padding: 0.65em 1em}.form-control--lg[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.1em;--spruce-vertical-alignment: center;align-items:var(--spruce-vertical-alignment);display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm{--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-check--sm .form-check__control{font-size:var(--spruce-font-size)}.form-check--lg{--spruce-padding: 0.65em 1em}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:var(--spruce-border-radius)}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:var(--spruce-line-height)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm{--spruce-font-size: 1rem}.form-switch__control{--spruce-border-width: 1px;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.25em;background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:var(--spruce-line-height)}fieldset{--spruce-gap: 1rem;--spruce-legend-font-size: clamp(1rem, 5vw, 1.25rem);--spruce-legend-font-weight: 700;border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:var(--spruce-gap);margin-block-start:var(--spruce-gap)}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:var(--spruce-legend-font-size);font-weight:var(--spruce-legend-font-weight)}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:var(--spruce-border-radius);-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:var(--spruce-border-radius)}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{--spruce-focus-ring-box-shadow-type: outside;--spruce-focus-ring-offset: 2px;--spruce-focus-ring-type: outline;--spruce-focus-ring-width: 2px;--spruce-thumb-border-radius: 0.5rem;--spruce-thumb-height: 1rem;--spruce-thumb-width: 1rem;--spruce-track-border-radius: 0.15rem;--spruce-track-height: 0.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2);margin-block-start:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);-webkit-margin-before:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);margin-block-start:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);width:var(--spruce-thumb-width)}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);width:var(--spruce-thumb-width)} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}:root{--spruce-font-family-base: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;--spruce-font-family-cursive: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--spruce-font-family-heading: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;--spruce-font-size-base: 1rem;--spruce-font-size-lead: clamp(1.15rem, 2vw, 1.35rem);--spruce-font-size-lg: 1.125rem;--spruce-font-size-ratio: 1.25;--spruce-font-size-sm: 0.875rem;--spruce-font-weight-heading: 700;--spruce-inline-border-radius: 0.325rem;--spruce-inline-padding: 0.1em 0.3em;--spruce-line-height-base: 1.8;--spruce-line-height-heading: calc(2px + 2ex + 2px);--spruce-line-height-lg: 1.8;--spruce-line-height-md: 1.5;--spruce-line-height-sm: 1.2;--spruce-border-radius-lg: 0.725rem;--spruce-border-radius-sm: 0.325rem;--spruce-container-width: 84rem;--spruce-page-margin: 2cm;--spruce-hidden-elements: header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]}@media(prefers-reduced-motion: no-preference){:root{--spruce-duration: 0.15s;--spruce-timing-function: ease-in-out}}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: var(--spruce-responsive-width);-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{--spruce-line-height: 1.5;--spruce-padding: 1rem;--spruce-responsive-width: 40rem;border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:var(--spruce-line-height);padding:var(--spruce-padding)}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm{--spruce-padding: 0.5rem}.table--sm th,.table--sm td{padding:var(--spruce-padding)}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:var(--spruce-border-radius-sm);border-start-start-radius:var(--spruce-border-radius-sm)}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:var(--spruce-border-radius-sm);border-start-end-radius:var(--spruce-border-radius-sm)}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:var(--spruce-font-family-base);font-size:var(--spruce-font-size-base);line-height:var(--spruce-line-height-base)}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:var(--spruce-font-family-heading);font-weight:var(--spruce-font-weight-heading);line-height:var(--spruce-line-height-heading)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-mark-foreground);padding:var(--spruce-inline-padding)}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-code-foreground);padding:var(--spruce-inline-padding)}.lead{font-size:var(--spruce-font-size-lead)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:var(--spruce-icon-padding)}.btn--icon.btn--sm{padding:var(--spruce-icon-padding)}.btn--icon.btn--lg{padding:var(--spruce-icon-padding)}.btn__icon{flex-shrink:0;height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn__icon--sm{height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn--sm{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.8rem;--spruce-padding: 0.5em 0.75em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.btn--lg{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.8rem;--spruce-padding: 0.5em 0.75em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.form-file--lg::file-selector-button{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;--spruce-font-size: 1rem;--spruce-line-height: 1.5;--spruce-padding: 0.5em 0.75em;--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-textarea-height: 6rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:var(--spruce-border-radius);box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:var(--spruce-font-size);line-height:var(--spruce-line-height);padding:var(--spruce-padding);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 2.625rem;aspect-ratio:var(--spruce-aspect-ratio);height:var(--spruce-height);padding:var(--spruce-padding);width:var(--spruce-width)}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:var(--spruce-textarea-height);min-height:var(--spruce-textarea-height);resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-control--sm[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.25em;--spruce-width: 1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;--spruce-padding: 0.65em 1em}.form-control--lg[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.1em;--spruce-vertical-alignment: center;align-items:var(--spruce-vertical-alignment);display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm{--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-check--sm .form-check__control{font-size:var(--spruce-font-size)}.form-check--lg{--spruce-padding: 0.65em 1em}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:var(--spruce-border-radius)}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:var(--spruce-line-height)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm{--spruce-font-size: 1rem}.form-switch__control{--spruce-border-width: 1px;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.25em;background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:var(--spruce-line-height)}fieldset{--spruce-gap: 1rem;--spruce-legend-font-size: clamp(1rem, 5vw, 1.25rem);--spruce-legend-font-weight: 700;border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:var(--spruce-gap);margin-block-start:var(--spruce-gap)}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:var(--spruce-legend-font-size);font-weight:var(--spruce-legend-font-weight)}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:var(--spruce-border-radius);-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:var(--spruce-border-radius)}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{--spruce-focus-ring-box-shadow-type: outside;--spruce-focus-ring-offset: 2px;--spruce-focus-ring-type: outline;--spruce-focus-ring-width: 2px;--spruce-thumb-border-radius: 0.5rem;--spruce-thumb-height: 1rem;--spruce-thumb-width: 1rem;--spruce-track-border-radius: 0.15rem;--spruce-track-height: 0.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2);margin-block-start:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);-webkit-margin-before:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);margin-block-start:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);width:var(--spruce-thumb-width)}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);width:var(--spruce-thumb-width)} From a9c03e9f5cd8eabb57f188b13cd4d1a759131755 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 25 Apr 2023 11:08:11 +0200 Subject: [PATCH 57/67] 2.0.0-beta.8 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5ee599..d60e229 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.7", + "version": "2.0.0-beta.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.7", + "version": "2.0.0-beta.8", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index 028905b..d67118d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.7", + "version": "2.0.0-beta.8", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From d1d66646e04a293d37c5aac97de7888f23260989 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Tue, 25 Apr 2023 11:21:29 +0200 Subject: [PATCH 58/67] 2.0.0-beta.9 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d60e229..c2496da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sprucecss", - "version": "2.0.0-beta.8", + "version": "2.0.0-beta.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sprucecss", - "version": "2.0.0-beta.8", + "version": "2.0.0-beta.9", "license": "MIT", "devDependencies": { "autoprefixer": "^10.4.14", diff --git a/package.json b/package.json index d67118d..3c8dfcd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.8", + "version": "2.0.0-beta.9", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css", From 3d8d6d866497f080f20875c44264776b68ae8329 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 12:22:35 +0200 Subject: [PATCH 59/67] Add thumbnail --- .github/thumbnail.png | Bin 0 -> 67090 bytes README.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 .github/thumbnail.png diff --git a/.github/thumbnail.png b/.github/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3f986d626b328a829a184af46ee5fab856bbc402 GIT binary patch literal 67090 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 VeA3}jdfsV}l&7no%Q~loCIEUG*NFfC literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 7a81af5..00a744e 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ [![Back-end](https://img.shields.io/github/actions/workflow/status/conedevelopment/sprucecss/test.yml?branch=main&logo=github&style=for-the-badge&label=Test)](https://github.com/conedevelopment/sprucecss/actions/workflows/test.yml) [![License](https://img.shields.io/badge/license-MIT-2350f6?style=for-the-badge)](https://github.com/conedevelopment/sprucecss/blob/main/LICENSE) +The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. + ## What is Spruce CSS? - It is a Sass-based, small framework that operates with just a few utility classes. From df6f1ecdd56a1ac82e69aaadaff4ab393f8362db Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 12:24:11 +0200 Subject: [PATCH 60/67] Update thumbnail --- .github/thumbnail.png | Bin 67090 -> 188435 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/thumbnail.png b/.github/thumbnail.png index 3f986d626b328a829a184af46ee5fab856bbc402..88a520a8844c42fa183d9081a72c9e4b18a501b9 100644 GIT binary patch literal 188435 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

`>I*h z=jWdwcg%Fwm9?gKjnbtl`)D#jC55AAE>83XcY0JIYpPk?uT%C<3UmcPbR{xDE+!cx^;QZm#SJ7liuo63d zP}+t)65@IpgDMXW4G`MMqbpjaRe}CA0C*)}mW(nhHMPhz0Vx?I8=Yfq%Im;aGGqDC z97qe;a=Ns`HEfubJEobsaMiHnF}GBqpBGY2kE!E0?y6FeMESk)Nv`uFzUecij!8YW$Gw>HcO2rShe%=>qO_sF>wZ=Ax{$ z&IxA?y~ldgL`EgC4^23`GE#*#(gtCfLqmT3okNe6d-8&gm{#G|uL8-ANkh!C5UZH( z=M0LQ@7R>()P>g67SGg{M-1~vVfyAL(&F~N40%%5@fzQN58ptmUH#sVN?}Kz5!=!@ zt@CnWUn366;iE*NrXOYL%u)8z2SO&u6v8IZF(Be{LeM3_NQo=X%(9M^^NLx`{g-O3 zGrbDtr4%(yHe%Bn?mV3u5-?hAzB)_!5V^U~)BH)einX2F+hRz+4{ z@lSN%fxTr)miVp2D{Z|!e^X1>$R$aoUi%SQ3t(4wgA<*oS=H=Hd2k%FZs>4T z4N8PhcOL-1IW{=4$tQg237n{k+8N6p989$9F8+&dy98G@Rgv|ifx{%`WmhtzDepPW zG45#RgnUQYv**QVBg;k%zGUfW+gFfA?;)|z(b^&@qe8auO-&K&86gg z`x~a#e|IQ|s%8SX^8SZmT( zcp@>gY^C5N;Wo?8ed-+^|kg40GE7VgdxYEt_Zb0|8f z3a!2j(!|*t#)NP4z+c{boa=nUiIpo-sUIgLNCRG>4AQjpAK>XXX+(*I1@ssN3g`BX zUdU--sT94cI>pPQshUfh)?V*`zb{uaYaXH4%7K~uZA!qFQX8po{z9}!T)lnV274RA z@K=+xd4$0;>LngFg>&jCwraf)TlOxNqGgUHN-oGohEQ`-jY_yyz0_>uxZuLDE2f2Q zgr=-tsQM<4LQ@exD2Q5&Z7o~7^d^~&OE)_`pR)2^kUK%Z#m(ZkGTEo?r@!r$BG;5( zJq#!<1?y3N-J|nRaGa0&5D&6M$aX;VS3(RiWY<*G81@sC#xdf@n{p*}em+Npv(~Pp zK8p7)pU%nal8n^)ChdTmcfMfODKn+2|8gi&_~Yr}hh~*l&5HOFlqW=5P5o6vA9xp? z^jh540<;+SI@bd~9Gza!M&hjJBsaGPI$;PP83n!#V z+Ge0o0#F#&%gpPI(zK&Y`*9bw>sI0FT#L5M(d(Zuvhn*FwP@ekmX6!jeO$Du{zkeT zwgxKj6+N6_{?uM(3JTBoyVnaqH0Jghk(iI``*n}7{YLRWA6NU$jRHEPvs+9Lzx3hm zPPfzZ!SlS^%EO|Mw)RrY<=jYkc3EHGt8KmxglT~uVLHy1v~%Z)Pe!>serF7gTYQ|e zY>UW`TpmMR5%w-nV=kXMpJ-`%hCj`xpoyZ}O`@@PeC21gnh-MmjJ(NLq-zLd-A`fH z371f6ZJqnvJ+6P7CHQiHx-m$lseRlk=`$$`zmyX$q=KKAEAr*&1cSz9Z+B5$ChW7R zFg!8Vv+fCN3 z?sLZjl2+2$UF;eqvDWQJ%#4inf7a~XPl)IF%ekhTST-5P@q~OVwy+NA) zL2reEko{}u-j)d(P>c5CHDrLD%CxApQVKfFiwju5%wES2`9`_=v)gk8{KG7`8B!Kx zRa37QBnmFjTOmR2D$``@4~-C(0f->z30t2*=a&1cxf!e4g_$R)Rd58YgEoe|62uCg z2AA!TU|hypebuuG=T`}KI@m6Muv;I+$%7;2^mDc;i1hkGU-4QX6=>lD2K}UHLiY+6 zn_6~Nv_h{};j`QSZt&c}8YI&DMzj%X6q|^iyZrt9l7_lpi{4IC4P(r32aP5cochrQ zVFf!Nzi5=BRYXk2;o|DF-9wIaKA_I}T>cHzTSayig7}_Lfa1iDybz{n>+)AYy#BXu z+#eO>2g`j0x+lK zHT@jeB-GrX5ad_S5#|^n>M2dus9^3Vi4bt_W5%VdZNrSbci5yQ?%sc6DGXo>veAss zs_D=-utLjl+~#5i#R3kKU@eXZ} zuQ01`VlGq^1oe$h;aSuGIbqyR{WR^n_{>!RZiZvY<9p z1f>g0hhFLo9t^~~z|qkpXLAV*_ton>_mh9s!9fO)T$8?1@3De=-%>9%M(cUdqyRrk zQXl`xrO#eeAsa<~Kg+Xtuhj*)4FrQk__$s~KMb;3AHWU7XX_U7Z9Z5!$D;2^cnA*V*~*W0U7?PR89y*@w)<@Ne>L?fLyLk-N-}5> z)U9v;`*yhU0En#%>jHkDfs{$=`Mi&n%nq7UtSd>$YPVTWM);-SDNgjM9og7%;?5Dd zsMkv2N(4I_Yw1PX3U%<1&@H%8MIa|cNfkoGenxNdd5)s!gL1@E+j=-LaFms)$8MW- zV!aL$_s?LPD{VKyLS+rwYxGmUrU-NiI;bgjRJ^$8+Z-hc zHdLj0gh7pd0W}L*JPD;DPNr~9%l(RRk|RhRh2N~VB8XhF2d=RiK%~XFNSkDYGK%*J zvDCWi^g~q62HQfLJzW_7g{jfE6|q9%2*r+ktrui>#KM zfifA0M#MLrN6gW>@8{;>nvs}QHgXVA?k9t5j>#%0>Osf_Wu=SNoFXvGPx9>R%2?fE zXV)Xl$0XkAP%)VFUqz-C6MmVkn2dr2{H{Rrkw0FYYtpVa?n^&e6L6nCrm1^9HgB=7 zZJI+ot^>AY{I7=oEI~Q-NC+kY<_4)s` zt*%l&j-di4=c~RG?hTs?5Nx9g9rJ-ZBt)bxN_GU#W3nw}%euw1qTXrHpJ$wT>yK+n ztxr7S#>^whu$s39gY+{3_RMQ~x`g@$!V*t` z)0o`m+H|ML=t3PTfs_z+1v&_MC|F&kh6A?=LzACJMdp!5B!#FGw`^3dV_`QPM+nh@ zTv<`YinM9IxMotybQPZkPeyNkn*IQ{8LUMNW0D1E3eDt>3I0{S0j>kYSQ94AL^mv! zhIjw7IwnBY2=Nc~1U51T8zNerGaOGCk?2~6`8}qXbInGT5uJTDcmvWP8>blVxhm@~ z8B$)Hh(nkr$PNu~VHR~*PWFWjr!+A>qx#>CosI5q`GxBUvo)rlbGC3ZolG(h>2n*` z9VnP{zM|8cN)tOK5j!w6bW}t}V||2N^SYNJ=D0xc1MaXJp za0GE*{{ChdN>Y@=j(L|7U3FCNny9MpZ*S=_`Qf|cGVg2HeDgSwaKzgFd6csLoe=`8 z_iAKYrBg{?;Qf&Vm{2Sd^a}vKA_jM)x$9&0)2-g^kH>#K z?T%CN0A>*cKNpg$rlg(82{9DEweR2@-t1$2R@2ApWN#Xe7k1ju1!2Tjegxm$7|8KM zFzX+uSLCWKf3McUMW`c3fp3r_c%syk^f&+lrP3Qror^;G;kNyiN^mZv3#$}CekSsp z=~OS-?rZvwp08}IEnXH;CKFtlTh{_G3t!s2rI~>2L_SU&DvRS)7}sXOD{{}+66mihBQL87dFW+~z?xw-)nqmmrbIAu6=ME$gU zVlx?9&zp4kuRB6oPLS4V7oC=d26NOhF0E_m%S-gnF%&O$5(L| zm#Je^%m^ zJFsEhMOp;?*kC^*@oiwoYUS3+{Y!#6akOk9_#7)|nxwlUVEvl%)10|mx&2n6mK&9S zooZkZF2?&Q2Zq-Oh`G3iCJPF?{JVEg{s#k1BEI9KKC3q0h9)hXZ30^>LsF)+^kmZPkfd#X7Wd&OFV*%X**C!bO9R}wn(mw+y80D&}2cWD_iF22Dd$~BfW zY+Z8c@r%2E`UZ>2s{GQ!&&pc-Rc=j-ZpLa44Io@Z{MQ|lmM$jbSb4zb`wqAVdtR{| zzzp|%lbF7n2|~OTz4N?aGVlmRYu=PNIBN%kfgY*f!{90UYLi^3ZGdu+S?_ek z>3t$32;8~b^%W8X2T`V*Bu%Z>{iNfz+V-Q|I!Mu%%JY_<*Ames-(1%_OzqC&s$@O8 z%Qd;yjtLg_6<_!96}?VT%kn_-1i{|x2jt~b2he_~wxhT^;u;$P$0>)W&Ls&8Aw;BW zhU64<4nm;W!V?WKvn$@^7ocnk{|H|+y#uFI+gDQx_Irx`#h*A0)bmoKfx1YP{4NI}}^Dw-cMenahN`Y_1Az1$DE=qbYhVGW;U0SlWnr;w9lZM*i%r=h zHoLFsfM0QQ%>=Ct!n&R#QtvE8o9xv*15Fw=u9bD1UyiP&5lR#$@7bnGuPK&bB!-n^ ztr4ZmvrmcJ2%T}3a4H)FDx@#1Tj~e#Yz@1eEG_RvFJ78!dTjyQPpu!VTRt1TiAt?k zT_603O+|)*g2be21v5xu^TLTU7l*?aTbz)gf1#eqBHv9|4&YtIat;yoA8Xk>`5+nw zmmW;34GUw~?1f4z87rNqy)NFl)V>m+=o>v=)z7Q!?4GUwG7~DmGjuEJGOoteU^CjF zR=#v-KZ-(hIix5W19%L;E*qLf|fio20WIO@I+K(U@ zV}rfF+jk^&E|Nj4C&HCMEHD=h{A&0c|4$h&HjiaO;zx%) zZZIFrs_XiF_06z_y$`QF#i^ zXfJs0>s<%s!z!-mXSMG5?ah5U(ou&ZiO?noj@^$xkjPzC7$ zlOLMK952YWVH`)Xa@LxVNOwec5UVD;^N=+zt) z&=pYHAePMpDPi2u5Lp^Dv5sZnbx`6__KQ)!*$q&0hbGSdprt3v`mtq-5yLN2`2!tQ z3Ty8dL`ldwy+p-YgYNJUzE2tbzuI7~9mJI|sTeMQO7D^(p)D7NK%J?E!}wr!_Q1uF z3q`MauY1mc3Y(sBh*Us!*Mbe&Fb5k?!w$_e9VEvQI$yYD>8%{+5e4z$pP=vki)<~h zOR!Y*4Q9o+qZ9WD(qC`~8EOC}8s>gI4Jf}6$+gpO`7iE#Pu}#!1t1e}KYK=r-Ouv> zKt>FYhgALa30s?QHRA<&TF!KuKh+t3G77>!?a;06`YF-u^*%5vcl+_JJ?UyQ&$QVR zxSMN)FOZIC0!*p~r~cJK`jl&p6A(#KYuZ)UI0+2t<}prnz=GE)AoN+`wAVPANz_-( zD?2QOTH;0$oDcCW*zEcKEn1%>pXyK6eZI(i1)Lq(1?yC~tAYo^M7WNCjMYXk33_Pm zBo8vxpKQ)M0@)zf>f9|~W>Of>raNH>5X2wcS1J+Oxjzmf{lIvg?rCG8VBogrZ}10d zRA13pV8T09`6fLNQY$7@biScM@9pyiCXu%$5VEDZ(Se!N<+0(Fd&{{C9$E9+0X)Oo zI|6-!=W35e5gRzxi{S;z&&>NAJVAb*2y7Se?Ye~SnL1nTY@4`)U;L|@@N$SHL<9EF zSuotJ3&PuzoXMN~C2B>ch$A8kGKRVq!6EkuwcUZdMidPbqW^Qd{;V=_&;RK(v-}UD z>ghH!cu|}iv&*g?W&Fyf&@snPlyR`~eS|Rm% zo6HNp^bUqsT#Mrmhl zTC*;XlS!Coi;!g)v@rFSEobn)9~EhIQ@DBrz5xIHM;z)k3zUIpYW)2)2LjSrh9n~l zy@J5SZ|i7={d=}Lc>WQNWmucLizzFRPX+kq>gm;u_*}J^Va4zs)r0|(9Fq%VB*E9X zuhPsHq6EL^7;+aNgevL)#NUCt7){*u9Xz+X)znb#Sa7YoxbE8>O)=Rr2g5|f&=swk z8ElgG?JAJblJH{aPpDs*Qz*6_Uz$vKg6PFNc7`#7V_f@xs1>!qX@|qx=c(xBK-&pZ zHIi3!xr_W6i|{5|(T#1wtvS2V+qXTJL>YWV$Pa=UGD|P{HD>D9mWv@SP~y>X_+)(7 z^8#}V=zV+3tFyeiOmDB^3a(e-=eYfi&_>Z`hH2Ywzm74(ruMDaQmJuV$gI{mnm?;O z+1@F}8-bpkH_K~}l3jsA1NDYjDnymBkCt+W8vBS^gF*o;SJ+2IGs~N!QB&_6E$b3Z zeS`CqFFhaV8DscFnj`};>)Pd}C)7%8&s?o}mw{bYJ ze}!3D6XMuwwz=dVFinkElX}!_^jc^AaFru^f9qeh6&D%T^BOKAx|k3d$SdThbM<;= ziknJo4xbV}!2m?6?XZPT40y-Ec2(}r_)$(&s0Vb5>tLUWcM?D)RwqM zHQO$Oldx8mHJIcB<`~x~NkBUI(<@kYh3Gq>mo}+^V-$pl@v862%Mz>UVK1xb?m)d3 zfWYRXSM`1hKWUAM5imnlBkmtQ{#%Ag;1^B4gx6fc@>?m^3B0!gTQkdHa!kR`_E@@5 zw8eTUoT=}m4VF1rn)haVz{uVC>$6nHURA{xij%oMwsDhm9w)|d0VV#S3nUY!U1gi3 zD?AM*juQ>>MIq(buDN95J!}}tlg!X+rR1wcP(Q(*kp`xeq}P-!#ehr z(V^{^M`huV{mJC{lOEM1_K7Q4Pr4y%7v1AKtF zDd_H|@m#c-utLbreNpi^R-g0}UXXOM=Pi}L?VubQrHUlZ7GL*yAT5m_WcuVB5J+3w zG}cD?*MNH;J+^Kop`mtQ9qC*M#&t$*HKC)HKwHj`A22ZDP?&k(R7|d+hL0M*lG1fm zL}n;NgAWHF|KhQo!kb0p(7hr2oC*#f|FdEe*B$V?7HaB!P{|CK5|wL~PhZEL~LR-5y!s zwX*GT7w;EN|Kfl9f#1d+u(JhbsO$Il#Zc0+(SF5E{uR>YJD?JhFYpCluJt2`nO;=i z>4Yz~j!HMuom?YD2S>H9T=_Sk9FaVpTv;a+h7+ArJdXl9R+xZX7Fz!O$T<*1!T#MD z%Hj3L-|pXS1rcn6zkMeYad0H#xc+%hLeE&uhKEx<)Xfibdtqxc@_V{bo& zD$igOx(RtDYY`c3 zcbeP+u0hjypreG<05?!&>jBemrfI{AYX2E06=zUzCQ^Y`iB@@z8h?R{+>d>A&>I`8 z&%R-~eSYPm`DJ4r%PG^$GT*}Osws}^*_d2QD^L~mSOwHsIfZRee}&vD1;eEG8O<^Q+vc{zAqA|&PhYWa`Sq!xhs zbO9vIqa*=1?(=Gm6NpVmAEEsloFoVB5yhX8>BKRfuOnbv$#6=-E{8UwbxSH+twYD? zm?cw!K`b#&P!h$y`t3Nxj%^!afMTgA*pr}7j!gl_99ZD(Z*}wp)5H4?%8A6ylN}aCwG*ETcmV#bk6@{I> zdk86d&Y%j>pV-xmU|K9At4q}SL|f<&7BwU#`!B!nL1lrZZ*!bSn=wGjojDwp^lwnc z4Ky}xqq43~lC9qeE#gTOvn(12zYFA#o0L${&?p!~V$!x62H7A~6j}&+bfiawaaq%y6b&+xu`#q#cw+=Z@vOIL9_5mb%q`p+M?Y-ym`5)|96!2 za*};s7$!x*716cvYU&?bcO>dY(=-N3lhR;PMZS#U`fpjpyoBUmeS$pt*;B>YsJkP_ zy%Fla3*^)MSxFkJ{JWLdK6n~sSg8Kj=D=Wn5EYa1rbV|F6;&^a>xA5~u&)n>PC zodkDx3+`TAiWJx4?$Sbm;10nl?yfCTibHWIL4(r*#focjYms7K-gD1A_k91Jk&KaK zWbL`;Tyw3xci{NTgTJ3dL|)Sfi1lY+J4Ic+0#v9otu6%liwg4~_KTG5wE`1MFN>XW z7MAzB;#AfmII+?B)PrV1Uv!ILK<~b(oiV93XffPkmPTUW4&Ac=L-x*9X1s+*4oGfd*db$s)xGskxSSf?IymDqxci&g1r#Tbp~I++1$EgzR!9T; zZhc5sCrRJ_uF@4uhjpcJGxGs2vMY9n8hZW;kxGPFg@3c^mQ z1)4Evcp0|Wgg^J;6i!W0T|Z5YuX#OHzr0l;nkwZ;);HG0iO8`l9j z>P{zc?R8FNm2~G-R8#!8iyh6*6NF}T)L?*wf2FI>>3w3o*sk-rQAeK%EQ~AjPLlL< zs@OZ{$0@33JHLt2wAYT@_()Gg>3r{OR{z0vIU;xeeKj7{_V3J%P=Jb2a>y?2cGaG8 z0e;iLop=37?dZq?BHvzRs+`q%v1Yj>dwhIL=T6_v42}2JHj|M>2ui}c~(wHC)A@pSy{%fuvKdeRGb_=lr(o{ zW)EhyQo0_R38!m`P8ff|D zrb_7NX5^P}iJ85GWqcVE&=__%2#2vmRze4od-lTCO+zxB?xJYwL(WX}%q)GyytAu( zjOvD;I2mkP2%^KDT|GV=cl7RUggs8Ub|h>7{I%v$;{A7QNX9o)4hg*q<5kEP}EXWi#&nCs{-@R>cMcV#Bzv(fEAdU2-> zx6)F-;QLP#^n#mDqpM=+Jh=t3zX*hhH_pDbdk_yv&FQYW2Dbf z)Xr+PC5%=W$Z&wl3-Xa(MU`U~Z1&U!F;5vK&I&;jxZI4e(|@0G%0=4j)u^8GZObYG z%o*s_`B#L`Xq#~s624)9eveL-;tJ6^F&pYYxs)N*wTS(Aa-x<6$r~&@9dc-$Vo z;S()%hWO*u!p>0R8wqI<_n&5nGxVfo& ztilR841S(4E_=RuDI6~vT&5eLPvuPULQ_rt!!ad@Orhjh58bvvKlIy9&?k4X63zGY9tix#5Bj~K6g2OcE2$L*ZiF~CH^n%brW{Oe^F)e`X`j? zpY-jxiXiGgRc^-rD&`QF{vlTFY-k*^jj&-kLs8s*9KO-{5f+M??3z{eYHKPQ!Z9i% z51Af>2)Iz&P+A#p;e*<9P9=4(k;`VU*!Od&8;hCzQX6q8cd`y?KI@$P96&WhQ~bX3 z+vzfVmp=77KWTj!pzDJ@(^1iJaHO>;+WbC-u5;h~o1BMk6w~jBtxkOE=pBnXf8;{> zod)+&1!s2fJqhaUcpA8nU+gWzb2nObi`T~9h#CO=J^+1CFu_}%sk`r2HI(C~_4LP5 zVmQK^M0x#D#@j;!rUzRwa-#edbZqYS{3_gohiuCpAA?rb1sUH)>x0eW)R`_=#eby* zs?SQlja0>@Vni1tlHvJaUC*T_&^ZPMaHX%oNy~v$!*9a-cmTW$;I(#_!QN3SidFwc zJhK{(w-4=@nQTKZ{0I5Ui^c6Rs|NjKDs<3TjnRJO_^MNpnPX38^vBpK^35-43#^?J zSCLA$o!wa81tusxTl>Gmv$*u6E4m&mbpM-mCS7CsaF0VmtgQ6FtcW+}9r!F?jl?vgY-Fa9mr|Fm`!U!+&+N+;_dyGDp+Q+r6yal7vSJTbSl#^RTz55;yNp50-=vQn2%^Cpn3^%GhC za>c1NSQO>asr@JrUWGoNmd^EseyZzBcbE$SL<820ou+{}>fJx;{ca)_w+s`8W`iiH zdHOo%+V}y%+(rv}c+WOxD{tR8hKYm}>cDlL8~&*hIUJ!o+zdk^vFD;5rMj*~Ox{Pa znsven%-)mF4aH@k5K`MN5^|4i5MI%z@~`Ja4?gI;Vk0HIflKo#fb4X)xn***-|Y+cT826&Rm%G0}`p*9TM3$PuSWu60*64(}Y$ z%d~GlrW~e~W6^&!gf_47XYFwlX-^nfarPx9a@Y7DO$`lMc0LX0IxKF_8KVqBMF7*1 zQ^8M<|B&#F$V$MUXGs#A|B$fLkl@8oVhHgqftBDn$%bcTGa}xF9Pe{_FaRn=NbCrg z41?a(SeYu#!+kg1L3={N{XtA8uNIwPgyNOvm$LWd2}#8mGNgq9>GbI=plEctEmc$9 zlb+<GJ*?tDhORT-xw=FNXS-h~r}8iRL^nJWCIjw_S-|!#Y0TY7q$n8*%X#hI8 zBn3O?b<(?=d4n~#drB2GWYf26&(F${9FFB#HQ*7A%lqWBAFx`lOU9$kY!O?^-&=7f zCHK>HQuPbP^LRO=IPHOG@YXmS4myK-@5i!xJ#PY~10VmeqWNo<7qr+W*bYSFV#O0| zDSiC(yh27PuN+2sI2IjyiTg2i-C_W4Ss0D4T3qt-@&bJ@uO1b{;k7OmXZ_>JOAEy8 zWjn3^xyBUszi1fvAe8&@M)V7w-xf}rg;Z~A?f(Tjv)b@l1i%Y8MA)sHv#Ui0wVF|< zfsBGwZ7-clKGS#kkkTqB54)&>cPKspvG~cd>nncAHQl9Xu}9PGrF#>d75*Wi{b6Eu z62$PZ{J}eMUTEqs>u9@%mkWWp5Y9aeS=%anRz1NgF8uPL@Lf>9Zr=IG4k6Z5{SG$P z0`Zj#%4r5tla~f%9W#ut);aV6G20tu&_}-)^e#iZm)el=P`d?4jp}O@w2>49kHjB+ z&_|AA;qM{tbFpVKG6snXPz*YWqs1oi;%^TSFnb2x;UP1ra79(H_z9te z3q_J^$=Vc1*qEaK)anor^q{to+$r3!Rat6bb~NkO;urgR0iL;ibw~MfLC4QGhdp@a zfsa>VAx0a~#TquOQMXc$gJ{{j9KMB7u8@CbCdd2cL{LQrucLip7kIeCviMUOXwVrx zTRZ*ye3@>=nPxpNPGsRdd59*=~B75#gtA`r-Xd^AaX=EfH!x@{u*~M+9>C(F^wGYVsksf82y|z(@B%#7Q;KiI}|_%iY0e?C9&i z&|~p?6>dv!X+mVM6sfE!$-JTCA9tZsf%iVse7>mUR*@jtFC=eY5#KO#P%e-YwY4iYFFFyowKK8Y&b~_I zZy!R~2??C1RD z*Z+t|D!BKtVBgOGT5Fe5mzZPd0R{&Sd z7opC^z{)@Kr9NNzg63u~rkiFr2*K-NLI!4^`#;fkt7#uVuGm z*e@{D^+X55iS^EAi<~hSf|8XO*5rOWVP#S=N#m7ojQXwJV_02q?9%;%OQ>df;Dpdw z@ZXni{-;Xo;Zo|x#;yt-t0Yvo@WH{%oCTixrhB8QN8AYNFzN`wjc=3NZ`yvoamiPz zoXjMDd5zjfoRaCpbOI<$GIN`w*M_@z!x+~kn;+pHAEW~%@$-ucm;rPsklU2%0C3sP zARYjFcMhfLl4?rC_fDs%@q(#5SMH_FDDOsiY8uTjdtT*2h%f*TP# z=2|H2DHCa;{{8U1wL=hzT}mR!N<$OSp@H}HT04ntjBC|i zfW_FlTyzOLvQd2Sn*{(3Op5e-b`QylZoBKn?b@)N2B1a~*P=INAN>Jl;_wMF{dS&Q zh3u7Q8o$yv`Km5fD8u+lct3#b*5H>%tf&@*A+;2&S7j?9V+V;hatK6BGH!rCX%D0^OKdeW~hnzIZm z4&x?KyQcGGrTart#pP9fa;<&jMcS%1}WE5^v$fO>zcubo>{d}?8im`%K;C?--MAs9^fhdCniy? zpP$kTH#aQr>d)3gCO`E~)8Y++!*20tzISRO;`ul=u`(y3^yTaSMX|-{B!*#lX+l)N z$`CBjfVk2_;GDhdI~k7^1g;93aAx#9l2$MTe&XZcY1FPmL-tM8z0uKWZ9^|#;@E<1 z{NN=iAs;2*=Y6CZ#+80$h1@I+-%YrN^n*F*|JpBQ5>>eJx{$%`(YUy`nY4Rn-!rH0 zG1$@>s-mwKt5Li`YzyVT_rsOFId3iKYzTLr_!^OX%I!GC^Cl$cl-G@i_f3c03jBIm zG)OY-3d26FU58bXZQC z_$8)txfYf}iW7Xy{7wRkFO#C~rl^vFzE`>p(t<6FM8|g*q>mfqSsHDh_Kl2wfyV*a zjgbf0GRA~sX^p!Z7<@#nEz3rW2jwpnMSoL&wmp$$1~RAk$JCU04hP-8t`B}rayC5b z`c~&?ETN$_wMGYPqpvklEUyOp+XUKaxc(O?Tdspvf1klu2L#hDX?jwbK`CMUEEKQ4 zmAJO=tXZNbEgbW?TaV%}#J~dHppwZsD)I=)Pc#j^;GD>24l(OO94i z@u04#p%P90dW2w{W!`!~>J;lE)v8Q_6v~ys4izmM_q{qa$19181d4&YeI1Ux@0)hq zptJw|g^L4T+>R<5ZZKQG3@_oNCh>Md0n=f+=a?6pw5~ueux#Wd!}*892UPp5FFZ01 zN9b)!)P}0m6^5RJ_(0Z~gV7gY7$s&33$7^YE$g?j4NHg^22;B6dXUM~97}Lk&DEtF@Vw{JY8qtV5`>fI+H%26#4q8mPNi{5P$v(Nz&HZ`#j`_c1q(H=m*dGb$?%|_f)a^3vOa-d7C!1wGAbMK$x^)?r4q26&?ticLaM?B!UCqSvT|F9Q# zV^h#mHzeD0{-0LWf5MsV`fwvbi}mep!VGzVq(n0x8`*msJd4JBb8OO-z2^~i|6pHY zl#6^6hSTmH5IzwI~5EIB~jH~7ND zdrP;*@Lwd67&-Ewek(xDEbeY<NpOf%I2;~iy&Ui6X#!bN5* z^nsGam2XQ;=2svou#q@-AG@A8i==l1&pph{@>(i|tGJ&xIP1*00qf$b!9sP|%HQVw zcpe3E-?JsHH)(CM4s7ED~|Fk=G_2H$9|J1&(70#b#-giMYKaGN-MON0#1IOJU zYDcJkXXVHk zl2Mr%$_Fyx&#pAo1N`PVT=%}@c2q6YZ~b-tSC{dBLf3+K6x~J>N|EDc-cgIWYj;Q; zhU(EQhdlqlI6W%W3lz|+Pyn|g6CWuHXP;xICS8A30 zaY`lSt7!i)fKqK^(TJ_Gj6Zlv;Kb>zeFo-z5PKn;#8rt-sZj^bIo7_Q`1IJrVn>YR zbAk~6-NUi2|J2b!DCf_Hi;y7L>&4e=vGdo}-wwW{c2MWXYZxifo)li?-2cEe^DtJj zdF-cWW>2-V;d`_Sn&`=pdfsAoTb*AnT({LivEfC6{N-?~K!%JVn9$eIU*bP<2Jx_r z<~{H;=@~!gnW0_1MC2PFvIrd?%L?F%5kqcs8w`nieQQQ-oucz`My;yc@m5nuc!{4i zD}(lLl3c|M+5!o|gjp2+wkA^&KiN17N}QP8_O_9Tx4=qtM7SUq9~SrK3lT$<=(le| zxKiImNMQZo3r4arU@-nHF(J3mbD9Fkw;8oVHlXgy3C`;5>kP|o-u*W8{_|``l0FB3 z5!?)Ys+;~@g*h@(qtxic7iJyVUK^JMiCTL19c3P6`o+pR>TB+DGi*3O6|{zPO3tQc zMP^K!D{C>yJv+@1NyJ(vHeT`~%}i)p{X8eUM*%WsW;@!UT|2HJlaqZVS|GyCrbgq~ zvucAnCifyY*h~z(`bF?m=}4WzbNNfb3z*y_Xm*8<{iC`XhwWNUH{!f7AbW%nmHKUK z#_Oz~VIHg_)6)@;ft%yAxDtPwyGR&vr|#xD2Ua^T=sJ<+X|`E}fpLlbdK!uYCMoiFG$RrRqXVN)SHhphL(WT{7#cZmXA!1cZ#l-2ZPHk%rsp)!c zgE`b`y_m++IM#~aN+Rx2QNjV^(A-nWGW{)H#8`FD**-mUN3_9=L-yvoBd|<=Uco(J zQA}71)HgG&YiM{#thTCEmCq$QA`oT5pF;;MF=j876_LQtMAAbEA-DmSp!Y+O?ete| zd{XtsxHxm|F!gcjDpDqh=Uw*mlb9p#4B_P2>Y8b){v7(_Y`SnGVN?bbOVV~ak0AzP zqLeHsKaZ?gcn1>4ewYWEHV@Q~_LwY0p)TmRb?8;px(&|n?dN3(;{HdXyNZkZ@9pEM z_E6sMOH0EVy~Xg|Z2QFyXnuPc2CDQZz-Ii%8JHhgDtDj)H48u&|U^AU>1G zan5S{QZqm@z`@mN5>N3zw1#-NrgaHEn!5mmU=EABLya3qtpH)xeCn$NnN|T^O8e)z znMB4}IbnQAufP7LH=|oSy3b)`(XOG9zo|uT#KLS>Ks4Yac)a86DTalKjePg-S#zza z)u`kfdOjXxTJM}79ZIz2iljAvl#-4t0 zMWjdggo|RMt{q99ab1p_8IlDMnrq6%PNIG_)Y*Sa#vN~@iJ@9xFiLB!_k zcQa>hYnxxY8f3Bq;p=C|1--jsXYAuGGv(UwTfTRzO@M9c;wSMq?|1UG3dS068 ziTKwrr)GN+MgH#8l1VwxN1i$?2kS+oJSrJjWV;NvCg;08fA=Rrt}Lx4hxh*O(dF7) zUO5ScEK7mzG49A9fDEy@jizi`cUHdNK6O(g_I8^zu5FvR;%44nG)2(tgaDGoTgX@Y zXoP~kbI3doHf2@XPmt|jqpI_vIHf8LJmXhyqImZ)CrOOCNNSbqfJS3Ih(O@_G z@Y!~}T^X~f9n_iS;Wu>glVxU_bhXMiLcr9GTpqJ~OQ5Mf4e~S=bRqPb%lQR5k#*9E zUq0`_i?{Sw^W|wmu$Sz$>PYuwVGM)bhA?vhgFgueQ|2Ftb&it65cZ(eIDl^5nLQ>u zBaUm4N`3Y#n#IB`cv?v`k`KNnvHg7;dUQ+@{ZR@v79rYckv7x;tTlam^(cJ$*_!_? z^qlb#V8Eb5o7Md+Gr_oW+w2f?kQmCGA>C1|wQ76J4&&#{j*M}L8Ewu~UmkE~$v!Jf z;&xArns+tt`-|$45UT8xv$CA-2?jNB$+upB)v0~)fQG0|;*`ic;ZB;woU=P=abNkVmS<&ZcO>=&3AKvoDALEe6&8;P~ z4$x6%UwHGuX)T9FFTdh9>3pqjD5~f3HD?xG#rlt-UHOkPj`k74mdFkO4p>#*?ht{Uf0O5c@JV@|$};B0`aWYS zE>4##EGe??kxW&Cn^%3s>Uh}hnaMtb-c-FWhn4|Ai;P!-w51723>!~Fe@+Qo??%kX zow?h`1*R!t{=>^JaW<|1Q#rZ$lumFhttn}A&@ioVc&Yc18Ndy6en61m$q4P5p3n$( zW@4=VugYfL;$y8_$1Db*5UIi&@H=`AjeKBqQp!17DAu0MJ(@mA68Qx_+Sg^GWfEI()ZJ6{Hw zS$;n{8tVof?MaBLWu?HWHa~8kg|2reusK5t;52`bw}z5F;Y~^{I~w4UH3ue^(Sc-A zh^oP3+QW&9=))X;+L6WFMv3#5F$<5K0^PrqIF533 zm9H(Lr1-~@>k)#E|2`Q4Xri5$B9izW{X(D!AQW%IJ@$1pCjru}8=&%^KRhsp|DZhy z`J4eTjS3k;XkC+xfd4P&B)0tFX0-sGQ38--`yyJr(nc^ARRsoN^X`Ny6R98oYK}P> zcKlVI#DsIS5m)XDZ4xyiPHpw8PGyk-7TON&xTrX_32{vw#gR+*1iHYq75&V&WTT6+ zGi?%=#u5h%xzYEmr@~%h0}S9V=bmzG25Mt8oGI1Ll#H7=d?f>;0tW#B8H%9zwaTl( zv>{?i{We~=K(83}VYOJEkLV?caf_}Mfv>H9xOrBw!O5L)7T!UMY-j^=9EP77(DJVs zbNUX}NXY5(-6lbpfme3@qBX}Fo$Q3S;`<`)eYk^h$Pub zZ|o*wEI@Oe*9q3a1C!*WxQM*YX>%4U8$Z~LmL=fIt8eObMRzzCXm2MCtrrzO4EGtm z=fTh7A)|hSQ5L_-I_r-RlORs8T>ZJYc=yOsH~YD&xixA8y37Q9b5e$WSCO{?z($j7 zt3zIf84p`|DiF!u=e4)Q;6(XIragy!=6BpI(V5RNU$#83>s6Wuz0$-_b4oj$^!Z3j zb28N&O1MU;JTU@Us?Xzw%WJIM>FWB(|?P`XIa1 zi?AH^_#VA7Yl0xcD~l;ge9E}OD2;Is-IYt}>n=G(x_83`x5Yn}Ma6Gc~^(sB#WA=}(Ig7r>YwR|{b2 z7xjyGP36Yf);c$;x=MJva89^^dGG4X*IB~_G0%_$Rn2_kZ{$}N;=_y(==iB_of}T; zVNLUHm91-x(RN{smPdfI%?x>lZOK9ojfgOZa;QHZ&<5bboYkVXlV-0+-U=*6z50k1 z>u#^R$xKyzB%a*K?iw{G?hR#5YJB0wrRF(=UGy3-yhDzR$5~D+GmM3NgJ=J<_c1p6 z*^R0NkU$zc32a~Garg;zPwjc@;CeVi-{y-BCHrOTdHMYeEPF@y4^wedAJ0FPE^`_L0Q>>d#0gDiWO50FHIVF9Us?Ar(;oXlxj zhpzuIR_0F;aZ3W7SEdw9bpb@%lZVJ*Eh#JCngIphokU`in8+0s){OAnAumZ`AL;R{ z=*)2tI=L8lo@mh3(IC!fW}>hrN)0QP8GZr-h=RHH5a%9mG^aEcuRDo!O``o{+DtD0 z-RlY>kq#84!rvC&X@$#m5(yBvW)Q&<1te!Z_HOzfzFBdEjrlBP(8@^vW?eZw*-^)I)Y<|<2VckswQtOew z!k!h$(%U50Un5{mN1iq`)3lbxm8tAkO96oM>o2WIjErG_KctO#nSBq?_eN*lJ}x3{ zBMCFO4Fza|^lAn89DgFyR2v8zfLs`|i+sJLtYc z5oOR7&B_%eUI5Aq^cyJBcKwtHw7}jl1_l=&Vz;ofJJp9%>*IOPfm=0i@qxjuCZavLt7Ye|nf3Vr0p{<3BIJz= zz^TxOA5S0{1-|HYK0&Q#HsT#A`nwOwuuFc-$6qV}OXTx4gRZ*>Yj|rxT=ynGk_h$! z8fbgF4&MV?9iPYTi>Myd_hngw@LHMmi zN%E>6IAECi8&Nynpi$A$Evypk_YpNzIe(T7M3N&;Kklr=Nf;KX+yE(ptj;wjZh^=JTP~;os5cPv|LLgmVpjH39msJXV3|VF7vLWf<16+ zx}L%99pGG5nRX96`4;s@8$hz{hwD>7i?H@iq6WYMZ{v>q`h zFouV)_6avuH}Le(Q3j7rO? z%MrVdTk$BnOr%^>|94RVR^N;W!c}>7Ui~Nv*FRpMKOv z0D{nA>G9nc1qNOI2OKVy2w^Ps;(l=(V`Cgh&1J=e)cz5s=2k#ZT(hNNl_K~OYw%CM zm7g+xFJ(cR*jBT6@Z4^?xcdhBF-`24jJ%9HO_P-&yP==H!YhINKH!1PzB!d1gF}>m zlyx2nX{SoGz%=>*euWZWibLj4;jYhk>5U_Pq801BNZp_ExDA#m3cq&|-H7(TZX4V9x$T;^q-7WBzO$sF9)!mro;KW2M7FgI!^C+AALPaERLT+dma(fajEf`A;q<`|1uhAszr zM1+t&x^P<@;%b-_v?UC|i#Q}j_UQ_(0xyM&)IqJ^L5A#{KfJg zuC94R>@7jJ8*KBLzZd||h>LX*yuf&G9}wW-Lk-iVFXYgo{t=+xmWNQ^4ueN4ta=iI zPPHvgF-EnSPHsN2h^(OvphG%u5Tfj#20nOKuRa{G85ry&vLf9Mvds%Yix!+j)&(ap zzr4Ea1xUKQkUvxt0k)r+?05b6+|ql{Ija>y?tZP`7|IQh#IpiU@NXF*&IKFhK4Dtg z#kD;Wt;%9Mvt2V1GNSuVzZVRN(N|@uz5hsdL#p322!Pt=NKY_V+}YR_vZ$=G{uLjG z3L{~a%kWL|N7(0Qx+iQ^@bg8dL`9cavpKOvg;BW=FDfWEO*fP z7?PC%iHVLE&MeeJ`7E9PD{A<7kYhv_?#!MScRo!Eb>~D z`tqf5(aRJ8&}*ulpMYiXrH(^o5+BCf`(9Bq1PM&j9yBrvB*| zch>SxLQw-_MUg3{@|Yh9kB1ojJ~QRhDipgPWP*z|q0Yj%{F+6vKM&1YHj$BUk`@v%Y|PW9@USD)XoI_yPFxNx08qpeMaGHi5_Ujg3^)s zZ!aOJ{?p3>L{Mb`(voSfaVmU?{kPlX#fP3yy2zq|urR<^ot?zMmgPxj->X*VAIomL z;)PcaIY{oP;Pj@tF&tkT6csa$i>1r5xx{jOWgHdoo3*U3B9(f6c9r9+7gESJPcYN?2}XlSgIyv7RqEu(%z zCmiCC+HLt)fx%Zer{PDc+`3nSe?nzW|>g4r)Ar@|}-m3+a5gYK$!N*S3X7-ff9 z$+17qa9>L6q-rtH*V(4%^sAcHMu*in%q?D(9RvGOEbNz@t;EaG@uv$A?vhwaCwwFj z>X^PfLQ4881y?oJmA>8FagB5hCsT)T$lfjhpDxeRV*2-$6z@%r^nA`vhM zSe+l-njruv=D8dWHrQ%KNV+P(lk4w+Lp3<))(nyU8xX}<@5i~%EmU9bGWRWm9}j%* z1z^dkR1nXARMA)A_f?137}Lk}b$tG$Om_9aX|58Mr3wJwphQ3vCJ7rVw1DUh$uGm> zqLEL0NrycWL)`pI?eu%(s2(6vQJ<7K4`n3FKANl-D13Z-5uDK+xVhS@RS|q`2^v*0 zWIv<+7RK8303pnl$}$!=;hip3`x3>nWc{;U-P=c+fA6@-3PaNdRQB(@vd?rql7wO6 z?;V{-Y@(xre8(y|HI2Exv(jc28o9tujJ1zfNtA{qAHHJsDRVZR=$o_U zSP{y^5aNVTjdA9{@TRfh^pA?+W9WZ_QNrEdD9V(~^hxOOWvS>CdP2!!QI*6KH!;A5 zgs<-&X6%P{>wE5-lLLN;b@g0bo4nDJc}Lu9cLL2I>b6I8*?xi75Rp%(@9Wco9ol=B zeO|R5|AY`@q-l4A2q^DD7niD~KbhQTnw;!0II5(I&;mEUt8q20KiHSeUplqq(|A2T zfS?R+-RQ8BKrW9_r{uR{2&jvqV;`MCE9dK_8pg(#vtbK4mSozT4|$Cxsd(6HGu!5-q6!@#Z=nKjU1 zW>W^^jUJBqh0=NqrsW3%O22Sqybs%D5lvyzY*i&OG%AP0?+R8HqK?Xt0iiMZ4`aUZLJVoHKvwgHJ=x?x^x^!A^<_ji&kOd?lLxV|weJqS8Ts|Xy z=g!vhqLNHPFxq`LXEb0EhZJZGFhcbi5IaeK;7fZa*w8N;X1Rl{ES7_X!^NlhHH=Hm zZvRW)kr%JN@tcXvcs^sf2Qjm*qCbH#=_G&4C-nEKDQp4=UR9QT)e2D@EGBHy`tY55 zDVc|z^AF-i)g7Ads}he!U2NvQw;1K*C#osD#kn1g8iw6_u3A!;Li?x3_jb!_LLAy& zclhHLSR1Q=H6et-m{A@Y;E@H8Bn0)-zL@AVD9QJ|y8icwW?WpiI{?aSGaYV?u-U(w z?IfZh%D1a~^G_pGH$X`74=RK8PMR{YK2|iNJ(NYM(2Sp%6$mM&g~;(oCU|8AwU4qz z4@(=D;?WX%x;55y^}lpg2MIJ4Y-3lL;QO%+6Xo`N?_)Q(@zfWzlH}G>GIU>a)i%8~ z2tX;BLD8akfzm zK>bG#xkr|l&otA6LZRmbC2oD8lHL3Z0V)SaNv0(uk~4`wKKO}~CB#-#>e@*#3gQI!7iwahxjPy`#BvgbNVRP;4wnDLC~PHX0OYJDF)Acf|xK{`RU|F9wY1K zpCS-(Gf&Qi+gVwn5PE61K$vwSQbpnrj48_OD^l=Jx^bmqL6L)gTr zK(<$dsT>~W_93s5u(l`1aBDRmkzzWvtB_GqOe1YMTbgey{T&;DLn+aJDl>p zj{Vl*rb;)IURs_FF$6gfn(Qy>uzCik;$8pa&Mu1vm-UuloD%PC5jQjvW@>v>*hu)Q z*?AZ}VUym0n8y2j6;gU<((l#~Q>{JKl0dI4Z~Fr{mq4Mz)u`lrqs}H_rF|A=mt0m( z7J-4suvuAUDe$q9Xp#IeQ zu9EfjrE76SG5tt;p)_0fJNTc5S2==xOGEJg>Goo8xPg01Xr(7Q6-zqpn*QbX*XG7` zUqF6OiBr9j06gF^!7rT9^$r1xpgZ5|R(#g$+UUjMR6r3P`?jfp!dg4`V5U&41AQTP zX!}IKGl33|6w;mRTr#IA=lLY6yN0&MdB{!1V_e*$=L%gOuo;Ie+yyk2pMum4YTAr)ei56z@b;?7Gtcr)FbKF zD-i32%vX?HGyYt~Sg2cf}^ z7S2Kem^g6bH^MH9GoLJj?+YPnZd&NG;&bmf4blcZAo?KdpADGO-XrUl=e0-Ae|Q`P z?eS71g5svi-{8zTde`vbBW8Y;*Y^_nCIVg!Yo>O7@I#_4$qsv8ramJu7|yNaRuTy7 zAfAye)%#r!HnHjtk9^qhUiANwgo)iOpmH{Jr;zftMzg^wCFI8+2NsH%Mia5}RDpTT zRML#;1hsdqNaQzT5gbaBkL2QE&@{6d_QM&=ljkg2AP)a+yz)j_0N#mo zE5D#hwwcp8+{xPvvDYgx!p!=??%<+#5+E$j%D;g8su{*ho10E1mdlorJCm94gp#{17J|hAw;RE|4?GM#aM*y@MLAOTe8+pGx8@KNZ z+)^5+L4Lb{tB*fiLwZK2c;Qy1i0v4tHi&+PFh8j@mc;IoGPC5}~^>1Z6kCIp}kvDdW3lghao+cV%%GA6iC z!~6e8Y^G!LTY{{@MPiIDmEl%^2_KamJZfN0vp*6LS@0Qb`-F`C?0)Iiibn!(e)(R& zw+k>p9rh)$tbF_}32nbhN$E)+^9XhWj85PU5v~oU{x(NSJ7D*LBI1ni)4=(8Nh6`_ zgc3Zjsp>odISGZ#U<-_ePfnuEw4jP?8BYteQb1#_YEEMelOOqswa)h%bE2Q?qEnvD z+Q;3aJ=#`eLI%luhcdddp3Jv2<14Beh2pQ_nX=bPIFLEG>#v3~u;PdHVe#DPd4MC~ee_0$TeB zihF$hM>+vf>xe4{!Ad&OVe$wuO~SeAQ@vWieL2iXf7+Cd-F`cc0CXLKt<82|VC{ni zgreHu`SF+LYvNPs8h=-w?DX{iqv*2p-(sNpN>LT!Xt4EV#Q% zaCf)h9^Co%`KsO@M^Ve(9#z{n)6>&4D>~?RfcTO9geJ|rOv+pf1dDTOj3-65S7AuI zD3PjpTu3#$3@i}FhK|8jc@PX39im-3=ClmkBV8^U1M=v6uq%PVg31DSl$gi}es0#d zn0rMfAvwkQ57|!~f`ev0hvPp8DLey|EYV^J=31Q)tTEo?dtmi@RIy1cj)U~4S>)F` zZ-b7%V^BmHI`rHrwixh`j>_r0qib|#*)(5*a)l3W)%gFe3<8tS?|a)zY#6d288SLqU^i8WR|RYqCLjVd(hsKR?C zcZZM7@$wzK-ij_-{?y15n@-z7B6g%@X{gktM2I!#o0?|!B;SS3euFv)NL;(4-Qrb~ zrRcL(kt#B!F^a}#R>eQigI~1_DP*Sb=v?f4h&3JEywAiVdh1*3{#$o%WVxDC9uH9q zU@ zC=g-Cj2AoGf!aw%df2&{dE?K-xgP@)M>`&P zNL;Me-PN?Ma+oj`;*lNf4v5=Z)eh~1wYNV#%NOhnIuh}zH{vG*~_#yPPYqX&~KnmhO-oVYUkg?j7R+M!uSaG)k-};cf*tdRA6hI=T$oxfg zWrIYDK8TGr?R=r$plS=EI^xeEjch|ftA35YYMWOlQc`?3tEax&)hC<-%f_wE`SvdT zTo>-_)4aHE2CR7ymbl@5_Oev1>y_+laaEr7dZ|u9Mu^c9xK>hwA@Rh9s07#6S-qNx ztg#tf=-sNL%Hcp`$94R6Y)h2eL10&1>YDRe;wvgBgYAgkTA<(gEj?&R)yI09N*?IC zfUvOsaj#EaPhGBNb$eCF;#%L8ZV4W+9u6HnE+?ZK=c>YLMKG@LVu7_1)&>zB1Vt3U zXbkX);@@GqaND{cl}5BD9QED&lE8-O+!XuKwFt26u;v@A@>6pTG2;0NRl-RsWq%nw zr*Q4Ih}-N5^R?Q>CD& z+WQj6N9y!oqy;-WbNj!9|#)LleV$8a|2X!Gavg9c?uiGis}R==l4f7f+F)R*nA zFA}Da@y(FA>6yHfDND32fU+(J;>wqr0MEcthFdPN31YfHGE1wf0GAF9e(2FKGB3Vbt7 z7~TohgQQub5cnFf=L(AXWHjSK(p51`m>YW5?@O&J@h}kur)TrI2TKy7Umo#~0nD~2 z=z_oJ*F*2Mh)rB5?;$FyeRG#kPlsvT_54_By5+Q_aDPmvA*lu+*#ezZr%cqgUmZU( z-Q1Im>_t4Ai_r4BWO_;&D(2zO@h(k!tPUI zpK8x==>C2Yuwd_<7_GxsM9TE7|mUm>T3nBugJcLvSm`Xx2_M(FD0HwJY=R!cLG<;<@zerUw+b8HgF8 z&WK&1qq!LLUbNuY3Ks|94=5(7t!x9RmQ-NEyE{c7y-;Yjp-4Zvu;4f0Bm}9-sRQyG zr~|17Dojruc3TFN1H>o5XI->lx4AwQ2((Hw032fVkla5$vJ$UxhY}fU27FQ#; z)sfq;1F;9C(M25pB# zL%xB}EwXu`H{ilWvHO;6B|?v>QAcWOnEEFPWtnp4vhq--2|}5otmlUX&Y5{tEv3I5q?EH5$FE`o8{_4_*mZhx&(7 zBxA6lK~UWhGg7_7ZTgLSFZJ--(2r(?zJR@gmz3j#W0>Fg`{^&dMpApNNZ-Am?iBl~Q9H9(=wj=PF(7op|=b9lNCrKFqj-v|UgI}-}<`2Ey?sb0Oj`pA? z=+X1UGH67022~0Oiyc7D1ao#DOC$Xh>m%mnh$=#d zcU91<85JR*FfKvi(^oeFKq*+dN89w(&#dDRS%I*d!+l(wkQU!oEtfjkmS)s>c5GZT zlO;tatK}_)uOT91KtW<1&ti{ilebzDVKy#ufPZJ)kc5;@({7u^=)>#VQ!16n z4lfTgtF0h93&QDQFq~oJ%&Cy7?m$gNTH*j+Zt@c3LEiF{CNBH0&St8Z35;Vl?)1vR z&LDy*9Qu0j!6vVQR&vaU0z>v79Xdt3n*gVPTtG$&N9fY^cttf69?-9eF3SI>XUJG4 z0I|5;caMPk6-II?Gez?Rv4V&*v-%FWz<&u`?p$WUbVQ(|8ul*=cQb4BN2f z0O26}Ly@82OE~|=zcsL zTpze|y>Z=X)v(BNUl6w8zHZ{rch=1t-jEdY0y_s&+r3HZW5nw!G|Gy)PDN@=4K?Dq zb0D@0v^s_Pvfz)e+*5@PKZqzFYEnO!Q2h~?8+%BBG%>Vp%=G;r0w}Jbk?X@wHpFYq zFrm9a(cL98%88KA6s??D>a;f0q<^frkTq&e&Wp*N|G`6%M*B)AC;o|MHSj;Nm4C_k zkLDWuD-j`XeoD^!ml(jN)b*LO3l*%2Zib3Qx}Fb-aFzfUKvg5KzQA6AWYn>C;p9q{ zMt49*))m_6=EY$nLhATCxcwk$jf#6+KQp3Lk;v#P?d2#wVeI%$XRuEyRsQ_aIJEtf zi49de^b{)9-?^N(5#DAJkB?8Gm66x~UN82tC{Wa-;FsVSuNBr!3AWjliqV{|bFvsM z3Cwh2!W;~aL!${G;PawxUD$JaY9=fli%t zMt!azBee{}jQB5myP(%NQo)y?u7WxKWVjXzTUB2=!t2jxoqT&P1tVWFh3I{v3yJW< zUnWpNVMZSpa6b;T*K2EE7!%~hf>ri=W(9);`@K^_@u&(I1xIK5y?rlg6f7TO!dL`- z*81HATK@J@oeF%`OOfKs^?gB#6=F2(J#HTQo=5l-Km;B{i!i11`%u4)2at7k|2rbG zZtTx>q@^K)ye&Wc!0)}B{9k;*=>cY^OvTTub>7N{38h4cScV>2hfzVPCw~z^aH39w zF{1vW3xHGsl%R?~8Z&cGoijgBwmI$;Np@dFKwAdAT;L*NlP~B{ zfZd}6>QRyL{h?EL4MGoo8xzzW#3K*`-iroQ31+Q#G#C`n7Txt=Ho%XH#%zJcgdKpU zrD;NqpLI6Z(2UtL?iSq)%6X6ZLKYjLEodyF>tRx-rkXET(jZHq^*GSU=FmM%$h)_- z=huk!cD`hMCk)_i$~@%>6?_b_cy~{3&kFunh2o3$gPRp8Ai)830hzJ;dt;`s?jJT_ zPRyG7=z#Fjk?~u_$C?O!S{$(xXNxCB4|W@+6}zvB4$M<`vVr8=xj#gdGenZclx%BAZ1Tcpj8wU&;Ojt#9x_yJ{c}7^ zhLs1UuuRM5AcQHt{YYC9l4H@*Mrm!yheG)cL$aw21xe?S_$0YD=+PRU{5Y9XV$ls? zDK$?2vbG!^#wnF|5(@n^!Zf$cCpnSW&It3QnV&GAt_fQED=pG6ABtqpUT*XovYM2l zHeE=K;cNFairGesA3dtGM8 zKAq=Ab4p-W+5Pn@x%>@oNqr^{{UjDb0J;YY7y_6IZFm-P2D(pQyIm&7zr7Ll%mGI~ zATSYM8HZUy+I5jYLZ}eN;+CWU_JoijpDQGexj|N>O@xKq;kkWP#>=R~Z2sKfTqf7Q z!0nodV|_amWj9EfKj#X9=y(B2HY z4QQk8%O;(@pQaEUcw_xF)P-iY7OgQ^KwbZ-$C)hMwR6-6!UzleVD+?D<%gOZP_&_2 zK%c2+^(K;Al@Aai)E;j)wl$pa7l#odR@Zd_JV>>a)i5|n4@IDd>465K4LUKC{tNbV zZAw|HECcx1KHyoj@_(3hn(VC>yMTOgowN%E9a{p8@NQ5R)V5~(5qzu8GvYIx3HX(5 zj|RxPB$U?IM4*YztBwkF>uy|s#ES!B-AN;E4RFN=SuJ$OtwoSyuy;Qdi%A%K$+r zA4#7?0O|?tAF46cCFHlC$+Xo^4*(qEzbihvF zK%^ir!Q{z>P+A^UYEFP8yC=0o!9aJa7UMMoHI4{d57aVH#pz(;=~HlJ_ceU}5TJ+8 z=pNAz{`cg4X!@kO{kU-D6D&FVgE!y6uvaufWV^31pDMx0)*;xaCc0M3fKFt&)O1XP z+HkcBhFA!l$S&Mex_gpbi75<%3MtEs3l%l#GxU$|%2c-Smkdj#5cQxv%G7V9sUlYi z(l@U-V77qPB(N`u9Nh@UHo@MyxTu}Q{Yd7A*GZ!8L)&APJ}-VCfHrP1cDBKGp$wQS zY7hxv1OG%{;R<+|j6nWS$6`(VeDa&fBWYf1fDDAwU-2Chku`nT#ypQz({ya}5q-&RLAIfQ|rBDrbbpRwWcdhyq3L!|RE~3`)3TMzo7txXQ z;uC`OuzPdYiWN7>?B#O8T_;x0O*=IQI1030YyFH0f&-XzK$Z4{%gKWB-Z-Ep9EmPA z(g2d6A#BZj%TVK4>6R-myqecEdwnNrk2T!N<=0Kx8i8?0uqB`kn%5r!4LnlH*wPnE z9?~LxaraEd>%r!k_TWpvEY+%~oyBws@)&KqN#)@k_wv{dFq;Rire~4bX{KnD7sXdbnOcG7aeS zAZ?E>fE9o*5Atk8-O`t(>Z%3T<(BH;SNU%Ao{$%5({NyZlWya&H!N4d6s`lAGX}k{ zlKYq6%eNyvXSU^L2s@~Ch-Dh?imY|kwVz*Z8&j0o0^((2;!})PJFcfQ?P8TaTNJ6N zU{dd^oXH(CYwMJz!Hv#Zl?PIU&4(mt7>>g4hi*`DZx?bu6ha5*MUOMkT4Pmp{r(w} z&BqNPk1GF22ObjID?3j;4;5EK>S4)&Z+7grJzO7ntWElf@E`^UPOZ~(#qKi)6V6Fd zA2vX+{UAn6($Ud!yKPLJy7P%VBpGt<-8^kQX$)4L)Fgr0pm&4xjJ_f#?uD zSMxTo`sbt!iNN=t6l7cTWf)S3 z?Ooi$IFe!g!2 zZma;ogJU_M6Tv+Wgj=M6fNPs!U;%eN1H`K!xB!s141|!8fl;9iRzcnuG5F;teB6Fk z5RWGSdv{RR8{nvZG-X8Vw}ZH%0kGa6YJ^W3Fb4d_D7`r0)H{}l{(UhvWfY^`Kb{-b z(KpSDcfew%y?)EdScwyFw0zJk8?`VgN?vx3Nd4MZt zk6h5KzP=W90qwabtCIQ$dtiW@p&kvx*RBQuBm-pA9-xqdoJjWHfp3*H#Oq63IWKaL zJ{jvndfb-25cHG#Q8D09G1&WA4RlJW003JJ|2G_NExmCY04Eq+7m*q`h`zcR!fyy$ zxdpAG`8{35O756y0$px%$c8)w_v+-NR^%3cEjNy#v-O*u6BEa{GGi2!$zw~hUC75+ zIllV9j&;!l$m`9V>`RC8AkXbGvYq^*cHf&#z`tPy?ah)<<95wI1Ilm-1rxYwiUEIX z*oh}_=8)OOFoF(3)%g_o#&YMDVs42zYl26g@RM~4+J-e$o@u6tL{z?HFz}v^-&5v> zyfpq5^1W%|_jx{uU4M_xEE#3@hV^zw@HT1B>OqI!rw~D%u3{7)#Fu4RF+l_=>!hSv zL?x#%Skx$0kBqunFVU5lR%UDjiZcPi2;|{>Ee#J}I*Zl_CXJ5C6o=O2h#x2D@UC61 zD{U{_Gxs1u#x9M;cO36@xC3z|Ld3rHY9tJ0^~q=A3p~2+1e}2Ex;(; zzH2xROjI5KD6=3nxA#Zf{?KTvV%CS>t_E7r0PXw<;F6)~FHoF(25e<7I-pchzn#tr z_Ij*B z58^2uk`nHlt+Ap46{5~xl6407J+aq!R4mw4Jq~JR>-s}ED&Ean+$zMI75>i)kXnB` zVlL#poA>u*R-9}@-up-Dlko|v_X>Oct8Mv)&yXxEY;fF-rRlNr9Xfp6S|%qgdb@+V zWbG(Wo^AzkhH5d{26BG#q@x5D$OEXOy&k0XD}BL}_I$NEmL6_=zy)=)To1ZObvT|F zz`Fwuw^P>}xJ!4|_Pbm#Aw{5^NE(`Z9<*4KV-$~MIQnT0y4@L$V2ISX!ffUdr&%rq zW&L>d_M)toM2`kt5_}aN(vtg5C!-=T549eECp?s(h^ml!5h)8B_Y;eYBsqZC_lj)E zrhAQ|YUO<)%#dGLEm^s;cb|wjY@8T>w^pTCY!?*B;gAu0WSO4T4dCD#K~|Jq{(zEt zK%tClo;0yh+X^SmI2ap!s*)a~-cOzQ(O_xB^@mZq4Vv1UL^y(j@b$l|YY|r~d!C=K5W;id|0a7a>SgtuK>Q;{>VLd5hIuv?F>6lp`UmSF z+~%-k>co|MDKjV`*(wZ zY>kGhy2=a8qyVp%&+zd4D4iU6UdMaMcJ&&DUXTM2HA(Mf3wAMk7E1j4Z#a~}{&byf zv3GhfMx|GKq7Wz9Gi$w1rl2kHrEaOR0H*;U#nO6R{>267qSjUUDxn2%emN>aV(pNF z)|tH%0Ldjg3YEq#_`s+zugUehW$Kj`-q7E=`w3uoj-f$p3xpR~(o(%Rl+I53-S6ZS zio<33FWmHND6<46pw8j9KND)ptUrxkNQ^lE<1yMycfh8?aD^BI+`s%r;Pg*`PQMTQEM z4b{CTnzJM#-#l6b8b8965k(vh-H0GwPQXgd7~}rTmk6i<5h%E)EscJHBOuq)Zt=Q{ zV|{h4UH1akf-e#fdg@eocom7_v{wqD>Wg4XSg?`?j3p>xz)GB?x zeX50B)I^0E*p7MPgS%Fi-Yrl|gt)-zT@$<1I)tO1D|Z|EJDX`Q z@20uH6)4Y5pw9HT+C!Vdl)c3J1p<4Mbbzx_(Zc=C=}K88VNMEb`0 zKC?sYvX=$r74ri13JBC4w}Ha#3mh*zC=c*=r|A5j`d$5fpuzU?ijz4U02B%Vp`>Wk z%B>Uti6Ibo1mRSEJ$ivQXkG*;X$~I$!xK=}q9muY11JBdyxEIqam5Z9Rkf+nAalg% zjGdS(BegD|E!lG2Zgx@N)*KdJA*oFpdcywxDZUW5^|x4cwzU6}jwd;<|sQ&>p1@5(khj=#lK6>rVJqCf%t$1Wrljn4LV zmTwS`7663WGn;kG7ySx!H+`p~kH8<$gOTXJ^<^euf6etn42%4Q`MyD2lgwMn5Q^y@ z9Z+-xW|Q9Tw`MPqNyAX2{=h>MrP&S;ty}{P2Pvl?9S_A`gj`@gR)MY{ER>2Gi{DXB2pl>WXTj zNKQdO<;c9M#z94`?jDoM=!5M z_})Y)nrRCz%Y+x!QL!RkZsYkQ_BZGV7fGScDMD%}4}T)-BbX`i?Q>A0TDOCx8tb85 z9AW$x0FW*tpo#=1SA7Rk(FuTrIntVoKXG-1{vmro-vF#s^27o5ORn6UEZ+kl62Zis zW#Y6_x6R`h?}${I-wm4!y_l76tT#oj8C3PJIsIjSL!UiwNQHHbxPvq~q}Inwg+vU> zT64|wv){m(EzC=GOV4hEe8ZN53JANeebtU*Uoz17v9hP)zoQSjx)VwfCXj2l(=;V{ zho0@MPJLbp^NxJJ2t+iZ`pI|C14IrI5fMM(!-e0jh9JwTnqve&tjHuKND_B#G{{$A zxE}mrU9$m{Z=T6ma6(bEA5f=VczPuItkL=UWQ|z*O;2tRLNKz)pn#*^NQm{U4pj7U zSz4SJW%JJ*yJ}lfH!?cZ$K>PF0>3#Ib1{cx9Lj&Uc}ix%_1@vG+e6b`LI)9XwXXY~ zuP4&LK2bPSlDV#M#PY>uwU^glOS^{tnGBTqkpln$hV6h+Pt7FLCU{qT(uS98mVFg* zrz~z;LjN!+d$cdI3|j-85P~6Ei|2x)ne*~$gfMsCtwGU9(Gcdt|9(=yAfZg)W6Qa$ z{4zWJvk~ZP1~GF~WnkcU&R^S-CMHVrEs}qo^a}>5@SE|!Tqys=O)ZDTrVv|qf6FJ2 z9Hn1_sSPkr4p_r$4{RxIRPmHF7G2Q@2?B zOE~ZD?8XrN6^3(SoowxRk(>_sc#*1CvQ}nyn#!cA{2$q2#hjbzfIkv)p$3G@6HDew zM1lW;T0MPit_A;^CPHO)E6iI@M0lNJVco6H054sdlg5B8qS)APRm3EjK3EP=4t!VJ zqOl7wNE@-@_~TLnzP9mGZ{Fh`$H5c~j(2fSZcV}J%{^5#B(<`78z?+w{bfi&PdDvn zn~AYnR8<;BXB0d?$?)9FU-t!0aXHoT}}erL!m zZWVNq8w$DTb~QTtPEtkcLUG4utWH(sMq%ep&zU$V8GZe_-}6i*^oG#m4tG9gG0Q_D ze&m}}q-gAGPgOOk`Dz+Y7J7u`u9(%*9QO|noeGOqJiw<9OBPci7#AZPUIL-@`F(g4 zik2tcT|lx57b{1ewpiEJezdg}40iZo)rVme@H~*=jub5`j}#%-YDEJd$&@{J%j;0C zpOFLLkCIv6VWeM!xZ&+HiHRubodG#!a!1*3ET{d~SPDr&f`bJUWmW~!R9|hr(Vu`b z#e*5)T&AJ#h`CVegiBP5)Dlsqar^UF(YKtvR&%Mg!y0>AUE%v~_qWDL9(8Na#2!r3 ze3N>IsACbj#VTaEH6f@uU&Z2($XXM_G{fb4#vUPh#7+N$oMaVpi9H#PLmYVQD%}~R zno7tbTUjkn_FPsot!)O2VRpG-x=f)TWzIs!HR2DReKC4bMIzO*;0@g4S8s?*=uH73 zE?~?4OoUfum-OLD6|W9Rer=C z-l^X{Bdxb&_rK!vH1=Q9XzW_e2f5EW23H?Dd5Be{b8>0!o-B;3d*>)cl-I$=IYfNyX9$sO?lYf+s`4u)r}fLV%@on(9}6*bHr2nOA_{HTCDG(37q>@8F_mxa26t zA!RZ?IItzeSajIJz`u~-eIn~A?)h;^P+UZH)bOnt8#4cJ8a*V;Zu7k(+wUulRwI7= zvOQ&tpYNZ34Z-K5vEo$mukCW8fU&tS`noJGRKBlh7 z6%E|Enu!RutE7}Vw85;hHCYCkavi)?)edOw%uPR*X0KmpU&g0br$d^2#dJ5ZQGO>x z%YHZ?*Wdf@)gG=lnOvS4Ak-57Lpy~jXEmE28yceShVt?FW$@BZo|_2Zih?cYGYd!( z_r+&jN<~8h|31Hc_FowlqE&TzFYnZ%2r%V%eVT3383v!U4m z2scjs>--wl4<1`MO%r-MW~u|#mUovC9bx&XGLFZNS^cy zN{Q;@7=}_bDOMJ1ulpP=$y>Q_VhESYwg!&AGMjE_pHfWChhExHlGvw8DWe?6r~plk z-IK5i9a~Z$!ccEl0+-^7URqLRJH8BC`%(MO>`BwF_COZ8Y;5y3JA#Ju>(+{iJhONo zTbHYGn&Eer*!b@OClh&cDK{y#&)_agsH137Xf9`=Ww#mDoLBala;AT@g&RXv^*a?C zy(D8;$ctvWMrcKqvhvngd$JKqtLS8-IYac}!5{i=1}$5k>m@w~()iTpt_a_3g|Uk^k$?5D>S@37Ud6X#sq1VPgBOkgc6%>F6& z=X7i{N)5D2552eKXuR>gHu~_0OL6oG>Nx_(xeS{_j-i2m$;ND)N5OEykLUyrwG71L z6*@9b9qC}D@0Cza(c44;?Bj{XZXq1|Q<-PJ2#uTsg(|uj`EEpcbCef3+L(=4tHpeAup}LLZiM&1zAFFveJB!4 zRie<01xjvdyKZhcN%OEb7BMb?yqh`vq zZ;6~ItWuE>@VhT0;?^e$E(sYT%ZXODJF(pO_PR7lD+Y&VY5#B%0|Lijo0;9*tuP~N zU2_7>A-|J2@T))(;6JUIo{-;B2i70R-8^N{_Lf zB#KR93!R;Breub{L(WWcx3o=ZV#}mhj@& zlkpl=xiDsKXGrN--(#?yk7N1Hq{ZZFv*4^LhF6iy(+*?nf;|sXf1G2RR#ozrX6MQs zhAsX%HREwM9{vKY@;!-bOI$_XDrA-b-Vu{x#t_s^@CeCBuJMTscNdyppF@c2NqM^* zpeJss^-WOa>8LqSX_jcgY>2u{}dxS3319?LYGS)pGn)(_K8O#X$_9V>Q z%L%_NS`3GM#lf34CA`2b$1mvc zg$XKM-x9SCF$8XWIBHssj%#Gx48@m#cp+wK91RrHIf{P8oq1!0w|r3viFS3F%Z^PI z`LAD+k+hs4WZ53MA~DSiKOKSbIdYlJG0SzF=W&-k^o%=0*c^j7YN-X^IVkRPz=yt=NvR)Vac|BU6ehQPC-HIv2H)U~NU`1auPy&nipw9g|rgOk9 z-J=Y$Q37@Pz+evqVanEA%ybIZpBYRet*4Y(^kPM?R)eZlMz1KGOtRpASV&Pcz(WfJ zRrZ)1OB0J-5fd0AO`Z%d1OILbh8-LF-CC7(XDvW{hWEkH5(WTJ4TJ{%Jz(=<^_%dv zkr5Go3+6sp>z_KVo7lLeO@|s{>{E25_ZNeU6t1UXS-o?ILeLz>BV^H*^zzYXAUMCBjr^GEMM9 zzX~ulNi-wM3189_^dj9tzEh)Y$baJgk~sLn=8xA=H6>nA>^=JY>sLBw0`M`v(>V=7 zm3w^ar^K_gBFg)_f!*dNp!K&Rnm;L2`3c5ejtVcENg4VF#$^+m#QmQe}(IG9D8fke?1e15Q* z^7jmLnCEV`?bu&zHz-r_r6+IGl+}J5$!S0(J`soVweQINl(3R{W~sI01s!lK^!4V= zgi2epbK!@Yvr2^$uZDDASzcFPrDoxN_S&WoH{GdHMMJ3&0rM2Lneo0%(TIxfPZheP z(HQSlj)%3JVN>ntaxt5+UroQb&yajT9&3-wdw2n{iu2Y`>Tzkmmn;HUVq(AfA^cr& z{B)xksY`34ALx8$m6mR~u_-qn`t%y>MHTG_Wn)@3r3ak_?bANy*ZCaAn-wP0h~VhI zExooQ@hpCTz%9Il3^#srqYK?+XqJVDu2SSir{F9Y~n2Pi)07k$~zs5 zkx+%YFYxg)bc-c2Dbke|&EKSS4L?SGb#p&nasNeXp0)07UbEmNVP1+zgdxQfYI}R) zD{)S_Q>Ib$LEa@biPovWYm@7^Qyvp*LX|O*l%WU}VP35goj207Mh^Pw6r~NmK<-=B z=dFlg(=Xx7R%Shq#ap~Tlqsc)UnEodv|p#}`i>7PYI9QJLDGFmpU>NW*NNIPaJtPH zB60uIWanRiI>UX7A@->?wYGKk$<@&;?ZbsGkz5mtcd9H-V(vVcm6!LR>wEGRvjWP& zgX<94VGrU~<6$!58Z6DtyKki7nFon22~BobXysNrFw4Kx5Z*;E;X+QEEBReVeeceR ze)`Q~%`TPixDy0p@b6gN^w-r|Ke9T=Ts8GjZ2=Q9QK-`CONK@ZQq_i*HLXGB>wj;l@aSVK;%8i{Ry$PbWdjGrpy<=Wu^iG}E99Bm{opt9E*o(W?dyvKKk&7a7{9nymg>Z;hRjR6YceG?_I7zCi zDu|qwA!bdk#KDcIg&eBMcu$Dmv_G|p7mV)1|HQU7xV+)ouVGqiyto!fbRt}>KD^<`(C*%2(L6t`K#{BP6N8I%~bS=!B4 z$BC`kf{!iD;B__P%)uj-nk?lO1~$u^exiQS>4UsK#9x2Jl_vz+sd9ykUqK=^ENfCs zc0ZC?=R969H0yW0F>nstlgiG}4J)C1{~)4`%U4*Sb%s&qagvb!vkIf3jqf1rJZM*C z;S>ec?n!(yI4;Ed)(E7d(%D7=I}mk=wyWbCv(aDvf2)tXxPE39e4H zYcl5zIbrX&?T8<#hR5NO=Ob*DP>sZpm*==~CLwFgJW(|1#HF@KCJiNhe9pekhKFzt zvTATY@3V^j_K^8QBbdif1WU>WjLJWA;4^<2!^Svxil@@X{yNibY7&hT1QbRv4?|j@ zB-Snh7JQP-SGrLA(*}pjMxChb<6BL2&zKP_pmdhF z%(3(b7^?w8#(m(;3WQh%rlz6HWtWE~cj92Kx9zf<14VJ<_iBUhrpQPI>m?4)E19v2 zIatrePjlR_l&a6|d~@Ai6ORxNj1w#dUJ@D2))Ch<=fBo;*dOJ z;x!&QOBugf(m5>%9j$oVj;hDq;nX0v`gSA96cu$;#CIjnws6Yi6SEZu_V6wF1PdLv zTFEbi^r4~CDPFPyi)bGZ)hRD5BaMpOki=WE#h7R4|HvnPfxMR-zG3lE+DC|OX)umGbjCR;;46;uvtB);~C8{ISIHPom6giNn!75`zjUc~xPP6PX(@4L#z!Ml00}PJiChX3@;2B5I@j%*CiQx`jNU1 zX9}4rHf^Tr&G+fVonMsW$GS>HIX7fjL#3BqY8T(9qdi_1M~)vhr*1j=$Q$&0p8-9_ zi7lCjKhk1$*k*N4*j1~uvth(8bUpGS$77>r?taIq08oXNtsl>X++G}jC}#r^fgcMf zg>W94x$UlHZXTRhB!U+orbc84wVBV$O>;N@R(c`?FS^s4EMM|!=o+|Z_{o|m{hY)Z zKTq;_&+W*b!Xc4uQX4g*m*KvDG5foiplq3eIA(aE zR{4x|<1Ur#ajIE**J-`srUUR$(5cP?^Osx(pMlOB)6>J;8sT9)d`Nml>Jd{ZWBQvF zY#H$w0#_|E$LZ33mr#v#<%nZswZL%6_<~cVwTs(LBN(29D8>ca|9Jt%o?z&@r!k>Z z$fn7jlI^j+gP1T1%_7RbQnOo%X-oZfGUUVtRXMOu#(OTf`YmAYSTB#tS2%wlKI z^=02?$*1*YApKw}pgp}qnvQ#MN^{LqDiQ%%+YHw}lh~F?x5IZJ{h|7Al1HghT9{VvbkyfHd7&UJlI{NK1Sf>0`&yv-(v#RL7bI|N_rn*$6 zd(pL~y#7{717A5{NviYrwIw>=U4b5v%r=i8KPZXgC$hkmvw9jJMImaNut-OSFOluW z>t$n=$#o2m6HQ;~RuNxNj!s4OI2fi8qc|FOLBAVU$!1}};!x`D4X%^Z$U6{DnK!zu zsl`Qx9vzNNr(}hvNVtww2Am2SpQ~`Nb*Nx zLGAs*;>2V-N-p*5FbeV5!*BSc&xp-1DjAuqI_{H-r}KbSM!8gp1`9ue|FULtmonm; z9$A5!Yy>v@kzo8oz(;RyEE>w~MnCrzp#+2VK=rk6BRx^Q(G8raR|Q3Xuzi$bk;~f3 z)H-;p32Q9-cst=oJ!5V~pCW;(@6Ba!_7tfcj&_-}?y)GO<1V?Y|JG3idgkw?3_uVF zV}tG=(|SIMe%m#Y2RqyVwSs?i>^IabHxA`$Ti_(2h$pBI&s)3KOpqZ&3=j}=*ntYt zX_^bUR)4%i(sPqM_XPvrqzuar^qhSD4rtK;+)fWj7S+itW`2%)>4lk#i`l%SC0^j< zWgfrE_FW!bbS~Deno(87fE3T_rbuP8pPp+nF>S+%x=Y&ajkpDnd8z@J>4(Dtpu50N zwyrJ>MK!dd{wW!@{}w0vQYYevo!r7FdpUSJovwBgHtsD-RmCg~ktVD6Cil!hUBCB( zO8hpKCENAoO@3B=RSY zR_9nC96`XR4__UIO&9<6H>rW@r)s{q_&jVm<B`VJ%1IFw@A4??N$YR7pXWJ5Nee%+7N~{OUZ-Z557uWzK=dtFQaGY1$%^+avjlvzWMQggtBAoQnndC*bT15GNlR2Pbs%*!u@k(*CmmB5SFW6@z-{EAdX1S@q zVyKceVC7i7IR5D?rpVbaZZ)Pu>h0LwU)1S_ZWX;XeZF zUxj?9g{lVBwIj+)Or$6L78IDaef1YBFK@I+v`C#U?`{u;S0esHo^D8~U90#XA4bQw zULm)cTd8%F+JVPwZFi#UeP^!D-`FD~vc1FC$%w`C}@ZLUP5~SSIJh@a)+Rp73Ar5~B$BB`fSRl+7;#RUp1K1N~Sj;k zCYyR(qJo~W0BfL9?Y3o*MU4j9w(G#lY&*Xv9Us#K%Hfkkk3{D^3-C54we~gje{gLj ze(PwD(cz)OnXGqkwWU z-H8^Pd*}m|kEtm|?|7%E|9rKNfa_ta?2;6Q5Xd- z2iwnfvm01ICly2LE)prmH<;?HPFlIMBLrH^+gk~BSZ^F0-#F-rv>9vy){=z1o0 z>p!$Y!0^^c)fKz_wAa@n8gMw&=P=O8>3Le#)8)>|Y4F2T#v>4N(jMJ;ao7xn$|1pD zYyT0u>I>P9Iy%O@vYX|?hqEwkNV>Jh9S!^Y`4zh*NZ_h-gqa~qC-}yXSM0L_< zkK<{%XSz`;5VW6jrLp5%wYu1hWeU;z(>DfNdYU{Rg;(%UsimRC+9HJ)ruL(OGR+^D zr`a>hU>uoF|39kUGAND)>Kep?6C^+&=-}?|0fG(?Jh;2NyF0-L4IbQ`;O_1goZ#-T z{k*&Hx4T`;{Fv^knkr6TIp^Hlp0DqM#*gQlM7I9{^B4fD9SeN3UVpq8Jr0)p7yE7? zUE2Y8R=_98Abc3_5&z@*2waGs=D$4!TucriIiBW+;SbTgj1j0U&gAA5#y?i1D%+MH zc!JLCiY9ERVo;t0D=F)I=S>>!G3zY-jrgtW{y0k)Qympx@fTpJqa${p&r*5~79VKb zvt}4Je|P_Ak6m5aJ68qy)BDX?J<3@o<0J+7DTs*1kX4Vw*E`_(!lMh*`KAl0&1~mF5&(=W~5uhErQdV}S)J@_}YAH1vqygqpdT4EDu~MqLsE4byLjM9QZME4QSsnALK~}p_RK1;((I{y7QiZ z$^ZZ!JG$oz;*)(IE!0F}i0Lq(k#Q%qlga-kl%S3IO`8VpT_i0q0S6YPVmMikj(V6a zgX~C|>U7o928qoEzie%Au(Z1X^k*A!8!JiXJDtUL!Y}NfiH6;cA!A>zew7Gj!Go(A z3rQp4_I`#>t4@=+iUGx681XpAr=Gcs zoRrCc5_cTllvg@R7g13E0Z!b3g(okXEZ{)%L~~bv2=D$|m;;ZHTB^Tl7{ugDuxMU* zu;-Bh`sVS0`uvZ}9rG4Uq)Tzk;aX4!DcI+h;vh3=*gv-*2E&bx43YRl%LZ*KR45!; z_tQ2v5k?*8vG7$8`=l81OazhA$v$l}N`VUVvspdqUTu6Sn_3o*l-eK{q(ut8Pm_$N zI?0}o-5n^DZuAPLeMYs1gCH-J`IFXVseSiRqNqHD4_03gRLvBIXzkMoscAV;J4E4$|RTh7#z2aI``e?okQSa=Kqs*NGRwUtm?c0sF%u z?EAdIJmq-7rG48ttFwHJH_&%yZuIgF1TZ`QxD7O&c}QR1N8Jh`YUC}1aC9{NaXLW- zgs5{^zf}{LWx7;P-qrD!PylN{`b(*E8KPS<^l+j)V;n-jus#%?=Ly%Bip$*yCG!i5}=Htsq ztFi+woy`084Y(mt(|*J{-A6P5e9`m4Y8PG6f{{SaQ$NSR*1H+rw-Zxv;lZ=P83{KL z65*J>AG%;MgoCe?z9MJQd&B+uFIV*EO*?;n78^UmHy{2|n=j%fb!a^1{@b6$7+{3B z99H$Dhtcz;hUW7Vq*}SpLU--o7+S7GcQ<`9OML#3+3I~Ze%c!BZwr+2PwI)+!c;>` zVgAI17$_Pz>JjoGFjQaw=k0w0V^vwKBfXH)I*CdSXV|)^xVSEAc6oPhR-WJTo2i=h z>y0$JTDUOT$j^96WXuB9X;K+P4bdn(kSwW;d5*p@5=@~;v5=fnab5g)-Yl*$;}Di} zO4{7;++!52bCHOA?yQA#iiRCXhXTpFoj&lqCmN^V)j9c}@haO%8uC5LAXbW01Kh8f z{U(}YBV)nob^+tqu%8*98&4aLNl66W2wgq4XwSC2sDoKIgG#-~*py4W84Dju26d|q z4r7)+G<9AMkwhxpV9QXBD*y8jW(Z*TiXFrdRG&izga2q1LvF<`yK7oR8mwW89cMZM z{#W%n$A$Aliy26B8RvJOY=!{&&@8(rnmfyn@0tIefrFmXJVMm>;P2fd{|as=mE7!+BK&wzz?+q#&CJypZJ0(G}V|>l|9I9Nu#&?y4l@ z6#QD`tY@%i=kV5M#tUKWZ)=qO90K-_do);1`@y|-uzsr!CRWvFc0!4fpQYSiFOR6 z3gXfAU!bQjN~R6INvdaPza_;&z+$$6{>gY;GW6B{JKI0UgSsl7U#m`HTNj1L& zup;Km@^^L|o%bY#oYy1EN6M2txiux2rpEGBe)<_kP=f?oDB2B~q+FC*o@AeIq?8?I zykInxq@U$y59_08`VnbuB4-J?3%j;U@X|w%)aAeK&l~XRF|&N7|ByhDR^6$ppJXth zttYj~1j<^Gf{#oUU<5b64kuH3JbzPE`5b=2vi>Ff+_51|vDxHTLVmCebNfv&Y_`L) zbQq%-@`6n70C!vkwEW=-&fX7{Bcy5p8zpy9%HX^A#qL0s_34D)x=z1Q;AFlI?Z%b_ z*#y=FQ&{HWYbK&&p`~YSo4gw6S?OkuPYB6Nc?3ll$bD6v_7TVvr6ii@=9XtI3wbZpq9^Z+{?yazhq~2ps7J3M(9aj@sBTSKOZkwSD>-wOvet zgy%CjirEUBp}!q|E*fInldkUbp^BtXrHG)ipuPTMlG=oAVYtw6l2njRF&ip{QuckN z9t?xyA0-OgX>;yFZjHT{nv2rG!^Guk8G50NY$44$eE82jZYKO;Jxuta_(Ma}lH%H> z9<{)Ct4rtdyb;=B?WrmvJo^Im2vIc4e z1;D<^-GKHV=(K<|4xiQs=ZG*_=K=HL191FjRm0zwL`n&2*mNVx5T=)z_sO(as~4S| zl_H1$W+4trcgkeZcBEE^xKTkbwuEC9jTzduqHjK~{;^>^fYRVU*MzX~n={y79neBm zHe){OuWrhLT!gnmlAASQ<rb7avs@ zy%&vCjdItQ8R3vK-{8@Z(EzjC^hi`d5p^?2(x#WTc|(de`_~Q>IC{{`Iwu1+0dPDG z0Bfvu7K&=XBAB1U(!lt4rEJ0JG@0A}=)Cf;*MW8yj=GJBr3C1MF513SHOF+y7BXUW zN}fqXwOZb(w`phF9z-y7b#dH^A76>_S{%OxsdnPDst0?*UywF|G9F=0S3|YHICDly zBJe6)-&hqp)$lSuuKj(bQ?o~Q3MWJO5)p*?&R|dZh`7tp^Dheq*5`DH6~-l+d=eG3 z|I&ShoEQrCX@WtX7TJN3?B2)f+piHs{12f^cg|y!WRXIKE$V5c6hldrr!aS4;R@2@ zykHerB@;yC^LUJ2r?fXi@6t0VtUtZLeQi2dtAa;S_ux#cKTT>$U=`s75LpvpPdyvdqwCPyi>f16Z~>i`@)w zB=1|7MTe()+MRaE&HUHsavmtzcW)QC8UD_@B}+xUW=I?L!Zhqax-@PU!?+Ew({aG> zMB?W@?w;%x?e6}rl|1M*7{LAXm~fMAIB~N~i$GXYSYciM zd%+%5mQjq+7izi;MH3>PNQJLtNoFu_#g0EaZp@XXs^B}yZ#i1(xc)Fbct#{`E7E86 zld`?$k2)CdoDNiRpKz^DMjDC{N;8#R4m}^}jGKjj&XPqLPdSiC>(pTYk*lij5YjMZ zhh^U_wdnHXXfZ;FWJ|3*YC(Ym*0rWYH2=Aee-$uO(a(aKA&wTnuH(zW1td2yOfPLaf8 znkmgWWl_1=kGF^s!M-uzVSUG3=ru4Iu?OyOGqKZ$2|G+JZD#08$-xAAeU^EDd@CC~ z>t!l(QgJ0JWbL0Z)@I)}IPMz`@Lej;9AAst&y6o#RXXg%I$4e_ieT(&wl>roMQh4b zPU3Ll^+Osx_kK$c3foe)Fz! zfHF{4_=SK5;44fAfavYCbpU8)gV4p$llspAlS*4|U6TIiKr1QuUc=uvA_{1-fUzvD z2QDy631zhgfhwj{i*DXkAp#VMTg$i39Dw`%%qU0r#v}IY+md#P#SeOTpoy#i>RDU~ z8&19Xe5?x$ezZs@mdKJ1fWQj|%+IQ0RT9U+qqvc%b*B%Vz?EDVF1VfOodJq>>jyxv zRZh`<$GeCGqGqV#UdN(mAX+fMUJPxhA5?o6Eb(@YK7)E0gu)dyIt>11%(3gTQS_=2 z*Q#tHVGM^~4TVR1v4*-@)q9N)TqNqn42!lu$SS#iAL$qONY7Vm-CBpKFKL1kH9uA* zA7YFDDQ=psf-D0eje%1v4KE<2GYF@nEjJu09NWcCRY>lob4SF6t49$6i*WI0Ot&}n zFYueCwVH)ON^tp<)vC#stR~ae@A2>>3SRyqyq`u&z8rhSc9>pz`uU2B{vp=UEF(g~ zy(`Oc>q|hosqdi|;DE`k2ue_Z)Q3JTu!9jsSd3Z~;WJ>*U9p28g@$#%^vMQN28K2o|==H`D@gSv_f-nZd7bF01= zl>w`p_Dj%+#M$btLv3H%Zp=W_3+Nv~(`?^`;SuS7hOQL}=Pf{kl*-+|oZxsTR9y%E z-fYg_0v~U;?|nzur%WLT%j}+e`dmQGuJjba5YefU0_B$C8>{Y^r@iPV4>4IXEFP*~ zr15r8^tbh5g1b-u^Io&a=#9%0yV6v0VU0MT9DwR%B=WGTDSbM_xHR*O|D}mam{-io@>25 z!i&rHZ#Mtg_F2WfBcx&D=fJA3vCW7Rb?8UVig$z_aX6hc8Z`sPGCcm(TicGTqNu2Q+Ybj9- z2;|3S*d9nceSI=+TTD|}AMsPqro)$?pa;VphvWp4V++!!oR=X9UvKJ<^YLU&jYMucvXx?*|d* zFRcjw^!0kU#w18lJ@g{N|?MEM`q&G2sbo;AGdUfcW^q0s?$T#wqrEPSOSFB!el{Y#x06{NkVUcITDp_qRpc={0AGYn@Cvvf_Ti{`J<4 zxUQjLwYK03uv>$oVp*LYNpl~jO5~5y_n7hImMx!!`jKIltVBamer2xYVvuKE7ZG*1 z2Tlrj*4Qmb{sS8w{wJ?d3=g{+7z0&vZ3o>jID8%>+v!G|%9py;55%S&;ephZ;vJ|A z4%EmoSlz5^JeL>78fOM-qzCPW<*#n(n{-zbwS7jB@}IuWc!sDfpI7+~z>;{rIuWl) zpsl-2yRUXsK4fZ!$eeDEUGmCvz;A!=}9oRIhOmu z8gVFp79*9H@tML}e+zHkC0O8_stQ46Ii$=@Ti*oj2= zp&b(PN~HfL|Dd<^->+gT6T?%VFq;f7Al#|2);a>sxDKce_yy8$G z@iIb5!=`n0%(%YjA7s|X1z?Z*Xolp6+1=B%SrzdbeOIpA$m-?g=w-Ek(oENo1Pa<= zYnk){3RjEjcYrdqaamNgW0 zz{KrihDJ!z6j)*0alVkCWly2W={V6iZm$emw69T0% z%vgL;jjA#RG3q+>1Zh{_bcdCON#7xFSJZp_q}?G)&|Z)ZrL>$#XiFXjS&!EyQhvki zU%XIn5%_=1S(_Naj%>;%)meBS`F-5tH^)DAr$vF7MX@^dK8~ zg}$K-$!GCD>$Od4W{STmeojZB>m6z24VcU{IgK`Y&=4ph;m8J$OWU~Vhz|uf&_1pG zo`!>eF7ibzQN=HYl%!|U63-i{Gt%?{Sm)Cpg&}rAHsX5*rde%XV+qZ@t=ZtS!#wf@ z^<1iT?LS>OY{>#8iD3es*iE>MHc>x@YL>ku5JlS&50bj{^i_-$2H`?id;g?iXPrX{ z+fv0mmLf9Y0rp#{L701lp2*-qgBcBkH>;dcRZ>vlg2Bae zTLj>3=!%4MLOi(ccC_57_cfex?I#?IQ~*8wm9^k#)}Ib#wF}l7@)IPd>_Z4$F6#AB4EnNO6PrQ6}GuFPKZEr!rBE5o{YXd z$5yx0j3+28Jm87t(P&+cmoV@5QN=ckxKEO%o>2)zfPh;@T(j4RcHDUE?$q0O>>&%} zSF+n7He6JnEE8Biza1H6cTl<7X#Z#;yz{jB1_xjp5%iy`5{?(F$cu!j7EAL<6WXIlX(|}2J)^;&Ct@%TNjF|*Bb9?xAR{VmwFx}UZV1_}>zRSsw zq)Gm(6MDDOk>JX^f0H#3o+DJ-66{6IQ*bNo)1%99itg zo{nj1;lA>!3!NNj{JVzbfPMO-Lxr*l_(o?sd@dS4x%Gf(Lx0mluEh}Z>54q=VMnl-QIDBfz}EA&gZhx-^{32iBj`ujJprLv&||u$z%HOBqV1M|I&*|IYULtZS+aSb8Qs%dR4m{*J4&w_HHwcCnY*I z#Z1=3q07jx)}*|th)|NVNKB7XwTK$OJ;^k#kMQ3V!k$AG)>(4;ZryoAPOP`z+T8^O8 z4t!AZu{XjMxozRN80Vv6PXPyt(HPIi)j#N=&7D!d#&>OUPQB|vuJG-5MBLuIOeLT7 zyvA`8C`cQO$IG>)j2`d)jjNI{$INXF23T`2WE5*1%9maVecnLNX8WsLH(PtI+|o3-+@ z45DOs1eWLkB3W?!ka?1$2T^|VbKT-A`tBC&nZh?YOwOi~UbUE$=ZSZIkM5-OYl9sG zl1D|*sGWE-o!2+fu{~A~tTDAT?8cs4P;bGX*ib1_S&@dRk`e}K(}U!Sj)Rz6cIMov z63P~ai1AT}@stF;mb7C&Vkd6^wtycVpmWy=3p9Lo* zRy_kY_HSfKWegB}NAR)-w<%gp#^b*PQ)_x>Q>0YXHn|HjQu^4MOc#gwPwTymqE^Iy zFDCbIjv9RKm=4$UBp0H|g=W7gzL~Tu`oyzSyHNx=Q*gur`%aqsiv zc9O`o)ew@w-p2%ArqYU%UyW}F^`n1H%~c@T5%GoHAu7w2qu*^=e>Q@9)uQ+d!QI{{ zJU?0uib(Dod2GJfd6S;WZRmhXZfzRo5=|qgmi20iqArfZ4(pV1eiq2Fdw20VT z!#a`XE~4#B6U&4SzrK2dNMRSn-XOr|#nHRjYD` zaJ(9zmxHQQN^F>;+I>98>tE%1v;TRC+jyM^gCLT;j+jpj?Ks;3P7V z)w6+yMfn5nHoG2)bxqGf^}7fyEks0YI?>wBEsj!zm_EdVBz0v}r1B@7?XE zE>f%#@Ba}Zew-A&|4j;m{_nRRB@bhM(ZD**vdXHnw#fN1qivo%0VTr%?K}Z2R<spl%k?5b(n3fJh^4FmfuqiNA6Q&TKc(`YxyC2JiHy;eHK zGzElpF(=*9VKj$(cC9(U%GSX(DdpzUAmw%P!zdY9LK#gz@Mn^z6ahwY)|QZxmS&PJ z?|DNY^1{+QITx(fUUkWyk?g=$U@#A`&o;_-u{Taj)HLq|w_%H>-W|LS1_tpLrm4p* zC$TsAnYQ;i7p1jY;0l(-v`*47gRdPob67;jhx0RAE{L`Nvdv-?lcS{UJ@XXN-i&`% zdJt*4uoz#7K~{u+0k1ZK{-}~VM3%iU$v2zP%YXU3rZtAcQtcC=%3**lXOghXDI>Y4 zeczs+)8m7P?0^NV;)oS%Z4;U)eBdKv_^q;aT}gxw52B?KxZK13y7DR0w82G?F(9}@KxOXT5&iy47S6)IJUsIIO&QI{~K2fk)L1GR>u%? zjZs*ympfBWWa1-dKS`6h1{K4wLUoM&OT%j4b7V-^NA#U+LYaeaKeTU$!4T(Big}s} zc>yoq>DfRdRvg1DdjYDLt4Scil6;WQ0p@oSo`8_F2*nI|BfP0E;K75hi$LSn6gPt* zhRWLa|GY6EByEd{j-Y%!%^Ksef z3jmM#iQ~6Gc)U_V!NRPG>jIV%Tc6@Qc!)rq#5js(avGz?h_BZ@3)J5=tCi}V-E8|(>7yElILvHIRdSt5Un*t9I?!soaECt zGO$~k8>54sGYIN)%I~?@F>DXnU?XHg)_f%lOi|E|Fecu-Ka>XAg5AhRLDwJl|i7XVz zq^xhJnQjqXP%&fQ76tb};|Fp0XvhmEyNE(?kmaA7o_GyvWh?cj*Buf`3 zt(U3#S*VIruNf2DBtcG&FicZA{M*^sqQLRHhx7aokNHwTNwq36t->k3yCY7~z--0( zB2!3~?Tm~Z$XY>fDO`$&of=MQAZfdykGzeYtu^JRsui9N=g80yB6&V#fjmg=wsfIU zkJ0trDz7+*u)9bI3yXm#Q0jq$60;UH7vd`wj4z!)*~iA8Q#MHWxR+$`mx-xRsm*y9 zhSfBJ<+DTF_nAy`jC^0j?2{ii%EM^dk_6VM!gAVmL^=2cAGQ3g`ZL-gTq&A zU&7C(8Sm1vT}Y==qDB-{6uh)#1*fy^c)`NqpWTl1h2pc|3QYJ#dl)t)15ywTq*zP7 zmig0+Tzy()TGC6&vl~fh-+uZm^g#0Qc|?^z`7@>ecS14g@&#zxBP1CR0|+m-P+Te> z_xc}8od56Io%!fQ|3jA@s*9A7Vco2_9sPEG7>?bLpz$aM@X+Xof0T7O=JLaBZb&2> zy$YM{dnxMY*IeNp;UmEkcmWkds=BsAZJ$4$WpnR8V*o=4KNP6K7DW-tq9P5=#AyP} z^7+#dn=)hz_pasf_tDG0A}QtmM4sUww=tQ7@2J}mTqKYYX;-1nK(GqnhOPou@w|K) zK=qs6g#Z7Aj#@E=ck><7%U3aU!pFAfQ=&Q#SxXpv+UPG`@U_zEKgZ=0>Asb+DFHxX zw*w|Qf@zZtQTyjzWQvtFkC~C@o@6UqUj_$Bd`{A%s@#wN2-g1#ycpdfevjcCKDlui z9{Xq3pcd01dfM0+Y(b`kh?Sf>6AgjT&W!!GC$#zdY8&6!vx`_bqq%)$nw*QJ1wa^>Fz==H7{n@nY`AB|h38ZgX@5yL9aZ zDCL^bYxbK_)tOHtn0{Pa4WTP7Jfi*o9=!obfKUT1Sf6N+dT~CZx))Jy&f8vtvAmW zC|c6$QsoV?HmeQcRWGt}%zaj)+@JI7Zdfoy-D^*3EBaE5g#|rb2n#b-23qd`NowOg z+gxMIV-98Y*uZHz9fhw52DE*yK2T%Y7SDn7O$#e2QJaHZr1P5s(7Rgc&`GfC^)0`C1&m{1B*re4Ln5zkq6U|?;$E`=L*zP=a=0Z&!@YT zmz;E`H&~UF>i}EhDz>{UBLG6EuW8eH_>EvuczZqZTy526&cAtw2;nq2<=hXYwjEjH ziq@p(nTeMyx9{ETe606`r?l=p`=6JY1iN~MTjl)+)WBfMkNSv9eg2;i<1t7XKzg`$ z))yg^A2D3Ph|gFoY*ttc7>N8!6d*k*e-TkA0u~tNT7=OQ%F)&t2A{Txd&w+imr^t1 z^`E8^wI%l+noV}h^T45AnzP{)sf}Py)a4RTiqc$D9m8j_dlcqh)!pmy3xW{pB*Knv z`!9ZM9i8%|M%p7a{US>+Y|`Kdi*;8o=;Z~YgE%mZxWjfUj9A-?LoBok-*+hYF!V3M zz(5<=@Kk!|g00SEeXo*+AkuCW3oC*D?N_I``1OtJU!kJkGG6 zEl7Dj`i2*;9q_kp`bZIYB{$rn#|g&#c~7YdBY26Q<`9xF9?T4CJsXxcC(!u~ot@Ym zxA*C9F(Q7VnZZNgS3!y!A>LF@I6$WsrX?Cp5ZKIcc^uc5NLx=sjP(B5MG!%DyYwu`fq~es5d&*StYfNJ ziDJ#5(sWT(xxCV%Ep2pF&JcMwqJaT!L&I?iFt~Csec0s(J8#7BFcP>NzxQ%5#-Q4X z+5B9Wm}KpyG&$G+isj^n7b4&DFtOYD`rvlvxKH!?@B1+3nV9%-4b-8f zQQDfpZ!%!zJLXT@fx)s@XM?4x?4J|TuVF652^jL|OjMhTJI-3cSu7@lWXTn0xsa!w z(Ix99q^yTK8({+u1t-;h6hYeAZZ*^EMxxSp&kwRa)#`UZpoO+iH8= zQB~6l!&d2RFY=G-lU>!9c%Blo56JAjs<4wpguWst5>R%q7kA@YT6KOf_o)BU zdbrP0yYatXfF6FG+qna6UtRV-VUn5}uias4d41D`oqa9Kv5AGHwquF0MK6{cF&1t; z1K}5pA)Twu)XrUM&4K&Q_Ys^AQfhh+J-wk&+1LDjH-FyqA|{?&O8K%b9Woa>5h|CS z1W_@uUV{jST((LbqGRm3mij!)A#45-!!Bv*{|p>0v8<@5?Zb?yrgA~1jpq_>i!tvq z0`Eu3ol!M|d%2o~5h%-wc>ywieZfnR7zAv0k@Q|UG0Ffqj1%)5IpQK*(picpbB?$) z+a1Inf#UO4o5KLBPNA;hgK{ym1QF|*-A~d9UhL*Ee!B({;xJd>Et);C^>0m#xC?1L zoS0A$g_ttlm3kY|>tcVIKzSGpLuZ=}3MbfQC(_h4Tk)d}tiu~CrReXDb>ef0_Ss!bD=Lw7LWxDW&_EXI^{Y}6=%NSZK z+eeqR2lrY-G}g3`En{w_Cc{~xclZc~aG$uoh3UcfJ5HomAbg?U5h6c zh)50+W1o=f_=)}%C0%&BU%%17xh7?!Q6f;%x5IC@;b`Zsc`DzGD~iY*-H+0weEZT< z^1-P4I$BUR_IjV&?J&TgS5@!~c($}Eq5sD)$&aj1OE6myDEWDq=XlbX z-RHJ_ni%K5Te~h^HT890zpY!UaUyoAL$hr^^Bh}mcTrd$Ymaq5d)sV3=|Av2er9ev z)PfHsqVw6ZaeLmHy8hI{zVW>&YDb<2X^_}~jB1ce-_TlcU~s|6a2v54A^>ki71uX6 zCjq`&Kta_C8Xk5abQ|O00<$*iHNZMw%Lzl$TlQG(-uLxT)oV8v|2)VKvL5<^#@sHrp3-0^Trlib&+4&nd zMs$Zle|&{gzIAq9)N{R^J-fy7WmtoD>oQr0VdlC15$~mMy^8pCKF{olA>?9e?z1EP z_e1y@yKW@&VSvC1Y(at2XtP5}YSvzEA|*Oz~2 zzYxEXSu7EWH5@WHd3usLdd`ilY>t`b!_Y5wI4;?>k=;D?`fy!mE|e^1wWxK-^yz!p zE>tq_SJK48JPT3cn$|mIglVvB0&KNY15+cq4_cQU43E=wiro1c0ERJ8rGn!B9@C)N z=MB%MirK~HwvA?+`|HM6=Rr!Xs@Ahn;q|L5vvKqTE}!e#RDpAX)ITTHqczXj+-rMA zF1^fFd^+HAttkF%2ky1MY05Q~ZVaBvgTEH};jO$RbDQoE!4>QNB^#RH+oEcR9SV6~ z2ebv}FWQ}Z5)WD2I(7T|1jIM{Rqsc!$(8H|CqMPMp?Tu}eo6mC?TsWk0HM$_Fq?My zq=1XK@8cZNFD^V4FDKpk9mV{|LJnHX!=-V-~JyV=5@DeL?x4P@Tl(oN@8xEsLb-me#DCsAjby z%{xRgF`xE>KZ+Qo)9;KPzhv_Qh(2%VaNdWe_B20d(-}2e9`nWO;X4zffsrL=$`&d^ zPAv9OZ<(iGk9G8O!A(d+?{@^7k`q3EN=r}75HS$<$MRF}*E@nP@q>PDcwKKC<>JHE z8O-0|1wa^iQiyH6_<#Ma$7lZL|HR22`j`8jJ7t3nq3EN(Rn3$1Ek4NNP0wzl)}sH4 z02}9jk9FKz1wTJe*e#dZHL9DRZtp$xzOT~n4lluF*+MN2L=!*i;Jx6TmRj6!uTj5q zhF(S>fx#8sD=vvk)xM}!#e{b!OEFLT(DtLTj8?98!so!ie6JPo+?)3+EQ~rYZ>|H) z=zjK$yo|4eoGJmoVdzPNf?}TxZ7G@U`>CQ4WYY|@`Nx>jjm9QqO6p`pvkZD1+8x3y z9yHW4=Pd8<;MIMte9tY+VqzS2_`Buyc6BvG_pYEM(F~$tO&crzQk2W|V7hRW-(i>| zQjpopf>e-eXU5z;`|)&fy2JLLWytTgC=xD|v--Mrz4JrzudJ&lkiD_74yQG#w4n@f zky(RE>2#TcQPs9&A}iKPe7#@8hAv~&g|CSxc}gDdiVt;Ir&mfXRzJ8AyW#v{Q2@Ni zvfBSTLERmJ+L1n_Ty}>l;lViYzgR?bqIX>kbOoLvJ-c9eR%PpdO%yh^wvo`|{6*ga zEV%O@7fLx#4Coe1HWpbniwzO(h~-zty*v>5Plx5Hi>0birQA!BOdvR7akFlCDf0V5 zqK#&w9+$V^PI_$J1ACpE)K9;D_!q`kPY$r}hqfQ+ubQj4K$V-GTod|tezp#>l(`v!+*(NHI->iNvy*}2zX_-gx9lc}MYFr%eZ#{L`5tW+ zorByB75*vu6ROl~YlNJrY4&asceG$H3Z86KHuK*Ep%5ZUJM>&o&z;pVih{6};g^q} zd%gZ}wy1I)^J1g0^zaEHX7>)c)^ykBakOpf(i7uBRO%a`vMnc~5jls8`D#9H@DgcJrX6)%93s-W#6n^VEyt-V9q!)-<|i}# zT8#XL0TwlUU{9rd4cOgR3$zHr)-0Gc(v&A+id20Nb zd5&I%YPT+0>o=co{smWl+5`*S1dH>S35FbKaFId&Mwp0AjjJyl} zNQK62Bx3e6+Q5B*(&(D*t3g13`5jMH!~>4^(O4qJFMszA&H~O%s_Q5eOo8dftflJ} z{&th|mzx|ycBH%}DsEgdshMdzQ^cq#Da-`EUMz~);3vKdxr1Z#Ws%?3P{d&yjEE4y zf~nYzg~j-WGzL9r;+b%gA3w7HWViS>Gm~Jw(v#kz@^B4r!@`N;kY*u-k!n@KQNjI| zsBGmf9aiwT+U$IS+`FfgA?OKTZZkTel-7=wW_oe)|0~F}ihn!qnwpwJHZYYA<1w=I z4y=Yl!LKn4UHL@56!Xe;eq2L{(v^gsVTh0P+rkgoByIRJn+R3b-1B{f3c*H-b5BN9 z+gq#fsa|v>6Y06}f=d4uV&~_%K#h2}$#%X0!ruzecR{4m=P@(9*iH#G2V)@9$nb;1 zfh{~`sPv2aR39<;P%*y|;miit6V}bOKil6m#HiGPXLPxf`@8)YO{)VJY5%u$qNC#j z-xN;1{cD1Hc@iVOLYGw0&WQ;x%UgDLHz0C}@;Qw1y|TeruGPXCF3w8apb_9#D_rpP@1RB(9)7nMj@!MgV14d`;b~86+cHHmbYRV6UTp}|N*)QeEnv>1n zN&hBms1#(IMc^E>X091MnU8(gX<$1*%7_|~Hyj<zqjgx!eXj5bVD=Mf$# zmU-=`o&SmAOw&MBmtWdS?^4_`w$7=peLYB^=f1t>SMh^p4~@Cyn(yug&vBpuPmCHC z)d;$IEuDx{1XU~tuX?z{IVYsqLQ&SxtFxT^cKrc$?7CWZ|06a{3g0h7;uS&mw&y7N z>CmQcihDvRuAk%YNl8o-DJMZ!-*bP9rJ1Dg3S3dO4BoU*m`k+$ooQ#k^qCBA2?Q$_ zACiq;d|C2kMX>6;{6}}|e;o}n8noRx@$rDhK29Yg z%y{r{f$^Rc3ycM^6vkG>66=O%O3B`(UEAN=*-5@u!z;fKJosd7wc&cqF7b~!xWqYM zRG4QX%h)2Ktj*Q*)v&StmdOSeYT$@#{A;x5YzsCq&@Xfl`M;=o3#c}uW@|VJ?(SZ^ z4G`SjogxK_OOfJk1%gA7QlJ!<;*_E-F2UX1-Cc^ypWbi1_r3qKSjk%CBoE~5GqY#U z%sB&Eg+DX05tRtAAc)}&h~Zmg32uEZ$pD(eoKhiLcfhV?(;-YJy-z25PRQrw)cC2l zreY^t+;3p@@#aLB$;r-?r1HTqIbe332x!%T1_MXt2vOL zW~;DQk>cB$I%M(VG?1~`>1?iPX|U>8d^r`_Lnlm(Eq)2NYx7;sru1uYb0p9ObyNN@ zcq7z6*%>6Y(mq5b$7!PX%sK+GAkY#(*4z6QIGSgCxte6Em%mmWdPik?Srd6?Fcx}t zO0eqHTXnwrH2(Ox>5VX;{C&?wYiK;n%ftt8P4Ry(8-4d>B(G-rwUc~>2usgST9CW0T&+6QWZ5_2N%Ko);i#m#s=~mAj!MMVW|zn+v`n6I2o~FAhHH3L2jmWO zJs~@*&G#(v`swCnr)SpqCPKb~u0uK1AKh;Q7gVsW;j*_-?N%_)yxruI5Q?=S5QLpU z;QXVW2Jf?NxKje+fioecr>ild)edzvF2`Wodq1>e#OHnLvMO-O90QK#)zA8?M;N@B zRfUr!ykAL;?cHn&lrwmz1tfUmrmY$<=27K!STh=cop$#n>vqQJ_@j7w!9fv+;IE4q zUCqeD*c&tJGejNWo~@?;A5=juI!D3V_j4vBE7r-}m8&7nxifPJ>7U}O@UM-5CJ0kVEZNMiISUW=@1?W~7a5D$z_IF6(|6zXc zXR31ZdN-i^6qU@!5OhA|ISp=CG^Q>Q^8@T?p6(HLTem0|M5gHB*JKX(AYz#9JH-*J z6dBhr*`A&OD|`*;1tN-i9NE=Q@3Dn|-{YdwC$dOmX&F3$E?ilc$hU|(W~Nl$80l{c z#$A`#&qAw@S27}GMScyGU8PYNA9TGep?@v{1t0v}0~++93M@s%v~{ zZB0{?ed7D`huN;4>j|}UN2fVOe5(G$P~?Iue-AsQG$q!M4!=6$d*V<=(!R zoYIi5HS#0#o*n{Hz``sPS=KnT$5E8YcXjeQBTsp5?ANF9#BmqdT)d#P8{sD!3Cv2h zQ<~o~h!X&WW-O7A`Q%KemrhtfnwJR5@`Z9cowa`FQKj8(9D+>(qULwLDoxCv(Eo<_^;oK8NCD(pq5{z*jpk~4He+gfAyG}lWmuJ^E+Bpfy$ie zdkR+A@3<;b-@rmnifv(G>4W{7)VhOaSF zmIn#(!@8kNPt?7&c$r9EiWv5Pa&<4tSkENf^SbxMgl*&(a%vdap&|#qp!nS(SF|)i zl7l_M;MDb|j%t};DJuPlt;kUpu_nH~D^#f&ArsW;g3{y4mWtoof?G|pga7*zZGEDw6WiKt??|+wvlUghvihr_koR3zj--pS~^TkB1 zhhr5T)d7_?sd5@qe*Lkq2b7T%^>57T%KamXe`+MV`%&vk;Bi4sG#_+am7{Ue*Yj#C z1|mTBY6M`Ii1B3uGm%)kwu6ywR1hQ)W{h6r-lK@rjNUUPij4LbE0$6s)m90^Yg)DE zykB`Tk&tbzynQv>ZQj0Lbp`*eR|Y3dKwSooMvUOj2K@%lV*UujA{X90Q^Z8n-KClf6WL z{_mBnOu<|f2WqgG4j^1tUM$atwCnin>BoqJ%!|n$;?)NhAI%y%nYK+Y(5zh0V?%dv zw0dK2I8`PX&<82`s0nB1L7}B-z}wBd+I}<=hrn$Qb@9)V!*5bj&CMOmhyd033$}zq zQJIqKVZ&6(5_;qhuSqTJFa}8}q3)a>uHE{~`g7{Z-M_Z=I3dv!@tGTZ4f)Ar7MBYo z>Ob_D`UwLr49m3GN7xsjuPAji7@W&Wr9?B5WYvC70Uz%$MdlLQJP)(8Z+zWL;oe|? z!(nmO?NVo#KQj-j-GDcs|vuH7$zQdlQ~K z4EB=a5&$bQtK6wS3Cb>>t>=t^bLOs&1U{d~2A@O2P8gx!>X$LEKZB61l%D1~2PM_0 zx*kUkar|}t{fCe%>~xFYF-It&0v{Nj0%5I`0H#c4n9Vp?j7KBU32JEc>H-AN3Goq? zaXaj_zNdg9ZX4p^Ri*uZS0sQjcw#SoG{;%SN==l323Q1rKl-byrtgIr1^N-%sj-E6E1cl`{#xnF{vDyUZI-+y~R7P;K55A12J ze8YhORkO|JbakX@bda(jUuwhAphH2^0Bpn25W8UxrX27Vabf|&j#{^2CT1c3# zNia&_r~6=(Rf|It5$^%MQ7n#S?YG-mne9vVd{Z;v5_T2j_8nsc6K&_8jvQ@k@Y7f@ z6X+fjxlkAq7L}J{n5OuzRw;L^PQ)C1I#=!GO?z$}Z&yz2NHWg2%b^y_g3utd4Y8OC zv_;)u^S}O$Cre7i^cnA|b=Ug1d zmd5G7SOe6PJaE=%@T_7Udp>IC|CbXL+c3(OUqS%CnzezaHqRxbuk`ni64+n>20Ll@ zP+ov$R>_(l=SW(8){?-|2yY>`^2hlEjnxd$2W&oD!AMYqGa}PRk{5TCV5M~Uqpyj5Fc{QX=2&N>;w5^VfO=J*k0bx$gLmbc| z<>N(2{IHVw5)bDnII&6hF~=BA=b!RR2O@^#=4r##<@gB&8oEl)%7|WZdUZP7q3_|M zVjsmk;1c1QWBEY?c@hH&ftRx_XYCv)n<2ez_Y-y*KS$^{niye4@nZ#}sIJoDaWzG+ z>*I;c6X`LLf9|(hY&pbb-YajZ6+-3OGT48afMd{1OQ|K|3DI1Ql0LbDUGr`g6MT zM!^UyQw23jH92b9FfyQ-1STx8DRs{OL1J+)G}^KGcAMYG>)78>T5Ffyj+(UIxOct{1qOELU-3MhIV zY|^=g5q0}*w)KqeJBXhWYgf^T-(K3EH!x+8Id~0q5O<9@{_k7!%x1~^oRzX2~nGHWp%GZi* z?*ZRl;yH5{bm~3zAx}ep1LG-md_&9Ln1B?8`vVGR#`LnI8`~E0&VJhh!So59G79Kj zXvI|$Rb8W73k|=(ji%=1oO6;bg8V<@?JvaE_==dZfUf-x+ai738a_Fbq^1XwBE;F8 zIyyGY`-$y9rW-gEbVr6W)xUKJAbDeNQPzvTDdonNFR6g%nWX7*{cDk24CoSt)O~*NAgDiv5bqX6V8jHYU=H z$KXU_uDP?m-_(-QD&%xLCALnh!CD;Qp!(Fe2ho#j3d+}lWQrH<= zjusLLHEYZV2xm{Da2^5+AAS^qijlegiZDeS>-6XK%7xLg!LM3@Lm6LY+HG7T=h0|i zu}G&mPhXquI83ze%Vp}!Q)p-+=afZnNsykCgt%r=uo(@_P2M` z+0Qi3r^v$*XI=>#>z4>ZA}ZqpkB38`${)T_oP+%hNAQ2-r1ypvcGQwG>|w+WDc)3k zmetkR6r1Ja@rnqcT=ijF)#G0SFo}4$uiE*~MRs}wT*|nMWHA%IGPj4KI$FB?&h+t| zzYx!UJUKRLIk|~z43u_fO*zeJS3kI@lwikMtj`dg_+ZfE7yM%~(yrF1j|xX-&BK!R0FjHO?TzqrWXv z&W;FQhK1GM%louViuvo1VHO#oNROKM&3yAq`(`(u59<1it^Bv~$px?rtS5jb0yE5$ zv7$3BP65=FLVy0nX^qDvv&X9>uw{9X$KDX%`-yL5|MFww9}gB@7QMEXI(gt7Tm#6o zQXJJ$eZ#d$*-`jgpUK*_>Me!wdt1gN7AI3MK+t{7(9T&R+bqSxh1G+ApxoQ@gnl^1nkd*m;ct7l-{~kXB$;XP-UP<5 zdQ*s#PxiWm8~Fq?Xhd&FyyqLkx))JTj}!9v7`{}oFgRSLQPz~*zP@6gur)m6KeYgP z2OsSlNb>B!JFSzC<_lh5bH3M&VWPRG8mMZ-Xo=hEFh`VOuUr=3+>Ws6Zop4cYCXy2 z*?wHEY?;P<$1krbl~`@!_;a~!0Iz^U({i?UIE6N`si+${=uu?U|q zN6*h7fYNQ@U^8or#vv0swryq@>rxk|_E=5_Xf7M^&3E}Z3Xp}h<^`bii2V7lc){Io zA`d9y)MX+588WZ-Z$6Htn!IKmpBNk_^zRg;n8pWas@;$_csQ;*!0IP0RRi1-Q zwQh;t$mnk?B!+OTA?zRvWK!6v#Xp)0Y2~SGt-Y>HeAd+2Xhzq-R3)(?hw#&i6I+#( zH99XNFQ3F=-j@)>oc2)YZci9EM z|G1CznXy^$EmqGnx7!*BP@IQInaPCf)fy|71nH|k5W%tG8#R$*J6suqiKZ3atT5LF?XFYA+M^j5`YDH6usfM7fOFtqfVP_ zdwJVx*3BgTI=&LgS~uXs!KikJv00WLquMq6Vi9g@$)Z8R8l0m4WKddW(B z9zVz(jS;1XEm?tK@k_ly-m54q{K&}%MgKpq$g@gno_%nxvHH9KB!=dOB?e_cUTJ6D zCG%zE%qTPGi2c~!R?7R=$|p^fpQA9;PGzM@k1es8dNYSVM0jRFF3F^sYQ_{y-xiT> zeAwi~gQh&OH<>@(InRvLi5%!L1vF>hynK&%W+=CF77eYiJA;79J*gf< zHJe^-Sjvq246j&Hv8%5cD#ECA4JZPq^a?yg007H>> zXS{=xX%D*p;BN@(WJf-Gh-hU0-*Bx?e7tKRQDa;N6Cv?F{=VzaORrZ?1v39AQd-K1)W8zwIqp{`H-*=eH$OV(UVlq-YkQ zdg7Q{9rRWKaVI*;8eE))ZYKOX#2&)W+a6o)qY}_x=QE!aoJVjYQm)8!`&E)up;Vwj z2qh?!{7gEArcM`{wxUf$d|Ux?nZGu(!L!@z0it8?&l3h?7aGDDK_~gdBrO6jR{|h zS8>4}c9QIl+1$I?W(QUWFUUXGJCFU;FxC4{4q+TUD)WI6#3I<0V+odoFmo#%lzkdO zvW`XjF5@1kn8HBHs*KGXp+~u$I?wbK|J!bj2009NO+cm)iHvLW%pJ`1in%A^)YB&% z`c8&9z}d@xo8UG~hxfWoW!egM6RB?%r#;6gfdr9Eg5+8IWh@!kd8>LFP9B=h%%x=8834~N*?{@=`8BUsP4 z2*l=`72b^ziJP(Lf-D!r7T9}=trkRo=VRbDme{@UJ!0;K*NIfRb)BW08(DPLaa~%} zx4(B3VCbUpb>3|M3lZo{GXvz`AEBNb4YK43fgP~LrLg}Z#W3>g`qFIM`+SdQ8ie{= z?xah7(rVsEj?5kX^`a%=88@^{VSMvu1=3_UP=Q5z7UXcAgCdRgfuyaY4?7kDKe z!DJYY3RWhVe|M1|O@5BY0h|vakf~u26_3YQt6t7DA)CS-@)tpv?|_kUB^u}TY*?j} zWr_Fw*Kw(xTgYsrR&L2**XoDYAAJ@}q?sDV^_DEUFbMV|G!z7Tm7@-7$CYLEBFf@e zLx=gIO{D}=GhB*%aN830HKyFsNC_GYyc}`GR?^3ES382rHug)-52Mti_<$jF6YB8Pw7GX0Sv)Am`d%G(eTBA9_*$*_$col}N2IM>02gzJi3 z*ZwU<*A>*_olq~0SJ3~9~p~&BTcSsQ?E-b zXH$~c@kZ^gmIozu1byJBQwUQz1bau?hn4n?v=dnjJ;KPvyD*12aJ_PsCZA5>az9$q z0S%?C1juRZfj$h18%c}J75i38Z<_+<0ST}S`}hi0?Mz3q1}woS0~OP240S*}25f6= z#HXEC5IcxN@5%SNjVWUsaA!O}b260SkBync9WvQ#=HK0FEr#KK5bqKW_#5b1ZgYG3 z(QXtY?r0?QQ}%-v_e=VbZ`)o;Bfm(A8OLw4&L9t7s1vCOyx=((T1n?Efa%|{_4+q< z75F>FP*dS3V82e~GSv2#A@u|$-&ql(oG52L-hA>89*+ET#^UO6`IP}PHYcvg*(l1~ z5X%3M(}DnMSVKf3{(nusi9^daBKhK49KC85$7aV_Nz~tIEGsD%w){v>v_F4tF~bW| zIIASVptb}86nHZb_c?G}$V_^GB}B9@g9_CBe5u=7cNxEBAapDpl1}D5rSoO=?0e`z zn8ai(MA@IkArcXOm;hl-*jZ6rF)M-%=h0h#v*?{WC0T^pqprq@Zhu0{H$uq+~j z0-@g+_FB9%ezUu&2i=}w6Ks`+99yLp@kQ|_Lw*_&oIb7`F1+YIrzs0Qo%UQ$uivrE z5~(wAwMuuky@}^>(x`n zT;b}MTYB>)bH$R79yE>x%|7sxh|D(rnDbI*=AS-4Vt%av%ygvaGQW~qly<-8gI|1S zTt5L-Kcq_{z~{H4z*~IiPaw}Pf8pc;x&MCqZ(@H@txCYY+FtW~R^#MCyXsU)MDHw< z9#UeXqN5@36P~iexxsXfT*DkY<9_cv)A6=o1VVNrL-5tK8lWUrSB6z9g9p1k8|G*_ zIH!0fn7Sja*OyXoOGe`LvB#C?$v%ajcmrGtqIe^ z6h?5Z!`m3s#8)$zn=WLua<{1^094S~+arH}@9Jprnei3?;tSv(q@Z!PKWhRAJsX~O!u`sMADg4 zvAb4t^;+&seR``M`|`ST7=Dy?MEpDEoCw7CgO{OU;gp$X;A7I96dZ{meu+sKj-9Ch z4rZco4BZ{-A8l;XD6{NDzWRpLK0VeaD_f`CEr0vVmu|Y$ER!?=lx7$kpZb;Q;-~LBBbr&YW`^6~VUcRMZl}h-XRR4QQ zFfxe|AFIsI46(qsh{s&vl4LzQ?c9ouAYY7RkB2n$RM1$XehW6K*dH2S+Wy!%a zN9azvDZqQ%Vs<6bXxF^{V4U2Q#8R$*13HlY2WuGdKw*R}la-75=M;ol4MTn@+QDS2 znzd{KBw$dKBw+jHWw0fV^m~6#(oKkiOEfnT@Xsa_M|>c2JsTPSGRMEz?-6G? zrs^o*mw2jTPis1(GuJQO*6K2K+Y(|hX5?mBfjve60-*Doe zT8iA-K+pGmUpK~?OAQ@NEz!h0AK#fcyoDHRc5leIEy@_({L55x_^Arh>X znwODZ1>9ILGPRlYgE63C7-%dKFrC|Sw9?~qx_XWV_zqmXY)Lo*7PoJSExse?w0BFM zlOi9drlwGWn%?E_W6Kl;*x!u&q!vCG=(*KOEyaj>LLUBAh)p-4PuBTPFcFix29fb( zSpG;!OT?m`Wrf&omb;fU9mR~5DBbsWWr}LqDtYE_GrdqzJV&MSYFRm6a&n4xeI%94 zaSReVpB?QWJpBElPiA!5_(Jrr4a;0y+0*nH3~Ce)8iUJgg~38?DwyT#^jqd_}IUW%n9jN17sO{gF}vC5H}A2=5j8-UM^$B7j`|Necm2EAVqUSOZ|Z zCa@3q@di9K%U`Vy)SHAI`cj$d0nB(ik`l$l2)Nc0=!T|;_-r3ED%+V%$=J*%GAu8b zw%d4)b-yr#@>AOxeLZj3iT7@Q^8>0v>upag=|>HV-%s}GP$y}ndh_$2rWNJ896$oQ z$HQ4|Oz_Yzg$pQ%Pz#_6pgurD{q)9!mMd=u5t^l62yn++kv6&p&9M*0Ns1a(bcuq$ z!w09LHms>3Ie!Kd0Lp>R-@q>jYZH>9@Fcrk#iBSFth2zdrH4=|d+dS(;jBSYR8(Z_ zK>!ynqiq62&|&^SO6I{T0GwWnN|g&6m4nW*;kwzybeY9lP59eEFljudi#-GZau{bd zE|dbeM4LT}aO(vyA)T6>rTKi%uG8Y!hOovGx;nia;_G{lt6KtBr}xhA8k$g05fEod zOr@EkG*c|8;Tx_-OJRod%dshzRX`Yn(~*b+Po6Zp%&fEuf~l^vdW*6%D>Okgi+OBG1T2;(>Fp^(9#~7{!)7G+3_nB0Jz!J) zROaQN&L|6%lBZW|=KDYS2q!oi8Bnd3&H8zJRyysxv(UcDU>5QCFV=<}U+(DRp-$f- z&a7^(z`DFaUZys!Vh{bOcMltg#HJBf{+Q4s`B9$7#wiDz*J1=e;>6y4R_~iio4g^! zEAUx&{;Th zGw8Scd;#TLzrbypV)*AE{}ZApP-*R} z{7|5YA8fM&(V+aG+YL>iS;b--0+c`2`}Qg)D_}%(z(f@eOjf`t+4&g>Tw#BMeI_Ii z^d|4{^ERP<{=RCSCIu)j6_4k7MxoO`Z$kci#fzf(MfLz*J!K;v;XpGr8R-4y10~AZ zEN;$`Kdx!YbuSLkdxJ~cqaQBZk4oAczU4tYJCYRj-$Z{02kM@+A)Gz&1UY-AnBj98 z;w#W4(y`vXf~Xj&*iVSdzan}j{}TUZAs`{~)z)K_$wWZ)Y7illwGu9W7=G%Ii=-9& zsJ_8@5xADStBrQe~Tz%%vGqLw-Q`K`WvAAr!DP? z?DC@)Mdq;Ux(=}}ML@x~D{Z2Mf=nN8iXwHuluJtE<$Kmpz%EPy0%nI-cVTmKElKYu z1{vYm^KM*Eblt^(zqXE8k-CMuAnQq0WvJ)8K8FoxCUsvVD*(!3q32i`H7g_Es{b(;&m5K%bX-!5VWwa+nCVeHgp3SJ%6 zUOgmvZ094L8r9!mcC&eZ8D`>|<$L%su5mC9aO+%X^Z80%Ru7L(-xI+nclH%c&M%{m z{nLGqhYHg5`Xa1@{cEtW7vQY^DWeVp2BMugyjGWol6)a8NyhNd1$YU=+;k3sOGe4N zz`4o8>o&}_Z*UXUhFyKcUG-9XM-D~p>YBd^0I2J2{NbYm#FN195`lTJpAGhmhX&UH zy?5{j#mUz7Tk2-xV05z&Olb{BclWTQ}eJ_~66j z0D;JB>Uc{jD0zMZ7tO|XFKPf1_7J<6%9n>WY4WJ4EW5*uhsx9 zoYYqwk;N_94k3LB(*9cS*0PALxh_E918urZ_urg~9H3*svwDEVQy@%-2I+zQ$TZ6! z?<9k`Kxb2d4k67PkiKqvo%)sSr>KzAw_iit$wl!pG}g$+DuU+?g}!0F46Cc4jj;pb z_bq?CvO+1mCitgYNNGtiQ0ZsC#w+&wkaXI7<74RiW@vsqrYM}3AG$_XnMW6Z?pa0w z7U~jkuyDbeXLmBwZ!QB`${@lw=H|rlXBaa|ls3aC0B4xPm=b2WdFDj~OlB|5BN0`d$eWrzERRKvB^^IbArM*9D z4)B>``NRVTerEuWVSXj^(PEb4Xy;`#!Hbf9{hJab;7|;QZt7q@E28cUJ$zcb0nc#Q zIKdO$%Ef!~E^AO+fEvQtH{-fMq46xay}b=YbFhwV0$HM4EJ!!;rY|oOA%D8 z$aeR3;X<#9gSMYKb;M$t+E?5q@a4_}NO!qyhrE$OU2gg@d;GGaWTKK`kPT~ZhfJfP zY8>%si2-j7C@C?uR6)1)6^ns=?Zi`u*P|$BL|_ig8edXqAc^%1OQR*)hwP@SgS9La z=aJ%dmv?!fsu%u`K`oAf_^?$3Z|-E8aD7#fHyJb#jp)|gI$a8+C_fC`mlO?YDwdE zEIt@_K9==Cr&bP^CAnPM@?E6oyRM&Eq4%cl_sm`nE}iTCB76EOC&Ya!{$R)QEf(}% zgNUykWD=6t3n<%*S97xHF=`x5qGesZg_Y1_-Ywkp3h-6Zl_-!_G{UqgIvDw|^=;8~ zV^ak}Y%1a%ad@|LfBAg5PmjGnezW;C@YW_JUntGo#`47UbB)SJ;eAiF;}la8ioFkO z-(giY+6ckzuc;Hg_UKRi9BojBOFp!xiQxya=T=FH@yexGO3X?dAnqE@83*Y2d6GvLY&W+y5FmyG*-Pi=l{%qx2Phe{vxk3E4f=NVdQ9 zz{;B4w6;hU$w1lJ?Wj^^E3cxfCkyts$oYWo&l_8E?u zXcuNzD6R4`(yj+JTPLF8s^w8J>7>(y>*2C;@O8NkU>BPDs~5}%x`n6Y#I3_BE)fB3 z)iK*tC~Les51jy!0J1?EgtHO2HGyf=z|9X{dn|W@{h#-S;y7y*8#0U8@5m#UHvuF1 z__zeOg0FEO>hK0dkYItP`?<|1c@gv?b=lMv$j|4<0BwQ; zmJI)l!C-EwIdm)*0^UJUKFlA1$WqL(A?J_N5f8Ev)zVwzyNIHgG^)Fb>f?U5`QDJ# z4o>Z6Gj_ZWT3zrM#82C-9AnL15cTU}c5IFO*oe{j^m7M>uAy==6j%By9SJg?9B!EV zM-^o+OH~j#_|JZNG6y#(d~o5bc&d;yHm$(=7}6M^&rDJ{q%0ZB)ZPNcPAyesq%s8} zUf&-4rVK;VD<#pB+acM?KS>{L7&8o)rO+$@eJG(xk?y;?V9%Bw4P8Q*NepIal>`TX z%fD14Yb!k3Su4lf>saV&q#5I}61k3;M^%BxDM)9iZJQoE(RH=L{fYkM%_u9KKmE-L z&$`gC26Pr8Q2i08dx_@hB8nj{jsX8Dw{E|zIs1#5^RPXK*tdfPNsq`TiRa@ubgNlw z&<`>*6JB(SsGho9e@-_GHsNGWRUd^F)lQ{~^9E83U5<;9bTV?64_0v)Bxn5Hd^{d7 zrbxM5Y;(mhW&@_(`*x=?BDDH18x(obR7Xj|3D9eN#UG~y;n7ss2cTQaibW^pG!tSt zTj2~{(jWZQdktsOa5jxDNNK>H8D6ma3IPB&`X-Xj6u;i--MIi-Y1b^W6Y@{Q$*YF^ z1{eVJic;@zy3p#hBj)x=v8I-i{!#z<$zAi+M(YWUqjDiE-Q?3N@(_WN?}{qESo@6n@-tkva5F2CmZ z{$UWdsY^6xzpp?oR$5u~pj0_xXiO91c$zlU#qYxhvfY%9Z0CB_SB@Q=n{op%U4f!) z@)`{(x^N)LVW64O07dv1Gf{ZE$A^8Wky8F>+UCd#YC1&GBZN$Ym|&M;E*O)?rMBz3 z5-?O#--_#IWqa|o)Z7IU5+u72Xt8LS97W`nJ~M=>w`L)Xj($e4d$;x#nr8-jSG)@V zDv&Cju<2V5_cJa&L0~0Y8w2gSdR9h3^Mf?uddi5Q?#-HHqVk;1Wp5*(2KD|5R&H(j-=AHCFoC(~`hV^HfWJ@SWgHHPD{dBJFZoxc3-CCk9Q;wRCxK!xgC4@j zR5fB~v4NxM$rK;FI8ueWA>e4a%+!mIC-RA9h;GD29uZfbBOY44_^y7-eBo+)8FOt~ zJYXw4(7co#bU81v39uDc6O1{M5atn(CTQpk9`t7KinTswXZrMY`kZ8Bx+p;!(XFMP zqX;!a2NSL5PhB_2UhMbTxM+3ANsmjV+R<9+7GhpG_=1YnFo6LR!sIn-_04_)Gc4_8 zfN7GSTbao@xmI2`p+gdfK#FY1ROsA%35Ox2Lje-=S1{ktO9w@M=_%{1#!r%6<&{Lv z7&3c{0D9P;CsfFOpZO_tM1?HwEs3F0IL=HhYD0th!)<(Lv|xQ7tdmr8U@6}tECO;j zUG{TCN;{Ds-2QW_&?f(gX_%ou0Cj^-FPjdD=39Hzx)_=51h&Tt-Ef?3V;#_46js6XzH&g$b94S}J;jnmSYCE0wKOYh)=$sW$ zeCQG{L9VtWtW62FhDUC%nbEg-4VbEQ808-Wjdo=Qj;=>a0XxCfa z(V*6`dMgd2RFPB)&yZ>VWarFn%P z8*|Ssf<$p0Tu6J7TPVYh`I+}i3PzraDq%$&r@X+Cbqb|UQQ*POV7U)?Br|>a7IEhw z7BMit14YyHgDD{%l2!cIQpC0?{_U303wR^d&SVCft>vgyHz@)Ek)5<4#=5|dVWha) ztLc^KtX{pqnfrIe`7Ysa-#DeXjngF$B&QP5|5bnv?Oa`m(g{`7HlX@8p^HUvYP#J17PFh(8is@ZazyueBc zVK|j1IHiB?=_0cy0Le(zpQkS;{%xP}U3^=JtK0tJAp6&D6Y1@Sc2QV77$p}gqUjRw zvCv?S->IGM-M?v;{L;0DmWyL8iZF=L6$h-eB^xwQX(3{N5s9Hjf6xQ$a#THv0#;Dg z#DRubYrgPp;|0iIf`9-NWjEuNKX9fw2$y{uzdXHsKD+5-p*!7WUvET75LfXqDdWOD z^mw@G*)y$V`vR~D0Ij_aZL3q4gbrA*!=4=k0H=hpp&P+TJ7+amZ3m z(Iq@g<~}t1JdIy<)V}wBF!8gXj-CcmA=@|3^H~hI)4S4{vqWuLz;BwqB97PnQY+kdX@K?iS z59(5|i6f77H(uZ0;SDaWVkTCQS5f|K0l;gd3gJFx+Z+YXa0uY>Ey&Qgsq2CR?v-v# zdgcjeLJVH~7U%&jG_M}TY=7LJvQPfKDX=!ZLc=75Il+~|pYO{5C(NyTRjTH+oyUI& z3Y{x&h*OX6b96|hyCs=uzgA79YL`p)Rq~1eC zT!A!&vI2>yIC<29%ZkGt)gxejo}rsg4z-3^&L&ByAQzwb zBjZ^ox|#h7WYbltM&*5k)*w|6YgOw?krZSVnGJ7(jPJuDW+*QOziBf+vUm-}R>qcW z-Wj!mL0799_7?sW0{ZH8MPl%?hhFm+&H4-WZgXG$MViMv~%``u*Fk~jq9qM9K<2`1lQYTjKHNu~Fp^?P;mP&UGeOQwrI=1d z(cNYCNb&?019*yyDpqIJ`hWgiE6~PmZ@H;_YTtlkj}5vDC)-|h67$^2&apLklt$V5 z=F8Uw{!i>rh`z~|RDzMv=KAl4u-)jmbr3S5BB)t528hIuzPwrCdX1v|JFHf)(Y zR#XaZr0vCPI>XcIzAN{BR}x0dj>WjIN@^6jJS3*jR*kZRF>?S#8?nC)&50XtuSB;I zwG^!CD7*1<)x^^&81Q5DAAlXNxSi4cTB)Acq?|f%p1^d71R6N)_Q7@BGAyU=IqTwt}^;Y zqyX8pq^Z`*XaZla$BBQdYrMYtK+%zMU+f=_W_bW))z*AC-dIl<2QWLSeQLcXs!|U{ zK)s}k5(`%mnY|T%YND`;5Wv)i!mIa4bF!xvuC+ox@zWT{)%7MYLf6^gXt4);p*jDp z^{!m*_LrpSQ@{T)<M`5bYqdo;XJ{vLva;YA2pr%UFPQCSj>GIl!k+am z)>srBQw!_B7XDHoaLpJ%E!4p(kKm089X+;qDL_q>i231G^#VT=1TWzpp0hw@Z+{X@ zOnwtMmmRAYci;-Zp`MzgXQqKa8o*id6W|k?vfHRA%^*tGLYwj>D#2Srf#M=vQJ`(b z;%X!$s(mi92%b$D)Ghy?YLvXl8$iR)9}WNmLUUO!IiXP7b#XL@J>tb!PJQw2M+F&b zT9WWDoP=EMysr3;vc|5T-^Q_+W5?EnFI>yKRyWfV5D-mNKr1ko za1SZK-p^~&@%CQf__G>h&QiJWTNQwp=2MfYwF0TQF~5k^huOj-ZjJDn^9k{3ycyK% z$yCN&k-+E1{g#N~z+__DciMy(qVvENN~jxr#eTtl>rXssV(w1s*?~U2o(+7Qe8z^m zG&eY!KmZye^Sjj^)ZD5N-$r;cV)XlcOzEbhgLTDXcE{dbZ8^eO8lxeFM5uXS_*xQW zH{;*MIey#+a;drFDb(!@;SNp|0``(dj%1w3V{XIh*<e0*kwQ zk>YMeio>`3pYMI%yf-NcNfVOa+?hM)%*>e-bDMzz$9oRqH|akz(^TG&q9UNifO#jB z57&S~BnJEdh5W$OPr?X^C=@~D$ifKwCgdD|kgNh*#Yv1to$NazkF_0cpJ!TfwUF;d zh{aam``1Gsq{;C4Il~@uiT*Op?g z$GIku4;n%OH8|qPa&94SN#$y^@m-jmud^hVpqCBm(_%?PMA=6fE|6b4LO~Fzk;05Q zyjmTpqf{%0;YVRp{do?r#d@6a0=L`lINl*v*Bz$e4lF6YZM_Z=+f-f41^1~^!}eEU zp$3U}0g$@-P2A0ByzZ-#N&3*yDN8JR0ru1^rh=_%#w^VgVVyZr>{HxUin`aV9@C|U zPe+)C*9?p)bz8~8fIqH<_nC1>rf~kT)%n%6!lfzT88YPhu?P3@Gma7`e4qxwp}h#7 zL&}C1AW0%HWLDPFaFkf0B&}41$(Q=JoR33SBV(${8cDg5ly}=SZaj%Mk)@5PpKPj$ zi-u$5)_`)}>nz#(^!&(pE2uT8>`p2V9f-#fN;AU~Q1+maL!mQqy;ws;eaYO_1%Uxs zL@q}j2JMP4aceP{7d*w*e*+!vy47V~+ie+5Xeu}cMzBX4a-=h)Lejn^x_~!K1JQ!5 zw2*C-S%eX*uM@b7muwjAitU zk*X-A^gh1T`zWm^4y|?rKt3b=;;Q<@j(W)M*xa6KaVJsP`sz=tF5a9jUf=h%zib}A zEQ?)(-7xLv1KcoAJ~)WRT(l62+2j2t&Oe0lBAs?-r+VJ42KoBT-sWF88dAd~3a>kd zeZ;@~9)O`tXGx7WheVJS@3)zq3L@3~b#~+U?JX$Wil9Dn*j=+K1`-ss4Bw{a@m2|7 zrTpFiLOpj*cJ7A8lpX)_zdP)xZScA5z}hK+w~9pG;bhO#rZ7qofs->|6)LlUdOR*|ID=*7UOjxX5v%R$R|-()zLSBaTn)%sotmO+7% zuWeH$f9mwV@Pzz{ES?^D*qE+=H4s#xZY~UeMdDO9()lA*AK1TB|K_gbKC}Y@uQ&wi4|cR22UJm!a1Pl3~Xq$h5nGDqAB zsAv*o;mPOKOl#0lek**bfFJ;3$~H1S6hCQT&4gErqnlO~>z}sJ@iz$exKbvjFqMPk3pp%O5@}UwHh=0q81R%)x$)D4)*b^_e01 ze(p!zbVM{UL^NJ@#j|6*JeL?hB((3fz_Ul@JeQA{vewQ`mY^{7g`62R z07m!<`)<+4SQydk@53kTABCPQZ}p}__l+fOQ>|RvRS$;9=Gt(eGC#F*EwY9kZzyU; zp$pG)BM|Q`$Xv5|VoZuwsz78BfX_af%L0cx=1m zaU`K~#>y;m2L2+i>A&Z{Gn0jWfL{uitbrfsNI~oGzdg)<4XphYH~oOxyXAb~!|WeN zmY!Ago-AA#0qKncq7pGiq($PvbprDkT!Psxpbi9F`i(l-#!; z?Mo#u$WblWz=VL1hewlDf{p8+jp!xguTr?@KhP3Qe35`gTB5CRr=94LM8#BtW`Am^?(<>dmqZHoVVXd18HOEcOY49)Bhf3@e*!uMIfmLGE09T|z70%zTg^3}F|6+3f&t4= zBp^hXSvebWW>nkdl-53lWhr;Yv4nQ{ZXx-+=x$LzQA_0Ooj9;gqR67vU63_5N)cA& zsOdC>P46nblS|E;qw1UcDPj8R=!Z<=JX4{L)=3IXTFLBEnRxP^YsYUrtDs0wky>QG z0lc}h8udHVar3czO00XiSX?6(vCC_Pfe3qu^dN3|4V8~ea>XzWYFu-Tu(ZTL8G70Y z4*KVHxV;P>4^G)X{0xizwf=9C=Qvv8$4iaq;8P_|PPgTL4FEn(ptU1>BCx0Mdt(ft z$&#}w%k^OtVX_3tw64;-Uc{U#EBMkM7gkq7x{DX)_~r9XOe?4+`tK&-sh{c4DD(%4 z>8^?}Heeat-I8fTY_&$#ZD|9Ev7i17GzA!8uSM|LI}1av$DTD_=-wEW;A(Z%O4-{0 zU378+ifI)drRtIWe-Qy&%Qb$Z44KhYTg1+Y9v3vHs6A>_m1g_o21xh|okT#wjShPX zDMC2+N=kvoP;j$GdF{X~%%=bKTi8?gigDW=+6~0byFEm@3Tb+?9*Krt)Q-jQc^Sg{ z0}-P=3B32-vFuIV$Xni9rK4^bYO8%+YhN3esNu5KBw3$!1bYSYG9byov>|#bV6>fR zW8qvr1R^ZYkt)Aa?d$51?%=yGMka}}2^iLgH1ia}YI2;ze~R!We@6!LqU(kSlsgF> z*Ndc(vvFWE$PF31QZYB-#l$Rla7LzS9nePTTkwg|h?xG_kZm@rnv$PdY%D$Y#SOVO z-Ks*jIUk|)&u9F_*RRnG2)2gBxSowBvyp{QXvAi)&Gaj8SKGWbVoCnC6fX6_sxL+K z(b*FPX*hXiU~74!tfjjw7!whND!i6I>Q&k?Jl3n0d0Wu>%U(=8gq}7HsuyDSBY-*Y z@EA?bDYoqTcDqsc)7I+;1+()|;?m2yZ*&eZ39_gDQd(Q;FIgCucJ3)u@yOuq5(OGK zmxjPCi3dAj?Rz)M_t9eR8RU-*&D^a&JqDQmiP~>TQ#)`E8=aDoKR%z|@s)aEE#&Et ze_Sc=-YExY2ck}u=nV~@=Np(v<1o!TleZb+Z=2mxPUdMTuiUCA(%ZFGT7UTD|R8!=cr0qZ@+jV<6+;ZgM- z{&e0WdYi1MV<_V_N&oo(VlTg>ip=Ft3QZ`9W~Gi%N^MUMPx1O4?pl$Cf}w0;3>~s& znpf4mIh{c8I@mM}rrDsBMeeP1Ys~Q#QX;_1*s1T=X6owcAV$e3FNcsF)i~gxIb#(qMB=}+Xz0{iBbytjn z5^f)6XoqY7ggKIpqN4*t(79n0U&Zs5cIOLv&(@Wtol&vZBJC>?u~*aCo1^F5mdC}f z$Df@g*w@mF2zD%g$2g_Y2SB6{13KE?eieW5PfL=`<)>*Iu8&j93wlr8k0`b(Pp%AS zD$fedMoFNH{M`5oN*=Hz7jpn)tFXXar?)ae2TS|sFFCz8l?dev5%@_E!1hV<6{q@WhvWkRjAz7n zT^;>O-Kn#E2a%ms zkJ=9>RO!!TuRTwJkKi{mD)^k! zL^-!1Rrlw2>rbCMjzx^95uzd+WaJ;a+3X9h%_IzWB4fUaS+aMC+4I|`c0}$Et8z>B zJjmPCuISWq%W-6iWsS)mF$tG>CM(;|?K^3PebVIlZs}MItfM|$uQz;-yD3b!bX zLy$p?jPC*?S!>c+HZA?0ucTbz?bmXh+Mmo_=(r1yJ@OT$Fs4{D+9~_p?=XcIn^3?g zVni6aI2Qil&a!oIq5J>z0zmPsJYXE@N}61IL{w=t>1dU-Syuyw;XkVn9)_ABALz=Y z?^K99=tM^}nA3kH$#_}E`BfTTmbqx+Bps8)amNqQFa8qLV3Xz|kemYSa zg_xT3Im`ooi@j+LIJh2KL1PU{)y5iX&Sie}6tsa4vTq1!v z`)Fj*Rf%9LKHos%Apo>~Rd<_eWUG*8W`^JAcsj35r5l@g!L#V3 zkRz1(0bjIc*)J!!b>FH7*0k_W^X2LZgx*VzcpQAPHxfRftSB>cylx&x3xq1a$ym>Dg+b~rT`89Asyz>sROSO*WMUSo^n_X6x3ih> z2rD_3&;IE}(coRg;16qvfnOwl)xYNmo^G-4^q-OW#zneSI0+7wKJccuD2r4R0M^al z?gE%_DHe2SD%S^S72c8PM6V$Xc&5KOQrPzmHg(LRw34)*zr9(=-o8F!^4fyS;i8uaUV$S4^dEjrQ^oMgY?;KLcKl1=wo&zRDzj}zHZ(E=si(U?py1pzEhy(n%0O%E|e zh9Yqeo25*+z1gO4JF$cP&Q5-fg9*P12%P}d&$1s#{)&I+<1K_=QYVGYTk+O&u*Kz}&eqQb30o?e%HDXbLW2I$A+sU(~6tWMGn zd~-P~lpyDciDF8fy@(X9TK45>uU!=Iuu;M#`Zy{(%MEz=6VW}^#DD9J$v~h%XA+w9 z8P`d#*)HP`eD@nnP|SzfZP^=mfK6WxW99FN7=s!4>0upAq=)8LPz@RUOzaAJzW2b{V|7m@@Gg;rK<5}B4BdK06B<&(k;n5>)Thuwav*}Bpc0a5d&a?Ke}m1p%ycExVqW2*xW5qs z!-u{9C3?eE!@KShhE0srf@CXS;v^(dI84?61}6WTCZ(t5{=R z3pRg^pgW;x4^9|Nk{l_@Z~^ba3V|3-FvslQTf|lt=_<_bB%>O}_p~(D%!;8~Q6cSo zD#N=ftcFgpgX8jC1$>qCmWi1ub@gch#bwnO^&uV|-&sI)H;Yd*7UnDLI>kX1neV?v z@LWFZz7-$|@n&xl3nNqE>SDt>S5lKa97!-nmPNq%s+=U;$-C#>`scD=`Y9sKGxH$_ zTo}dFryyvaQ)a@Qti}eDMTU%+awS20hoXmz@*66gKybOuZZZ0hqfhBuE&ZweIUSG5 zjTOu7e=(>!*vS5~Yk{TSb+$a9n=8lh@!S4Y`lv1tAZES5@p>livV1$`DcloRxeN(h23*F5s)8Q225Vsf9cuR`ROnav-k1B^>%6$=W zu*Xyn=IA5$!zRXmKPDz^KbtF(_lPm8tkEG-MwLcPI!U&_EI{a8P_ZWB&;KM zr7nXJJTv*}9T8$mxj*OQ_g|h;)K9(F)4ty$>$Zt#%zBkGu!sdFt*(5lMjg^-bxpj) zgrZ*G&e0w~kU}6TuUVw4pL#0ew`=}-vTY{b^K@}?#vh^VGrOlXR&Aj3rQ{-Zy%|HS z%O>G-<_ox+6Yfj=qk|Kx>6w#)g^YYq+%>jt8mg=YOaw3sIcl{a_Ffu|!$vAZf#r8= zDp@HAKi=Tz_4*=f!sO5#^i5Lo(~fi-nZ>a|%edVqS5{)eHJCF>9ZEB-OltceT-NIg-hUIO&`*3Yl&34!|=9Cka{-0zn@o4D}Qp^sP*X90o`ngQ%X* zGjX!wR3-j z-n3m6oEGfNa?S+u8IooHQ13_`t@{BHI4s_tpV0iZxJp0iHz*`zDPerF5 zvuW+nlpiUZ3x)IMezuCvt6vk?v^z6QQGv$%+azsIu zo$?HF=mzMjwZil`eiW8RW-}UMm1wBI^jxBKXh>+KIqC?Jd@fS5>a?^|{dZ2H~5Hz>F8K`Nj~*>97f)IcQeZgGU?#BrCu2-&{DV5i^#`YN@N>ENC<@@Ue^Zq^NzpMPkD7}dM*0Jb?{@*EaZm>2q zF)RBxNdc$h;j<%;N#Ap0_um`|!b9n7_(}fv;xr?H?g?Gsg5Y*b>hR&CgU9^zDE##_ z$;L0inhQ%}HxlW+%T4%HT?T(AvjGyqqb=W70De{r9F$zwM|lZ{SMLGW8IU@1hlCWB za=BwCz?m_SA`MbUf|*&w{AH5%MeC9BLv)C_8HC1ycc0#;;~&eI)`z}*99cw53X>t2 zouP$ST%$$&Os+iPFipS~VN_8fb}5^bGLvEU5HqcmN6Ttyhukj;Y^%4Nw5cKV7aNf zgtGGUa`oyV?`xH61)Hr%i>mIN#4~Ak2(n^k0xZynXYedxN^B+k+uqH0X_}2)s3@$$ z(Zs~BFo{uw)zu+7fhLQdL=Z#9NIBmnSv znxMD)P(wX|x#(?PRqHfrJdXLE0bP`$6(}E!uODn(JPwBK^;Id4)Mbg_HEVuJUyD#z zt3h%Qba$-DZ}Q0N5%aL!Yk}i&ULToSKpA_Iu}(j(?Z97Ew830d^<$`a^DipJW(K$g zkHaT+9q!yWq`WbU@4YRF8}Y#28c){7NQSK^(l96bKxo>>KDA4mDqz8jv`eGN?(T zOaYRmqZ~HrhuUhRF??rZO|>iZsYQPMI!kCE%emQ{*Isnoe&{WM*T%E^_}=;Wk?-!o z(_<`FOb%iBK|xMA5%);}4YY@TRlkzf;D)lK8;cG4jgJF)|2v-@u(VbtnzakeIeUor zK8BL`*R5jc6DpM6y7aF>oFz0)?H=lWW|^rfN`eI2Y7C;N{Vk=X}7vXc4G**M>8>j zhIql5P`w0TaR(zpw~rM@%a+qYkHQ53L!vRCXN6B2Z{0WmGmD(U{N`;j|5TDx`Sfs8 z`!7K4m`E?vJP&xp*+ubA${I9*(1_G^{kWlu;gZu z;3_-fI5h^Bt(MFEKLCE-eV^6LABmyY<#h`rnnXX;_{lJ!gLb^ zU?X=UH-9e_>K&M69WngEl0s9ub!p0)JOlR4z38@6H9#=2qlD0I2djSY!)H(iS5VJU zA?7g7>wWo_B~zSkO5tDbmeUa4`Q|f4(qE(9ONk(6QY%70p--iDV5vo`c68TX3CWEJyWd$b9v~*7*dmr1Jeou`j zN;^?Lk<(=@zuvZdMuYu9@R(1be33?rf44o46MRtLyLD9?Ao{AXFt*&B$}qk6@8oqz zO?9QB75Y1_*rB3CT8R-+goU@DjG7?aLlD2I9H~x%{EpOW_bsrAD(K+V%q;X!YD)^f zmOu)6KegztLY}VSlH_%6b@C5zf_V0eo!YfeJrU3{_=l;(rkEqSOpsl^0i~rlb z*MOyw>PsU?nn-sX^nH%q`?Syl`P4MGgpsNYYRkGV%m-esnqN5xDJDZFrmWdWCg^Is zO@qzv7p3JKVjOk^d;GCwPm-RWQ=b^F{J&{l0tlHuUdRUD=U0LETp+6nn6^q>t zc5IOVk4Xs3hY>uOX5tVFxkkeUGXPHVIHNnVaS8q`josiDOB2WPklbGC=bVd|IXyLn^pPG0E!mK_+4HZ1r^W@toD zQr$~ZwipwWA>H&qApgi*ar+}--B%d4ET)^|p96d|x^(V)I)qZ>wSX4jFO=6HjU{L~ zkAY#QHx4?Y6DHWr$YFQ!5B4(859MFhYA;4MLON@BG4bi@X)WdHO(+KPc#J9`Kf^Q4 z7+6qYnC!J?GiM?IN1z!ZOwN&_Zb``;iv$VHI zC(P76a$Zvmxsw{26SFNqFyuC_6EpTN0UwDOnj+VETZ*^;DyA~7?l*Uj#oWW+4C5D3 z$V;p(h-Mz5pA3VPnd1*YG4bGKviXK+UC#-29H$L+kND=rD^c*po0LHtmqY{Y-iLMsiQRmsWXGXtHyV+etr9~z%zcKFe7V;x2P#y zmjtAra4&j!F+p2Yam(P8Y9DOMyu^7Quxnr$Uo@k-N--{MHARCisCo;XfFxd0uiB5R zzfP?Hv#ZcR)6g`0B6t8YzAqXrqXexAWN`h6t}u4OjM06BLk0kf{pDnyC#`v09Dxlh zQR<+T?u*oBD&oRJ5OLt=U_CS_>o0UBMR=|c9`+_=H!>Gy60O{cuc`d@XO+TuwGTU2 z*?_Ow+)^b)cSo%HS0&EOIC_vv0%nbkY=5x8M89sj@ujk0<;c{;L9piFfArv1=gITp z#>y{?sD8<9cyfFV@(_U@L&;C!!<7XKenwXhVeF|rrH22)X>6%P=xCVwYjAjszdUEf zY%A1buc5$eWx9=jNgH&gWY>fNmixRe!qD8+g#WmE-WR_j2l*H}Su=c(lFeT#@jvEG z&k+b&EJ5+YqkY4jnhmkRi$~naJOVS{8nbdo7uIS{1+p+>#22J7zMrqru8jcRYtPf@ z1{|=pM-KN1d)?It#l9u~d3|*)j+56B>>NdIlJ*Je1>7R`GGvtg?aPbOCf_(IYp=JL z0ODxv5?k=DKHd0qz>;1jH->D+mxDG-qLGqiCLGEEtcA@{_M!DL$fuuRD^N0xi#elE z48kc`34}~nzmpuY9(^MG(lOx=%c7Q-P%VWsmgD~D60<#jX~{$328)8bY?TxfBlZ5# z-FK-)W)`^}i6O}Z{V9D(JR8l8VCAZJV`y5X7TMkhPgBY#pc2;Y08crqHy5pdLBOGV ze0@43hyEe*0*w;NLom14c9~;;d6P&M3ilT{WAO0{=&YmB`lu1^DdYB&3vcD%P$U;` zg{#1<2|mDnR$p+WA*2kuU3bx=Vam{5+>(#A+=M$3rRmM%@r7_!dOZ#dXW-FE>C+4s zH|S=NOwfB2-jB5Kp5ni~r|Qw%`eVu6m*Rjg66#Vs+XfNty*}Iv;FAb!cbjI*ux1Iu zI#t%IHBij*ipq*~v$bE#71l1+z-xar`CZuw z9cI$L-|rHT*OJJKEs|dAoyKpS4;CfZfiAr@I8v4SIBMcd@Y(BYEaLmHQdYeMz$1v2 zD0WbOv_Sn;EtDY*M;7xy zAA9V6=L+b;F5ES;SE3nKn3UEtAs-D#a6Gl0RH0LcObwig@7`~ zM;EadQWXF&ZD(vRC+`)~+FDQJK+WXvR065GM5q}4Ei{-S`(3oc^xB+y?)A>O9{!d( zIR9y^_k5rjIRj`Q4*g`htEk&=pR{EfE{q!cxNIS+CdtHHiwbbKQs#DSwLS~O^l|3q zw&N8XQBlEKV*@j_D4`$cQ6V1Q<;kr@yCnv@1~8%!Fbk%swP0)ZDoKwYuZ|ouEBFj6$!s{dMsFTD#14b%O!89#^i4puOl!J< z+Db`;Evf=c8Z1_Pi&N*=zZYn3xGE1X+%YUAZ79aLswbQaZ7g*MApfY^PU5lvMTl#M z-*W*5#h=Wbd~VzCzw@28IYzivoG$t>)gOT^TWn^h>pU!6_QzMiBIVBzU%IjvydVs} zTz=j^m;$fmlVJo9qo*m6ziujX$48rMrQya=z zEck{i9gz0xtl`ag(8bs~C}uDMu3U-bvbuk)Oy=<+6jEc5pe3)Eoxvafo!Nx6VE2Pk zQNkP^aexYf0$PFv3tYvQ^hnj@Nty{`P!qcYo{BjsI8s>PGNF0z6Pd6kFW2bhm*K|B zGu`g96-8c8tjm~F3M|@orcu5B8kzP_R1P@HpM%YyWDSTn1 zm>1ko{IQ#C8HVs^<|SLQpaop!@6Ue*!n)zEG9F&%U?lQ^#w~lRl=3~?4BVzoPm_D} z^3A^L@ZVf#xFm64jNucut9PP+Sa_jhJno_P8`{_3+ey4G;4EslpvG|)Ju|nMJkII{#J-tL#4K- zwA`%PuP*MqM`J!uNr@?fjmGCsjYw)q%fGKD&jce67kR(q5x749;C(eT@I~9^wcVGi z(B>aPq}J2Y%Ji(VVVc1rv>m_i1(FqQsZx=+g|#>=G>UkYPMYI+X@>Q+h5rnlLFfju z(Z>N4>z9VfLWOsgm6+LYo?kDFBTO`9LX9^PE*>=}*Z3CDohkzZj5^&H*NH@cmX3aB zl=aG1XOs)>yhi?#N20;t=1PQGY>u-Lku^eSNFFxt?a`GEEDctRTk93_B{L}~zqfBNh zn{mx})47@7OAN*jl=-6lFYuzDlgauzu2B2b@pp%f;VAwZ;pSaWjF)=PQHKmXaWm?% z&p#C&`c*BnZx+60S<8IozhEvZo?4gmrX2)pR2P2g2dKDJF5~ZJZ$*lm!6_Yd=q{aQ zw4q0E_X@%qI^Yz30WL6!vj43j?acG9Wsv>z?(qzP->Y#r)H?)-nTL+%2-u}OmAPcY zw@v&;KYqBJm#lMJT)c*Qk}$wTEy8L)GKhRcTxh4sNK#yhREy`aqR_@!ig$9m{$=229z{&Jh$~V&dT#XG7ApV3XjmGtv1D5a^<2 zvHz`HQdFfYR+V`G%c8%=Bn`1)|NK&mncC&!oMn>iz8x=Zt=*$tC7H~lhtz@FAZ=yA zW`LY>;pesMJ6yj*MnS4HU8Xa%?}I4CaLSr<2JU&JFbhBmz=s~{j5oYv zpS-UOkPw1*-8UZ7L>0eqER;MR&!T{36j+;u2*%&j>Ls9$PBAxaU^Nchg9{uni7E5p zmV3nOTxg_wTFwTo*=>P0T5*AQ$LDv7vbb)e!~w%E{P;JsLQx~nRU7SD!DjSpI(eyC zXgN~e2f(Z-)RtM}6rdv-V2fAEPuLcz<#$O8&R0tk2#lUkI?+ny&0`WptPKSg88C*B z1;bRAja^?gQ3bBhHN66qb{d9(jo#`}2I!th3svJlt^g0efoC3=e;W4s0{RPDPp|f3 zV^4qgP5Wpb<`{R}OiHZD!WjHP*n&FsrXO{+`yO@LhlElEec;!4RoN14VHS4) z@ta*UT<>j)v6aO9_mMLo-U=nPp_>2!j`2Jd(Vq#F;T!_B_ZfRPwsRsbX<=REPrIm1 zi*YP~q+ta}XBvzndul@?F@O%=bD`>$;pn;zFZXFl$=4>f(L|xGUFFfGuHP9PDIXy#QRSd4&{hID6u!;(5 zY%F8_@n#OCW6tPFmAc)z@*U#acPOh5Yf*jK&x8Znv+N=K(svDY<_0Cm6SBHA&6ryJ zzp~9djSx(bLuu>rl05b0v&?H`)t4cw%8La;{SSzwby_6wmN$}JM8~(P9g6AamTT%RZ96Hv#71p%7i5t{RW6emI5ifuec*Nkv0g(2g?E#2@ z8v&+iUL38613C_>K@(U~7*Tol@Bs{s`G8+2I!8@T&m=opqxy(PzTF@$3il^7vQRX{ zL?=Zz3}MmeSBaENw0EqZ)XEgWdG)7k+PkzU(|D6EaU)gDF8KJxlIdh~7&Ge4runI? z#VeT3)M#qy?C9Nvd4kPf#R$|sBHEIq$_OVtbW$WNMfHAuO9L*8isW^vMFzu?wB*X1 z?eIVA8})5am~qYrKd_WxL@_t;bMasU@G@P6QZ+w#qyY3*{n@_q15}N@0V;y@btAB< zuS*Bl1uj?{ylONRy06fXOvpkNt^H7=KY=dPPYfl`22)o83l7Zv{}Z?VFG~FPBk=>` zwV#6rRTzLS6^5voswkCZpq8H|adbdm68KfEj4)9N&&BbDEoW4(CO!-OVE*~<@eb4xpDu}@ zy?dDr(WF{*4okPt?q{97sDa^eCSPiz+XU#HaFrGPe8hcRrsZu5l^Jb>+`^X?U|1+v z#Mdn49}A>s%O@t1?6rQ1GgKy{>!sn&2-X6FS%rHrr!-~s1Fga()V~;Hjcj^V*RDqb5?dz(Nuk%_UnctMlUmL--s`05`7mBc zJPS-=)<|XSBlip|8=5@Gg`9;t4!b{(sD8SzTXxla(ZBq^C-DQtjWSI=B0rf2nbbOB zG!l+e!(m|^1&729!CQG!CeW23$2uK?Gj$}q{U4RbI+x-~3Ql+mF$WwFia6->^H2t` zlhiFABF|v1WdNHFrBq!Sn}@`=o_*j{*j05$$7bYb;ZElC_r~{m>t4YSweP#7iK^M6XoETulq)2qA!(ARnA0(#9G;L5 zZY4{kq$zwQLY>5}OrE%6qFL=U+aBQ)@(#-LIwS#%v2y4 z*%`Ef+LOknp%d^4Xd3j^p%r`nYo`SAX)7*n`JG}o79=v}P2=Mol2rwtKeD#rgu5S> zX*ZIB)gWPxB(AO=Be-J7;^)R%;9#QJKHFe|U_VC;_(WyQARKr%$k>-2nWi~F1=x&m zQj|lsph9ts?Va%XSe}Zoj5LM_pp`w-B*=H9U7e~XMMHMm*VS#2NwHznAeL!m`o!c4 z6(dF*+m`YJ)q5RQv(8477uG7}AevYXW96}@3bPR&cJf~MF500WBUqFZS*1_CD}4G% z-iH{sVwOS9G{N57d2Wxp&OjNBxaWEWR9lt9;>etr1}Pn@jpKP+?xNoVf6lNzn3VO-40tpbaV~49^L=WN_El ze2G<&e7sDAX{oWAgLRL*NzBXT5wF5$EK+`k=JWRfw&_1xe`Id zLaE*FMb8*<{KuX4Y21TS2GKBvp_c$iV~K;T>CF{#xM~l(?fe~t`oQ23((YPZB8VlDLR{Syiy>TV<`opV?0R6pAzBd59Hy6*e&`O50+^3l< zcEQgNb8qX)h2Yii|2=A6Jkyjt03qo5hM6TQK#?pn(ZP2fxXh3TMCrNoJ|-@$Bq1+6 z1h< z0Fo|ymk0P3XuqTJlZdL;RhLyw*jXZtyHThimd0xUGL0>)64@GnFO|aA%?3d4jyqTr z>Qr|OLYn@n4bj_EfwqV4MDcMX%l;c?q}5>G4)x@WA30QQ>E-8+cGXj~z`-v}Hc((d zeqBsDaYE@fSL2f4>t+h%=^ic&VZ`2JiM3fLrJRc4`_ViIW6SPNL+uy*^lw?umox?L zuC{b0xqMrqY2SxM4hJf7=a0Lq>%TsnpgKVveFcHAZ&Cc<_Jx3US=1_9nd|M;1j_dqq@N12ehLTkshr@M%j=F|9pYmu zSFP@9Dxpn<4Pp#u({rNM0q+U8z+a5{Zj=&tqHOdF&(AheL>PIK;LSp8p|Q-!!=?Kp{VDE(i%|iR`t`9( zL!E=_azKJNu1%JB4Ic|dV2Dt>*#!FcCASU@Dw_LYM!GoIpShwgITvEJ{74I3c->R$ zJt0PG?*{-Q{o~TBVYqdjF6pN}L&O-_@^I0BVy+rM)oHrcZQ(HotM7Y8zUT?h`Gx?$ zz5Xgg&sgy=vg6 z2OXYdERO3!KJ9_3>&JRDM7YVWN7Ou=(vQ!ZfNqPo!WS4$V_u6UXwhgM(T6KU;d5z! zV}UL*SP!$n*tU*`?a8m?9d9RVv>pGSk4^Wjt&A{AxTPmBR@l_8WDHjMs3Kem0au2Q zuT6c0+6mTyDGs6eWtryW>!emDLuKYp2%%)xBo*w@MLq9^>1P#*3uQI`l;96m=ii%8 ztUZ9=(V?joCFG#yFiLW)8Lp6?W{SCwKX$#6BmqctIFUn_06tQwZC45F8wk2q_3c;~ zs#h9dDst#B#b4ZL=WqwS0O?6h-IAC%l>Co)88uCfyoGd|`!(>n6;X!smB3W8`=x*|CX~wFNG=6HesBs}&(McWPe@Ak% zVUe&()dSP022Fck%rY{ioBwvyqHo*oR|mEEE$;`nKyjzIQwX%QNO2AB4NkBYr${NT z!6^>G-MuaD?ohP26n8HUzufPgd*^e1?@T5$$zOZUdCxxk?6bSIKlxF3kJzxbmqaG1 z1PU{lD>Rjspf#T6p?EcyqT|0GKs?zai+806n@Y`+yUqoJ;8!Hbp+bHf)d%8By#}l&651G!u$uuc z=q)=i^89@ejD}jbZiUB0QWHw?H{DRJ94fKthvItNZT!!h- zN%zJv2L&AmvrUS`w83Y~{T;@W1fad%j`dz(+R(wPL(uVR)o;JQi+@c43g3iDNI-B4 zg}%h+qcdGF0OK{l2>jY;OuvI*3fc(iF08^qT$>=CZ`nBX&F#dI)-gUqSepIt?ZDe~ zR#L+E!^0%OR-rxtP|Nesc_=lep<`L*?Vgy=(Y^tc9Ps|SX{LFj`O3TFjs#Ho%i`p{ zL#)qc5!R|K-R|m8TIE{)uCyha=zw{S#V{bIKky;2w}ZmhFt? zMde2WOvmlxBRIMoDIz+xuoQZQ|Apc772V-^_9I@y%ltTsVi_wZQSPK>4t6(`5a;5P0(JkC+LCYjScx>*zZ@O5!*wGlBaSe~lkB z#^Vpw<7S86)dXn>E5xx^OdZT188yp(V+0&DcJ+CGgkR57>?*6Zjp9x@$)g#qd<=oV zI9&-8_NFy7>ul%|0JXfBAYrkHGcrnHEV}xGe?Wff{|mi;WorE4nuq%9Mx9|Xg0W+( zzvcKB!SSDmHAK=e%XDuu**^)U_vbv8n)e8R={*CtTcnRRaEgeHuMFHrX2cLc2B*-d zyF~Qf)}Y2`M0Cicn>aGXS|EvIbdmQQ0IE>lqsK7cN6Vzr1f zy`gcg&p~lORNfC9WG0Qr1b_`#!2cMm$j(MpD~UEk;>i3{K)n5c_o4d!re<`JW{dz+ zfju}_8Ku4&K*^P@pk})+_v!P^rk&tKzyGn%^5d7IMdv|>iLO)cV)TzP_$pngQDDSzHF-7n`XTjZ=7fDLO^lFyU1Nm#CkywnXiW_GiVD^*4!~<&UKU_Wp5)_Wr^D%C5~;M&{od_kV+tf8h~6 z%H=K5VI|JS_$&Z7iU0%ZRHYx0A)+De87eU&A2)+P)X_u()3RBOgKhW%D|8I>Ia*zN za7qsli&2aMBOR;q@A5!3-xbI1-KW%=aoi`S0cTopPj&r@FzwT>=a2V;na zqj&qtw4QD_2BK+2Opxfjl4k`k3QoGfU7}o)sNqYXWGafn$=P%)^gSjDMV7_)%x-Wp zR>VbCa+0XB)dCWRZ9ZY23x0_M{sC@KXP-1C(oE)>&-hL6z5$%R+!Z40dpYiT z?3#B_e-?+3?>hf)Krpo1wc1dEc9A6kkT|~Fl{m!;SO4@wQRzpAfLq96vP!Aqh#${q z&nt2Gn45-2vVkdHap^9Xb4(mKIo(to@EOO1T9Ks&J;)V*0iv@9_@JF#sG`DKU+rgI z?dP%cEhKte_?mz5OIN*wTl-n(IQGoiR58X*9wl9OHH`*~AV|#?bk-OPtl==0>fr+? z@qtyCf9g@r7xICRZH?fT17KYXdGk`*RGxZ`U$^DU%&|+xT!6@wdqXCEMy{=Id&fN% zmef!Y{9riMEE)#w?klm+NB(XO8_b*>3#9*Rsx^Di@7{1ee6G^ntd2WO7EbyCq(Bc6#3JI#&vw1{}56%g8Ji{GSBzKd=Ka)C4}%SQS`9=09$3 ziq8vCB+?9qa56i;TC)bZWvkJ9U=x2qnqZcVeG?OrwGJ@#qX`v2PNF-&PNmaL7UvD3 zrT<1@P99zXFe`Z(!5$^i8Q7VPx`iBSjp`(hhR*>)MtFqnK%aCIYDBil>V7DIYaCDB`F_?h(o#qOG|2MkqqU|5iH7 z-l6|y#jeE#VRh-B|B1;8T>dIL%;RjYj(BlkZ2xHRG%e9jGc?U1af?wsko90T`_v!` zRO7XXw|(8`B3KeQVjeCCv#S;8!E|(W@fAci0H|YRM{LDY53?EWzaPwANI4%wTIxdH z??qb5_8BM3I_qGyAJ<)_Jj3CxEHSz##0lTKrg66yH}MWEg01AhX;dsJu0!lUsFcz&IM#+vTCdqvl?-F@%6(IIw6^qY3BJu11X_>=y>bR7SECQ4WfUw|}$ z!g9HoaYTi;s)kO_bJdRxT$^@3z2Y=%2Es~^1&JC?ell+LMe>f4Fn%23v6~aMdV+*9 zCqR;q<9RhB*)Ss*)rh42E@%7eQ)jOTW?QTIu0@P{{UWM68yS}|eon+VUb(k<;nCTK zjh7>Yq>+ zzaT|~e?yu0LM#4XQxRn3m)&p4%R5;EuzpP$@vXH|g*7lLix!V`wZ^Le>(A7U2w)BP zf})1Z{^uAuC<;d15xq;AyH?;_kYs^=F+_Ai!Lav`#N~zMXyr1u~6?5sT-b1OQ0v{nZrR&2aGyU94*& z3|}&T6$#+&dC%MM=`A)F$yZ}JAhm5TN*2;hTNx<8oR zr2ZAmPHpT*X6uX$Gf_r1$<|X~VwC?08VMNKJs(24!!+|ZsR-J$@qv$5^9gp}fs~{! zbSw1wn3Dod?fT`B%nxhdXh>Z;C&5RlrtrP-5bQ~SDY0{R6NDQvdBkV!_BSaxg24Kp zv(L`)Bn)aL9BC#X&jzrBXRrjK#G~$Mq7{oDgtXfBiJ#Ji-$cwahV&Du^}l~DH?&VaMsORx z;=1vJr){@O?5_R;P1=P>bKBjybE!nDW7A^IjUIg zyYQnFjU46lD$=2|cstf*^uebt4<8GCosxq1PE{{F!W#i!|!;#5YFc4~T^F6+jWtLh7zEPr^KMXqzuO>7% z$e6OSrX~A63tN^9C5%)r0eGF>{D_z%P>)|=_R10=C)|I59*ZK3ER6nvznG;VI8y_6 zDeB$hoRkqpwA<3jwOG3w=lJb<4^DP#Rof++C)RjgX(Rp^t_CCWJAiup`QmhqoR$m# zzLp%oqtBuXF3FE~t^$>3&G%7zfPigiLjF*RmFsjUHnUW_5}!q9C+b0Wf(i$4xbx;v zmky3K{?3pYQIdf@L55kF0v!>2PwT!PAoY9w2rU@V8%moRQDXbwr|75seQ$xUE3Pr6 zp(&~pa*P3r7Ge#ok%~#hxrKYxdVhHz6BzF@e7814&G;rNcw=a!xXT*w`KlMm`!Yx$>NE*gV|?h>3f0jXl2- z^Y-|$u~ZPE{mn>5`%&%7G1Z_T*6;_n4zE;M)<}w;T1mLueR8Jf7CCVr`wt4f6fo3P=T|;jDez{Ii%(`oG zrwA)}&?>U)D(bdgBGg{9^j(omo_}++12#_P6AT zk+$vRIx2lFwB|Wj+K^5`{7=LTvr8C35LajvZEabfhN+)5bFZY3t#TIm?S1hKePMdc z=hcuFc(dky+#_8tarOYobBG*g`+S^XjaUuxfOsh2T;~3861;ieCygnMoj>4OP@@=5 zuO34j1I%yw3AR1|!f|ph<|fAT+|2#K*SlkXUFPJyOY%?xOiaWR19Bqiwy&EX_faFa zP&~muVRa>?;TtHi5fAZ^L6N89Fu0DH7XF556D=2qtd5M#A7B2Y(2b~o{0Kk5n5v|W zEUU?f$irZ~;OXxXzlpb^-GcqsHH_LA?aP7fD|~|+#)Y*OeD7D@QgKKvFEs#(c)FKl z!QH5Kdr3|fm-(wpL>3UH?@4g{2x*2`c_zXzX$ICe7{0y-dkF=`1qtthxp~>P;!R6b z!(F{TLh4mQ)F&@i-5ww3QCqG`en;*ompTe zrz%G5ntv}5Vx^qAoYxW;jkC-zH57UaY6xM~6V*wkr6>wQwWv5-cWSLkARM&&y_;Po zkSOwelId0QNwxK|YEH7k!&3*Hvo-x}lI7?H*6UCycVBr)H1{cvr)x0dhk?~gBY%A= zvd8N-G8>6YEG@u)QFmP+PWUPhLsfZ*edxHY0yDyNUc&`AahK6 zeeAyzc78L)Nd#3;B-@7Z+AH!7`zTEg^4b`D_PPJ66gp!Tci7LQFA1y&BA5I~E}^eI z7f$QhJKFp4WTibl%b@M1H{+*Szm-*+h6uIo2St5~P?3T17e)`7?-s9oykoCe|FLH0 z#@nej+1#y&0YJgE&)4;$(iVF=+Cyz}k$&dN3M0Pi%QUlwQ>?RsDp?Sl3-eE7FZQac zz4`K+O%9y@SU?yD`(O~p-wS*rCuHUIdf}_q^B#EiV$oDDXsDQh#{Pf5LaRU0U&%fx z6QGWL=9Sm-toMsII{qwee>qjq`H-wS6RQdX3!Hd%8BC59^rxOb&~+?q#DWz=-Tigi zu}Z7d8N0iZk-!Od;+MBfsm4ZZ(`x9_gQ^NRjbXj!m*&&R;ngTGZEEF zYJOU#0({q6U zTWY@M>jUf0kEi`6;~wpm%>jW`b5BS^r^LS(Rp<&HZp_P;3@wa;UA;`X@_S~#saQs( zV`-GHyr0J`r|S=@piQ%7?wO5*44p}ndnpZ6r4#=ovZSZ5D0#l}RZ$A;%UAFAs(C3`0D&f`zjVT8zg|SNiFlkXpRzhdul@L7ulZPV z*-iAQtU4g{QBqosxZcEd3o~3YP&cL!TQ@Z-?#->WuMN*HlGkSuCsvH(-p6J`W^l9T0~^s+ zOT6Esa6;IX~g<>Qcy`?^KSq8Dq zYA$m}`X(V36?+=NFz=v_n6D=ei{3aGpD^a9GDN^OgYmpFIyEH58eCmBtv7VTfkIfbmm%{)%-iPhD?VE<=}F4#d)rr&UJT_k6x%^?zvUrR@?>D(TbIO| zyD*;C0*>Q9V$q(!tef8z$@cKR9hRcHvT{%EICGq#KL-LXYm0O3zNltg-|=$9Voh?h za(|D;6zu;9KXuA(d7>AqCq_)K$NW5O{(s)$Uryt;?Qr#36We7di*q4Kj})`WWLQ4V zyzqC%opHw+#la(`uU7dMRboL}%)qVmA2KN+B*|)gv>1FkR47`&$&Y|!L3)DTw(^&M zWOa|LYp{oLW z!h^(tzZ5cIvGVrYEZv+%r$!G4#Bm-xmap0XJPm8{P-t^rY5n`)sB{TG0s_PhqG%0! z37Vk{p+3OUtf;K^5S<#XwnWRDHiRCvRVM*o`$&IJ#CArzUqADS^^Yv-+Glvwi_8HB zVWs|g5MrKPV4*OFuuWWNn9jaM9-U2NTfghpGm9H39==%C0SDAzFHF8GPyCoZzy}1N zm;IesHYyde1SE1xGPC9^wqmxfFxcOZjRH`YxuMoWrq+R-(+Qng?H8v;JddWiLLa=3 zzl6uaq+a`)>Bdtat3xdR-q88W~3U$`=jov{@^R0 zFfop1qjrt(nQ<7*9vNaI)YJk(vdLn@?mZw0%`iX;;aSxr>7!dD(lx^><=;BJB8Pfz zn98Tt_M>;#Sc4g7mWl}Jz!G3|rj+(0Kf)|W#U}9uv;q;ayS?bCmuyFORWD<17xOX9 zMbw0l@`=Q^9pbU*j!>*#$g_%D(Z;E~d9*IYP^Y=3)H?xxdLXUXLQ|d`i_R^LX*>9K z)!2AVDXmX_VO#L0VV;gXhiW9ruLPhuyJI5hq}1F7s;e-4uvBvL(js)_(x-gI&6dwcc77py;?Ex4LCiciB)Z46@K|&w zl1B5$XuOi;@GP6_$g7|HOlV4GK-j_j9g_jOhmw1Jb6l6z+$%mwRsFWlJ+YxD8F`(X*FG_m!DoO$YNuNzh0VqmB+Q-{%$97TV$W7rJN#?3WwpF!9 zY?HiqpFlnXQ&bLY!)a?gkobg3G82JjP$C+|+}UMDv^sLqlU4jhvb;81ocYQb2Gswm zPN)H;?vt!o1yab;FMrA>f-hW$qBT+wLZR{I4K%b-(!#i;sBk-xK0b(K6DLzQsAz?KVlmwDMG+K{yk}tMO2Z6NjquQJod2A{1 zXj6>bmSNZMXU0q;T>oF3b83e5X!c|!KR7L3zzzwUic-xX8Kh5}I4ZGnB=f8>y7=vw!bl9@wvdgCVGEapv4PThUX6RJdS_ zI2UnneWDOfs})5LYrS;A(_BGEPdhD^p=|=vrq3AjfJaO|4pvz8&x1Id^{Wz~y)++M z*X+<2chP!M%;~)7f)h+m`oi+|s(5JKdGGDQFi4oYTQ37juISh45VPqKZ=OM^|C(WM z(wH9WEq8Zn>|hemEDLB8t?*qHcB>rsiXw?>TdwtT_D`SdZQw1|=6rk8gRb3HQ!bl& zQe^IcdXif_WK&9bQa0m$w+Q!d za8~14VgI9P(UiNh$mz; zJO|wy<#F$y{#wecb*h!k3D&f+y43#(a+?y zx^Wp;3Ott$4koa$yv<%rlTA{lQ!a|JEXs?|2xM3dIcR^9I9%~0Phh+Bpiy$+Q*t3v zQZa|8r;FE5p&e@2yZFqTWwxBIU-|gPHYfcPl(<=}b{hL6j5-+jc$4?rn7&qa8g))Sm3;_=tSc7WLUxgtQ(=a! zi2ksf|CNGN;cv!`Mw^$I)nGLpmj2+|pY0DM)($h~IR2_3x~q#iWLx$5*j2$hTrr-U6j@tgCwp zk5=VfmoIe6!tx0+aVqqR%8-6jbT@h zO?o`Ey29iVx@(FhRF(ZITKu7C{j7fFY^{i!d(+|Is!pP0L>W^L=dECmPSG`771{A# zsI7n&zS!=5xw}VZ@B4z#r}8_pIuyl>Q>8?ZtEgqE+T^ zt7^T-+XT4Ut6R3qApZyQj{+x5}%v$tIC3r@kPRev7tfHo^y6MfTX}S37_hjg7L8o5H54!Fp zL@F3W>Q913<Tgcv=s94}p1aJ}03Mat$HFhZWs9`kqX7}MUD16NJvJD5eE+K?3* zP#w&x_-pHZX|A{~VhV`cwKA*Qe+1OEj_cBbblm7@eN-Q?nE!lZSo z%{Y3hQWrs)yUZULe@aR!(WKFpG3&+i<<*!ycd@ZGooeWB-MZ5I3OCLwd{Xy>igR`r z=xs#Nlc1xiKh0*bD)`M_D=UmeRNslbYZr29sEz+zNxV9X1!8THg!;soE+~Q)F?j`z zIJgqF?>CdhWWAqm_#*8z(@)wQhC!86&^msOLFzcDQ@S}^_{$*ZJOjEZ)Gcj=ZumEs z>VxQIw^!wfUCVWAQNG>=&r~F$BiWrv4S5AN=?Aon2+F{mUKuhRX*~Y|Nx3iL%tUHj zpl!MY(Ez4-zrn$yh7)&Hzu60jK?{kZB4@En*qhOq{P%IdEv8E4;)A9pL#_^r1!JMU}a3PRY}kWPmC1A_;sS(?z#a zixk#rcktNu#Cdo({D|Y}vy;Dre6Aaluh1yUUKC-=scb=YR^T$M$WLRS9Fh#!B$Slr zyY?DN>}kdbhU+vJah5k+PViwzUj!60H>Ykw4%&qHXAuL!FzkA@pTifDX*3;VuT&de z#h2Ps((9rZ4yO+LNXcP_P&%B<^@9MH4;n_!E(h5X)a7FS~&V!!is=~gH zO~2q)^c%lU=8JL~m~9YT(YB__#fG(8ZzB<^HCZRiQ~~3!OQgo(1Ny{oe&s8VH8l$6 zH6c*A)V7CZKK`Lfe%=bXeZNWt#?8`8XdSiEktkqvX=a5E&(a8Ze0>)T^FyK*?YWt( zMdNPhFrC`Y17#pe@kp(Na2e3PQ<|d}@6v?|$xjo%9n1VSuj_XN(B=nRV1}jkY)%Ur z#!;<4*76*Ar7L_dLf%K3wPY)kBHy|o$K&57iz`~@tMaAs(>*yLx?Pd}2O|FFueC!F zGDm45Ej$rlLNjk8P=%k zc6!q0^nszuRmtZ&3C~!j(`gJ7DoPcJrt6DztzMFmsXIkq=zYB-bv(*lD``xv9NNk) zAml%pf^r7wDvDoKFZ5m;MG{OyOv@4E+js>NcidM~g4g<8fna zA#0I1F8}5@T(YP+(25B2fvJ29eKQXz@ZgSNqYR?%K*mIt!3q^pkJl&0{q;V;OVNSM`^#Vy)00wQ3O0S58DXkgnnqC<>=AM%jwG}aKD{VQB#+Xtd(P2m*aSJ zo<0YDVxmaRdiJ3_C%2kWaf0E-kN%a%&Wq-72`{M$c&yvC`8d7syPSRGIxkz|Q&nha z4QO2=y4i=MaWiA6mPVspTrM`f#{$VauE)je+hn2jo5Y=Q z8?)4UcM@6vv$&1Np}h%}L3-qOzIC+W7t%%7SbUV9$81`7VOXBc0gN2z95cA`?Yelr z@KjwGAvc=YJ8bgJWkDikqrM~2KbI1_x_*rC`RkrHbLI7HGk?4A`0mL4_8ZyvochM5 za?o9|_^C$uXEE;2sMi9?#ph;`gAIoS1ZtC!g5iYX1!LiA$n;xsMC&*Qtw1UwE%A&y z>==N&UKr?xc>eQC;Us*Ub{ooOiUU3y#R{E25f70C;_hHl?7wMkypdOVuvN~LiKuAV zCYwzn=+ZG@3jfT|CB%A!xm}Mh@+egrE=C#|!Ao^~VLGCydN#@HwQ&w@E^~O7njrd2W+9<|K%8=wXj{$FzHqb<2qnaX336w8LAQL zLRa2l(6vBl%TW!vKKV$Vgp`M-hf|77z7CfwwY)82LZFQ)=tIuMcC+ z1&axhGR)Uh`U|tRi<5v(SQ;v8`GYpxMin-!~xpwIp$EVbOFWe z`Lp+>nJ!8PhM3p6i;>QUG5f<6vEf1_6_XUGGT!VK1?Bu}q=!}4Hei4CMJ>kDmum-y zcGRJ^;^P>MX5xew(nzS)v?1ni#`>d$!cVSpztARuviZcht`EKoRkLoCW>wDFH3t=q zezg#k)+PV6?M`|x1ZX(dEOIU5d+sO{HGa?END+j}MLJvAp~W~ils#}p{eX(i3&`fU z6$yTiSKUm!_GA;@wVOvIguIpi%}GywE}HkwGcE4xU)M|fgcp-%W(gE@6xmB=(gkhF zW#Gt}x(aR(O5a;8pL*1}1vTAAM=L}x>8os=l6Jp``ig{P9#!XXbs46V|7Zas9<~Q( z&H8-KzUnFGH(J^=O&0Cu8+tj|5NvyN1t2C8@Lqk*w_0{`rjq6U{Y_3m^P6$B4EBDC zjD1$U!F4d~Wwj86<*S|`CV2Z6-C!#3pjjRGEe{SCcBEQ%RXQ**fYkK|AiDWaU*2`G z46zvA)9TKbj1r-}XSVRm$%5XAl(L9E(nP*|E-gM}c9@DA%A_rFf)c&*{jLisZ=;0S zoAlmJMwD_OPBp$pq9hyyQ2`ksP1**Pzmts1KJGRv^uP+>|tiDMp^BePu*1>T^3(%7kDztWM|f*Y$LLSH!dlP z&GAgo7YPef-3-kNVB&`LE5Fy9Yc8(tb&hXFD|pbS+X;2Gg=u>oCBv7spc(iV$nyLQ zp<3kiwqZ5ZulN%BINg*uKJRG%$y8)kIiJo;2)p;@svwYABd5@g7W$S|sd}@O`005U zzGVIE5RYFbCx~R+M4P!S&}vdkw826^>e01tU-j#X1T{I?v<~dgUjpJ8=mE^m<|RU< zzq60YEmM)!ffdLn44RcS)EuINItHt2j$)Vc+h@Ol5iqg;zH2Udr#qsKAMK7Vw1HQY z5erE8Dd+j8r0UI88XnEyN*MFTk< zrC%IsLPpS=Wz@vWoH)_%W7tAOD7Nrbk7Pz5Ado3VLQXL?>5k0r2?BKnzyY{aQ^o{xlmw^e$o@Q;wgo|pM zW6vH-6+}xWqlKFWDNxnr`uGml-TTO!Z>V%~mA8`U>iO-89*gZCak$imejiXLMeiFr zW@Nmm2bjn_+e`LVjoB+r932AaVHP+x-z1ZVf5C!z@y#EeHd^1_o}+|u-ws`u`L-|C zFg}sr4H^@ctZHLovGV*316=cS~2g>B4rSEPe1NQD`IvUcMif_%35z>;dZuKZY|TH-RanbfE1zodh7-Clen zl#A3Myn|}#4qc?+;M$xwzAfVID|GAtMdYLyY{eXAe>B5JT8zxo{WKGwnDLFU;MskC zUD-4eb|z~?fweY0Jc}&Uv>fPU;9*7f1A=`0=KC04{@@!ezNl|QG5Ow~M5HHm`$~w? z#Niz#4dIE2^yN^t8HuD3zfV{=a;2<>&+b=c4xS&bgsZ#_>oyLj3hfu(yn83YfuKY1 zsv8_J-R&K}iY-5sz60h0n=uGskpCuhI*(DF?PLWWQF19DM*b6?IadI8QAyoRP|``u zb71B<^*|p+*r6Y<9MXK0^bz0_Rk9H z+sahgaj!(JUi)#s5GP~QV(#Wx>Z#7MYOg$~yiW# zwz+aHi(OR6ZGBr^_2p&*{qpZO}ZtAWWtx9unP-}PQNA!}#CVm<;! zkus%35HPFs#5j3F@)08m{WL=r0H&d|MX2noUXq=y#X9=QH|O_-){(Q3{K2sUYvskq zM0xz{H8Ge{M@@b@>^|NK5BI?95F^laW*X{;IqE@tEXEkp{%?|R7nw5vub)0jmL4`o z$^U6ERSF=taSi({A9MQ+RD--7gSz1nVLnA*nYIbZz_xJ>uIb?GXv<&qpdh{Lf)GN$ zP^Lf`Y?RyPu<4ey8RIHt8*^N339{=Z5j73*f`Gb2Vw2l_AS*X zNBd{y>s3js0I(fPb{TbqqFl|1I4qGQcAc-6X;mcQpRcRQUQPDktC29y$#*zx5y&#U z;@Vc}U$#*`67k=Y$J$kY!K`rTk{%D3)@{3fz;vno7wt?+ni!k*^7+kUVU^dG&vg;g z^CGHl{cpuzN46;W7&Yj9)c%#E>Llp1*!tgnPp8Q~Q5j7p(u!?ZWZ<<{rYUpUIOD%E z;8^?Uy{7#7h1Y&W@`u?2jf}rdQV(R&3#Zc`4SqEzg}#(dX{dCkT_emwcb3sU{@C@& zZ0U#@L-JYwv>+br*M3n`= zF-wxDtS$I(^U~E=m$CgDYj^7XyiiV`tAAUCrs)Q9xd_AjB@9*x!s6p%>anIMOx1$B zm@o%QVB@sxhf^JUT}5AZwj^I1*E?j8Z{_*a|CTATLE$H?9`APzv-h&Re8mP%M(LMwZ5k%f|uGaX@XcY%q>jRhV}#o8j<7GyCB;D#G1= zr`|MrxWiTARmwr-xL=j}k zQ)(UBLY~Xz{wR=9kY7Po3I%3=OIpuFtaBln%6!WDFs zBgi?Fdwk#GE2H1XibXV()72`yt)h$!k(X-kn1V*RkP|~!(Mtd}5)w*b4bo&@oo$%X zw-?Z|{F@2+w^y^^vyFIZ(ykIB6OOA4(|L%s65HqY`YYyII!19!WU*O_I*m#SSV9fg z+*u^WZ?l9PQlQ_-CN|&5c*xzgY*#HY4(#?1EQu-}$QZW{c~@{(VHQg_B8lY7NF;?l zVi&&2yLTmm22o5vqnJ(D#$m#&u2!EcCouct(^p3bbrn)td#k|LS0^t-k<_JtAHbinNFTAi8qZkN zLTnJ-*}29k(|f!?m3MMUD)iu@Y&Mi)oC0D(wi8E12)EikLAeFFR5fX}th|kyt{zaX z!*Kw?q3U3C6lZHBH~6$xDQ|}SLvplX>+ zgUKjEsS}AsrMi{Bh0ly;W(Xl*+zTU6$9mj>06kdd8#~TOT)vGpe*Je&rrL zU)6W-?k`uyQz4A8zV*{^73OK|PtFqBOqcIrYw`M8X^hx1clh`b2Y4vLR??N?#%x!F zgNpPPbmo3cf%4dYP;)h6_y7g?cmX3|-VY5~(+o;pPLcbly7;C?ZJ<@oFH4oxpZR6+ zLmT>WU>Xmf=~-$4Hs53Y6aMv?T>96}a}2P`NM7rB6~w%i&Y zFQ{&}l9Bo-8LsNmWip}+4szU-{d%(OV&T>OI55ShQlVs8WeN=XE z_S5E^o%}a`Fdyqg{xP~u&j<2eYSlp4=RvdZOMSi(L~_VARlXugxv8ENOK1d635 z4@Wc3$Q23uGpX;YTxL%Sx-@aZQwM9@ctGtv_?SX8uu_F;hv>BdXy>6p*j^M`+#88h zmuxL`x~pd+t49ZR(}$gbf|nV>ENs`TXc~i0Z@L}YuCs<}KMxIv1pUL062X@}d0KkD zKU&q1MAGC=3WhJyjbjwMzzVdh8JEFNX@)9iF3opUI^X849oNo1heQIO$tVZdokbe5a7I?bcJ zLl;xg@e;NS6@7W9CBU#En}Y+cL5C&kInOy{+FC^eFgS0Mxj*`7=OxJ22=F$*M$%#s zM;0f~A1LS|UL({~2_WRrM>O`p4{%;z4dkmKn{Ej8%A;_&hJg}2c$35h z&e(a+nIG002+YjbYv_904rIa6K~KC{n0c~F{CRO3gd=t%mwb_p2=W{^wvsWj|DEh? z!TnL!LlUML&)OUgPR@oy++{yBp6PcQ69wYy@N*pWXhNP8vSAdV2t&i_Q>H8@HGM+p z4`LczEM9dt&C1_BDGZYE+|Je~pNx%fxB8EJZ>Mu9UTw{;ea{=-{`i8HgA5&oX)28? z&U`Ze&@eiF-k*+R*V+{8V$`h?C5#AlD4!UsX&dWoh(>i=d6p8k^IfQ<=D zLL6UR<&&O2FEWDrK}kf9L@KBMgrb$$#H_v_`+OSRop<0J#US?n9}EyHXk>e9M2Wjr zJG<1cWk8*nd9plWZ;$4e2bM)6ZTC9zUAzceEl~g#`46flJ!#!-wg`fsHJ0`Ve_s$V zS7C4~L@Jw%xK)2H#L)N{P|=YpL*5!$TC7Gwx^P;rwui9p^^P5RVi~P}>D#RD6%i^Q zF#yQUSZ0Wrhfxbn>PKk)SHpV|1Lx7erm3mN_^?|i!-^G?@P{GAmv=|&(Fc^7_hSX? z%I$pjOl(&&m}5yw**&fl?Edl4Lkx~?%mUhXOk0GebX!8bp-AV<_ibXpTtLuhTnSZ* z`4*8mR#0jUICt7DnSYU0JzAsA98PA6oJ{F##k=LE5XbY&4Y^zt`+17glsX9`(hbIM zT22uQ+=w>Wpe56Qj?NC=ef-VT)xmut@Kb3ll5_bQ3Eb%KueucLWR zhl!Ry8w&fi+b5S7A=jkjc#5Dhk)n(URlULx%81uTsF&)M7#MR}myw4+JTNQr`1=hWm;P6>T$n-x2qda&HN=+6E3Iw5Fv z_RDxC80Ch36BufH1mRvmxoj~^8J*iS`o_vGKI03b=YNKGuQBA~aOn7O%hsTopKlVQ&G&+Fh=Db_vFnbmBgrPj519aOSbW&GKTsc}>mv4Z zY)izmamWXrM@ZH@Ed)U{YiZ4ia+pi4CF*o6=Vz}EnaO`613%e?OA8acHTo6}`mRH^ zQ*Zwpvs#FmgFx^*zN($h$6>kvd>JXM*p$R?ZLuh2J zDc%a2tGC|-ICwwq(@x2qzZ@Sby-gX!CE`Iyt>^<4G|0OlMraDJ8tydFUY_H3emg<| z0h%Ph|7;waq~0s^(#ri1vLe(S9c6q`bDw83Di6JTBdrn;6y=7ju_+wdqsU$w4Qo_!CEyIjPGgv7ZMJ1> z6!2%e7OAm9g`W@-F}1A~GxyH9Ml_1@CgU@*@$3*wV-gQtiEs0DJrPHH z&-C6NIj=G!y*27uMf@(pLh&sPElDCMM^wN6ytia{0Iug ztdhDJq7Ga`sY?90N8|3Z2t7?Dd^m5EE zjZn?}Lm>S-SRv@>h~IvrEzTd|LnEd&^TW#lilI~R;K~78+C9ZdC7I$uu2zJUyV1d? zIq{U_8K0<1*=0Un7@nX-_m0jbMYmpCK1xZTEK07gi zHS>r7jw}^e`oF8Bp!F^=alQ7f(m3G|p;oeVHi`^or~;>@B~Si{V~BV`K3y^I&>m5>FWs@d@2y@e`_oJ^ zH*Uq2=vkam0!7o+d)-D_;V1>q)I_i~Q5xJ(>(whqjhYT*x=mH}L=)iRX$hP*TJd-1 zAZJdnVQFo5PTGS&2OU(7yf~%@vn&q~oE% zO#+<+d7l;S1SOwsYNp!e6&$4TTD!fpRO>rF%EUZIrZ@%t2u5>!?F0q=&$a8}d86z3 z?}I) zEQ~-}CfA{d%!mL{-f!3_EV>2hbf`kaXlBz1e2(Cz9@YIgTuY_c?(eu9c%9mt9?b9diF#|u`=P^X4rSW0s z&i8o04G~|2zrvME^mCYaj}cgrS`ZjnoQ(>P!`N@FiYK1JeuiHp31Md}jUm5Um$0j@ z+{QQYfDBvRY^>-9cD3gmp{Q;&!AKd^RtBA6HF{*wHHjzMHevT{lioLVP7C5W{JPX@ zNWjp^Q4#cuDf|mtbN7zE8fB+pZAl{Hq=NhQCG6)Gm3-#! zVHKb7I(d_7ll#c;_zroD6T;oUB~YD;%+8!gL4_|Xbri2M_P<~Wo}vAWuUm_WMPCd% zKhELrw&yrzH*XT_J-6Jw&RyA6W!DOPpsBi6@yJ_1iCE+-)D2`ZRjQ}%NqhDB+#p@A z68>m_8IlaE!vQ?%)p+Nbd@boZj5z5EXbD(8AJk=WB#lRtDB~|A$o)-W$>Y#dR)Y4e zP;%X?qDPlZy=M-~=?tGS)46!??u_s?Aet#d3gXzxV?q2#HC9Ca0|&rht;HrFTL!lX zy@*&zJ*Qth9;3b+()+Eh4H-2OzzIPv2#e2cQs)ByW&BYQ81uUt z)GvGGD@Jz)fsd&rYBe?Qerfm#?T39xg-2+uE_ax5fkxW&7}D4Bq%D<8x5D78*p`6n z6@vgBV2+ZYAA<(32-2Q|WR>m)^N_JxlMH$Fv~Lpz0CA%_%~E~uq&KmhGz-}T3NOqpTC zx(nf@g2b<=uCL}7=82}Eg_Ylpg^Y{07?wN}^eB54-NLykCRBZW2rRb+`YS)zriJCb z(T;cc^eH;DSGO66e!h31`~I%2)4wH$vdSU;LoHf-b+pde16h9PP!+HB5^o3uD+ZN< z+vQ4R`Ytjwl?B&qUomrp`rX2xN`8wuQw$*pT0JBTM^{^ItVb86KTZM0f}Rc;a=cnl z*DA4O{$!})@bm7hQQWQm{}_+L%JTKvqWaHqG9kTcY-9fT*o;i9M7zHR=jwAsSNMOQ zSgtMW%vc@{Gk%cqM*G6loYVM0nmwT&2y%DF9pd1zUxv=tG(E+%_Q$aJNjWWBI)*hg zGVGD<-TNHXoZVj!=N$l}BBCcgOMvk+Y_H!ztDZP-;sZnfVu;D(h-}E#<@r<%VZ+5- znS8Ij;C}9Js!Dp$1hSi6?ih0%u3Q9q=fmEk!n1JTJ}16qh83?N2h+ZzjOk=3X~6i^ zhWA%iui@_oU5}N@srAYtKiwbvk~yTH7@V`rK+a}Lm}2DQGGw>|X^M`~ShNit#I82= zI^rUjh-1R|+(cBNh=R>RqA#fFuF$_fn%&-uWi4ObD{v0;u}lu!M~CmGMqvlMbu?mG ziup<8G7sO{{e9+PoOCQ@H70E>I0$h-T$wpr6AsWhS7ZsI9^rZDYz= z8mZM`h?DM>gOK9z~$L5dmOfnlEcsMKSFu;)3eL`ZbP2`L0N&x zXM_Hm!psp(nhxiP06k4f1cVP63Z^{YlA{l4qCfA@blR;QT;C^l%}{V_tC0JFs^Bh` z1g%!fbDLAOe@%kN7bYrNglGeefmtub5;%=;MS0?5O5sWW-^h!M$wfmCY3~<^4+j-K zt{$t9;M)PfZU{tHFCe#hT`GHPC4I=g7@ylDu7@R4KrF4-huqUF!Op-&j8@m7@%Oah zAouqus2VguatOJ>mqMI3m(p@3aLpvmi64DBK-Y~cUmx`0hoHC{VOk`c4~ceD3r||*GCV%%kWGc;@qy14ilcs3$XH?S= zjXb9uGNxX;Ux3uGcZx{tPgrxHpl_+>e~JU+2xqB(rx=TEkiy4(mFpwL?(n;&C>KF> znaDxk`Jv$%xiD0z;-hZ2j@g%o-kp49J7;Ph5NF`PtOSaWK6%%@iA18UZnA>J-m`~W`{zOD<> zgB(-$N4s&w!M*o~l*z}x9VCz-zv0t_A`Sa_nYCvrD zAUep*pP@oNml?C|sN5yqWj3QcQT`AG92{zlZ_l1h(B=gC{r&_!zz22(F}uN`(u0m` zQrY+V%_UlwrTzpm|9@&PS_e?PhA)b9<3O5m{Pc+i!Nj zNoDjb_N;2RbaL>PqJnS(xw3w{Ki(2;)jlS7MjxyCblR8+Lg#7y@$+fSe}7f3$rL#m z3~X~b*zm4m^}C;4a1^$f?{`=Amt!LN@flj)um%->cmWDUmqzMz z=ta|K&z2%DZ7v9m2v=fId-GfGz9yFpIig{>HD`Cb z(0IpenzmI`;vobdwDe8621fL61?(>GTDre9I_xZcZ%_Dd-s~HKiHr5aETh%?@K}t` z$Q80Gx-4uFz#LIJ-YjkY`u$Y z-OIxvUMsQZm|C|1Q8R@NwHTVdm~%dd7LRqBLpl*z4vrnZ zXPnLKa*Dye5VnsPAM<5V9?DN&>9`U2JPdnT)DeoTamqJrJ~xh}o{E4%MDwa^VLlNr zs6t?7gbI19_g7uGpIpjd^M(N6DkT48(z11eHMn@9O#zc zW)8GiGOG(%!!kt;qJ~n04kaN{@>egtUSoY2`fBoIDuVqzqC&)@TVCeg2uc1^8MJ)9 zSQ$tS8J==T`_n<|%^aG?ISv4UyjE_WpXvxz&iz{<_TgQ`p(=~{{5~-wBa#k6NG}6f z{x=4h{7hm4UACK_33H=@Dt-P_FZ7&ArUz99Jh$1!BN7>?&v*FCzL7&OvsB%#_lM|? ztxz5R%J_SX|I?RULO67XKFLVl{uz|MHSlIhICQh<*7cjv?Ep_33%9`l!WKC7fJ3@C z;U`2y@rL?Jn5L$taF1$~tOTpjM7%2Eg(vf-ige>x-d!;e%H^{#qNAAc$37>%gl(rN z6qaRJ>4VlTng&w+8VIM3BOMM|;TDI19#r10iKPgH^Sw6_#6(ujFw5{Mm=L;_0iMp~ zQ*q7Dt$@et2TOq0%#UQWqiY0af=nEf$E?$^+N_(Jwh#9KzI(+#U<(RZP)vA zf}SCa3*5#Prwg0obF0BREh8XDv9iO zpeu+A|31Ksq?6+qPaVbJRmQzYA0aTSZC5{ovQH{0K@M!D!Ce#z6ec8?YLO!FrI(R7 zZ*5|}@-nkG3<{qe)gheNvZ_ion|8CT_R{Sl4L_rMvrrc|GZr zN%1lyD*5|&NAT1RRmHgPWneb=K2vi+dt+W$5LNLr!QT+^@YWz8*j-U6Zd|)M=GPk+ zl5J9{`j3~tozU{XrSPP=7#zG7q{z?Hf#y<%h^-41x(V7GAF0!IrcN9GxQ27t@MP03;5Kp8^xbi;A@#8?E zw^FB@sk5iatyeX##c|_B$W6n`n=yB5FiC8ETrCOcVznPFBmH&Cb8K+InA900M@AEd zA%RFfz*@#RrTZDM1$WWcFb!|yG8(fCv-L2vN+p$vCmF;JWkJAB%u&t|f>S_r3L~)|Q8nC>dk7m;g3(XnwPxorfLa^uYjJJ@2XOrLc^oEU z@8XJCwsy18nKBA1tQCPA)%0uRC}kWuAMX1rsOC9Tr2ZcKzC(Y~g-dCaLi6CB#X-M; zI{hh#(2-d06Ql*MI9hNIvbzN^-D5cFvZKx!7*VVcml9fqn+$T}tvOpGiEg8?wK#0L z`g!l2aKbX})B5^ZaQ84XdS@?Xq^Q9Qj2L z!Q7LaH>^*}`op?Q>~OUa6ncPD#0MfF{XD6}>R_FDNNlxYsIo%lkP;guDzy7_QLKVg zc%ceHnPuHC0n!&Fs&-9>2s|_D{S^62tn8vD3$7!;8Tv0Lg>~=PEJo|G^8Xvru%0eR z%gsuYZeS`r(H}!8J?ULIN>+->*cl|YLzqoY2AJjC9cKeU1}OC138R@rO1LPB3ywnDmab%r&*Y>gtw)UA?QiPym^F*RZ%p!L#n{mF@Qgt> z)=I#H;c(}9Sw7_Up@zXy8#iK4F&E8?g$|Dv(`AvGcR4bhZXQBgRo!eb9BA+|CfANQ zZFU2FY^%k>McQI{z>b}znM!|ho#B|x#cjJa4OS}U28-q6> zRb5xiE|&>u$#};p#~eCdaH>Gq;u{UzoIQLD2Zn{30=YZ@L!2I_iaE2viKWjs!X5TR z>@_o?KHl^LreFj%yEFbVsTESU3tIKo~bbF z2gZOV6IY3pu--_2u3=K|&mqc0ywHba5!A3IecB`zQ*??wp<6G<*ON|e-8qjFukp)` zHrED;pU>#^e<^z~oOZtW6B&CAx!wmHi&cUtMfn{89s5M8*{^;VPcc+`%54PAH56i8 zwgs?B`Focp1Cto9PsB9kC4tIe=I)oenxu60?Az1?Ds_q+bPkFFMMd;FpP>J zOuljyd*uBZ=nI-AUTHb>6wKMw(~n^HGH(7WKLnmHpWWK;p=Q+)^AHa9O_k&8-Pm|) zUHy7Di+1qjAD2SLhAjwo#JhQ5s+zg33mEw9)RLk4$qTrIx;-}yx!RVNx&!9xqwEd|qB;i7Y zg3n>oF&m~ILFNLLR892nm9uquKXgJiQZQ0Bt`M!05I5LnGN-R80rKJgfcBSCilr>@ zF`>oEzg8xj`B)Mf#Gn2Zr={lGr^`)-(#KBJ3jV%5C8%k5Pa3!8$eEU7G61S2^6o;B z{)K3#$VZCF5A_XdL`)7qhk+AyJSmk_F3PElWFs-7;D2iV2?v1+5kC^G3EeBmpjs8jR8t73>X~Zic(uFp^gTM3s)${{8iM!O&8-0Yx4JD$1?9wY5<7Y zr=lw;rv0oe5+d=G(@+eJpgd$Qa3tY;?DpP+N9hYMBK^R~N7 zI}&sG&K@g1QDsPrwKi!c1~KmIL7B53QXTnban{~y9HVGUt3$LgaFfL*7 zm8+pMZmTVMN#1nuEj}NERm2VG`7Y8{-mH&ICEDc@}~j@U&NC zzvD0arAefGfwRVzScW>d>q|$rumKqcq4<4QPS{E>J^q4YK;JN2lg)-w6)%HIAVIfn z7+hWpyaV(vU_~B!p%VgbFji2rpJGI( zj6Jq9&Y-eB-qudvG6yMkJrHfEHm;5mHKh2Ys{~0cRsB#V1gW7GA{ zdn?&y?A=b4T2=bu>#V^|DHj)cnRE_FHmM;XBnyu6vM* z0@V@M>KTdUK}6ctNv-E*k57n-hP8CmYyr@RX_AxSWX2YbxEXFufb;jh+y>BQ%vS~x z7EIYuQ^8h6trgK_&)oU7pzY7%dMeWzk<5Q8@t2PkFh$l*g_OZr z30Kz9p`h3aL!@zlh5=@1xT`0RiMd(|{M4WUbF-n$#n$h(`LBk5MksLwvI?L!Lx7(B zkL32+WTY}T&wqNqO}%f`pqz)G#Qz>j^Yrw`mY&X5+-hZs z)$jTu_ci3@u;NOvT8Kc^)6Oa!G){5JvF?7FPaa8s_!@dOlRS|Ue}=JX2P~4 zXe=NorVhOE#q1Peg_{Nk3=66h7Y%-_0TE_@FT9m;QG6v)5&Xi5wzfW8-ANyC(!$fD zmHo92!N2t`@RKwEGG%C?e_T`*H>ILkIgdP35W~Kp6-!U1!6_D~CG5eQY$i5u z8%?v8A8pGD5Hr+MfM)`u@n7EK_5u@(3vq+-?#kdZ*467bnHwBF8DfT<&EJhUVm0FoDGr@0oVf;H!3nYg8{fc=$JuYvhoR?-W!hK0XKagL zUfAN_T2P_lAOEzA$ustw0;n*asVRcf{)M!|F#eJt1tTmjkS~KqfcuzJoH&>uSVWQ&2qx|_=J}%;w zjzK5Wn|?WUb{V)v9EAzSnPT~KSb$Vz<ti|NON?N$EhcC_F01|HoEww@*q2Y`xKg^N1#&4Bf9s*+;Dcy`zTNY31wt%f>UF)q zl10hrs*Nj8bRuzCBPNeq95d9-2opxBQJqInIo|Rsl)C}7OhdO!!$7)+JV3c_StQx) zIn2Dks!vL{*%1&iieYcjv`hzpNr9>5o8{mau<{ckh*8$@`^wNi^d%7+7lfS*atG)v z4N23WRi;oJPEL2%1)je>)4#qL-{iBtz=x`a{w2b;Ew@yy*<3XawuK6O1&jrmqdEw>`_u_ zIkLB@DMJW*7zPKib7LR7!Q*V!(cNS}R%EKS(sO7~xO8NB44JYVb`U3X2HIQVif5qF zzd?A|!%sv1$)Qg=L)lwIUQ8^DxMp!}Pa%A~UsnWpgaHG@l5p9SQM@NpV_C~PZvaF*GZ$zjFL&H>k`WTM8=_DYI zxFkm;lF6SUtpqgTPIt9d+gOVr2xh8%y}Q_W!=H#g$@Y1f9bz@CaQ~%#6of%A1+|D# zNr{0dWqYtr_$>OiYw>oxV7w*&?)S8QS(Yz4i51|H?!-ImPMxhY{w1kkQJ$OK#NIni zBqb2V{;E#>nM$>zDc{My&qb`^D)VxpR$Y$gO^}j);jPbXhZ{3;RC@;cq;xC!m_Z_MwRVyoB1s-_m!c9Jf zVaqJ|h4~Z&jrP2FIyZ- zc-cuYSX6Qp>RPZ3{)KME{ParhaelmA43^cMo*|UO0+3aj)HqGB6VA^g)i;Jx{S4MP zvphEvi^C%adO7~-2xZ4hzGTx5s|(@|stfWI(_7s3w?Nd^MxWzN)~7>RKWKQ@`k>?c zWuTW5*X-ZmJIc3^?(tPxK5!kpUHS$nEf)y8Bw-^7ohwh>dg#2!{z>3R5hk~Z03=dN z3F~01<>?U&Hv_8SqAf~G(FpA>S&8c=08`U9=oFK*vU>F6Q<2d5#NhSW&}(r4Eu*5_+X`IuE3Q zkLi+(s4ziWPgisIP?@*C<}Ihoa5}kW-E`6~R;8ApLMW;$EM@xddl^0Q4EY5sMe;`% zN7XS`9x7+G-qeehq{gXvX%h^{>r`W@LfHw^O%Tj)nd-Io(|BC68R zc^o1uMFWW=*quQfm^W`|6XOVJ+^oM$r^{hYt+F3gr5b!Jb*!clE}mdT^1`qw9QL!h zne&2a7tNAlm>sRvKJ78TJIUBh)e$(#!d5|vNz#ucN(pZQ-*r!3mPoJD?nSnI{qD;v zvOVQcV|f>i4U&8lXq)ilS3^{oi>)|_s|7~%;R3t_3*4;rL%GK!wugu)(bnwiObdp8 zYXx(iQOFBGispUPpom4n3EUazBn`R5px-iSTomka<$w2Ve9GTi906VltQ0!^+QxX! z-{iyp*`eD{LmP%!m^6BNcfL0hjoON3Nrc zS0%|c9Bd)5$lfJEqu7i+2lXu0N?FBsYjvLZ~ijg1KXrtxELfNTlGpr+g6 zp!YNOj2VYl9zM&`i59h8Pmql%tH=6Ee^yI4*kH?lhSCOFkaf2HGOW*q4bo|%c-QERxFziLF$>p z&mF4K%Obd0N!>GyLDcQL%TlA92GqfT=9NsE|^FeyqX*#Th22k2t}Qv_cf&G<=uzJ3C& zzMi-DZ-cDx%ZFQa5FRDvK-3?~N)$H8;JCJNf7C#az2xaFZ;aGG4xRU%cDx<}Pi+n@ zO%~<7R_cr9EIgNy~hJg6RUWjKjXP2%>5Q1PXrgXu5X4>6_xDUT8BOfp?B z1#nZ=F_X7VY)blTn3FVLJRRvE-fYkQp?Tav)^H4Up8m>IJjw`Zu{bC}N6lKAK7JXC zV9xALybN?fLUs?35~;<}Ecn9=m^qgYy7G(+{sS1e$bRnIjoR(A6&ZTCw7rh5j>l`t zwj3%fcyG2=CB57v_;y!Zknmzu6)UQd-fJ(0(^CmD64UcReTwrdeS7M=9)E9GwR>!M z8j!S_hcy*G+QpUcQ&q&-l4aCUfb#h*!Jp2_Q;n0coQ$Q+y~0N=nKcmiOfOsI!&TQn z#o8jL(x`UjHS(5#-jg0@)nV{CGmR53qb3@=rX~#&UP&i}JcO9DIyzTX_IWh`1#;_5@t}ah7Wu^si z+zGD~wSWoHLjKx9T-9&OcdVxB&L=8V^&f%~>VDGki&y^KCFi0K>UC66QB;6v-(!#& z;%VDQr|P$G_l;s$tG60uvdYkVl4NHfns5ppKIE!-3`MXfK?h6+`iMSqg8z%<=M^v+ z{MWG;+894tJpBE-ohk2iZ-bZp(`|z{_SuD#CY7F240C`SrB^~d1N$Mu&GXGR%3HI~ zzHQBdu=|vwSe9Xxcdmw4HjNOoI-df)SjDV;T{MAt0ixw^5&owgS%oATG+8){9X%ag z%w;wj%Lvn7S13R77I!(1ZOcZu-a7o(C}d%-PPQNZjNqg>6 z+=bv9mdWop+r;2A{@p5*tcp6MG>byat6ojdOl{_9F+ijI>1`3bxocBU^QBLMD-Xz7 zCFK30SC{?c04DCXlmS1))5^qq0SxII$vmWblm*WAA3d#Xt6j6Ps#?^i8YM;)L*+N5 zgDmNOzoFn@E2493xiBe@@)0- zTni!+d=G!4i8!*WhhJomlgF@!jE^UmA`X;*uS$R##+llJvh#(MIiUgZ zgM&R)=j&f>Y>iV7c>pL8(BH`6BV4J=IVh%&7=1mq`71hAp8LH&kwd?pKy{p&)4IRK zX}TkeSy3UY&c&cD5q^=zz8;!^HPeb@`=O0p5DaFFI8yBpU6CQ!xq3z=L=Pv8G=6SW zWoZ#K%a^FE7R#`Y{EQ(>6VuZoT#3#NV9iN!u1E=pJW3?lH%Y}N;Lv##~ z9oCCfD8t4T007#_ONnb`;E6h{Qf1)H?#jokR&8INhN_vV^e9qw` z9YHc>Uh$F>u{M}0LAiP84HZ&XS4k!&wD0)v@*JUeTKLg4)4&gM%U2Kv+AXeeV^Lu;@ zn!GTDnmP;PrjF_8nKKI?YwTMuzPWGIDby0~Mp}n%2toHxD(VLX8KmG{hTR+KRIQ$e zB8+L)u%ZUlKtCKus-y={`|`@#Tv1hB2pdCH+2f4(0%dra;ex-_vuL?7=|3I09Ne{~ zCS?$Tf%{j}Au{w7Z0SUiKK+Pu$Vu!`bL!!%ze+@}G@hclO$0cbs1~`R! zpa(ao`fr=)mxvtES22!}Pc12!&a^By2!hJ+P2)mTa>-1WS%qzW;`|$C663tT)Y!c@ zK|F#+hN!@OKpG|mTQ|{iJHpaU$_wY)@hvAUePIr=`1d9#@2SIk7@tn$MYx-Lm3|#+ zzY9btzN20G^>-+Az^woFI!n?X2`aqg>EXJzs+(Lk_1hoV$gOzjChY}`BFT%&gQ`N5H!9PTWno;UAC_sT zOt%6s?uTzXgs=l957}bkIyR%RwoLmxDGqI+s}nAGU$;M4yyvovOdlppbzRZxZ}-QT z4YBvM@0Hj7*=aRnRH;Vbl+Z=%hUPS*a*D&|T=II!XtNDrlMd2=twPdYNN598u1t_& znN^CW$_R$?2-4dstEJ~^ZS)=aNm)RTjpdi4cHGxIKqAy;t&Qj0N3_M$Zh7YR(4!TZ z{rjga`FQd7LvHt=NI*P^2n6thzC_nEd_TbRo}xp^Ek|U>8k3N;E4Q?Kh`>19HD;aB zm@Z&~IzimT%$x;390W3$w65MW>7>H`2l|KpH6oSWKUgyS)rh0glmZ1!1cUnQ)xZ96 zuwuF$dOIRx(L_aU+DRmz2_n4>%_U0e31}5bIJQK%Hlv~8Y}-sP$CZ^mlMkUTo=a!r zLsWo1qcyx*JA~THTArjiwL&PWsLWo3(2m2rme1n>IROXxDCMjW*^ZcD^SS4zLoNFx z)&jLMdP2`D(sE%mFNZlJjB89Qta(as6YMSk2gVL?9xTr}Ljw}wD5hwj&0kCVHQw_T zm1!`l9cP=7TqYxFuY1kG_YQ8W4DZwPW}v=R=V2_m9QK=C)ee|K2G=jh9cq@>wNHXL zGNg_mQ*@J@(+N8Sirl54pQZ-2KMkPI(o1v(EXVm~4OfLE50NJpdY7$R11i^aWP_JW zk2GvT7K2odcb2v4l8YqO`I3fe@9*?JnY`ws*Btlpu=wBKyxTTCggAWqV&5VtmuO?X z0reevI11x~1a=(1qv=;^3!$<4H_?Lf)=lyHa?kHKBy4yWD!slTO|amF2GPgaD^i_j zKQ%9*f>~n znWQ~HXV>K`^(~h9m?G;hDgBZFLa?B-jPQMgI4oooQq9_wAxZbUe`^8hvXObk;nJ1{ zUhMtZ1X`r@W6T#eaEGIn&t1E8z!0mN-71R7OZX?7!J7G)AAf`)IulF$!O9@;lRXXw zL_DrS>`j5G2NGa*tlN%_w=2dUUm+TPip0!q3egeE52l)x!z!;BNk4KVKC!Kvjn5VP zSZJdx#}Up|b@JdBMW>LE-$c@ZYn!HrpCJE#|l%1 zM50@sHj%runOGbed6Ls+k1zU(P+W8^O@95YQeSyrOk^2ivBocMzX{p**;BoNEP{^b1-s+!+K;{-_u@+^;nR8BPmTW^HqqZZ(806%uLTx|B~qn|)$?i6cOR^wHq+tziE zX@v_sgSSk&ESkW|l_CV?tp8SQ_^2Lc@_`a;De5?w{X!JeC*R0OvBp9`FqBe%&(n9C z@3cIWP|>E6*?97qpr2l$JB_6l$1sF@PEWS?l$=D!ScT#JpWOH>-?aMJE*t1jeE+7$ zYfQ=T;r}tRXXt7D`9Y^e(nS;E12Y%fZL>u!=zY?f){32UfD>AE#!`;8;B>02#xdCR zNi1FQ3JNYwFMBM&{?QgwnSEV+9POx_4CFkXL{97ZE+%heGXxuk$Va*j`D-ud{i^LZ z@=JcVm8u_a24C6V9;gQ$0D%G9gYz}4$N}m3R~?Po4hotJ3fORBymozv+1oIXTy&kZ zZ*~@Bz@Q+9eX{$M>}YiMj1>w0k2*<=RsH(3e@ouh>AhXsh*R5&qn-jNiyHLqt6mGr z2UT}GEmyqdE6!(?l{|^D(U7qsqFm#8tZRd&Rr=a~(PN-eAOsc=jR5o~x_LM?tYOO(PP)nUix+up+QyTHk#nV>@;YdIFPQ@BxX! zZR>2xh?k-+AJEk_kBYR7Zj)(jU*xdDwHWD&hOYKPVhtaj@H=sHr7F~H1=8ZDFdaQfZAC&(?=zJke2SNCZf=q{e)U%V%KKx zqHm9W4-i(fO#0+7Ikl_FYs+>kl+R7>A7bI#MXkve_j}E!>UL|sft(wJIH8)rGB`{n zc_++d^V`(}p-)D0HWj2{7=QeOn&K!D4(~s}3(FLj^v;skBlKKAl`_o`&BXWp9d+zd z``7Y7k+=1MX(?Hoi%gKHRmn`}*x*ok2Gw0_09 zO_L?!gF|N z{^-GzEbD)GR;u%OHApV=f4fFOrryK#<{fv*o$v9sw>od)V6GbB`l*D_eA`vVFmcOy z3x&BqBHE%1j`RQsWA+3N)fMD`jJWx`%Jw^mm<=-fs_7<-*F9YAHP+x!1mOS`#<*$FqelQD-oZA(O~FNM zASgr3R%oh%{^9T5ze4|GhYeM?S|k=innVU+92+r7#!W8GO2t|VQ?iDnRE*E~NiKw$ zX*sfBnq$WVi^Y7i4(HOgZsMBLBA4e%nv)g1`K@T;Tf20Zt5G8mC5AeVr7wey&D4Fecc%E(Qcv(;>V1eYONE2!ORAT_w8V&2$=WRDudpf z*Hc@Q9KPTGm#@Zyk#dV1WA&TS^`cQDk*J^Obzy*trKovaTKWZ3tq*^%Tr2!1|KbmG zn>=+c;U{-HX!#c9!BJ}bl z!K8@#?U&FAfp4|&UnjraM$M&gSs_0{bde(`wvy}4F8=34#dGD}Y(Cw8iadx1?KYW* zKXy(lPRQ!!IZm9EE#l9|UhfbTSfbyF?8is=MuvVaO*MKiecOX?7p#6!m2SdZfkNf6 zLCKu$DU!A7aA`S+J$*4d0yp|-{X%9plMRwlB;*mr$u2k%P*AppADaz}Wt3~VAwzs) zKWl)PrZI`KQV-iCn3TC17uEE!L#Krg8GX^Uz2EN>8~yy^-W>5$pHw?`?!tFWe5+rl zY)w-6xMo#Fr2kFXk)wSydAWKjIS6m}a~_?4@f(<CDx}lW zDGF^qE)(pq1HDiq;9v8^)%Ab|XHlCUA4yG~3tDYam;a*M6PtbT(z=`1z+CS=lPLZ4%Vmd_~Rs ziPTK{CF>00)J`%Vgg=mRkjud|<6TiSF^Db}6i(X4vv}BvbP;`tZTa^*~ zAa6uooaE3~6Rl^awxgzGCy|KJ2pxq;Ot2`+hreyOv8wl}=5g@jn&|cAg0USr8tgxn z?|Mb&jjH8bEGuE_LKoWQ_`&XvE%9~RK+wkOT|=}ral|7ArjTkFs1EICpS4)PD+n!W zvXZS9ra?094PoGI4YM_5)IVF7`Ahe$G9Dma=x(p^EOO21{fCOb*lPNt)Z#J8+L%V; z9PF7#h)xQZYYz?%{mek^tK|=Qs`PJ`V(ro+8WD4-V9Kj?Q?}YeNVRCHP5@)>GF&YB zT;=$x_iId%c_4uHKiaMY;-zcbJ3ZKN%ciAEm^14mi5YQ=e0)XUi?wb5cF155hA`h^ z{}sOvn_$qZEWw)#S%AwL`qm9LOeuo!Y5fjlq=HJjaB_1!&Y4b#ha#mi_l-8$&tLB>=(b!ttGPljr4Q#T{U`Gg$y$%$?X*Q52yh^N6ckh(O!!~glP=Fs`)IOp~``)Z^+P@Zv| z#imI=&6d`>1u~vvLj;L}?svNa7L*dKj8T~m*pJ|N`xTWcJufO42*J_bHtH$xLrG37 zq9;!^-8WeXpp`IPZLI%rf?*iK(3NksX!6Lno8q;7$C6%TN> zKlZj?&b%aRo8tYs7zLi4L|sm{J9HnCv`}DeGe9?oK;^C&aj4T(4I6oWsPnxSvQI9U z@HAiU#%A~Na)gSPn`6 z`KPqBnKvo;E~t(uz2p(<(rMChJQPFtj_qeJE#PVJeblhOy`7+Z_x#VXL=VPb6-dYL zr{#7}DCw@S$Bm^t;!SNZpF9%a1H}goLMeJgWHmxqi9`>!mN(tcRW?DCh)~f(_Y`Z- z8yAzJ+ppdm5|unntN3L9dGVM0*2kyRj;s|?VJ~cR2&Zj>IcdQEWPa}nga`bLZ;y%+ zLr%6@ulvH=?AVSic>W^Lyz%6n)NceRBC`#q3)LVxusWeMIuRhJxm zq@xY`-DxY@Ajnq}w^$6Q9Y#%-{2SLS2~c=~%uXl`g9#v)Z(pwUX5{lpv!y4)quuhk zHZch#1B*w6D*wYWhhaRgWVO8PeFWV3N-uAiI*fX5I;?^JI5CZjt|mpNPPlw4SJ1h4RUVC&^;iG^|pmBS@JvH z|N0P+A9Ce^MR(9A!KDVM&r_6%0h{C(lg)CA1yHS5sc{nvKU5jW8O*00PmzDIV2i*k zXix5Jw{QomMZKyr{KxkPS-ExLXA1{E&2!|)?WVc4LE{a5a$hYYxogC^8~V8#9SRoG z#qDg-H0MudvW#PY{o?2QL;+6}O4{W!eAj(l;h!LJ>iFMzXvRJTt8q*zMX0&qe&~iC zs_`RF_gd{%iM{JMFs2>e_rK84e_O?q_&c|7o|? znSXE3{IT!UP-akMX?bw)jPKNlrm)q$VcLhk_^{vgYtspih*`B^%Z`>!5_RWiEw$hA zw)+3i&<9*`Z>xnKIZT9&2`RSxU@g4Ed~ekyoqPSv=UOlAUt4N4b(v<=TAs*hO&t?b zIh}e6t}WEj4G;Ca7dpRq-5-sl9~ai%uP)8s`rf&N*%#Jx0WRDTzi^Fxo;~}r%QGh( z7c8h(nksNHr)Q)0fvpppI}P`UAAJAs;rD;_H$8)(buBO}{&{5i=*RVp2Qr#{g0O&t hdffv2mV%Q~loCIF)|jYa?f diff --git a/.github/thumbnail-3.png b/.github/thumbnail-3.png new file mode 100644 index 0000000000000000000000000000000000000000..6d26f425101cac4172bdb5fdee1ae2006443782f GIT binary patch literal 184647 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

uQ8aXp7 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⪖&pM5Ub2JOv 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 KQz>N@^8W!1zdAku literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 1cdcd55..ffd9013 100644 --- a/README.md +++ b/README.md @@ -18,19 +18,22 @@ [![Back-end](https://img.shields.io/github/actions/workflow/status/conedevelopment/sprucecss/test.yml?branch=main&logo=github&style=for-the-badge&label=Test)](https://github.com/conedevelopment/sprucecss/actions/workflows/test.yml) [![License](https://img.shields.io/badge/license-MIT-2350f6?style=for-the-badge)](https://github.com/conedevelopment/sprucecss/blob/main/LICENSE) -The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. +The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. ## What is Spruce CSS? - It is a Sass-based, small framework that operates with just a few utility classes. - It takes advantage of the Sass members: variables, mixins, and functions. - It embraces Sass modules, so it uses @use and namespacing for import. -- It is relatively small. Right now just over 1000 lines, but it will expand in the future. As we see right now, the maximum is somewhere near 2000 lines of code. -- It is modern. By modern, we mean using the newest CSS features like the grid, aspect-ratio, logical properties, etc. +- Spruce is a good choice if you prefer writing CSS instead of HTML. It uses just a few classic utility classes. +- It is a relatively small (~7kb gzipped) framework with a smaller learning curve. The codebase is small but can add more to any project with the available mixins and functions. +- It is that bunch of code you keep manually carrying from project to project. +- It is themeable. You can create different themes using CSS custom properties like a dark one. - The generated CSS code is separated from the framework. You can use only the tools (variables, mixins, functions) in your project [without the generated styles](https://sprucecss.com/docs/elements/generators). -- It uses just a few classical components (form elements mostly). We plan a separate component library for Spruce named UI. +- Include just a few components. For UI, we have a separate project named [Spruce UI](/ui/getting-started/introduction), where you can find drop-in components. - [It comes with dark-mode](https://sprucecss.com/docs/customization/themes) (or any theme mode) support. It uses CSS custom properties, so it isn’t that hard to create a new color theme. - It doesn’t come with a classical grid system. +- ## How to start with Spruce? @@ -38,7 +41,7 @@ Firstly, we suggest checking out the documentation, precisely the [installation There is nothing new if you previously used Sass unless you don’t know the newer [module system](https://sass-lang.com/blog/the-module-system-is-launched). -To start a new Spruce-based project (or experiment), we suggest using our [starter kit](https://github.com/conedevelopment/sprucecss-starter-kit) containing a simple Sass build environment. +We made a [Spruce CSS Eleventy Starter](https://github.com/conedevelopment/sprucecss-eleventy-starter), a boilerplate starter template based on the popular static site generator 11ty. It includes a basic compile setup and, of course, Spruce CSS. You can find more information about it on GitHub. ## Documentation From 7b231f5259952fbb068f3223b0f444d898056886 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 13:17:28 +0200 Subject: [PATCH 65/67] Stylelint fixes --- .stylelintrc.json | 3 +-- CHANGELOG.md | 4 ++++ preview/assets/scss/config/_dark-colors.scss | 2 +- preview/assets/scss/main.scss | 6 ++++++ scss/config/form/_check.scss | 10 +++++----- scss/config/form/_control.scss | 12 ++++++------ scss/function/_color.scss | 4 ++-- scss/function/_utilities.scss | 3 ++- scss/mixin/_variables.scss | 12 ++++++------ 9 files changed, 33 insertions(+), 23 deletions(-) diff --git a/.stylelintrc.json b/.stylelintrc.json index 49d4139..c8b8d94 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -1,8 +1,7 @@ { "extends": "stylelint-config-sass-guidelines", "rules": { - "function-parentheses-space-inside": "never-single-line", - "max-nesting-depth": 4, + "max-nesting-depth": 6, "selector-no-vendor-prefix": [true, { "ignoreSelectors": ["/-moz-.*/", "/-ms-.*/", "/-webkit-.*/"] diff --git a/CHANGELOG.md b/CHANGELOG.md index 5144bf6..3a4e475 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Spruce CSS Changelog +## v2.0.0 (2023-05-03) + +... + ## v1.2.1 (2023-01-28) ### Improvements diff --git a/preview/assets/scss/config/_dark-colors.scss b/preview/assets/scss/config/_dark-colors.scss index 6c707fe..6e90432 100644 --- a/preview/assets/scss/config/_dark-colors.scss +++ b/preview/assets/scss/config/_dark-colors.scss @@ -18,7 +18,7 @@ $colors: ( 'code-foreground': $color-white, 'heading': $color-white, 'link': $color-primary, - 'link-hover': color.scale($color-primary, $lightness: -20%), + 'link-hover': color.scale($color-primary, $lightness: 20%), 'mark-background': hsl(50deg 100% 80%), 'mark-foreground': $color-black, 'marker': $color-primary, diff --git a/preview/assets/scss/main.scss b/preview/assets/scss/main.scss index 9a1df8b..0fc27a9 100644 --- a/preview/assets/scss/main.scss +++ b/preview/assets/scss/main.scss @@ -8,6 +8,12 @@ @use 'spruce' as *; +:root { + @include set-css-variable(( + --section-gap: spacer-clamp('xl', 'xxl') + )); +} + @include generate-form-check( '.wpcf7-list-item label', '.wpcf7-list-item input', diff --git a/scss/config/form/_check.scss b/scss/config/form/_check.scss index 36b8a38..4a8770b 100644 --- a/scss/config/form/_check.scss +++ b/scss/config/form/_check.scss @@ -5,17 +5,17 @@ $form-check: () !default; $form-check: map.merge( ( - 'border-width': 1px, 'border-radius': map.get($display, border-radius-sm), + 'border-width': 1px, + 'focus-ring-box-shadow-type': outside, + 'focus-ring-offset': 2px, + 'focus-ring-type': outline, + 'focus-ring-width': 2px, 'font-size': 1.125rem, 'font-weight': map.get($form-check, 'font-weight'), 'line-height': map.get($typography, 'line-height-heading'), 'margin-block-start': 0.1em, 'vertical-alignment': center, - 'focus-ring-type': outline, - 'focus-ring-box-shadow-type': outside, - 'focus-ring-width': 2px, - 'focus-ring-offset': 2px, ), $form-check ); diff --git a/scss/config/form/_control.scss b/scss/config/form/_control.scss index fa4aa38..584444f 100644 --- a/scss/config/form/_control.scss +++ b/scss/config/form/_control.scss @@ -5,16 +5,16 @@ $form-control: () !default; $form-control: map.merge( ( + 'border-radius': map.get($display, 'border-radius-sm'), + 'border-width': 1px, + 'focus-ring-box-shadow-type': outside, + 'focus-ring-offset': 2px, + 'focus-ring-type': box-shadow, + 'focus-ring-width': 0.25rem, 'font-size': map.get($typography, 'font-size-base'), 'font-weight': null, 'line-height': 1.5, 'padding': 0.5em 0.75em, - 'border-width': 1px, - 'border-radius': map.get($display, 'border-radius-sm'), - 'focus-ring-type': box-shadow, - 'focus-ring-box-shadow-type': outside, - 'focus-ring-width': 0.25rem, - 'focus-ring-offset': 2px, 'textarea-height': 6rem, ), $form-control diff --git a/scss/function/_color.scss b/scss/function/_color.scss index 4712d14..9f25c09 100644 --- a/scss/function/_color.scss +++ b/scss/function/_color.scss @@ -40,8 +40,8 @@ /// @param {color} $color - The color to get the contrast color. /// @return {color} - The contrast color. @function color-contrast($color) { - $color-brightness: round((red($color) * 299) + (green($color) * 587) + math.div(blue($color) * 114, 1000)); - $light-color: round((red(#fff) * 299) + (green(#fff) * 587) + math.div(blue(#fff) * 114, 1000)); + $color-brightness: math.round((color.red($color) * 299) + (color.green($color) * 587) + math.div(color.blue($color) * 114, 1000)); + $light-color: math.round((color.red(#fff) * 299) + (color.green(#fff) * 587) + math.div(color.blue(#fff) * 114, 1000)); @if abs($color-brightness) < math.div($light-color, 2) { @return hsl(0 0% 100%); diff --git a/scss/function/_utilities.scss b/scss/function/_utilities.scss index c35884f..3e72033 100644 --- a/scss/function/_utilities.scss +++ b/scss/function/_utilities.scss @@ -1,3 +1,4 @@ +@use 'sass:string'; @use '../config' as *; // Replace `$search` with `$replace` in `$string` @@ -7,7 +8,7 @@ // @param {String} $replace ('') - New value // @return {String} - Updated string @function str-replace($string, $search, $replace: '') { - $index: str-index($string, $search); + $index: string.index($string, $search); @if $index { @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); diff --git a/scss/mixin/_variables.scss b/scss/mixin/_variables.scss index 410efb3..580e8d6 100644 --- a/scss/mixin/_variables.scss +++ b/scss/mixin/_variables.scss @@ -18,15 +18,15 @@ } @if map.get($settings, 'css-custom-properties') { - $excludeMap: $map; - $includeMap: (); + $exclude-map: $map; + $include-map: (); @if $exclude { @each $key, $value in $map { @if $value { @each $fraction in $exclude { @if string.index($key, $fraction) { - $excludeMap: map.remove($excludeMap, $key); + $exclude-map: map.remove($exclude-map, $key); } } } @@ -38,7 +38,7 @@ @if $value { @each $fraction in $include { @if string.index($key, $fraction) { - $includeMap: map.set($includeMap, $key, $value); + $include-map: map.set($include-map, $key, $value); } } } @@ -46,7 +46,7 @@ } @if $exclude { - @each $key, $value in $excludeMap { + @each $key, $value in $exclude-map { @if $value { --#{$internal-prefix}#{$key}: #{$value}; } @@ -54,7 +54,7 @@ } @if $include { - @each $key, $value in $includeMap { + @each $key, $value in $include-map { @if $value { --#{$internal-prefix}#{$key}: #{$value}; } From 0930cad058deb8ab01ec71ae68533f610235fd61 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 13:29:38 +0200 Subject: [PATCH 66/67] Update changelog --- CHANGELOG.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a4e475..dfd3906 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,28 @@ ## v2.0.0 (2023-05-03) -... +### What's Changed +- Reverse `prefers-reduced-motion` behavior. +- Add CSS custom property mode through [css-custom-properties](https://sprucecss.com/docs/customization/settings/#css-custom-properties) setting. +- Fix `selection` mixin +- Use `margin-block-start` at `layout-stack`. +- Rework utility handling. +- Fix `::-webkit-slider-thumb` bug. +- Reorganize generators. + +### Breaking changes +- Because it is a major release, there are breaking changes: +- The most significant change is the reorganization of variables. Almost all are in a Sass map and accessible with the [config()](https://sprucecss.com/docs/sass/functions/#config) function. +- We modified the generators; please visit the [related page](https://sprucecss.com/docs/elements/generators/). + +### Misc +- Clean up the complete documentation. +- Update all of the Spruce UI components to v2. +- Comment code. +- Start with Sass tests. +- Remove JS code from the package. +- Update coding guides: use quotes when asking for a string value. +- Remove namespaced imports to simplify to using of members. ## v1.2.1 (2023-01-28) From 1c5c8160f501ebacdc1605a2ebd882299a1448e3 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Thu, 4 May 2023 12:10:56 +0200 Subject: [PATCH 67/67] Release v2 --- CHANGELOG.md | 2 +- css/spruce.css | 6 +++--- css/spruce.min.css | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfd3906..7dcd9e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Spruce CSS Changelog -## v2.0.0 (2023-05-03) +## v2.0.0 (2023-05-04) ### What's Changed - Reverse `prefers-reduced-motion` behavior. diff --git a/css/spruce.css b/css/spruce.css index 202eceb..3650992 100644 --- a/css/spruce.css +++ b/css/spruce.css @@ -1020,11 +1020,11 @@ samp { .form-control { --webkit-date-line-height: 1.375; + --spruce-border-radius: 0.325rem; + --spruce-border-width: 1px; --spruce-font-size: 1rem; --spruce-line-height: 1.5; --spruce-padding: 0.5em 0.75em; - --spruce-border-width: 1px; - --spruce-border-radius: 0.325rem; --spruce-textarea-height: 6rem; -webkit-appearance: none; -moz-appearance: none; @@ -1152,8 +1152,8 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) { } .form-check { - --spruce-border-width: 1px; --spruce-border-radius: 0.325rem; + --spruce-border-width: 1px; --spruce-font-size: 1.125rem; --spruce-line-height: calc(2px + 2ex + 2px); --spruce-margin-block-start: 0.1em; diff --git a/css/spruce.min.css b/css/spruce.min.css index af872f0..593c697 100644 --- a/css/spruce.min.css +++ b/css/spruce.min.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}:root{--spruce-font-family-base: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;--spruce-font-family-cursive: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--spruce-font-family-heading: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;--spruce-font-size-base: 1rem;--spruce-font-size-lead: clamp(1.15rem, 2vw, 1.35rem);--spruce-font-size-lg: 1.125rem;--spruce-font-size-ratio: 1.25;--spruce-font-size-sm: 0.875rem;--spruce-font-weight-heading: 700;--spruce-inline-border-radius: 0.325rem;--spruce-inline-padding: 0.1em 0.3em;--spruce-line-height-base: 1.8;--spruce-line-height-heading: calc(2px + 2ex + 2px);--spruce-line-height-lg: 1.8;--spruce-line-height-md: 1.5;--spruce-line-height-sm: 1.2;--spruce-border-radius-lg: 0.725rem;--spruce-border-radius-sm: 0.325rem;--spruce-container-width: 84rem;--spruce-page-margin: 2cm;--spruce-hidden-elements: header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]}@media(prefers-reduced-motion: no-preference){:root{--spruce-duration: 0.15s;--spruce-timing-function: ease-in-out}}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: var(--spruce-responsive-width);-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{--spruce-line-height: 1.5;--spruce-padding: 1rem;--spruce-responsive-width: 40rem;border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:var(--spruce-line-height);padding:var(--spruce-padding)}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm{--spruce-padding: 0.5rem}.table--sm th,.table--sm td{padding:var(--spruce-padding)}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:var(--spruce-border-radius-sm);border-start-start-radius:var(--spruce-border-radius-sm)}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:var(--spruce-border-radius-sm);border-start-end-radius:var(--spruce-border-radius-sm)}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:var(--spruce-font-family-base);font-size:var(--spruce-font-size-base);line-height:var(--spruce-line-height-base)}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:var(--spruce-font-family-heading);font-weight:var(--spruce-font-weight-heading);line-height:var(--spruce-line-height-heading)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-mark-foreground);padding:var(--spruce-inline-padding)}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-code-foreground);padding:var(--spruce-inline-padding)}.lead{font-size:var(--spruce-font-size-lead)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:var(--spruce-icon-padding)}.btn--icon.btn--sm{padding:var(--spruce-icon-padding)}.btn--icon.btn--lg{padding:var(--spruce-icon-padding)}.btn__icon{flex-shrink:0;height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn__icon--sm{height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn--sm{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.8rem;--spruce-padding: 0.5em 0.75em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.btn--lg{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.8rem;--spruce-padding: 0.5em 0.75em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.form-file--lg::file-selector-button{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;--spruce-font-size: 1rem;--spruce-line-height: 1.5;--spruce-padding: 0.5em 0.75em;--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-textarea-height: 6rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:var(--spruce-border-radius);box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:var(--spruce-font-size);line-height:var(--spruce-line-height);padding:var(--spruce-padding);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 2.625rem;aspect-ratio:var(--spruce-aspect-ratio);height:var(--spruce-height);padding:var(--spruce-padding);width:var(--spruce-width)}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:var(--spruce-textarea-height);min-height:var(--spruce-textarea-height);resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-control--sm[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.25em;--spruce-width: 1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;--spruce-padding: 0.65em 1em}.form-control--lg[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{--spruce-border-width: 1px;--spruce-border-radius: 0.325rem;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.1em;--spruce-vertical-alignment: center;align-items:var(--spruce-vertical-alignment);display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm{--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-check--sm .form-check__control{font-size:var(--spruce-font-size)}.form-check--lg{--spruce-padding: 0.65em 1em}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:var(--spruce-border-radius)}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:var(--spruce-line-height)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm{--spruce-font-size: 1rem}.form-switch__control{--spruce-border-width: 1px;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.25em;background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:var(--spruce-line-height)}fieldset{--spruce-gap: 1rem;--spruce-legend-font-size: clamp(1rem, 5vw, 1.25rem);--spruce-legend-font-weight: 700;border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:var(--spruce-gap);margin-block-start:var(--spruce-gap)}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:var(--spruce-legend-font-size);font-weight:var(--spruce-legend-font-weight)}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:var(--spruce-border-radius);-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:var(--spruce-border-radius)}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{--spruce-focus-ring-box-shadow-type: outside;--spruce-focus-ring-offset: 2px;--spruce-focus-ring-type: outline;--spruce-focus-ring-width: 2px;--spruce-thumb-border-radius: 0.5rem;--spruce-thumb-height: 1rem;--spruce-thumb-width: 1rem;--spruce-track-border-radius: 0.15rem;--spruce-track-height: 0.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2);margin-block-start:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);-webkit-margin-before:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);margin-block-start:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);width:var(--spruce-thumb-width)}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);width:var(--spruce-thumb-width)} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spruce-alert-color-danger: hsl(0, 71%, 51%);--spruce-alert-color-info: hsl(195, 100%, 42%);--spruce-alert-color-success: hsl(150, 100%, 33%);--spruce-alert-color-warning: hsl(48, 89%, 55%)}:root{--spruce-base-color-background: hsl(0, 0%, 100%);--spruce-base-color-blockquote-border: hsl(262, 71%, 49%);--spruce-base-color-border: hsl(215, 63%, 93%);--spruce-base-color-code-background: #f6f2fd;--spruce-base-color-code-foreground: hsl(205, 100%, 2%);--spruce-base-color-heading: hsl(205, 100%, 2%);--spruce-base-color-link: hsl(262, 71%, 49%);--spruce-base-color-link-hover: #511dab;--spruce-base-color-mark-background: hsl(50, 100%, 80%);--spruce-base-color-mark-foreground: hsl(205, 100%, 2%);--spruce-base-color-marker: hsl(262, 71%, 49%);--spruce-base-color-primary: hsl(262, 71%, 49%);--spruce-base-color-secondary: hsl(227, 92%, 55%);--spruce-base-color-text: hsl(208, 9%, 42%)}:root{--spruce-btn-color-primary-background: hsl(262, 71%, 49%);--spruce-btn-color-primary-background-hover: #511daa;--spruce-btn-color-primary-foreground: hsl(0, 0%, 100%);--spruce-btn-color-secondary-background: hsl(227, 92%, 55%);--spruce-btn-color-secondary-background-hover: #0937dc;--spruce-btn-color-secondary-foreground: hsl(0, 0%, 100%)}:root{--spruce-form-color-background: hsl(0, 0%, 100%);--spruce-form-color-background-disabled: hsl(0, 0%, 95%);--spruce-form-color-border: hsl(260, 4%, 70%);--spruce-form-color-border-disabled: hsl(215, 63%, 93%);--spruce-form-color-border-focus: hsl(262, 71%, 49%);--spruce-form-color-check-background: hsl(262, 71%, 49%);--spruce-form-color-check-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-check-foreground: hsl(0, 0%, 100%);--spruce-form-color-invalid: hsl(0, 71%, 51%);--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);--spruce-form-color-label: hsl(205, 100%, 2%);--spruce-form-color-legend: hsl(205, 100%, 2%);--spruce-form-color-placeholder: hsl(208, 7%, 40%);--spruce-form-color-range-thumb-background: hsl(262, 71%, 49%);--spruce-form-color-range-thumb-focus-ring: hsl(262, 71%, 49%);--spruce-form-color-range-track-background: hsl(215, 63%, 93%);--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);--spruce-form-color-select-foreground: hsl(205, 100%, 2%);--spruce-form-color-text: hsl(208, 9%, 42%);--spruce-form-color-valid: hsl(150, 100%, 33%);--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25)}:root{--spruce-selection-color-foreground: hsl(0, 0%, 100%);--spruce-selection-color-background: hsl(262, 71%, 49%)}:root{--spruce-scrollbar-color-thumb-background: hsla(0, 0%, 0%, 0.15);--spruce-scrollbar-color-thumb-background-hover: hsla(0, 0%, 0%, 0.25);--spruce-scrollbar-color-track-background: hsla(0, 0%, 0%, 0.05)}:root{--spruce-table-color-border: hsl(215, 63%, 93%);--spruce-table-color-caption: hsl(208, 9%, 42%);--spruce-table-color-heading: hsl(205, 100%, 2%);--spruce-table-color-hover: hsla(0, 0%, 0%, 0.05);--spruce-table-color-stripe: hsla(0, 0%, 0%, 0.025);--spruce-table-color-text: hsl(208, 9%, 42%)}:root{--spruce-font-family-base: eravek, Gill Sans Nova, Ubuntu, Calibri, DejaVu Sans, source-sans-pro, sans-serif;--spruce-font-family-cursive: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--spruce-font-family-heading: Avenir, Avenir Next LT Pro, Montserrat, Corbel, URW Gothic, source-sans-pro, sans-serif;--spruce-font-size-base: 1rem;--spruce-font-size-lead: clamp(1.15rem, 2vw, 1.35rem);--spruce-font-size-lg: 1.125rem;--spruce-font-size-ratio: 1.25;--spruce-font-size-sm: 0.875rem;--spruce-font-weight-heading: 700;--spruce-inline-border-radius: 0.325rem;--spruce-inline-padding: 0.1em 0.3em;--spruce-line-height-base: 1.8;--spruce-line-height-heading: calc(2px + 2ex + 2px);--spruce-line-height-lg: 1.8;--spruce-line-height-md: 1.5;--spruce-line-height-sm: 1.2;--spruce-border-radius-lg: 0.725rem;--spruce-border-radius-sm: 0.325rem;--spruce-container-width: 84rem;--spruce-page-margin: 2cm;--spruce-hidden-elements: header, footer, aside, nav, form, iframe, [class^="aspect-ratio"]}@media(prefers-reduced-motion: no-preference){:root{--spruce-duration: 0.15s;--spruce-timing-function: ease-in-out}}.sr-only{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}[tabindex="-1"]:focus{outline:none !important}::-moz-selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}::selection{background-color:var(--spruce-selection-color-background);color:var(--spruce-selection-color-foreground);text-shadow:none}html{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*,::before,::after{box-sizing:inherit}body{background:var(--spruce-base-color-background);color:var(--spruce-base-color-text)}a{color:var(--spruce-base-color-link);text-decoration:underline;transition-duration:var(--spruce-duration);transition-property:color;transition-timing-function:var(--spruce-timing-function)}a:hover{color:var(--spruce-base-color-link-hover)}button{color:inherit}a,button{touch-action:manipulation}hr{border:0;-webkit-border-before:1px solid var(--spruce-base-color-border);border-block-start:1px solid var(--spruce-base-color-border)}img{display:block;height:auto;max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}iframe{display:block;height:100%;width:100%}figure{margin-left:0;margin-right:0}figure figcaption{-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}.table-responsive{--min-width: var(--spruce-responsive-width);-webkit-overflow-scrolling:touch;overflow-x:auto}.table-responsive table{min-width:var(--spruce-responsive-width)}.table{--spruce-line-height: 1.5;--spruce-padding: 1rem;--spruce-responsive-width: 40rem;border-collapse:collapse;color:var(--spruce-table-color-text);width:100%}.table caption{color:var(--spruce-table-color-caption);-webkit-margin-after:1rem;margin-block-end:1rem}.table th,.table td{-webkit-border-after:1px solid var(--spruce-table-color-border);border-block-end:1px solid var(--spruce-table-color-border);line-height:var(--spruce-line-height);padding:var(--spruce-padding)}.table th{color:var(--spruce-table-color-heading);text-align:inherit;text-align:-webkit-match-parent}.table--striped>tbody>tr:nth-child(odd){background-color:var(--spruce-table-color-stripe)}.table--hover>tbody>tr:hover{background:var(--spruce-table-color-hover)}.table--clear-border th,.table--clear-border td{border:0}.table--in-line th:first-child,.table--in-line td:first-child{-webkit-padding-start:0;padding-inline-start:0}.table--in-line th:last-child,.table--in-line td:last-child{-webkit-padding-end:0;padding-inline-end:0}.table--sm{--spruce-padding: 0.5rem}.table--sm th,.table--sm td{padding:var(--spruce-padding)}.table--rounded th:first-child,.table--rounded td:first-child{border-end-start-radius:var(--spruce-border-radius-sm);border-start-start-radius:var(--spruce-border-radius-sm)}.table--rounded th:last-child,.table--rounded td:last-child{border-end-end-radius:var(--spruce-border-radius-sm);border-start-end-radius:var(--spruce-border-radius-sm)}html{-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:var(--spruce-font-family-base);font-size:var(--spruce-font-size-base);line-height:var(--spruce-line-height-base)}p,li,h1,h2,h3,h4,h5,h6{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{color:var(--spruce-base-color-heading);font-family:var(--spruce-font-family-heading);font-weight:var(--spruce-font-weight-heading);line-height:var(--spruce-line-height-heading)}h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}h5{font-size:1rem}h6{font-size:1rem}ul,ol{list-style-position:inside}ul>*,ol>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}ul>*+*,ol>*+*{-webkit-margin-before:.25rem;margin-block-start:.25rem}ul li,ol li{list-style-position:outside}ul li::marker,ol li::marker{color:var(--spruce-base-color-marker)}li>ul,li>ol{-webkit-margin-before:.25rem;margin-block-start:.25rem}dl dt{color:var(--spruce-base-color-heading);font-weight:bold}dl dd{margin:0}dl dd+dt{-webkit-margin-before:1rem;margin-block-start:1rem}.quote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}.quote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.quote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}.quote blockquote{-webkit-border-start:0;border-inline-start:0;-webkit-padding-start:0;padding-inline-start:0}.quote figcaption{text-align:start}blockquote{-webkit-border-start:.5rem solid var(--spruce-base-color-blockquote-border);border-inline-start:.5rem solid var(--spruce-base-color-blockquote-border);-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:1.5rem;padding-inline-start:1.5rem}blockquote>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}blockquote>*+*{-webkit-margin-before:.5rem;margin-block-start:.5rem}abbr[title]{-webkit-border-after:1px dotted;border-block-end:1px dotted;cursor:help;text-decoration:none}mark{background-color:var(--spruce-base-color-mark-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-mark-foreground);padding:var(--spruce-inline-padding)}code,kbd,samp{background-color:var(--spruce-base-color-code-background);border-radius:var(--spruce-inline-border-radius);color:var(--spruce-base-color-code-foreground);padding:var(--spruce-inline-padding)}.lead{font-size:var(--spruce-font-size-lead)}.hidden,[hidden]{display:none !important}.h1{font-size:clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem)}.h2{font-size:clamp(1.66015625rem, 2vw + 1rem, 1.953125rem)}.h3{font-size:clamp(1.328125rem, 2vw + 1rem, 1.5625rem)}.h4{font-size:clamp(1.0625rem, 2vw + 1rem, 1.25rem)}.h5{font-size:1rem}.h6{font-size:1rem}.btn{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.btn:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.btn:disabled,.btn--disabled{opacity:.5;pointer-events:none}.btn--icon{padding:var(--spruce-icon-padding)}.btn--icon.btn--sm{padding:var(--spruce-icon-padding)}.btn--icon.btn--lg{padding:var(--spruce-icon-padding)}.btn__icon{flex-shrink:0;height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn__icon--sm{height:var(--spruce-icon-size);width:var(--spruce-icon-size)}.btn--sm{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.8rem;--spruce-padding: 0.5em 0.75em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.btn--lg{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.btn--block{width:100%}.btn--primary{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--primary:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.btn--secondary{background-color:var(--spruce-btn-color-secondary-background);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.btn--secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--secondary:hover{background-color:var(--spruce-btn-color-secondary-background-hover);border-color:var(--spruce-btn-color-secondary-background-hover);color:var(--spruce-btn-color-secondary-foreground)}.btn--outline-primary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-background)}.btn--outline-primary:focus-visible{outline:2px solid var(--spruce-btn-color-primary-background);outline-offset:2px}.btn--outline-primary:hover{background-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground)}.btn--outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-background)}.btn--outline-secondary:focus-visible{outline:2px solid var(--spruce-btn-color-secondary-background);outline-offset:2px}.btn--outline-secondary:hover{background-color:var(--spruce-btn-color-secondary-background);color:var(--spruce-btn-color-secondary-foreground)}.form-file::file-selector-button{--spruce-border-radius: 0.325rem;--spruce-font-size: 1rem;--spruce-font-weight: 500;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.75em;--spruce-icon-size: 1em;--spruce-outline-width: 1px;--spruce-padding: 0.75em 1em;--spruce-shadow-width: 0.25rem;align-items:center;border-radius:var(--spruce-border-radius);border-style:solid;border-width:var(--spruce-outline-width);cursor:pointer;display:inline-flex;font-size:var(--spruce-font-size);font-weight:var(--spruce-font-weight);gap:var(--spruce-gap);justify-content:center;line-height:1;padding:var(--spruce-padding);text-align:start;text-decoration:none;transition-duration:var(--spruce-duration);transition-property:background-color,border-color,box-shadow,color;transition-timing-function:var(--spruce-timing-function)}.form-file:focus{outline-color:rgba(0,0,0,0);outline-style:solid}.form-file:disabled,.form-file--disabled{opacity:.5;pointer-events:none}.form-file--sm::file-selector-button{--spruce-font-size: 0.8rem;--spruce-gap: 0.25rem;--spruce-icon-padding: 0.5em;--spruce-icon-size: 0.8rem;--spruce-padding: 0.5em 0.75em;font-size:var(--spruce-font-size);gap:var(--spruce-gap);padding:var(--spruce-padding)}.form-file--lg::file-selector-button{--spruce-font-size: 1.15rem;--spruce-gap: 0.5rem;--spruce-icon-padding: 0.9em;--spruce-padding: 0.9em 1.15em}.form-file--block::file-selector-button{width:100%}.form-file{display:block}.form-file:focus{outline:revert}.form-file:focus-within::file-selector-button{background-color:var(--spruce-btn-color-primary-background-hover)}.form-file::file-selector-button{background-color:var(--spruce-btn-color-primary-background);border-color:var(--spruce-btn-color-primary-background);color:var(--spruce-btn-color-primary-foreground);-webkit-margin-end:1rem;margin-inline-end:1rem}.form-file::file-selector-button:hover{background-color:var(--spruce-btn-color-primary-background-hover);border-color:var(--spruce-btn-color-primary-background-hover);color:var(--spruce-btn-color-primary-foreground)}.form-label{color:var(--spruce-form-color-label);line-height:1.5}.form-control{--webkit-date-line-height: 1.375;--spruce-border-radius: 0.325rem;--spruce-border-width: 1px;--spruce-font-size: 1rem;--spruce-line-height: 1.5;--spruce-padding: 0.5em 0.75em;--spruce-textarea-height: 6rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:var(--spruce-border-radius);box-sizing:border-box;color:var(--spruce-form-color-text);display:block;font-size:var(--spruce-font-size);line-height:var(--spruce-line-height);padding:var(--spruce-padding);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:100%}.form-control::-moz-placeholder{color:var(--spruce-form-color-placeholder)}.form-control::placeholder{color:var(--spruce-form-color-placeholder)}.form-control::-webkit-datetime-edit{line-height:var(--webkit-date-line-height)}.form-control:focus{border-color:var(--spruce-form-color-border-focus);box-shadow:0 0 0 .25rem var(--spruce-form-color-ring-focus);outline:2px solid rgba(0,0,0,0)}.form-control[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 2.625rem;aspect-ratio:var(--spruce-aspect-ratio);height:var(--spruce-height);padding:var(--spruce-padding);width:var(--spruce-width)}.form-control[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-control[type=color]::-moz-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[type=color]::-webkit-color-swatch{border:0;border-radius:var(--spruce-border-radius)}.form-control[disabled],.form-control[disabled=true]{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}textarea.form-control{height:var(--spruce-textarea-height);min-height:var(--spruce-textarea-height);resize:vertical}.form-control--valid,.form-control--invalid{background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] .form-control--valid,html[dir=rtl] .form-control--invalid{background-position:center left .5em}.form-control--valid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm-1.476,10.182l-2.984,-2.984c-0.065,-0.065 -0.17,-0.065 -0.235,0l-0.943,0.943c-0.065,0.065 -0.065,0.171 -0,0.236l4.043,4.042c0.033,0.033 0.076,0.05 0.119,0.049c0.044,0.001 0.087,-0.016 0.12,-0.049l6.994,-6.994c0.065,-0.065 0.065,-0.17 0,-0.235l-0.943,-0.943c-0.065,-0.065 -0.17,-0.065 -0.235,-0l-5.936,5.935Z" style="fill:hsl%28150, 100%, 33%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-success)}.form-control--valid:focus{border-color:var(--spruce-form-color-valid);box-shadow:0 0 0 .25rem var(--spruce-form-color-valid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--invalid{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"%3e%3cpath d="M12,2c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c0,-5.519 4.481,-10 10,-10Zm0,1.667c4.599,-0 8.333,3.734 8.333,8.333c0,4.599 -3.734,8.333 -8.333,8.333c-4.599,0 -8.333,-3.734 -8.333,-8.333c-0,-4.599 3.734,-8.333 8.333,-8.333Zm0.813,11.649c-0,-0.081 -0.065,-0.146 -0.146,-0.146l-1.334,0c-0.081,0 -0.146,0.065 -0.146,0.146l0,1.169c0,0.08 0.065,0.146 0.146,0.146l1.334,-0c0.081,-0 0.146,-0.066 0.146,-0.146l-0,-1.169Zm-0,-7.784c-0,-0.09 -0.073,-0.163 -0.163,-0.163l-1.3,0c-0.09,0 -0.163,0.073 -0.163,0.163l0,6.351c0,0.09 0.073,0.163 0.163,0.163l1.3,-0c0.09,-0 0.163,-0.073 0.163,-0.163l-0,-6.351Z" style="fill:hsl%280, 71%, 51%%29;"/%3e%3c/svg%3e');border-color:var(--spruce-alert-color-danger)}.form-control--invalid:focus{border-color:var(--spruce-form-color-invalid);box-shadow:0 0 0 .25rem var(--spruce-form-color-invalid-focus-ring);outline:2px solid rgba(0,0,0,0)}.form-control--sm{--webkit-date-line-height: 1.36;--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-control--sm[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.25em;--spruce-width: 1.925rem}.form-control--lg{--webkit-date-line-height: 1.387;--spruce-padding: 0.65em 1em}.form-control--lg[type=color]{--spruce-aspect-ratio: 1;--spruce-height: 100%;--spruce-padding: 0.5em;--spruce-width: 3.204rem}select.form-control:not([multiple]):not([size]){background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M12,12.507l-3.816,-3.815c-0.171,-0.172 -0.45,-0.172 -0.622,-0l-0.933,0.933c-0.172,0.172 -0.172,0.451 0,0.623l5.06,5.06c0.172,0.172 0.45,0.172 0.622,0l5.06,-5.06c0.172,-0.172 0.172,-0.451 -0,-0.623l-0.933,-0.933c-0.172,-0.172 -0.451,-0.172 -0.622,-0l-3.816,3.815Z" style="fill:hsl%28205, 100%, 2%%29;"/%3e%3c/svg%3e');background-position:center right .5em;background-repeat:no-repeat;background-size:1.25em auto;-webkit-padding-end:2em;padding-inline-end:2em}html[dir=rtl] select.form-control:not([multiple]):not([size]){background-position:center left .5em}.form-check{--spruce-border-radius: 0.325rem;--spruce-border-width: 1px;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.1em;--spruce-vertical-alignment: center;align-items:var(--spruce-vertical-alignment);display:inline-flex;gap:.5rem}.form-check--vertical-center{align-items:center}.form-check--vertical-start{align-items:flex-start}.form-check--sm{--spruce-border-radius: 0.35em;--spruce-padding: 0.25em 0.5em}.form-check--sm .form-check__control{font-size:var(--spruce-font-size)}.form-check--lg{--spruce-padding: 0.65em 1em}.form-check__control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:1em}.form-check__control[type=radio]{border-radius:50%}.form-check__control[type=checkbox]{border-radius:var(--spruce-border-radius)}.form-check__control:focus-visible{outline:2px solid var(--spruce-form-color-check-focus-ring);outline-offset:2px}.form-check__control:checked{background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:checked[type=radio]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="6" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:checked[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M9.525,13.777l-2.411,-2.412c-0.234,-0.233 -0.613,-0.233 -0.846,0l-1.27,1.27c-0.233,0.233 -0.233,0.612 0,0.846l4.104,4.103c0.116,0.117 0.269,0.175 0.422,0.175l0.003,0c0.152,0 0.305,-0.058 0.421,-0.175l9.054,-9.053c0.233,-0.234 0.233,-0.613 -0,-0.846l-1.27,-1.269c-0.233,-0.234 -0.612,-0.234 -0.846,-0l-7.361,7.361Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e')}.form-check__control:indeterminate[type=checkbox]{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"%3e%3cpath d="M19.5,11.1c-0,-0.331 -0.269,-0.6 -0.6,-0.6l-13.8,0c-0.331,0 -0.6,0.269 -0.6,0.6l0,1.8c0,0.331 0.269,0.6 0.6,0.6l13.8,0c0.331,0 0.6,-0.269 0.6,-0.6l-0,-1.8Z" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);border-color:var(--spruce-form-color-check-background)}.form-check__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-check__control:disabled+.form-check__label{opacity:.5}.form-check__label{line-height:var(--spruce-line-height)}.form-switch{align-items:center;display:inline-flex;gap:.5rem}.form-switch--block{justify-content:space-between;width:100%}.form-switch--sm{--spruce-font-size: 1rem}.form-switch__control{--spruce-border-width: 1px;--spruce-font-size: 1.125rem;--spruce-line-height: calc(2px + 2ex + 2px);--spruce-margin-block-start: 0.25em;background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%28260, 4%, 70%%29;"/%3e%3c/svg%3e');-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--spruce-form-color-background);background-position:left center;background-repeat:no-repeat;background-size:contain;border:var(--spruce-border-width) solid var(--spruce-form-color-border);border-radius:2em;flex-shrink:0;font-size:var(--spruce-font-size);height:1em;line-height:1;-webkit-margin-before:var(--spruce-margin-block-start);margin-block-start:var(--spruce-margin-block-start);transition-duration:var(--spruce-duration);transition-property:background-position,border,box-shadow;transition-timing-function:var(--spruce-timing-function);width:2em}.form-switch__control:checked{background-image:url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280, 0%, 100%%29;"/%3e%3c/svg%3e');background-color:var(--spruce-form-color-check-background);background-position:right center;border-color:var(--spruce-form-color-check-background)}.form-switch__control:disabled{background-color:var(--spruce-form-color-background-disabled);border-color:var(--spruce-form-color-border-disabled);cursor:not-allowed}.form-switch__control:disabled+.form-switch__label{opacity:.5}[dir=rtl] .form-switch__control{background-position:right center}[dir=rtl] .form-switch__control:checked{background-position:left center}.form-switch__label{line-height:var(--spruce-line-height)}fieldset{--spruce-gap: 1rem;--spruce-legend-font-size: clamp(1rem, 5vw, 1.25rem);--spruce-legend-font-weight: 700;border:0;margin:0;padding:0}fieldset>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}fieldset>*+*{-webkit-margin-before:var(--spruce-gap);margin-block-start:var(--spruce-gap)}fieldset+fieldset{-webkit-margin-before:3rem;margin-block-start:3rem}legend{color:var(--spruce-form-color-legend);font-size:var(--spruce-legend-font-size);font-weight:var(--spruce-legend-font-weight)}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group--horizontal-check{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.form-group--vertical-check{display:flex;flex-direction:column;align-items:flex-start;gap:0}.form-group--vertical-check>*{-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}.form-group--vertical-check>*+*{-webkit-margin-before:1rem;margin-block-start:1rem}.form-group--row{--gap: 0.25rem 1rem;--label-column: 10rem;align-items:center;display:grid;gap:var(--gap);grid-template-columns:minmax(0, 1fr)}@media(min-width: 48em){.form-group--row{grid-template-columns:minmax(0, var(--label-column)) minmax(0, 1fr)}}@media(min-width: 48em){.form-group--row .form-description,.form-group--row .field-feedback{grid-column-start:2}}.form-group--stacked{display:flex;flex-direction:column}@media(min-width: 48em){.form-group--stacked{flex-direction:row}}.form-group--stacked>*+*{border-start-end-radius:0;border-start-start-radius:0;-webkit-margin-before:-1px;margin-block-start:-1px}@media(min-width: 48em){.form-group--stacked>*+*{border-end-start-radius:0;border-start-end-radius:var(--spruce-border-radius);-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:-1px;margin-inline-start:-1px}}.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-end-start-radius:0}@media(min-width: 48em){.form-group--stacked>*:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}}@media(min-width: 48em){.form-group--stacked>*:first-child{border-end-start-radius:var(--spruce-border-radius)}}.form-group--stacked>*:focus{z-index:2}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.form-row--mixed{--spruce-col-width: 20ch;display:flex;flex-wrap:wrap;gap:1rem}.form-row--mixed>*{flex:1 1 var(--spruce-col-width)}.field-feedback{display:block;line-height:1.5}.field-feedback--valid{color:var(--spruce-alert-color-success)}.field-feedback--invalid{color:var(--spruce-alert-color-danger)}.form-range{--spruce-focus-ring-box-shadow-type: outside;--spruce-focus-ring-offset: 2px;--spruce-focus-ring-type: outline;--spruce-focus-ring-width: 2px;--spruce-thumb-border-radius: 0.5rem;--spruce-thumb-height: 1rem;--spruce-thumb-width: 1rem;--spruce-track-border-radius: 0.15rem;--spruce-track-height: 0.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-margin-before:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2);margin-block-start:calc(var(--spruce-thumb-height) / 2 - var(--spruce-track-height) / 2)}.form-range:focus-visible{outline:none}.form-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range:focus-visible::-moz-range-thumb{outline:2px solid var(--spruce-form-color-range-thumb-focus-ring);outline-offset:2px}.form-range::-webkit-slider-runnable-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-moz-range-track{background-color:var(--spruce-form-color-range-track-background);border-radius:var(--spruce-track-border-radius);height:var(--spruce-track-height)}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--spruce-form-color-range-thumb-background);border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);-webkit-margin-before:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);margin-block-start:calc(var(--spruce-track-height) / 2 - var(--spruce-thumb-height) / 2);width:var(--spruce-thumb-width)}.form-range::-moz-range-thumb{background-color:var(--spruce-form-color-range-thumb-background);border:0;border-radius:var(--spruce-thumb-border-radius);height:var(--spruce-thumb-height);width:var(--spruce-thumb-width)} diff --git a/package.json b/package.json index 3c8dfcd..bc364af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprucecss", - "version": "2.0.0-beta.9", + "version": "2.0.0", "description": "Spruce CSS - Another CSS Framework", "keywords": [ "css",

`>I*h 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 hdffv2mV%Q~loCIF)|jYa?f literal 67090 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 VeA3}jdfsV}l&7no%Q~loCIEUG*NFfC From 154bcca11a5b7f08ca2c6a6fc7f94aa1d1f95c88 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 12:24:54 +0200 Subject: [PATCH 61/67] Cache busting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 00a744e..942c177 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ [![Back-end](https://img.shields.io/github/actions/workflow/status/conedevelopment/sprucecss/test.yml?branch=main&logo=github&style=for-the-badge&label=Test)](https://github.com/conedevelopment/sprucecss/actions/workflows/test.yml) [![License](https://img.shields.io/badge/license-MIT-2350f6?style=for-the-badge)](https://github.com/conedevelopment/sprucecss/blob/main/LICENSE) -The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. +The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. ## What is Spruce CSS? From 115dbae90e48ba1693cb5f73ccb0afd26ca48ef3 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 12:26:02 +0200 Subject: [PATCH 62/67] Cache busting --- .github/{thumbnail.png => thumbnail-2.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{thumbnail.png => thumbnail-2.png} (100%) diff --git a/.github/thumbnail.png b/.github/thumbnail-2.png similarity index 100% rename from .github/thumbnail.png rename to .github/thumbnail-2.png From a990193b16d7a83ea8a47ae0df2e7428ae1ec4cd Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 12:26:02 +0200 Subject: [PATCH 63/67] Cache busting --- .github/{thumbnail.png => thumbnail-2.png} | Bin README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .github/{thumbnail.png => thumbnail-2.png} (100%) diff --git a/.github/thumbnail.png b/.github/thumbnail-2.png similarity index 100% rename from .github/thumbnail.png rename to .github/thumbnail-2.png diff --git a/README.md b/README.md index 942c177..1cdcd55 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ [![Back-end](https://img.shields.io/github/actions/workflow/status/conedevelopment/sprucecss/test.yml?branch=main&logo=github&style=for-the-badge&label=Test)](https://github.com/conedevelopment/sprucecss/actions/workflows/test.yml) [![License](https://img.shields.io/badge/license-MIT-2350f6?style=for-the-badge)](https://github.com/conedevelopment/sprucecss/blob/main/LICENSE) -The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. +The Spruce CSS logo, a minimalistic, low-level CSS framework caption and an abstract 3D illustration. ## What is Spruce CSS? From 12ab59c7ea1f52ac4dab5a1c1636f18e0327b402 Mon Sep 17 00:00:00 2001 From: Adam Laki Date: Wed, 3 May 2023 12:32:13 +0200 Subject: [PATCH 64/67] Update readme --- .github/thumbnail-2.png | Bin 188435 -> 0 bytes .github/thumbnail-3.png | Bin 0 -> 184647 bytes README.md | 13 ++++++++----- 3 files changed, 8 insertions(+), 5 deletions(-) delete mode 100644 .github/thumbnail-2.png create mode 100644 .github/thumbnail-3.png diff --git a/.github/thumbnail-2.png b/.github/thumbnail-2.png deleted file mode 100644 index 88a520a8844c42fa183d9081a72c9e4b18a501b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188435 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