From 184480936f0edf1f2277fa6f56c8230fa07c89fc Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Fri, 26 Jun 2020 17:09:04 -0700 Subject: [PATCH 01/54] deprecating radio-button's value as label fallback feature since that's not what normal radio inputs do and we also need to set a value without it displaying for the new tile-select component --- .../calcite-radio-button.e2e.ts | 10 --- .../calcite-radio-button.tsx | 2 +- .../calcite-tile-select.css | 3 + .../calcite-tile-select.e2e.ts | 11 +++ .../calcite-tile-select.stories.js | 8 ++ .../calcite-tile-select.tsx | 75 +++++++++++++++++ src/components/calcite-tile-select/readme.md | 29 +++++++ src/demos/calcite-radio-button-group-rtl.html | 34 -------- src/demos/calcite-radio-button-group.html | 34 -------- src/demos/calcite-radio-button-rtl.html | 10 --- src/demos/calcite-radio-button.html | 10 --- src/demos/calcite-tile-select.html | 84 +++++++++++++++++++ src/index.html | 7 +- 13 files changed, 217 insertions(+), 100 deletions(-) create mode 100644 src/components/calcite-tile-select/calcite-tile-select.css create mode 100644 src/components/calcite-tile-select/calcite-tile-select.e2e.ts create mode 100644 src/components/calcite-tile-select/calcite-tile-select.stories.js create mode 100644 src/components/calcite-tile-select/calcite-tile-select.tsx create mode 100644 src/components/calcite-tile-select/readme.md create mode 100644 src/demos/calcite-tile-select.html diff --git a/src/components/calcite-radio-button/calcite-radio-button.e2e.ts b/src/components/calcite-radio-button/calcite-radio-button.e2e.ts index c70413c79ad..e50b700bded 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.e2e.ts +++ b/src/components/calcite-radio-button/calcite-radio-button.e2e.ts @@ -351,16 +351,6 @@ describe("calcite-radio-button", () => { expect(value).toBe("test-value"); }); - it("uses value as fallback label", async () => { - const page = await newE2EPage(); - await page.setContent( - "" - ); - - const label = await page.find("calcite-radio-button >>> calcite-label"); - expect(label).toEqualText("test-value"); - }); - it("updates 'aria-checked' based on 'checked' property", async () => { const page = await newE2EPage(); await page.setContent(""); diff --git a/src/components/calcite-radio-button/calcite-radio-button.tsx b/src/components/calcite-radio-button/calcite-radio-button.tsx index fd09be587fd..589a23a82d5 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.tsx +++ b/src/components/calcite-radio-button/calcite-radio-button.tsx @@ -272,7 +272,7 @@ export class CalciteRadioButton { dir={document.documentElement.getAttribute("dir")} scale={this.scale} > - {this.value} + ); diff --git a/src/components/calcite-tile-select/calcite-tile-select.css b/src/components/calcite-tile-select/calcite-tile-select.css new file mode 100644 index 00000000000..5d4e87f30f6 --- /dev/null +++ b/src/components/calcite-tile-select/calcite-tile-select.css @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/src/components/calcite-tile-select/calcite-tile-select.e2e.ts b/src/components/calcite-tile-select/calcite-tile-select.e2e.ts new file mode 100644 index 00000000000..eae1b728d06 --- /dev/null +++ b/src/components/calcite-tile-select/calcite-tile-select.e2e.ts @@ -0,0 +1,11 @@ +import { newE2EPage } from "@stencil/core/testing"; + +describe("calcite-tile-select", () => { + it("renders", async () => { + const page = await newE2EPage(); + await page.setContent(""); + + const element = await page.find("calcite-tile-select"); + expect(element).toHaveClass("hydrated"); + }); +}); diff --git a/src/components/calcite-tile-select/calcite-tile-select.stories.js b/src/components/calcite-tile-select/calcite-tile-select.stories.js new file mode 100644 index 00000000000..08c2f48ea11 --- /dev/null +++ b/src/components/calcite-tile-select/calcite-tile-select.stories.js @@ -0,0 +1,8 @@ +import { storiesOf } from '@storybook/html'; +import { withKnobs } from '@storybook/addon-knobs' + +storiesOf('Tile Select', module) + .addDecorator(withKnobs) + .add('Simple', () => ` + + `); diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx new file mode 100644 index 00000000000..d5bed06928f --- /dev/null +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -0,0 +1,75 @@ +import { Component, Element, Host, h, Prop } from "@stencil/core"; + +@Component({ + tag: "calcite-tile-select", + styleUrl: "calcite-tile-select.css", + shadow: true, +}) +export class CalciteTileSelect { + //-------------------------------------------------------------------------- + // + // Element + // + //-------------------------------------------------------------------------- + + @Element() el: HTMLElement; + + //-------------------------------------------------------------------------- + // + // Properties + // + //-------------------------------------------------------------------------- + + @Prop() name: string; + @Prop() value: string; + + //-------------------------------------------------------------------------- + // + // Private Properties + // + //-------------------------------------------------------------------------- + + private radioButton: HTMLCalciteRadioButtonElement; + + //-------------------------------------------------------------------------- + // + // Lifecycle + // + //-------------------------------------------------------------------------- + + connectedCallback() { + this.renderRadioButton(); + } + + // -------------------------------------------------------------------------- + // + // Render Methods + // + // -------------------------------------------------------------------------- + + private renderRadioButton() { + // Rendering a hidden radio input outside Shadow DOM so it can participate in form submissions + // @link https://www.hjorthhansen.dev/shadow-dom-form-participation/ + this.radioButton = this.el.ownerDocument.createElement( + "calcite-radio-button" + ); + if (this.name) { + this.radioButton.name = this.name; + } + if (this.value) { + this.radioButton.value = this.value; + } + // This renders the input as a sibling of calcite-radio-button because as it turns out + // doing appendChild as hjorthhansen suggests doesn't really keep it out of the + // shadow DOM as far as slot behavior goes. This is required to render {this.value} as fallback slot content. + this.el.insertAdjacentElement("afterend", this.radioButton); + } + + render() { + return ( + + + + ); + } +} diff --git a/src/components/calcite-tile-select/readme.md b/src/components/calcite-tile-select/readme.md new file mode 100644 index 00000000000..20096c15783 --- /dev/null +++ b/src/components/calcite-tile-select/readme.md @@ -0,0 +1,29 @@ +# calcite-tile-select + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| -------- | --------- | ----------- | -------- | ----------- | +| `name` | `name` | | `string` | `undefined` | +| `value` | `value` | | `string` | `undefined` | + +## Dependencies + +### Depends on + +- [calcite-radio-button](../calcite-radio-button) + +### Graph + +```mermaid +graph TD; + calcite-tile-select --> calcite-radio-button + calcite-radio-button --> calcite-label + style calcite-tile-select fill:#f9f,stroke:#333,stroke-width:4px +``` + +--- + +_Built with [StencilJS](https://stenciljs.com/)_ diff --git a/src/demos/calcite-radio-button-group-rtl.html b/src/demos/calcite-radio-button-group-rtl.html index 5165bcadb73..4d23244a116 100644 --- a/src/demos/calcite-radio-button-group-rtl.html +++ b/src/demos/calcite-radio-button-group-rtl.html @@ -181,23 +181,6 @@

Scale l

-

Uses value as label if missing

- - - - - - - - - - - - - - - -
@@ -539,23 +522,6 @@

Scale l

-

Uses value as label if missing

- - - - - - - - - - - - - - - -
diff --git a/src/demos/calcite-radio-button-group.html b/src/demos/calcite-radio-button-group.html index 9d4051849d6..03330cc686c 100644 --- a/src/demos/calcite-radio-button-group.html +++ b/src/demos/calcite-radio-button-group.html @@ -181,23 +181,6 @@

Scale l

-

Uses value as label if missing

- - - - - - - - - - - - - - - -
@@ -539,23 +522,6 @@

Scale l

-

Uses value as label if missing

- - - - - - - - - - - - - - - -
diff --git a/src/demos/calcite-radio-button-rtl.html b/src/demos/calcite-radio-button-rtl.html index 9c317c99f9d..0793db99395 100644 --- a/src/demos/calcite-radio-button-rtl.html +++ b/src/demos/calcite-radio-button-rtl.html @@ -102,11 +102,6 @@

Scale l

Angular -

Uses value as label if missing

- - - -
@@ -226,11 +221,6 @@

Scale l

Angular -

Uses value as label if missing

- - - -
diff --git a/src/demos/calcite-radio-button.html b/src/demos/calcite-radio-button.html index 9503d87c70d..5b448dfe066 100644 --- a/src/demos/calcite-radio-button.html +++ b/src/demos/calcite-radio-button.html @@ -102,11 +102,6 @@

Scale l

Angular -

Uses value as label if missing

- - - -
@@ -226,11 +221,6 @@

Scale l

Angular -

Uses value as label if missing

- - - -
diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html new file mode 100644 index 00000000000..c8a81848035 --- /dev/null +++ b/src/demos/calcite-tile-select.html @@ -0,0 +1,84 @@ + + + + + + + + Calcite Tile Select + + + + + + + + + + + + Home +

Calcite Tile Select

+ + +
+ +
+
+

Heading

+ + + +

Left Radio

+ + +
+ +
+ +
+ +

Heading

+ + + +

Left Radio

+ + +
+ +
+
+ Submit + +
+
+
+ + + \ No newline at end of file diff --git a/src/index.html b/src/index.html index 4f893354108..bcabb3b84e6 100644 --- a/src/index.html +++ b/src/index.html @@ -6,7 +6,7 @@ name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" /> - Calcite Component Starter + Calcite Component Demos @@ -41,48 +43,47 @@ - - Home -

Calcite Tile Select

- - -
- - -
-
-

Heading

- - - -

Left Radio

- - -

Left Checkbox

- - -
- -
- -
- -

Heading

- + + + < Home +

Calcite Tile Select

+ + - -

Left Radio

- - +
+
+ +

Heading

+ +

Left Radio

+ + + + + +

Left Checkbox

+ + + + +
+
+
+ +

Heading

+

Left Radio

+ +

Left Checkbox

+ +
+
+
+ Submit +
- -
-
- Submit - -
-
-
+ + + \ No newline at end of file diff --git a/src/demos/helpers/demo-spacer.js b/src/demos/helpers/demo-spacer.js index 5c19e43fbb0..1c1405322c7 100644 --- a/src/demos/helpers/demo-spacer.js +++ b/src/demos/helpers/demo-spacer.js @@ -7,7 +7,7 @@ class DemoSpacer extends HTMLElement { :host { display: grid; grid-template-columns: 1fr; - grid-gap: 12px; + grid-gap: ${this.getAttribute("gap") || "12px"}; } From cb84809ae4c57ace370fefb13db61c693b4c7d30 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 1 Jul 2020 17:18:33 -0700 Subject: [PATCH 05/54] feature: adding hover prop to radio-button so we can trigger hover styling from tile-select programmatically. Also adding hide-input property to implement the basic view --- .../calcite-radio-button.scss | 10 ++--- .../calcite-radio-button.tsx | 12 +++++ .../calcite-tile-select.scss | 12 ++--- .../calcite-tile-select.tsx | 44 +++++++++++++++++-- src/demos/calcite-tile-select.html | 7 ++- 5 files changed, 67 insertions(+), 18 deletions(-) diff --git a/src/components/calcite-radio-button/calcite-radio-button.scss b/src/components/calcite-radio-button/calcite-radio-button.scss index 84f2d44e2cb..53e330f045b 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.scss +++ b/src/components/calcite-radio-button/calcite-radio-button.scss @@ -16,7 +16,7 @@ align-items: center; --calcite-label-margin-bottom: 0; } -:host(:hover) { +:host([hovered]) { .radio { box-shadow: inset 0 0 0 2px var(--calcite-ui-blue-1); } @@ -29,7 +29,7 @@ cursor: default; } } -:host(:hover[disabled]) { +:host([hovered][disabled]) { .radio { box-shadow: inset 0 0 0 1px var(--calcite-ui-border-1); } @@ -47,7 +47,7 @@ grid-template-rows: 16px 1fr; } :host([scale="s"][checked]), -:host(:hover[scale="s"][checked][disabled]) { +:host([hovered][scale="s"][checked][disabled]) { .radio { box-shadow: inset 0 0 0 4px var(--calcite-ui-blue-1); } @@ -72,7 +72,7 @@ grid-template-rows: 20px 1fr; } :host([scale="m"][checked]), -:host(:hover[scale="m"][checked][disabled]) { +:host([hovered][scale="m"][checked][disabled]) { .radio { box-shadow: inset 0 0 0 5px var(--calcite-ui-blue-1); } @@ -98,7 +98,7 @@ grid-template-rows: 24px 1fr; } :host([scale="l"][checked]), -:host(:hover[scale="l"][checked][disabled]) { +:host([hovered][scale="l"][checked][disabled]) { .radio { box-shadow: inset 0 0 0 6px var(--calcite-ui-blue-1); } diff --git a/src/components/calcite-radio-button/calcite-radio-button.tsx b/src/components/calcite-radio-button/calcite-radio-button.tsx index ffb59a820e7..3c2586bd983 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.tsx +++ b/src/components/calcite-radio-button/calcite-radio-button.tsx @@ -71,6 +71,9 @@ export class CalciteRadioButton { this.input.hidden = newHidden; } + /** The hovered state of the radio button. */ + @Prop({ reflect: true, mutable: true }) hovered: boolean = false; + /** The name of the radio button. name is passed as a property automatically from calcite-radio-button-group. */ @Prop({ reflect: true }) name!: string; @Watch("name") @@ -183,6 +186,15 @@ export class CalciteRadioButton { } } + @Listen("mouseenter") + mouseenter() { + this.hovered = true; + } + @Listen("mouseleave") + mouseleave() { + this.hovered = false; + } + onInputBlur() { this.focused = false; } diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 10553ccb4e4..acc152b576b 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -15,12 +15,8 @@ padding: $baseline/2; width: 100%; height: 100%; - &:hover { - box-shadow: $shadow-1--hover; - z-index: 1; - } - &:active { - box-shadow: $shadow-1--press; - z-index: 1; - } + cursor: pointer; +} +:host(:not([hide-input])[checked]) { + border: 1px solid var(--calcite-ui-blue-1); } diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index 44b3e211178..a6c82c59e10 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -1,4 +1,4 @@ -import { Component, Element, Host, h, Prop } from "@stencil/core"; +import { Component, Element, Host, h, Prop, Listen } from "@stencil/core"; @Component({ tag: "calcite-tile-select", @@ -20,9 +20,12 @@ export class CalciteTileSelect { // //-------------------------------------------------------------------------- - @Prop({ reflect: true }) checked: boolean = false; + @Prop({ reflect: true, mutable: true }) checked: boolean = false; + @Prop({ reflect: true }) disabled: boolean = false; + @Prop({ reflect: true }) hidden: boolean = false; @Prop({ reflect: true }) name: string = ""; - @Prop({ mutable: true, reflect: true }) theme: "light" | "dark" = "light"; + @Prop({ reflect: true }) hideInput: boolean = false; + @Prop({ reflect: true }) theme: "light" | "dark" = "light"; @Prop({ reflect: true }) type: "radio" | "checkbox" = "radio"; @Prop({ reflect: true }) value?: string; @@ -34,6 +37,39 @@ export class CalciteTileSelect { private input: HTMLCalciteCheckboxElement | HTMLCalciteRadioButtonElement; + //-------------------------------------------------------------------------- + // + // Event Listeners + // + //-------------------------------------------------------------------------- + + @Listen("calciteRadioButtonChange") + calciteRadioButtonChangeEvent(event: CustomEvent) { + const radioButton = event.target as HTMLCalciteRadioButtonElement; + if (radioButton === this.input) { + this.checked = radioButton.checked; + } + } + + @Listen("click") + click() { + this.input.click(); + } + + @Listen("mouseenter") + mouseenter() { + if (this.input.localName === "calcite-radio-button") { + (this.input as HTMLCalciteRadioButtonElement).hovered = true; + } + } + + @Listen("mouseleave") + mouseleave() { + if (this.input.localName === "calcite-radio-button") { + (this.input as HTMLCalciteRadioButtonElement).hovered = false; + } + } + //-------------------------------------------------------------------------- // // Lifecycle @@ -59,6 +95,8 @@ export class CalciteTileSelect { this.type === "radio" ? "calcite-radio-button" : "calcite-checkbox" ); this.input.checked = this.checked; + this.input.disabled = this.disabled; + this.input.hidden = this.hidden; if (this.name) { this.input.name = this.name; } diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 05928fab8a3..0d4ec9a9a5f 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -53,7 +53,11 @@

Calcite Tile Select

-

Heading

+

Basic

+ + + +

Left Radio

@@ -70,7 +74,6 @@

Left Checkbox

-

Heading

Left Radio

Left Checkbox

From 592f9573f63a6338d17ac743f99167de84b8a42d Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Thu, 2 Jul 2020 15:50:52 -0700 Subject: [PATCH 06/54] feature: focused, checked and hover state for hide-input --- .../calcite-radio-button/calcite-radio-button.tsx | 3 +++ .../calcite-tile-select/calcite-tile-select.scss | 15 ++++++++++++--- .../calcite-tile-select/calcite-tile-select.tsx | 12 ++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/components/calcite-radio-button/calcite-radio-button.tsx b/src/components/calcite-radio-button/calcite-radio-button.tsx index 3c2586bd983..cc7269f6f33 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.tsx +++ b/src/components/calcite-radio-button/calcite-radio-button.tsx @@ -58,6 +58,7 @@ export class CalciteRadioButton { } else { this.input.blur(); } + this.calciteRadioButtonFocusedChange.emit(); } /** The id attribute of the radio button. When omitted, a globally unique identifier is used. */ @@ -170,6 +171,8 @@ export class CalciteRadioButton { @Event() calciteRadioButtonChange: EventEmitter; + @Event() + calciteRadioButtonFocusedChange: EventEmitter; //-------------------------------------------------------------------------- // diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index acc152b576b..64cd79e2ad5 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -8,9 +8,8 @@ background-color: var(--calcite-ui-foreground-1); transition: $transition; position: relative; - border: 1px solid var(--calcite-ui-border-2); color: var(--calcite-ui-text-3); - box-shadow: 0 0 0 rgba(0, 0, 0, 0); + box-shadow: 0 0 0 1px var(--calcite-ui-border-2); box-sizing: border-box; padding: $baseline/2; width: 100%; @@ -18,5 +17,15 @@ cursor: pointer; } :host(:not([hide-input])[checked]) { - border: 1px solid var(--calcite-ui-blue-1); + box-shadow: 0 0 0 1px var(--calcite-ui-blue-1); +} +:host([hide-input]:hover) { + box-shadow: 0 0 0 2px var(--calcite-ui-blue-1); +} +:host([hide-input][checked]) { + box-shadow: 0 0 0 3px var(--calcite-ui-blue-1); +} +:host([hide-input][focused]) { + box-shadow: 0 0 0 3px var(--calcite-ui-blue-1), + 0 0 0 5px var(--calcite-ui-foreground-1), 0 0 0 7px var(--calcite-ui-blue-1); } diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index a6c82c59e10..d2fc9c52918 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -22,6 +22,7 @@ export class CalciteTileSelect { @Prop({ reflect: true, mutable: true }) checked: boolean = false; @Prop({ reflect: true }) disabled: boolean = false; + @Prop({ reflect: true }) focused: boolean = false; @Prop({ reflect: true }) hidden: boolean = false; @Prop({ reflect: true }) name: string = ""; @Prop({ reflect: true }) hideInput: boolean = false; @@ -51,6 +52,14 @@ export class CalciteTileSelect { } } + @Listen("calciteRadioButtonFocusedChange") + calciteRadioButtonFocusedChangeEvent(event: CustomEvent) { + const radioButton = event.target as HTMLCalciteRadioButtonElement; + if (radioButton === this.input) { + this.focused = radioButton.focused; + } + } + @Listen("click") click() { this.input.click(); @@ -104,6 +113,9 @@ export class CalciteTileSelect { if (this.value) { this.input.value = this.value; } + if (this.hideInput) { + this.input.style.opacity = "0"; + } this.el.insertAdjacentElement("beforeend", this.input); } From 615ff8d823104682e6cd5b0d738718273683a54c Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Thu, 2 Jul 2020 16:59:39 -0700 Subject: [PATCH 07/54] a start to the rest of the layout --- .../calcite-tile-select.scss | 41 +++++++++++++++---- .../calcite-tile-select.tsx | 27 ++++++++++-- src/demos/calcite-tile-select.html | 38 +++++++++-------- 3 files changed, 79 insertions(+), 27 deletions(-) diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 64cd79e2ad5..b966a3e3ef9 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -1,31 +1,56 @@ :host-context([theme="dark"]) { @include calcite-theme-dark(); } +$spacing: $baseline/2; + :host { - display: flex; - flex-direction: column; - justify-content: space-between; + display: grid; + grid-template-columns: max-content 1fr; + grid-gap: $spacing; background-color: var(--calcite-ui-foreground-1); transition: $transition; position: relative; color: var(--calcite-ui-text-3); box-shadow: 0 0 0 1px var(--calcite-ui-border-2); box-sizing: border-box; - padding: $baseline/2; + padding: $spacing; width: 100%; height: 100%; cursor: pointer; } -:host(:not([hide-input])[checked]) { +:host(:not([show-input="none"])[checked]) { box-shadow: 0 0 0 1px var(--calcite-ui-blue-1); } -:host([hide-input]:hover) { +:host([show-input="none"]:hover) { box-shadow: 0 0 0 2px var(--calcite-ui-blue-1); } -:host([hide-input][checked]) { +:host([show-input="none"][checked]) { box-shadow: 0 0 0 3px var(--calcite-ui-blue-1); } -:host([hide-input][focused]) { +:host([show-input="none"][focused]) { box-shadow: 0 0 0 3px var(--calcite-ui-blue-1), 0 0 0 5px var(--calcite-ui-foreground-1), 0 0 0 7px var(--calcite-ui-blue-1); } +#content { + display: grid; + grid-template-columns: 1fr; + grid-gap: $spacing; +} +:host([show-input="left"]) { + #content { + order: 1; + } +} +:host([show-input="right"]) { + #content { + order: 0; + } +} +#title { + @include font-size(0); + color: var(--calcite-ui-text-1); +} +#description { + @include font-size(-1); + color: var(--calcite-ui-text-2); +} diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index d2fc9c52918..5d6ab4e3a20 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -21,12 +21,15 @@ export class CalciteTileSelect { //-------------------------------------------------------------------------- @Prop({ reflect: true, mutable: true }) checked: boolean = false; + @Prop() description: string = ""; @Prop({ reflect: true }) disabled: boolean = false; @Prop({ reflect: true }) focused: boolean = false; @Prop({ reflect: true }) hidden: boolean = false; + @Prop({ reflect: true }) icon: string = ""; @Prop({ reflect: true }) name: string = ""; - @Prop({ reflect: true }) hideInput: boolean = false; + @Prop({ reflect: true }) showInput: "left" | "right" | "none" = "left"; @Prop({ reflect: true }) theme: "light" | "dark" = "light"; + @Prop() title: string = ""; @Prop({ reflect: true }) type: "radio" | "checkbox" = "radio"; @Prop({ reflect: true }) value?: string; @@ -113,8 +116,17 @@ export class CalciteTileSelect { if (this.value) { this.input.value = this.value; } - if (this.hideInput) { - this.input.style.opacity = "0"; + switch (this.showInput) { + case "none": + this.input.style.opacity = "0"; + this.input.style.position = "absolute"; + break; + case "left": + this.input.style.order = "0"; + break; + case "right": + this.input.style.order = "2"; + break; } this.el.insertAdjacentElement("beforeend", this.input); } @@ -122,6 +134,15 @@ export class CalciteTileSelect { render() { return ( +
+
+ {this.icon && ( + + )} +
+
{this.title}
+
{this.description}
+
); diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 0d4ec9a9a5f..9c9d6a3ef9b 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -53,31 +53,37 @@

Calcite Tile Select

-

Basic

- - - - -

Left Radio

- - - - + + + + + +

Right Radio

+ + + +

Left Checkbox

- - - - + + + + + +

Basic

+ + + +

Left Radio

- +

Left Checkbox

- +
From 9684828d4ae84d106d4ebd8ac517d47f1ab787e0 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Tue, 7 Jul 2020 15:09:15 -0700 Subject: [PATCH 08/54] feature: left and right radio style variants with icon, title and description --- .../calcite-tile-select/calcite-tile-select.scss | 12 +++++++++++- src/demos/calcite-tile-select.html | 14 +++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index b966a3e3ef9..551a8620e4c 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -5,7 +5,6 @@ $spacing: $baseline/2; :host { display: grid; - grid-template-columns: max-content 1fr; grid-gap: $spacing; background-color: var(--calcite-ui-foreground-1); transition: $transition; @@ -31,6 +30,12 @@ $spacing: $baseline/2; box-shadow: 0 0 0 3px var(--calcite-ui-blue-1), 0 0 0 5px var(--calcite-ui-foreground-1), 0 0 0 7px var(--calcite-ui-blue-1); } +:host([show-input="left"]) { + grid-template-columns: max-content 1fr; +} +:host([show-input="right"]) { + grid-template-columns: 1fr max-content; +} #content { display: grid; grid-template-columns: 1fr; @@ -50,6 +55,11 @@ $spacing: $baseline/2; @include font-size(0); color: var(--calcite-ui-text-1); } +:host([checked]) { + #title { + font-weight: 500; + } +} #description { @include font-size(-1); color: var(--calcite-ui-text-2); diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 9c9d6a3ef9b..c01640a5d7e 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -55,15 +55,15 @@

Calcite Tile Select

Left Radio

- - - + + +

Right Radio

- - - - + + + +

Left Checkbox

From a3cb390b3c6d76d524c6366052950183950f6f59 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Tue, 7 Jul 2020 17:13:59 -0700 Subject: [PATCH 09/54] feature: checkbox checked visual state --- .../calcite-checkbox/calcite-checkbox.scss | 2 +- .../calcite-checkbox/calcite-checkbox.tsx | 13 ++ .../calcite-radio-button.tsx | 1 + .../calcite-tile-select.scss | 4 +- .../calcite-tile-select.tsx | 24 ++- src/demos/calcite-tile-select.html | 153 ++++++++++++++++-- 6 files changed, 173 insertions(+), 24 deletions(-) diff --git a/src/components/calcite-checkbox/calcite-checkbox.scss b/src/components/calcite-checkbox/calcite-checkbox.scss index 3e08cabb79a..3de2fc87cd2 100644 --- a/src/components/calcite-checkbox/calcite-checkbox.scss +++ b/src/components/calcite-checkbox/calcite-checkbox.scss @@ -69,7 +69,7 @@ } } -:host(:hover), +:host([hovered]), :host(:focus) { outline: none; .check-svg { diff --git a/src/components/calcite-checkbox/calcite-checkbox.tsx b/src/components/calcite-checkbox/calcite-checkbox.tsx index 6ce3309706e..92be95e8da3 100644 --- a/src/components/calcite-checkbox/calcite-checkbox.tsx +++ b/src/components/calcite-checkbox/calcite-checkbox.tsx @@ -23,6 +23,9 @@ export class CalciteCheckbox { /** True if the checkbox is initially checked */ @Prop({ reflect: true, mutable: true }) checked?: boolean = false; + /** The hovered state of the checkbox. */ + @Prop({ reflect: true, mutable: true }) hovered: boolean = false; + /** * True if the checkbox is initially indeterminate, * which is independent from its checked state @@ -76,6 +79,16 @@ export class CalciteCheckbox { } } + @Listen("mouseenter") + mouseenter() { + this.hovered = true; + } + + @Listen("mouseleave") + mouseleave() { + this.hovered = false; + } + @Watch("checked") checkedWatcher() { this.calciteCheckboxChange.emit(); this.checked diff --git a/src/components/calcite-radio-button/calcite-radio-button.tsx b/src/components/calcite-radio-button/calcite-radio-button.tsx index cc7269f6f33..ceddc2ff767 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.tsx +++ b/src/components/calcite-radio-button/calcite-radio-button.tsx @@ -193,6 +193,7 @@ export class CalciteRadioButton { mouseenter() { this.hovered = true; } + @Listen("mouseleave") mouseleave() { this.hovered = false; diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 551a8620e4c..eff0a0d74da 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -51,12 +51,12 @@ $spacing: $baseline/2; order: 0; } } -#title { +#heading { @include font-size(0); color: var(--calcite-ui-text-1); } :host([checked]) { - #title { + #heading { font-weight: 500; } } diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index 5d6ab4e3a20..72f7f204cff 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -29,7 +29,7 @@ export class CalciteTileSelect { @Prop({ reflect: true }) name: string = ""; @Prop({ reflect: true }) showInput: "left" | "right" | "none" = "left"; @Prop({ reflect: true }) theme: "light" | "dark" = "light"; - @Prop() title: string = ""; + @Prop() heading: string = ""; @Prop({ reflect: true }) type: "radio" | "checkbox" = "radio"; @Prop({ reflect: true }) value?: string; @@ -47,6 +47,14 @@ export class CalciteTileSelect { // //-------------------------------------------------------------------------- + @Listen("calciteCheckboxChange") + calciteCheckboxChangeEvent(event: CustomEvent) { + const checkbox = event.target as HTMLCalciteCheckboxElement; + if (checkbox === this.input) { + this.checked = checkbox.checked; + } + } + @Listen("calciteRadioButtonChange") calciteRadioButtonChangeEvent(event: CustomEvent) { const radioButton = event.target as HTMLCalciteRadioButtonElement; @@ -64,8 +72,10 @@ export class CalciteTileSelect { } @Listen("click") - click() { - this.input.click(); + click(event: MouseEvent) { + if ((event.target as HTMLElement).localName === "calcite-tile-select") { + this.input.click(); + } } @Listen("mouseenter") @@ -73,6 +83,9 @@ export class CalciteTileSelect { if (this.input.localName === "calcite-radio-button") { (this.input as HTMLCalciteRadioButtonElement).hovered = true; } + if (this.input.localName === "calcite-checkbox") { + (this.input as HTMLCalciteCheckboxElement).hovered = true; + } } @Listen("mouseleave") @@ -80,6 +93,9 @@ export class CalciteTileSelect { if (this.input.localName === "calcite-radio-button") { (this.input as HTMLCalciteRadioButtonElement).hovered = false; } + if (this.input.localName === "calcite-checkbox") { + (this.input as HTMLCalciteCheckboxElement).hovered = false; + } } //-------------------------------------------------------------------------- @@ -140,7 +156,7 @@ export class CalciteTileSelect { )}
-
{this.title}
+
{this.heading}
{this.description}
diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index c01640a5d7e..8678746cf41 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -54,36 +54,155 @@

Calcite Tile Select

Left Radio

- - - - + + + + + + + +

Right Radio

- - - - + + + + + + + +

Left Checkbox

- - - - + + + + + + + + + +

Right Checkbox

+ + + + + + + +

Basic

- - - + + + + + +
+

Left Radio

- + + + + + + + + + +

Right Radio

+ + + + + + + + +

Left Checkbox

- + + + + + + + + + +

Right Checkbox

+ + + + + + + + +
From b14cb84b6ff6945da90c9e7bf419f0c490b29c66 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 8 Jul 2020 16:04:22 -0700 Subject: [PATCH 10/54] focusing the input on click in addition to calling click on it (only really relevant for checkboxes) --- src/components/calcite-tile-select/calcite-tile-select.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index 72f7f204cff..f19676dd7bd 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -75,6 +75,7 @@ export class CalciteTileSelect { click(event: MouseEvent) { if ((event.target as HTMLElement).localName === "calcite-tile-select") { this.input.click(); + this.input.focus(); } } From 91d81bbf11e831a545974302ba2b07b1b38ff9a3 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 8 Jul 2020 16:12:26 -0700 Subject: [PATCH 11/54] refactor: allowing browser default "on" behavior to occur on calcite-checkbox when omitting the value attribute for convenience when using with calcite-tile-select --- src/components/calcite-checkbox/calcite-checkbox.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/calcite-checkbox/calcite-checkbox.tsx b/src/components/calcite-checkbox/calcite-checkbox.tsx index 92be95e8da3..fce174180e5 100644 --- a/src/components/calcite-checkbox/calcite-checkbox.tsx +++ b/src/components/calcite-checkbox/calcite-checkbox.tsx @@ -37,7 +37,7 @@ export class CalciteCheckbox { @Prop({ reflect: true, mutable: true }) name?: string = ""; /** The value of the checkbox input */ - @Prop({ reflect: true, mutable: true }) value?: string = ""; + @Prop({ reflect: true, mutable: true }) value?: string; /** specify the scale of the checkbox, defaults to m */ @Prop({ reflect: true, mutable: true }) scale: "s" | "m" | "l" = "m"; @@ -168,6 +168,8 @@ export class CalciteCheckbox { ? this.inputProxy.setAttribute("checked", "") : this.inputProxy.removeAttribute("checked"); this.inputProxy.name = this.name; - this.inputProxy.value = this.value; + if (this.value) { + this.inputProxy.value = this.value; + } }; } From ef96ac18cfdb140fb3227fad2bab11daa709dd34 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 8 Jul 2020 16:47:48 -0700 Subject: [PATCH 12/54] adding basic radio examples --- src/demos/calcite-tile-select.html | 59 ++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 8678746cf41..0822a5922f6 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -123,12 +123,21 @@

Right Checkbox

Basic

- - + - + + + - + @@ -172,34 +181,52 @@

Right Radio

Left Checkbox

- - - -

Right Checkbox

- - - - + + +

Basic

+ + + + + + + From f6a98cf730da4d6e746de52e5e9078e5ebbd393d Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 8 Jul 2020 16:55:18 -0700 Subject: [PATCH 13/54] setting max-width and removing explicit height --- src/components/calcite-tile-select/calcite-tile-select.scss | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index eff0a0d74da..52e8139eaf0 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -13,8 +13,7 @@ $spacing: $baseline/2; box-shadow: 0 0 0 1px var(--calcite-ui-border-2); box-sizing: border-box; padding: $spacing; - width: 100%; - height: 100%; + max-width: 300px; cursor: pointer; } :host(:not([show-input="none"])[checked]) { From d13e3ed413535a1f7e113c55d182fd47bdc39fd4 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 8 Jul 2020 16:58:53 -0700 Subject: [PATCH 14/54] adding basic checkbox examples --- src/demos/calcite-tile-select.html | 40 ++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 0822a5922f6..8d0191e29ab 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -122,7 +122,7 @@

Right Checkbox

description="Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall.">
-

Basic

+

Basic Radio

@@ -139,6 +139,24 @@

Basic

heading="Tile title lorem ipsum" description="Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall.">
+ +

Basic Checkbox

+ + + + + + + +
@@ -216,7 +234,7 @@

Right Checkbox

description="Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall."> -

Basic

+

Basic Radio

@@ -230,6 +248,24 @@

Basic

description="Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall."> +

Basic Checkbox

+ + + + + + + + +
From 1cc34a95306ce75460893452c72b3fcc43683dd6 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Thu, 9 Jul 2020 16:07:28 -0700 Subject: [PATCH 15/54] calcite-tile component so that we can make it be a basic link when used standalone but embeddable for calcite-tile-select --- .../calcite-tile-select.scss | 27 +------ .../calcite-tile-select.tsx | 15 ++-- .../calcite-tile/calcite-tile.e2e.ts | 11 +++ src/components/calcite-tile/calcite-tile.scss | 39 ++++++++++ .../calcite-tile/calcite-tile.stories.js | 8 ++ src/components/calcite-tile/calcite-tile.tsx | 44 +++++++++++ src/components/calcite-tile/readme.md | 29 +++++++ src/demos/calcite-tile.html | 75 +++++++++++++++++++ src/index.html | 5 ++ 9 files changed, 218 insertions(+), 35 deletions(-) create mode 100644 src/components/calcite-tile/calcite-tile.e2e.ts create mode 100644 src/components/calcite-tile/calcite-tile.scss create mode 100644 src/components/calcite-tile/calcite-tile.stories.js create mode 100644 src/components/calcite-tile/calcite-tile.tsx create mode 100644 src/components/calcite-tile/readme.md create mode 100644 src/demos/calcite-tile.html diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 52e8139eaf0..d1edecb6208 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -8,8 +8,6 @@ $spacing: $baseline/2; grid-gap: $spacing; background-color: var(--calcite-ui-foreground-1); transition: $transition; - position: relative; - color: var(--calcite-ui-text-3); box-shadow: 0 0 0 1px var(--calcite-ui-border-2); box-sizing: border-box; padding: $spacing; @@ -35,31 +33,8 @@ $spacing: $baseline/2; :host([show-input="right"]) { grid-template-columns: 1fr max-content; } -#content { - display: grid; - grid-template-columns: 1fr; - grid-gap: $spacing; -} :host([show-input="left"]) { - #content { + calcite-tile { order: 1; } } -:host([show-input="right"]) { - #content { - order: 0; - } -} -#heading { - @include font-size(0); - color: var(--calcite-ui-text-1); -} -:host([checked]) { - #heading { - font-weight: 500; - } -} -#description { - @include font-size(-1); - color: var(--calcite-ui-text-2); -} diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index f19676dd7bd..649367cda97 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -151,15 +151,12 @@ export class CalciteTileSelect { render() { return ( -
-
- {this.icon && ( - - )} -
-
{this.heading}
-
{this.description}
-
+
); diff --git a/src/components/calcite-tile/calcite-tile.e2e.ts b/src/components/calcite-tile/calcite-tile.e2e.ts new file mode 100644 index 00000000000..f2185f4144f --- /dev/null +++ b/src/components/calcite-tile/calcite-tile.e2e.ts @@ -0,0 +1,11 @@ +import { newE2EPage } from "@stencil/core/testing"; + +describe("calcite-tile", () => { + it("renders", async () => { + const page = await newE2EPage(); + await page.setContent(""); + + const element = await page.find("calcite-tile"); + expect(element).toHaveClass("hydrated"); + }); +}); diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss new file mode 100644 index 00000000000..61e52f06d7e --- /dev/null +++ b/src/components/calcite-tile/calcite-tile.scss @@ -0,0 +1,39 @@ +:host-context([theme="dark"]) { + @include calcite-theme-dark(); +} +$spacing: $baseline/2; + +:host { + display: grid; + grid-template-columns: 1fr; + grid-gap: $spacing; + background-color: var(--calcite-ui-foreground-1); + transition: $transition; + color: var(--calcite-ui-text-3); + box-sizing: border-box; + cursor: pointer; + user-select: none; + max-width: inherit; +} +:host(:not([embed])) { + box-shadow: 0 0 0 1px var(--calcite-ui-border-2); + max-width: 300px; + padding: $spacing; +} +:host(:not([embed]):hover) { + box-shadow: 0 0 0 2px var(--calcite-ui-blue-1); +} +:host(:not([embed]):active) { + box-shadow: 0 0 0 3px var(--calcite-ui-blue-1); + #heading { + font-weight: 500; + } +} +#heading { + @include font-size(0); + color: var(--calcite-ui-text-1); +} +#description { + @include font-size(-1); + color: var(--calcite-ui-text-2); +} diff --git a/src/components/calcite-tile/calcite-tile.stories.js b/src/components/calcite-tile/calcite-tile.stories.js new file mode 100644 index 00000000000..03dd767323f --- /dev/null +++ b/src/components/calcite-tile/calcite-tile.stories.js @@ -0,0 +1,8 @@ +import { storiesOf } from '@storybook/html'; +import { withKnobs } from '@storybook/addon-knobs' + +storiesOf('Tile', module) + .addDecorator(withKnobs) + .add('Simple', () => ` + + `); diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx new file mode 100644 index 00000000000..270bc73633d --- /dev/null +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -0,0 +1,44 @@ +import { Component, Host, h, Prop } from "@stencil/core"; + +@Component({ + tag: "calcite-tile", + styleUrl: "calcite-tile.scss", + shadow: true, +}) +export class CalciteTile { + //-------------------------------------------------------------------------- + // + // Properties + // + //-------------------------------------------------------------------------- + + @Prop() description: string = ""; + @Prop({ reflect: true }) disabled: boolean = false; + @Prop({ reflect: true }) embed: boolean = false; + @Prop({ reflect: true }) focused: boolean = false; + @Prop({ reflect: true }) hidden: boolean = false; + @Prop({ reflect: true }) icon: string = ""; + @Prop({ reflect: true }) theme: "light" | "dark" = "light"; + @Prop() heading: string = ""; + + // -------------------------------------------------------------------------- + // + // Render Methods + // + // -------------------------------------------------------------------------- + + render() { + return ( + +
+ {this.icon && ( + + )} +
+
{this.heading}
+
{this.description}
+ +
+ ); + } +} diff --git a/src/components/calcite-tile/readme.md b/src/components/calcite-tile/readme.md new file mode 100644 index 00000000000..a97ef837852 --- /dev/null +++ b/src/components/calcite-tile/readme.md @@ -0,0 +1,29 @@ +# calcite-tile + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| -------- | --------- | ----------- | -------- | ----------- | +| `name` | `name` | | `string` | `undefined` | +| `value` | `value` | | `string` | `undefined` | + +## Dependencies + +### Depends on + +- [calcite-radio-button](../calcite-radio-button) + +### Graph + +```mermaid +graph TD; + calcite-tile --> calcite-radio-button + calcite-radio-button --> calcite-label + style calcite-tile fill:#f9f,stroke:#333,stroke-width:4px +``` + +--- + +_Built with [StencilJS](https://stenciljs.com/)_ diff --git a/src/demos/calcite-tile.html b/src/demos/calcite-tile.html new file mode 100644 index 00000000000..bc27418e4b3 --- /dev/null +++ b/src/demos/calcite-tile.html @@ -0,0 +1,75 @@ + + + + + + + + Calcite Tile + + + + + + + + + + + + < Home +

Calcite Tile

+ +
+
+ + + + + + + +
+
+ + + + +
+
+
+
+ + + \ No newline at end of file diff --git a/src/index.html b/src/index.html index bcabb3b84e6..b2e625d80ce 100644 --- a/src/index.html +++ b/src/index.html @@ -187,6 +187,11 @@

Calcite Component Examples - WIP !

>calcite-tabs +
  • + calcite-tile +
  • calcite-tile-select Date: Thu, 9 Jul 2020 16:59:53 -0700 Subject: [PATCH 16/54] using calcite-link inside calcite-tile --- src/components/calcite-link/calcite-link.scss | 1 - src/components/calcite-tile/calcite-tile.scss | 7 +++--- src/components/calcite-tile/calcite-tile.tsx | 23 ++++++++++++------- src/demos/calcite-link.html | 2 +- src/demos/calcite-tile.html | 7 +++++- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/components/calcite-link/calcite-link.scss b/src/components/calcite-link/calcite-link.scss index 867754a5de6..21427ce7040 100644 --- a/src/components/calcite-link/calcite-link.scss +++ b/src/components/calcite-link/calcite-link.scss @@ -31,7 +31,6 @@ font-family: inherit; -webkit-appearance: none; cursor: pointer; - text-align: center; transition: $transition; &:hover { text-decoration: none; diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss index 61e52f06d7e..73f352943c5 100644 --- a/src/components/calcite-tile/calcite-tile.scss +++ b/src/components/calcite-tile/calcite-tile.scss @@ -11,19 +11,18 @@ $spacing: $baseline/2; transition: $transition; color: var(--calcite-ui-text-3); box-sizing: border-box; - cursor: pointer; user-select: none; - max-width: inherit; } :host(:not([embed])) { box-shadow: 0 0 0 1px var(--calcite-ui-border-2); max-width: 300px; padding: $spacing; } -:host(:not([embed]):hover) { +:host(:not([embed])[href]:hover) { box-shadow: 0 0 0 2px var(--calcite-ui-blue-1); + cursor: pointer; } -:host(:not([embed]):active) { +:host(:not([embed])[href]:active) { box-shadow: 0 0 0 3px var(--calcite-ui-blue-1); #heading { font-weight: 500; diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx index 270bc73633d..7e4f885f7b0 100644 --- a/src/components/calcite-tile/calcite-tile.tsx +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -17,6 +17,7 @@ export class CalciteTile { @Prop({ reflect: true }) embed: boolean = false; @Prop({ reflect: true }) focused: boolean = false; @Prop({ reflect: true }) hidden: boolean = false; + @Prop({ reflect: true }) href?: string; @Prop({ reflect: true }) icon: string = ""; @Prop({ reflect: true }) theme: "light" | "dark" = "light"; @Prop() heading: string = ""; @@ -27,17 +28,23 @@ export class CalciteTile { // // -------------------------------------------------------------------------- + renderTile() { + return [ +
    + {this.icon && } +
    , +
    {this.heading}
    , +
    {this.description}
    , + ]; + } render() { return ( -
    - {this.icon && ( - - )} -
    -
    {this.heading}
    -
    {this.description}
    - + {this.href ? ( + {this.renderTile()} + ) : ( + this.renderTile() + )}
    ); } diff --git a/src/demos/calcite-link.html b/src/demos/calcite-link.html index d2b0d69fac6..41af868e384 100644 --- a/src/demos/calcite-link.html +++ b/src/demos/calcite-link.html @@ -5,7 +5,7 @@ - Calcite Button + Calcite Link @@ -50,10 +58,10 @@

    Calcite Tile Select

    Left Radio

    -
    +
    + description="Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall.Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall."> Left Radio + description="Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall. Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collab on thinking to further the overall."> @@ -83,7 +91,7 @@

    Left Radio

    Left Radio Large Visual

    -
    +
    From b2ccefd11c156fa24763c700b906452fbe109814 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 22 Jul 2020 16:49:59 -0700 Subject: [PATCH 36/54] fixing bug where large visual gets misaligned due to text turning bold when active --- src/components/calcite-tile/calcite-tile.scss | 5 +++++ src/components/calcite-tile/calcite-tile.tsx | 7 ++++++- src/demos/calcite-tile-select.html | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss index b4ab6a4c1b5..cfe6b747818 100644 --- a/src/components/calcite-tile/calcite-tile.scss +++ b/src/components/calcite-tile/calcite-tile.scss @@ -38,6 +38,11 @@ $spacing: $baseline/2; #heading { @include font-size(0); color: var(--calcite-ui-text-1); + #active-hidden { + opacity: 0; + font-weight: 500; + margin-top: -$baseline-ratio * 1em; + } } &.large-visual { justify-items: center; diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx index 7e99f2dfeb8..eede5f59f90 100644 --- a/src/components/calcite-tile/calcite-tile.tsx +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -42,7 +42,12 @@ export class CalciteTile { >
    )} - {this.heading &&
    {this.heading}
    } + {this.heading && ( +
    + {this.heading} +
    {this.heading}
    +
    + )} {this.description &&
    {this.description}
    }
    ); diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 3a2119e6ec5..b6217eeb125 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -91,7 +91,7 @@

    Left Radio

    Left Radio Large Visual

    -
    +
    From 9a388ebeec1e05eba3878f09b3dbc300de7eb3ca Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 22 Jul 2020 17:10:45 -0700 Subject: [PATCH 37/54] calcite-tile-select-group wrapper component --- .../calcite-tile-select-group.scss | 8 ++++++++ .../calcite-tile-select-group.tsx | 16 +++++++++++++++ src/demos/calcite-tile-select.html | 20 ++++++------------- 3 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 src/components/calcite-tile-select-group/calcite-tile-select-group.scss create mode 100644 src/components/calcite-tile-select-group/calcite-tile-select-group.tsx diff --git a/src/components/calcite-tile-select-group/calcite-tile-select-group.scss b/src/components/calcite-tile-select-group/calcite-tile-select-group.scss new file mode 100644 index 00000000000..3198927f2ab --- /dev/null +++ b/src/components/calcite-tile-select-group/calcite-tile-select-group.scss @@ -0,0 +1,8 @@ +:host { + display: flex; + flex-wrap: wrap; + ::slotted(calcite-tile-select) { + margin-right: 1px; + margin-bottom: 1px; + } +} diff --git a/src/components/calcite-tile-select-group/calcite-tile-select-group.tsx b/src/components/calcite-tile-select-group/calcite-tile-select-group.tsx new file mode 100644 index 00000000000..8da8797ba88 --- /dev/null +++ b/src/components/calcite-tile-select-group/calcite-tile-select-group.tsx @@ -0,0 +1,16 @@ +import { Component, Host, h } from "@stencil/core"; + +@Component({ + tag: "calcite-tile-select-group", + styleUrl: "calcite-tile-select-group.scss", + shadow: true, +}) +export class CalciteTileSelectGroup { + render() { + return ( + + + + ); + } +} diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index b6217eeb125..6eac81b0f22 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -27,14 +27,6 @@ h3 { margin: 0; } - .flex { - display: flex; - flex-wrap: wrap; - } - .flex > calcite-tile-select { - margin-right: 1px; - margin-bottom: 1px; - } @@ -54,11 +46,11 @@

    Calcite Tile Select

    -
    +
    From a39419d0df169b5c886285df0074959d60ae42a6 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 22 Jul 2020 17:16:23 -0700 Subject: [PATCH 38/54] readme updates --- src/components/calcite-checkbox/readme.md | 23 ++++----- src/components/calcite-icon/readme.md | 47 ++++++++++--------- src/components/calcite-link/readme.md | 16 +++---- src/components/calcite-radio-button/readme.md | 8 ++-- .../calcite-tile-select-group/readme.md | 7 +++ src/components/calcite-tile-select/readme.md | 26 +++++++--- src/components/calcite-tile/readme.md | 28 ++++++++--- 7 files changed, 97 insertions(+), 58 deletions(-) create mode 100644 src/components/calcite-tile-select-group/readme.md diff --git a/src/components/calcite-checkbox/readme.md b/src/components/calcite-checkbox/readme.md index 8daf09487c1..19ade12b67a 100644 --- a/src/components/calcite-checkbox/readme.md +++ b/src/components/calcite-checkbox/readme.md @@ -18,40 +18,41 @@ If you don't pass in an input, calcite-checkbox will act as the source of truth: - ## Properties | Property | Attribute | Description | Type | Default | | --------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------- | -| `checked` | `checked` | True if the checkbox is initially checked | `boolean` | `false` | +| `checked` | `checked` | The checked state of the checkbox. | `boolean` | `false` | | `disabled` | `disabled` | True if the checkbox is disabled | `boolean` | `false` | +| `focused` | `focused` | The focused state of the checkbox. | `boolean` | `false` | +| `hovered` | `hovered` | The hovered state of the checkbox. | `boolean` | `false` | | `indeterminate` | `indeterminate` | True if the checkbox is initially indeterminate, which is independent from its checked state https://css-tricks.com/indeterminate-checkboxes/ | `boolean` | `false` | | `name` | `name` | The name of the checkbox input | `string` | `""` | | `scale` | `scale` | specify the scale of the checkbox, defaults to m | `"l" \| "m" \| "s"` | `"m"` | | `theme` | `theme` | Determines what theme to use | `"dark" \| "light"` | `undefined` | -| `value` | `value` | The value of the checkbox input | `string` | `""` | - +| `value` | `value` | The value of the checkbox input | `string` | `undefined` | ## Events -| Event | Description | Type | -| ----------------------- | ------------------------------------------------ | ------------------ | -| `calciteCheckboxChange` | Emitted when the checkbox checked status changes | `CustomEvent` | - +| Event | Description | Type | +| ------------------------------ | ------------------------------------------------ | ------------------ | +| `calciteCheckboxChange` | Emitted when the checkbox checked status changes | `CustomEvent` | +| `calciteCheckboxFocusedChange` | Emitted when the checkbox focused state changes | `CustomEvent` | ## Dependencies ### Used by - - [calcite-card](../calcite-card) +- [calcite-card](../calcite-card) ### Graph + ```mermaid graph TD; calcite-card --> calcite-checkbox style calcite-checkbox fill:#f9f,stroke:#333,stroke-width:4px ``` ----------------------------------------------- +--- -*Built with [StencilJS](https://stenciljs.com/)* +_Built with [StencilJS](https://stenciljs.com/)_ diff --git a/src/components/calcite-icon/readme.md b/src/components/calcite-icon/readme.md index 69b93e3081b..a4eabc69db3 100644 --- a/src/components/calcite-icon/readme.md +++ b/src/components/calcite-icon/readme.md @@ -14,41 +14,43 @@ To use a custom color for the icon fill, you can add a class to the `calcite-ico - ## Properties | Property | Attribute | Description | Type | Default | | ----------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------- | +| `height` | `height` | Custom height (overrides the scale property) | `number` | `undefined` | | `icon` | `icon` | The name of the icon to display. The value of this property must match the icon name from https://esri.github.io/calcite-ui-icons/. | `string` | `null` | | `mirrored` | `mirrored` | When true, the icon will be mirrored when the element direction is 'rtl'. | `boolean` | `false` | | `scale` | `scale` | Icon scale. Can be "s" \| "m" \| "l". | `"l" \| "m" \| "s"` | `"m"` | -| `textLabel` | `text-label` | The icon label. It is recommended to set this value if your icon is semantic. | `string` | `undefined` | +| `textLabel` | `text-label` | The icon label. It is recommended to set this value if your icon is semantic. | `string` | `undefined` | | `theme` | `theme` | Icon theme. Can be "light" or "dark". | `"dark" \| "light"` | `undefined` | - +| `width` | `width` | Custom width (overrides the scale property) | `number` | `undefined` | ## Dependencies ### Used by - - [calcite-accordion-item](../calcite-accordion-item) - - [calcite-alert](../calcite-alert) - - [calcite-button](../calcite-button) - - [calcite-chip](../calcite-chip) - - [calcite-combobox-item](../calcite-combobox-item) - - [calcite-date-month-header](../calcite-date-month-header) - - [calcite-dropdown-item](../calcite-dropdown-item) - - [calcite-input](../calcite-input) - - [calcite-input-message](../calcite-input-message) - - [calcite-link](../calcite-link) - - [calcite-modal](../calcite-modal) - - [calcite-notice](../calcite-notice) - - [calcite-pagination](../calcite-pagination) - - [calcite-popover](../calcite-popover) - - [calcite-radio-group-item](../calcite-radio-group-item) - - [calcite-stepper-item](../calcite-stepper-item) - - [calcite-tree-item](../calcite-tree-item) +- [calcite-accordion-item](../calcite-accordion-item) +- [calcite-alert](../calcite-alert) +- [calcite-button](../calcite-button) +- [calcite-chip](../calcite-chip) +- [calcite-combobox-item](../calcite-combobox-item) +- [calcite-date-month-header](../calcite-date-month-header) +- [calcite-dropdown-item](../calcite-dropdown-item) +- [calcite-input](../calcite-input) +- [calcite-input-message](../calcite-input-message) +- [calcite-link](../calcite-link) +- [calcite-modal](../calcite-modal) +- [calcite-notice](../calcite-notice) +- [calcite-pagination](../calcite-pagination) +- [calcite-popover](../calcite-popover) +- [calcite-radio-group-item](../calcite-radio-group-item) +- [calcite-stepper-item](../calcite-stepper-item) +- [calcite-tile](../calcite-tile) +- [calcite-tree-item](../calcite-tree-item) ### Graph + ```mermaid graph TD; calcite-accordion-item --> calcite-icon @@ -67,10 +69,11 @@ graph TD; calcite-popover --> calcite-icon calcite-radio-group-item --> calcite-icon calcite-stepper-item --> calcite-icon + calcite-tile --> calcite-icon calcite-tree-item --> calcite-icon style calcite-icon fill:#f9f,stroke:#333,stroke-width:4px ``` ----------------------------------------------- +--- -*Built with [StencilJS](https://stenciljs.com/)* +_Built with [StencilJS](https://stenciljs.com/)_ diff --git a/src/components/calcite-link/readme.md b/src/components/calcite-link/readme.md index 51a2e30825d..9d436d738d0 100644 --- a/src/components/calcite-link/readme.md +++ b/src/components/calcite-link/readme.md @@ -6,7 +6,6 @@ You can programmatically focus a `calcite-link` with the `setFocus()` method: - ## Properties | Property | Attribute | Description | Type | Default | @@ -17,34 +16,35 @@ You can programmatically focus a `calcite-link` with the `setFocus()` method: | `icon` | `icon` | optionally pass an icon to display - accepts Calcite UI icon names | `string` | `undefined` | | `iconPosition` | `icon-position` | optionally used with icon, select where to position the icon | `"end" \| "start"` | `"start"` | | `theme` | `theme` | Select theme (light or dark) | `"dark" \| "light"` | `undefined` | - +| `userSelect` | `user-select` | Allows the text to be selectable | `boolean` | `true` | ## Methods ### `setFocus() => Promise` - - #### Returns Type: `Promise` +## Dependencies +### Used by - -## Dependencies +- [calcite-tile](../calcite-tile) ### Depends on - [calcite-icon](../calcite-icon) ### Graph + ```mermaid graph TD; calcite-link --> calcite-icon + calcite-tile --> calcite-link style calcite-link fill:#f9f,stroke:#333,stroke-width:4px ``` ----------------------------------------------- +--- -*Built with [StencilJS](https://stenciljs.com/)* +_Built with [StencilJS](https://stenciljs.com/)_ diff --git a/src/components/calcite-radio-button/readme.md b/src/components/calcite-radio-button/readme.md index d447f4ab7e9..196b1dacc99 100644 --- a/src/components/calcite-radio-button/readme.md +++ b/src/components/calcite-radio-button/readme.md @@ -11,6 +11,7 @@ | `focused` | `focused` | The focused state of the radio button. | `boolean` | `false` | | `guid` | `guid` | The id attribute of the radio button. When omitted, a globally unique identifier is used. | `string` | `this.el.id \|\|`calcite-radio-button-\${guid()}`` | | `hidden` | `hidden` | The radio button's hidden status. When a radio button is hidden it is not focusable or checkable. | `boolean` | `false` | +| `hovered` | `hovered` | The hovered state of the radio button. | `boolean` | `false` | | `name` _(required)_ | `name` | The name of the radio button. name is passed as a property automatically from calcite-radio-button-group. | `string` | `undefined` | | `required` | `required` | Requires that a value is selected for the radio button group before the parent form will submit. | `boolean` | `false` | | `scale` | `scale` | The scale (size) of the radio button. scale is passed as a property automatically from calcite-radio-button-group. | `"l" \| "m" \| "s"` | `"m"` | @@ -19,9 +20,10 @@ ## Events -| Event | Description | Type | -| -------------------------- | ----------- | ------------------ | -| `calciteRadioButtonChange` | | `CustomEvent` | +| Event | Description | Type | +| --------------------------------- | ----------- | ------------------ | +| `calciteRadioButtonChange` | | `CustomEvent` | +| `calciteRadioButtonFocusedChange` | | `CustomEvent` | ## Dependencies diff --git a/src/components/calcite-tile-select-group/readme.md b/src/components/calcite-tile-select-group/readme.md new file mode 100644 index 00000000000..0c6f7dc07f3 --- /dev/null +++ b/src/components/calcite-tile-select-group/readme.md @@ -0,0 +1,7 @@ +# calcite-tile-select-group + + + +--- + +_Built with [StencilJS](https://stenciljs.com/)_ diff --git a/src/components/calcite-tile-select/readme.md b/src/components/calcite-tile-select/readme.md index 20096c15783..8b668055cab 100644 --- a/src/components/calcite-tile-select/readme.md +++ b/src/components/calcite-tile-select/readme.md @@ -4,23 +4,35 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| -------- | --------- | ----------- | -------- | ----------- | -| `name` | `name` | | `string` | `undefined` | -| `value` | `value` | | `string` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ------------- | ------------- | ----------- | ----------------------------- | ----------- | +| `checked` | `checked` | | `boolean` | `false` | +| `description` | `description` | | `string` | `undefined` | +| `disabled` | `disabled` | | `boolean` | `false` | +| `focused` | `focused` | | `boolean` | `false` | +| `heading` | `heading` | | `string` | `undefined` | +| `hidden` | `hidden` | | `boolean` | `false` | +| `icon` | `icon` | | `string` | `undefined` | +| `name` | `name` | | `string` | `""` | +| `showInput` | `show-input` | | `"left" \| "none" \| "right"` | `"left"` | +| `theme` | `theme` | | `"dark" \| "light"` | `"light"` | +| `type` | `type` | | `"checkbox" \| "radio"` | `"radio"` | +| `value` | `value` | | `string` | `undefined` | ## Dependencies ### Depends on -- [calcite-radio-button](../calcite-radio-button) +- [calcite-tile](../calcite-tile) ### Graph ```mermaid graph TD; - calcite-tile-select --> calcite-radio-button - calcite-radio-button --> calcite-label + calcite-tile-select --> calcite-tile + calcite-tile --> calcite-icon + calcite-tile --> calcite-link + calcite-link --> calcite-icon style calcite-tile-select fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/calcite-tile/readme.md b/src/components/calcite-tile/readme.md index a97ef837852..b055d94155c 100644 --- a/src/components/calcite-tile/readme.md +++ b/src/components/calcite-tile/readme.md @@ -4,23 +4,37 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| -------- | --------- | ----------- | -------- | ----------- | -| `name` | `name` | | `string` | `undefined` | -| `value` | `value` | | `string` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ------------- | ------------- | ----------- | ------------------- | ----------- | +| `active` | `active` | | `boolean` | `undefined` | +| `description` | `description` | | `string` | `undefined` | +| `embed` | `embed` | | `boolean` | `false` | +| `focused` | `focused` | | `boolean` | `false` | +| `heading` | `heading` | | `string` | `undefined` | +| `hidden` | `hidden` | | `boolean` | `false` | +| `href` | `href` | | `string` | `undefined` | +| `icon` | `icon` | | `string` | `undefined` | +| `theme` | `theme` | | `"dark" \| "light"` | `"light"` | ## Dependencies +### Used by + +- [calcite-tile-select](../calcite-tile-select) + ### Depends on -- [calcite-radio-button](../calcite-radio-button) +- [calcite-icon](../calcite-icon) +- [calcite-link](../calcite-link) ### Graph ```mermaid graph TD; - calcite-tile --> calcite-radio-button - calcite-radio-button --> calcite-label + calcite-tile --> calcite-icon + calcite-tile --> calcite-link + calcite-link --> calcite-icon + calcite-tile-select --> calcite-tile style calcite-tile fill:#f9f,stroke:#333,stroke-width:4px ``` From 8265fdfa0e2de879f2d7c44eeb838ce11fcfefb1 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Fri, 24 Jul 2020 15:25:51 -0700 Subject: [PATCH 39/54] replacing id selectors with class selectors --- src/components/calcite-tile/calcite-tile.scss | 14 +++++++------- src/components/calcite-tile/calcite-tile.tsx | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss index cfe6b747818..c72abaa369d 100644 --- a/src/components/calcite-tile/calcite-tile.scss +++ b/src/components/calcite-tile/calcite-tile.scss @@ -24,21 +24,21 @@ $spacing: $baseline/2; } :host([active]), :host(:not([embed])[href]:active) { - #heading { + .heading { font-weight: 500; } } :host([icon][heading]:not([description]):not([embed])) { padding: unset; } -#tile { +.tile { display: grid; grid-template-columns: 1fr; grid-gap: $spacing; - #heading { + .heading { @include font-size(0); color: var(--calcite-ui-text-1); - #active-hidden { + .active-hidden { opacity: 0; font-weight: 500; margin-top: -$baseline-ratio * 1em; @@ -47,14 +47,14 @@ $spacing: $baseline/2; &.large-visual { justify-items: center; min-height: 200px; - #icon { + .icon { align-self: self-end; } - #heading { + .heading { align-self: center; } } - #description { + .description { @include font-size(-1); color: var(--calcite-ui-text-2); } diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx index eede5f59f90..2201bec2205 100644 --- a/src/components/calcite-tile/calcite-tile.tsx +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -3,7 +3,7 @@ import { Component, Host, h, Prop } from "@stencil/core"; @Component({ tag: "calcite-tile", styleUrl: "calcite-tile.scss", - shadow: true, + shadow: true }) export class CalciteTile { //-------------------------------------------------------------------------- @@ -31,9 +31,9 @@ export class CalciteTile { renderTile() { const isLargeVisual = this.heading && this.icon && !this.description; return ( -
    +
    {this.icon && ( -
    +
    )} {this.heading && ( -
    +
    {this.heading} -
    {this.heading}
    +
    {this.heading}
    )} - {this.description &&
    {this.description}
    } + {this.description &&
    {this.description}
    }
    ); } From daf808ef9015e629baa340ef03e8f8ab3f31e2ae Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Fri, 24 Jul 2020 16:17:24 -0700 Subject: [PATCH 40/54] deprecating calcite-icon width and height properties in favor of allowing inline styles to set the width and height custom --- src/components/calcite-icon/calcite-icon.scss | 12 +++++ src/components/calcite-icon/calcite-icon.tsx | 54 ++++--------------- src/components/calcite-tile/calcite-tile.tsx | 13 ++--- 3 files changed, 30 insertions(+), 49 deletions(-) diff --git a/src/components/calcite-icon/calcite-icon.scss b/src/components/calcite-icon/calcite-icon.scss index 6594826c8d5..03f8203b01d 100644 --- a/src/components/calcite-icon/calcite-icon.scss +++ b/src/components/calcite-icon/calcite-icon.scss @@ -1,6 +1,18 @@ :host { display: inline-flex; } +:host([scale="s"]) { + height: 16px; + width: 16px; +} +:host([scale="m"]) { + height: 24px; + width: 24px; +} +:host([scale="l"]) { + height: 32px; + width: 32px; +} .mirrored { transform: scaleX(-1); diff --git a/src/components/calcite-icon/calcite-icon.tsx b/src/components/calcite-icon/calcite-icon.tsx index a16cd1ebdf8..a1dd277e6d1 100644 --- a/src/components/calcite-icon/calcite-icon.tsx +++ b/src/components/calcite-icon/calcite-icon.tsx @@ -1,13 +1,4 @@ -import { - Build, - Component, - Element, - h, - Host, - Prop, - State, - Watch, -} from "@stencil/core"; +import { Build, Component, Element, h, Host, Prop, State, Watch } from "@stencil/core"; import { CSS } from "./resources"; import { getElementDir } from "../../utils/dom"; import { fetchIcon, scaleToPx } from "./utils"; @@ -19,7 +10,7 @@ import { CalciteIconPath, CalciteMultiPathEntry } from "@esri/calcite-ui-icons"; assetsDirs: ["assets"], tag: "calcite-icon", styleUrl: "calcite-icon.scss", - shadow: true, + shadow: true }) export class CalciteIcon { //-------------------------------------------------------------------------- @@ -37,19 +28,11 @@ export class CalciteIcon { // //-------------------------------------------------------------------------- - /** - * Custom height (overrides the scale property) - */ - @Prop({ - reflect: true, - }) - height: number | undefined = undefined; - /** * The name of the icon to display. The value of this property must match the icon name from https://esri.github.io/calcite-ui-icons/. */ @Prop({ - reflect: true, + reflect: true }) icon: string = null; @@ -57,7 +40,7 @@ export class CalciteIcon { * When true, the icon will be mirrored when the element direction is 'rtl'. */ @Prop({ - reflect: true, + reflect: true }) mirrored: boolean = false; @@ -65,7 +48,7 @@ export class CalciteIcon { * Icon scale. Can be "s" | "m" | "l". */ @Prop({ - reflect: true, + reflect: true }) scale: IconScale = "m"; @@ -81,18 +64,10 @@ export class CalciteIcon { * Icon theme. Can be "light" or "dark". */ @Prop({ - reflect: true, + reflect: true }) theme: Theme; - /** - * Custom width (overrides the scale property) - */ - @Prop({ - reflect: true, - }) - width: number | undefined = undefined; - //-------------------------------------------------------------------------- // // Lifecycle @@ -121,27 +96,20 @@ export class CalciteIcon { const { el, mirrored, pathData, scale, textLabel } = this; const dir = getElementDir(el); const size = scaleToPx[scale]; - const height = this.height ? this.height : size; - const width = this.width ? this.width : size; const semantic = !!textLabel; const paths = [].concat(pathData || ""); return ( - + {paths.map((path: string | CalciteMultiPathEntry) => typeof path === "string" ? ( diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx index 2201bec2205..7be647be45f 100644 --- a/src/components/calcite-tile/calcite-tile.tsx +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -30,16 +30,17 @@ export class CalciteTile { renderTile() { const isLargeVisual = this.heading && this.icon && !this.description; + const iconStyle = isLargeVisual + ? { + height: "64px", + width: "64px" + } + : undefined; return (
    {this.icon && (
    - +
    )} {this.heading && ( From 3277e08f80926537ade38acfdf8dfc5738a65a62 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Fri, 24 Jul 2020 16:54:31 -0700 Subject: [PATCH 41/54] fixing icon scale tests --- .../calcite-icon/calcite-icon.e2e.ts | 34 +++++++------------ 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/src/components/calcite-icon/calcite-icon.e2e.ts b/src/components/calcite-icon/calcite-icon.e2e.ts index ef4db503dfc..f9ac9f57cd4 100644 --- a/src/components/calcite-icon/calcite-icon.e2e.ts +++ b/src/components/calcite-icon/calcite-icon.e2e.ts @@ -1,10 +1,5 @@ import { newE2EPage } from "@stencil/core/testing"; -import { - accessible, - defaults, - reflects, - renders -} from "../../tests/commonTests"; +import { accessible, defaults, reflects, renders } from "../../tests/commonTests"; import { CSS } from "./resources"; import { scaleToPx } from "./utils"; @@ -21,10 +16,7 @@ describe("calcite-icon", () => { { propertyName: "scale", value: "m" } ])); - it("is accessible", async () => - accessible( - `` - )); + it("is accessible", async () => accessible(``)); it("mirrors icon when enabled and in RTL", async () => { const page = await newE2EPage(); @@ -69,9 +61,7 @@ describe("calcite-icon", () => { it("loads icon when it's close to viewport", async () => { const page = await newE2EPage(); - await page.setContent( - `` - ); + await page.setContent(``); await page.waitForChanges(); const icon = await page.find(`calcite-icon`); @@ -88,20 +78,20 @@ describe("calcite-icon", () => { describe("scales", () => { const scales = ["s", "m", "l"]; - scales.forEach(scale => + scales.forEach((scale) => it(`${scale} scale`, async () => { const page = await newE2EPage(); - await page.setContent( - `` - ); + await page.setContent(``); + const calciteIcon = await page.find(`calcite-icon`); + const calciteIconComputedStyle = await calciteIcon.getComputedStyle(); const svg = await page.find(`calcite-icon >>> svg`); const sizeInPx = scaleToPx[scale]; - expect(await svg.getAttribute("width")).toBe(`${sizeInPx}`); - expect(await svg.getAttribute("height")).toBe(`${sizeInPx}`); - expect(await svg.getAttribute("viewBox")).toBe( - `0 0 ${sizeInPx} ${sizeInPx}` - ); + expect(calciteIconComputedStyle.height).toBe(`${sizeInPx}px`); + expect(calciteIconComputedStyle.width).toBe(`${sizeInPx}px`); + expect(await svg.getAttribute("width")).toBe("100%"); + expect(await svg.getAttribute("height")).toBe("100%"); + expect(await svg.getAttribute("viewBox")).toBe(`0 0 ${sizeInPx} ${sizeInPx}`); }) ); }); From 408889c39eba3d0deeba4b784150a33a80915ea7 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Mon, 27 Jul 2020 11:48:56 -0700 Subject: [PATCH 42/54] only showing focused tiles above other tiles when they are also checked --- .../calcite-tile-select.scss | 23 ++++++++----------- src/demos/calcite-tile-select.html | 4 ++-- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 65314aaa352..2643777a795 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -21,14 +21,13 @@ $spacing: $baseline/2; box-shadow: 0 0 0 1px var(--calcite-ui-blue-1); z-index: 1; } -:host(:focus), -:host([focused]) { +:host([checked]:focus), +:host([checked][focused]) { z-index: 2; } :host([show-input="none"]) { - box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), - 0 0 0 3px var(--calcite-ui-border-2); + box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 3px var(--calcite-ui-border-2); margin-right: 1px; margin-bottom: 5px; ::slotted(calcite-checkbox), @@ -38,23 +37,19 @@ $spacing: $baseline/2; } } :host([show-input="none"]:hover) { - box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), - 0 0 0 4px var(--calcite-ui-blue-1); + box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); z-index: 2; } :host([show-input="none"][checked]) { - box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), - 0 0 0 4px var(--calcite-ui-blue-1); + box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } :host([show-input="none"][focused]) { - box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), - 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), - 0 0 0 9px var(--calcite-ui-blue-1); + box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), + 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); } :host([show-input="none"][checked][focused]) { - box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), - 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), - 0 0 0 9px var(--calcite-ui-blue-1); + box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), + 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); } :host([heading]:not([icon]):not([description])) { diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index 6eac81b0f22..d5e09a9f376 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -46,7 +46,7 @@

    Calcite Tile Select

    - +
    From 7c9f25627fdce51c0165dfd522a99893064632a0 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Mon, 27 Jul 2020 13:14:27 -0700 Subject: [PATCH 43/54] clearing npm cache to fix npm i failing issue --- package-lock.json | 1310 ++++++++++++++++++++++++--------------------- 1 file changed, 708 insertions(+), 602 deletions(-) diff --git a/package-lock.json b/package-lock.json index 64369b94164..550cbd2b935 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,9 +18,9 @@ } }, "@babel/compat-data": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz", - "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz", + "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==", "dev": true, "requires": { "browserslist": "^4.12.0", @@ -89,15 +89,21 @@ }, "dependencies": { "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -112,15 +118,21 @@ }, "dependencies": { "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -146,13 +158,13 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz", - "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", "dev": true, "requires": { "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", "@babel/helper-optimise-call-expression": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4", "@babel/helper-replace-supers": "^7.10.4", @@ -215,9 +227,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -232,15 +244,21 @@ } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -256,14 +274,14 @@ } }, "@babel/helper-define-map": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz", - "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", "dev": true, "requires": { "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.4", - "lodash": "^4.17.13" + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" }, "dependencies": { "@babel/code-frame": { @@ -307,9 +325,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -324,15 +342,21 @@ } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -356,14 +380,13 @@ } }, "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.10.4", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, @@ -408,9 +431,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -425,32 +448,38 @@ } }, "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", + "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -484,37 +513,49 @@ }, "dependencies": { "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz", - "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz", + "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.10.5" }, "dependencies": { "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -528,22 +569,28 @@ }, "dependencies": { "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-module-transforms": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz", - "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz", + "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", @@ -551,8 +598,8 @@ "@babel/helper-simple-access": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4", - "lodash": "^4.17.13" + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" }, "dependencies": { "@babel/code-frame": { @@ -585,9 +632,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -602,15 +649,21 @@ } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -624,15 +677,21 @@ }, "dependencies": { "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -643,12 +702,20 @@ "dev": true }, "@babel/helper-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz", - "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", "dev": true, "requires": { - "lodash": "^4.17.13" + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } } }, "@babel/helper-remap-async-to-generator": { @@ -674,14 +741,13 @@ } }, "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.10.4", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, @@ -726,9 +792,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -743,32 +809,38 @@ } }, "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", + "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -794,14 +866,13 @@ } }, "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.10.4", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, @@ -846,9 +917,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -863,32 +934,38 @@ } }, "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", + "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -923,9 +1000,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -940,15 +1017,21 @@ } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -989,14 +1072,13 @@ } }, "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.10.4", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, @@ -1041,9 +1123,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -1058,32 +1140,38 @@ } }, "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", + "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -1116,9 +1204,9 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz", - "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -1377,12 +1465,20 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "@babel/plugin-syntax-nullish-coalescing-operator": { @@ -1526,13 +1622,12 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz", - "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { @@ -1615,9 +1710,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -1632,15 +1727,21 @@ } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -1823,9 +1924,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -1840,15 +1941,21 @@ } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -1887,12 +1994,12 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz", - "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", "@babel/helper-plugin-utils": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1926,13 +2033,13 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz", - "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", "@babel/helper-plugin-utils": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -2008,9 +2115,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz", - "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", @@ -2033,15 +2140,21 @@ "dev": true }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -2158,9 +2271,9 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz", - "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -2193,12 +2306,12 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.4.tgz", - "integrity": "sha512-3WpXIKDJl/MHoAN0fNkSr7iHdUMHZoppXjf2HJ9/ed5Xht5wNIsXllJXdityKOxeA3Z8heYRb1D3p2H5rfCdPw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.5.tgz", + "integrity": "sha512-YCyYsFrrRMZ3qR7wRwtSSJovPG5vGyG4ZdcSAivGwTfoasMp3VOB/AKhohu3dFtmB4cCDcsndCSxGtrdliCsZQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-create-class-features-plugin": "^7.10.5", "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-typescript": "^7.10.4" }, @@ -2325,16 +2438,22 @@ "dev": true }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -2393,16 +2512,24 @@ } }, "@babel/register": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.4.tgz", - "integrity": "sha512-whHmgGiWNVyTVnYTSawtDWhaeYsc+noeU8Rmi+MPnbGhDYmr5QpEDMrQcIA07D2RUv0BlThPcN89XcHCqq/O4g==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz", + "integrity": "sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "make-dir": "^2.1.0", "pirates": "^4.0.0", "source-map-support": "^0.5.16" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } } }, "@babel/runtime": { @@ -3240,65 +3367,73 @@ } }, "@mdx-js/mdx": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.6.tgz", - "integrity": "sha512-Q1j/RtjNbRZRC/ciaOqQLplsJ9lb0jJhDSvkusmzCsCX+NZH7YTUvccWf7l6zKW1CAiofJfqZdZtXkeJUDZiMw==", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.14.tgz", + "integrity": "sha512-VLGd52mFL091mkFTNZkGPMJxLvb382DqYDZfiZcqYBnbZPpFIbW3GnjXiHjLxT2v9zEKWD11+wcZLKNaWt8WPQ==", "dev": true, "requires": { - "@babel/core": "7.9.6", - "@babel/plugin-syntax-jsx": "7.8.3", + "@babel/core": "7.10.5", + "@babel/plugin-syntax-jsx": "7.10.4", "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "^1.6.6", - "babel-plugin-apply-mdx-type-prop": "^1.6.6", - "babel-plugin-extract-import-names": "^1.6.6", + "@mdx-js/util": "1.6.14", + "babel-plugin-apply-mdx-type-prop": "1.6.14", + "babel-plugin-extract-import-names": "1.6.14", "camelcase-css": "2.0.1", "detab": "2.0.3", - "hast-util-raw": "5.0.2", + "hast-util-raw": "6.0.0", "lodash.uniq": "4.5.0", "mdast-util-to-hast": "9.1.0", "remark-footnotes": "1.0.0", - "remark-mdx": "^1.6.6", - "remark-parse": "8.0.2", + "remark-mdx": "1.6.14", + "remark-parse": "8.0.3", "remark-squeeze-paragraphs": "4.0.0", "style-to-object": "0.3.0", "unified": "9.0.0", "unist-builder": "2.0.3", - "unist-util-visit": "2.0.2" + "unist-util-visit": "2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz", + "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.5", + "@babel/types": "^7.10.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" } }, "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.10.4", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, @@ -3354,9 +3489,9 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { @@ -3368,55 +3503,33 @@ "@babel/code-frame": "^7.10.4", "@babel/parser": "^7.10.4", "@babel/types": "^7.10.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - } } }, "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", + "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - } + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -3429,6 +3542,12 @@ "minimist": "^1.2.5" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3438,9 +3557,9 @@ } }, "@mdx-js/util": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.6.tgz", - "integrity": "sha512-PKTHVgMHnK5p+kcMWWNnZuoR7O19VmHiOujmVcyN50hya7qIdDb5vvsYC+dwLxApEXiABhLozq0dlIwFeS3yjg==", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.14.tgz", + "integrity": "sha512-JyhjH3ffP4KQuqnUSBSSF28mToGGSc2jFI0XIXSEqiN+FaPlgzOSd3U350gXi8FYQxXzEygHCOtzOIfTjFf+4w==", "dev": true }, "@mrmlnc/readdir-enhanced": { @@ -3537,12 +3656,12 @@ "dev": true }, "@stencil/core": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-1.16.3.tgz", - "integrity": "sha512-58AwSCktkDKXc45U0Q+AXvWtmEAZs37DOt9SC2LEypYL6YnVHGiL2lekbvA5R3JYzPFVasg+vmDHVouqSr/zMA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-1.17.1.tgz", + "integrity": "sha512-1OsRAMP9wo79mmZc4kz2DGnN/hqXLjdrTNGzqXd8K8K/6Mdua3Te+Zb3gmKMGP7ZaIzqIHbWDvCD2XZ4Sb0dFw==", "dev": true, "requires": { - "typescript": "3.9.6" + "typescript": "3.9.7" } }, "@stencil/sass": { @@ -4763,10 +4882,19 @@ "@types/node": "*" } }, + "@types/hast": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz", + "integrity": "sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, "@types/history": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.6.tgz", - "integrity": "sha512-GRTZLeLJ8ia00ZH8mxMO8t0aC9M1N9bN461Z2eaRurJo6Fpa+utgCwLzI4jQHcrdzuzp5WPN9jRwpsCQ1VhJ5w==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.7.tgz", + "integrity": "sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg==", "dev": true }, "@types/html-minifier-terser": { @@ -4932,13 +5060,13 @@ } }, "@types/jest-axe": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/jest-axe/-/jest-axe-3.2.2.tgz", - "integrity": "sha512-xVscGbS3nDay2GRG2TwF6xx92BbwU46gGanoelAfrweTng8OKU9pmX8AByuz5i8lWQ+y6B9PvkbtAJNDjsdSJQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@types/jest-axe/-/jest-axe-3.5.0.tgz", + "integrity": "sha512-gs/EkhXAvw/KvoU7cvEsSTVAcynGMCeeuy1jtNJgXNupacV50CVoYHl6K3nbZLdg/mZbhDS3rxH4b9aEgOkafg==", "dev": true, "requires": { "@types/jest": "*", - "axe-core": "^3.0.3" + "axe-core": "^3.5.5" } }, "@types/json-schema": { @@ -4998,6 +5126,12 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", + "dev": true + }, "@types/prop-types": { "version": "15.7.3", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", @@ -5149,9 +5283,9 @@ "dev": true }, "@types/webpack-sources": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.0.tgz", - "integrity": "sha512-c88dKrpSle9BtTqR6ifdaxu1Lvjsl3C5OsfvuUbUwdXymshv1TkufUAXBajCCUM/f/TmnkZC/Esb03MinzSiXQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.1.tgz", + "integrity": "sha512-B/RJcbpMp1/od7KADJlW/jeXTEau6NYmhWo+hB29cEfRriYK9SRlH8sY4hI9Au7nrP95Z5MumGvIEiEBHMxoWA==", "dev": true, "requires": { "@types/node": "*", @@ -6207,13 +6341,21 @@ "dev": true }, "babel-plugin-apply-mdx-type-prop": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.6.tgz", - "integrity": "sha512-rUzVvkQa8/9M63OZT6qQQ1bS8P0ozhXp9e5uJ3RwRJF5Me7s4nZK5SYhyNHYc0BkAflWnCOGMP3oPQUfuyB8tg==", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.14.tgz", + "integrity": "sha512-qOnIfczK7yxDpBUeT21WIVmGPpSyzPv61FS9/Ql5J/PIEVw0c6aS2a53/tL5rQWKlJwNdb2RkhG+fpT5WGvYaQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@mdx-js/util": "^1.6.6" + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.14" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "babel-plugin-dynamic-import-node": { @@ -6244,12 +6386,20 @@ } }, "babel-plugin-extract-import-names": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.6.tgz", - "integrity": "sha512-UtMuiQJnhVPAGE2+pDe7Nc9NVEmDdqGTN74BtRALgH+7oag88RpxFLOSiA+u5mFkFg741wW9Ut5KiyJpksEj/g==", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.14.tgz", + "integrity": "sha512-pCyalU0WzbFPEb3E/ALerXzL/OMGH9M1mbWPR4QuSRo6BAfLL/j0QcLRRYojYQpCCS7pys9JpN/HI2+GcsbEhg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, "babel-plugin-istanbul": { @@ -7229,9 +7379,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001099", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz", - "integrity": "sha512-sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA==", + "version": "1.0.30001107", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001107.tgz", + "integrity": "sha512-86rCH+G8onCmdN4VZzJet5uPELII59cUzDphko3thQFgAQG1RNa+sVLDoALIhRYmflo5iSIzWY3vu1XTWtNMQQ==", "dev": true }, "capture-exit": { @@ -7313,9 +7463,9 @@ "dev": true }, "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", "dev": true, "optional": true, "requires": { @@ -8728,18 +8878,18 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } @@ -8945,9 +9095,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.497", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.497.tgz", - "integrity": "sha512-sPdW5bUDZwiFtoonuZCUwRGzsZmKzcLM0bMVhp6SMCfUG+B3faENLx3cE+o+K0Jl+MPuNA9s9cScyFjOlixZpQ==", + "version": "1.3.509", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.509.tgz", + "integrity": "sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug==", "dev": true }, "element-resize-detector": { @@ -9041,9 +9191,9 @@ } }, "enhanced-resolve": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", - "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -9087,9 +9237,9 @@ "dev": true }, "envinfo": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.1.tgz", - "integrity": "sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.2.tgz", + "integrity": "sha512-k3Eh5bKuQnZjm49/L7H4cHzs2FlL5QjbTB3JrPxoTI8aJG7hVMe4uKyJxSYH4ahseby2waUwk5OaKX/nAsaYgg==", "dev": true }, "err-code": { @@ -9346,9 +9496,9 @@ "dev": true }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", "dev": true }, "eventsource": { @@ -10046,9 +10196,9 @@ } }, "flow-parser": { - "version": "0.129.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.129.0.tgz", - "integrity": "sha512-kzxyoEl8vG0JF0/h/u0UjALXmsGvwU2NBfKczCSNO/It2fKb8hz1gMt05OuZAlMLYXcvgjntWJadIABeKGPK4g==", + "version": "0.130.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.130.0.tgz", + "integrity": "sha512-h9NATB7QsKhj2ucgEH2XzB7p+5ubk8IZX5u/qHkN+oyQoECi1diq6mYfIuYBOyL35f3AhJf/YDkBYQBTqqYK+w==", "dev": true }, "flush-write-stream": { @@ -10417,28 +10567,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "", + "resolved": false, "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", - "resolved": "", + "resolved": false, "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "resolved": "", + "resolved": false, "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "optional": true, @@ -10449,14 +10599,14 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "", + "resolved": false, "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, @@ -10467,42 +10617,42 @@ }, "chownr": { "version": "1.1.3", - "resolved": "", + "resolved": false, "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "", + "resolved": false, "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "", + "resolved": false, "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "3.2.6", - "resolved": "", + "resolved": false, "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "optional": true, @@ -10512,28 +10662,28 @@ }, "deep-extend": { "version": "0.6.0", - "resolved": "", + "resolved": false, "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "", + "resolved": false, "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.7", - "resolved": "", + "resolved": false, "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "optional": true, @@ -10543,14 +10693,14 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "", + "resolved": false, "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, @@ -10567,7 +10717,7 @@ }, "glob": { "version": "7.1.6", - "resolved": "", + "resolved": false, "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "optional": true, @@ -10582,14 +10732,14 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", - "resolved": "", + "resolved": false, "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "optional": true, @@ -10599,7 +10749,7 @@ }, "ignore-walk": { "version": "3.0.3", - "resolved": "", + "resolved": false, "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", "dev": true, "optional": true, @@ -10609,7 +10759,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "", + "resolved": false, "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, @@ -10620,21 +10770,21 @@ }, "inherits": { "version": "2.0.4", - "resolved": "", + "resolved": false, "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "optional": true }, "ini": { "version": "1.3.5", - "resolved": "", + "resolved": false, "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, @@ -10644,14 +10794,14 @@ }, "isarray": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "", + "resolved": false, "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, @@ -10661,7 +10811,7 @@ }, "minipass": { "version": "2.9.0", - "resolved": "", + "resolved": false, "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "optional": true, @@ -10672,7 +10822,7 @@ }, "minizlib": { "version": "1.3.3", - "resolved": "", + "resolved": false, "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "optional": true, @@ -10692,14 +10842,14 @@ }, "ms": { "version": "2.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true, "optional": true }, "needle": { "version": "2.4.0", - "resolved": "", + "resolved": false, "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", "dev": true, "optional": true, @@ -10711,7 +10861,7 @@ }, "node-pre-gyp": { "version": "0.14.0", - "resolved": "", + "resolved": false, "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", "dev": true, "optional": true, @@ -10730,7 +10880,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, @@ -10741,7 +10891,7 @@ }, "npm-bundled": { "version": "1.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", "dev": true, "optional": true, @@ -10751,14 +10901,14 @@ }, "npm-normalize-package-bin": { "version": "1.0.1", - "resolved": "", + "resolved": false, "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.7", - "resolved": "", + "resolved": false, "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", "dev": true, "optional": true, @@ -10769,7 +10919,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, @@ -10782,21 +10932,21 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "", + "resolved": false, "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "", + "resolved": false, "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, @@ -10806,21 +10956,21 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "", + "resolved": false, "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, @@ -10831,21 +10981,21 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.1", - "resolved": "", + "resolved": false, "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true, "optional": true }, "rc": { "version": "1.2.8", - "resolved": "", + "resolved": false, "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "optional": true, @@ -10867,7 +11017,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "", + "resolved": false, "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, @@ -10883,7 +11033,7 @@ }, "rimraf": { "version": "2.7.1", - "resolved": "", + "resolved": false, "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "optional": true, @@ -10893,49 +11043,49 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "", + "resolved": false, "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.7.1", - "resolved": "", + "resolved": false, "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, @@ -10947,7 +11097,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, @@ -10957,7 +11107,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, @@ -10967,14 +11117,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.13", - "resolved": "", + "resolved": false, "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", "dev": true, "optional": true, @@ -10990,14 +11140,14 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", - "resolved": "", + "resolved": false, "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "optional": true, @@ -11007,14 +11157,14 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "yallist": { "version": "3.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "optional": true @@ -11854,41 +12004,32 @@ } }, "hast-to-hyperscript": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz", - "integrity": "sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.0.tgz", + "integrity": "sha512-NJvMYU3GlMLs7hN3CRbsNlMzusVNkYBogVWDGybsuuVQ336gFLiD+q9qtFZT2meSHzln3pNISZWTASWothMSMg==", "dev": true, "requires": { + "@types/unist": "^2.0.3", "comma-separated-tokens": "^1.0.0", "property-information": "^5.3.0", "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.2.1", - "unist-util-is": "^3.0.0", - "web-namespaces": "^1.1.2" - }, - "dependencies": { - "style-to-object": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz", - "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==", - "dev": true, - "requires": { - "inline-style-parser": "0.1.1" - } - } + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" } }, "hast-util-from-parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", - "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz", + "integrity": "sha512-3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q==", "dev": true, "requires": { - "ccount": "^1.0.3", + "@types/parse5": "^5.0.0", + "ccount": "^1.0.0", "hastscript": "^5.0.0", "property-information": "^5.0.0", - "web-namespaces": "^1.1.2", - "xtend": "^4.0.1" + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0" } }, "hast-util-parse-selector": { @@ -11898,28 +12039,30 @@ "dev": true }, "hast-util-raw": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-5.0.2.tgz", - "integrity": "sha512-3ReYQcIHmzSgMq8UrDZHFL0oGlbuVGdLKs8s/Fe8BfHFAyZDrdv1fy/AGn+Fim8ZuvAHcJ61NQhVMtyfHviT/g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.0.tgz", + "integrity": "sha512-IQo6tv3bMMKxk53DljswliucCJOQxaZFCuKEJ7X80249dmJ1nA9LtOnnylsLlqTG98NjQ+iGcoLAYo9q5FRhRg==", "dev": true, "requires": { - "hast-util-from-parse5": "^5.0.0", - "hast-util-to-parse5": "^5.0.0", + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", "html-void-elements": "^1.0.0", - "parse5": "^5.0.0", + "parse5": "^6.0.0", "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", "web-namespaces": "^1.0.0", "xtend": "^4.0.0", "zwitch": "^1.0.0" } }, "hast-util-to-parse5": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-5.1.2.tgz", - "integrity": "sha512-ZgYLJu9lYknMfsBY0rBV4TJn2xiwF1fXFFjbP6EE7S0s5mS8LIKBVWzhA1MeIs1SWW6GnnE4In6c3kPb+CWhog==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", "dev": true, "requires": { - "hast-to-hyperscript": "^7.0.0", + "hast-to-hyperscript": "^9.0.0", "property-information": "^5.0.0", "web-namespaces": "^1.0.0", "xtend": "^4.0.0", @@ -12552,9 +12695,9 @@ "dev": true }, "inquirer": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.2.tgz", - "integrity": "sha512-DF4osh1FM6l0RJc5YWYhSDB6TawiBRlbV9Cox8MWlidU218Tb7fm3lQTULyUJDfJ0tjbzl0W4q651mrCCEM55w==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -12563,7 +12706,7 @@ "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.16", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.6.0", @@ -15155,18 +15298,18 @@ } }, "listr2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.2.0.tgz", - "integrity": "sha512-Q8qbd7rgmEwDo1nSyHaWQeztfGsdL6rb4uh7BA+Q80AZiDET5rVntiU1+13mu2ZTDVaBVbvAD1Db11rnu3l9sg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.3.6.tgz", + "integrity": "sha512-znchYUj4fahw/SxxJ2SOEytA7enDinu0HFeIS+Z+2o8h4sMyl6cUm6J9GBvF7ICwLjQJy7lDcphwYbjEDgJgcQ==", "dev": true, "requires": { - "chalk": "^4.0.0", + "chalk": "^4.1.0", "cli-truncate": "^2.1.0", "figures": "^3.2.0", "indent-string": "^4.0.0", "log-update": "^4.0.0", "p-map": "^4.0.0", - "rxjs": "^6.5.5", + "rxjs": "^6.6.0", "through": "^2.3.8" }, "dependencies": { @@ -15308,9 +15451,9 @@ } }, "lock-verify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.2.0.tgz", - "integrity": "sha512-BhM1Vqsu7x0s+EalTifNjdDPks+ZjdAhComvnA6VcCIlDOI5ouELXqAe1BYuEIP4zGN0W08xVm6byJV1LnCiJg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.2.1.tgz", + "integrity": "sha512-n0Zw2DVupKfZMazy/HIFVNohJ1z8fIoZ77WBnyyBGG6ixw83uJNyrbiJvvHWe1QKkGiBCjj8RCPlymltliqEww==", "dev": true, "requires": { "@iarna/cli": "^1.2.0", @@ -15327,9 +15470,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "lodash-es": { @@ -16439,9 +16582,9 @@ } }, "node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", + "version": "1.1.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", + "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", "dev": true }, "nopt": { @@ -17120,9 +17263,9 @@ } }, "open": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", - "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz", + "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==", "dev": true, "requires": { "is-docker": "^2.0.0", @@ -17489,9 +17632,9 @@ } }, "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", + "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -17537,9 +17680,9 @@ } }, "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "parseurl": { @@ -17790,18 +17933,18 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } @@ -17927,15 +18070,15 @@ } }, "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", "dev": true, "requires": { "icss-utils": "^4.1.1", - "postcss": "^7.0.16", + "postcss": "^7.0.32", "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" + "postcss-value-parser": "^4.1.0" } }, "postcss-modules-scope": { @@ -19028,9 +19171,9 @@ "dev": true }, "react-focus-lock": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.4.0.tgz", - "integrity": "sha512-mue/boxdfNhfxnQcZtEBvqwZ5XQxk0uRoAMwLGl8j6XolFV3UIlt6iGFBGqRdJsvVHhtyKC5i8fkLnBidxCTbA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.4.1.tgz", + "integrity": "sha512-c5ZP56KSpj9EAxzScTqQO7bQQNPltf/W1ZEBDqNDOV1XOIwvAyHX0O7db9ekiAtxyKgnqZjQlLppVg94fUeL9w==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", @@ -19055,18 +19198,18 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } @@ -19127,18 +19270,18 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } @@ -19576,54 +19719,62 @@ "dev": true }, "remark-mdx": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.6.tgz", - "integrity": "sha512-BkR7SjP+3OvrCsWGlYy1tWEsZ8aQ86x+i7XWbW79g73Ws/cCaeVsEn0ZxAzzoTRH+PJWVU7Mbe64GdejEyKr2g==", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.14.tgz", + "integrity": "sha512-90nKwpyhrTPD9tJoOFYhspcG3jinNp5Gwck14jcNuAzqS8e2cyOkIt11+KIsbC9M4KJQ/n3wTtb6xMh3dFgKuA==", "dev": true, "requires": { - "@babel/core": "7.9.6", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-proposal-object-rest-spread": "7.9.6", - "@babel/plugin-syntax-jsx": "7.8.3", - "@mdx-js/util": "^1.6.6", + "@babel/core": "7.10.5", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.10.4", + "@babel/plugin-syntax-jsx": "7.10.4", + "@mdx-js/util": "1.6.14", "is-alphabetical": "1.0.4", - "remark-parse": "8.0.2", + "remark-parse": "8.0.3", "unified": "9.0.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz", + "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.5", + "@babel/types": "^7.10.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" } }, "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.10.4", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, @@ -19647,6 +19798,12 @@ "@babel/types": "^7.10.4" } }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, "@babel/helper-split-export-declaration": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", @@ -19679,22 +19836,11 @@ } }, "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", - "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.9.5" - } - }, "@babel/template": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", @@ -19704,55 +19850,33 @@ "@babel/code-frame": "^7.10.4", "@babel/parser": "^7.10.4", "@babel/types": "^7.10.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - } } }, "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", + "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - } + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -19765,6 +19889,12 @@ "minimist": "^1.2.5" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -19774,9 +19904,9 @@ } }, "remark-parse": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.2.tgz", - "integrity": "sha512-eMI6kMRjsAGpMXXBAywJwiwAse+KNpmt+BK55Oofy4KvBZEqUDj6mWbGLJZrujoPIPPxDXzn3T9baRlpsm2jnQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", "dev": true, "requires": { "ccount": "^1.0.0", @@ -22224,9 +22354,9 @@ "dev": true }, "typescript": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz", - "integrity": "sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==", + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", "dev": true }, "uglify-js": { @@ -22387,9 +22517,9 @@ "dev": true }, "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", "dev": true }, "unist-util-position": { @@ -22405,14 +22535,6 @@ "dev": true, "requires": { "unist-util-is": "^4.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", - "dev": true - } } }, "unist-util-remove-position": { @@ -22434,22 +22556,14 @@ } }, "unist-util-visit": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", - "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", - "dev": true - } } }, "unist-util-visit-parents": { @@ -22460,14 +22574,6 @@ "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", - "dev": true - } } }, "universalify": { @@ -23322,12 +23428,12 @@ } }, "watchpack": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", - "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", "dev": true, "requires": { - "chokidar": "^3.4.0", + "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", "watchpack-chokidar2": "^2.0.0" @@ -23580,9 +23686,9 @@ "dev": true }, "webpack": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", - "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.0.tgz", + "integrity": "sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", @@ -23593,7 +23699,7 @@ "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", + "enhanced-resolve": "^4.3.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", @@ -23606,7 +23712,7 @@ "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.1", + "watchpack": "^1.7.4", "webpack-sources": "^1.4.1" }, "dependencies": { @@ -24331,9 +24437,9 @@ } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", From 8660a33befe6f30617d19577511201f87b3ff73a Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Mon, 27 Jul 2020 13:22:54 -0700 Subject: [PATCH 44/54] setting hidden input's checked state the same way it used to before the changes to keep tests from breaking --- src/components/calcite-checkbox/calcite-checkbox.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/calcite-checkbox/calcite-checkbox.tsx b/src/components/calcite-checkbox/calcite-checkbox.tsx index b0c8bf31bb9..3b0f2c0a25e 100644 --- a/src/components/calcite-checkbox/calcite-checkbox.tsx +++ b/src/components/calcite-checkbox/calcite-checkbox.tsx @@ -35,7 +35,7 @@ export class CalciteCheckbox { /** The checked state of the checkbox. */ @Prop({ reflect: true, mutable: true }) checked?: boolean = false; @Watch("checked") checkedWatcher(newChecked: boolean) { - this.input.checked = newChecked; + newChecked ? this.input.setAttribute("checked", "") : this.input.removeAttribute("checked"); this.calciteCheckboxChange.emit(); } @@ -176,7 +176,7 @@ export class CalciteCheckbox { private renderHiddenCheckboxInput() { this.input = document.createElement("input"); - this.input.checked = this.checked; + this.checked && this.input.setAttribute("checked", ""); this.input.disabled = this.disabled; this.input.onblur = () => (this.focused = false); this.input.onfocus = () => (this.focused = true); From e26e3a6d4796137aadd668edf8f4dd085b54a5c3 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Mon, 27 Jul 2020 14:02:41 -0700 Subject: [PATCH 45/54] fixing broken tests --- .../calcite-checkbox/calcite-checkbox.e2e.ts | 49 --------------- .../calcite-tile/calcite-tile.e2e.ts | 62 +++++++------------ 2 files changed, 22 insertions(+), 89 deletions(-) diff --git a/src/components/calcite-checkbox/calcite-checkbox.e2e.ts b/src/components/calcite-checkbox/calcite-checkbox.e2e.ts index 5e62e248e96..507e4100c12 100644 --- a/src/components/calcite-checkbox/calcite-checkbox.e2e.ts +++ b/src/components/calcite-checkbox/calcite-checkbox.e2e.ts @@ -28,31 +28,6 @@ describe("calcite-checkbox", () => { expect(input).toHaveAttribute("checked"); }); - it("overrides the switch attributes with user-provided checkbox if it exists", async () => { - const inputName = "input-name"; - const inputValue = "input-value"; - const inputID = "input-id"; - - const page = await newE2EPage(); - await page.setContent(` - - - `); - - const calciteCheckbox = await page.find("calcite-checkbox"); - const input = await page.find("input"); - - expect(input).toEqualAttribute("id", inputID); - expect(input).not.toHaveAttribute("checked"); - expect(calciteCheckbox).toEqualAttribute("name", inputName); - expect(calciteCheckbox).toEqualAttribute("value", inputValue); - }); - it("toggles the checked attributes appropriately when clicked", async () => { const page = await newE2EPage(); await page.setContent(""); @@ -117,30 +92,6 @@ describe("calcite-checkbox", () => { expect(calciteCheckbox).not.toHaveAttribute("indeterminate"); }); - // Not sure why this is failing; it works in real life - it("toggles the checked attributes when the inner checkbox is toggled", async () => { - const page = await newE2EPage(); - await page.setContent(` - - - `); - - const calciteCheckbox = await page.find("calcite-checkbox"); - const input = await page.find("input"); - - expect(calciteCheckbox).not.toHaveAttribute("checked"); - expect(input).not.toHaveAttribute("checked"); - - await page.$eval("input", (element) => { - element.setAttribute("checked", ""); - }); - - await page.waitForChanges(); - - expect(calciteCheckbox).toHaveAttribute("checked"); - expect(input).toHaveAttribute("checked"); - }); - it("toggles when the wrapping label is clicked", async () => { const page = await newE2EPage(); await page.setContent(` diff --git a/src/components/calcite-tile/calcite-tile.e2e.ts b/src/components/calcite-tile/calcite-tile.e2e.ts index 99cb3f66480..67a42a24996 100644 --- a/src/components/calcite-tile/calcite-tile.e2e.ts +++ b/src/components/calcite-tile/calcite-tile.e2e.ts @@ -1,11 +1,5 @@ import { newE2EPage } from "@stencil/core/testing"; -import { - accessible, - defaults, - hidden, - reflects, - renders, -} from "../../tests/commonTests"; +import { accessible, defaults, hidden, reflects, renders } from "../../tests/commonTests"; describe("calcite-tile", () => { it("renders", async () => renders("calcite-tile")); @@ -17,7 +11,7 @@ describe("calcite-tile", () => { { propertyName: "embed", defaultValue: false }, { propertyName: "focused", defaultValue: false }, { propertyName: "hidden", defaultValue: false }, - { propertyName: "theme", defaultValue: "light" }, + { propertyName: "theme", defaultValue: "light" } ])); it("reflects", async () => @@ -27,7 +21,7 @@ describe("calcite-tile", () => { { propertyName: "focused", value: true }, { propertyName: "href", value: "http://www.esri.com" }, { propertyName: "icon", value: "layers" }, - { propertyName: "theme", value: "light" }, + { propertyName: "theme", value: "light" } ])); it("honors hidden attribute", async () => hidden("calcite-tile")); @@ -35,19 +29,13 @@ describe("calcite-tile", () => { it("renders without a link by default", async () => { const page = await newE2EPage(); await page.setContent(""); - - const element = await page.find("calcite-tile"); - expect(element).toHaveClass("hydrated"); - const link = await page.find("calcite-tile >>> calcite-link"); expect(link).toBeNull(); }); it("renders a link when href attribute is supplied", async () => { const page = await newE2EPage(); - await page.setContent( - "" - ); + await page.setContent(""); const link = await page.find("calcite-tile >>> calcite-link"); const anchor = await page.find("calcite-tile >>> calcite-link >>> a"); @@ -55,27 +43,25 @@ describe("calcite-tile", () => { expect(anchor).toEqualAttribute("href", "http://www.esri.com"); }); - it("renders icon only when supplied", async () => { + it("renders heading only when supplied", async () => { const page = await newE2EPage(); - await page.setContent( - "" - ); + await page.setContent(""); - const icon = await page.find("calcite-tile >>> #icon"); - const heading = await page.find("calcite-tile >>> #heading"); - const description = await page.find("calcite-tile >>> #description"); + const icon = await page.find("calcite-tile >>> .icon"); + const heading = await page.find("calcite-tile >>> .heading"); + const description = await page.find("calcite-tile >>> .description"); expect(icon).toBeNull; - expect(heading).toEqualText("My Calcite Tile"); + expect(heading).toEqualText("My Calcite TileMy Calcite Tile"); expect(description).toBeNull; }); - it("renders heading only when supplied", async () => { + it("renders icon only when supplied", async () => { const page = await newE2EPage(); await page.setContent(""); - const icon = await page.find("calcite-tile >>> #icon"); - const heading = await page.find("calcite-tile >>> #heading"); - const description = await page.find("calcite-tile >>> #description"); + const icon = await page.find("calcite-tile >>> .icon"); + const heading = await page.find("calcite-tile >>> .heading"); + const description = await page.find("calcite-tile >>> .description"); expect(icon).toBeDefined(); expect(heading).toBeNull(); expect(description).toBeNull; @@ -83,13 +69,11 @@ describe("calcite-tile", () => { it("renders description only when supplied", async () => { const page = await newE2EPage(); - await page.setContent( - "" - ); + await page.setContent(""); - const icon = await page.find("calcite-tile >>> #icon"); - const heading = await page.find("calcite-tile >>> #heading"); - const description = await page.find("calcite-tile >>> #description"); + const icon = await page.find("calcite-tile >>> .icon"); + const heading = await page.find("calcite-tile >>> .heading"); + const description = await page.find("calcite-tile >>> .description"); expect(icon).toBeNull(); expect(heading).toBeNull(); expect(description).toEqualText("My Calcite Tile Description."); @@ -97,16 +81,14 @@ describe("calcite-tile", () => { it("renders large icon when only icon and heading are supplied", async () => { const page = await newE2EPage(); - await page.setContent( - '' - ); + await page.setContent(''); const icon = await page.find("calcite-tile >>> calcite-icon"); - const heading = await page.find("calcite-tile >>> #heading"); - const description = await page.find("calcite-tile >>> #description"); + const heading = await page.find("calcite-tile >>> .heading"); + const description = await page.find("calcite-tile >>> .description"); expect(icon).toEqualAttribute("icon", "layers"); expect(icon).toEqualAttribute("scale", "l"); - expect(heading).toEqualText("My Large Visual Calcite Tile"); + expect(heading).toEqualText("My Large Visual Calcite TileMy Large Visual Calcite Tile"); expect(description).toBeNull(); }); }); From 41e81d5430f40c9429eb0c6c6b1461489accdd9f Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Mon, 27 Jul 2020 14:52:36 -0700 Subject: [PATCH 46/54] more test fixes --- .../calcite-label/calcite-label.e2e.ts | 4 +- .../calcite-radio-button.e2e.ts | 43 ++++++------------- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/src/components/calcite-label/calcite-label.e2e.ts b/src/components/calcite-label/calcite-label.e2e.ts index f9aacff8748..396e09587e6 100644 --- a/src/components/calcite-label/calcite-label.e2e.ts +++ b/src/components/calcite-label/calcite-label.e2e.ts @@ -105,7 +105,7 @@ describe("calcite-label", () => { `); const label = await page.find("calcite-label"); - const checkbox = await page.find("calcite-checkbox"); + const checkbox = await page.find("input"); const checkboxClass = checkbox["_elmHandle"]["_remoteObject"].description; await label.click(); const activeEl = await page.evaluateHandle(() => document.activeElement); @@ -122,7 +122,7 @@ describe("calcite-label", () => { `); - const checkbox = await page.find("calcite-checkbox"); + const checkbox = await page.find("input"); const checkboxClass = checkbox["_elmHandle"]["_remoteObject"].description; await page.keyboard.press("Tab"); const activeEl = await page.evaluateHandle(() => document.activeElement); diff --git a/src/components/calcite-radio-button/calcite-radio-button.e2e.ts b/src/components/calcite-radio-button/calcite-radio-button.e2e.ts index e50b700bded..96ded4dc4b8 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.e2e.ts +++ b/src/components/calcite-radio-button/calcite-radio-button.e2e.ts @@ -1,27 +1,20 @@ import { newE2EPage } from "@stencil/core/testing"; -import { - accessible, - defaults, - hidden, - reflects, - renders, -} from "../../tests/commonTests"; +import { accessible, defaults, hidden, reflects, renders } from "../../tests/commonTests"; describe("calcite-radio-button", () => { it("renders", async () => renders("calcite-radio-button")); - it("is accessible", async () => - accessible(``)); + it("is accessible", async () => accessible(``)); it("has defaults", async () => defaults("calcite-radio-button", [ { propertyName: "scale", defaultValue: "m" }, - { propertyName: "theme", defaultValue: "light" }, + { propertyName: "theme", defaultValue: "light" } ])); - it("honors hidden attribute", async () => { - hidden("calcite-radio-button"); + it("honors hidden attribute", async () => hidden("calcite-radio-button")); + it("focusing skips over hidden radio-buttons", async () => { const page = await newE2EPage(); await page.setContent(` @@ -50,7 +43,7 @@ describe("calcite-radio-button", () => { { propertyName: "required", value: true }, { propertyName: "scale", value: "m" }, { propertyName: "theme", value: "light" }, - { propertyName: "title", value: "reflects-title" }, + { propertyName: "title", value: "reflects-title" } ])); it("has a radio input for form compatibility", async () => { @@ -178,9 +171,7 @@ describe("calcite-radio-button", () => { it("validates incorrect props", async () => { const page = await newE2EPage(); - await page.setContent( - "" - ); + await page.setContent(""); const element = await page.find("calcite-radio-button"); expect(element).toEqualAttribute("scale", "m"); }); @@ -248,9 +239,7 @@ describe("calcite-radio-button", () => { `); const documentBody = await page.evaluate(() => { - document.body.appendChild( - document.querySelector("calcite-radio-button#first") - ); + document.body.appendChild(document.querySelector("calcite-radio-button#first")); return document.body; }); await page.waitForChanges(); @@ -311,9 +300,7 @@ describe("calcite-radio-button", () => { it("emits when checked", async () => { const page = await newE2EPage(); - await page.setContent( - "" - ); + await page.setContent(""); const element = await page.find("calcite-radio-button"); const spy = await element.spyOnEvent("calciteRadioButtonChange"); @@ -326,9 +313,7 @@ describe("calcite-radio-button", () => { it("is un-checked by default", async () => { const page = await newE2EPage(); - await page.setContent( - "" - ); + await page.setContent(""); const element = await page.find("calcite-radio-button"); const checked = await element.getProperty("checked"); @@ -337,9 +322,7 @@ describe("calcite-radio-button", () => { it("supports value, label and checked", async () => { const page = await newE2EPage(); - await page.setContent( - "test-label" - ); + await page.setContent("test-label"); const element = await page.find("calcite-radio-button"); expect(element).toEqualText("test-label"); @@ -404,9 +387,7 @@ describe("calcite-radio-button", () => { const input = await page.find("input[type=radio]"); const inputTitleAttribute = await input.getAttribute("title"); - expect(inputTitleAttribute).toBe( - "Radio button with name of title and value of first" - ); + expect(inputTitleAttribute).toBe("Radio button with name of title and value of first"); }); it("sets the provided title attribute and reflects it to the corresponding input", async () => { From a4863a772cb9610e6e5cbf8db4892fd2bcf55f50 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Tue, 28 Jul 2020 11:28:31 -0700 Subject: [PATCH 47/54] refactor(calcite-tile): Removing hidden heading and just using 500 font-weight for all headings after design feedback due to issues with spacing. --- src/components/calcite-tile/calcite-tile.e2e.ts | 4 ++-- src/components/calcite-tile/calcite-tile.scss | 12 +----------- src/components/calcite-tile/calcite-tile.tsx | 7 +------ src/demos/calcite-tile-select.html | 6 +++--- 4 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/components/calcite-tile/calcite-tile.e2e.ts b/src/components/calcite-tile/calcite-tile.e2e.ts index 67a42a24996..1fc028b4712 100644 --- a/src/components/calcite-tile/calcite-tile.e2e.ts +++ b/src/components/calcite-tile/calcite-tile.e2e.ts @@ -51,7 +51,7 @@ describe("calcite-tile", () => { const heading = await page.find("calcite-tile >>> .heading"); const description = await page.find("calcite-tile >>> .description"); expect(icon).toBeNull; - expect(heading).toEqualText("My Calcite TileMy Calcite Tile"); + expect(heading).toEqualText("My Calcite Tile"); expect(description).toBeNull; }); @@ -88,7 +88,7 @@ describe("calcite-tile", () => { const description = await page.find("calcite-tile >>> .description"); expect(icon).toEqualAttribute("icon", "layers"); expect(icon).toEqualAttribute("scale", "l"); - expect(heading).toEqualText("My Large Visual Calcite TileMy Large Visual Calcite Tile"); + expect(heading).toEqualText("My Large Visual Calcite Tile"); expect(description).toBeNull(); }); }); diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss index c72abaa369d..8b05147d353 100644 --- a/src/components/calcite-tile/calcite-tile.scss +++ b/src/components/calcite-tile/calcite-tile.scss @@ -22,12 +22,6 @@ $spacing: $baseline/2; :host(:not([embed])[href]:active) { box-shadow: 0 0 0 3px var(--calcite-ui-blue-1); } -:host([active]), -:host(:not([embed])[href]:active) { - .heading { - font-weight: 500; - } -} :host([icon][heading]:not([description]):not([embed])) { padding: unset; } @@ -38,11 +32,7 @@ $spacing: $baseline/2; .heading { @include font-size(0); color: var(--calcite-ui-text-1); - .active-hidden { - opacity: 0; - font-weight: 500; - margin-top: -$baseline-ratio * 1em; - } + font-weight: 500; } &.large-visual { justify-items: center; diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx index 7be647be45f..c6b6679ec2b 100644 --- a/src/components/calcite-tile/calcite-tile.tsx +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -43,12 +43,7 @@ export class CalciteTile {
    )} - {this.heading && ( -
    - {this.heading} -
    {this.heading}
    -
    - )} + {this.heading &&
    {this.heading}
    } {this.description &&
    {this.description}
    }
    ); diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index d5e09a9f376..bde6450187d 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -52,7 +52,7 @@

    Calcite Tile Select

    Left Radio

    Basic Heading Only Checkbox
    -
    +
    Submit From 063554a7f174d708adce62c0eade9bb3c8c91eed Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 29 Jul 2020 10:48:51 -0700 Subject: [PATCH 48/54] fix(calcite-radio-button): hidden attribute --- .../calcite-radio-button/calcite-radio-button.scss | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/calcite-radio-button/calcite-radio-button.scss b/src/components/calcite-radio-button/calcite-radio-button.scss index 53e330f045b..f4fa65ed76d 100644 --- a/src/components/calcite-radio-button/calcite-radio-button.scss +++ b/src/components/calcite-radio-button/calcite-radio-button.scss @@ -54,8 +54,7 @@ } :host([scale="s"][focused]) { .radio { - box-shadow: inset 0 0 0 4px var(--calcite-ui-blue-1), - 0 0 0 2px var(--calcite-ui-foreground-1), + box-shadow: inset 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } } @@ -79,8 +78,7 @@ } :host([scale="m"][focused]) { .radio { - box-shadow: inset 0 0 0 5px var(--calcite-ui-blue-1), - 0 0 0 2px var(--calcite-ui-foreground-1), + box-shadow: inset 0 0 0 5px var(--calcite-ui-blue-1), 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } } @@ -105,8 +103,10 @@ } :host([scale="l"][focused]) { .radio { - box-shadow: inset 0 0 0 6px var(--calcite-ui-blue-1), - 0 0 0 2px var(--calcite-ui-foreground-1), + box-shadow: inset 0 0 0 6px var(--calcite-ui-blue-1), 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } } +:host([hidden]) { + display: none; +} From 565d4f61dba0fbd9b5ce7433414acc9e2f64478f Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 29 Jul 2020 13:05:55 -0700 Subject: [PATCH 49/54] fix(calcite-tile-select): hover overlap issues with show-input none variants --- src/components/calcite-tile-select/calcite-tile-select.scss | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 2643777a795..3268c6501cb 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -38,15 +38,18 @@ $spacing: $baseline/2; } :host([show-input="none"]:hover) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); - z-index: 2; + z-index: 3; } :host([show-input="none"][checked]) { box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } +:host([show-input="none"]:focus), :host([show-input="none"][focused]) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); + z-index: 2; } +:host([show-input="none"][checked]:focus), :host([show-input="none"][checked][focused]) { box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); From a75048f31e631d5a4f0b7c139a5960973425acb8 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Wed, 29 Jul 2020 16:01:21 -0700 Subject: [PATCH 50/54] docs(calcite-tile): storybook for calcite-tile --- src/components/calcite-icon/readme.md | 2 +- .../calcite-tile-select-group.stories.ts | 41 +++++++++++++++ .../calcite-tile-select.stories.js | 8 --- .../calcite-tile-select.stories.ts | 11 ++++ src/components/calcite-tile/calcite-tile.scss | 5 +- .../calcite-tile/calcite-tile.stories.js | 8 --- .../calcite-tile/calcite-tile.stories.ts | 50 +++++++++++++++++++ src/components/calcite-tile/calcite-tile.tsx | 17 +++++++ src/components/calcite-tile/readme.md | 22 ++++---- src/demos/calcite-tile-select.html | 4 +- 10 files changed, 136 insertions(+), 32 deletions(-) create mode 100644 src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts delete mode 100644 src/components/calcite-tile-select/calcite-tile-select.stories.js create mode 100644 src/components/calcite-tile-select/calcite-tile-select.stories.ts delete mode 100644 src/components/calcite-tile/calcite-tile.stories.js create mode 100644 src/components/calcite-tile/calcite-tile.stories.ts diff --git a/src/components/calcite-icon/readme.md b/src/components/calcite-icon/readme.md index ade0ecc298f..2e674c6c209 100644 --- a/src/components/calcite-icon/readme.md +++ b/src/components/calcite-icon/readme.md @@ -18,7 +18,6 @@ To use a custom color for the icon fill, you can add a class to the `calcite-ico | Property | Attribute | Description | Type | Default | | ----------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------- | -| `height` | `height` | Custom height (overrides the scale property) | `number` | `undefined` | | `icon` | `icon` | The name of the icon to display. The value of this property must match the icon name from https://esri.github.io/calcite-ui-icons/. | `string` | `null` | | `mirrored` | `mirrored` | When true, the icon will be mirrored when the element direction is 'rtl'. | `boolean` | `false` | | `scale` | `scale` | Icon scale. Can be "s" \| "m" \| "l". | `"l" \| "m" \| "s"` | `"m"` | @@ -45,6 +44,7 @@ To use a custom color for the icon fill, you can add a class to the `calcite-ico - [calcite-popover](../calcite-popover) - [calcite-radio-group-item](../calcite-radio-group-item) - [calcite-stepper-item](../calcite-stepper-item) +- [calcite-tile](../calcite-tile) - [calcite-tree-item](../calcite-tree-item) ### Graph diff --git a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts new file mode 100644 index 00000000000..bf5a637485e --- /dev/null +++ b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts @@ -0,0 +1,41 @@ +import { storiesOf } from "@storybook/html"; +import { withKnobs } from "@storybook/addon-knobs"; + +storiesOf("Tile Select", module) + .addDecorator(withKnobs) + .add( + "Simple", + () => ` + + + + + + + + + + + + + + + + + + + ` + ); diff --git a/src/components/calcite-tile-select/calcite-tile-select.stories.js b/src/components/calcite-tile-select/calcite-tile-select.stories.js deleted file mode 100644 index 08c2f48ea11..00000000000 --- a/src/components/calcite-tile-select/calcite-tile-select.stories.js +++ /dev/null @@ -1,8 +0,0 @@ -import { storiesOf } from '@storybook/html'; -import { withKnobs } from '@storybook/addon-knobs' - -storiesOf('Tile Select', module) - .addDecorator(withKnobs) - .add('Simple', () => ` - - `); diff --git a/src/components/calcite-tile-select/calcite-tile-select.stories.ts b/src/components/calcite-tile-select/calcite-tile-select.stories.ts new file mode 100644 index 00000000000..d06e4ef6d07 --- /dev/null +++ b/src/components/calcite-tile-select/calcite-tile-select.stories.ts @@ -0,0 +1,11 @@ +import { storiesOf } from "@storybook/html"; +import { withKnobs } from "@storybook/addon-knobs"; + +storiesOf("Tile Select", module) + .addDecorator(withKnobs) + .add( + "Simple", + () => ` + + ` + ); diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss index 8b05147d353..bf010f04df6 100644 --- a/src/components/calcite-tile/calcite-tile.scss +++ b/src/components/calcite-tile/calcite-tile.scss @@ -5,9 +5,10 @@ $spacing: $baseline/2; :host { background-color: var(--calcite-ui-foreground-1); - transition: $transition; - color: var(--calcite-ui-text-3); box-sizing: border-box; + color: var(--calcite-ui-text-3); + display: inline-block; + transition: $transition; user-select: none; } :host(:not([embed])) { diff --git a/src/components/calcite-tile/calcite-tile.stories.js b/src/components/calcite-tile/calcite-tile.stories.js deleted file mode 100644 index 03dd767323f..00000000000 --- a/src/components/calcite-tile/calcite-tile.stories.js +++ /dev/null @@ -1,8 +0,0 @@ -import { storiesOf } from '@storybook/html'; -import { withKnobs } from '@storybook/addon-knobs' - -storiesOf('Tile', module) - .addDecorator(withKnobs) - .add('Simple', () => ` - - `); diff --git a/src/components/calcite-tile/calcite-tile.stories.ts b/src/components/calcite-tile/calcite-tile.stories.ts new file mode 100644 index 00000000000..e1caab08f80 --- /dev/null +++ b/src/components/calcite-tile/calcite-tile.stories.ts @@ -0,0 +1,50 @@ +import { storiesOf } from "@storybook/html"; +import { withKnobs, select, text } from "@storybook/addon-knobs"; +import { darkBackground, iconNames, parseReadme, boolean } from "../../../.storybook/helpers"; +import readme from "./readme.md"; + +const notes = parseReadme(readme); + +storiesOf("Tile", module) + .addDecorator(withKnobs) + .add( + "Light Theme", + () => ` + + + `, + { notes } + ) + .add( + "Dark Theme", + () => ` + + + `, + { notes, backgrounds: darkBackground } + ); diff --git a/src/components/calcite-tile/calcite-tile.tsx b/src/components/calcite-tile/calcite-tile.tsx index c6b6679ec2b..0cc9ab3bad8 100644 --- a/src/components/calcite-tile/calcite-tile.tsx +++ b/src/components/calcite-tile/calcite-tile.tsx @@ -12,14 +12,31 @@ export class CalciteTile { // //-------------------------------------------------------------------------- + /** The active state of the tile. */ @Prop({ reflect: true }) active?: boolean; + + /** The description text that appears beneath the heading of the tile. */ @Prop({ reflect: true }) description?: string; + + /** The embed mode of the tile. When true, renders without a border and padding for use by other components. */ @Prop({ reflect: true }) embed: boolean = false; + + /** The focused state of the tile. */ @Prop({ reflect: true }) focused: boolean = false; + + /** The heading text that appears between the icon and description of the tile. */ @Prop({ reflect: true }) heading?: string; + + /** The hidden state of the tile. */ @Prop({ reflect: true }) hidden: boolean = false; + + /** The (optional) url for the tile. (Only applies when embed is set to false) */ @Prop({ reflect: true }) href?: string; + + /** The icon that appears at the top of the tile. */ @Prop({ reflect: true }) icon?: string; + + /** The theme of the tile. */ @Prop({ reflect: true }) theme: "light" | "dark" = "light"; // -------------------------------------------------------------------------- diff --git a/src/components/calcite-tile/readme.md b/src/components/calcite-tile/readme.md index b055d94155c..54ebfe25920 100644 --- a/src/components/calcite-tile/readme.md +++ b/src/components/calcite-tile/readme.md @@ -4,17 +4,17 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ------------- | ------------- | ----------- | ------------------- | ----------- | -| `active` | `active` | | `boolean` | `undefined` | -| `description` | `description` | | `string` | `undefined` | -| `embed` | `embed` | | `boolean` | `false` | -| `focused` | `focused` | | `boolean` | `false` | -| `heading` | `heading` | | `string` | `undefined` | -| `hidden` | `hidden` | | `boolean` | `false` | -| `href` | `href` | | `string` | `undefined` | -| `icon` | `icon` | | `string` | `undefined` | -| `theme` | `theme` | | `"dark" \| "light"` | `"light"` | +| Property | Attribute | Description | Type | Default | +| ------------- | ------------- | -------------------------------------------------------------------------------------------------------- | ------------------- | ----------- | +| `active` | `active` | The active state of the tile. | `boolean` | `undefined` | +| `description` | `description` | The description text that appears beneath the heading of the tile. | `string` | `undefined` | +| `embed` | `embed` | The embed mode of the tile. When true, renders without a border and padding for use by other components. | `boolean` | `false` | +| `focused` | `focused` | The focused state of the tile. | `boolean` | `false` | +| `heading` | `heading` | The heading text that appears between the icon and description of the tile. | `string` | `undefined` | +| `hidden` | `hidden` | The hidden state of the tile. | `boolean` | `false` | +| `href` | `href` | The (optional) url for the tile. (Only applies when embed is set to false) | `string` | `undefined` | +| `icon` | `icon` | The icon that appears at the top of the tile. | `string` | `undefined` | +| `theme` | `theme` | The theme of the tile. | `"dark" \| "light"` | `"light"` | ## Dependencies diff --git a/src/demos/calcite-tile-select.html b/src/demos/calcite-tile-select.html index bde6450187d..41cc809d61b 100644 --- a/src/demos/calcite-tile-select.html +++ b/src/demos/calcite-tile-select.html @@ -597,7 +597,7 @@

    Basic Heading Only Checkbox

    - +
    Submit From fd4b6ac05fa8c1062e3b2dd1d1fded229aecef93 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Thu, 30 Jul 2020 10:48:14 -0700 Subject: [PATCH 51/54] docs(calcite-tile-select): stories --- .../calcite-tile-select-group.stories.ts | 2 +- .../calcite-tile-select.scss | 24 +-- .../calcite-tile-select.stories.ts | 147 +++++++++++++++++- .../calcite-tile-select.tsx | 25 ++- src/components/calcite-tile-select/readme.md | 28 ++-- 5 files changed, 194 insertions(+), 32 deletions(-) diff --git a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts index bf5a637485e..92f7e0b7366 100644 --- a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts +++ b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts @@ -1,7 +1,7 @@ import { storiesOf } from "@storybook/html"; import { withKnobs } from "@storybook/addon-knobs"; -storiesOf("Tile Select", module) +storiesOf("Tile Select Group", module) .addDecorator(withKnobs) .add( "Simple", diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 3268c6501cb..07753bc1d46 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -26,7 +26,7 @@ $spacing: $baseline/2; z-index: 2; } -:host([show-input="none"]) { +:host([show-input*="none"]) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 3px var(--calcite-ui-border-2); margin-right: 1px; margin-bottom: 5px; @@ -36,21 +36,21 @@ $spacing: $baseline/2; position: absolute; } } -:host([show-input="none"]:hover) { +:host([show-input*="none"]:hover) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); z-index: 3; } -:host([show-input="none"][checked]) { +:host([show-input*="none"][checked]) { box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } -:host([show-input="none"]:focus), -:host([show-input="none"][focused]) { +:host([show-input*="none"]:focus), +:host([show-input*="none"][focused]) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); z-index: 2; } -:host([show-input="none"][checked]:focus), -:host([show-input="none"][checked][focused]) { +:host([show-input*="none"][checked]:focus), +:host([show-input*="none"][checked][focused]) { box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); } @@ -59,8 +59,8 @@ $spacing: $baseline/2; align-items: center; } -:host([show-input="left"][icon][heading][description]), -:host([show-input="left"]:not([icon])[heading]:not([description])) { +:host([show-input*="left"][icon][heading][description]), +:host([show-input*="left"]:not([icon])[heading]:not([description])) { display: inline-grid; grid-gap: $spacing; grid-template-columns: max-content 1fr; @@ -72,7 +72,7 @@ $spacing: $baseline/2; order: 1; } } -:host([show-input="left"][icon][heading]:not([description])) { +:host([show-input*="left"][icon][heading]:not([description])) { ::slotted(calcite-checkbox), ::slotted(calcite-radio-button) { position: absolute; @@ -80,7 +80,7 @@ $spacing: $baseline/2; left: $spacing; } } -:host([show-input="right"][icon][heading]) { +:host([show-input*="right"][icon][heading]) { ::slotted(calcite-checkbox), ::slotted(calcite-radio-button) { position: absolute; @@ -88,7 +88,7 @@ $spacing: $baseline/2; right: $spacing; } } -:host([show-input="right"][heading]:not([icon]):not([description])) { +:host([show-input*="right"][heading]:not([icon]):not([description])) { display: inline-grid; grid-gap: $spacing; grid-template-columns: max-content 1fr; diff --git a/src/components/calcite-tile-select/calcite-tile-select.stories.ts b/src/components/calcite-tile-select/calcite-tile-select.stories.ts index d06e4ef6d07..8280d60a8a0 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.stories.ts +++ b/src/components/calcite-tile-select/calcite-tile-select.stories.ts @@ -1,11 +1,150 @@ import { storiesOf } from "@storybook/html"; -import { withKnobs } from "@storybook/addon-knobs"; +import { withKnobs, select, text } from "@storybook/addon-knobs"; +import { darkBackground, iconNames, parseReadme, boolean } from "../../../.storybook/helpers"; +import readme from "./readme.md"; + +const notes = parseReadme(readme); storiesOf("Tile Select", module) .addDecorator(withKnobs) .add( - "Simple", + "Left Input Light", + () => ` + + + `, + { notes } + ) + .add( + "Right Input Light", + () => ` + + + `, + { notes } + ) + .add( + "No Input Light", + () => ` + + + `, + { notes } + ) + .add( + "Left Input Dark", + () => ` + + + `, + { notes, backgrounds: darkBackground } + ) + .add( + "Right Input Dark", + () => ` + + + `, + { notes, backgrounds: darkBackground } + ) + .add( + "No Input Dark", () => ` - - ` + + + `, + { notes, backgrounds: darkBackground } ); diff --git a/src/components/calcite-tile-select/calcite-tile-select.tsx b/src/components/calcite-tile-select/calcite-tile-select.tsx index e1815991246..1997228031d 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.tsx +++ b/src/components/calcite-tile-select/calcite-tile-select.tsx @@ -3,7 +3,7 @@ import { Component, Element, Host, h, Prop, Listen } from "@stencil/core"; @Component({ tag: "calcite-tile-select", styleUrl: "calcite-tile-select.scss", - shadow: true, + shadow: true }) export class CalciteTileSelect { //-------------------------------------------------------------------------- @@ -20,17 +20,40 @@ export class CalciteTileSelect { // //-------------------------------------------------------------------------- + /** The checked state of the tile select. */ @Prop({ reflect: true, mutable: true }) checked: boolean = false; + + /** The description text that appears beneath the heading of the tile. */ @Prop({ reflect: true }) description?: string; + + /** The disabled state of the tile select. */ @Prop({ reflect: true }) disabled: boolean = false; + + /** The focused state of the tile select. */ @Prop({ reflect: true, mutable: true }) focused: boolean = false; + + /** The heading text that appears between the icon and description of the tile. */ @Prop({ reflect: true }) heading?: string; + + /** The hidden state of the tile select. */ @Prop({ reflect: true }) hidden: boolean = false; + + /** The icon that appears at the top of the tile. */ @Prop({ reflect: true }) icon?: string; + + /** The name of the tile select. This name will appear in form submissions as either a radio or checkbox identifier based on the `type` property. */ @Prop({ reflect: true }) name: string = ""; + + /** The side of the tile that the radio or checkbox appears. */ @Prop({ reflect: true }) showInput: "left" | "right" | "none" = "left"; + + /** The theme of the tile select. */ @Prop({ reflect: true }) theme: "light" | "dark" = "light"; + + /** The selection mode of the tile select: radio (single) or checkbox (multiple). */ @Prop({ reflect: true }) type: "radio" | "checkbox" = "radio"; + + /** The value of the tile select. This value will appear in form submissions when this tile select is checked. */ @Prop({ reflect: true }) value?: string; //-------------------------------------------------------------------------- diff --git a/src/components/calcite-tile-select/readme.md b/src/components/calcite-tile-select/readme.md index 8b668055cab..47593a1cd5d 100644 --- a/src/components/calcite-tile-select/readme.md +++ b/src/components/calcite-tile-select/readme.md @@ -4,20 +4,20 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ------------- | ------------- | ----------- | ----------------------------- | ----------- | -| `checked` | `checked` | | `boolean` | `false` | -| `description` | `description` | | `string` | `undefined` | -| `disabled` | `disabled` | | `boolean` | `false` | -| `focused` | `focused` | | `boolean` | `false` | -| `heading` | `heading` | | `string` | `undefined` | -| `hidden` | `hidden` | | `boolean` | `false` | -| `icon` | `icon` | | `string` | `undefined` | -| `name` | `name` | | `string` | `""` | -| `showInput` | `show-input` | | `"left" \| "none" \| "right"` | `"left"` | -| `theme` | `theme` | | `"dark" \| "light"` | `"light"` | -| `type` | `type` | | `"checkbox" \| "radio"` | `"radio"` | -| `value` | `value` | | `string` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ----------- | +| `checked` | `checked` | The checked state of the tile select. | `boolean` | `false` | +| `description` | `description` | The description text that appears beneath the heading of the tile. | `string` | `undefined` | +| `disabled` | `disabled` | The disabled state of the tile select. | `boolean` | `false` | +| `focused` | `focused` | The focused state of the tile select. | `boolean` | `false` | +| `heading` | `heading` | The heading text that appears between the icon and description of the tile. | `string` | `undefined` | +| `hidden` | `hidden` | The hidden state of the tile select. | `boolean` | `false` | +| `icon` | `icon` | The icon that appears at the top of the tile. | `string` | `undefined` | +| `name` | `name` | The name of the tile select. This name will appear in form submissions as either a radio or checkbox identifier based on the `type` property. | `string` | `""` | +| `showInput` | `show-input` | The side of the tile that the radio or checkbox appears. | `"left" \| "none" \| "right"` | `"left"` | +| `theme` | `theme` | The theme of the tile select. | `"dark" \| "light"` | `"light"` | +| `type` | `type` | The selection mode of the tile select: radio (single) or checkbox (multiple). | `"checkbox" \| "radio"` | `"radio"` | +| `value` | `value` | The value of the tile select. This value will appear in form submissions when this tile select is checked. | `string` | `undefined` | ## Dependencies From b725090da42b78d7dff1936dbfc51c1dc7bf6d16 Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Thu, 30 Jul 2020 12:00:22 -0700 Subject: [PATCH 52/54] docs(calcite-tile-select): finishing stories --- package-lock.json | 86 +++++++++++--- .../calcite-tile-select-group.stories.ts | 2 +- .../calcite-tile-select.scss | 28 +++-- .../calcite-tile-select.stories.ts | 108 ++---------------- .../calcite-tile/calcite-tile.stories.ts | 8 +- src/demos/calcite-tile.html | 8 -- 6 files changed, 94 insertions(+), 146 deletions(-) diff --git a/package-lock.json b/package-lock.json index 266d360ab57..8c28b737390 100644 --- a/package-lock.json +++ b/package-lock.json @@ -166,6 +166,12 @@ "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -190,6 +196,12 @@ "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -4010,6 +4022,12 @@ "json5": "^2.1.2" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", @@ -4186,6 +4204,12 @@ "@babel/types": "^7.10.4" } }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, "@babel/helper-split-export-declaration": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", @@ -4275,6 +4299,25 @@ "to-fast-properties": "^2.0.0" } }, + "babel-plugin-apply-mdx-type-prop": { + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.14.tgz", + "integrity": "sha512-qOnIfczK7yxDpBUeT21WIVmGPpSyzPv61FS9/Ql5J/PIEVw0c6aS2a53/tL5rQWKlJwNdb2RkhG+fpT5WGvYaQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.14" + } + }, + "babel-plugin-extract-import-names": { + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.14.tgz", + "integrity": "sha512-pCyalU0WzbFPEb3E/ALerXzL/OMGH9M1mbWPR4QuSRo6BAfLL/j0QcLRRYojYQpCCS7pys9JpN/HI2+GcsbEhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "7.10.4" + } + }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -6019,6 +6062,12 @@ "minimist": "^1.2.5" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -8035,16 +8084,6 @@ "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", "dev": true }, - "babel-plugin-apply-mdx-type-prop": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.6.tgz", - "integrity": "sha512-rUzVvkQa8/9M63OZT6qQQ1bS8P0ozhXp9e5uJ3RwRJF5Me7s4nZK5SYhyNHYc0BkAflWnCOGMP3oPQUfuyB8tg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@mdx-js/util": "^1.6.6" - } - }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -8072,15 +8111,6 @@ "source-map": "^0.5.7" } }, - "babel-plugin-extract-import-names": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.6.tgz", - "integrity": "sha512-UtMuiQJnhVPAGE2+pDe7Nc9NVEmDdqGTN74BtRALgH+7oag88RpxFLOSiA+u5mFkFg741wW9Ut5KiyJpksEj/g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.8.3" - } - }, "babel-plugin-istanbul": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", @@ -12256,6 +12286,12 @@ "type-check": "~0.4.0" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -24440,6 +24476,12 @@ "unist-util-visit": "^1.0.0" } }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, "unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", @@ -24715,6 +24757,12 @@ "unist-util-visit": "^1.0.0" }, "dependencies": { + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, "unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", diff --git a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts index 92f7e0b7366..d2352ee738d 100644 --- a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts +++ b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts @@ -1,7 +1,7 @@ import { storiesOf } from "@storybook/html"; import { withKnobs } from "@storybook/addon-knobs"; -storiesOf("Tile Select Group", module) +storiesOf("components|Tile Select Group", module) .addDecorator(withKnobs) .add( "Simple", diff --git a/src/components/calcite-tile-select/calcite-tile-select.scss b/src/components/calcite-tile-select/calcite-tile-select.scss index 07753bc1d46..ea611a645d9 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.scss +++ b/src/components/calcite-tile-select/calcite-tile-select.scss @@ -26,7 +26,7 @@ $spacing: $baseline/2; z-index: 2; } -:host([show-input*="none"]) { +:host([show-input="none"]) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 3px var(--calcite-ui-border-2); margin-right: 1px; margin-bottom: 5px; @@ -36,21 +36,21 @@ $spacing: $baseline/2; position: absolute; } } -:host([show-input*="none"]:hover) { +:host([show-input="none"]:hover) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); z-index: 3; } -:host([show-input*="none"][checked]) { +:host([show-input="none"][checked]) { box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1); } -:host([show-input*="none"]:focus), -:host([show-input*="none"][focused]) { +:host([show-input="none"]:focus), +:host([show-input="none"][focused]) { box-shadow: 0 0 0 2px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); z-index: 2; } -:host([show-input*="none"][checked]:focus), -:host([show-input*="none"][checked][focused]) { +:host([show-input="none"][checked]:focus), +:host([show-input="none"][checked][focused]) { box-shadow: 0 0 0 1px var(--calcite-ui-foreground-1), 0 0 0 4px var(--calcite-ui-blue-1), 0 0 0 6px var(--calcite-ui-foreground-1), 0 0 0 9px var(--calcite-ui-blue-1); } @@ -59,8 +59,8 @@ $spacing: $baseline/2; align-items: center; } -:host([show-input*="left"][icon][heading][description]), -:host([show-input*="left"]:not([icon])[heading]:not([description])) { +:host([show-input="left"][icon][heading][description]), +:host([show-input="left"]:not([icon])[heading]:not([description])) { display: inline-grid; grid-gap: $spacing; grid-template-columns: max-content 1fr; @@ -72,7 +72,7 @@ $spacing: $baseline/2; order: 1; } } -:host([show-input*="left"][icon][heading]:not([description])) { +:host([show-input="left"][icon][heading]:not([description])) { ::slotted(calcite-checkbox), ::slotted(calcite-radio-button) { position: absolute; @@ -80,7 +80,7 @@ $spacing: $baseline/2; left: $spacing; } } -:host([show-input*="right"][icon][heading]) { +:host([show-input="right"][icon][heading]) { ::slotted(calcite-checkbox), ::slotted(calcite-radio-button) { position: absolute; @@ -88,7 +88,7 @@ $spacing: $baseline/2; right: $spacing; } } -:host([show-input*="right"][heading]:not([icon]):not([description])) { +:host([show-input="right"][heading]:not([icon]):not([description])) { display: inline-grid; grid-gap: $spacing; grid-template-columns: max-content 1fr; @@ -97,3 +97,7 @@ $spacing: $baseline/2; justify-self: flex-end; } } + +:host([hidden]) { + display: none; +} diff --git a/src/components/calcite-tile-select/calcite-tile-select.stories.ts b/src/components/calcite-tile-select/calcite-tile-select.stories.ts index 8280d60a8a0..921aa29419a 100644 --- a/src/components/calcite-tile-select/calcite-tile-select.stories.ts +++ b/src/components/calcite-tile-select/calcite-tile-select.stories.ts @@ -5,10 +5,10 @@ import readme from "./readme.md"; const notes = parseReadme(readme); -storiesOf("Tile Select", module) +storiesOf("components|Tile Select", module) .addDecorator(withKnobs) .add( - "Left Input Light", + "Light", () => ` @@ -31,7 +31,7 @@ storiesOf("Tile Select", module) { notes } ) .add( - "Right Input Light", + "Dark", () => ` - - `, - { notes } - ) - .add( - "No Input Light", - () => ` - - - `, - { notes } - ) - .add( - "Left Input Dark", - () => ` - - - `, - { notes, backgrounds: darkBackground } - ) - .add( - "Right Input Dark", - () => ` - - - `, - { notes, backgrounds: darkBackground } - ) - .add( - "No Input Dark", - () => ` - ` ` Link -

    Embed

    - -

    Heading Only

    Heading Only Link

    @@ -82,10 +78,6 @@

    Link

    -

    Embed

    - -

    Heading Only

    Heading Only Link

    From c9c99ace39a4a4f8a52369c099d8caae0934909f Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Thu, 30 Jul 2020 15:35:40 -0700 Subject: [PATCH 53/54] docs(calcite-tile-select-group): story --- .../calcite-tile-select-group.stories.ts | 107 ++++++++++++++---- 1 file changed, 87 insertions(+), 20 deletions(-) diff --git a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts index d2352ee738d..4e382c64897 100644 --- a/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts +++ b/src/components/calcite-tile-select-group/calcite-tile-select-group.stories.ts @@ -1,41 +1,108 @@ import { storiesOf } from "@storybook/html"; -import { withKnobs } from "@storybook/addon-knobs"; +import { withKnobs, select } from "@storybook/addon-knobs"; +import { darkBackground } from "../../../.storybook/helpers"; storiesOf("components|Tile Select Group", module) .addDecorator(withKnobs) .add( - "Simple", + "Light", () => ` - + icon="layers" + name="light" + show-input="${select("show-input", ["left", "right", "none"], "left")}" + type="${select("type", ["radio", "checkbox"], "radio")}" + value="one" + > - + icon="layers" + name="light" + show-input="${select("show-input", ["left", "right", "none"], "left")}" + type="${select("type", ["radio", "checkbox"], "radio")}" + value="two" + > - + icon="layers" + name="light" + show-input="${select("show-input", ["left", "right", "none"], "left")}" + type="${select("type", ["radio", "checkbox"], "radio")}" + value="three" + > - - - + - + + ` + ) + .add( + "Dark", + () => ` + + - + icon="layers" + name="dark" + show-input="${select("show-input", ["left", "right", "none"], "left")}" + theme="dark" + type="${select("type", ["radio", "checkbox"], "radio")}" + value="two" + > - + icon="layers" + name="dark" + show-input="${select("show-input", ["left", "right", "none"], "left")}" + theme="dark" + type="${select("type", ["radio", "checkbox"], "radio")}" + value="three" + > + - ` + `, + { backgrounds: darkBackground } ); From 3ece23867606c951d8574f1eaca5964d1e3c260b Mon Sep 17 00:00:00 2001 From: Erik Harper Date: Fri, 31 Jul 2020 09:26:52 -0700 Subject: [PATCH 54/54] refactor(calcite-tile): unnesting styles for simplicity --- src/components/calcite-tile/calcite-tile.scss | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/components/calcite-tile/calcite-tile.scss b/src/components/calcite-tile/calcite-tile.scss index bf010f04df6..7711bba7383 100644 --- a/src/components/calcite-tile/calcite-tile.scss +++ b/src/components/calcite-tile/calcite-tile.scss @@ -30,23 +30,23 @@ $spacing: $baseline/2; display: grid; grid-template-columns: 1fr; grid-gap: $spacing; - .heading { - @include font-size(0); - color: var(--calcite-ui-text-1); - font-weight: 500; - } - &.large-visual { - justify-items: center; - min-height: 200px; - .icon { - align-self: self-end; - } - .heading { - align-self: center; - } +} +.heading { + @include font-size(0); + color: var(--calcite-ui-text-1); + font-weight: 500; +} +.large-visual { + justify-items: center; + min-height: 200px; + .icon { + align-self: self-end; } - .description { - @include font-size(-1); - color: var(--calcite-ui-text-2); + .heading { + align-self: center; } } +.description { + @include font-size(-1); + color: var(--calcite-ui-text-2); +}