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==}