diff --git a/packages/components/src/components/@deprecated/input/controller.ts b/packages/components/src/components/@deprecated/input/controller.ts
index 393a1ed15d..272b5d10dc 100644
--- a/packages/components/src/components/@deprecated/input/controller.ts
+++ b/packages/components/src/components/@deprecated/input/controller.ts
@@ -1,12 +1,14 @@
import type { Generic } from 'adopted-style-sheets';
import type {
+ AccessKeyPropType,
AdjustHeightPropType,
ButtonProps,
HideErrorPropType,
InputTypeOnDefault,
LabelWithExpertSlotPropType,
MsgPropType,
+ ShortKeyPropType,
StencilUnknown,
Stringified,
TooltipAlignPropType,
@@ -18,6 +20,7 @@ import {
objectObjectHandler,
parseJson,
setState,
+ validateAccessKey,
validateAdjustHeight,
validateHideError,
validateHideLabel,
@@ -27,6 +30,7 @@ import {
validateTooltipAlign,
watchBoolean,
watchString,
+ validateShortKey,
} from '../../../schema';
import { stopPropagation, tryToDispatchKoliBriEvent } from '../../../utils/events';
@@ -34,6 +38,7 @@ import { ControlledInputController } from '../../input-adapter-leanup/controller
import type { Props as AdapterProps } from '../../input-adapter-leanup/types';
import type { Props, Watches } from './types';
+import { validateAccessAndShortKey } from '../../../schema/validators/access-and-short-key';
type ValueChangeListener = (value: StencilUnknown) => void;
@@ -47,8 +52,9 @@ export class InputController extends ControlledInputController implements Watche
this.component = component;
}
- public validateAccessKey(value?: string): void {
- watchString(this.component, '_accessKey', value);
+ public validateAccessKey(value?: AccessKeyPropType): void {
+ validateAccessKey(this.component, value);
+ validateAccessAndShortKey(value, this.component._shortKey);
}
public validateAdjustHeight(value?: AdjustHeightPropType): void {
@@ -127,6 +133,11 @@ export class InputController extends ControlledInputController implements Watche
}
}
+ public validateShortKey(value?: ShortKeyPropType): void {
+ validateShortKey(this.component, value);
+ validateAccessAndShortKey(this.component._accessKey, value);
+ }
+
public validateSmartButton(value?: ButtonProps | string): void {
objectObjectHandler(value, () => {
try {
@@ -155,9 +166,11 @@ export class InputController extends ControlledInputController implements Watche
this.validateHint(this.component._hint);
this.validateId(this.component._id);
this.validateLabel(this.component._label);
+ this.validateShortKey(this.component._shortKey);
this.validateSmartButton(this.component._smartButton);
this.validateOn(this.component._on);
this.validateTabIndex(this.component._tabIndex);
+ validateAccessAndShortKey(this.component._accessKey, this.component._shortKey);
}
protected onBlur(event: Event): void {
diff --git a/packages/components/src/components/@deprecated/input/types.ts b/packages/components/src/components/@deprecated/input/types.ts
index a0d69b2cef..a877e7ab11 100644
--- a/packages/components/src/components/@deprecated/input/types.ts
+++ b/packages/components/src/components/@deprecated/input/types.ts
@@ -1,9 +1,9 @@
-import type { ButtonProps, InputTypeOnDefault, MsgPropType, PropLabelWithExpertSlot, Stringified } from '../../../schema';
+import type { AccessKeyPropType, ButtonProps, InputTypeOnDefault, MsgPropType, PropLabelWithExpertSlot, ShortKeyPropType, Stringified } from '../../../schema';
import type { Generic } from 'adopted-style-sheets';
type RequiredProps = NonNullable;
type OptionalProps = PropLabelWithExpertSlot & {
- accessKey: string;
+ accessKey: AccessKeyPropType;
adjustHeight: boolean;
disabled: boolean;
error: string;
@@ -13,6 +13,7 @@ type OptionalProps = PropLabelWithExpertSlot & {
id: string;
msg: MsgPropType;
on: InputTypeOnDefault;
+ shortKey: ShortKeyPropType;
smartButton: Stringified;
syncValueBySelector: string;
tabIndex: number;
diff --git a/packages/components/src/components/button-link/shadow.tsx b/packages/components/src/components/button-link/shadow.tsx
index 821babaec7..ab7e35d598 100644
--- a/packages/components/src/components/button-link/shadow.tsx
+++ b/packages/components/src/components/button-link/shadow.tsx
@@ -10,6 +10,7 @@ import type {
IdPropType,
LabelWithExpertSlotPropType,
NamePropType,
+ ShortKeyPropType,
StencilUnknown,
Stringified,
SyncValueBySelectorPropType,
@@ -72,6 +73,7 @@ export class KolButtonLink implements ButtonLinkProps, FocusableElement {
_name={this._name}
_on={this._on}
_role="link"
+ _shortKey={this._shortKey}
_syncValueBySelector={this._syncValueBySelector}
_tabIndex={this._tabIndex}
_tooltipAlign={this._tooltipAlign}
@@ -154,6 +156,11 @@ export class KolButtonLink implements ButtonLinkProps, FocusableElement {
*/
@Prop() public _role?: AlternativeButtonLinkRolePropType;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Selector for synchronizing the value with another input element.
* @internal
diff --git a/packages/components/src/components/button/component.tsx b/packages/components/src/components/button/component.tsx
index 1bc2d5d9cf..2a0b68393c 100644
--- a/packages/components/src/components/button/component.tsx
+++ b/packages/components/src/components/button/component.tsx
@@ -12,6 +12,7 @@ import type {
FocusableElement,
IconsPropType,
LabelWithExpertSlotPropType,
+ ShortKeyPropType,
StencilUnknown,
Stringified,
SyncValueBySelectorPropType,
@@ -37,6 +38,7 @@ import {
validateHideLabel,
validateIcons,
validateLabelWithExpertSlot,
+ validateShortKey,
validateTabIndex,
validateTooltipAlign,
watchString,
@@ -49,6 +51,7 @@ import { nonce } from '../../utils/dev.utils';
import { propagateResetEventToForm, propagateSubmitEventToForm } from '../form/controller';
import { AssociatedInputController } from '../input-adapter-leanup/associated.controller';
import { KolSpanWcTag, KolTooltipWcTag } from '../../core/component-names';
+import { validateAccessAndShortKey } from '../../schema/validators/access-and-short-key';
/**
* @internal
@@ -134,7 +137,7 @@ export class KolButtonWc implements ButtonAPI, FocusableElement {
>
@@ -236,6 +239,11 @@ export class KolButtonWc implements ButtonAPI, FocusableElement {
*/
@Prop() public _role?: AlternativeButtonLinkRolePropType;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Selector for synchronizing the value with another input element.
* @internal
@@ -282,6 +290,7 @@ export class KolButtonWc implements ButtonAPI, FocusableElement {
@Watch('_accessKey')
public validateAccessKey(value?: AccessKeyPropType): void {
validateAccessKey(this, value);
+ validateAccessAndShortKey(value, this._shortKey);
}
@Watch('_ariaControls')
@@ -351,6 +360,12 @@ export class KolButtonWc implements ButtonAPI, FocusableElement {
validateAlternativeButtonLinkRole(this, value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ validateShortKey(this, value);
+ validateAccessAndShortKey(this._accessKey, value);
+ }
+
@Watch('_syncValueBySelector')
public validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {
this.controller.validateSyncValueBySelector(value);
@@ -397,11 +412,13 @@ export class KolButtonWc implements ButtonAPI, FocusableElement {
this.validateName(this._name);
this.validateOn(this._on);
this.validateRole(this._role);
+ this.validateShortKey(this._shortKey);
this.validateSyncValueBySelector(this._syncValueBySelector);
this.validateTabIndex(this._tabIndex);
this.validateTooltipAlign(this._tooltipAlign);
this.validateType(this._type);
this.validateValue(this._value);
this.validateVariant(this._variant);
+ validateAccessAndShortKey(this._accessKey, this._shortKey);
}
}
diff --git a/packages/components/src/components/button/shadow.tsx b/packages/components/src/components/button/shadow.tsx
index a44188659b..9de66e130f 100644
--- a/packages/components/src/components/button/shadow.tsx
+++ b/packages/components/src/components/button/shadow.tsx
@@ -10,6 +10,7 @@ import type {
FocusableElement,
IconsPropType,
LabelWithExpertSlotPropType,
+ ShortKeyPropType,
StencilUnknown,
Stringified,
SyncValueBySelectorPropType,
@@ -78,6 +79,7 @@ export class KolButton implements ButtonProps, FocusableElement {
_name={this._name}
_on={this._on}
_role={this._role}
+ _shortKey={this._shortKey}
_syncValueBySelector={this._syncValueBySelector}
_tabIndex={this._tabIndex}
_tooltipAlign={this._tooltipAlign}
@@ -163,6 +165,11 @@ export class KolButton implements ButtonProps, FocusableElement {
*/
@Prop() public _role?: AlternativeButtonLinkRolePropType;
+ /**
+ * Defines the elements short key.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Selector for synchronizing the value with another input element.
* @internal
diff --git a/packages/components/src/components/combobox/shadow.tsx b/packages/components/src/components/combobox/shadow.tsx
index 21f54ca389..80ba269bf2 100644
--- a/packages/components/src/components/combobox/shadow.tsx
+++ b/packages/components/src/components/combobox/shadow.tsx
@@ -8,13 +8,14 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
W3CInputValue,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';
@@ -22,7 +23,7 @@ import { nonce } from '../../utils/dev.utils';
import { stopPropagation, tryToDispatchKoliBriEvent } from '../../utils/events';
import { ComboboxController } from './controller';
import { KolIconTag, KolInputTag } from '../../core/component-names';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { getRenderStates } from '../input/controller';
import { translate } from '../../i18n';
import clsx from 'clsx';
@@ -166,6 +167,7 @@ export class KolCombobox implements ComboboxAPI {
_label={this.state._label}
_msg={this.state._msg}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
onClick={() => this.refInput?.focus()}
@@ -174,11 +176,11 @@ export class KolCombobox implements ComboboxAPI {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -445,6 +447,11 @@ export class KolCombobox implements ComboboxAPI {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Selector for synchronizing the value with another input element.
* @internal
@@ -560,6 +567,11 @@ export class KolCombobox implements ComboboxAPI {
this.controller.validateOn(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_suggestions')
public validateSuggestions(value?: SuggestionsPropType): void {
this.controller.validateSuggestions(value);
diff --git a/packages/components/src/components/combobox/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/combobox/test/__snapshots__/snapshot.spec.tsx.snap
index ba866a3583..9ec22bd70e 100644
--- a/packages/components/src/components/combobox/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/combobox/test/__snapshots__/snapshot.spec.tsx.snap
@@ -241,6 +241,31 @@ exports[`kol-combobox should render with _label="Label" _name="field" _placehold
`;
+exports[`kol-combobox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Herr" _suggestions=["Frau","Herr","Divers"] _shortKey="S" 1`] = `
+
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-combobox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Herr" _suggestions=["Frau","Herr","Divers"] _touched=true 1`] = `
diff --git a/packages/components/src/components/input-checkbox/shadow.tsx b/packages/components/src/components/input-checkbox/shadow.tsx
index 874d66e0b6..325e765317 100644
--- a/packages/components/src/components/input-checkbox/shadow.tsx
+++ b/packages/components/src/components/input-checkbox/shadow.tsx
@@ -12,19 +12,20 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
StencilUnknown,
Stringified,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { tryToDispatchKoliBriEvent } from '../../utils/events';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputCheckboxController } from './controller';
import { KolIconTag, KolInputTag } from '../../core/component-names';
import type { FocusableElement } from '../../schema/interfaces/FocusableElement';
@@ -99,17 +100,18 @@ export class KolInputCheckbox implements InputCheckboxAPI, FocusableElement {
_id={this.state._id}
_label={this.state._label}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
>
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey || this.state._shortKey)}
>
) : (
@@ -254,6 +256,11 @@ export class KolInputCheckbox implements InputCheckboxAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Selector for synchronizing the value with another input element.
* @internal
@@ -400,6 +407,11 @@ export class KolInputCheckbox implements InputCheckboxAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_syncValueBySelector')
public validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {
this.controller.validateSyncValueBySelector(value);
diff --git a/packages/components/src/components/input-checkbox/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-checkbox/test/__snapshots__/snapshot.spec.tsx.snap
index 63451326b9..93523fc1af 100644
--- a/packages/components/src/components/input-checkbox/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-checkbox/test/__snapshots__/snapshot.spec.tsx.snap
@@ -181,6 +181,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=false _labelAlign="left" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=false _labelAlign="left" _touched=true 1`] = `
@@ -398,6 +417,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=false _variant="button" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=false _variant="button" _touched=true 1`] = `
@@ -615,6 +653,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=false _variant="switch" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=false _variant="switch" _touched=true 1`] = `
@@ -832,6 +889,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _labelAlign="left" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _labelAlign="left" _touched=true 1`] = `
@@ -1049,6 +1125,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _labelAlign="right" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _labelAlign="right" _touched=true 1`] = `
@@ -1266,6 +1361,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _variant="button" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _variant="button" _touched=true 1`] = `
@@ -1483,6 +1597,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _variant="switch" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _checked=true _variant="switch" _touched=true 1`] = `
@@ -1700,6 +1833,25 @@ exports[`kol-input-checkbox should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _indeterminate=true _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+`;
+
exports[`kol-input-checkbox should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _indeterminate=true _touched=true 1`] = `
diff --git a/packages/components/src/components/input-color/shadow.tsx b/packages/components/src/components/input-color/shadow.tsx
index 93dddaa741..d4463c63a6 100644
--- a/packages/components/src/components/input-color/shadow.tsx
+++ b/packages/components/src/components/input-color/shadow.tsx
@@ -11,18 +11,19 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputColorController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -88,6 +89,7 @@ export class KolInputColor implements InputColorAPI, FocusableElement {
_hideError={this.state._hideError}
_id={this.state._id}
_label={this.state._label}
+ _shortKey={this.state._shortKey}
_suggestions={this.state._suggestions}
_smartButton={this.state._smartButton}
_tooltipAlign={this._tooltipAlign}
@@ -98,11 +100,11 @@ export class KolInputColor implements InputColorAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -221,6 +223,11 @@ export class KolInputColor implements InputColorAPI, FocusableElement {
*/
@Prop() public _on?: InputTypeOnDefault;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Allows to add a button with an arbitrary action within the element (_hide-label only).
*/
@@ -349,6 +356,11 @@ export class KolInputColor implements InputColorAPI, FocusableElement {
this.controller.validateOn(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_smartButton')
public validateSmartButton(value?: ButtonProps | string): void {
this.controller.validateSmartButton(value);
diff --git a/packages/components/src/components/input-color/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-color/test/__snapshots__/snapshot.spec.tsx.snap
index 2dfd05d540..c049415028 100644
--- a/packages/components/src/components/input-color/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-color/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-color should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-color should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="#FFF" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-color should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="#FFF" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
@@ -359,6 +377,24 @@ exports[`kol-input-color should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-color should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="#FFF" _suggestions=["#F00","#0F0","#00F"] _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-color should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="#FFF" _suggestions=["#F00","#0F0","#00F"] _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input-date/shadow.tsx b/packages/components/src/components/input-date/shadow.tsx
index 8eb59351bb..d6706f53fc 100644
--- a/packages/components/src/components/input-date/shadow.tsx
+++ b/packages/components/src/components/input-date/shadow.tsx
@@ -2,6 +2,7 @@ import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import type {
ButtonProps,
+ FocusableElement,
HideErrorPropType,
IdPropType,
InputDateAPI,
@@ -12,19 +13,21 @@ import type {
Iso8601,
KoliBriHorizontalIcons,
LabelWithExpertSlotPropType,
+ MsgPropType,
NamePropType,
ReadOnlyPropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { deprecatedHint, type FocusableElement, type MsgPropType, showExpertSlot } from '../../schema';
+import { buildBadgeTextString, deprecatedHint, showExpertSlot } from '../../schema';
import { nonce } from '../../utils/dev.utils';
import { propagateSubmitEventToForm } from '../form/controller';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputDateController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -145,6 +148,7 @@ export class KolInputDate implements InputDateAPI, FocusableElement {
_suggestions={this.state._suggestions}
_readOnly={this.state._readOnly}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_smartButton={this.state._smartButton}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
@@ -152,11 +156,11 @@ export class KolInputDate implements InputDateAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey || this.state._shortKey)}
>
) : (
@@ -304,6 +308,11 @@ export class KolInputDate implements InputDateAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Allows to add a button with an arbitrary action within the element (_hide-label only).
*/
@@ -464,6 +473,11 @@ export class KolInputDate implements InputDateAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_smartButton')
public validateSmartButton(value?: ButtonProps | string): void {
this.controller.validateSmartButton(value);
diff --git a/packages/components/src/components/input-date/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-date/test/__snapshots__/snapshot.spec.tsx.snap
index 2761650b1d..40a7d24e4a 100644
--- a/packages/components/src/components/input-date/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-date/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-date should render with _label="Label" _name="field" _placeho
`;
+exports[`kol-input-date should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="2025-01-01" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-date should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="2025-01-01" _touched=true 1`] = `
diff --git a/packages/components/src/components/input-email/shadow.tsx b/packages/components/src/components/input-email/shadow.tsx
index c04f350393..f4505f06bd 100644
--- a/packages/components/src/components/input-email/shadow.tsx
+++ b/packages/components/src/components/input-email/shadow.tsx
@@ -12,19 +12,20 @@ import type {
MsgPropType,
MultiplePropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { setState, showExpertSlot } from '../../schema';
+import { buildBadgeTextString, setState, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { propagateSubmitEventToForm } from '../form/controller';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputEmailController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -112,6 +113,7 @@ export class KolInputEmail implements InputEmailAPI, FocusableElement {
_maxLength={this.state._maxLength}
_readOnly={this.state._readOnly}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_smartButton={this.state._smartButton}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
@@ -121,11 +123,11 @@ export class KolInputEmail implements InputEmailAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -289,6 +291,11 @@ export class KolInputEmail implements InputEmailAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Allows to add a button with an arbitrary action within the element (_hide-label only).
*/
@@ -454,6 +461,11 @@ export class KolInputEmail implements InputEmailAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_suggestions')
public validateSuggestions(value?: SuggestionsPropType): void {
this.controller.validateSuggestions(value);
diff --git a/packages/components/src/components/input-email/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-email/test/__snapshots__/snapshot.spec.tsx.snap
index c0f2d2c228..e12b52318c 100644
--- a/packages/components/src/components/input-email/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-email/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-email should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-email should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="email@example.com" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-email should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="email@example.com" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
@@ -359,6 +377,24 @@ exports[`kol-input-email should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-email should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="email@example.com" _suggestions=["email1@example.com","email2@example.com","email3@example.com"] _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-email should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="email@example.com" _suggestions=["email1@example.com","email2@example.com","email3@example.com"] _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input-file/shadow.tsx b/packages/components/src/components/input-file/shadow.tsx
index cf8e6b21ce..706d0668ec 100644
--- a/packages/components/src/components/input-file/shadow.tsx
+++ b/packages/components/src/components/input-file/shadow.tsx
@@ -10,17 +10,18 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputFileController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -86,6 +87,7 @@ export class KolInputFile implements InputFileAPI, FocusableElement {
_id={this.state._id}
_label={this.state._label}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_smartButton={this.state._smartButton}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
@@ -95,11 +97,11 @@ export class KolInputFile implements InputFileAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -232,6 +234,11 @@ export class KolInputFile implements InputFileAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Allows to add a button with an arbitrary action within the element (_hide-label only).
*/
@@ -363,6 +370,11 @@ export class KolInputFile implements InputFileAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_smartButton')
public validateSmartButton(value?: ButtonProps | string): void {
this.controller.validateSmartButton(value);
diff --git a/packages/components/src/components/input-file/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-file/test/__snapshots__/snapshot.spec.tsx.snap
index 76af609cfe..b906d92fb4 100644
--- a/packages/components/src/components/input-file/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-file/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-file should render with _label="Label" _name="field" _placeho
`;
+exports[`kol-input-file should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="File" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-file should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="File" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input-number/shadow.tsx b/packages/components/src/components/input-number/shadow.tsx
index 639b716e83..ce869fa93e 100644
--- a/packages/components/src/components/input-number/shadow.tsx
+++ b/packages/components/src/components/input-number/shadow.tsx
@@ -12,19 +12,20 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { propagateSubmitEventToForm } from '../form/controller';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputNumberController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -107,6 +108,7 @@ export class KolInputNumber implements InputNumberAPI, FocusableElement {
_suggestions={this.state._suggestions}
_readOnly={this.state._readOnly}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_smartButton={this.state._smartButton}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
@@ -114,11 +116,11 @@ export class KolInputNumber implements InputNumberAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -270,6 +272,11 @@ export class KolInputNumber implements InputNumberAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Allows to add a button with an arbitrary action within the element (_hide-label only).
*/
@@ -429,6 +436,11 @@ export class KolInputNumber implements InputNumberAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_smartButton')
public validateSmartButton(value?: ButtonProps | string): void {
this.controller.validateSmartButton(value);
diff --git a/packages/components/src/components/input-number/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-number/test/__snapshots__/snapshot.spec.tsx.snap
index 9ffbe747f9..cbe708f5d7 100644
--- a/packages/components/src/components/input-number/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-number/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-number should render with _label="Label" _name="field" _place
`;
+exports[`kol-input-number should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-number should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
@@ -359,6 +377,24 @@ exports[`kol-input-number should render with _label="Label" _name="field" _place
`;
+exports[`kol-input-number should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _suggestions=[1,2,3] _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-number should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _suggestions=[1,2,3] _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input-password/shadow.tsx b/packages/components/src/components/input-password/shadow.tsx
index 86ae6f16f9..4772134968 100644
--- a/packages/components/src/components/input-password/shadow.tsx
+++ b/packages/components/src/components/input-password/shadow.tsx
@@ -11,18 +11,19 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { devHint, setState, showExpertSlot } from '../../schema';
+import { buildBadgeTextString, devHint, setState, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { propagateSubmitEventToForm } from '../form/controller';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputPasswordController } from './controller';
import { KolButtonWcTag, KolInputTag } from '../../core/component-names';
import { translate } from '../../i18n';
@@ -113,6 +114,7 @@ export class KolInputPassword implements InputPasswordAPI, FocusableElement {
_maxLength={this.state._maxLength}
_readOnly={this.state._readOnly}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_smartButton={this.state._smartButton}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
@@ -122,11 +124,11 @@ export class KolInputPassword implements InputPasswordAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -299,6 +301,11 @@ export class KolInputPassword implements InputPasswordAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Allows to add a button with an arbitrary action within the element (_hide-label only).
*/
@@ -466,6 +473,11 @@ export class KolInputPassword implements InputPasswordAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_smartButton')
public validateSmartButton(value?: ButtonProps | string): void {
this.controller.validateSmartButton(value);
diff --git a/packages/components/src/components/input-password/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-password/test/__snapshots__/snapshot.spec.tsx.snap
index 38acf0f8d6..01001b4d69 100644
--- a/packages/components/src/components/input-password/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-password/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-password should render with _label="Label" _name="field" _pla
`;
+exports[`kol-input-password should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-password should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input-radio/shadow.tsx b/packages/components/src/components/input-radio/shadow.tsx
index 62263e73b5..253d36711a 100644
--- a/packages/components/src/components/input-radio/shadow.tsx
+++ b/packages/components/src/components/input-radio/shadow.tsx
@@ -14,15 +14,16 @@ import type {
Stringified,
SyncValueBySelectorPropType,
TooltipAlignPropType,
+ ShortKeyPropType,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { stopPropagation, tryToDispatchKoliBriEvent } from '../../utils/events';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputRadioController } from './controller';
import { propagateSubmitEventToForm } from '../form/controller';
import { KolInputTag } from '../../core/component-names';
@@ -93,8 +94,8 @@ export class KolInputRadio implements InputRadioAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this._accessKey === 'string' ? (
-
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
+
) : (
this._label
)}
@@ -126,6 +127,7 @@ export class KolInputRadio implements InputRadioAPI, FocusableElement {
_label={option.label as string}
_renderNoLabel={true}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_slotName={slotName}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
@@ -268,6 +270,11 @@ export class KolInputRadio implements InputRadioAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Selector for synchronizing the value with another input element.
* @internal
@@ -395,6 +402,11 @@ export class KolInputRadio implements InputRadioAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_syncValueBySelector')
public validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {
this.controller.validateSyncValueBySelector(value);
diff --git a/packages/components/src/components/input-radio/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-radio/test/__snapshots__/snapshot.spec.tsx.snap
index 1771f2fd5f..14d1dc0722 100644
--- a/packages/components/src/components/input-radio/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-radio/test/__snapshots__/snapshot.spec.tsx.snap
@@ -994,6 +994,58 @@ exports[`kol-input-radio should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-radio should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _options=[{"label":"Frau","value":"Frau","disabled":true},{"label":"Herr","value":"Herr"},{"label":"Divers","value":"Divers"}] _orientation="horizontal" _shortKey="S" 1`] = `
+
+
+
+
+
+`;
+
exports[`kol-input-radio should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _options=[{"label":"Frau","value":"Frau","disabled":true},{"label":"Herr","value":"Herr"},{"label":"Divers","value":"Divers"}] _orientation="horizontal" _touched=true 1`] = `
@@ -1150,6 +1202,58 @@ exports[`kol-input-radio should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-radio should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _options=[{"label":"Frau","value":"Frau","disabled":true},{"label":"Herr","value":"Herr"},{"label":"Divers","value":"Divers"}] _shortKey="S" 1`] = `
+
+
+
+
+
+`;
+
exports[`kol-input-radio should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _options=[{"label":"Frau","value":"Frau","disabled":true},{"label":"Herr","value":"Herr"},{"label":"Divers","value":"Divers"}] _touched=true 1`] = `
diff --git a/packages/components/src/components/input-range/shadow.tsx b/packages/components/src/components/input-range/shadow.tsx
index 2dcd59d5d0..19b80884c6 100644
--- a/packages/components/src/components/input-range/shadow.tsx
+++ b/packages/components/src/components/input-range/shadow.tsx
@@ -10,20 +10,21 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
W3CInputValue,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { propagateSubmitEventToForm } from '../form/controller';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputRangeController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -139,17 +140,18 @@ export class KolInputRange implements InputRangeAPI, FocusableElement {
_id={this.state._id}
_label={this.state._label}
_msg={this.state._msg}
+ _shortKey={this.state._shortKey}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
>
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -331,6 +333,11 @@ export class KolInputRange implements InputRangeAPI, FocusableElement {
*/
@Prop() public _on?: InputTypeOnDefault;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Defines the step size for value changes.
*/
@@ -469,6 +476,11 @@ export class KolInputRange implements InputRangeAPI, FocusableElement {
this.controller.validateOn(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_step')
public validateStep(value?: number): void {
this.controller.validateStep(value);
diff --git a/packages/components/src/components/input-range/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-range/test/__snapshots__/snapshot.spec.tsx.snap
index 39c8e3b36d..2faeacc35b 100644
--- a/packages/components/src/components/input-range/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-range/test/__snapshots__/snapshot.spec.tsx.snap
@@ -201,6 +201,27 @@ exports[`kol-input-range should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-range should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value=5 _min=1 _max=10 _step=1 _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-range should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value=5 _min=1 _max=10 _step=1 _suggestions=[1,2,3,4,5,6,7,8,9,10] _accessKey="V" 1`] = `
@@ -522,6 +543,39 @@ exports[`kol-input-range should render with _label="Label" _name="field" _placeh
`;
+exports[`kol-input-range should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value=5 _min=1 _max=10 _step=1 _suggestions=[1,2,3,4,5,6,7,8,9,10] _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-range should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value=5 _min=1 _max=10 _step=1 _suggestions=[1,2,3,4,5,6,7,8,9,10] _touched=true 1`] = `
diff --git a/packages/components/src/components/input-text/shadow.tsx b/packages/components/src/components/input-text/shadow.tsx
index 1530b87de0..978daf1f0b 100644
--- a/packages/components/src/components/input-text/shadow.tsx
+++ b/packages/components/src/components/input-text/shadow.tsx
@@ -1,4 +1,5 @@
import type {
+ AccessKeyPropType,
AlertPropType,
ButtonProps,
FocusableElement,
@@ -13,19 +14,20 @@ import type {
LabelWithExpertSlotPropType,
MsgPropType,
NamePropType,
+ ShortKeyPropType,
Stringified,
SuggestionsPropType,
SyncValueBySelectorPropType,
TooltipAlignPropType,
} from '../../schema';
-import { setState, showExpertSlot, validateAlert } from '../../schema';
+import { buildBadgeTextString, setState, showExpertSlot, validateAlert } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { propagateSubmitEventToForm } from '../form/controller';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { InputTextController } from './controller';
import { KolInputTag } from '../../core/component-names';
@@ -123,6 +125,7 @@ export class KolInputText implements InputTextAPI, FocusableElement {
_msg={this.state._msg}
_readOnly={this.state._readOnly}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_smartButton={this.state._smartButton}
_suggestions={this.state._suggestions}
_tooltipAlign={this._tooltipAlign}
@@ -133,11 +136,11 @@ export class KolInputText implements InputTextAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -190,7 +193,7 @@ export class KolInputText implements InputTextAPI, FocusableElement {
/**
* Defines which key combination can be used to trigger or focus the interactive element of the component.
*/
- @Prop() public _accessKey?: string;
+ @Prop() public _accessKey?: AccessKeyPropType;
/**
* Defines whether the screen-readers should read out the notification.
@@ -296,6 +299,11 @@ export class KolInputText implements InputTextAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Suggestions to provide for the input.
*/
@@ -363,7 +371,7 @@ export class KolInputText implements InputTextAPI, FocusableElement {
}
@Watch('_accessKey')
- public validateAccessKey(value?: string): void {
+ public validateAccessKey(value?: AccessKeyPropType): void {
this.controller.validateAccessKey(value);
}
@@ -462,6 +470,11 @@ export class KolInputText implements InputTextAPI, FocusableElement {
this.controller.validateRequired(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_suggestions')
public validateSuggestions(value?: SuggestionsPropType): void {
this.controller.validateSuggestions(value);
diff --git a/packages/components/src/components/input-text/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input-text/test/__snapshots__/snapshot.spec.tsx.snap
index 31a56eafb9..4e31677309 100644
--- a/packages/components/src/components/input-text/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input-text/test/__snapshots__/snapshot.spec.tsx.snap
@@ -171,6 +171,24 @@ exports[`kol-input-text should render with _label="Label" _name="field" _placeho
`;
+exports[`kol-input-text should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+
+
+
+
+
+`;
+
exports[`kol-input-text should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _value="Value" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input/component.tsx b/packages/components/src/components/input/component.tsx
index 6894a4d4f2..6487f766e0 100644
--- a/packages/components/src/components/input/component.tsx
+++ b/packages/components/src/components/input/component.tsx
@@ -1,5 +1,5 @@
/* eslint-disable jsx-a11y/label-has-associated-control */
-import { handleSlotContent, type MsgPropType, showExpertSlot } from '../../schema';
+import { handleSlotContent, type MsgPropType, type ShortKeyPropType, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, Host, Prop, h } from '@stencil/core';
import clsx from 'clsx';
@@ -114,7 +114,7 @@ export class KolInputWc implements Props {
*/
aria-hidden="true"
class="input-tooltip"
- _accessKey={this._accessKey}
+ _badgeText={this._accessKey || this._shortKey}
_align={this._tooltipAlign}
_id={this._hideLabel ? `${this._id}-label` : undefined}
_label={this._label}
@@ -234,6 +234,11 @@ export class KolInputWc implements Props {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Ermöglicht den Slotnamen zu bestimmen. Wird nur verwendet, wenn sonst mehrere Slots mit dem gleichen Namen innerhalb eines Shadow DOMs existieren würden.
* @internal
diff --git a/packages/components/src/components/input/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/input/test/__snapshots__/snapshot.spec.tsx.snap
index 0816c1ab89..44eca98cca 100644
--- a/packages/components/src/components/input/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/input/test/__snapshots__/snapshot.spec.tsx.snap
@@ -127,6 +127,18 @@ exports[`kol-input should render with _label="Label" _name="field" _placeholder=
`;
+exports[`kol-input should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _shortKey="S" 1`] = `
+
+
+
+
+
+
+
+`;
+
exports[`kol-input should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _smartButton={"_icons":["codicon codicon-eye"],"_hideLabel":true,"_label":"einblenden"} 1`] = `
diff --git a/packages/components/src/components/input/types.ts b/packages/components/src/components/input/types.ts
index c8e2c33a9e..a5c714e789 100644
--- a/packages/components/src/components/input/types.ts
+++ b/packages/components/src/components/input/types.ts
@@ -14,6 +14,7 @@ import type {
PropLabelWithExpertSlot,
PropReadOnly,
PropRequired,
+ PropShortKey,
PropSuggestions,
PropSyncValueBySelector,
PropTooltipAlign,
@@ -38,6 +39,7 @@ type OptionalProps = {
PropHideLabel &
PropReadOnly &
PropRequired &
+ PropShortKey &
PropSuggestions &
PropSyncValueBySelector &
PropTooltipAlign &
diff --git a/packages/components/src/components/link-button/shadow.tsx b/packages/components/src/components/link-button/shadow.tsx
index 4880fd85e8..3b13b0729b 100644
--- a/packages/components/src/components/link-button/shadow.tsx
+++ b/packages/components/src/components/link-button/shadow.tsx
@@ -13,6 +13,7 @@ import type {
LinkButtonProps,
LinkOnCallbacksPropType,
LinkTargetPropType,
+ ShortKeyPropType,
TooltipAlignPropType,
} from '../../schema';
import type { JSX } from '@stencil/core';
@@ -69,6 +70,7 @@ export class KolLinkButton implements LinkButtonProps, FocusableElement {
_label={this._label}
_on={this._on}
_role="button"
+ _shortKey={this._shortKey}
_tabIndex={this._tabIndex}
_target={this._target}
_tooltipAlign={this._tooltipAlign}
@@ -141,6 +143,11 @@ export class KolLinkButton implements LinkButtonProps, FocusableElement {
*/
@Prop() public _role?: AlternativeButtonLinkRolePropType;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Defines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)
*/
diff --git a/packages/components/src/components/link/component.tsx b/packages/components/src/components/link/component.tsx
index d491f5a8de..58e95ee804 100644
--- a/packages/components/src/components/link/component.tsx
+++ b/packages/components/src/components/link/component.tsx
@@ -15,6 +15,7 @@ import type {
LinkOnCallbacksPropType,
LinkStates,
LinkTargetPropType,
+ ShortKeyPropType,
Stringified,
TooltipAlignPropType,
} from '../../schema';
@@ -36,6 +37,7 @@ import {
validateLabelWithExpertSlot,
validateLinkCallbacks,
validateLinkTarget,
+ validateShortKey,
validateTabIndex,
validateTooltipAlign,
} from '../../schema';
@@ -48,6 +50,7 @@ import { nonce } from '../../utils/dev.utils';
import { KolIconTag, KolSpanWcTag, KolTooltipWcTag } from '../../core/component-names';
import { translate } from '../../i18n';
+import { validateAccessAndShortKey } from '../../schema/validators/access-and-short-key';
/**
* @internal
@@ -152,7 +155,7 @@ export class KolLinkWc implements LinkAPI, FocusableElement {
tabIndex={this.state._disabled ? -1 : this.state._tabIndex}
>
@@ -256,6 +259,11 @@ export class KolLinkWc implements LinkAPI, FocusableElement {
*/
@Prop() public _role?: AlternativeButtonLinkRolePropType;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Defines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)
*/
@@ -280,6 +288,7 @@ export class KolLinkWc implements LinkAPI, FocusableElement {
@Watch('_accessKey')
public validateAccessKey(value?: AccessKeyPropType): void {
validateAccessKey(this, value);
+ validateAccessAndShortKey(value, this._shortKey);
}
@Watch('_ariaCurrentValue')
@@ -344,6 +353,12 @@ export class KolLinkWc implements LinkAPI, FocusableElement {
validateAlternativeButtonLinkRole(this, value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ validateShortKey(this, value);
+ validateAccessAndShortKey(this._accessKey, value);
+ }
+
@Watch('_tabIndex')
public validateTabIndex(value?: number): void {
validateTabIndex(this, value);
@@ -373,12 +388,14 @@ export class KolLinkWc implements LinkAPI, FocusableElement {
this.validateLabel(this._label);
this.validateOn(this._on);
this.validateRole(this._role);
+ this.validateShortKey(this._shortKey);
this.validateTabIndex(this._tabIndex);
this.validateTarget(this._target);
this.validateTooltipAlign(this._tooltipAlign);
this.unsubscribeOnLocationChange = onLocationChange((location) => {
this.state._ariaCurrent = location === this.state._href ? this.state._ariaCurrentValue : undefined;
});
+ validateAccessAndShortKey(this._accessKey, this._shortKey);
}
public disconnectedCallback(): void {
diff --git a/packages/components/src/components/link/shadow.tsx b/packages/components/src/components/link/shadow.tsx
index 490e1a98e5..adf31ae04e 100644
--- a/packages/components/src/components/link/shadow.tsx
+++ b/packages/components/src/components/link/shadow.tsx
@@ -11,6 +11,7 @@ import type {
LinkOnCallbacksPropType,
LinkProps,
LinkTargetPropType,
+ ShortKeyPropType,
Stringified,
TooltipAlignPropType,
} from '../../schema';
@@ -63,6 +64,7 @@ export class KolLink implements LinkProps, FocusableElement {
_label={this._label}
_on={this._on}
_role={this._role}
+ _shortKey={this._shortKey}
_tabIndex={this._tabIndex}
_target={this._target}
_tooltipAlign={this._tooltipAlign}
@@ -134,6 +136,11 @@ export class KolLink implements LinkProps, FocusableElement {
*/
@Prop() public _role?: AlternativeButtonLinkRolePropType;
+ /**
+ * Defines the elements access key.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Defines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)
*/
diff --git a/packages/components/src/components/select/shadow.tsx b/packages/components/src/components/select/shadow.tsx
index 2ebdd87d4a..ba2026bc8e 100644
--- a/packages/components/src/components/select/shadow.tsx
+++ b/packages/components/src/components/select/shadow.tsx
@@ -14,19 +14,20 @@ import type {
SelectAPI,
SelectOption,
SelectStates,
+ ShortKeyPropType,
Stringified,
SyncValueBySelectorPropType,
TooltipAlignPropType,
W3CInputValue,
} from '../../schema';
-import { showExpertSlot } from '../../schema';
+import { buildBadgeTextString, showExpertSlot } from '../../schema';
import type { JSX } from '@stencil/core';
import { Component, Element, Fragment, h, Host, Method, Prop, State, Watch } from '@stencil/core';
import { nonce } from '../../utils/dev.utils';
import { stopPropagation, tryToDispatchKoliBriEvent } from '../../utils/events';
import { getRenderStates } from '../input/controller';
-import { InternalUnderlinedAccessKey } from '../span/InternalUnderlinedAccessKey';
+import { InternalUnderlinedBadgeText } from '../span/InternalUnderlinedBadgeText';
import { SelectController } from './controller';
import { KolInputTag } from '../../core/component-names';
import { propagateSubmitEventToForm } from '../form/controller';
@@ -120,6 +121,7 @@ export class KolSelect implements SelectAPI, FocusableElement {
_label={this.state._label}
_msg={this.state._msg}
_required={this.state._required}
+ _shortKey={this.state._shortKey}
_tooltipAlign={this._tooltipAlign}
_touched={this.state._touched}
onClick={() => this.selectRef?.focus()}
@@ -128,11 +130,11 @@ export class KolSelect implements SelectAPI, FocusableElement {
{hasExpertSlot ? (
- ) : typeof this.state._accessKey === 'string' ? (
+ ) : typeof this.state._accessKey === 'string' || typeof this.state._shortKey === 'string' ? (
<>
- {' '}
+ {' '}
- {this.state._accessKey}
+ {buildBadgeTextString(this.state._accessKey, this.state._shortKey)}
>
) : (
@@ -298,6 +300,11 @@ export class KolSelect implements SelectAPI, FocusableElement {
*/
@Prop() public _required?: boolean = false;
+ /**
+ * Adds a visual short key hint to the component.
+ */
+ @Prop() public _shortKey?: ShortKeyPropType;
+
/**
* Defines how many rows of options should be visible at the same time.
*/
@@ -438,6 +445,11 @@ export class KolSelect implements SelectAPI, FocusableElement {
this.controller.validateRows(value);
}
+ @Watch('_shortKey')
+ public validateShortKey(value?: ShortKeyPropType): void {
+ this.controller.validateShortKey(value);
+ }
+
@Watch('_syncValueBySelector')
public validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {
this.controller.validateSyncValueBySelector(value);
diff --git a/packages/components/src/components/select/test/__snapshots__/snapshot.spec.tsx.snap b/packages/components/src/components/select/test/__snapshots__/snapshot.spec.tsx.snap
index 0f377f0a14..cd787f4018 100644
--- a/packages/components/src/components/select/test/__snapshots__/snapshot.spec.tsx.snap
+++ b/packages/components/src/components/select/test/__snapshots__/snapshot.spec.tsx.snap
@@ -572,6 +572,37 @@ exports[`kol-select should render with _label="Label" _name="field" _placeholder
`;
+exports[`kol-select should render with _label="Label" _name="field" _placeholder="Hier steht ein Platzhaltertext" _options=[{"label":"Frau","value":"Frau","disabled":true},{"label":"Herr","value":"Herr"},{"label":"Divers","value":"Divers"}] _multiple=true _shortKey="S" 1`] = `
+
+
+
+
+ Label
+
+ S
+
+
+
+ >
+);
diff --git a/packages/samples/react/src/components/link/routes.ts b/packages/samples/react/src/components/link/routes.ts
index 6f30683e35..5154b0eec2 100644
--- a/packages/samples/react/src/components/link/routes.ts
+++ b/packages/samples/react/src/components/link/routes.ts
@@ -4,6 +4,8 @@ import { LinkIcons } from './icons';
import { LinkImage } from './image';
import { LinkTarget } from './target';
import { LinkAriaDescription } from './aria-description';
+import { LinkAccessKey } from './access-key';
+import { LinkShortKey } from './short-key';
export const LINK_ROUTES: Routes = {
link: {
@@ -12,5 +14,7 @@ export const LINK_ROUTES: Routes = {
image: LinkImage,
target: LinkTarget,
'aria-description': LinkAriaDescription,
+ 'access-key': LinkAccessKey,
+ 'short-key': LinkShortKey,
},
};
diff --git a/packages/samples/react/src/components/link/short-key.tsx b/packages/samples/react/src/components/link/short-key.tsx
new file mode 100644
index 0000000000..bc5beb4c7b
--- /dev/null
+++ b/packages/samples/react/src/components/link/short-key.tsx
@@ -0,0 +1,22 @@
+import type { FC } from 'react';
+import React from 'react';
+
+import { KolLink } from '@public-ui/react';
+import { SampleDescription } from '../SampleDescription';
+
+export const LinkShortKey: FC = () => (
+ <>
+
+
+ This sample shows KolButton with short key without functionality. The short key is purely visual. Its functionality needs to be developed separately.{' '}
+
+
+
+
+
+
+
+
+
+ >
+);
diff --git a/packages/samples/react/src/components/select/partials/cases.tsx b/packages/samples/react/src/components/select/partials/cases.tsx
index b410935f81..c3a998e873 100644
--- a/packages/samples/react/src/components/select/partials/cases.tsx
+++ b/packages/samples/react/src/components/select/partials/cases.tsx
@@ -57,6 +57,8 @@ export const SelectCases = forwardRef
+
+
);
});
diff --git a/packages/samples/react/src/components/single-select/partials/cases.tsx b/packages/samples/react/src/components/single-select/partials/cases.tsx
index db5b537f6f..ad3526f59a 100644
--- a/packages/samples/react/src/components/single-select/partials/cases.tsx
+++ b/packages/samples/react/src/components/single-select/partials/cases.tsx
@@ -34,6 +34,8 @@ export const SingleSelectCases = forwardRef
+ []} _value={'de'} _accessKey="c" />
+ []} _value={'de'} _shortKey="s" />
);
});
diff --git a/packages/samples/react/src/components/textarea/partials/cases.tsx b/packages/samples/react/src/components/textarea/partials/cases.tsx
index de65d48e7c..a445ddb5e5 100644
--- a/packages/samples/react/src/components/textarea/partials/cases.tsx
+++ b/packages/samples/react/src/components/textarea/partials/cases.tsx
@@ -14,6 +14,8 @@ export const TextareaCases = forwardRef
+
+
);
});
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-basic-firefox-linux.png
index 36faa34fa2..8dac111a83 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-card-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-card-msg-firefox-linux.png
index 5920c3366c..3ccfc24296 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-card-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-alert-card-msg-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png
index 83c0d8c0e4..fe23110720 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png
index 4bde7355c0..39bc24d115 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png
index c40d299f9e..3ef542b914 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-details-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-details-basic-firefox-linux.png
index 289b087c97..8842d55bcb 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-details-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-details-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-handout-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-handout-basic-firefox-linux.png
index a34229d92b..d79ab23a09 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-handout-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-handout-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-icon-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-icon-basic-firefox-linux.png
index c92d08db32..b1eab41d4e 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-icon-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-icon-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png
index 6921d91581..72402e97de 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png
index 3f7384bb86..c7ead85044 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png
index cb70a2e5a1..8780d70a39 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png
index 695cbcefbe..dea87c6395 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png
index 906bf42572..4e94aa19e7 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png
index 4c661a883b..fcc8bd5be7 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png
index 11525bed56..c06e8f5a3c 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png
index 27cc107d8e..6987299757 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png
index 360acb77d7..fa1613820a 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png
index 496a6eb5ed..8f359170ac 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png
index 0484dd199e..e7d42faa73 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png
index e419768b70..e4155ed2d2 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png
index 4c18176a01..d91091e649 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-accordion-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-accordion-firefox-linux.png
index 7123c8cf69..6e0ea184ba 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-accordion-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-accordion-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-inputCheckbox-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-inputCheckbox-firefox-linux.png
index e6afa2b8b6..ffb7dea5f4 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-inputCheckbox-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-scenarios-focus-elements-component-inputCheckbox-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png
index b2661c7db7..b699adb22f 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png
index b86f38f016..252447f5c7 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png
index 868e7beb7d..89b1dd2b39 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-default-variant-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-default-variant-msg-firefox-linux.png
index dcda89caf2..dde2ef6efb 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-default-variant-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-default-variant-msg-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-firefox-linux.png
index bded355143..b170ba61e9 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-variant-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-variant-msg-firefox-linux.png
index 25e01b0125..0340036e29 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-variant-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-error-variant-msg-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-firefox-linux.png
index 53348fdf17..6e9b8fee3d 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-variant-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-variant-msg-firefox-linux.png
index eea4ff268a..317bcb9f0a 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-variant-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-info-variant-msg-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-firefox-linux.png
index 85f8292620..498b0ffabe 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-variant-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-variant-msg-firefox-linux.png
index 35bff3386e..d52d863cd8 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-variant-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-success-variant-msg-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-firefox-linux.png
index 89e1591a39..04766acca2 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-variant-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-variant-msg-firefox-linux.png
index c0caa96e83..5af07fa5b5 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-variant-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-type-warning-variant-msg-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-card-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-card-firefox-linux.png
index 22341fa910..000c261f90 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-card-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-card-firefox-linux.png differ
diff --git a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-msg-firefox-linux.png b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-msg-firefox-linux.png
index c7fa80c80e..0f2f57552c 100644
Binary files a/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-msg-firefox-linux.png and b/packages/test-tag-name-transformer/snapshots/theme-default/snapshot-for-toast-basic-variant-msg-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-button-link-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-button-link-basic-firefox-linux.png
index 638a417275..ea643e0f2d 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-button-link-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-button-link-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-combobox-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-combobox-basic-firefox-linux.png
index ea29889d1d..9593ddd614 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-combobox-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-combobox-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-basic-firefox-linux.png
index 66acd04b7c..9d721deb31 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-button-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-button-firefox-linux.png
index 62f09773e0..ff1cec4b1a 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-button-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-button-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-switch-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-switch-firefox-linux.png
index 0460d4d927..29c5a99674 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-switch-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-checkbox-switch-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-color-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-color-basic-firefox-linux.png
index beb884b703..a3d400a52e 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-color-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-color-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-date-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-date-basic-firefox-linux.png
index c8a313c8a4..640db4c6ef 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-date-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-date-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-email-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-email-basic-firefox-linux.png
index e08b13075c..f9ad526077 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-email-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-email-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-file-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-file-basic-firefox-linux.png
index 9740d147f3..f04452cea1 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-file-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-file-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-number-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-number-basic-firefox-linux.png
index c9136a330a..ccfb9dc45f 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-number-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-number-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-password-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-password-basic-firefox-linux.png
index 607617e5b9..d3db1572c4 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-password-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-password-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-radio-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-radio-basic-firefox-linux.png
index abf94c6ca2..9fd6a3e558 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-radio-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-radio-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-range-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-range-basic-firefox-linux.png
index 99b834d772..8d17bcfd98 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-range-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-range-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-text-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-text-basic-firefox-linux.png
index 815a6c8125..3ba19b3020 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-text-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-input-text-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-link-button-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-link-button-basic-firefox-linux.png
index 72b9e63d62..c70ebcf441 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-link-button-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-link-button-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-select-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-select-basic-firefox-linux.png
index 360155e4e9..674fdb4a4c 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-select-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-select-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-single-select-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-single-select-basic-firefox-linux.png
index 99db9a6641..71037c8bde 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-single-select-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-single-select-basic-firefox-linux.png differ
diff --git a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-textarea-basic-firefox-linux.png b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-textarea-basic-firefox-linux.png
index 382388ba49..85580f32af 100644
Binary files a/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-textarea-basic-firefox-linux.png and b/packages/themes/bmf/snapshots/theme-bmf/snapshot-for-textarea-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png
index 83c0d8c0e4..fe23110720 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-button-access-key-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png
index 4bde7355c0..39bc24d115 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-button-link-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png
index c40d299f9e..77552d3287 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-combobox-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png
index 378e822aa5..8d8d8c3501 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png
index 3f7384bb86..c7ead85044 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-button-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png
index cb70a2e5a1..8780d70a39 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-checkbox-switch-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png
index 695cbcefbe..d1d6d434e1 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-color-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png
index 906bf42572..907ce28b44 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-date-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png
index 4c661a883b..7aab13845c 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-email-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png
index 11525bed56..b78ee47643 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-file-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png
index 27cc107d8e..3f9025a81c 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-number-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png
index 360acb77d7..f317e6e901 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-password-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png
index 496a6eb5ed..888da95691 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-radio-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png
index 0484dd199e..7277f4476e 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-range-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png
index e419768b70..e4155ed2d2 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-input-text-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png
index 4c18176a01..d91091e649 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-link-button-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png
index b2661c7db7..a9f0c07a8f 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-select-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png
index b86f38f016..b8d0864418 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-single-select-basic-firefox-linux.png differ
diff --git a/packages/themes/default/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png b/packages/themes/default/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png
index 868e7beb7d..24ef25f842 100644
Binary files a/packages/themes/default/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png and b/packages/themes/default/snapshots/theme-default/snapshot-for-textarea-basic-firefox-linux.png differ