From 3b171a02b78e259f50f31c13bffcdf60d60d22f0 Mon Sep 17 00:00:00 2001 From: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com> Date: Mon, 2 Oct 2023 13:33:27 -0700 Subject: [PATCH 01/18] web: laying the groundwork for future expansion (#7045) * web: laying the groundwork for future expansion This commit is a hodge-podge of updates and changes to the web. Functional changes: - Makefile: Fixed a bug in the `help` section that prevented the WIDTH from being accurately calculated if `help` was included rather than in-lined. - ESLint: Modified the "unused vars" rule so that variables starting with an underline are not considered by the rule. This allows for elided variables in event handlers. It's not a perfect solution-- a better one would be to use Typescript's function-specialization typing, but there are too many places where we elide or ignore some variables in a function's usage that switching over to specialization would be a huge lift. - locale: It turns out, lit-locale does its own context management. We don't need to have a context at all in this space, and that's one less listener we need to attach t othe DOM. - ModalButton: A small thing, but using `nothing` instead of "html``" allows lit better control over rendering and reduces the number of actual renders of the page. - FormGroup: Provided a means to modify the aria-label, rather than stick with the just the word "Details." Specializing this field will both help users of screen readers in the future, and will allow test suites to find specific form groups now. - RadioButton: provide a more consistent interface to the RadioButton. First, we dispatch the events to the outside world, and we set the value locally so that the current `Form.ts` continues to behave as expected. We also prevent the "button lost value" event from propagating; this presents a unified select-like interface to users of the RadioButtonGroup. The current value semantics are preserved; other clients of the RadioButton do not see a change in behavior. - EventEmitter: If the custom event detail is *not* an object, do not use the object-like semantics for forwarding it; just send it as-is. - Comments: In the course of laying the groundwork for the application wizard, I throw a LOT of comments into the code, describing APIs, interfaces, class and function signatures, to better document the behavior inside and as signposts for future work. * web: permit arrays to be sent in custom events without interpolation. * actually use assignValue or rather serializeFieldRecursive Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- Makefile | 7 +- web/.eslintrc.json | 12 ++- .../ak-locale-context/ak-locale-context.ts | 3 - web/src/elements/buttons/ModalButton.ts | 6 +- web/src/elements/forms/Form.ts | 81 ++++++++++++++-- web/src/elements/forms/FormElement.ts | 6 ++ web/src/elements/forms/FormGroup.ts | 19 +++- .../elements/forms/HorizontalFormElement.ts | 24 +++++ web/src/elements/forms/ModelForm.ts | 7 ++ web/src/elements/forms/Radio.ts | 92 ++++++++++++------- .../elements/forms/stories/Radio.stories.ts | 61 ++++++++++++ web/src/elements/utils/eventEmitter.ts | 15 ++- web/src/elements/wizard/WizardFormPage.ts | 3 + web/src/elements/wizard/WizardPage.ts | 8 ++ 14 files changed, 287 insertions(+), 57 deletions(-) create mode 100644 web/src/elements/forms/stories/Radio.stories.ts diff --git a/Makefile b/Makefile index a6c4b3e69..54c53afdf 100644 --- a/Makefile +++ b/Makefile @@ -28,10 +28,13 @@ CODESPELL_ARGS = -D - -D .github/codespell-dictionary.txt \ all: lint-fix lint test gen web ## Lint, build, and test everything +HELP_WIDTH := $(shell grep -h '^[a-z][^ ]*:.*\#\#' $(MAKEFILE_LIST) 2>/dev/null | \ + cut -d':' -f1 | awk '{printf "%d\n", length}' | sort -rn | head -1) + help: ## Show this help @echo "\nSpecify a command. The choices are:\n" - @grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \ - awk 'BEGIN {FS = ":.*?## "}; {printf " \033[0;36m%-24s\033[m %s\n", $$1, $$2}' | \ + @grep -Eh '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \ + awk 'BEGIN {FS = ":.*?## "}; {printf " \033[0;36m%-$(HELP_WIDTH)s \033[m %s\n", $$1, $$2}' | \ sort @echo "" diff --git a/web/.eslintrc.json b/web/.eslintrc.json index a423627c0..fdae375c6 100644 --- a/web/.eslintrc.json +++ b/web/.eslintrc.json @@ -16,11 +16,21 @@ "sourceType": "module" }, "plugins": ["@typescript-eslint", "lit", "custom-elements"], + "ignorePatterns": ["authentik-live-tests/**"], "rules": { "indent": "off", "linebreak-style": ["error", "unix"], "quotes": ["error", "double", { "avoidEscape": true }], "semi": ["error", "always"], - "@typescript-eslint/ban-ts-comment": "off" + "@typescript-eslint/ban-ts-comment": "off", + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ] } } diff --git a/web/src/elements/ak-locale-context/ak-locale-context.ts b/web/src/elements/ak-locale-context/ak-locale-context.ts index 304ddacac..af69fbf19 100644 --- a/web/src/elements/ak-locale-context/ak-locale-context.ts +++ b/web/src/elements/ak-locale-context/ak-locale-context.ts @@ -2,13 +2,11 @@ import { EVENT_LOCALE_CHANGE } from "@goauthentik/common/constants"; import { EVENT_LOCALE_REQUEST } from "@goauthentik/common/constants"; import { customEvent, isCustomEvent } from "@goauthentik/elements/utils/customEvents"; -import { provide } from "@lit-labs/context"; import { LitElement, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { initializeLocalization } from "./configureLocale"; import type { LocaleGetter, LocaleSetter } from "./configureLocale"; -import locale from "./context"; import { DEFAULT_LOCALE, autoDetectLanguage, @@ -32,7 +30,6 @@ import { @customElement("ak-locale-context") export class LocaleContext extends LitElement { /// @attribute The text representation of the current locale */ - @provide({ context: locale }) @property({ attribute: true, type: String }) locale = DEFAULT_LOCALE; diff --git a/web/src/elements/buttons/ModalButton.ts b/web/src/elements/buttons/ModalButton.ts index 9a2b4fd0d..dfc594e2c 100644 --- a/web/src/elements/buttons/ModalButton.ts +++ b/web/src/elements/buttons/ModalButton.ts @@ -1,7 +1,7 @@ import { AKElement } from "@goauthentik/elements/Base"; import { PFSize } from "@goauthentik/elements/Spinner"; -import { CSSResult, TemplateResult, css, html } from "lit"; +import { CSSResult, TemplateResult, css, html, nothing } from "lit"; import { customElement, property } from "lit/decorators.js"; import PFBackdrop from "@patternfly/patternfly/components/Backdrop/backdrop.css"; @@ -100,7 +100,7 @@ export class ModalButton extends AKElement { }); } - renderModalInner(): TemplateResult { + renderModalInner(): TemplateResult | typeof nothing { return html``; } @@ -136,6 +136,6 @@ export class ModalButton extends AKElement { render(): TemplateResult { return html` this.onClick()}> - ${this.open ? this.renderModal() : ""}`; + ${this.open ? this.renderModal() : nothing}`; } } diff --git a/web/src/elements/forms/Form.ts b/web/src/elements/forms/Form.ts index 6c69365a7..6da2baff7 100644 --- a/web/src/elements/forms/Form.ts +++ b/web/src/elements/forms/Form.ts @@ -31,6 +31,37 @@ export interface KeyUnknown { [key: string]: unknown; } +/** + * Form + * + * The base form element for interacting with user inputs. + * + * All forms either[1] inherit from this class and implement the `renderInlineForm()` method to + * produce the actual form, or include the form in-line as a slotted element. Bizarrely, this form + * will not render at all if it's not actually in the viewport?[2] + * + * @element ak-form + * + * @slot - Where the form goes if `renderInlineForm()` returns undefined. + * @fires eventname - description + * + * @csspart partname - description + */ + +/* TODO: + * + * 1. Specialization: Separate this component into three different classes: + * - The base class + * - The "use `renderInlineForm` class + * - The slotted class. + * 2. There is already specialization-by-type throughout all of our code. + * Consider refactoring serializeForm() so that the conversions are on + * the input types, rather than here. (i.e. "Polymorphism is better than + * switch.") + * + * + */ + @customElement("ak-form") export abstract class Form extends AKElement { abstract send(data: T): Promise; @@ -61,6 +92,10 @@ export abstract class Form extends AKElement { ]; } + /** + * Called by the render function. Blocks rendering the form if the form is not within the + * viewport. + */ get isInViewport(): boolean { const rect = this.getBoundingClientRect(); return !(rect.x + rect.y + rect.width + rect.height === 0); @@ -70,6 +105,11 @@ export abstract class Form extends AKElement { return this.successMessage; } + /** + * After rendering the form, if there is both a `name` and `slug` element within the form, + * events the `name` element so that the slug will always have a slugified version of the + * `name.`. This duplicates functionality within ak-form-element-horizontal. + */ updated(): void { this.shadowRoot ?.querySelectorAll("ak-form-element-horizontal[name=name]") @@ -103,6 +143,12 @@ export abstract class Form extends AKElement { form?.reset(); } + /** + * Return the form elements that may contain filenames. Not sure why this is quite so + * convoluted. There is exactly one case where this is used: + * `./flow/stages/prompt/PromptStage: 147: case PromptTypeEnum.File.` + * Consider moving this functionality to there. + */ getFormFiles(): { [key: string]: File } { const files: { [key: string]: File } = {}; const elements = @@ -126,6 +172,10 @@ export abstract class Form extends AKElement { return files; } + /** + * Convert the elements of the form to JSON.[4] + * + */ serializeForm(): T | undefined { const elements = this.shadowRoot?.querySelectorAll( @@ -147,17 +197,21 @@ export abstract class Form extends AKElement { "multiple" in inputElement.attributes ) { const selectElement = inputElement as unknown as HTMLSelectElement; - json[element.name] = Array.from(selectElement.selectedOptions).map((v) => v.value); + this.assignValue( + inputElement, + Array.from(selectElement.selectedOptions).map((v) => v.value), + json, + ); } else if ( inputElement.tagName.toLowerCase() === "input" && inputElement.type === "date" ) { - json[element.name] = inputElement.valueAsDate; + this.assignValue(inputElement, inputElement.valueAsDate, json); } else if ( inputElement.tagName.toLowerCase() === "input" && inputElement.type === "datetime-local" ) { - json[element.name] = new Date(inputElement.valueAsNumber); + this.assignValue(inputElement, new Date(inputElement.valueAsNumber), json); } else if ( inputElement.tagName.toLowerCase() === "input" && "type" in inputElement.dataset && @@ -165,19 +219,19 @@ export abstract class Form extends AKElement { ) { // Workaround for Firefox <93, since 92 and older don't support // datetime-local fields - json[element.name] = new Date(inputElement.value); + this.assignValue(inputElement, new Date(inputElement.value), json); } else if ( inputElement.tagName.toLowerCase() === "input" && inputElement.type === "checkbox" ) { - json[element.name] = inputElement.checked; + this.assignValue(inputElement, inputElement.checked, json); } else if ("selectedFlow" in inputElement) { - json[element.name] = inputElement.value; + this.assignValue(inputElement, inputElement.value, json); } else if (inputElement.tagName.toLowerCase() === "ak-search-select") { const select = inputElement as unknown as SearchSelect; try { const value = select.toForm(); - json[element.name] = value; + this.assignValue(inputElement, value, json); } catch (exc) { if (exc instanceof PreventFormSubmit) { throw new PreventFormSubmit(exc.message, element); @@ -185,13 +239,16 @@ export abstract class Form extends AKElement { throw exc; } } else { - this.serializeFieldRecursive(inputElement, inputElement.value, json); + this.assignValue(inputElement, inputElement.value, json); } }); return json as unknown as T; } - private serializeFieldRecursive( + /** + * Recursively assign `value` into `json` while interpreting the dot-path of `element.name` + */ + private assignValue( element: HTMLInputElement, value: unknown, json: { [key: string]: unknown }, @@ -211,6 +268,12 @@ export abstract class Form extends AKElement { parent[nameElements[nameElements.length - 1]] = value; } + /** + * Serialize and send the form to the destination. The `send()` method must be overridden for + * this to work. If processing the data results in an error, we catch the error, distribute + * field-levels errors to the fields, and send the rest of them to the Notifications. + * + */ async submit(ev: Event): Promise { ev.preventDefault(); try { diff --git a/web/src/elements/forms/FormElement.ts b/web/src/elements/forms/FormElement.ts index b910caa90..bb408af88 100644 --- a/web/src/elements/forms/FormElement.ts +++ b/web/src/elements/forms/FormElement.ts @@ -9,6 +9,12 @@ import PFFormControl from "@patternfly/patternfly/components/FormControl/form-co import { ErrorDetail } from "@goauthentik/api"; +/** + * This is used in two places outside of Flow, and in both cases is used primarily to + * display content, not take input. It displays the TOPT QR code, and the static + * recovery tokens. But it's used a lot in Flow. + */ + @customElement("ak-form-element") export class FormElement extends AKElement { static get styles(): CSSResult[] { diff --git a/web/src/elements/forms/FormGroup.ts b/web/src/elements/forms/FormGroup.ts index 347a06a40..0c867d719 100644 --- a/web/src/elements/forms/FormGroup.ts +++ b/web/src/elements/forms/FormGroup.ts @@ -8,11 +8,26 @@ import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; +/** + * Form Group + * + * Mostly visual effects, with a single interaction for opening/closing the view. + * + */ + +/** + * TODO: Listen for custom events from its children about 'invalidation' events, and + * trigger the `expanded` property as needed. + */ + @customElement("ak-form-group") export class FormGroup extends AKElement { - @property({ type: Boolean }) + @property({ type: Boolean, reflect: true }) expanded = false; + @property({ type: String, attribute: "aria-label", reflect: true }) + ariaLabel = "Details"; + static get styles(): CSSResult[] { return [ PFBase, @@ -35,7 +50,7 @@ export class FormGroup extends AKElement { class="pf-c-button pf-m-plain" type="button" aria-expanded="${this.expanded}" - aria-label="Details" + aria-label=${this.ariaLabel} @click=${() => { this.expanded = !this.expanded; }} diff --git a/web/src/elements/forms/HorizontalFormElement.ts b/web/src/elements/forms/HorizontalFormElement.ts index 3709536b0..9d00327da 100644 --- a/web/src/elements/forms/HorizontalFormElement.ts +++ b/web/src/elements/forms/HorizontalFormElement.ts @@ -12,9 +12,30 @@ import PFFormControl from "@patternfly/patternfly/components/FormControl/form-co import PFBase from "@patternfly/patternfly/patternfly-base.css"; /** + * + * Horizontal Form Element Container. + * + * This element provides the interface between elements of our forms and the + * form itself. * @custom-element ak-form-element-horizontal */ +/* TODO + + * 1. Replace the "probe upward for a parent object to event" with an event handler on the parent + * group. + * 2. Updated() has a lot of that slug code again. Really, all you want is for the slug input object + * to update itself if its content seems to have been tracking some other key element. + * 3. Updated() pushes the `name` field down to the children, as if that were necessary; why isn't + * it being written on-demand when the child is written? Because it's slotted... despite there + * being very few unique uses. + * 4. There is some very specific use-case around the `writeOnly` boolean; this seems to be a case + * where the field isn't available for the user to view unless they explicitly request to be able + * to see the content; otherwise, a dead password field is shown. There are 10 uses of this + * feature. + * + */ + @customElement("ak-form-element-horizontal") export class HorizontalFormElement extends AKElement { static get styles(): CSSResult[] { @@ -56,6 +77,9 @@ export class HorizontalFormElement extends AKElement { _invalid = false; + /* If this property changes, we want to make sure the parent control is "opened" so + * that users can see the change.[1] + */ @property({ type: Boolean }) set invalid(v: boolean) { this._invalid = v; diff --git a/web/src/elements/forms/ModelForm.ts b/web/src/elements/forms/ModelForm.ts index f61a0c659..c45cc7344 100644 --- a/web/src/elements/forms/ModelForm.ts +++ b/web/src/elements/forms/ModelForm.ts @@ -5,6 +5,13 @@ import { Form } from "@goauthentik/elements/forms/Form"; import { TemplateResult, html } from "lit"; import { property } from "lit/decorators.js"; +/** + * Model form + * + * A base form that automatically tracks the server-side object (instance) + * that we're interested in. Handles loading and tracking of the instance. + */ + export abstract class ModelForm extends Form { abstract loadInstance(pk: PKT): Promise; diff --git a/web/src/elements/forms/Radio.ts b/web/src/elements/forms/Radio.ts index 55b60a3ac..3d82ca4cb 100644 --- a/web/src/elements/forms/Radio.ts +++ b/web/src/elements/forms/Radio.ts @@ -1,7 +1,9 @@ import { AKElement } from "@goauthentik/elements/Base"; +import { CustomEmitterElement } from "@goauthentik/elements/utils/eventEmitter"; -import { CSSResult, TemplateResult, css, html } from "lit"; +import { CSSResult, TemplateResult, css, html, nothing } from "lit"; import { customElement, property } from "lit/decorators.js"; +import { map } from "lit/directives/map.js"; import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFRadio from "@patternfly/patternfly/components/Radio/radio.css"; @@ -15,7 +17,7 @@ export interface RadioOption { } @customElement("ak-radio") -export class Radio extends AKElement { +export class Radio extends CustomEmitterElement(AKElement) { @property({ attribute: false }) options: RadioOption[] = []; @@ -36,44 +38,70 @@ export class Radio extends AKElement { var(--pf-c-form--m-horizontal__group-label--md--PaddingTop) * 1.3 ); } + .pf-c-radio label, + .pf-c-radio span { + user-select: none; + } `, ]; } - render(): TemplateResult { + constructor() { + super(); + this.renderRadio = this.renderRadio.bind(this); + this.buildChangeHandler = this.buildChangeHandler.bind(this); + } + + // Set the value if it's not set already. Property changes inside the `willUpdate()` method do + // not trigger an element update. + willUpdate() { if (!this.value) { - const def = this.options.filter((opt) => opt.default); - if (def.length > 0) { - this.value = def[0].value; + const maybeDefault = this.options.filter((opt) => opt.default); + if (maybeDefault.length > 0) { + this.value = maybeDefault[0].value; } } + } + + // When a user clicks on `type="radio"`, *two* events happen in rapid succession: the original + // radio loses its setting, and the selected radio gains its setting. We want radio buttons to + // present a unified event interface, so we prevent the event from triggering if the value is + // already set. + buildChangeHandler(option: RadioOption) { + return (ev: Event) => { + // This is a controlled input. Stop the native event from escaping or affecting the + // value. We'll do that ourselves. + ev.stopPropagation(); + ev.preventDefault(); + this.value = option.value; + this.dispatchCustomEvent("change", option.value); + this.dispatchCustomEvent("input", option.value); + }; + } + + renderRadio(option: RadioOption) { + const elId = `${this.name}-${option.value}`; + const handler = this.buildChangeHandler(option); + return html`
+ + + ${option.description + ? html`${option.description}` + : nothing} +
`; + } + + render() { return html`
- ${this.options.map((opt) => { - const elId = `${this.name}-${opt.value}`; - return html`
- { - this.value = opt.value; - this.dispatchEvent( - new CustomEvent("change", { - bubbles: true, - composed: true, - detail: opt.value, - }), - ); - }} - .checked=${opt.value === this.value} - /> - - ${opt.description - ? html`${opt.description}` - : html``} -
`; - })} + ${map(this.options, this.renderRadio)}
`; } } + +export default Radio; diff --git a/web/src/elements/forms/stories/Radio.stories.ts b/web/src/elements/forms/stories/Radio.stories.ts new file mode 100644 index 000000000..20f32f922 --- /dev/null +++ b/web/src/elements/forms/stories/Radio.stories.ts @@ -0,0 +1,61 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../Radio"; +import Radio from "../Radio"; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const metadata: Meta> = { + title: "Elements / Basic Radio", + component: "ak-radio", + parameters: { + docs: { + description: { + component: "Our stylized radio button", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
+ + + ${testItem} +
    +
    `; + +const testOptions = [ + { label: "Option One", description: html`This is option one.`, value: 1 }, + { label: "Option Two", description: html`This is option two.`, value: 2 }, + { label: "Option Three", description: html`This is option three.`, value: 3 }, +]; + +export const BasicRadioElement = () => { + const displayChange = (ev: InputEvent) => { + document.getElementById("radio-message-pad")!.innerText = `Value selected: ${JSON.stringify( + (ev.target as HTMLInputElement)!.value, + null, + 2, + )}`; + }; + + return container( + html``, + ); +}; diff --git a/web/src/elements/utils/eventEmitter.ts b/web/src/elements/utils/eventEmitter.ts index 9afa8be3b..54b472825 100644 --- a/web/src/elements/utils/eventEmitter.ts +++ b/web/src/elements/utils/eventEmitter.ts @@ -9,16 +9,21 @@ export const isCustomEvent = (v: any): v is CustomEvent => export function CustomEmitterElement>(superclass: T) { return class EmmiterElementHandler extends superclass { - dispatchCustomEvent(eventName: string, detail = {}, options = {}) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + dispatchCustomEvent(eventName: string, detail: any = {}, options = {}) { + const fullDetail = + typeof detail === "object" && !Array.isArray(detail) + ? { + target: this, + ...detail, + } + : detail; this.dispatchEvent( new CustomEvent(eventName, { composed: true, bubbles: true, ...options, - detail: { - target: this, - ...detail, - }, + detail: fullDetail, }), ); } diff --git a/web/src/elements/wizard/WizardFormPage.ts b/web/src/elements/wizard/WizardFormPage.ts index 2d3e5b3b4..60b386545 100644 --- a/web/src/elements/wizard/WizardFormPage.ts +++ b/web/src/elements/wizard/WizardFormPage.ts @@ -19,6 +19,9 @@ export abstract class WizardForm extends Form { @property({ attribute: false }) nextDataCallback!: (data: KeyUnknown) => Promise; + /* Override the traditional behavior of the form and instead simply serialize the form and push + * it's contents to the next page. + */ async submit(): Promise { const data = this.serializeForm(); if (!data) { diff --git a/web/src/elements/wizard/WizardPage.ts b/web/src/elements/wizard/WizardPage.ts index 6fdee111f..3a6be581b 100644 --- a/web/src/elements/wizard/WizardPage.ts +++ b/web/src/elements/wizard/WizardPage.ts @@ -21,10 +21,18 @@ export class WizardPage extends AKElement { return this.parentElement as Wizard; } + /** + * Called when this is the page brought into view + */ activeCallback: () => Promise = async () => { this.host.isValid = false; }; + /** + * Called when the `next` button on the wizard is pressed. For forms, results in the submission + * of the current form to the back-end before being allowed to proceed to the next page. This is + * sub-optimal if we want to collect multiple bits of data before finishing the whole course. + */ nextCallback: () => Promise = async () => { return true; }; From 0cf949f362259bbb359b34e70c11639cea23b62e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Oct 2023 12:26:11 +0200 Subject: [PATCH 02/18] core: bump coverage from 7.3.1 to 7.3.2 (#7047) Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.1 to 7.3.2. - [Release notes](https://github.com/nedbat/coveragepy/releases) - [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst) - [Commits](https://github.com/nedbat/coveragepy/compare/7.3.1...7.3.2) --- updated-dependencies: - dependency-name: coverage dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 106 ++++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/poetry.lock b/poetry.lock index 11d8a6bce..cdfa8c35f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -921,63 +921,63 @@ files = [ [[package]] name = "coverage" -version = "7.3.1" +version = "7.3.2" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, + {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, + {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, + {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, + {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, + {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, + {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, + {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, + {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, + {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, + {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, + {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, + {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, ] [package.extras] From a1353d567b44d37dc6a3dcd4ba993d7b488880af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Oct 2023 12:26:21 +0200 Subject: [PATCH 03/18] core: bump codespell from 2.2.5 to 2.2.6 (#7046) Bumps [codespell](https://github.com/codespell-project/codespell) from 2.2.5 to 2.2.6. - [Release notes](https://github.com/codespell-project/codespell/releases) - [Commits](https://github.com/codespell-project/codespell/compare/v2.2.5...v2.2.6) --- updated-dependencies: - dependency-name: codespell dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index cdfa8c35f..9d1390a4f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -882,17 +882,17 @@ testing = ["pytest (>=7.2.1)", "pytest-cov (>=4.0.0)", "tox (>=4.4.3)"] [[package]] name = "codespell" -version = "2.2.5" +version = "2.2.6" description = "Codespell" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "codespell-2.2.5-py3-none-any.whl", hash = "sha256:efa037f54b73c84f7bd14ce8e853d5f822cdd6386ef0ff32e957a3919435b9ec"}, - {file = "codespell-2.2.5.tar.gz", hash = "sha256:6d9faddf6eedb692bf80c9a94ec13ab4f5fb585aabae5f3750727148d7b5be56"}, + {file = "codespell-2.2.6-py3-none-any.whl", hash = "sha256:9ee9a3e5df0990604013ac2a9f22fa8e57669c827124a2e961fe8a1da4cacc07"}, + {file = "codespell-2.2.6.tar.gz", hash = "sha256:a8c65d8eb3faa03deabab6b3bbe798bea72e1799c7e9e955d57eca4096abcff9"}, ] [package.extras] -dev = ["Pygments", "build", "chardet", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli"] +dev = ["Pygments", "build", "chardet", "pre-commit", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli", "twine"] hard-encoding-detection = ["chardet"] toml = ["tomli"] types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency"] From a0f607b5acdf37c34260a30eab424dd272b897f0 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 3 Oct 2023 14:10:10 +0200 Subject: [PATCH 04/18] web/flows: bottom-align about text on flows page (#7051) * web/flows: bottom-align about text on flows page Signed-off-by: Jens Langhammer * fix a bunch of typos Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/lib/expression/evaluator.py | 2 +- authentik/outposts/models.py | 2 +- authentik/sources/oauth/types/okta.py | 2 +- authentik/sources/oauth/types/twitter.py | 2 +- .../0004_authenticatorsmsstage_verify_only_and_more.py | 2 +- authentik/stages/authenticator_sms/models.py | 2 +- blueprints/schema.json | 2 +- cmd/server/server.go | 2 +- lifecycle/gunicorn.conf.py | 6 +++--- locale/en/LC_MESSAGES/django.po | 2 +- locale/fr/LC_MESSAGES/django.po | 6 +++--- locale/nl/LC_MESSAGES/django.po | 6 +++--- locale/zh-Hans/LC_MESSAGES/django.po | 6 +++--- locale/zh_CN/LC_MESSAGES/django.po | 6 +++--- schema.yml | 6 +++--- web/src/admin/providers/proxy/ProxyProviderForm.ts | 2 +- web/src/common/styles/authentik.css | 2 +- .../item.md | 2 +- website/developer-docs/blueprints/v1/structure.md | 2 +- website/developer-docs/docs/templates/index.md | 2 +- website/docs/releases/2021/v2021.8.md | 2 +- website/docs/releases/2022/v2022.9.md | 2 +- .../integrations/services/github-enterprise-cloud/index.md | 2 +- website/integrations/services/github-organization/index.md | 2 +- website/integrations/services/organizr/index.md | 2 +- website/integrations/services/proftpd/index.md | 2 +- 26 files changed, 38 insertions(+), 38 deletions(-) diff --git a/authentik/lib/expression/evaluator.py b/authentik/lib/expression/evaluator.py index 7163dbf74..22c6532da 100644 --- a/authentik/lib/expression/evaluator.py +++ b/authentik/lib/expression/evaluator.py @@ -141,7 +141,7 @@ class BaseEvaluator: """Create event with supplied data and try to extract as much relevant data from the context""" context = self._context.copy() - # If the result was a complex variable, we don't want to re-use it + # If the result was a complex variable, we don't want to reuse it context.pop("result", None) context.pop("handler", None) event_kwargs = context diff --git a/authentik/outposts/models.py b/authentik/outposts/models.py index 20ffa10a0..3caae7e73 100644 --- a/authentik/outposts/models.py +++ b/authentik/outposts/models.py @@ -380,7 +380,7 @@ class Outpost(SerializerModel, ManagedModel): managed=managed, ) except IntegrityError: - # Integrity error happens mostly when managed is re-used + # Integrity error happens mostly when managed is reused Token.objects.filter(managed=managed).delete() Token.objects.filter(identifier=self.token_identifier).delete() return self.token diff --git a/authentik/sources/oauth/types/okta.py b/authentik/sources/oauth/types/okta.py index c1aa3880a..8a305bce7 100644 --- a/authentik/sources/oauth/types/okta.py +++ b/authentik/sources/oauth/types/okta.py @@ -21,7 +21,7 @@ class OktaOAuth2Callback(OAuthCallback): """Okta OAuth2 Callback""" # Okta has the same quirk as azure and throws an error if the access token - # is set via query parameter, so we re-use the azure client + # is set via query parameter, so we reuse the azure client # see https://github.com/goauthentik/authentik/issues/1910 client_class = UserprofileHeaderAuthClient diff --git a/authentik/sources/oauth/types/twitter.py b/authentik/sources/oauth/types/twitter.py index da1d306da..dc9909adb 100644 --- a/authentik/sources/oauth/types/twitter.py +++ b/authentik/sources/oauth/types/twitter.py @@ -16,7 +16,7 @@ class TwitterClient(UserprofileHeaderAuthClient): the access token endpoint for some reason.""" # Twitter has the same quirk as azure and throws an error if the access token - # is set via query parameter, so we re-use the azure client + # is set via query parameter, so we reuse the azure client # see https://github.com/goauthentik/authentik/issues/1910 def get_access_token(self, **request_kwargs) -> Optional[dict[str, Any]]: diff --git a/authentik/stages/authenticator_sms/migrations/0004_authenticatorsmsstage_verify_only_and_more.py b/authentik/stages/authenticator_sms/migrations/0004_authenticatorsmsstage_verify_only_and_more.py index fd4af87cd..233765044 100644 --- a/authentik/stages/authenticator_sms/migrations/0004_authenticatorsmsstage_verify_only_and_more.py +++ b/authentik/stages/authenticator_sms/migrations/0004_authenticatorsmsstage_verify_only_and_more.py @@ -17,7 +17,7 @@ class Migration(migrations.Migration): help_text=( "When enabled, the Phone number is only used during enrollment to verify the" " users authenticity. Only a hash of the phone number is saved to ensure it is" - " not re-used in the future." + " not reused in the future." ), ), ), diff --git a/authentik/stages/authenticator_sms/models.py b/authentik/stages/authenticator_sms/models.py index 7a9658964..042cbd698 100644 --- a/authentik/stages/authenticator_sms/models.py +++ b/authentik/stages/authenticator_sms/models.py @@ -56,7 +56,7 @@ class AuthenticatorSMSStage(ConfigurableStage, FriendlyNamedStage, Stage): help_text=_( "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is " - "not re-used in the future." + "not reused in the future." ), ) diff --git a/blueprints/schema.json b/blueprints/schema.json index 2ddec653d..7f7757a28 100644 --- a/blueprints/schema.json +++ b/blueprints/schema.json @@ -5884,7 +5884,7 @@ "verify_only": { "type": "boolean", "title": "Verify only", - "description": "When enabled, the Phone number is only used during enrollment to verify the users authenticity. Only a hash of the phone number is saved to ensure it is not re-used in the future." + "description": "When enabled, the Phone number is only used during enrollment to verify the users authenticity. Only a hash of the phone number is saved to ensure it is not reused in the future." }, "mapping": { "type": "integer", diff --git a/cmd/server/server.go b/cmd/server/server.go index 8e3c3f28b..f12629190 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -96,7 +96,7 @@ func attemptProxyStart(ws *web.WebServer, u *url.URL) { continue } // Init tenant_tls here too since it requires an API Client, - // so we just re-use the same one as the outpost uses + // so we just reuse the same one as the outpost uses tw := tenant_tls.NewWatcher(ac.Client) go tw.Start() ws.TenantTLS = tw diff --git a/lifecycle/gunicorn.conf.py b/lifecycle/gunicorn.conf.py index b26e23fb0..2ae3d8ca8 100644 --- a/lifecycle/gunicorn.conf.py +++ b/lifecycle/gunicorn.conf.py @@ -65,7 +65,7 @@ def worker_exit(server: "Arbiter", worker: DjangoUvicornWorker): def on_starting(server: "Arbiter"): - """Attach a set of IDs that can be temporarily re-used. + """Attach a set of IDs that can be temporarily reused. Used on reloads when each worker exists twice.""" server._worker_id_overload = set() @@ -79,7 +79,7 @@ def nworkers_changed(server: "Arbiter", new_value, old_value): def _next_worker_id(server: "Arbiter"): - """If there are IDs open for re-use, take one. Else look for a free one.""" + """If there are IDs open for reuse, take one. Else look for a free one.""" if server._worker_id_overload: return server._worker_id_overload.pop() @@ -90,7 +90,7 @@ def _next_worker_id(server: "Arbiter"): def on_reload(server: "Arbiter"): - """Add a full set of ids into overload so it can be re-used once.""" + """Add a full set of ids into overload so it can be reused once.""" server._worker_id_overload = set(range(1, server.cfg.workers + 1)) diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index b3f311e51..597f17cc9 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -1857,7 +1857,7 @@ msgstr "" msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is " -"not re-used in the future." +"not reused in the future." msgstr "" #: authentik/stages/authenticator_sms/models.py:68 diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index a9ea8f75d..06b76119d 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Bastien Germond, 2022 # Phorcys, 2022 @@ -12,7 +12,7 @@ # Kyllian Delaye-Maillot, 2023 # Manuel Viens, 2023 # Marc Schmitt, 2023 -# +# #, fuzzy msgid "" msgstr "" @@ -2074,7 +2074,7 @@ msgstr "Appareils Duo" msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" -" not re-used in the future." +" not reused in the future." msgstr "" "Si activé, le numéro de téléphone n'est utilisé que durant l'inscription " "pour vérifier l'authenticité de l'utilisateur. Seul un hachage du numéro de " diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po index d4bdf371a..4047b1c06 100644 --- a/locale/nl/LC_MESSAGES/django.po +++ b/locale/nl/LC_MESSAGES/django.po @@ -2,14 +2,14 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Dany Sluijk, 2022 # Alex Kruidenberg , 2022 # Melvin Snijders , 2023 # Michel Heusschen, 2023 # ServusNL, 2023 -# +# #, fuzzy msgid "" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "Duo-apparaten" msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" -" not re-used in the future." +" not reused in the future." msgstr "" "Indien ingeschakeld, wordt het telefoonnummer alleen gebruikt tijdens " "inschrijving om de authenticiteit van de gebruiker te verifiëren. Alleen een" diff --git a/locale/zh-Hans/LC_MESSAGES/django.po b/locale/zh-Hans/LC_MESSAGES/django.po index 65ef83e07..3985e4664 100644 --- a/locale/zh-Hans/LC_MESSAGES/django.po +++ b/locale/zh-Hans/LC_MESSAGES/django.po @@ -2,13 +2,13 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Chen Zhikai, 2022 # 刘松, 2022 # Jens L. , 2023 # deluxghost, 2023 -# +# #, fuzzy msgid "" msgstr "" @@ -1893,7 +1893,7 @@ msgstr "Duo 设备" msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" -" not re-used in the future." +" not reused in the future." msgstr "启用时,电话号码仅在注册期间用于验证用户的真实性。仅保存电话号码的哈希,以确保将来不会重复使用。" #: authentik/stages/authenticator_sms/models.py:68 diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index 2aeca0eda..43bfab52c 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/LC_MESSAGES/django.po @@ -2,13 +2,13 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Chen Zhikai, 2022 # 刘松, 2022 # Jens L. , 2023 # deluxghost, 2023 -# +# #, fuzzy msgid "" msgstr "" @@ -1893,7 +1893,7 @@ msgstr "Duo 设备" msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" -" not re-used in the future." +" not reused in the future." msgstr "启用时,电话号码仅在注册期间用于验证用户的真实性。仅保存电话号码的哈希,以确保将来不会重复使用。" #: authentik/stages/authenticator_sms/models.py:68 diff --git a/schema.yml b/schema.yml index 616397b3e..5b682a7ff 100644 --- a/schema.yml +++ b/schema.yml @@ -27436,7 +27436,7 @@ components: type: boolean description: When enabled, the Phone number is only used during enrollment to verify the users authenticity. Only a hash of the phone number is saved - to ensure it is not re-used in the future. + to ensure it is not reused in the future. mapping: type: string format: uuid @@ -27493,7 +27493,7 @@ components: type: boolean description: When enabled, the Phone number is only used during enrollment to verify the users authenticity. Only a hash of the phone number is saved - to ensure it is not re-used in the future. + to ensure it is not reused in the future. mapping: type: string format: uuid @@ -34530,7 +34530,7 @@ components: type: boolean description: When enabled, the Phone number is only used during enrollment to verify the users authenticity. Only a hash of the phone number is saved - to ensure it is not re-used in the future. + to ensure it is not reused in the future. mapping: type: string format: uuid diff --git a/web/src/admin/providers/proxy/ProxyProviderForm.ts b/web/src/admin/providers/proxy/ProxyProviderForm.ts index 89bbc61af..891731e77 100644 --- a/web/src/admin/providers/proxy/ProxyProviderForm.ts +++ b/web/src/admin/providers/proxy/ProxyProviderForm.ts @@ -202,7 +202,7 @@ export class ProxyProviderFormPage extends ModelForm { case ProxyMode.ForwardSingle: return html`

    ${msg( - "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you).", + "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you).", )}

    form > input { .pf-c-login__footer { flex-grow: 2; display: flex; - justify-content: start; + justify-content: end; flex-direction: column; } .pf-c-login__footer ul.pf-c-list.pf-m-inline { diff --git a/website/blog/2023-03-16-authentik-on-django-500-slower-to-run-but-200-faster-to-build/item.md b/website/blog/2023-03-16-authentik-on-django-500-slower-to-run-but-200-faster-to-build/item.md index 45e0814b9..06ecc03fc 100644 --- a/website/blog/2023-03-16-authentik-on-django-500-slower-to-run-but-200-faster-to-build/item.md +++ b/website/blog/2023-03-16-authentik-on-django-500-slower-to-run-but-200-faster-to-build/item.md @@ -155,7 +155,7 @@ According to the Microsoft team [contributing to Python](https://devblogs.micros I know migration isn’t fun but when you’re making tradeoffs, it’s worth keeping it in mind as a future option. If the choice is to build now and migrate later instead of never building at all, I’m going to choose migration every time. -If we start running into truly significant performance issues – and I emphasize _if_ – we can always migrate critical parts of the application to a different language. This will of course be fully transparent to anyone running authentik, and I’d like to think of it as a last-resort, if we’ve already done all the opitmization possible. +If we start running into truly significant performance issues – and I emphasize _if_ – we can always migrate critical parts of the application to a different language. This will of course be fully transparent to anyone running authentik, and I’d like to think of it as a last-resort, if we’ve already done all the optimization possible. ### Architect your application well diff --git a/website/developer-docs/blueprints/v1/structure.md b/website/developer-docs/blueprints/v1/structure.md index c05a0a9a7..ee2f3e74b 100644 --- a/website/developer-docs/blueprints/v1/structure.md +++ b/website/developer-docs/blueprints/v1/structure.md @@ -37,7 +37,7 @@ entries: # delete the object state: present # An optional list of boolean-like conditions. If all conditions match (or - # no condiitons are provided) the entry will be evaluated and acted upon + # no conditions are provided) the entry will be evaluated and acted upon # as normal. Otherwise, the entry is skipped as if not defined at all. # Each condition will be evaluated in Python to its boolean representation # bool(). Furthermore, complex conditions can be built using diff --git a/website/developer-docs/docs/templates/index.md b/website/developer-docs/docs/templates/index.md index 661e3d87f..97dcfec5b 100644 --- a/website/developer-docs/docs/templates/index.md +++ b/website/developer-docs/docs/templates/index.md @@ -2,7 +2,7 @@ title: "Templates" --- -In technical docuemntation, there are document "types" (similar to how there are data types). +In technical documentation, there are document "types" (similar to how there are data types). The most common types are: diff --git a/website/docs/releases/2021/v2021.8.md b/website/docs/releases/2021/v2021.8.md index f2663276e..6885ce930 100644 --- a/website/docs/releases/2021/v2021.8.md +++ b/website/docs/releases/2021/v2021.8.md @@ -43,7 +43,7 @@ slug: "/releases/2021.8" - core: add new token intent and auth backend (#1284) - core: add token tests for invalid intent and token auth - core: fix token intent not defaulting correctly -- core: handle error when ?for_user is not numberical +- core: handle error when ?for_user is not numerical - lib: move id and key generators to lib (#1286) - lifecycle: rename to ak - outpost: handle non-existent permission diff --git a/website/docs/releases/2022/v2022.9.md b/website/docs/releases/2022/v2022.9.md index bb538f941..ba9c6bd9a 100644 --- a/website/docs/releases/2022/v2022.9.md +++ b/website/docs/releases/2022/v2022.9.md @@ -244,7 +244,7 @@ Changed response : **200 OK** - providers/oauth2: add x5c (#3556) - providers/proxy: fix routing based on signature in traefik and caddy - root: make redis persistent in docker-compose -- root: re-use custom log helper from config and cleanup duplicate functions +- root: reuse custom log helper from config and cleanup duplicate functions - root: shorten outpost docker healthcheck intervals - sources/ldap: start_tls before binding but without reading server info - sources/oauth: use GitHub's dedicated email API when no public email address is configured diff --git a/website/integrations/services/github-enterprise-cloud/index.md b/website/integrations/services/github-enterprise-cloud/index.md index 972968f82..bb8bb52d4 100644 --- a/website/integrations/services/github-enterprise-cloud/index.md +++ b/website/integrations/services/github-enterprise-cloud/index.md @@ -48,6 +48,6 @@ On this page: ![Screenshot showing populated GitHub enterprise SAML settings](ghec_saml_settings.png) -Once these fields are populated, you can use the `Test SAML configuation` button to test the authentication flow. If the flow completes successfully, you will see a green tick next to the Test button. +Once these fields are populated, you can use the `Test SAML configuration` button to test the authentication flow. If the flow completes successfully, you will see a green tick next to the Test button. Scroll down to hit the `Save` button below. diff --git a/website/integrations/services/github-organization/index.md b/website/integrations/services/github-organization/index.md index edaf83c39..3dee1f00d 100644 --- a/website/integrations/services/github-organization/index.md +++ b/website/integrations/services/github-organization/index.md @@ -42,7 +42,7 @@ On this page: - For `Public certificate`, paste the _full_ signing certificate into this field. - Verify that the `Signature method` and `Digest method` match your SAML provider settings in authentik. -Once these fields are populated, you can use the `Test SAML configuation` button to test the authentication flow. If the flow completes successfully, you will see a green tick next to the Test button. +Once these fields are populated, you can use the `Test SAML configuration` button to test the authentication flow. If the flow completes successfully, you will see a green tick next to the Test button. Scroll down to hit the `Save` button below. diff --git a/website/integrations/services/organizr/index.md b/website/integrations/services/organizr/index.md index 5b93dcf5a..6e94f2110 100644 --- a/website/integrations/services/organizr/index.md +++ b/website/integrations/services/organizr/index.md @@ -19,7 +19,7 @@ The following placeholders will be used: - `organizr.company` is the FQDN of the Service install. - `authentik.company` is the FQDN of the authentik install. -Create a new user account _(or re-use an existing)_ for organizr to use for LDAP bind under _Directory_ -> _Users_ -> _Create_, in this example called `ldapservice`. +Create a new user account _(or reuse an existing)_ for organizr to use for LDAP bind under _Directory_ -> _Users_ -> _Create_, in this example called `ldapservice`. Note the DN of this user will be `cn=ldapservice,ou=users,dc=ldap,dc=goauthentik,dc=io` diff --git a/website/integrations/services/proftpd/index.md b/website/integrations/services/proftpd/index.md index 1030d37cf..63bb10a04 100644 --- a/website/integrations/services/proftpd/index.md +++ b/website/integrations/services/proftpd/index.md @@ -22,7 +22,7 @@ The following placeholders will be used: ### Step 1 - Service account -Create a new user account _(or re-use an existing one)_ for ProFTPD to use for LDAP bind under _Directory_ -> _Users_ -> _Create_ and give the account a name, such as `ldapservice`. +Create a new user account _(or reuse an existing one)_ for ProFTPD to use for LDAP bind under _Directory_ -> _Users_ -> _Create_ and give the account a name, such as `ldapservice`. :::note On default provider settings, the DN of this user will be `cn=ldapservice,ou=users,dc=ldap,dc=goauthentik,dc=io` From 962eb8da3c6ad5f2a37c93f10ad27b772c906e10 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Tue, 3 Oct 2023 12:29:31 +0000 Subject: [PATCH 05/18] web: bump API Client version (#7052) Signed-off-by: GitHub Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 6f7e481be..d3dc025f6 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -17,7 +17,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.4.2", "@fortawesome/fontawesome-free": "^6.4.2", - "@goauthentik/api": "^2023.8.3-1694987749", + "@goauthentik/api": "^2023.8.3-1696335052", "@lit-labs/context": "^0.4.1", "@lit-labs/task": "^3.0.2", "@lit/localize": "^0.11.4", @@ -2882,9 +2882,9 @@ } }, "node_modules/@goauthentik/api": { - "version": "2023.8.3-1694987749", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.8.3-1694987749.tgz", - "integrity": "sha512-94r8YMtuJsqIO8iel7FujXU+5qGTgIF4G0PHz2xBNEbI6cfNUFdGHwbRue2ZlaLbhEVgglXqaS8iQdQfCQ3ocA==" + "version": "2023.8.3-1696335052", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.8.3-1696335052.tgz", + "integrity": "sha512-MFgMdkk8NVvJfgU9RfZlP8ypUjH5xhBtnannnFWDJLuvsYxyyaD6Rbj2cLE2KSaIGHEpbsmzeW3eUy7ZRjpKOw==" }, "node_modules/@hcaptcha/types": { "version": "1.0.3", diff --git a/web/package.json b/web/package.json index ba662e6c4..69bc8ae9c 100644 --- a/web/package.json +++ b/web/package.json @@ -35,7 +35,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.4.2", "@fortawesome/fontawesome-free": "^6.4.2", - "@goauthentik/api": "^2023.8.3-1694987749", + "@goauthentik/api": "^2023.8.3-1696335052", "@lit-labs/context": "^0.4.1", "@lit-labs/task": "^3.0.2", "@lit/localize": "^0.11.4", From 03287936e9f03ad2414bf2b486c8b9b3fb1908eb Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 3 Oct 2023 15:32:48 +0200 Subject: [PATCH 06/18] web/flows: fix plex login not opening new tab on mobile safari (#7050) Signed-off-by: Jens Langhammer --- web/src/flow/FlowExecutor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/flow/FlowExecutor.ts b/web/src/flow/FlowExecutor.ts index 6c23448d3..cbe08a77a 100644 --- a/web/src/flow/FlowExecutor.ts +++ b/web/src/flow/FlowExecutor.ts @@ -11,6 +11,8 @@ import { WebsocketClient } from "@goauthentik/common/ws"; import { Interface } from "@goauthentik/elements/Base"; import "@goauthentik/elements/LoadingOverlay"; import "@goauthentik/elements/ak-locale-context"; +import "@goauthentik/flow/sources/apple/AppleLoginInit"; +import "@goauthentik/flow/sources/plex/PlexLoginInit"; import "@goauthentik/flow/stages/FlowErrorStage"; import "@goauthentik/flow/stages/RedirectStage"; import { StageHost } from "@goauthentik/flow/stages/base"; @@ -353,13 +355,11 @@ export class FlowExecutor extends Interface implements StageHost { >`; // Sources case "ak-source-plex": - await import("@goauthentik/flow/sources/plex/PlexLoginInit"); return html``; case "ak-source-oauth-apple": - await import("@goauthentik/flow/sources/apple/AppleLoginInit"); return html` Date: Tue, 3 Oct 2023 16:39:11 +0100 Subject: [PATCH 07/18] Add meta description to black box blog post (#7049) Signed-off-by: Rebecca Dodd <82806852+rebeccadee@users.noreply.github.com> --- .../item.md | 1 + 1 file changed, 1 insertion(+) diff --git a/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md b/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md index 74cdca36f..31803e039 100644 --- a/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md +++ b/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md @@ -1,5 +1,6 @@ --- title: Black box security software can’t keep up with open source +description: "There will always be bugs and vulnerabilities in software. Accepting that, which distribution model gives you more confidence and flexibility?" slug: 2023-09-14-black-box-security-software-cant-keep-up-with-open-source authors: - name: Jens Langhammer From a2e5203b85e3af75a26ce7e3e8d4bfd13fd92fd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:05:37 +0200 Subject: [PATCH 08/18] core: bump goauthentik.io/api/v3 from 3.2023083.3 to 3.2023083.4 (#7061) Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2023083.3 to 3.2023083.4. - [Release notes](https://github.com/goauthentik/client-go/releases) - [Commits](https://github.com/goauthentik/client-go/compare/v3.2023083.3...v3.2023083.4) --- updated-dependencies: - dependency-name: goauthentik.io/api/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2ede50945..a154977b2 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 - goauthentik.io/api/v3 v3.2023083.3 + goauthentik.io/api/v3 v3.2023083.4 golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.12.0 golang.org/x/sync v0.3.0 diff --git a/go.sum b/go.sum index d47aa207d..d5a3b1b62 100644 --- a/go.sum +++ b/go.sum @@ -346,8 +346,8 @@ go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvx go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -goauthentik.io/api/v3 v3.2023083.3 h1:nfHJ5/I/jZJ3o7BKnP5hZ8tYV4kkkWw/+5GkBCQ5UkE= -goauthentik.io/api/v3 v3.2023083.3/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= +goauthentik.io/api/v3 v3.2023083.4 h1:WIi2+LFfBTvhxcbH/WqvhY/4EsX8bAN6mrPODq02B/w= +goauthentik.io/api/v3 v3.2023083.4/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= From 6bd1df29012f6a07559c62b348ff16fa1725edcb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:05:50 +0200 Subject: [PATCH 09/18] core: bump duo-client from 5.0.1 to 5.1.0 (#7062) Bumps [duo-client](https://github.com/duosecurity/duo_client_python) from 5.0.1 to 5.1.0. - [Release notes](https://github.com/duosecurity/duo_client_python/releases) - [Commits](https://github.com/duosecurity/duo_client_python/compare/5.0.1...5.1.0) --- updated-dependencies: - dependency-name: duo-client dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9d1390a4f..ddb61bb28 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1367,13 +1367,13 @@ files = [ [[package]] name = "duo-client" -version = "5.0.1" +version = "5.1.0" description = "Reference client for Duo Security APIs" optional = false python-versions = "*" files = [ - {file = "duo_client-5.0.1-py2.py3-none-any.whl", hash = "sha256:8159b93a516979ae18e985bbca46ba3bf8ec27cd7ff6db464b37fa667d49c9b5"}, - {file = "duo_client-5.0.1.tar.gz", hash = "sha256:a13c47b0cb91e3a0d33b2f99271a0a6c2de17f92dd0ad4c649a366a0533db0c7"}, + {file = "duo_client-5.1.0-py2.py3-none-any.whl", hash = "sha256:5dd6e7a526ea79952c078e5a5be93a1d70d36e685fad9478188156587e85b571"}, + {file = "duo_client-5.1.0.tar.gz", hash = "sha256:0dd8b7223a105beca4fdbfa71d400e813d9f33250c3da5fd63e437fb571b55f2"}, ] [package.dependencies] From ecb614765adfbbc4ba7bddbd9f4bdad707a9153f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:06:15 +0200 Subject: [PATCH 10/18] web: bump the wdio group in /tests/wdio with 2 updates (#7063) Bumps the wdio group in /tests/wdio with 2 updates: [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli) and [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner). Updates `@wdio/cli` from 8.16.18 to 8.16.19 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.16.19/packages/wdio-cli) Updates `@wdio/local-runner` from 8.16.18 to 8.16.19 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.16.19/packages/wdio-local-runner) --- updated-dependencies: - dependency-name: "@wdio/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: wdio - dependency-name: "@wdio/local-runner" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: wdio ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 636 ++++------------------------------- tests/wdio/package.json | 4 +- 2 files changed, 62 insertions(+), 578 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 68c5f9f00..78a562d24 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -9,8 +9,8 @@ "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", - "@wdio/cli": "^8.16.18", - "@wdio/local-runner": "^8.16.18", + "@wdio/cli": "^8.16.19", + "@wdio/local-runner": "^8.16.19", "@wdio/mocha-framework": "^8.16.17", "@wdio/spec-reporter": "^8.16.17", "eslint": "^8.49.0", @@ -1067,14 +1067,14 @@ } }, "node_modules/@wdio/cli": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.16.18.tgz", - "integrity": "sha512-BqVFyotsbm8fj2I3zGtCCdr1PozfDFO93uqYRO5EUMs3AFRuPbQXNmqybQhv/tPwolmajDYgFNA/ygyZqVlmzw==", + "version": "8.16.19", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.16.19.tgz", + "integrity": "sha512-MGpRrb56kp0n+r/Z0KMe0o4O1dFgBhhjt/O4HC5l0WcPuf5Ew19w1Nr8PoSZ5XqXklGJi0woFh68YZA1MziInA==", "dev": true, "dependencies": { "@types/node": "^20.1.1", "@wdio/config": "8.16.17", - "@wdio/globals": "8.16.18", + "@wdio/globals": "8.16.19", "@wdio/logger": "8.16.17", "@wdio/protocols": "8.16.5", "@wdio/types": "8.16.12", @@ -1093,7 +1093,7 @@ "lodash.union": "^4.6.0", "read-pkg-up": "10.1.0", "recursive-readdir": "^2.2.3", - "webdriverio": "8.16.18", + "webdriverio": "8.16.19", "yargs": "^17.7.2", "yarn-install": "^1.0.0" }, @@ -1104,7 +1104,19 @@ "node": "^16.13 || >=18" } }, - "node_modules/@wdio/cli/node_modules/@wdio/config": { + "node_modules/@wdio/cli/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wdio/config": { "version": "8.16.17", "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.16.17.tgz", "integrity": "sha512-9+AY73Dp6N/CHzUYe4KbYV8wcKh3mpzBsMKieNlwXi1bQ3AAirTjOXzQ2BoQn6fg/Yd1GxmT3F0YsVS+bF1PmQ==", @@ -1123,241 +1135,29 @@ "node": "^16.13 || >=18" } }, - "node_modules/@wdio/cli/node_modules/@wdio/globals": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.16.18.tgz", - "integrity": "sha512-sEeKIY5RDrQdp290/AjwM7xH1jxuzK6cydfvdZ428V1ud19i1liaSCBttbTs98FJQ3hSMiczidOyxEUAXtaluw==", - "dev": true, - "engines": { - "node": "^16.13 || >=18" - }, - "optionalDependencies": { - "expect-webdriverio": "^4.2.5", - "webdriverio": "8.16.18" - } - }, - "node_modules/@wdio/cli/node_modules/@wdio/logger": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.16.17.tgz", - "integrity": "sha512-zeQ41z3T+b4IsrriZZipayXxLNDuGsm7TdExaviNGojPVrIsQUCSd/FvlLHM32b7ZrMyInHenu/zx1cjAZO71g==", - "dev": true, - "dependencies": { - "chalk": "^5.1.2", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/cli/node_modules/@wdio/utils": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.16.17.tgz", - "integrity": "sha512-jDyOrxbQRDJO0OPt9UBgnwpUIKqtRn4+R0gR5VSDrIG/in5ZZg28yer8urrIVY4yY9ut5r/22VaMHZI9LEXF5w==", - "dev": true, - "dependencies": { - "@puppeteer/browsers": "^1.6.0", - "@wdio/logger": "8.16.17", - "@wdio/types": "8.16.12", - "decamelize": "^6.0.0", - "deepmerge-ts": "^5.1.0", - "edgedriver": "^5.3.5", - "geckodriver": "^4.2.0", - "get-port": "^7.0.0", - "got": "^13.0.0", - "import-meta-resolve": "^3.0.0", - "locate-app": "^2.1.0", - "safaridriver": "^0.1.0", - "split2": "^4.2.0", - "wait-port": "^1.0.4" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@wdio/cli/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@wdio/cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@wdio/cli/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@wdio/cli/node_modules/webdriver": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.16.17.tgz", - "integrity": "sha512-pG5aEqK6odI9Tr9pr0+1mN6iGqUu5uc5HTVbqbEM6CSX2g035JRVQ/tavFTegCF1HI6yIquHiwAqsfPgLciAnQ==", - "dev": true, - "dependencies": { - "@types/node": "^20.1.0", - "@types/ws": "^8.5.3", - "@wdio/config": "8.16.17", - "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.16.5", - "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.17", - "deepmerge-ts": "^5.1.0", - "got": "^ 12.6.1", - "ky": "^0.33.0", - "ws": "^8.8.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/cli/node_modules/webdriver/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@wdio/cli/node_modules/webdriverio": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.16.18.tgz", - "integrity": "sha512-4HvywcNYJtEALbBQ7k5CE+XhiU2Ypr3hpd3P2wZkvN7+U2BSIS1cz9V1EtBDmR56e7pLz1La9kS1D3ShWm9NJA==", - "dev": true, - "dependencies": { - "@types/node": "^20.1.0", - "@wdio/config": "8.16.17", - "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.16.5", - "@wdio/repl": "8.10.1", - "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.17", - "archiver": "^6.0.0", - "aria-query": "^5.0.0", - "css-shorthand-properties": "^1.1.1", - "css-value": "^0.0.1", - "devtools-protocol": "^0.0.1188743", - "grapheme-splitter": "^1.0.2", - "import-meta-resolve": "^3.0.0", - "is-plain-obj": "^4.1.0", - "lodash.clonedeep": "^4.5.0", - "lodash.zip": "^4.2.0", - "minimatch": "^9.0.0", - "puppeteer-core": "^20.9.0", - "query-selector-shadow-dom": "^1.0.0", - "resq": "^1.9.1", - "rgb2hex": "0.2.5", - "serialize-error": "^11.0.1", - "webdriver": "8.16.17" - }, - "engines": { - "node": "^16.13 || >=18" - }, - "peerDependencies": { - "devtools": "^8.14.0" - }, - "peerDependenciesMeta": { - "devtools": { - "optional": true - } - } - }, - "node_modules/@wdio/config": { - "version": "8.16.12", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.16.12.tgz", - "integrity": "sha512-trpIf4A3OyGKHwbOndkWogy4ph96LQxoNaF6wmypGwAj7mv523+HMICs7v6bheDNc/BHLksOnodNyZ7nb2y+vA==", - "dev": true, - "optional": true, - "dependencies": { - "@wdio/logger": "8.11.0", - "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.12", - "decamelize": "^6.0.0", - "deepmerge-ts": "^5.0.0", - "glob": "^10.2.2", - "import-meta-resolve": "^3.0.0", - "read-pkg-up": "^10.0.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, "node_modules/@wdio/globals": { - "version": "8.16.12", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.16.12.tgz", - "integrity": "sha512-n/FX3thfrygFH2aSrZAUDwT5hEQZ5GYg70vPiIgytmpW6OYNI3FMryO7/OJuB8HklHqIC+rGDly42rFD84BInQ==", + "version": "8.16.19", + "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.16.19.tgz", + "integrity": "sha512-KziZCYLcEvcsESJm2STkCEUKq2rhIbAP+1lyksULUdMsLoKhqW3yPrb8g6z3qj8G7yAYF8xWpKID0yQejl3UXA==", "dev": true, - "optional": true, "engines": { "node": "^16.13 || >=18" }, "optionalDependencies": { "expect-webdriverio": "^4.2.5", - "webdriverio": "8.16.12" + "webdriverio": "8.16.19" } }, "node_modules/@wdio/local-runner": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.16.18.tgz", - "integrity": "sha512-mRYxIY4PWcL6+8deXSFeUkxA/dr8F+naCaxd6wENRLY6XQqaUJXDn/1RTaUx3ZVEwzyKfnXyX3melyzEKD5FLQ==", + "version": "8.16.19", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.16.19.tgz", + "integrity": "sha512-YUGF+7JCWoziFRW9/L+JSxuGKLgRiRXkRJ39iKaW97qS3MckBxLtuB4IY7gt3WJ80iDYo6IWLllRZfWtpvAT/A==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.16.17", "@wdio/repl": "8.10.1", - "@wdio/runner": "8.16.18", + "@wdio/runner": "8.16.19", "@wdio/types": "8.16.12", "async-exit-hook": "^2.0.1", "split2": "^4.1.0", @@ -1367,7 +1167,7 @@ "node": "^16.13 || >=18" } }, - "node_modules/@wdio/local-runner/node_modules/@wdio/logger": { + "node_modules/@wdio/logger": { "version": "8.16.17", "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.16.17.tgz", "integrity": "sha512-zeQ41z3T+b4IsrriZZipayXxLNDuGsm7TdExaviNGojPVrIsQUCSd/FvlLHM32b7ZrMyInHenu/zx1cjAZO71g==", @@ -1382,33 +1182,6 @@ "node": "^16.13 || >=18" } }, - "node_modules/@wdio/local-runner/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@wdio/logger": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.11.0.tgz", - "integrity": "sha512-IsuKSaYi7NKEdgA57h8muzlN/MVp1dQG+V4C//7g4m03YJUnNQLvDhJzLjdeNTfvZy61U7foQSyt+3ktNzZkXA==", - "dev": true, - "dependencies": { - "chalk": "^5.1.2", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, "node_modules/@wdio/logger/node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -1438,58 +1211,6 @@ "node": "^16.13 || >=18" } }, - "node_modules/@wdio/mocha-framework/node_modules/@wdio/logger": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.16.17.tgz", - "integrity": "sha512-zeQ41z3T+b4IsrriZZipayXxLNDuGsm7TdExaviNGojPVrIsQUCSd/FvlLHM32b7ZrMyInHenu/zx1cjAZO71g==", - "dev": true, - "dependencies": { - "chalk": "^5.1.2", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/mocha-framework/node_modules/@wdio/utils": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.16.17.tgz", - "integrity": "sha512-jDyOrxbQRDJO0OPt9UBgnwpUIKqtRn4+R0gR5VSDrIG/in5ZZg28yer8urrIVY4yY9ut5r/22VaMHZI9LEXF5w==", - "dev": true, - "dependencies": { - "@puppeteer/browsers": "^1.6.0", - "@wdio/logger": "8.16.17", - "@wdio/types": "8.16.12", - "decamelize": "^6.0.0", - "deepmerge-ts": "^5.1.0", - "edgedriver": "^5.3.5", - "geckodriver": "^4.2.0", - "get-port": "^7.0.0", - "got": "^13.0.0", - "import-meta-resolve": "^3.0.0", - "locate-app": "^2.1.0", - "safaridriver": "^0.1.0", - "split2": "^4.2.0", - "wait-port": "^1.0.4" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/mocha-framework/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@wdio/protocols": { "version": "8.16.5", "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.16.5.tgz", @@ -1524,42 +1245,15 @@ "node": "^16.13 || >=18" } }, - "node_modules/@wdio/reporter/node_modules/@wdio/logger": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.16.17.tgz", - "integrity": "sha512-zeQ41z3T+b4IsrriZZipayXxLNDuGsm7TdExaviNGojPVrIsQUCSd/FvlLHM32b7ZrMyInHenu/zx1cjAZO71g==", - "dev": true, - "dependencies": { - "chalk": "^5.1.2", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/reporter/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@wdio/runner": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.16.18.tgz", - "integrity": "sha512-c30CQQjb7xc7SwvZ9pvPRpt68y1evV9igo7prvrm8pUObibGDCJFwg1b8i19BmS8x4aMG2FOeQjHvjbgyAHixA==", + "version": "8.16.19", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.16.19.tgz", + "integrity": "sha512-CzLxlxcRfIVzTKGeo+TO5rUmmWHjUUdRaM6/6UGNFhFCcYW5rLvfHd1ojpU7ZKxBIc/bz2RGw2/cQ8KgQbFR3g==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/config": "8.16.17", - "@wdio/globals": "8.16.18", + "@wdio/globals": "8.16.19", "@wdio/logger": "8.16.17", "@wdio/types": "8.16.12", "@wdio/utils": "8.16.17", @@ -1567,222 +1261,12 @@ "expect-webdriverio": "^4.2.5", "gaze": "^1.1.2", "webdriver": "8.16.17", - "webdriverio": "8.16.18" + "webdriverio": "8.16.19" }, "engines": { "node": "^16.13 || >=18" } }, - "node_modules/@wdio/runner/node_modules/@wdio/config": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.16.17.tgz", - "integrity": "sha512-9+AY73Dp6N/CHzUYe4KbYV8wcKh3mpzBsMKieNlwXi1bQ3AAirTjOXzQ2BoQn6fg/Yd1GxmT3F0YsVS+bF1PmQ==", - "dev": true, - "dependencies": { - "@wdio/logger": "8.16.17", - "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.17", - "decamelize": "^6.0.0", - "deepmerge-ts": "^5.0.0", - "glob": "^10.2.2", - "import-meta-resolve": "^3.0.0", - "read-pkg-up": "^10.0.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/runner/node_modules/@wdio/globals": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.16.18.tgz", - "integrity": "sha512-sEeKIY5RDrQdp290/AjwM7xH1jxuzK6cydfvdZ428V1ud19i1liaSCBttbTs98FJQ3hSMiczidOyxEUAXtaluw==", - "dev": true, - "engines": { - "node": "^16.13 || >=18" - }, - "optionalDependencies": { - "expect-webdriverio": "^4.2.5", - "webdriverio": "8.16.18" - } - }, - "node_modules/@wdio/runner/node_modules/@wdio/logger": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.16.17.tgz", - "integrity": "sha512-zeQ41z3T+b4IsrriZZipayXxLNDuGsm7TdExaviNGojPVrIsQUCSd/FvlLHM32b7ZrMyInHenu/zx1cjAZO71g==", - "dev": true, - "dependencies": { - "chalk": "^5.1.2", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/runner/node_modules/@wdio/utils": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.16.17.tgz", - "integrity": "sha512-jDyOrxbQRDJO0OPt9UBgnwpUIKqtRn4+R0gR5VSDrIG/in5ZZg28yer8urrIVY4yY9ut5r/22VaMHZI9LEXF5w==", - "dev": true, - "dependencies": { - "@puppeteer/browsers": "^1.6.0", - "@wdio/logger": "8.16.17", - "@wdio/types": "8.16.12", - "decamelize": "^6.0.0", - "deepmerge-ts": "^5.1.0", - "edgedriver": "^5.3.5", - "geckodriver": "^4.2.0", - "get-port": "^7.0.0", - "got": "^13.0.0", - "import-meta-resolve": "^3.0.0", - "locate-app": "^2.1.0", - "safaridriver": "^0.1.0", - "split2": "^4.2.0", - "wait-port": "^1.0.4" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/runner/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@wdio/runner/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@wdio/runner/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@wdio/runner/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@wdio/runner/node_modules/webdriver": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.16.17.tgz", - "integrity": "sha512-pG5aEqK6odI9Tr9pr0+1mN6iGqUu5uc5HTVbqbEM6CSX2g035JRVQ/tavFTegCF1HI6yIquHiwAqsfPgLciAnQ==", - "dev": true, - "dependencies": { - "@types/node": "^20.1.0", - "@types/ws": "^8.5.3", - "@wdio/config": "8.16.17", - "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.16.5", - "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.17", - "deepmerge-ts": "^5.1.0", - "got": "^ 12.6.1", - "ky": "^0.33.0", - "ws": "^8.8.0" - }, - "engines": { - "node": "^16.13 || >=18" - } - }, - "node_modules/@wdio/runner/node_modules/webdriver/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@wdio/runner/node_modules/webdriverio": { - "version": "8.16.18", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.16.18.tgz", - "integrity": "sha512-4HvywcNYJtEALbBQ7k5CE+XhiU2Ypr3hpd3P2wZkvN7+U2BSIS1cz9V1EtBDmR56e7pLz1La9kS1D3ShWm9NJA==", - "dev": true, - "dependencies": { - "@types/node": "^20.1.0", - "@wdio/config": "8.16.17", - "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.16.5", - "@wdio/repl": "8.10.1", - "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.17", - "archiver": "^6.0.0", - "aria-query": "^5.0.0", - "css-shorthand-properties": "^1.1.1", - "css-value": "^0.0.1", - "devtools-protocol": "^0.0.1188743", - "grapheme-splitter": "^1.0.2", - "import-meta-resolve": "^3.0.0", - "is-plain-obj": "^4.1.0", - "lodash.clonedeep": "^4.5.0", - "lodash.zip": "^4.2.0", - "minimatch": "^9.0.0", - "puppeteer-core": "^20.9.0", - "query-selector-shadow-dom": "^1.0.0", - "resq": "^1.9.1", - "rgb2hex": "0.2.5", - "serialize-error": "^11.0.1", - "webdriver": "8.16.17" - }, - "engines": { - "node": "^16.13 || >=18" - }, - "peerDependencies": { - "devtools": "^8.14.0" - }, - "peerDependenciesMeta": { - "devtools": { - "optional": true - } - } - }, "node_modules/@wdio/spec-reporter": { "version": "8.16.17", "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.16.17.tgz", @@ -1824,14 +1308,13 @@ } }, "node_modules/@wdio/utils": { - "version": "8.16.12", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.16.12.tgz", - "integrity": "sha512-4hXgUF5iAscZKZ6uBcV12XkKi/eOXgvF76VkCTZ4qdeaiwFY27xcd8S3BSkAMKdbEgGygrpiTKoJzSt4K0AIHg==", + "version": "8.16.17", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.16.17.tgz", + "integrity": "sha512-jDyOrxbQRDJO0OPt9UBgnwpUIKqtRn4+R0gR5VSDrIG/in5ZZg28yer8urrIVY4yY9ut5r/22VaMHZI9LEXF5w==", "dev": true, - "optional": true, "dependencies": { "@puppeteer/browsers": "^1.6.0", - "@wdio/logger": "8.11.0", + "@wdio/logger": "8.16.17", "@wdio/types": "8.16.12", "decamelize": "^6.0.0", "deepmerge-ts": "^5.1.0", @@ -3115,7 +2598,8 @@ "version": "0.0.1188743", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1188743.tgz", "integrity": "sha512-FZDQC58vLiGR2mjSgsMzU8aEJieovMonIyxf38b775eYdIfAYgSzyAWnDf0Eq6ouF/L9qcbqR8jcQeIC34jp/w==", - "dev": true + "dev": true, + "peer": true }, "node_modules/diff": { "version": "5.1.0", @@ -9210,19 +8694,18 @@ } }, "node_modules/webdriver": { - "version": "8.16.12", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.16.12.tgz", - "integrity": "sha512-v6I7S7y28QvtKEJL8ciVPJ7heh4GWTf+fS0/+dowBD2UrSFb3stC47U9idVqU18UNoQFQ2FbdWBaOLXSi9xlTg==", + "version": "8.16.17", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.16.17.tgz", + "integrity": "sha512-pG5aEqK6odI9Tr9pr0+1mN6iGqUu5uc5HTVbqbEM6CSX2g035JRVQ/tavFTegCF1HI6yIquHiwAqsfPgLciAnQ==", "dev": true, - "optional": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.16.12", - "@wdio/logger": "8.11.0", + "@wdio/config": "8.16.17", + "@wdio/logger": "8.16.17", "@wdio/protocols": "8.16.5", "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.12", + "@wdio/utils": "8.16.17", "deepmerge-ts": "^5.1.0", "got": "^ 12.6.1", "ky": "^0.33.0", @@ -9237,7 +8720,6 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "optional": true, "engines": { "node": ">=10" }, @@ -9250,7 +8732,6 @@ "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, - "optional": true, "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -9272,24 +8753,23 @@ } }, "node_modules/webdriverio": { - "version": "8.16.12", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.16.12.tgz", - "integrity": "sha512-JglXAu7mhlWh3sexc4owKREQfuh8JFm9O+uPd8JXYaFmSLFX/PBhgPkhb9dLRRfX00oSeb3e8rVdQfcdqdQ2Iw==", + "version": "8.16.19", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.16.19.tgz", + "integrity": "sha512-b63vRWWuLq7OKYTLMdCn+uvTW48sMFepEyrv8MKFJproaSOCcokw7sqJ/EcQFmqIgrZxKL/mDch+QKjxlW0ORw==", "dev": true, - "optional": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.16.12", - "@wdio/logger": "8.11.0", + "@wdio/config": "8.16.17", + "@wdio/logger": "8.16.17", "@wdio/protocols": "8.16.5", "@wdio/repl": "8.10.1", "@wdio/types": "8.16.12", - "@wdio/utils": "8.16.12", + "@wdio/utils": "8.16.17", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools-protocol": "^0.0.1188743", + "devtools-protocol": "^0.0.1203626", "grapheme-splitter": "^1.0.2", "import-meta-resolve": "^3.0.0", "is-plain-obj": "^4.1.0", @@ -9301,7 +8781,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.16.12" + "webdriver": "8.16.17" }, "engines": { "node": "^16.13 || >=18" @@ -9320,17 +8800,21 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "optional": true, "dependencies": { "balanced-match": "^1.0.0" } }, + "node_modules/webdriverio/node_modules/devtools-protocol": { + "version": "0.0.1203626", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz", + "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==", + "dev": true + }, "node_modules/webdriverio/node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "optional": true, "dependencies": { "brace-expansion": "^2.0.1" }, diff --git a/tests/wdio/package.json b/tests/wdio/package.json index 5e4250ed6..2770bcca1 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -6,8 +6,8 @@ "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", - "@wdio/cli": "^8.16.18", - "@wdio/local-runner": "^8.16.18", + "@wdio/cli": "^8.16.19", + "@wdio/local-runner": "^8.16.19", "@wdio/mocha-framework": "^8.16.17", "@wdio/spec-reporter": "^8.16.17", "eslint": "^8.49.0", From 6a4cb5eebf340c2f2d6555f2316cd7c87a698f98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:06:52 +0200 Subject: [PATCH 11/18] web: bump the storybook group in /web with 5 updates (#7059) Bumps the storybook group in /web with 5 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.4.5` | `7.4.6` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.4.5` | `7.4.6` | | [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `7.4.5` | `7.4.6` | | [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `7.4.5` | `7.4.6` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.4.5` | `7.4.6` | Updates `@storybook/addon-essentials` from 7.4.5 to 7.4.6 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.6/code/addons/essentials) Updates `@storybook/addon-links` from 7.4.5 to 7.4.6 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.6/code/addons/links) Updates `@storybook/web-components` from 7.4.5 to 7.4.6 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.6/code/renderers/web-components) Updates `@storybook/web-components-vite` from 7.4.5 to 7.4.6 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.6/code/frameworks/web-components-vite) Updates `storybook` from 7.4.5 to 7.4.6 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.6/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components-vite" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 1893 ++++++++++++++++++++--------------------- web/package.json | 10 +- 2 files changed, 937 insertions(+), 966 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index d3dc025f6..f8c0fb4fa 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -61,11 +61,11 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.4.3", "@rollup/plugin-typescript": "^11.1.4", - "@storybook/addon-essentials": "^7.4.5", - "@storybook/addon-links": "^7.4.5", + "@storybook/addon-essentials": "^7.4.6", + "@storybook/addon-links": "^7.4.6", "@storybook/blocks": "^7.1.1", - "@storybook/web-components": "^7.4.5", - "@storybook/web-components-vite": "^7.4.5", + "@storybook/web-components": "^7.4.6", + "@storybook/web-components-vite": "^7.4.6", "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@types/chart.js": "^2.9.38", "@types/codemirror": "5.60.10", @@ -91,7 +91,7 @@ "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.4.5", + "storybook": "^7.4.6", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^1.2.1", "tslib": "^2.6.2", @@ -4605,19 +4605,19 @@ "dev": true }, "node_modules/@storybook/addon-actions": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.4.5.tgz", - "integrity": "sha512-FkjJWmPN/+duLSkRwfa2bwlwjKfY6yCXYn7CRzn3rb64B8f50NB79zAgVLHjkJh9l6T3DIlWtol6vqPHj1aRpw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.4.6.tgz", + "integrity": "sha512-SsqZr3js5NinKPnC8AeNI7Ij+Q6fIl9tRdRmSulEgjksjOg7E5S1/Wsn5Bb2CCgj7MaX6VxGyC7s3XskQtDiIQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -4645,13 +4645,13 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -4663,9 +4663,9 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4676,9 +4676,9 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -4689,19 +4689,19 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4720,17 +4720,17 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4746,12 +4746,12 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4765,13 +4765,13 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -4785,12 +4785,12 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -4834,19 +4834,19 @@ "dev": true }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.4.5.tgz", - "integrity": "sha512-fTq9E1WrYH/9hwDemFVLVcaI2iSSuwWnvY/8tqGrY9xhQF5dIpeHf+z8+HWXpau7e6Z0/WiYR+1vwAcIKt95LQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.4.6.tgz", + "integrity": "sha512-+LHTZB/ZYMAzkyD5ZxSriBsqmsrvIaW/Nnd/BeuXGbkrVKKqM0qAKiFZAfjc2WchA1piVNy0/1Rsf+kuYCEiJw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -4868,13 +4868,13 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -4886,9 +4886,9 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4899,9 +4899,9 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -4912,19 +4912,19 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4943,17 +4943,17 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4969,12 +4969,12 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4988,13 +4988,13 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5008,12 +5008,12 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5057,21 +5057,21 @@ "dev": true }, "node_modules/@storybook/addon-controls": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.4.5.tgz", - "integrity": "sha512-Mxs56jt44HIbZ4gJa0AII1U8GqEGFsvcM5Iob0ETNpxCW5Kj5iHly/4Ws0RFWPH/krrQKaLpWXaUxKmbtEzhJA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.4.6.tgz", + "integrity": "sha512-4lq3sycEUIsK8SUWDYc60QgF4vV9FZZ3lDr6M7j2W9bOnvGw49d2fbdlnq+bX1ZprZZ9VgglQpBAorQB3BXZRw==", "dev": true, "dependencies": { - "@storybook/blocks": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-common": "7.4.5", - "@storybook/core-events": "7.4.5", - "@storybook/manager-api": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/blocks": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-common": "7.4.6", + "@storybook/core-events": "7.4.6", + "@storybook/manager-api": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -5093,13 +5093,13 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5111,9 +5111,9 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5124,9 +5124,9 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5137,19 +5137,19 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5168,17 +5168,17 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5194,12 +5194,12 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5213,13 +5213,13 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5233,12 +5233,12 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5282,26 +5282,26 @@ "dev": true }, "node_modules/@storybook/addon-docs": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.4.5.tgz", - "integrity": "sha512-KjFVeq8oL7ZC1gsk8iY3Nn0RrHHUpczmOTCd8FeVNmKD4vq+dkPb/8bJLy+jArmIZ8vRhknpTh6kp1BqB7qHGQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.4.6.tgz", + "integrity": "sha512-dLaub+XWFq4hChw+xfuF9yYg0Txp77FUawKoAigccfjWXx+OOhRV3XTuAcknpXkYq94GWynHgUFXosXT9kbDNA==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/csf-plugin": "7.4.5", - "@storybook/csf-tools": "7.4.5", + "@storybook/blocks": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/csf-plugin": "7.4.6", + "@storybook/csf-tools": "7.4.6", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.4.5", - "@storybook/postinstall": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/react-dom-shim": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/node-logger": "7.4.6", + "@storybook/postinstall": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/react-dom-shim": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -5317,13 +5317,13 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5335,9 +5335,9 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5348,9 +5348,9 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5361,17 +5361,17 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5387,13 +5387,13 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5407,12 +5407,12 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5437,24 +5437,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.4.5.tgz", - "integrity": "sha512-H7zZWJXZP0UU2kXfo9zlQfjIKHuuqYBK7PZ2/SL5y08mTrbtt1BfqYScz3xRvHocaFcsBWCXdy8jJULT4KFUpw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.4.6.tgz", + "integrity": "sha512-dWodufrt71TK7ELkeIvVae/x4PzECUlbOm57Iqqt4yQCyR291CgvI4PjeB8un2HbpcXCGZ+N/Oj3YkytvzBi4A==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.4.5", - "@storybook/addon-backgrounds": "7.4.5", - "@storybook/addon-controls": "7.4.5", - "@storybook/addon-docs": "7.4.5", - "@storybook/addon-highlight": "7.4.5", - "@storybook/addon-measure": "7.4.5", - "@storybook/addon-outline": "7.4.5", - "@storybook/addon-toolbars": "7.4.5", - "@storybook/addon-viewport": "7.4.5", - "@storybook/core-common": "7.4.5", - "@storybook/manager-api": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/preview-api": "7.4.5", + "@storybook/addon-actions": "7.4.6", + "@storybook/addon-backgrounds": "7.4.6", + "@storybook/addon-controls": "7.4.6", + "@storybook/addon-docs": "7.4.6", + "@storybook/addon-highlight": "7.4.6", + "@storybook/addon-measure": "7.4.6", + "@storybook/addon-outline": "7.4.6", + "@storybook/addon-toolbars": "7.4.6", + "@storybook/addon-viewport": "7.4.6", + "@storybook/core-common": "7.4.6", + "@storybook/manager-api": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/preview-api": "7.4.6", "ts-dedent": "^2.0.0" }, "funding": { @@ -5467,13 +5467,13 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5485,9 +5485,9 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5498,9 +5498,9 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5511,19 +5511,19 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5542,17 +5542,17 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5568,12 +5568,12 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5587,13 +5587,13 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5607,12 +5607,12 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5656,14 +5656,14 @@ "dev": true }, "node_modules/@storybook/addon-highlight": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.4.5.tgz", - "integrity": "sha512-6Ru411+Iis4m2weKb8kB1eEssLvCHwFqAf4fjcOC//O5Vaf5+beHYZJUm/rzD0k/oUHfLCBwDBSBY5TLRegkdA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.4.6.tgz", + "integrity": "sha512-zCufxxD2KS5VwczxfkcBxe1oR/juTTn2H1Qm8kYvWCJQx3UxzX0+G9cwafbpV7eivqaufLweEwROkH+0KjAtkQ==", "dev": true, "dependencies": { - "@storybook/core-events": "7.4.5", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.4.5" + "@storybook/preview-api": "7.4.6" }, "funding": { "type": "opencollective", @@ -5671,13 +5671,13 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5689,9 +5689,9 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5702,9 +5702,9 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5715,17 +5715,17 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5741,12 +5741,12 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5757,19 +5757,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.4.5.tgz", - "integrity": "sha512-eKczq3U5KfPLaxMUzzVQQrGVtzDshUmrSEEuWKf9ZbK3mh5yVuagIBb88edgUX58vZ3TJMvqQzq1+BtUoPHQ6Q==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.4.6.tgz", + "integrity": "sha512-BPygElZKX+CPI9Se6GJNk1dYc5oxuhA+vHigO1tBqhiM6VkHyFP3cvezJNQvpNYhkUnu3cxnZXb3UJnlRbPY3g==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/router": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/router": "7.4.6", + "@storybook/types": "7.4.6", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -5791,13 +5791,13 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5809,9 +5809,9 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5822,9 +5822,9 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5835,19 +5835,19 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5866,17 +5866,17 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5892,12 +5892,12 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5911,13 +5911,13 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5931,12 +5931,12 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5980,18 +5980,18 @@ "dev": true }, "node_modules/@storybook/addon-measure": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.4.5.tgz", - "integrity": "sha512-FQGZniTH67nC1YPR4ep0p+isgxwLaNAmIAyCZWXPRTkZssIrnXVwNgi0A2QkHdxZvxj8yXGFTOVXLWEPT9YvFQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.4.6.tgz", + "integrity": "sha512-nCymMLaHnxv8TE3yEM1A9Tulb1NuRXRNmtsdHTkjv7P1aWCxZo8A/GZaottKe/GLT8jSRjZ+dnpYWrbAhw6wTQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", "tiny-invariant": "^1.3.1" }, "funding": { @@ -6012,13 +6012,13 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6030,9 +6030,9 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6043,9 +6043,9 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6056,19 +6056,19 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6087,17 +6087,17 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6113,12 +6113,12 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6132,13 +6132,13 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6152,12 +6152,12 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6201,18 +6201,18 @@ "dev": true }, "node_modules/@storybook/addon-outline": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.4.5.tgz", - "integrity": "sha512-eOH9BZzpehUz5FXD98OLnWgzmBFMvEB2kFfw5JiO7IRx7Fan80fx/WDQuMSNDOgLBCTTvsZ4TBMMXZHpw91WAw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.4.6.tgz", + "integrity": "sha512-errNUblRVDLpuEaHQPr/nsrnsUkD2ARmXawkRvizgDWLIDMDJYjTON3MUCaVx3x+hlZ3I6X//G5TVcma8tCc8A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", "ts-dedent": "^2.0.0" }, "funding": { @@ -6233,13 +6233,13 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6251,9 +6251,9 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6264,9 +6264,9 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6277,19 +6277,19 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6308,17 +6308,17 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6334,12 +6334,12 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6353,13 +6353,13 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6373,12 +6373,12 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6422,16 +6422,16 @@ "dev": true }, "node_modules/@storybook/addon-toolbars": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.4.5.tgz", - "integrity": "sha512-PZlwUTIdQ18de3zNb+627VSF4UrCGIXDdikyO9O5j2Cd0xfr5uhS6tgQ+3AT0DfUj0UIkKxilwcAt+agpNyicA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.4.6.tgz", + "integrity": "sha512-L9m2FBcKeteGq7qIYsMJr0LEfiH7Wdrv5IDcldZTn68eZUJTh1p4GdJZcOmzX1P5IFRr76hpu03iWsNlWQjpbQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/theming": "7.4.5" + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6" }, "funding": { "type": "opencollective", @@ -6451,13 +6451,13 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6469,9 +6469,9 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6482,9 +6482,9 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6495,19 +6495,19 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6526,17 +6526,17 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6552,12 +6552,12 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6571,13 +6571,13 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6591,12 +6591,12 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6640,18 +6640,18 @@ "dev": true }, "node_modules/@storybook/addon-viewport": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.4.5.tgz", - "integrity": "sha512-SBLnUMIztVrqJ0fRCsVg9KZ29APLIxqAvTsYHF3twy5KB2naeCFuX3K9LxSH7vbROI6zHEfnPduz/Ykyvu9yUg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.4.6.tgz", + "integrity": "sha512-INDtk54j7bi7NgxMfd2ATmbA0J7nAd6X8itMkLIyPuPJtx8bYHPDORyemDOd0AojgmAdTOAyUtDYdI/PFeo4Cw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/theming": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -6673,13 +6673,13 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6691,9 +6691,9 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6704,9 +6704,9 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6717,19 +6717,19 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6748,17 +6748,17 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6774,12 +6774,12 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6793,13 +6793,13 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6813,12 +6813,12 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7071,22 +7071,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.5.tgz", - "integrity": "sha512-FhAIkCT2HrzJcKsC3mL5+uG3GrbS23mYAT1h3iyPjCliZzxfCCI9UCMUXqYx4Z/FmAGJgpsQQXiBFZuoTHO9aQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.6.tgz", + "integrity": "sha512-HxBSAeOiTZW2jbHQlo1upRWFgoMsaAyKijUFf5MwwMNIesXCuuTGZDJ3xTABwAVLK2qC9Ektfbo0CZCiPVuDRQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/components": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/components": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.4.5", + "@storybook/docs-tools": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -7110,13 +7110,13 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7128,9 +7128,9 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7141,9 +7141,9 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7154,19 +7154,19 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -7185,17 +7185,17 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -7211,12 +7211,12 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -7230,13 +7230,13 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -7250,12 +7250,12 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7299,15 +7299,15 @@ "dev": true }, "node_modules/@storybook/builder-manager": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.4.5.tgz", - "integrity": "sha512-Jhql8iZgK9cxDmG9NSTejsj5FptHni2TBa5Sea2Uz1NIBQ0OpzNdUfYVX6TN/PEq3QrWXTrAEKPqsL2qGjOrxw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.4.6.tgz", + "integrity": "sha512-zylZCD2rmyLOOFBFmUgtJg6UNUKmRNgXiig1XApzS2TkIbTZP827DsVEUl0ey/lskCe0uArkrEBR6ICba8p/Rw==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.4.5", - "@storybook/manager": "7.4.5", - "@storybook/node-logger": "7.4.5", + "@storybook/core-common": "7.4.6", + "@storybook/manager": "7.4.6", + "@storybook/node-logger": "7.4.6", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -7341,20 +7341,20 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.4.5.tgz", - "integrity": "sha512-0aIMvBIx2U/DhDjdjWCW/KIG3HAJpus8NIUIvkVAUCaA7Vn8XvnSsdaRSTTxaaJReFZcIxDf7MebHSCJ0UEKqQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.4.6.tgz", + "integrity": "sha512-xV9STYK+TkqWWTf2ydm6jx+7P70fjD2UPd1XTUw08uKszIjhuuxk+bG/OF5R1E25mPunAKXm6kBFh351AKejBg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-common": "7.4.5", - "@storybook/csf-plugin": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-common": "7.4.6", + "@storybook/csf-plugin": "7.4.6", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.4.5", - "@storybook/preview": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/node-logger": "7.4.6", + "@storybook/preview": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -7389,13 +7389,13 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7407,9 +7407,9 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7420,9 +7420,9 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7433,17 +7433,17 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -7459,12 +7459,12 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7489,9 +7489,9 @@ } }, "node_modules/@storybook/builder-vite/node_modules/magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "version": "0.30.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.4.tgz", + "integrity": "sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -7520,23 +7520,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.4.5.tgz", - "integrity": "sha512-PlTkcHdKCugg3pD1zkBP/oFazcZsr7F3wdEmTvygfH0Cx/sQWg5wXBZCYKmf0ONRK4RKL3LVM8DRpeYiQVEFWg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.4.6.tgz", + "integrity": "sha512-rRwaH8pOL+FHz/pJMEkNpMH2xvZvWsrl7obBYw26NQiHmiVSAkfHJicndSN1mwc+p5w+9iXthrgzbLtSAOSvkA==", "dev": true, "dependencies": { "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/types": "^7.22.5", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.4.5", - "@storybook/core-common": "7.4.5", - "@storybook/core-events": "7.4.5", - "@storybook/core-server": "7.4.5", - "@storybook/csf-tools": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/telemetry": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/codemod": "7.4.6", + "@storybook/core-common": "7.4.6", + "@storybook/core-events": "7.4.6", + "@storybook/core-server": "7.4.6", + "@storybook/csf-tools": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/telemetry": "7.4.6", + "@storybook/types": "7.4.6", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -7577,13 +7577,13 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7595,9 +7595,9 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7608,9 +7608,9 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7621,12 +7621,12 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7774,18 +7774,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.4.5.tgz", - "integrity": "sha512-gyI2xliSv4vvnfNQN+0e3tRmT7beiq8q8iGjcBtpOhA2xrStyCR7PjbOfLXtRx2I/b50MDZMRTcckzeM3BLoWQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.4.6.tgz", + "integrity": "sha512-lxmwEpwksCaAq96APN2YlooSDfKjJ1vKzN5Ni2EqQzf2TEXl7XQjLacHd7OOaII1kfsy+D5gNG4N5wBo7Ub30g==", "dev": true, "dependencies": { "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/csf-tools": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/types": "7.4.6", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -7800,13 +7800,13 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7818,9 +7818,9 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7831,9 +7831,9 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7844,12 +7844,12 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7875,18 +7875,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.4.5.tgz", - "integrity": "sha512-boskkfvMBB8CFYY9+1ofFNyKrdWXTY/ghzt7oK80dz6f2Eseo/WXK3OsCdCq5vWbLRCdbgJ8zXG8pAFi4yBsxA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.4.6.tgz", + "integrity": "sha512-nIRBhewAgrJJVafyCzuaLx1l+YOfvvD5dOZ0JxZsxJsefOdw1jFpUqUZ5fIpQ2moyvrR0mAUFw378rBfMdHz5Q==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -7901,13 +7901,13 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7919,9 +7919,9 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7932,9 +7932,9 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7945,13 +7945,13 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -7965,12 +7965,12 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7981,13 +7981,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.4.5.tgz", - "integrity": "sha512-d/qiCUZeOKY0HX/YmomxlccxJ2NKC3ttRrAsAXzJGypClKabv20X+qbeO/E7Kp5UQxIEJx1wuwJPcnlCvjgPDA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.4.6.tgz", + "integrity": "sha512-tfgxAHeCvMcs6DsVgtb4hQSDaCHeAPJOsoyhb47eDQfk4OmxzriM0qWucJV5DePSMi+KutX/rN2u0JxfOuN68g==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/preview-api": "7.4.5" + "@storybook/client-logger": "7.4.6", + "@storybook/preview-api": "7.4.6" }, "funding": { "type": "opencollective", @@ -7995,13 +7995,13 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8013,9 +8013,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8026,9 +8026,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8039,17 +8039,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -8065,12 +8065,12 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8081,14 +8081,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.5.tgz", - "integrity": "sha512-c4pBuILMD4YhSpJ+QpKtsUZpK+/rfolwOvzXfJwlN5EpYzMz6FjVR/LyX0cCT2YLI3X5YWRoCdvMxy5Aeryb8g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.6.tgz", + "integrity": "sha512-05MJFmOM86qvTLtgDskokIFz9txe0Lbhq4L3by1FtF0GwgH+p+W6I94KI7c6ANER+kVZkXQZhiRzwBFnVTW+Cg==", "dev": true, "dependencies": { - "@storybook/core-events": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/core-events": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/types": "7.4.6", "@types/find-cache-dir": "^3.2.1", "@types/node": "^16.0.0", "@types/node-fetch": "^2.6.4", @@ -8116,13 +8116,13 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8134,9 +8134,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8147,9 +8147,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8160,12 +8160,12 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8176,9 +8176,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", - "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", + "version": "16.18.57", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.57.tgz", + "integrity": "sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==", "dev": true }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { @@ -8236,13 +8236,13 @@ } }, "node_modules/@storybook/core-common/node_modules/glob": { - "version": "10.3.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.7.tgz", - "integrity": "sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" @@ -8308,26 +8308,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.4.5.tgz", - "integrity": "sha512-cW+Qx9Ls823577bd/s9Kv4M1MdKS8mkk6/+nYbwtAwH3hkdlb077rlk/ue0X4O9NZmCrtaJ84KNrBkeDUdFyLQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.4.6.tgz", + "integrity": "sha512-jqmRTGCJ1W0WReImivkisPVaLFT5sjtLnFoAk0feHp6QS5j7EYOPN7CYzliyQmARWTLUEXOVaFf3VD6nJZQhJQ==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.4.5", - "@storybook/channels": "7.4.5", - "@storybook/core-common": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/builder-manager": "7.4.6", + "@storybook/channels": "7.4.6", + "@storybook/core-common": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.4.5", + "@storybook/csf-tools": "7.4.6", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/telemetry": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/telemetry": "7.4.6", + "@storybook/types": "7.4.6", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -8347,7 +8347,6 @@ "prompts": "^2.4.0", "read-pkg-up": "^7.0.1", "semver": "^7.3.7", - "serve-favicon": "^2.5.0", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0", @@ -8362,13 +8361,13 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8380,9 +8379,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8393,9 +8392,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8406,17 +8405,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -8432,12 +8431,12 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8448,9 +8447,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", - "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", + "version": "16.18.57", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.57.tgz", + "integrity": "sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==", "dev": true }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { @@ -8562,12 +8561,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.4.5.tgz", - "integrity": "sha512-8p3AnwIm3xXtQhiF7OQ0rBiP/Pn5OCMHRiT4FytRnNimGaw7gxRZ2xzM608QZHQ4A8rHfmgoM2FTwgxdC15ulA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.4.6.tgz", + "integrity": "sha512-yi7Qa4NSqKOyiJTWCxlB0ih2ijXq6oY5qZKW6MuMMBP14xJNRGLbH5KabpfXgN2T7YECcOWG1uWaGj2veJb1KA==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.4.5", + "@storybook/csf-tools": "7.4.6", "unplugin": "^1.3.1" }, "funding": { @@ -8576,9 +8575,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.4.5.tgz", - "integrity": "sha512-xbm5HGYvlwF0Efivx37v9rO7Exel1/Tdb/Yv/vXn4D/hQeljNVLNz4Bomfy4EQ207rRsrGDSOHEhLUbHDimnxg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.4.6.tgz", + "integrity": "sha512-ocKpcIUtTBy6hlLY34RUFQyX403cWpB2gGfqvkHbpGe2BQj7EyV0zpWnjsfVxvw+M9OWlCdxHWDOPUgXM33ELw==", "dev": true, "dependencies": { "@babel/generator": "^7.22.9", @@ -8586,7 +8585,7 @@ "@babel/traverse": "^7.22.8", "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -8597,13 +8596,13 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8615,9 +8614,9 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8628,9 +8627,9 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8641,12 +8640,12 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8677,14 +8676,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.5.tgz", - "integrity": "sha512-ctK+yGb2nvWISSvCCzj3ZhDaAb7I2BLjbxuBGTyNPvl4V9UQ9LBYzdJwR50q+DfscxdwSHMSOE/0OnzmJdaSJA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.6.tgz", + "integrity": "sha512-nZj1L/8WwKWWJ41FW4MaKGajZUtrhnr9UwflRCkQJaWhAKmDfOb5M5TqI93uCOULpFPOm5wpoMBz2IHInQ2Lrg==", "dev": true, "dependencies": { - "@storybook/core-common": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/core-common": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -8695,13 +8694,13 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8713,9 +8712,9 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8726,9 +8725,9 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8739,17 +8738,17 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -8765,12 +8764,12 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8787,9 +8786,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.4.5.tgz", - "integrity": "sha512-yoqVktWzzC0f8cXsxErOEUfT+VFfWV/W7soytIPQuJFqNaq+BqR5A7WCeoY7BIv3mdpRjo4GKwerCsgoHYeHhg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.4.6.tgz", + "integrity": "sha512-kA1hUDxpn1i2SO9OinvLvVXDeL4xgJkModp+pbE8IXv4NJWReNq1ecMeQCzPLS3Sil2gnrullQ9uYXsnZ9bxxA==", "dev": true, "funding": { "type": "opencollective", @@ -8871,9 +8870,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.5.tgz", - "integrity": "sha512-fJSykphbryuEYj1qihbaTH5oOzD4NkptRxyf2uyBrpgkr5tCTq9d7GHheqaBuIdi513dsjlcIR7z5iHxW7ZD+Q==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.6.tgz", + "integrity": "sha512-djZb310Q27GviDug1XBv0jOEDLCiwr4hhDE0aifCEKZpfNCi/EaP31nbWimFzZwxu4hE/YAPWExzScruR1zw9Q==", "dev": true, "funding": { "type": "opencollective", @@ -8881,9 +8880,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.4.5.tgz", - "integrity": "sha512-MWRjnKkUpEe2VkHNNpv3zkuMvxM2Zu9DMxFENQaEmhqUHkIFh5klfFwzhSBRexVLzIh7DA1p7mntIpY5A6lh+Q==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.4.6.tgz", + "integrity": "sha512-TqI5BucPAGRWrkh55BYiG2/gHLFtC0In4cuu0GsUzB/1jc4i51npLRorCwhmT7r7YliGl5F7JaP0Bni/qHN3Lg==", "dev": true, "funding": { "type": "opencollective", @@ -8891,9 +8890,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.4.5.tgz", - "integrity": "sha512-hCVFoPJP0d7vFCJKaWEsDMa6LcRFcEikQ8Cy6Vo+trS8xXwvwE+vIBqyuPozl4O/MYD9iOlzjgZFNwaUUgX0Jg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.4.6.tgz", + "integrity": "sha512-2RPXusJ4CTDrIipIKKvbotD7fP0+8VzoFjImunflIrzN9rni+2rq5eMjqlXAaB+77w064zIR4uDUzI9fxsMDeQ==", "dev": true, "funding": { "type": "opencollective", @@ -8987,9 +8986,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.4.5.tgz", - "integrity": "sha512-/hGe8yuiWbT7L3ZsllmJPgxT9MEQE3k23FhliyKx6IGHsWoYaEsPYPZ9tygqtKY8RpqqMUKWz8+kbO79zUxaoQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.4.6.tgz", + "integrity": "sha512-DSq8l9FDocUF1ooVI+TF83pddj1LynE/Hv0/y8XZhc3IgJ/HkuOQuUmfz29ezgfAi9gFYUR8raTIBi3/xdoRmw==", "dev": true, "funding": { "type": "opencollective", @@ -9021,14 +9020,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.4.5.tgz", - "integrity": "sha512-JbhQXZF5sqS2c7Cf+vAtuKTdTSBDco+liUP2UGQFjqdacTRLVzxyj+YY2UH4aAQn7wpmnQ67iHnqFp0+fdYmAA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.4.6.tgz", + "integrity": "sha512-c8p/C1NIH8EMBviZkBCx8MMDk6rrITJ+b29DEp5MaWSRlklIVyhGiC4RPIRv6sxJwlD41PnqWVFtfu2j2eXLdQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-common": "7.4.5", - "@storybook/csf-tools": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-common": "7.4.6", + "@storybook/csf-tools": "7.4.6", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -9041,9 +9040,9 @@ } }, "node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -9158,18 +9157,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.4.5.tgz", - "integrity": "sha512-bLmrxnM4LKm8DfawUd89/EgUpPLIu0iRnxGKSzuUO6Rc1NW0WsCb/OLDAMzC6Eu1Ga7qLKMdzDgBoHZxRv8MrA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.4.6.tgz", + "integrity": "sha512-HWqkZtdkmNimkzMmE0mGRys2ee9qgEeDVCruiffySVquBRMQ6n1xgvHZYaO6OLlMeH0YHPg083ZqUasS5GsYVg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-client": "7.4.5", - "@storybook/docs-tools": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-client": "7.4.6", + "@storybook/docs-tools": "7.4.6", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.5", - "@storybook/preview-api": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/manager-api": "7.4.6", + "@storybook/preview-api": "7.4.6", + "@storybook/types": "7.4.6", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -9185,15 +9184,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.4.5.tgz", - "integrity": "sha512-J90WA/CKNUvDu962W1SnzsXmttIS8im0i9Op8zjMPAHq+nVzfXB0Qb/LUR3RbQHFU01V7BFaWgrA0CdINeN04g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.4.6.tgz", + "integrity": "sha512-L/y6MTLbqfHaM0faK9Yl8n5PIyW4daZrtk7NfaOT6UjgNFjOx3o4CctYew6oj90cNk5HdZQX2OZny043GxDLZw==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.4.5", - "@storybook/core-server": "7.4.5", - "@storybook/node-logger": "7.4.5", - "@storybook/web-components": "7.4.5", + "@storybook/builder-vite": "7.4.6", + "@storybook/core-server": "7.4.6", + "@storybook/node-logger": "7.4.6", + "@storybook/web-components": "7.4.6", "magic-string": "^0.30.0" }, "engines": { @@ -9221,13 +9220,13 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/channels": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", - "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", + "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -9239,9 +9238,9 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/client-logger": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", - "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", + "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -9252,9 +9251,9 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/core-events": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", - "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", + "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -9265,19 +9264,19 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/manager-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", - "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", + "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.5", - "@storybook/theming": "7.4.5", - "@storybook/types": "7.4.5", + "@storybook/router": "7.4.6", + "@storybook/theming": "7.4.6", + "@storybook/types": "7.4.6", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -9296,17 +9295,17 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", - "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", + "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", - "@storybook/client-logger": "7.4.5", - "@storybook/core-events": "7.4.5", + "@storybook/channels": "7.4.6", + "@storybook/client-logger": "7.4.6", + "@storybook/core-events": "7.4.6", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.5", + "@storybook/types": "7.4.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -9322,12 +9321,12 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/router": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", - "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", + "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -9341,13 +9340,13 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/theming": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", - "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", + "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.5", + "@storybook/client-logger": "7.4.6", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -9361,12 +9360,12 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/types": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", - "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", + "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.5", + "@storybook/channels": "7.4.6", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -10082,18 +10081,18 @@ "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" @@ -10120,9 +10119,9 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.7.tgz", - "integrity": "sha512-BG4tyr+4amr3WsSEmHn/fXPqaCba/AYZ7dsaQTiavihQunHSIxk+uAtqsjvicNpyHN6cm+B9RVrUOtW9VzIKHw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.8.tgz", + "integrity": "sha512-r7/zWe+f9x+zjXqGxf821qz++ld8tp6Z4jUS6qmPZUXH6tfh4riXOhAqb12tWGWAevCFtMt1goLWkQMqIJKpsA==", "dev": true }, "node_modules/@types/mime": { @@ -10132,9 +10131,9 @@ "dev": true }, "node_modules/@types/mime-types": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.1.tgz", - "integrity": "sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.2.tgz", + "integrity": "sha512-q9QGHMGCiBJCHEvd4ZLdasdqXv570agPsUW0CeIm/B8DzhxsYMerD0l3IlI+EQ1A2RWHY2mmM9x1YIuuWxisCg==", "dev": true }, "node_modules/@types/minimatch": { @@ -10284,18 +10283,18 @@ "integrity": "sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==" }, "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "version": "17.0.26", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz", + "integrity": "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -14754,9 +14753,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.217.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.217.0.tgz", - "integrity": "sha512-hEa5n0dta1RcaDwJDWbnyelw07PK7+Vx0f9kDht28JOt2hXgKdKGaT3wM45euWV2DxOXtzDSTaUgGSD/FPvC2Q==", + "version": "0.217.2", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.217.2.tgz", + "integrity": "sha512-O+nt/FLXa1hTwtW0O9h36iZjbL84G8e1uByx5dDXMC97AJEbZXwJ4ohfaE8BNWrYFyYX0NGfz1o8AtLQvaaD/Q==", "dev": true, "engines": { "node": ">=0.4.0" @@ -16259,9 +16258,9 @@ } }, "node_modules/jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -20559,34 +20558,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/serve-favicon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", - "dev": true, - "dependencies": { - "etag": "~1.8.1", - "fresh": "0.5.2", - "ms": "2.1.1", - "parseurl": "~1.3.2", - "safe-buffer": "5.1.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-favicon/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/serve-favicon/node_modules/safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -21312,12 +21283,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.4.5.tgz", - "integrity": "sha512-J7fidphTJ6SJHlR8f/USQE30K6ipbynLVLsTOz0bNYW/0Ua2t9u6dAYGbbq6bLikl3zxzQbdm9lXMUzmaYAdIA==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.4.6.tgz", + "integrity": "sha512-YkFSpnR47j5zz7yElA+2axLjXN7K7TxDGJRHHlqXmG5iQ0PXzmjrj2RxMDKFz4Ybp/QjEUoJ4rx//ESEY0Nb5A==", "dev": true, "dependencies": { - "@storybook/cli": "7.4.5" + "@storybook/cli": "7.4.6" }, "bin": { "sb": "index.js", diff --git a/web/package.json b/web/package.json index 69bc8ae9c..ff26b28b6 100644 --- a/web/package.json +++ b/web/package.json @@ -79,11 +79,11 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.4.3", "@rollup/plugin-typescript": "^11.1.4", - "@storybook/addon-essentials": "^7.4.5", - "@storybook/addon-links": "^7.4.5", + "@storybook/addon-essentials": "^7.4.6", + "@storybook/addon-links": "^7.4.6", "@storybook/blocks": "^7.1.1", - "@storybook/web-components": "^7.4.5", - "@storybook/web-components-vite": "^7.4.5", + "@storybook/web-components": "^7.4.6", + "@storybook/web-components-vite": "^7.4.6", "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@types/chart.js": "^2.9.38", "@types/codemirror": "5.60.10", @@ -109,7 +109,7 @@ "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.4.5", + "storybook": "^7.4.6", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^1.2.1", "tslib": "^2.6.2", From 3a64c7e1010420d58a5f94710651471d0d5cca75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:07:27 +0200 Subject: [PATCH 12/18] web: bump pyright from 1.1.329 to 1.1.330 in /web (#7060) Bumps [pyright](https://github.com/Microsoft/pyright/tree/HEAD/packages/pyright) from 1.1.329 to 1.1.330. - [Release notes](https://github.com/Microsoft/pyright/releases) - [Commits](https://github.com/Microsoft/pyright/commits/1.1.330/packages/pyright) --- updated-dependencies: - dependency-name: pyright dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index f8c0fb4fa..373e3f923 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -84,7 +84,7 @@ "lit-analyzer": "^1.2.1", "npm-run-all": "^4.1.5", "prettier": "^3.0.3", - "pyright": "^1.1.329", + "pyright": "^1.1.330", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^3.29.4", @@ -19450,9 +19450,9 @@ } }, "node_modules/pyright": { - "version": "1.1.329", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.329.tgz", - "integrity": "sha512-5AT98Mi0OYcDiQ5lD1nPJ3cq8gX/HHaXrQ5WjJ/QZkaJtGqnEdrUp5Gq5wBPipWgOnv/l5e50YScaaNDMjoy9Q==", + "version": "1.1.330", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.330.tgz", + "integrity": "sha512-njXmRFlcYetFdAbbmUfafwn/RLN3BL8tlGMpqa29W18ogi6Pzynxue3pH/fWl4MQnWlCwsasIpTB//841fpPEw==", "dev": true, "bin": { "pyright": "index.js", diff --git a/web/package.json b/web/package.json index ff26b28b6..6a30ba57b 100644 --- a/web/package.json +++ b/web/package.json @@ -102,7 +102,7 @@ "lit-analyzer": "^1.2.1", "npm-run-all": "^4.1.5", "prettier": "^3.0.3", - "pyright": "^1.1.329", + "pyright": "^1.1.330", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^3.29.4", From b20d6317fdd644110a956fccafa161e27ea3a9a9 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:07:40 +0200 Subject: [PATCH 13/18] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN on branch main (#7056) Translate locale/en/LC_MESSAGES/django.po in zh_CN 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh_CN/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index 43bfab52c..622ed33a9 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/LC_MESSAGES/django.po @@ -2,13 +2,13 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Chen Zhikai, 2022 # 刘松, 2022 # Jens L. , 2023 # deluxghost, 2023 -# +# #, fuzzy msgid "" msgstr "" From 94a23f0d21dfea5c5e5ee628e156f3b711f8469c Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:07:54 +0200 Subject: [PATCH 14/18] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans on branch main (#7057) Translate django.po in zh-Hans 100% translated source file: 'django.po' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh-Hans/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/zh-Hans/LC_MESSAGES/django.po b/locale/zh-Hans/LC_MESSAGES/django.po index 3985e4664..56af39cab 100644 --- a/locale/zh-Hans/LC_MESSAGES/django.po +++ b/locale/zh-Hans/LC_MESSAGES/django.po @@ -2,13 +2,13 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Chen Zhikai, 2022 # 刘松, 2022 # Jens L. , 2023 # deluxghost, 2023 -# +# #, fuzzy msgid "" msgstr "" From b2327e7641c80a538664c36012decf1129d6dcc4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 11:17:26 +0200 Subject: [PATCH 15/18] web: bump postcss from 8.4.29 to 8.4.31 in /web (#7064) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.29 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.29...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 373e3f923..19405122f 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -19153,9 +19153,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { From 94fa58cd6edd7c51014da8afc77e9a7b8c652aec Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 18:59:24 +0200 Subject: [PATCH 16/18] translate: Updates for file locale/en/LC_MESSAGES/django.po in fr on branch main (#7065) Translate locale/en/LC_MESSAGES/django.po in fr 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/fr/LC_MESSAGES/django.po | 97 +++++++++++++++++---------------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 06b76119d..fa3e8dab9 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Bastien Germond, 2022 # Phorcys, 2022 @@ -11,14 +11,15 @@ # Titouan Petit, 2023 # Kyllian Delaye-Maillot, 2023 # Manuel Viens, 2023 +# Mordecai, 2023 # Marc Schmitt, 2023 -# +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-15 09:51+0000\n" +"POT-Creation-Date: 2023-10-02 12:46+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: Marc Schmitt, 2023\n" "Language-Team: French (https://app.transifex.com/authentik/teams/119923/fr/)\n" @@ -422,35 +423,35 @@ msgstr "Distribué pour l'utilisateur" msgid "Event user" msgstr "Évènement utilisateur" -#: authentik/events/models.py:484 +#: authentik/events/models.py:491 msgid "Notification Transport" msgstr "Transport de Notification" -#: authentik/events/models.py:485 +#: authentik/events/models.py:492 msgid "Notification Transports" msgstr "Transports de notification" -#: authentik/events/models.py:491 +#: authentik/events/models.py:498 msgid "Notice" msgstr "Note" -#: authentik/events/models.py:492 +#: authentik/events/models.py:499 msgid "Warning" msgstr "Avertissement" -#: authentik/events/models.py:493 +#: authentik/events/models.py:500 msgid "Alert" msgstr "Alerte" -#: authentik/events/models.py:518 +#: authentik/events/models.py:525 msgid "Notification" msgstr "Notification" -#: authentik/events/models.py:519 +#: authentik/events/models.py:526 msgid "Notifications" msgstr "Notifications" -#: authentik/events/models.py:529 +#: authentik/events/models.py:536 msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." @@ -459,11 +460,11 @@ msgstr "" "défaut, la notification sera simplement affichée dans l'interface " "utilisateur authentik." -#: authentik/events/models.py:537 +#: authentik/events/models.py:544 msgid "Controls which severity level the created notifications will have." msgstr "Contrôle quel niveau de sévérité les notifications créées auront." -#: authentik/events/models.py:542 +#: authentik/events/models.py:549 msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." @@ -471,19 +472,19 @@ msgstr "" "Définir à quel groupe d'utilisateur cette notification doit être envoyée et " "affichée. Si laissé vide, les notifications ne seront pas envoyées." -#: authentik/events/models.py:560 +#: authentik/events/models.py:567 msgid "Notification Rule" msgstr "Règle de Notification" -#: authentik/events/models.py:561 +#: authentik/events/models.py:568 msgid "Notification Rules" msgstr "Règles de notification" -#: authentik/events/models.py:581 +#: authentik/events/models.py:588 msgid "Webhook Mapping" msgstr "Mappage de Webhook" -#: authentik/events/models.py:582 +#: authentik/events/models.py:589 msgid "Webhook Mappings" msgstr "Mappages de Webhook" @@ -2331,11 +2332,11 @@ msgstr "Pas d'utilisateurs en attente." msgid "Email sent." msgstr "Email envoyé." -#: authentik/stages/email/templates/email/account_confirmation.html:9 +#: authentik/stages/email/templates/email/account_confirmation.html:10 msgid "Welcome!" msgstr "Bienvenue !" -#: authentik/stages/email/templates/email/account_confirmation.html:12 +#: authentik/stages/email/templates/email/account_confirmation.html:19 msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just press the button below." @@ -2343,11 +2344,11 @@ msgstr "" "Nous sommes ravis que vous puissiez commencer. Tout d'abord, vous devez " "confirmer votre compte. Il vous suffit d'appuyer sur le bouton ci-dessous." -#: authentik/stages/email/templates/email/account_confirmation.html:21 +#: authentik/stages/email/templates/email/account_confirmation.html:24 msgid "Confirm Account" msgstr "Confirmer le Compte" -#: authentik/stages/email/templates/email/account_confirmation.html:30 +#: authentik/stages/email/templates/email/account_confirmation.html:36 #, python-format msgid "" "\n" @@ -2358,52 +2359,52 @@ msgstr "" " Si cela ne fonctionne pas, copier et coller ce lien dans votre navigateur : %(url)s\n" " " -#: authentik/stages/email/templates/email/account_confirmation.html:35 -msgid "" -"If you have any questions, just reply to this email—we're always happy to " -"help out." -msgstr "" -"Si vous avez des questions, répondez simplement à cet e-email - nous sommes " -"toujours heureux de vous aider." - -#: authentik/stages/email/templates/email/generic.html:24 -msgid "Additional Information" -msgstr "Informations Additionnelles" - -#: authentik/stages/email/templates/email/password_reset.html:9 +#: authentik/stages/email/templates/email/event_notification.html:46 #, python-format msgid "" "\n" -" Hi %(username)s,\n" -" " +" This email was sent from the notification transport %(name)s.\n" +" " msgstr "" "\n" -"Bonjour %(username)s," +" Cet email a été envoyé depuis le transport de notification %(name)s.\n" +" " -#: authentik/stages/email/templates/email/password_reset.html:19 +#: authentik/stages/email/templates/email/password_reset.html:10 +#, python-format msgid "" "\n" -" You recently requested to change your password for your authentik account. Use the button below to set a new password.\n" -" " +" Hi %(username)s,\n" +" " msgstr "" "\n" -" Vous avez récemment demandé à changer le mot de passe de votre compte authentik. Utilisez le bouton ci-dessous pour définir un nouveau mot de passe.\n" -" " +" Salut %(username)s,\n" +" " -#: authentik/stages/email/templates/email/password_reset.html:33 +#: authentik/stages/email/templates/email/password_reset.html:21 +msgid "" +"\n" +" You recently requested to change your password for your authentik account. Use the button below to set a new password.\n" +" " +msgstr "" +"\n" +" Vous avez récemment demandé à changer le mot de passe de votre compte authentik. Utilisez le bouton ci-dessous pour définir un nouveau mot de passe.\n" +" " + +#: authentik/stages/email/templates/email/password_reset.html:28 msgid "Reset Password" msgstr "Réinitialiser le mot de passe" -#: authentik/stages/email/templates/email/password_reset.html:45 +#: authentik/stages/email/templates/email/password_reset.html:39 #, python-format msgid "" "\n" -" If you did not request a password change, please ignore this Email. The link above is valid for %(expires)s.\n" -" " +" If you did not request a password change, please ignore this Email. The link above is valid for %(expires)s.\n" +" " msgstr "" "\n" -" Si vous n'avez pas requis de changement de mot de passe, veuillez ignorer cet e-mail. Le lien ci-dessus est valide pendant %(expires)s.\n" -" " +" Si vous n'avez pas requis de changement de mot de passe, veuillez ignorer cet e-mail. Le lien ci-dessus est valide pendant %(expires)s.\n" +" " #: authentik/stages/email/templates/email/setup.html:9 msgid "authentik Test-Email" From fb1768270eee724dd9685cdda682872f69c67a64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 19:24:06 +0200 Subject: [PATCH 17/18] core: bump django from 4.2.5 to 4.2.6 (#7066) Bumps [django](https://github.com/django/django) from 4.2.5 to 4.2.6. - [Commits](https://github.com/django/django/compare/4.2.5...4.2.6) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index ddb61bb28..eabcf4729 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1125,13 +1125,13 @@ graph = ["objgraph (>=1.7.2)"] [[package]] name = "django" -version = "4.2.5" +version = "4.2.6" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.8" files = [ - {file = "Django-4.2.5-py3-none-any.whl", hash = "sha256:b6b2b5cae821077f137dc4dade696a1c2aa292f892eca28fa8d7bfdf2608ddd4"}, - {file = "Django-4.2.5.tar.gz", hash = "sha256:5e5c1c9548ffb7796b4a8a4782e9a2e5a3df3615259fc1bfd3ebc73b646146c1"}, + {file = "Django-4.2.6-py3-none-any.whl", hash = "sha256:a64d2487cdb00ad7461434320ccc38e60af9c404773a2f95ab0093b4453a3215"}, + {file = "Django-4.2.6.tar.gz", hash = "sha256:08f41f468b63335aea0d904c5729e0250300f6a1907bf293a65499496cdbc68f"}, ] [package.dependencies] From 6792bf887672ec1c2f8430fa8a13f487f758e2fd Mon Sep 17 00:00:00 2001 From: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:07:52 -0700 Subject: [PATCH 18/18] web: package up horizontal elements into their own components (#7053) * web: laying the groundwork for future expansion This commit is a hodge-podge of updates and changes to the web. Functional changes: - Makefile: Fixed a bug in the `help` section that prevented the WIDTH from being accurately calculated if `help` was included rather than in-lined. - ESLint: Modified the "unused vars" rule so that variables starting with an underline are not considered by the rule. This allows for elided variables in event handlers. It's not a perfect solution-- a better one would be to use Typescript's function-specialization typing, but there are too many places where we elide or ignore some variables in a function's usage that switching over to specialization would be a huge lift. - locale: It turns out, lit-locale does its own context management. We don't need to have a context at all in this space, and that's one less listener we need to attach t othe DOM. - ModalButton: A small thing, but using `nothing` instead of "html``" allows lit better control over rendering and reduces the number of actual renders of the page. - FormGroup: Provided a means to modify the aria-label, rather than stick with the just the word "Details." Specializing this field will both help users of screen readers in the future, and will allow test suites to find specific form groups now. - RadioButton: provide a more consistent interface to the RadioButton. First, we dispatch the events to the outside world, and we set the value locally so that the current `Form.ts` continues to behave as expected. We also prevent the "button lost value" event from propagating; this presents a unified select-like interface to users of the RadioButtonGroup. The current value semantics are preserved; other clients of the RadioButton do not see a change in behavior. - EventEmitter: If the custom event detail is *not* an object, do not use the object-like semantics for forwarding it; just send it as-is. - Comments: In the course of laying the groundwork for the application wizard, I throw a LOT of comments into the code, describing APIs, interfaces, class and function signatures, to better document the behavior inside and as signposts for future work. * web: permit arrays to be sent in custom events without interpolation. * actually use assignValue or rather serializeFieldRecursive Signed-off-by: Jens Langhammer * web: package up horizontal elements into their own components. This commit introduces a number of "components." Jens has this idiom: ``` ``` It's a very web-oriented idiom in that it's built out of two building blocks, the "element-horizontal" descriptor, and the input object itself. This idiom is repeated a lot throughout the code. As an alternative, let's wrap everything into an inheritable interface: ``` --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- Makefile | 2 +- tests/wdio/test/pageobjects/admin.page.ts | 2 +- .../pageobjects/applications-list.page.ts | 21 - .../wdio/test/pageobjects/forms/oauth.form.ts | 18 + tests/wdio/test/pageobjects/page.ts | 5 + .../test/pageobjects/provider-wizard.page.ts | 53 +++ .../test/pageobjects/providers-list.page.ts | 47 ++ tests/wdio/test/specs/oauth-provider.ts | 46 ++ web/.storybook/manager.ts | 1 + web/package.json | 2 +- web/src/admin/common/ak-core-group-search.ts | 104 +++++ .../admin/common/ak-flow-search/FlowSearch.ts | 1 + web/src/admin/policies/PolicyBindingForm.ts | 2 +- .../providers/oauth2/OAuth2ProviderForm.ts | 428 ++++++++---------- .../providers/proxy/ProxyProviderForm.ts | 44 +- web/src/components/ak-app-icon.ts | 2 +- web/src/components/ak-file-input.ts | 66 +++ web/src/components/ak-number-input.ts | 52 +++ web/src/components/ak-radio-input.ts | 61 +++ web/src/components/ak-slug-input.ts | 171 +++++++ web/src/components/ak-switch-input.ts | 55 +++ web/src/components/ak-text-input.ts | 66 +++ web/src/components/ak-textarea-input.ts | 58 +++ .../components/stories/ak-app-icon.stories.ts | 38 ++ .../stories/ak-number-input.stories.ts | 55 +++ .../stories/ak-radio-input.stories.ts | 67 +++ .../stories/ak-slug-input.stories.ts | 64 +++ .../stories/ak-switch-input.stories.ts | 63 +++ .../stories/ak-text-input.stories.ts | 57 +++ .../stories/ak-textarea-input.stories.ts | 55 +++ .../ak-token-copy-button.stories.ts | 1 - web/src/elements/forms/Radio.ts | 14 +- web/src/elements/utils/randomId.ts | 8 + 33 files changed, 1434 insertions(+), 295 deletions(-) delete mode 100644 tests/wdio/test/pageobjects/applications-list.page.ts create mode 100644 tests/wdio/test/pageobjects/forms/oauth.form.ts create mode 100644 tests/wdio/test/pageobjects/provider-wizard.page.ts create mode 100644 tests/wdio/test/pageobjects/providers-list.page.ts create mode 100644 tests/wdio/test/specs/oauth-provider.ts create mode 100644 web/src/admin/common/ak-core-group-search.ts create mode 100644 web/src/components/ak-file-input.ts create mode 100644 web/src/components/ak-number-input.ts create mode 100644 web/src/components/ak-radio-input.ts create mode 100644 web/src/components/ak-slug-input.ts create mode 100644 web/src/components/ak-switch-input.ts create mode 100644 web/src/components/ak-text-input.ts create mode 100644 web/src/components/ak-textarea-input.ts create mode 100644 web/src/components/stories/ak-app-icon.stories.ts create mode 100644 web/src/components/stories/ak-number-input.stories.ts create mode 100644 web/src/components/stories/ak-radio-input.stories.ts create mode 100644 web/src/components/stories/ak-slug-input.stories.ts create mode 100644 web/src/components/stories/ak-switch-input.stories.ts create mode 100644 web/src/components/stories/ak-text-input.stories.ts create mode 100644 web/src/components/stories/ak-textarea-input.stories.ts create mode 100644 web/src/elements/utils/randomId.ts diff --git a/Makefile b/Makefile index 54c53afdf..8a122b7e1 100644 --- a/Makefile +++ b/Makefile @@ -78,7 +78,7 @@ install: web-install website-install ## Install all requires dependencies for ` poetry install dev-drop-db: - echo dropdb -U ${pg_user} -h ${pg_host} ${pg_name} + dropdb -U ${pg_user} -h ${pg_host} ${pg_name} # Also remove the test-db if it exists dropdb -U ${pg_user} -h ${pg_host} test_${pg_name} || true echo redis-cli -n 0 flushall diff --git a/tests/wdio/test/pageobjects/admin.page.ts b/tests/wdio/test/pageobjects/admin.page.ts index 62db9fbc0..1be845500 100644 --- a/tests/wdio/test/pageobjects/admin.page.ts +++ b/tests/wdio/test/pageobjects/admin.page.ts @@ -5,7 +5,7 @@ const CLICK_TIME_DELAY = 250; export default class AdminPage extends Page { public get pageHeader() { - return $(">>>ak-page-header h1"); + return $('>>>ak-page-header slot[name="header"]'); } async openApplicationsListPage() { diff --git a/tests/wdio/test/pageobjects/applications-list.page.ts b/tests/wdio/test/pageobjects/applications-list.page.ts deleted file mode 100644 index 0f3d93e03..000000000 --- a/tests/wdio/test/pageobjects/applications-list.page.ts +++ /dev/null @@ -1,21 +0,0 @@ -import AdminPage from "./admin.page.js"; -import { $ } from "@wdio/globals"; - -/** - * sub page containing specific selectors and methods for a specific page - */ -class ApplicationsListPage extends AdminPage { - /** - * define selectors using getter methods - */ - - get startWizardButton() { - return $('>>>ak-wizard-frame button[slot="trigger"]'); - } - - async open() { - return await super.open("if/admin/#/core/applications"); - } -} - -export default new ApplicationsListPage(); diff --git a/tests/wdio/test/pageobjects/forms/oauth.form.ts b/tests/wdio/test/pageobjects/forms/oauth.form.ts new file mode 100644 index 000000000..d614d74ce --- /dev/null +++ b/tests/wdio/test/pageobjects/forms/oauth.form.ts @@ -0,0 +1,18 @@ +import Page from "../page.js"; +import { $ } from "@wdio/globals"; + +export class OauthForm extends Page { + async setAuthorizationFlow(selector: string) { + await this.searchSelect( + '>>>ak-flow-search[name="authorizationFlow"] input[type="text"]', + "authorizationFlow", + `button*=${selector}`, + ); + } + + get providerName() { + return $('>>>ak-form-element-horizontal[name="name"] input'); + } +} + +export default new OauthForm(); diff --git a/tests/wdio/test/pageobjects/page.ts b/tests/wdio/test/pageobjects/page.ts index ef915c6c5..3828261b9 100644 --- a/tests/wdio/test/pageobjects/page.ts +++ b/tests/wdio/test/pageobjects/page.ts @@ -38,4 +38,9 @@ export default class Page { const target = searchBlock.$(buttonSelector); return await target.click(); } + + public async logout() { + await browser.url("http://localhost:9000/flows/-/default/invalidation/"); + return await this.pause(); + } } diff --git a/tests/wdio/test/pageobjects/provider-wizard.page.ts b/tests/wdio/test/pageobjects/provider-wizard.page.ts new file mode 100644 index 000000000..e318f5cb5 --- /dev/null +++ b/tests/wdio/test/pageobjects/provider-wizard.page.ts @@ -0,0 +1,53 @@ +import AdminPage from "./admin.page.js"; +import OauthForm from "./forms/oauth.form.js"; +import { $ } from "@wdio/globals"; + +/** + * sub page containing specific selectors and methods for a specific page + */ + +class ProviderWizardView extends AdminPage { + /** + * define selectors using getter methods + */ + + oauth = OauthForm; + + get wizardTitle() { + return $(">>>ak-wizard .pf-c-wizard__header h1.pf-c-title"); + } + + get providerList() { + return $(">>>ak-provider-wizard-initial"); + } + + get nextButton() { + return $(">>>ak-wizard footer button.pf-m-primary"); + } + + async getProviderType(type: string) { + return await this.providerList.$(`>>>input[value="${type}"]`); + } + + get successMessage() { + return $('>>>[data-commit-state="success"]'); + } +} + +type Pair = [string, string]; + +// Define a getter for each provider type in the radio button collection. + +const providerValues: Pair[] = [["oauth2", "oauth2Provider"]]; + +providerValues.forEach(([value, name]: Pair) => { + Object.defineProperties(ProviderWizardView.prototype, { + [name]: { + get: function () { + return this.providerList.$(`>>>input[id="ak-provider-${value}-form"]`); + }, + }, + }); +}); + +export default new ProviderWizardView(); diff --git a/tests/wdio/test/pageobjects/providers-list.page.ts b/tests/wdio/test/pageobjects/providers-list.page.ts new file mode 100644 index 000000000..a49c18182 --- /dev/null +++ b/tests/wdio/test/pageobjects/providers-list.page.ts @@ -0,0 +1,47 @@ +import AdminPage from "./admin.page.js"; +import { $, browser } from "@wdio/globals"; +import { Key } from "webdriverio"; + +/** + * sub page containing specific selectors and methods for a specific page + */ +class ApplicationsListPage extends AdminPage { + /** + * define selectors using getter methods + */ + + get startWizardButton() { + return $('>>>ak-wizard button[slot="trigger"]'); + } + + get searchInput() { + return $('>>>ak-table-search input[name="search"]'); + } + + searchButton() { + return $('>>>ak-table-search button[type="submit"]'); + } + + // Sufficiently esoteric to justify having its own method + async clickSearchButton() { + await browser.execute( + function (searchButton: unknown) { + (searchButton as HTMLButtonElement).focus(); + }, + await $('>>>ak-table-search button[type="submit"]'), + ); + + return await browser.action("key").down(Key.Enter).up(Key.Enter).perform(); + } + + // Only use after a very precise search. :-) + async findProviderRow() { + return await $(">>>ak-provider-list td a"); + } + + async open() { + return await super.open("if/admin/#/core/providers"); + } +} + +export default new ApplicationsListPage(); diff --git a/tests/wdio/test/specs/oauth-provider.ts b/tests/wdio/test/specs/oauth-provider.ts new file mode 100644 index 000000000..e2b9af5dc --- /dev/null +++ b/tests/wdio/test/specs/oauth-provider.ts @@ -0,0 +1,46 @@ +import ProviderWizardView from "../pageobjects/provider-wizard.page.js"; +import ProvidersListPage from "../pageobjects/providers-list.page.js"; +import { randomId } from "../utils/index.js"; +import { login } from "../utils/login.js"; +import { expect } from "@wdio/globals"; + +async function reachTheProvider() { + await ProvidersListPage.logout(); + await login(); + await ProvidersListPage.open(); + await expect(await ProvidersListPage.pageHeader).toHaveText("Providers"); + + await ProvidersListPage.startWizardButton.click(); + await ProviderWizardView.wizardTitle.waitForDisplayed(); + await expect(await ProviderWizardView.wizardTitle).toHaveText("New provider"); +} + +describe("Configure Oauth2 Providers", () => { + it("Should configure a simple LDAP Application", async () => { + const newProviderName = `New OAuth2 Provider - ${randomId()}`; + + await reachTheProvider(); + + await ProviderWizardView.providerList.waitForDisplayed(); + await ProviderWizardView.oauth2Provider.scrollIntoView(); + await ProviderWizardView.oauth2Provider.click(); + await ProviderWizardView.nextButton.click(); + await ProviderWizardView.pause(); + + await ProviderWizardView.oauth.providerName.setValue(newProviderName); + await ProviderWizardView.oauth.setAuthorizationFlow( + "default-provider-authorization-explicit-consent", + ); + await ProviderWizardView.nextButton.click(); + await ProviderWizardView.pause(); + + await ProvidersListPage.searchInput.setValue(newProviderName); + await ProvidersListPage.clickSearchButton(); + await ProvidersListPage.pause(); + + const newProvider = await ProvidersListPage.findProviderRow(newProviderName); + await newProvider.waitForDisplayed(); + expect(newProvider).toExist(); + expect(await newProvider.getText()).toHaveText(newProviderName); + }); +}); diff --git a/web/.storybook/manager.ts b/web/.storybook/manager.ts index ab364c0c4..2ac3045a4 100644 --- a/web/.storybook/manager.ts +++ b/web/.storybook/manager.ts @@ -5,4 +5,5 @@ import authentikTheme from "./authentikTheme"; addons.setConfig({ theme: authentikTheme, + enableShortcuts: false, }); diff --git a/web/package.json b/web/package.json index 6a30ba57b..856e6d98b 100644 --- a/web/package.json +++ b/web/package.json @@ -15,7 +15,7 @@ "build-proxy": "run-s build-locales rollup:build-proxy", "watch": "run-s build-locales rollup:watch", "lint": "eslint . --max-warnings 0 --fix", - "lint:precommit": "eslint --max-warnings 0 --config ./.eslintrc.precommit.json $(git status --porcelain | grep '^[M?][M?]' | cut -c8- | grep -E '\\.(ts|js|tsx|jsx)$') ", + "lint:precommit": "eslint --max-warnings 0 --config ./.eslintrc.precommit.json $(git status --porcelain . | grep '^[M?][M?]' | cut -c8- | grep -E '\\.(ts|js|tsx|jsx)$') ", "lint:spelling": "codespell -D - -D ../.github/codespell-dictionary.txt -I ../.github/codespell-words.txt -S './src/locales/**' ./src -s", "lit-analyse": "lit-analyzer src", "precommit": "run-s tsc lit-analyse lint:precommit lint:spelling prettier", diff --git a/web/src/admin/common/ak-core-group-search.ts b/web/src/admin/common/ak-core-group-search.ts new file mode 100644 index 000000000..768b81c51 --- /dev/null +++ b/web/src/admin/common/ak-core-group-search.ts @@ -0,0 +1,104 @@ +import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import { AKElement } from "@goauthentik/elements/Base"; +import { SearchSelect } from "@goauthentik/elements/forms/SearchSelect"; +import { CustomListenerElement } from "@goauthentik/elements/utils/eventEmitter"; + +import { html } from "lit"; +import { customElement } from "lit/decorators.js"; +import { property, query } from "lit/decorators.js"; + +import { CoreApi, CoreGroupsListRequest, Group } from "@goauthentik/api"; + +async function fetchObjects(query?: string): Promise { + const args: CoreGroupsListRequest = { + ordering: "name", + }; + if (query !== undefined) { + args.search = query; + } + const groups = await new CoreApi(DEFAULT_CONFIG).coreGroupsList(args); + return groups.results; +} + +const renderElement = (group: Group): string => group.name; + +const renderValue = (group: Group | undefined): string | undefined => group?.pk; + +/** + * Core Group Search + * + * @element ak-core-group-search + * + * A wrapper around SearchSelect for the 8 search of groups used throughout our code + * base. This is one of those "If it's not error-free, at least it's localized to + * one place" issues. + * + */ + +@customElement("ak-core-group-search") +export class CoreGroupSearch extends CustomListenerElement(AKElement) { + /** + * The current group known to the caller. + * + * @attr + */ + @property({ type: String, reflect: true }) + group?: string; + + @query("ak-search-select") + search!: SearchSelect; + + @property({ type: String }) + name: string | null | undefined; + + selectedGroup?: Group; + + constructor() { + super(); + this.selected = this.selected.bind(this); + this.handleSearchUpdate = this.handleSearchUpdate.bind(this); + this.addCustomListener("ak-change", this.handleSearchUpdate); + } + + get value() { + return this.selectedGroup ? renderValue(this.selectedGroup) : undefined; + } + + connectedCallback() { + super.connectedCallback(); + const horizontalContainer = this.closest("ak-form-element-horizontal[name]"); + if (!horizontalContainer) { + throw new Error("This search can only be used in a named ak-form-element-horizontal"); + } + const name = horizontalContainer.getAttribute("name"); + const myName = this.getAttribute("name"); + if (name !== null && name !== myName) { + this.setAttribute("name", name); + } + } + + handleSearchUpdate(ev: CustomEvent) { + ev.stopPropagation(); + this.selectedGroup = ev.detail.value; + this.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true })); + } + + selected(group: Group) { + return this.group === group.pk; + } + + render() { + return html` + + + `; + } +} + +export default CoreGroupSearch; diff --git a/web/src/admin/common/ak-flow-search/FlowSearch.ts b/web/src/admin/common/ak-flow-search/FlowSearch.ts index 0300e0bd3..3c146a8bd 100644 --- a/web/src/admin/common/ak-flow-search/FlowSearch.ts +++ b/web/src/admin/common/ak-flow-search/FlowSearch.ts @@ -80,6 +80,7 @@ export class FlowSearch extends CustomListenerElement(AKElement) handleSearchUpdate(ev: CustomEvent) { ev.stopPropagation(); this.selectedFlow = ev.detail.value; + this.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true })); } async fetchObjects(query?: string): Promise { diff --git a/web/src/admin/policies/PolicyBindingForm.ts b/web/src/admin/policies/PolicyBindingForm.ts index 7de9d66f0..7c830a56b 100644 --- a/web/src/admin/policies/PolicyBindingForm.ts +++ b/web/src/admin/policies/PolicyBindingForm.ts @@ -92,7 +92,7 @@ export class PolicyBindingForm extends ModelForm { data.group = null; break; } - console.log(data); + if (this.instance?.pk) { return new PoliciesApi(DEFAULT_CONFIG).policiesBindingsUpdate({ policyBindingUuid: this.instance.pk, diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts index b1e07c352..e20c63d9a 100644 --- a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts +++ b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts @@ -2,6 +2,9 @@ import "@goauthentik/admin/common/ak-crypto-certificate-search"; import "@goauthentik/admin/common/ak-flow-search/ak-flow-search"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { ascii_letters, digits, first, randomString } from "@goauthentik/common/utils"; +import "@goauthentik/components/ak-radio-input"; +import "@goauthentik/components/ak-text-input"; +import "@goauthentik/components/ak-textarea-input"; import "@goauthentik/elements/forms/FormGroup"; import "@goauthentik/elements/forms/HorizontalFormElement"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; @@ -27,6 +30,91 @@ import { SubModeEnum, } from "@goauthentik/api"; +export const clientTypeOptions = [ + { + label: msg("Confidential"), + value: ClientTypeEnum.Confidential, + default: true, + description: html`${msg( + "Confidential clients are capable of maintaining the confidentiality of their credentials such as client secrets", + )}`, + }, + { + label: msg("Public"), + value: ClientTypeEnum.Public, + description: html`${msg( + "Public clients are incapable of maintaining the confidentiality and should use methods like PKCE. ", + )}`, + }, +]; + +export const subjectModeOptions = [ + { + label: msg("Based on the User's hashed ID"), + value: SubModeEnum.HashedUserId, + default: true, + }, + { + label: msg("Based on the User's ID"), + value: SubModeEnum.UserId, + }, + { + label: msg("Based on the User's UUID"), + value: SubModeEnum.UserUuid, + }, + { + label: msg("Based on the User's username"), + value: SubModeEnum.UserUsername, + }, + { + label: msg("Based on the User's Email"), + value: SubModeEnum.UserEmail, + description: html`${msg("This is recommended over the UPN mode.")}`, + }, + { + label: msg("Based on the User's UPN"), + value: SubModeEnum.UserUpn, + description: html`${msg( + "Requires the user to have a 'upn' attribute set, and falls back to hashed user ID. Use this mode only if you have different UPN and Mail domains.", + )}`, + }, +]; + +export const issuerModeOptions = [ + { + label: msg("Each provider has a different issuer, based on the application slug"), + value: IssuerModeEnum.PerProvider, + default: true, + }, + { + label: msg("Same identifier is used for all providers"), + value: IssuerModeEnum.Global, + }, +]; + +const redirectUriHelpMessages = [ + msg( + "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows.", + ), + msg( + "If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved.", + ), + msg( + 'To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have.', + ), +]; + +export const redirectUriHelp = html`${redirectUriHelpMessages.map( + (m) => html`

    ${m}

    `, +)}`; + +/** + * Form page for OAuth2 Authentication Method + * + * @element ak-provider-oauth2-form + * + */ + @customElement("ak-provider-oauth2-form") export class OAuth2ProviderFormPage extends ModelForm { propertyMappings?: PaginatedScopeMappingList; @@ -77,22 +165,23 @@ export class OAuth2ProviderFormPage extends ModelForm { } renderForm(): TemplateResult { + const provider = this.instance; + return html`
    - - - + +

    @@ -100,13 +189,13 @@ export class OAuth2ProviderFormPage extends ModelForm {

    @@ -117,96 +206,50 @@ export class OAuth2ProviderFormPage extends ModelForm { ${msg("Protocol settings")}

    - ) => { + this.showClientSecret = ev.detail !== ClientTypeEnum.Public; + }} + .options=${clientTypeOptions} > - ) => { - if (ev.detail === ClientTypeEnum.Public) { - this.showClientSecret = false; - } else { - this.showClientSecret = true; - } - }} - .options=${[ - { - label: msg("Confidential"), - value: ClientTypeEnum.Confidential, - default: true, - description: html`${msg( - "Confidential clients are capable of maintaining the confidentiality of their credentials such as client secrets", - )}`, - }, - { - label: msg("Public"), - value: ClientTypeEnum.Public, - description: html`${msg( - "Public clients are incapable of maintaining the confidentiality and should use methods like PKCE. ", - )}`, - }, - ]} - .value=${this.instance?.clientType} - > - - - + - - - + - - - + - -

    - ${msg( - "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows.", - )} -

    -

    - ${msg( - "If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved.", - )} -

    -

    - ${msg( - 'To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have.', - )} -

    -
    + + +

    ${msg("Key used to sign the tokens.")}

    @@ -216,69 +259,53 @@ ${this.instance?.redirectUris} ${msg("Advanced protocol settings")}
    - + ${msg("Configure how long access codes are valid for.")} +

    + `} > - -

    - ${msg("Configure how long access codes are valid for.")} -

    - -
    - + + ${msg("Configure how long access tokens are valid for.")} +

    + `} > - -

    - ${msg("Configure how long access tokens are valid for.")} -

    - -
    - + + + ${msg("Configure how long refresh tokens are valid for.")} +

    + `} > - -

    - ${msg("Configure how long refresh tokens are valid for.")} -

    - -
    + - - - - - - ${msg("Include claims in id_token")} - -

    - ${msg( - "Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint.", - )} -

    -
    - + + label=${msg("Include claims in id_token")} + ?checked=${first(provider?.includeClaimsInIdToken, true)} + help=${msg( + "Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint.", + )}> + - - -

    - ${msg( - "Configure how the issuer field of the ID Token should be filled.", - )} -

    -
    +
    @@ -407,7 +365,7 @@ ${this.instance?.redirectUris} -

    - ${msg( - "User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used.", - )} -

    - - + + - -

    - ${msg( - "User/Group Attribute used for the password part of the HTTP-Basic Header.", - )} -

    -
    `; + `; } renderModeSelector(): TemplateResult { diff --git a/web/src/components/ak-app-icon.ts b/web/src/components/ak-app-icon.ts index 5af288ad8..fcdb9d893 100644 --- a/web/src/components/ak-app-icon.ts +++ b/web/src/components/ak-app-icon.ts @@ -13,7 +13,7 @@ import { Application } from "@goauthentik/api"; @customElement("ak-app-icon") export class AppIcon extends AKElement { - @property({ attribute: false }) + @property({ type: Object, attribute: false }) app?: Application; @property() diff --git a/web/src/components/ak-file-input.ts b/web/src/components/ak-file-input.ts new file mode 100644 index 000000000..1fe2117a8 --- /dev/null +++ b/web/src/components/ak-file-input.ts @@ -0,0 +1,66 @@ +import { AKElement } from "@goauthentik/elements/Base"; + +import { msg } from "@lit/localize"; +import { html, nothing } from "lit"; +import { customElement, property, query } from "lit/decorators.js"; + +@customElement("ak-file-input") +export class AkFileInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + /* + * The message to show next to the "current icon". + * + * @attr + */ + @property({ type: String }) + current = msg("Currently set to:"); + + @property({ type: String }) + value = ""; + + @property({ type: Boolean }) + required = false; + + @property({ type: String }) + help = ""; + + @query('input[type="file"]') + input!: HTMLInputElement; + + get files() { + return this.input.files; + } + + render() { + const currentMsg = + this.value && this.current + ? html`

    ${this.current} ${this.value}

    ` + : nothing; + + return html` + + ${currentMsg} + ${this.help.trim() ? html`

    ${this.help}

    ` : nothing} +
    `; + } +} diff --git a/web/src/components/ak-number-input.ts b/web/src/components/ak-number-input.ts new file mode 100644 index 000000000..dcfef1541 --- /dev/null +++ b/web/src/components/ak-number-input.ts @@ -0,0 +1,52 @@ +import { AKElement } from "@goauthentik/elements/Base"; + +import { html, nothing } from "lit"; +import { customElement, property } from "lit/decorators.js"; +import { ifDefined } from "lit/directives/if-defined.js"; + +@customElement("ak-number-input") +export class AkNumberInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + @property({ type: Number, reflect: true }) + value = 0; + + @property({ type: Boolean }) + required = false; + + @property({ type: String }) + help = ""; + + render() { + return html` + + ${this.help ? html`

    ${this.help}

    ` : nothing} +
    `; + } +} + +export default AkNumberInput; diff --git a/web/src/components/ak-radio-input.ts b/web/src/components/ak-radio-input.ts new file mode 100644 index 000000000..c65b8f1ae --- /dev/null +++ b/web/src/components/ak-radio-input.ts @@ -0,0 +1,61 @@ +import { AKElement } from "@goauthentik/elements/Base"; +import { RadioOption } from "@goauthentik/elements/forms/Radio"; +import "@goauthentik/elements/forms/Radio"; + +import { html, nothing } from "lit"; +import { customElement, property } from "lit/decorators.js"; + +@customElement("ak-radio-input") +export class AkRadioInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + @property({ type: String }) + help = ""; + + @property({ type: Boolean }) + required = false; + + @property({ type: Object }) + value!: T; + + @property({ type: Array }) + options: RadioOption[] = []; + + handleInput(ev: CustomEvent) { + this.value = ev.detail.value; + } + + render() { + return html` + + ${this.help.trim() + ? html`

    ${this.help}

    ` + : nothing} +
    `; + } +} + +export default AkRadioInput; diff --git a/web/src/components/ak-slug-input.ts b/web/src/components/ak-slug-input.ts new file mode 100644 index 000000000..b4fac3380 --- /dev/null +++ b/web/src/components/ak-slug-input.ts @@ -0,0 +1,171 @@ +import { convertToSlug } from "@goauthentik/common/utils"; +import { AKElement } from "@goauthentik/elements/Base"; + +import { TemplateResult, html, nothing } from "lit"; +import { customElement, property, query } from "lit/decorators.js"; +import { ifDefined } from "lit/directives/if-defined.js"; + +@customElement("ak-slug-input") +export class AkSlugInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + @property({ type: String, reflect: true }) + value = ""; + + @property({ type: Boolean }) + required = false; + + @property({ type: String }) + help = ""; + + @property({ type: Boolean }) + hidden = false; + + @property({ type: Object }) + bighelp!: TemplateResult | TemplateResult[]; + + @property({ type: String }) + source = ""; + + origin?: HTMLInputElement | null; + + @query("input") + input!: HTMLInputElement; + + touched: boolean = false; + + constructor() { + super(); + this.slugify = this.slugify.bind(this); + this.handleTouch = this.handleTouch.bind(this); + } + + firstUpdated() { + this.input.addEventListener("input", this.handleTouch); + } + + renderHelp() { + return [ + this.help ? html`

    ${this.help}

    ` : nothing, + this.bighelp ? this.bighelp : nothing, + ]; + } + + // Do not stop propagation of this event; it must be sent up the tree so that a parent + // component, such as a custom forms manager, may receive it. + handleTouch(ev: Event) { + this.input.value = convertToSlug(this.input.value); + this.value = this.input.value; + + if (this.origin && this.origin.value === "" && this.input.value === "") { + this.touched = false; + return; + } + + if (ev && ev.target && ev.target instanceof HTMLInputElement) { + this.touched = true; + } + } + + slugify(ev: Event) { + if (!(ev && ev.target && ev.target instanceof HTMLInputElement)) { + return; + } + + // Reset 'touched' status if the slug & target have been reset + if (ev.target.value === "" && this.input.value === "") { + this.touched = false; + } + + // Don't proceed if the user has hand-modified the slug + if (this.touched) { + return; + } + + // A very primitive heuristic: if the previous iteration of the slug and the current + // iteration are *similar enough*, set the input value. "Similar enough" here is defined as + // "any event which adds or removes a character but leaves the rest of the slug looking like + // the previous iteration, set it to the current iteration." + + const newSlug = convertToSlug(ev.target.value); + const oldSlug = this.input.value; + const [shorter, longer] = + newSlug.length < oldSlug.length ? [newSlug, oldSlug] : [oldSlug, newSlug]; + + if (longer.substring(0, shorter.length) !== shorter) { + return; + } + + // The browser, as a security measure, sets the originating HTML object to be the + // target; developers cannot change it. In order to provide a meaningful value + // to listeners, both the name and value of the host must match those of the target + // input. The name is already handled since it's both required and automatically + // forwarded to our templated input, but the value must also be set. + + this.value = this.input.value = newSlug; + this.dispatchEvent( + new Event("input", { + bubbles: true, + cancelable: true, + }), + ); + } + + connectedCallback() { + super.connectedCallback(); + + // Set up listener on source element, so we can slugify the content. + setTimeout(() => { + if (this.source) { + const rootNode = this.getRootNode(); + if (rootNode instanceof ShadowRoot || rootNode instanceof Document) { + this.origin = rootNode.querySelector(this.source); + } + if (this.origin) { + this.origin.addEventListener("input", this.slugify); + } + } + }, 0); + } + + disconnectedCallback() { + if (this.origin) { + this.origin.removeEventListener("input", this.slugify); + } + super.disconnectedCallback(); + } + + render() { + return html` + + ${this.renderHelp()} + `; + } +} + +export default AkSlugInput; diff --git a/web/src/components/ak-switch-input.ts b/web/src/components/ak-switch-input.ts new file mode 100644 index 000000000..33eb0434c --- /dev/null +++ b/web/src/components/ak-switch-input.ts @@ -0,0 +1,55 @@ +import { AKElement } from "@goauthentik/elements/Base"; + +import { html, nothing } from "lit"; +import { customElement, property, query } from "lit/decorators.js"; + +@customElement("ak-switch-input") +export class AkSwitchInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + @property({ type: Boolean }) + checked: boolean = false; + + @property({ type: Boolean }) + required = false; + + @property({ type: String }) + help = ""; + + @query("input.pf-c-switch__input[type=checkbox]") + checkbox!: HTMLInputElement; + + render() { + const doCheck = this.checked ? this.checked : undefined; + + return html` + + ${this.help.trim() ? html`

    ${this.help}

    ` : nothing} +
    `; + } +} + +export default AkSwitchInput; diff --git a/web/src/components/ak-text-input.ts b/web/src/components/ak-text-input.ts new file mode 100644 index 000000000..2e7a9dd63 --- /dev/null +++ b/web/src/components/ak-text-input.ts @@ -0,0 +1,66 @@ +import { AKElement } from "@goauthentik/elements/Base"; + +import { TemplateResult, html, nothing } from "lit"; +import { customElement, property } from "lit/decorators.js"; +import { ifDefined } from "lit/directives/if-defined.js"; + +@customElement("ak-text-input") +export class AkTextInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + @property({ type: String, reflect: true }) + value = ""; + + @property({ type: Boolean }) + required = false; + + @property({ type: String }) + help = ""; + + @property({ type: Boolean }) + hidden = false; + + @property({ type: Object }) + bighelp!: TemplateResult | TemplateResult[]; + + renderHelp() { + return [ + this.help ? html`

    ${this.help}

    ` : nothing, + this.bighelp ? this.bighelp : nothing, + ]; + } + + render() { + return html` + + ${this.renderHelp()} + `; + } +} + +export default AkTextInput; diff --git a/web/src/components/ak-textarea-input.ts b/web/src/components/ak-textarea-input.ts new file mode 100644 index 000000000..95b138550 --- /dev/null +++ b/web/src/components/ak-textarea-input.ts @@ -0,0 +1,58 @@ +import { AKElement } from "@goauthentik/elements/Base"; + +import { TemplateResult, html, nothing } from "lit"; +import { customElement, property } from "lit/decorators.js"; + +@customElement("ak-textarea-input") +export class AkTextareaInput extends AKElement { + // Render into the lightDOM. This effectively erases the shadowDOM nature of this component, but + // we're not actually using that and, for the meantime, we need the form handlers to be able to + // find the children of this component. + // + // TODO: This abstraction is wrong; it's putting *more* layers in as a way of managing the + // visual clutter and legibility issues of ak-form-elemental-horizontal and patternfly in + // general. + protected createRenderRoot() { + return this; + } + + @property({ type: String }) + name!: string; + + @property({ type: String }) + label = ""; + + @property({ type: String }) + value = ""; + + @property({ type: Boolean }) + required = false; + + @property({ type: String }) + help = ""; + + @property({ type: Object }) + bighelp!: TemplateResult | TemplateResult[]; + + renderHelp() { + return [ + this.help ? html`

    ${this.help}

    ` : nothing, + this.bighelp ? this.bighelp : nothing, + ]; + } + + render() { + return html` + + ${this.renderHelp()} + `; + } +} + +export default AkTextareaInput; diff --git a/web/src/components/stories/ak-app-icon.stories.ts b/web/src/components/stories/ak-app-icon.stories.ts new file mode 100644 index 000000000..1847ad7bd --- /dev/null +++ b/web/src/components/stories/ak-app-icon.stories.ts @@ -0,0 +1,38 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../ak-app-icon"; +import AkAppIcon from "../ak-app-icon"; + +const metadata: Meta = { + title: "Components / App Icon", + component: "ak-app-icon", + parameters: { + docs: { + description: { + component: "A small card displaying an application icon", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
    + + ${testItem} +
    `; + +export const AppIcon = () => { + return container(html``); +}; diff --git a/web/src/components/stories/ak-number-input.stories.ts b/web/src/components/stories/ak-number-input.stories.ts new file mode 100644 index 000000000..642a543a8 --- /dev/null +++ b/web/src/components/stories/ak-number-input.stories.ts @@ -0,0 +1,55 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../ak-number-input"; +import AkNumberInput from "../ak-number-input"; + +const metadata: Meta = { + title: "Components / Number Input", + component: "ak-number-input", + parameters: { + docs: { + description: { + component: "A stylized value control for number input", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
    + + + ${testItem} + +
      +
      `; + +export const NumberInput = () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const displayChange = (ev: any) => { + document.getElementById( + "number-message-pad", + )!.innerText = `Value selected: ${JSON.stringify(ev.target.value, null, 2)}`; + }; + + return container( + html``, + ); +}; diff --git a/web/src/components/stories/ak-radio-input.stories.ts b/web/src/components/stories/ak-radio-input.stories.ts new file mode 100644 index 000000000..68be02ecd --- /dev/null +++ b/web/src/components/stories/ak-radio-input.stories.ts @@ -0,0 +1,67 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../ak-radio-input"; +import AkRadioInput from "../ak-radio-input"; + +const metadata: Meta>> = { + title: "Components / Radio Input", + component: "ak-radio-input", + parameters: { + docs: { + description: { + component: "A stylized value control for radio buttons", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
      + + + ${testItem} + +
        +
        `; + +const testOptions = [ + { label: "Option One", description: html`This is option one.`, value: { funky: 1 } }, + { label: "Option Two", description: html`This is option two.`, value: { invalid: 2 } }, + { label: "Option Three", description: html`This is option three.`, value: { weird: 3 } }, +]; + +export const RadioInput = () => { + const result = ""; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const displayChange = (ev: any) => { + document.getElementById("radio-message-pad")!.innerText = `Value selected: ${JSON.stringify( + ev.target.value, + null, + 2, + )}`; + }; + + return container( + html` +
        ${result}
        `, + ); +}; diff --git a/web/src/components/stories/ak-slug-input.stories.ts b/web/src/components/stories/ak-slug-input.stories.ts new file mode 100644 index 000000000..57a51fc5e --- /dev/null +++ b/web/src/components/stories/ak-slug-input.stories.ts @@ -0,0 +1,64 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../ak-slug-input"; +import AkSlugInput from "../ak-slug-input"; +import "../ak-text-input"; + +const metadata: Meta = { + title: "Components / Slug Input", + component: "ak-slug-input", + parameters: { + docs: { + description: { + component: "A stylized value control for slug input", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
        + + + ${testItem} + +
          +
          `; + +export const SlugInput = () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const displayChange = (ev: any) => { + document.getElementById("text-message-pad")!.innerText = `Value selected: ${JSON.stringify( + ev.target.value, + null, + 2, + )}`; + }; + + return container( + html` + `, + ); +}; diff --git a/web/src/components/stories/ak-switch-input.stories.ts b/web/src/components/stories/ak-switch-input.stories.ts new file mode 100644 index 000000000..530e8c368 --- /dev/null +++ b/web/src/components/stories/ak-switch-input.stories.ts @@ -0,0 +1,63 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +// Necessary because we're NOT supplying the CSS for the interiors +// in our "light" dom. +import PFSwitch from "@patternfly/patternfly/components/Switch/switch.css"; + +import "../ak-switch-input"; +import AkSwitchInput from "../ak-switch-input"; + +const metadata: Meta = { + title: "Components / Switch Input", + component: "ak-switch-input", + parameters: { + docs: { + description: { + component: "A stylized value control for a switch-like toggle", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
          + + + ${testItem} + +
            +
            `; + +export const SwitchInput = () => { + const result = ""; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const displayChange = (ev: any) => { + document.getElementById( + "switch-message-pad", + )!.innerText = `Value selected: ${JSON.stringify(ev.target.checked, null, 2)}`; + }; + + return container( + html` +
            ${result}
            `, + ); +}; diff --git a/web/src/components/stories/ak-text-input.stories.ts b/web/src/components/stories/ak-text-input.stories.ts new file mode 100644 index 000000000..0359f2fab --- /dev/null +++ b/web/src/components/stories/ak-text-input.stories.ts @@ -0,0 +1,57 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../ak-text-input"; +import AkTextInput from "../ak-text-input"; + +const metadata: Meta = { + title: "Components / Text Input", + component: "ak-text-input", + parameters: { + docs: { + description: { + component: "A stylized value control for text input", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
            + + + ${testItem} + +
              +
              `; + +export const TextInput = () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const displayChange = (ev: any) => { + document.getElementById("text-message-pad")!.innerText = `Value selected: ${JSON.stringify( + ev.target.value, + null, + 2, + )}`; + }; + + return container( + html``, + ); +}; diff --git a/web/src/components/stories/ak-textarea-input.stories.ts b/web/src/components/stories/ak-textarea-input.stories.ts new file mode 100644 index 000000000..cab3c47ff --- /dev/null +++ b/web/src/components/stories/ak-textarea-input.stories.ts @@ -0,0 +1,55 @@ +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta } from "@storybook/web-components"; + +import { TemplateResult, html } from "lit"; + +import "../ak-textarea-input"; +import AkTextareaInput from "../ak-textarea-input"; + +const metadata: Meta = { + title: "Components / Textarea Input", + component: "ak-textarea-input", + parameters: { + docs: { + description: { + component: "A stylized value control for textarea input", + }, + }, + }, +}; + +export default metadata; + +const container = (testItem: TemplateResult) => + html`
              + + + ${testItem} + +
                +
                `; + +export const TextareaInput = () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const displayChange = (ev: any) => { + document.getElementById( + "textarea-message-pad", + )!.innerText = `Value selected: ${JSON.stringify(ev.target.value, null, 2)}`; + }; + + return container( + html``, + ); +}; diff --git a/web/src/elements/buttons/TokenCopyButton/ak-token-copy-button.stories.ts b/web/src/elements/buttons/TokenCopyButton/ak-token-copy-button.stories.ts index 5aa8be34d..6b3f52e84 100644 --- a/web/src/elements/buttons/TokenCopyButton/ak-token-copy-button.stories.ts +++ b/web/src/elements/buttons/TokenCopyButton/ak-token-copy-button.stories.ts @@ -44,7 +44,6 @@ const container = (testItem: TemplateResult) => // eslint-disable-next-line @typescript-eslint/no-explicit-any const displayMessage = (result: any) => { - console.log(result); const doc = new DOMParser().parseFromString( `
              • Event: ${ "result" in result.detail ? result.detail.result.key : result.detail.error diff --git a/web/src/elements/forms/Radio.ts b/web/src/elements/forms/Radio.ts index 3d82ca4cb..27fbdf0b9 100644 --- a/web/src/elements/forms/Radio.ts +++ b/web/src/elements/forms/Radio.ts @@ -9,6 +9,8 @@ import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFRadio from "@patternfly/patternfly/components/Radio/radio.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; +import { randomId } from "../utils/randomId"; + export interface RadioOption { label: string; description?: TemplateResult; @@ -27,6 +29,8 @@ export class Radio extends CustomEmitterElement(AKElement) { @property({ attribute: false }) value?: T; + internalId: string; + static get styles(): CSSResult[] { return [ PFBase, @@ -50,6 +54,7 @@ export class Radio extends CustomEmitterElement(AKElement) { super(); this.renderRadio = this.renderRadio.bind(this); this.buildChangeHandler = this.buildChangeHandler.bind(this); + this.internalId = this.name || `radio-${randomId(8)}`; } // Set the value if it's not set already. Property changes inside the `willUpdate()` method do @@ -72,15 +77,14 @@ export class Radio extends CustomEmitterElement(AKElement) { // This is a controlled input. Stop the native event from escaping or affecting the // value. We'll do that ourselves. ev.stopPropagation(); - ev.preventDefault(); this.value = option.value; - this.dispatchCustomEvent("change", option.value); - this.dispatchCustomEvent("input", option.value); + this.dispatchCustomEvent("change", { value: option.value }); + this.dispatchCustomEvent("input", { value: option.value }); }; } - renderRadio(option: RadioOption) { - const elId = `${this.name}-${option.value}`; + renderRadio(option: RadioOption, index: number) { + const elId = `${this.internalId}-${index}`; const handler = this.buildChangeHandler(option); return html`

                { + const r = (dt + Math.random() * 16) % 16 | 0; + dt = Math.floor(dt / 16); + return (c == "x" ? r : (r & 0x3) | 0x8).toString(16); + }); +}