From 8090dbad652bc50ba4b00ebb5dea877a89655d4f Mon Sep 17 00:00:00 2001 From: Martin Oppitz <6279703+deleonio@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:01:06 +0100 Subject: [PATCH] feat: add disabled to accordion, details and links too --- packages/components/package.json | 3 +- packages/components/src/components.d.ts | 40 ++++ .../src/components/accordion/component.tsx | 27 ++- .../src/components/accordion/readme.md | 13 +- .../src/components/button/component.tsx | 7 +- .../src/components/details/component.tsx | 29 ++- .../src/components/details/readme.md | 11 +- .../src/components/link-button/component.tsx | 6 + .../src/components/link-button/readme.md | 1 + .../src/components/link/component.tsx | 30 ++- .../components/src/components/link/readme.md | 1 + .../components/src/components/link/shadow.tsx | 6 + .../packages/components/package.json | 2 +- packages/schema/package.json | 2 +- packages/schema/src/components/accordion.ts | 5 +- packages/schema/src/components/details.ts | 5 +- packages/schema/src/components/link.ts | 4 +- packages/schema/src/props/disabled.ts | 12 +- packages/themes/bmf/package.json | 2 +- packages/themes/default/package.json | 2 +- packages/themes/ecl/package.json | 2 +- packages/themes/itzbund/package.json | 2 +- packages/themes/package.json | 2 +- packages/tools/kolibri-cli/package.json | 2 +- pnpm-lock.yaml | 194 +++++++++--------- 25 files changed, 277 insertions(+), 133 deletions(-) diff --git a/packages/components/package.json b/packages/components/package.json index a3dac620267..28ca31e0076 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -52,12 +52,13 @@ ], "scripts": { "build": "npm run build:light", + "build:deps": "pnpm --filter @public-ui/components^... build", "build:light": "npm run clear && mkdir doc && cross-env NODE_ENV=production stencil build --docs --prod && node scripts/hashing.js && node scripts/autogen.doc.js && node scripts/vaadin.js && npm run format -- -w", "clear": "rimraf dist doc loader www ../adapters/angular/v11/src ../adapters/angular/v12/src ../adapters/angular/v13/src ../adapters/angular/v14/src ../adapters/angular/v15/src ../adapters/angular/v16/src ../adapters/angular/v17/src ../adapters/hydrate/dist ../adapters/react/src ../adapters/solid/src ../adapters/vaadin/*.java ../adapters/vue/src", "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*,@public-ui/*,@stencil/*,eslint-*,postcss-windicss,tslib,workbox-build", "format": "prettier --check src", "lighthouse": "lighthouse --chrome-flags=\"--headless\" --output-path lighthouse.report.html --preset=desktop --quiet", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "unused": "ts-prune src -e", "start": "cross-env NODE_ENV=development stencil build --dev --serve --watch --no-open", "dev": "cross-env NODE_ENV=development stencil build --prod --watch", diff --git a/packages/components/src/components.d.ts b/packages/components/src/components.d.ts index 35b008a06a6..1143bce074c 100644 --- a/packages/components/src/components.d.ts +++ b/packages/components/src/components.d.ts @@ -21,6 +21,10 @@ export namespace Components { "_tooltipAlign"?: TooltipAlignPropType; } interface KolAccordion { + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). */ @@ -407,6 +411,10 @@ export namespace Components { "_on"?: KoliBriCardEventCallbacks; } interface KolDetails { + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). */ @@ -1643,6 +1651,10 @@ export namespace Components { * Defines the value for the aria-current attribute. */ "_ariaCurrentValue"?: AriaCurrentValuePropType; + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Tells the browser that the link contains a file. Optionally sets the filename. */ @@ -1698,6 +1710,10 @@ export namespace Components { * Defines the custom class attribute if _variant="custom" is set. */ "_customClass"?: CustomClassPropType; + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Tells the browser that the link contains a file. Optionally sets the filename. */ @@ -1771,6 +1787,10 @@ export namespace Components { * Defines the value for the aria-current attribute. */ "_ariaCurrentValue"?: AriaCurrentValuePropType; + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Tells the browser that the link contains a file. Optionally sets the filename. */ @@ -2810,6 +2830,10 @@ declare namespace LocalJSX { "_tooltipAlign"?: TooltipAlignPropType; } interface KolAccordion { + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). */ @@ -3194,6 +3218,10 @@ declare namespace LocalJSX { "_on"?: KoliBriCardEventCallbacks; } interface KolDetails { + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). */ @@ -4420,6 +4448,10 @@ declare namespace LocalJSX { * Defines the value for the aria-current attribute. */ "_ariaCurrentValue"?: AriaCurrentValuePropType; + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Tells the browser that the link contains a file. Optionally sets the filename. */ @@ -4475,6 +4507,10 @@ declare namespace LocalJSX { * Defines the custom class attribute if _variant="custom" is set. */ "_customClass"?: CustomClassPropType; + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Tells the browser that the link contains a file. Optionally sets the filename. */ @@ -4548,6 +4584,10 @@ declare namespace LocalJSX { * Defines the value for the aria-current attribute. */ "_ariaCurrentValue"?: AriaCurrentValuePropType; + /** + * Makes the element not focusable and ignore all events. + */ + "_disabled"?: boolean; /** * Tells the browser that the link contains a file. Optionally sets the filename. */ diff --git a/packages/components/src/components/accordion/component.tsx b/packages/components/src/components/accordion/component.tsx index ac63cdd36dd..f6733bac524 100644 --- a/packages/components/src/components/accordion/component.tsx +++ b/packages/components/src/components/accordion/component.tsx @@ -1,13 +1,14 @@ // https://codepen.io/mbxtr/pen/OJPOYg?html-preprocessor=haml import type { JSX } from '@stencil/core'; -import { featureHint, propagateFocus, setState, validateLabel, validateOpen } from '@public-ui/schema'; +import { featureHint, propagateFocus, setState, validateDisabled, validateLabel, validateOpen } from '@public-ui/schema'; import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'; import { nonce } from '../../utils/dev.utils'; import { watchHeadingLevel } from '../heading/validation'; import type { AccordionAPI, AccordionStates, HeadingLevel, KoliBriAccordionCallbacks, LabelPropType, OpenPropType } from '@public-ui/schema'; +import type { DisabledPropType } from '@public-ui/schema'; featureHint(`[KolAccordion] Anfrage nach einer KolAccordionGroup bei dem immer nur ein Accordion geöffnet ist. - onClick auf der KolAccordion anwenden @@ -40,6 +41,7 @@ export class KolAccordion implements AccordionAPI {
@@ -50,6 +52,7 @@ export class KolAccordion implements AccordionAPI { slot="expert" _ariaControls={this.nonce} _ariaExpanded={this.state._open} + _disabled={this.state._disabled} _icons={this.state._open ? 'codicon codicon-remove' : 'codicon codicon-add'} _label={this.state._label} _on={{ onClick: this.onClick }} @@ -67,6 +70,11 @@ export class KolAccordion implements AccordionAPI { ); } + /** + * Makes the element not focusable and ignore all events. + */ + @Prop() public _disabled?: boolean = false; + /** * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). */ @@ -93,6 +101,11 @@ export class KolAccordion implements AccordionAPI { _level: 1, }; + @Watch('_disabled') + public validateDisabled(value?: DisabledPropType): void { + validateDisabled(this, value); + } + @Watch('_label') public validateLabel(value?: LabelPropType): void { validateLabel(this, value, { @@ -118,12 +131,24 @@ export class KolAccordion implements AccordionAPI { } public componentWillLoad(): void { + this.validateDisabled(this._disabled); this.validateLabel(this._label); this.validateLevel(this._level); this.validateOn(this._on); this.validateOpen(this._open); } + public componentDidRender() { + if (this.host && this.host.shadowRoot) { + Array.from(this.host.shadowRoot.querySelectorAll('[aria-disabled="true"]')).forEach((el) => { + el.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + }); + }); + } + } + private onClick = (event: Event) => { this._open = !this._open; diff --git a/packages/components/src/components/accordion/readme.md b/packages/components/src/components/accordion/readme.md index eded27cc07e..d2a92dca898 100644 --- a/packages/components/src/components/accordion/readme.md +++ b/packages/components/src/components/accordion/readme.md @@ -109,12 +109,13 @@ Standardansicht gelegt. ## Properties -| Property | Attribute | Description | Type | Default | -| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ----------- | -| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). | `string` | `undefined` | -| `_level` | `_level` | Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text. | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined` | `1` | -| `_on` | -- | Gibt die EventCallback-Funktionen an. | `undefined \| { onClick?: EventValueOrEventCallback \| undefined; }` | `undefined` | -| `_open` | `_open` | If set (to true) opens/expands the element, closes if not set (or set to false). | `boolean \| undefined` | `false` | +| Property | Attribute | Description | Type | Default | +| --------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ----------- | +| `_disabled` | `_disabled` | Makes the element not focusable and ignore all events. | `boolean \| undefined` | `false` | +| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). | `string` | `undefined` | +| `_level` | `_level` | Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text. | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined` | `1` | +| `_on` | -- | Gibt die EventCallback-Funktionen an. | `undefined \| { onClick?: EventValueOrEventCallback \| undefined; }` | `undefined` | +| `_open` | `_open` | If set (to true) opens/expands the element, closes if not set (or set to false). | `boolean \| undefined` | `false` | ## Slots diff --git a/packages/components/src/components/button/component.tsx b/packages/components/src/components/button/component.tsx index 0f73e2bc168..604774997e2 100644 --- a/packages/components/src/components/button/component.tsx +++ b/packages/components/src/components/button/component.tsx @@ -16,7 +16,6 @@ import type { TooltipAlignPropType, } from '@public-ui/schema'; import { - a11yHintDisabled, mapBoolean2String, mapStringOrBoolean2String, propagateFocus, @@ -40,7 +39,7 @@ import { validateTooltipAlign, watchString, } from '@public-ui/schema'; -import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'; +import { Component, Element, Host, Prop, State, Watch, h } from '@stencil/core'; import { stopPropagation, tryToDispatchKoliBriEvent } from '../../utils/events'; import { propagateResetEventToForm, propagateSubmitEventToForm } from '../form/controller'; @@ -103,6 +102,7 @@ export class KolButtonWc implements ButtonAPI { aria-selected={mapStringOrBoolean2String(this.state._ariaSelected)} class={{ button: true, + disabled: this.state._disabled === true, [this.state._variant as string]: this.state._variant !== 'custom', [this.state._customClass as string]: this.state._variant === 'custom' && typeof this.state._customClass === 'string' && this.state._customClass.length > 0, @@ -283,9 +283,6 @@ export class KolButtonWc implements ButtonAPI { @Watch('_disabled') public validateDisabled(value?: DisabledPropType): void { validateDisabled(this, value); - if (value === true) { - a11yHintDisabled(); - } } @Watch('_hideLabel') diff --git a/packages/components/src/components/details/component.tsx b/packages/components/src/components/details/component.tsx index 9786891d511..b2e3afc011e 100644 --- a/packages/components/src/components/details/component.tsx +++ b/packages/components/src/components/details/component.tsx @@ -6,6 +6,8 @@ import { tryToDispatchKoliBriEvent } from '../../utils/events'; import DetailsAnimationController from './DetailsAnimationController'; import type { JSX } from '@stencil/core'; +import type { DisabledPropType } from '@public-ui/schema'; +import { validateDisabled } from '@public-ui/schema'; /** * @slot - Der Inhalt, der in der Detailbeschreibung angezeigt wird. */ @@ -31,12 +33,15 @@ export class KolDetails implements DetailsAPI { return (
{ this.detailsElement = el as HTMLDetailsElement; }} onToggle={this.handleToggle} > - + {this.state._label} @@ -50,6 +55,11 @@ export class KolDetails implements DetailsAPI { ); } + /** + * Makes the element not focusable and ignore all events. + */ + @Prop() public _disabled?: boolean = false; + /** * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). */ @@ -71,6 +81,11 @@ export class KolDetails implements DetailsAPI { _on: {}, }; + @Watch('_disabled') + public validateDisabled(value?: DisabledPropType): void { + validateDisabled(this, value); + } + @Watch('_label') public validateLabel(value?: LabelPropType): void { validateLabel(this, value, { @@ -91,11 +106,23 @@ export class KolDetails implements DetailsAPI { } public componentWillLoad(): void { + this.validateDisabled(this._disabled); this.validateLabel(this._label); this.validateOn(this._on); this.validateOpen(this._open); } + public componentDidRender() { + if (this.host && this.host.shadowRoot) { + Array.from(this.host.shadowRoot.querySelectorAll('[aria-disabled="true"]')).forEach((el) => { + el.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + }); + }); + } + } + public componentDidLoad() { if (this.detailsElement && this.summaryElement && this.contentElement) { const animationController = new DetailsAnimationController(this.detailsElement, this.summaryElement, this.contentElement); diff --git a/packages/components/src/components/details/readme.md b/packages/components/src/components/details/readme.md index 49bb5989d03..80f1b19b161 100644 --- a/packages/components/src/components/details/readme.md +++ b/packages/components/src/components/details/readme.md @@ -90,11 +90,12 @@ Verwenden Sie das Attribut **`_label`**, um den Text zu definieren, der als Übe ## Properties -| Property | Attribute | Description | Type | Default | -| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ----------- | -| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). | `string` | `undefined` | -| `_on` | -- | Defines the callback functions for details. | `undefined \| { onToggle?: EventValueOrEventCallback \| undefined; }` | `undefined` | -| `_open` | `_open` | If set (to true) opens/expands the element, closes if not set (or set to false). | `boolean \| undefined` | `false` | +| Property | Attribute | Description | Type | Default | +| --------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ----------- | +| `_disabled` | `_disabled` | Makes the element not focusable and ignore all events. | `boolean \| undefined` | `false` | +| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). | `string` | `undefined` | +| `_on` | -- | Defines the callback functions for details. | `undefined \| { onToggle?: EventValueOrEventCallback \| undefined; }` | `undefined` | +| `_open` | `_open` | If set (to true) opens/expands the element, closes if not set (or set to false). | `boolean \| undefined` | `false` | ## Slots diff --git a/packages/components/src/components/link-button/component.tsx b/packages/components/src/components/link-button/component.tsx index 13f720cb294..f071d39bb87 100644 --- a/packages/components/src/components/link-button/component.tsx +++ b/packages/components/src/components/link-button/component.tsx @@ -43,6 +43,7 @@ export class KolLinkButton implements LinkButtonProps { }} _accessKey={this._accessKey} _ariaCurrentValue={this._ariaCurrentValue} + _disabled={this._disabled} _download={this._download} _hideLabel={this._hideLabel} _href={this._href} @@ -75,6 +76,11 @@ export class KolLinkButton implements LinkButtonProps { */ @Prop() public _customClass?: CustomClassPropType; + /** + * Makes the element not focusable and ignore all events. + */ + @Prop() public _disabled?: boolean = false; + /** * Tells the browser that the link contains a file. Optionally sets the filename. */ diff --git a/packages/components/src/components/link-button/readme.md b/packages/components/src/components/link-button/readme.md index 58d54d0ede0..38e990b774f 100644 --- a/packages/components/src/components/link-button/readme.md +++ b/packages/components/src/components/link-button/readme.md @@ -34,6 +34,7 @@ Weitere Informationen zum Aussehen finden Sie auf der { + el.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + }); + }); + } + } + public disconnectedCallback(): void { if (this.unsubscribeOnLocationChange) { this.unsubscribeOnLocationChange(); diff --git a/packages/components/src/components/link/readme.md b/packages/components/src/components/link/readme.md index 1a081f5dfaa..d21866280bb 100644 --- a/packages/components/src/components/link/readme.md +++ b/packages/components/src/components/link/readme.md @@ -81,6 +81,7 @@ Der übergebene Location-String muss dabei exakt dem `href`-Attributs des Links | -------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ----------- | | `_accessKey` | `_access-key` | Defines the elements access key. | `string \| undefined` | `undefined` | | `_ariaCurrentValue` | `_aria-current-value` | Defines the value for the aria-current attribute. | `"date" \| "false" \| "location" \| "page" \| "step" \| "time" \| "true" \| undefined` | `undefined` | +| `_disabled` | `_disabled` | Makes the element not focusable and ignore all events. | `boolean \| undefined` | `false` | | `_download` | `_download` | Tells the browser that the link contains a file. Optionally sets the filename. | `string \| undefined` | `undefined` | | `_hideLabel` | `_hide-label` | Hides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it. | `boolean \| undefined` | `false` | | `_href` _(required)_ | `_href` | Sets the target URI of the link or citation source. | `string` | `undefined` | diff --git a/packages/components/src/components/link/shadow.tsx b/packages/components/src/components/link/shadow.tsx index 3ae6dff7ccf..01f34105753 100644 --- a/packages/components/src/components/link/shadow.tsx +++ b/packages/components/src/components/link/shadow.tsx @@ -37,6 +37,7 @@ export class KolLink implements LinkProps { ref={this.catchRef} _accessKey={this._accessKey} _ariaCurrentValue={this._ariaCurrentValue} + _disabled={this._disabled} _download={this._download} _hideLabel={this._hideLabel} _href={this._href} @@ -68,6 +69,11 @@ export class KolLink implements LinkProps { */ @Prop() public _ariaCurrentValue?: AriaCurrentValuePropType; + /** + * Makes the element not focusable and ignore all events. + */ + @Prop() public _disabled?: boolean = false; + /** * Tells the browser that the link contains a file. Optionally sets the filename. */ diff --git a/packages/create-kolibri/templates/kolibri-library/packages/components/package.json b/packages/create-kolibri/templates/kolibri-library/packages/components/package.json index 1b37f4412d7..7af59a245e1 100644 --- a/packages/create-kolibri/templates/kolibri-library/packages/components/package.json +++ b/packages/create-kolibri/templates/kolibri-library/packages/components/package.json @@ -24,7 +24,7 @@ "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*,@public-ui/*,@stencil/*,eslint-*,postcss-windicss,tslib,workbox-build", "format": "prettier --check src", "lighthouse": "lighthouse --chrome-flags=\"--headless\" --output-path lighthouse.report.html --preset=desktop --quiet", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "unused": "ts-prune src -e", "start": "cross-env NODE_ENV=development stencil build --dev --serve --watch --no-open", "test": "cross-env NODE_ENV=test stencil test --spec --json --outputFile jest-test-results.json", diff --git a/packages/schema/package.json b/packages/schema/package.json index b42f19c0bc3..3ff72fdbd8e 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -45,7 +45,7 @@ "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*", "dev": "nodemon --exec unbuild --ext js,json,ts --watch src", "format": "prettier --check src", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "prepack": "unbuild" }, "dependencies": { diff --git a/packages/schema/src/components/accordion.ts b/packages/schema/src/components/accordion.ts index 980b111072e..2dc27d04cc1 100644 --- a/packages/schema/src/components/accordion.ts +++ b/packages/schema/src/components/accordion.ts @@ -1,6 +1,6 @@ import type { Generic } from 'adopted-style-sheets'; import type { Events } from '../enums'; -import type { HeadingLevel, PropLabel, PropOpen } from '../props'; +import type { HeadingLevel, PropDisabled, PropLabel, PropOpen } from '../props'; import type { EventValueOrEventCallback } from '../types'; export type KoliBriAccordionCallbacks = { @@ -11,7 +11,8 @@ type RequiredProps = PropLabel; type OptionalProps = { level: HeadingLevel; on: KoliBriAccordionCallbacks; -} & PropOpen; +} & PropDisabled & + PropOpen; type RequiredStates = RequiredProps & PropLabel; type OptionalStates = OptionalProps; diff --git a/packages/schema/src/components/details.ts b/packages/schema/src/components/details.ts index b0613922c8b..cdf31b57f41 100644 --- a/packages/schema/src/components/details.ts +++ b/packages/schema/src/components/details.ts @@ -1,6 +1,6 @@ import type { Generic } from 'adopted-style-sheets'; -import type { PropLabel, PropOpen } from '../props'; +import type { PropDisabled, PropLabel, PropOpen } from '../props'; import type { EventValueOrEventCallback } from '../types'; export type EventCallbacks = { @@ -10,7 +10,8 @@ export type EventCallbacks = { type RequiredProps = PropLabel; type OptionalProps = { on: EventCallbacks; -} & PropOpen; +} & PropDisabled & + PropOpen; type RequiredStates = RequiredProps; type OptionalStates = OptionalProps; diff --git a/packages/schema/src/components/link.ts b/packages/schema/src/components/link.ts index c21daa34c42..ff0c9dfbe3d 100644 --- a/packages/schema/src/components/link.ts +++ b/packages/schema/src/components/link.ts @@ -3,6 +3,7 @@ import type { PropAccessKey, PropAlternativeButtonLinkRole, PropAriaCurrentValue, + PropDisabled, PropDownload, PropHideLabel, PropHref, @@ -22,8 +23,9 @@ export type RequiredProps = PropHref; export type OptionalProps = { tabIndex: number; } & PropAccessKey & - PropAriaCurrentValue & PropAlternativeButtonLinkRole & + PropAriaCurrentValue & + PropDisabled & PropDownload & PropHideLabel & PropIcons & diff --git a/packages/schema/src/props/disabled.ts b/packages/schema/src/props/disabled.ts index b80932686b9..813dcdaf65d 100644 --- a/packages/schema/src/props/disabled.ts +++ b/packages/schema/src/props/disabled.ts @@ -1,6 +1,6 @@ import type { Generic } from 'adopted-style-sheets'; -import { watchBoolean } from '../utils'; +import { a11yHintDisabled, watchBoolean } from '../utils'; /* types */ export type DisabledPropType = boolean; @@ -14,5 +14,13 @@ export type PropDisabled = { /* validator */ export const validateDisabled = (component: Generic.Element.Component, value?: DisabledPropType): void => { - watchBoolean(component, '_disabled', value); + watchBoolean(component, '_disabled', value, { + hooks: { + afterPatch: (value) => { + if (value === true) { + a11yHintDisabled(); + } + }, + }, + }); }; diff --git a/packages/themes/bmf/package.json b/packages/themes/bmf/package.json index e5fbc11022b..558489d918b 100644 --- a/packages/themes/bmf/package.json +++ b/packages/themes/bmf/package.json @@ -5,7 +5,7 @@ "scripts": { "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*", "format": "prettier --check src", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "test": "THEME_MODULE=src/index THEME_EXPORT=BMF kolibri-visual-test", "test-update": "THEME_MODULE=src/index THEME_EXPORT=BMF kolibri-visual-test --update-snapshots theme-snapshots.spec.js" }, diff --git a/packages/themes/default/package.json b/packages/themes/default/package.json index f1091a947f3..fe3281ee0f6 100644 --- a/packages/themes/default/package.json +++ b/packages/themes/default/package.json @@ -41,7 +41,7 @@ "build": "unbuild", "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*", "format": "prettier --check src", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "prepack": "unbuild", "test": "THEME_MODULE=dist THEME_EXPORT=DEFAULT kolibri-visual-test", "test-update": "THEME_MODULE=dist THEME_EXPORT=DEFAULT kolibri-visual-test --update-snapshots theme-snapshots.spec.js", diff --git a/packages/themes/ecl/package.json b/packages/themes/ecl/package.json index d3c2054565c..13dc1800ed2 100644 --- a/packages/themes/ecl/package.json +++ b/packages/themes/ecl/package.json @@ -5,7 +5,7 @@ "scripts": { "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*", "format": "prettier --check src", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "xtest": "npm-run-all test:*", "test:ecl-ec": "THEME_MODULE=src/index THEME_EXPORT=ECL_EC kolibri-visual-test", "test:ecl-eu": "THEME_MODULE=src/index THEME_EXPORT=ECL_EU kolibri-visual-test", diff --git a/packages/themes/itzbund/package.json b/packages/themes/itzbund/package.json index 4925a029cb6..15155bc6c70 100644 --- a/packages/themes/itzbund/package.json +++ b/packages/themes/itzbund/package.json @@ -5,7 +5,7 @@ "scripts": { "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@types/*", "format": "prettier --check src", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "xtest": "THEME_MODULE=src/index THEME_EXPORT=ITZBund kolibri-visual-test", "xtest-update": "THEME_MODULE=src/index THEME_EXPORT=ITZBund kolibri-visual-test --update-snapshots theme-snapshots.spec.js" }, diff --git a/packages/themes/package.json b/packages/themes/package.json index 8f804a5f09a..6f032d99b7f 100644 --- a/packages/themes/package.json +++ b/packages/themes/package.json @@ -44,7 +44,7 @@ "build": "unbuild", "depcheck": "depcheck --ignore-bin-package --skip-missing --ignores=@public-ui/schema,@types/*", "format": "prettier --check src", - "lint": "eslint src && tsc --noemit", + "lint": "tsc --noemit && eslint src", "prepack": "unbuild", "dev": "nodemon --ignore dist -e ts,tsx,scss --exec \"pnpm build\"", "test-all": "pnpm -r --workspace-concurrency=1 test", diff --git a/packages/tools/kolibri-cli/package.json b/packages/tools/kolibri-cli/package.json index 342819d9be1..fc898ec8e7e 100644 --- a/packages/tools/kolibri-cli/package.json +++ b/packages/tools/kolibri-cli/package.json @@ -20,7 +20,7 @@ "reset": "pnpm i @public-ui/components@1.1.7", "depcheck": "depcheck --ignores=\"@public-ui/components,deepmerge,loglevel,mocha\"", "format": "prettier -c src", - "lint": "eslint src && tsc --noEmit", + "lint": "tsc --noemit && eslint src", "prepack": "tsc", "start": "rimraf test && cpy \"../../samples/react/src/components\" test/src && cpy \"../../samples/react/public/*.html\" test/ && ts-node src/index.ts migrate --ignore-uncommitted-changes --test-tasks test", "restart": "pnpm reset && pnpm start", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b235b7cec3..244b1b33c11 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,7 +72,7 @@ importers: specifier: 11.2.14 version: 11.2.14(rxjs@6.5.5)(zone.js@0.11.8) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -117,7 +117,7 @@ importers: specifier: 12.2.17 version: 12.2.17(rxjs@7.6.0)(zone.js@0.11.8) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -162,7 +162,7 @@ importers: specifier: 13.4.0 version: 13.4.0(rxjs@7.6.0)(zone.js@0.11.8) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -207,7 +207,7 @@ importers: specifier: 14.3.0 version: 14.3.0(rxjs@7.6.0)(zone.js@0.12.0) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -252,7 +252,7 @@ importers: specifier: 15.2.10 version: 15.2.10(rxjs@7.8.1)(zone.js@0.12.0) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -297,7 +297,7 @@ importers: specifier: 16.2.12 version: 16.2.12(rxjs@7.8.1)(zone.js@0.13.3) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -342,7 +342,7 @@ importers: specifier: 17.1.1 version: 17.1.1(rxjs@7.8.1)(zone.js@0.14.3) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../../components '@types/minimatch': specifier: 5.1.2 @@ -378,7 +378,7 @@ importers: packages/adapters/hydrate: devDependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components rimraf: specifier: 3.0.2 @@ -387,14 +387,14 @@ importers: packages/adapters/preact: dependencies: '@public-ui/react': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../react preact: specifier: '>=10.11.3' version: 10.11.3 devDependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components react: specifier: 18.2.0 @@ -412,7 +412,7 @@ importers: packages/adapters/react: devDependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@types/minimatch': specifier: 5.1.2 @@ -448,7 +448,7 @@ importers: packages/adapters/react-standalone: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components react: specifier: '>=16.14.0' @@ -458,7 +458,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: '@public-ui/react': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../react cpy-cli: specifier: 5.0.0 @@ -470,7 +470,7 @@ importers: packages/adapters/solid: devDependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@types/minimatch': specifier: 5.1.2 @@ -500,7 +500,7 @@ importers: specifier: 7.23.6 version: 7.23.6 '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@types/minimatch': specifier: 5.1.2 @@ -530,7 +530,7 @@ importers: specifier: 1.5.4 version: 1.5.4 '@public-ui/schema': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../schema adopted-style-sheets: specifier: 1.1.3 @@ -727,13 +727,13 @@ importers: packages/designer: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../components '@public-ui/solid': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../adapters/solid '@public-ui/themes': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../themes adopted-style-sheets: specifier: 1.1.3 @@ -839,13 +839,13 @@ importers: specifier: 17.1.1 version: 17.1.1(@angular/common@17.1.1)(@angular/compiler@17.1.1)(@angular/core@17.1.1)(@angular/platform-browser@17.1.1) '@public-ui/angular-v17': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../adapters/angular/v17 '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@public-ui/themes': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../themes zone.js: specifier: 0.14.3 @@ -903,13 +903,13 @@ importers: specifier: 1.3.49 version: 1.3.49(@leanup/stack@1.3.49)(esbuild@0.19.3)(less@4.2.0)(postcss@8.4.33) '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@public-ui/react': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../adapters/react '@public-ui/themes': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../themes '@types/node': specifier: 20.11.6 @@ -981,13 +981,13 @@ importers: packages/samples/ssr: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@public-ui/hydrate': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../adapters/hydrate '@public-ui/theme-default': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../themes/default express: specifier: 4.18.2 @@ -1021,13 +1021,13 @@ importers: packages/samples/vite: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@public-ui/react': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../adapters/react '@public-ui/theme-default': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../themes/default react: specifier: 18.2.0 @@ -1119,11 +1119,11 @@ importers: packages/themes: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../components devDependencies: '@public-ui/schema': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../schema '@types/node': specifier: ts5.3 @@ -1162,14 +1162,14 @@ importers: packages/themes/bmf: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components devDependencies: '@public-ui/schema': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../schema '@public-ui/visual-tests': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../tools/visual-tests '@types/node': specifier: ts5.3 @@ -1181,14 +1181,14 @@ importers: packages/themes/default: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components devDependencies: '@public-ui/schema': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../schema '@public-ui/visual-tests': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../tools/visual-tests '@types/node': specifier: ts5.3 @@ -1218,14 +1218,14 @@ importers: packages/themes/ecl: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components devDependencies: '@public-ui/schema': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../schema '@public-ui/visual-tests': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../tools/visual-tests '@types/node': specifier: ts5.3 @@ -1240,14 +1240,14 @@ importers: packages/themes/itzbund: dependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components devDependencies: '@public-ui/schema': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../schema '@public-ui/visual-tests': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../tools/visual-tests '@types/node': specifier: ts5.3 @@ -1281,7 +1281,7 @@ importers: version: 7.5.4 devDependencies: '@public-ui/components': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../components '@types/gradient-string': specifier: 1.1.5 @@ -1350,7 +1350,7 @@ importers: specifier: 1.41.1 version: 1.41.1 '@public-ui/sample-react': - specifier: 2.0.4-rc.0 + specifier: 2.0.4 version: link:../../samples/react axe-playwright: specifier: 1.2.3 @@ -1398,7 +1398,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.22 /@angular/common@17.1.1(@angular/core@17.1.1)(rxjs@7.8.1): resolution: {integrity: sha512-YMM2vImWJg7H3Yaej7ncGpFKT28V2Y6X9/rLpRdSKAiUbcbj7GeWtX/upfZGR9KmD08baYZw0YTNMR03Ubv/mg==} @@ -1969,7 +1969,7 @@ packages: dependencies: '@babel/types': 7.23.6 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.22 jsesc: 2.5.2 /@babel/helper-annotate-as-pure@7.22.5: @@ -2413,7 +2413,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20 + '@babel/traverse': 7.23.6 '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -2424,7 +2424,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20 + '@babel/traverse': 7.23.6 '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -3136,7 +3136,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.11) @@ -3358,7 +3358,7 @@ packages: dependencies: '@babel/core': 7.22.11 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -5655,7 +5655,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -5671,7 +5671,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -5708,7 +5708,7 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 jest-mock: 26.6.2 dev: true @@ -5718,7 +5718,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 20.11.6 + '@types/node': 20.11.7 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -5839,7 +5839,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.11.6 + '@types/node': 20.11.7 '@types/yargs': 15.0.15 chalk: 4.1.2 dev: true @@ -7557,12 +7557,12 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/chai@4.3.11: resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} @@ -7581,12 +7581,12 @@ packages: resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} dependencies: '@types/express-serve-static-core': 4.17.36 - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} @@ -7613,7 +7613,7 @@ packages: /@types/express-serve-static-core@4.17.36: resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -7629,13 +7629,13 @@ packages: /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 dev: true /@types/gradient-string@1.1.5: resolution: {integrity: sha512-Z2VPQ0q+IhrAO7XjJSjpDsoPc+CsCshRNah1IE9LCo/NzHMHylssvx73i0BAKzuaGj9cdhmgq9rLaietpYAbKQ==} dependencies: - '@types/tinycolor2': 1.4.3 + '@types/tinycolor2': 1.4.6 dev: true /@types/hoist-non-react-statics@3.3.3: @@ -7655,7 +7655,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -7745,7 +7745,6 @@ packages: resolution: {integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==} dependencies: undici-types: 5.26.5 - dev: true /@types/node@20.6.0: resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} @@ -7794,7 +7793,7 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 dev: true /@types/resolve@1.20.2: @@ -7814,7 +7813,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/serve-index@1.9.1: resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} @@ -7826,7 +7825,7 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/sinon@10.0.20: resolution: {integrity: sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==} @@ -7839,14 +7838,14 @@ packages: /@types/sockjs@0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/stack-utils@2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/tinycolor2@1.4.3: - resolution: {integrity: sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ==} + /@types/tinycolor2@1.4.6: + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} /@types/trusted-types@2.0.3: resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} @@ -7863,7 +7862,7 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 /@types/yargs-interactive@2.1.3: resolution: {integrity: sha512-bYB8ah0JPR6/lpHlxUzeHsrb3RK5OW7N8Hnth2nefnr6zQ5KFoDQ6wM5x58dTLEDYrwikFy3EPTf/O0HKLNaIg==} @@ -7890,7 +7889,7 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 optional: true /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.2.2): @@ -9938,7 +9937,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001568 + caniuse-lite: 1.0.30001579 electron-to-chromium: 1.4.610 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) @@ -10121,17 +10120,17 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001568 + caniuse-lite: 1.0.30001579 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true /caniuse-lite@1.0.30001568: resolution: {integrity: sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==} + dev: true /caniuse-lite@1.0.30001579: resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} - dev: true /canonical-path@1.0.0: resolution: {integrity: sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==} @@ -10247,7 +10246,7 @@ packages: engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.1 @@ -10676,7 +10675,7 @@ packages: /constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.22.16 + '@babel/parser': 7.23.6 '@babel/types': 7.23.6 dev: true @@ -14416,6 +14415,7 @@ packages: /is-accessor-descriptor@0.1.6: resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} engines: {node: '>=0.10.0'} + deprecated: Please upgrade to v0.1.7 dependencies: kind-of: 3.2.2 dev: true @@ -14498,6 +14498,7 @@ packages: /is-data-descriptor@0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} engines: {node: '>=0.10.0'} + deprecated: Please upgrade to v0.1.5 dependencies: kind-of: 3.2.2 dev: true @@ -15114,7 +15115,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -15132,7 +15133,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true @@ -15153,7 +15154,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.6 - '@types/node': 20.11.6 + '@types/node': 20.11.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -15179,7 +15180,7 @@ packages: '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -15238,7 +15239,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 dev: true /jest-pnp-resolver@1.2.3(jest-resolve@26.6.2): @@ -15291,7 +15292,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -15359,7 +15360,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 graceful-fs: 4.2.11 dev: true @@ -15392,7 +15393,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -15417,7 +15418,7 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.6 + '@types/node': 20.11.7 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -15428,7 +15429,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -15437,7 +15438,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15591,7 +15592,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.14.2 + ws: 8.16.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -20630,7 +20631,7 @@ packages: dependencies: jszip: 3.10.1 tmp: 0.2.1 - ws: 8.14.2 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -21200,7 +21201,7 @@ packages: resolution: {integrity: sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==} engines: {node: '>=8.0'} dependencies: - '@types/node': 20.11.6 + '@types/node': 20.11.7 image-ssim: 0.2.0 jpeg-js: 0.4.4 dev: true @@ -21904,7 +21905,7 @@ packages: /tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} dependencies: - '@types/tinycolor2': 1.4.3 + '@types/tinycolor2': 1.4.6 tinycolor2: 1.6.0 dev: false @@ -23539,7 +23540,7 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.22.16 + '@babel/parser': 7.23.6 '@babel/types': 7.23.6 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 @@ -23835,7 +23836,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xdg-basedir@4.0.0: resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}