From c30a90f8d8fc219bccda193e981f9cde26cd6f0a Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 25 Aug 2025 15:52:21 +0300 Subject: [PATCH 1/3] feat: add stepper component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Import and adapt stepper component from reindeerplus project. Includes vaadin-stepper and vaadin-step components with: - Vertical and horizontal orientations - Small size variant - Multiple states (active, completed, error, inactive) - Step navigation with href support - Descriptions and labels - Numbered step indicators - Connector lines between steps - Full accessibility support - RTL support 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- dev/stepper.html | 166 ++++++ packages/stepper/package.json | 46 ++ .../stepper/src/styles/vaadin-step-styles.js | 213 ++++++++ .../src/styles/vaadin-stepper-styles.js | 60 +++ packages/stepper/src/vaadin-step.js | 370 +++++++++++++ packages/stepper/src/vaadin-stepper.js | 195 +++++++ .../dom/__snapshots__/stepper.test.snap.js | 487 ++++++++++++++++++ packages/stepper/test/dom/stepper.test.js | 189 +++++++ packages/stepper/test/stepper.test.js | 389 ++++++++++++++ .../stepper/baseline/all-states.png | Bin 0 -> 5402 bytes .../screenshots/stepper/baseline/disabled.png | Bin 0 -> 2566 bytes .../stepper/baseline/focus-ring.png | Bin 0 -> 1344 bytes .../stepper/baseline/horizontal-default.png | Bin 0 -> 1586 bytes .../stepper/baseline/horizontal-small.png | Bin 0 -> 1818 bytes .../baseline/horizontal-with-descriptions.png | Bin 0 -> 3632 bytes .../screenshots/stepper/baseline/hover.png | Bin 0 -> 1344 bytes .../screenshots/stepper/baseline/no-href.png | Bin 0 -> 4801 bytes .../stepper/baseline/rtl-horizontal.png | Bin 0 -> 1517 bytes .../stepper/baseline/rtl-vertical.png | Bin 0 -> 3284 bytes .../stepper/baseline/vertical-default.png | Bin 0 -> 5186 bytes .../baseline/vertical-no-descriptions.png | Bin 0 -> 1706 bytes .../stepper/baseline/vertical-small.png | Bin 0 -> 4131 bytes .../stepper/test/visual/base/stepper.test.js | 245 +++++++++ .../stepper/baseline/all-states.png | Bin 0 -> 16857 bytes .../screenshots/stepper/baseline/disabled.png | Bin 0 -> 8868 bytes .../stepper/baseline/focus-ring.png | Bin 0 -> 8233 bytes .../stepper/baseline/horizontal-default.png | Bin 0 -> 7507 bytes .../stepper/baseline/horizontal-small.png | Bin 0 -> 6803 bytes .../baseline/horizontal-with-descriptions.png | Bin 0 -> 10579 bytes .../screenshots/stepper/baseline/hover.png | Bin 0 -> 7636 bytes .../screenshots/stepper/baseline/no-href.png | Bin 0 -> 15079 bytes .../stepper/baseline/rtl-horizontal.png | Bin 0 -> 8070 bytes .../stepper/baseline/rtl-vertical.png | Bin 0 -> 9982 bytes .../stepper/baseline/vertical-default.png | Bin 0 -> 15416 bytes .../baseline/vertical-no-descriptions.png | Bin 0 -> 9947 bytes .../stepper/baseline/vertical-small.png | Bin 0 -> 11115 bytes .../stepper/test/visual/lumo/stepper.test.js | 246 +++++++++ packages/stepper/vaadin-step.d.ts | 80 +++ packages/stepper/vaadin-step.js | 6 + packages/stepper/vaadin-stepper.d.ts | 56 ++ packages/stepper/vaadin-stepper.js | 6 + 41 files changed, 2754 insertions(+) create mode 100644 dev/stepper.html create mode 100644 packages/stepper/package.json create mode 100644 packages/stepper/src/styles/vaadin-step-styles.js create mode 100644 packages/stepper/src/styles/vaadin-stepper-styles.js create mode 100644 packages/stepper/src/vaadin-step.js create mode 100644 packages/stepper/src/vaadin-stepper.js create mode 100644 packages/stepper/test/dom/__snapshots__/stepper.test.snap.js create mode 100644 packages/stepper/test/dom/stepper.test.js create mode 100644 packages/stepper/test/stepper.test.js create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/all-states.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/disabled.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/focus-ring.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-default.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-small.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-with-descriptions.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/hover.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/no-href.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/rtl-horizontal.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/rtl-vertical.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-default.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-no-descriptions.png create mode 100644 packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-small.png create mode 100644 packages/stepper/test/visual/base/stepper.test.js create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/all-states.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/disabled.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/focus-ring.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-default.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-small.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-with-descriptions.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/hover.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/no-href.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/rtl-horizontal.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/rtl-vertical.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-default.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-no-descriptions.png create mode 100644 packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-small.png create mode 100644 packages/stepper/test/visual/lumo/stepper.test.js create mode 100644 packages/stepper/vaadin-step.d.ts create mode 100644 packages/stepper/vaadin-step.js create mode 100644 packages/stepper/vaadin-stepper.d.ts create mode 100644 packages/stepper/vaadin-stepper.js diff --git a/dev/stepper.html b/dev/stepper.html new file mode 100644 index 00000000000..d71fefceb3e --- /dev/null +++ b/dev/stepper.html @@ -0,0 +1,166 @@ + + + + + + vaadin-stepper + + + + + + +

Stepper Examples

+ +
+

Vertical Stepper (Default)

+ + + + + + +
+ +
+

Horizontal Stepper

+ + + + + + +
+ +
+

Small Stepper

+ + + + + + +
+ +
+

Horizontal Small Stepper

+ + + + + + +
+ +
+

Stepper with Error State

+ + + + + + +
+ +
+

Disabled Steps

+ + + + + +
+ +
+

Steps without Links

+ + + + + + +
+ +
+

Interactive Stepper

+ + + + + + + +
+ + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/packages/stepper/package.json b/packages/stepper/package.json new file mode 100644 index 00000000000..bc3299b8626 --- /dev/null +++ b/packages/stepper/package.json @@ -0,0 +1,46 @@ +{ + "name": "@vaadin/stepper", + "version": "25.0.0-dev", + "publishConfig": { + "access": "public" + }, + "description": "Web component for step-by-step process", + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/vaadin/web-components.git", + "directory": "packages/stepper" + }, + "author": "Vaadin Ltd", + "homepage": "https://vaadin.com/components", + "bugs": { + "url": "https://github.com/vaadin/web-components/issues" + }, + "main": "vaadin-stepper.js", + "module": "vaadin-stepper.js", + "type": "module", + "files": [ + "src", + "vaadin-*.d.ts", + "vaadin-*.js" + ], + "keywords": [ + "Vaadin", + "stepper", + "step", + "progress", + "wizard", + "web-components", + "web-component" + ], + "dependencies": { + "@vaadin/a11y-base": "25.0.0-alpha16", + "@vaadin/component-base": "25.0.0-alpha16", + "@vaadin/vaadin-themable-mixin": "25.0.0-alpha16", + "lit": "^3.0.0" + }, + "devDependencies": { + "@vaadin/chai-plugins": "25.0.0-alpha16", + "@vaadin/testing-helpers": "^2.0.0" + } +} \ No newline at end of file diff --git a/packages/stepper/src/styles/vaadin-step-styles.js b/packages/stepper/src/styles/vaadin-step-styles.js new file mode 100644 index 00000000000..509021cecf1 --- /dev/null +++ b/packages/stepper/src/styles/vaadin-step-styles.js @@ -0,0 +1,213 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import { css } from 'lit'; + +export const stepStyles = css` + :host { + display: block; + position: relative; + min-width: 0; + font-family: var(--lumo-font-family); + } + + :host([hidden]) { + display: none !important; + } + + :host([disabled]) { + pointer-events: none; + opacity: 0.5; + } + + /* Content wrapper */ + a, + div { + display: flex; + align-items: center; + gap: var(--lumo-space-m); + padding: var(--lumo-space-s); + text-decoration: none; + color: inherit; + cursor: pointer; + outline: none; + transition: color 0.2s; + } + + :host([small]) a, + :host([small]) div { + gap: var(--lumo-space-s); + } + + div { + cursor: default; + } + + /* Indicator (circle) */ + [part='indicator'] { + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: var(--lumo-size-m); + height: var(--lumo-size-m); + border: 2px solid var(--lumo-contrast-30pct); + border-radius: 50%; + background: var(--lumo-base-color); + font-size: var(--lumo-font-size-s); + font-weight: 500; + color: var(--lumo-secondary-text-color); + transition: all 0.2s; + } + + :host([small]) [part='indicator'] { + width: var(--lumo-size-xs); + height: var(--lumo-size-xs); + font-size: var(--lumo-font-size-xs); + } + + /* Active state */ + :host([active]) [part='indicator'] { + border-color: var(--lumo-primary-color); + color: var(--lumo-primary-color); + } + + /* Completed state */ + :host([completed]) [part='indicator'] { + background: var(--lumo-primary-color); + border-color: var(--lumo-primary-color); + color: var(--lumo-primary-contrast-color); + } + + /* Error state */ + :host([error]) [part='indicator'] { + background: var(--lumo-error-color); + border-color: var(--lumo-error-color); + color: var(--lumo-error-contrast-color); + } + + /* Content */ + [part='content'] { + display: flex; + flex-direction: column; + overflow: hidden; + flex: 1; + } + + /* Label */ + [part='label'] { + font-weight: 500; + color: var(--lumo-body-text-color); + } + + :host([small]) [part='label'] { + font-size: var(--lumo-font-size-s); + } + + :host([active]) [part='label'] { + color: var(--lumo-primary-color); + } + + :host([completed]) [part='label'] { + color: var(--lumo-body-text-color); + } + + :host([error]) [part='label'] { + color: var(--lumo-error-color); + } + + :host(:not([active]):not([completed]):not([error])) [part='label'] { + color: var(--lumo-secondary-text-color); + } + + /* Description */ + [part='description'] { + font-size: var(--lumo-font-size-s); + color: var(--lumo-secondary-text-color); + margin-top: var(--lumo-space-xs); + } + + :host([small]) [part='description'] { + font-size: var(--lumo-font-size-xs); + } + + /* Horizontal orientation specific styles */ + :host([orientation='horizontal']) [part='label'], + :host([orientation='horizontal']) [part='description'] { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + /* Connector line */ + [part='connector'] { + position: absolute; + background: var(--lumo-contrast-30pct); + } + + /* Vertical connector */ + :host([orientation='vertical']) [part='connector'] { + position: absolute; + left: calc(var(--lumo-size-m) / 2 + var(--lumo-space-s) - 1px); + top: calc(var(--lumo-size-m) + var(--lumo-space-s)); + width: 2px; + height: var(--lumo-space-l); + } + + :host([orientation='vertical'][small]) [part='connector'] { + left: calc(var(--lumo-size-xs) / 2 + var(--lumo-space-s) - 1px); + top: calc(var(--lumo-size-xs) + var(--lumo-space-s)); + height: var(--lumo-space-m); + } + + /* Horizontal connector */ + :host([orientation='horizontal']) [part='connector'] { + top: 50%; + left: 100%; + right: calc(var(--lumo-space-l) * -1); + height: 2px; + transform: translateY(-50%); + } + + /* Hide connector for last step */ + :host([last]) [part='connector'] { + display: none; + } + + /* Hover effects */ + a:hover [part='indicator']:not(:host([disabled]) [part='indicator']) { + border-color: var(--lumo-primary-color-50pct); + } + + a:hover [part='label']:not(:host([disabled]) [part='label']) { + color: var(--lumo-primary-text-color); + } + + /* Focus styles */ + a:focus-visible { + outline: 2px solid var(--lumo-primary-color); + outline-offset: 2px; + border-radius: var(--lumo-border-radius-m); + } + + /* Icons in indicator */ + .checkmark, + .error-icon, + .step-number { + line-height: 1; + } + + /* RTL support */ + :host([dir='rtl']) [part='connector'] { + left: auto; + right: calc(var(--lumo-size-m) / 2); + transform: translateX(50%); + } + + :host([dir='rtl'][orientation='horizontal']) [part='connector'] { + left: calc(var(--lumo-space-l) * -1); + right: 100%; + } +`; diff --git a/packages/stepper/src/styles/vaadin-stepper-styles.js b/packages/stepper/src/styles/vaadin-stepper-styles.js new file mode 100644 index 00000000000..9ca60aec9a5 --- /dev/null +++ b/packages/stepper/src/styles/vaadin-stepper-styles.js @@ -0,0 +1,60 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import { css } from 'lit'; + +export const stepperStyles = css` + :host { + display: block; + font-family: var(--lumo-font-family); + } + + :host([hidden]) { + display: none !important; + } + + [part='nav'] { + display: block; + } + + [part='list'] { + display: flex; + flex-direction: column; + gap: var(--lumo-space-l); + list-style: none; + margin: 0; + padding: 0; + counter-reset: step; + } + + /* Horizontal orientation */ + :host([orientation='horizontal']) [part='list'] { + flex-direction: row; + align-items: center; + } + + /* Small theme */ + :host([theme~='small']) [part='list'] { + gap: var(--lumo-space-m); + } + + /* Counter for step numbers */ + ::slotted(vaadin-step) { + counter-increment: step; + } + + /* Responsive behavior */ + @media (max-width: 1023px) { + :host([orientation='horizontal']) [part='list'] { + flex-direction: column; + align-items: stretch; + } + } + + /* RTL support */ + :host([dir='rtl']) [part='list'] { + direction: rtl; + } +`; diff --git a/packages/stepper/src/vaadin-step.js b/packages/stepper/src/vaadin-step.js new file mode 100644 index 00000000000..eac83ac953a --- /dev/null +++ b/packages/stepper/src/vaadin-step.js @@ -0,0 +1,370 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import { html, LitElement } from 'lit'; +import { ifDefined } from 'lit/directives/if-defined.js'; +import { DisabledMixin } from '@vaadin/a11y-base/src/disabled-mixin.js'; +import { defineCustomElement } from '@vaadin/component-base/src/define.js'; +import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js'; +import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js'; +import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js'; +import { matchPaths } from '@vaadin/component-base/src/url-utils.js'; +import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js'; +import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; +import { stepStyles } from './styles/vaadin-step-styles.js'; + +/** + * `` is a Web Component for displaying a single step in a stepper. + * + * ```html + * Step 1 + * ``` + * + * ### Styling + * + * The following shadow DOM parts are available for styling: + * + * Part name | Description + * -------------|---------------- + * `indicator` | The step indicator (circle with number/icon) + * `content` | The content wrapper containing label and description + * `label` | The step label + * `description`| The step description + * `connector` | The connector line to the next step + * + * The following state attributes are available for styling: + * + * Attribute | Description + * -------------|------------- + * `disabled` | Set when the element is disabled + * `completed` | Set when the step is completed + * `error` | Set when the step has an error + * `active` | Set when the step is active + * `last` | Set when this is the last step + * `orientation`| The orientation of the parent stepper (horizontal or vertical) + * `small` | Set when using small size variant + * + * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation. + * + * @customElement + * @extends HTMLElement + * @mixes DisabledMixin + * @mixes DirMixin + * @mixes ElementMixin + * @mixes ThemableMixin + */ +class Step extends DisabledMixin(DirMixin(ElementMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement)))))) { + static get is() { + return 'vaadin-step'; + } + + static get styles() { + return stepStyles; + } + + static get properties() { + return { + /** + * The URL to navigate to + */ + href: { + type: String, + }, + + /** + * The target of the link + */ + target: { + type: String, + }, + + /** + * The label text + */ + label: { + type: String, + }, + + /** + * The description text + */ + description: { + type: String, + }, + + /** + * The state of the step + * @type {string} + */ + state: { + type: String, + value: 'inactive', + reflectToAttribute: true, + observer: '_stateChanged', + }, + + /** + * Whether to exclude the item from client-side routing + * @type {boolean} + * @attr {boolean} router-ignore + */ + routerIgnore: { + type: Boolean, + value: false, + }, + + /** + * The orientation from parent stepper + * @type {string} + * @private + */ + _orientation: { + type: String, + value: 'vertical', + reflectToAttribute: true, + attribute: 'orientation', + }, + + /** + * Whether this is the last step + * @type {boolean} + * @private + */ + _last: { + type: Boolean, + value: false, + reflectToAttribute: true, + attribute: 'last', + }, + + /** + * Whether using small size variant + * @type {boolean} + * @private + */ + _small: { + type: Boolean, + value: false, + reflectToAttribute: true, + attribute: 'small', + }, + + /** + * The step number + * @type {number} + * @private + */ + _stepNumber: { + type: Number, + value: 0, + }, + + /** + * Whether the step's href matches the current page + * @type {boolean} + */ + current: { + type: Boolean, + value: false, + readOnly: true, + reflectToAttribute: true, + }, + + /** + * Whether the step is completed + * @type {boolean} + */ + completed: { + type: Boolean, + value: false, + reflectToAttribute: true, + }, + + /** + * Whether the step has an error + * @type {boolean} + */ + error: { + type: Boolean, + value: false, + reflectToAttribute: true, + }, + + /** + * Whether the step is active + * @type {boolean} + */ + active: { + type: Boolean, + value: false, + reflectToAttribute: true, + }, + }; + } + + constructor() { + super(); + this.__boundUpdateCurrent = this.__updateCurrent.bind(this); + } + + /** @protected */ + render() { + const hasLink = !!this.href; + const showConnector = !this._last; + + return html` + ${hasLink + ? html` + + ${this._renderContent()} + + ` + : html`
${this._renderContent()}
`} + ${showConnector ? html`` : ''} + `; + } + + /** @private */ + _renderContent() { + return html` + + + ${this.label || html``} + ${this.description ? html`${this.description}` : ''} + + `; + } + + /** @protected */ + firstUpdated() { + super.firstUpdated(); + + if (!this.hasAttribute('role')) { + this.setAttribute('role', 'listitem'); + } + } + + /** @protected */ + updated(props) { + super.updated(props); + + if (props.has('href')) { + this.__updateCurrent(); + } + } + + /** @protected */ + connectedCallback() { + super.connectedCallback(); + this.__updateCurrent(); + + window.addEventListener('popstate', this.__boundUpdateCurrent); + window.addEventListener('vaadin-navigated', this.__boundUpdateCurrent); + } + + /** @protected */ + disconnectedCallback() { + super.disconnectedCallback(); + + window.removeEventListener('popstate', this.__boundUpdateCurrent); + window.removeEventListener('vaadin-navigated', this.__boundUpdateCurrent); + } + + /** + * @param {boolean} last + * @private + */ + _setLast(last) { + this._last = last; + } + + /** + * @param {string} orientation + * @private + */ + _setOrientation(orientation) { + this._orientation = orientation; + } + + /** + * @param {boolean} small + * @private + */ + _setSmall(small) { + this._small = small; + } + + /** + * @param {number} stepNumber + * @private + */ + _setStepNumber(stepNumber) { + this._stepNumber = stepNumber; + } + + /** @private */ + _stateChanged() { + this._updateStateAttributes(); + } + + /** @private */ + __updateCurrent() { + if (!this.href) { + this._setCurrent(false); + return; + } + + const browserPath = `${location.pathname}${location.search}`; + const isCurrent = matchPaths(browserPath, this.href); + this._setCurrent(isCurrent); + + // Set active state if current + if (isCurrent) { + this.active = true; + this.completed = false; + this.error = false; + } + } + + /** @private */ + _updateStateAttributes() { + // Clear all states first + this.active = false; + this.completed = false; + this.error = false; + + // Set the appropriate state + switch (this.state) { + case 'active': + this.active = true; + break; + case 'completed': + this.completed = true; + break; + case 'error': + this.error = true; + break; + default: + // inactive state - all flags remain false + break; + } + } +} + +defineCustomElement(Step); + +export { Step }; diff --git a/packages/stepper/src/vaadin-stepper.js b/packages/stepper/src/vaadin-stepper.js new file mode 100644 index 00000000000..bacf28de0b7 --- /dev/null +++ b/packages/stepper/src/vaadin-stepper.js @@ -0,0 +1,195 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import './vaadin-step.js'; +import { html, LitElement } from 'lit'; +import { defineCustomElement } from '@vaadin/component-base/src/define.js'; +import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js'; +import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js'; +import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js'; +import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; +import { stepperStyles } from './styles/vaadin-stepper-styles.js'; + +/** + * `` is a Web Component for displaying a step-by-step process. + * + * ```html + * + * Step 1 + * Step 2 + * Step 3 + * + * ``` + * + * ### Styling + * + * The following shadow DOM parts are available for styling: + * + * Part name | Description + * -----------|---------------- + * `list` | The ordered list element containing steps + * + * The following attributes are available for styling: + * + * Attribute | Description + * --------------|------------- + * `orientation` | The orientation of the stepper (horizontal or vertical) + * `theme` | Can be set to `small` for compact size + * + * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation. + * + * @customElement + * @extends HTMLElement + * @mixes ElementMixin + * @mixes ThemableMixin + */ +class Stepper extends ElementMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement)))) { + static get is() { + return 'vaadin-stepper'; + } + + static get styles() { + return stepperStyles; + } + + static get properties() { + return { + /** + * The orientation of the stepper + * @type {string} + * @attr {string} orientation + */ + orientation: { + type: String, + value: 'vertical', + reflectToAttribute: true, + }, + + /** + * The list of steps + * @type {!Array} + * @private + */ + _steps: { + type: Array, + }, + }; + } + + constructor() { + super(); + this._steps = []; + } + + /** @protected */ + render() { + return html` + + `; + } + + /** @protected */ + firstUpdated() { + super.firstUpdated(); + + if (!this.hasAttribute('role')) { + this.setAttribute('role', 'navigation'); + } + + this.setAttribute('aria-label', 'Progress'); + } + + /** @protected */ + updated(props) { + super.updated(props); + + if (props.has('orientation')) { + this._updateStepsOrientation(); + } + } + + /** @private */ + _onSlotChange() { + const slot = this.shadowRoot.querySelector('slot'); + const steps = slot.assignedElements().filter((el) => el.localName === 'vaadin-step'); + + this._steps = steps; + + // Update step properties + steps.forEach((step, index) => { + const isLast = index === steps.length - 1; + step._setLast(isLast); + step._setStepNumber(index + 1); + step._setOrientation(this.orientation); + + // Check if step has small theme + const theme = this.getAttribute('theme'); + const hasSmallTheme = theme && theme.includes('small'); + step._setSmall(hasSmallTheme); + }); + } + + /** @private */ + _updateStepsOrientation() { + if (this._steps) { + this._steps.forEach((step) => { + step._setOrientation(this.orientation); + }); + } + } + + /** + * Sets the state of a specific step + * @param {string} state - The state to set ('active', 'completed', 'error', 'inactive') + * @param {number} stepIndex - The index of the step to update + */ + setStepState(state, stepIndex) { + if (this._steps && this._steps[stepIndex]) { + this._steps[stepIndex].state = state; + this._steps[stepIndex].requestUpdate(); + } + } + + /** + * Marks steps up to the specified index as completed + * @param {number} untilIndex - Complete steps up to this index (exclusive) + */ + completeStepsUntil(untilIndex) { + if (this._steps) { + this._steps.forEach((step, index) => { + if (index < untilIndex) { + step.state = 'completed'; + } + }); + } + } + + /** + * Gets the current active step + * @return {Step|null} The active step or null if none is active + */ + getActiveStep() { + return this._steps.find((step) => step.active) || null; + } + + /** + * Resets all steps to inactive state + */ + reset() { + if (this._steps) { + this._steps.forEach((step) => { + step.state = 'inactive'; + }); + } + } +} + +defineCustomElement(Stepper); + +export { Stepper }; diff --git a/packages/stepper/test/dom/__snapshots__/stepper.test.snap.js b/packages/stepper/test/dom/__snapshots__/stepper.test.snap.js new file mode 100644 index 00000000000..70a1d4d5abc --- /dev/null +++ b/packages/stepper/test/dom/__snapshots__/stepper.test.snap.js @@ -0,0 +1,487 @@ +/* @web/test-runner snapshot v1 */ +export const snapshots = {}; + +snapshots["vaadin-stepper stepper host default"] = +` + + + + + + + +`; +/* end snapshot vaadin-stepper stepper host default */ + +snapshots["vaadin-stepper stepper host horizontal"] = +` + + + + + + + +`; +/* end snapshot vaadin-stepper stepper host horizontal */ + +snapshots["vaadin-stepper stepper host small theme"] = +` + + + + + + + +`; +/* end snapshot vaadin-stepper stepper host small theme */ + +snapshots["vaadin-stepper stepper shadow default"] = +` +`; +/* end snapshot vaadin-stepper stepper shadow default */ + +snapshots["vaadin-step step host default with href"] = +` + +`; +/* end snapshot vaadin-step step host default with href */ + +snapshots["vaadin-step step host default without href"] = +` + +`; +/* end snapshot vaadin-step step host default without href */ + +snapshots["vaadin-step step host with description"] = +` + +`; +/* end snapshot vaadin-step step host with description */ + +snapshots["vaadin-step step host active state"] = +` + +`; +/* end snapshot vaadin-step step host active state */ + +snapshots["vaadin-step step host completed state"] = +` + +`; +/* end snapshot vaadin-step step host completed state */ + +snapshots["vaadin-step step host error state"] = +` + +`; +/* end snapshot vaadin-step step host error state */ + +snapshots["vaadin-step step host disabled"] = +` + +`; +/* end snapshot vaadin-step step host disabled */ + +snapshots["vaadin-step step host with target"] = +` + +`; +/* end snapshot vaadin-step step host with target */ + +snapshots["vaadin-step step host router-ignore"] = +` + +`; +/* end snapshot vaadin-step step host router-ignore */ + +snapshots["vaadin-step step host focused"] = +` + +`; +/* end snapshot vaadin-step step host focused */ + +snapshots["vaadin-step step host focus-ring"] = +` + +`; +/* end snapshot vaadin-step step host focus-ring */ + +snapshots["vaadin-step step host last step"] = +` + +`; +/* end snapshot vaadin-step step host last step */ + +snapshots["vaadin-step step host horizontal orientation"] = +` + +`; +/* end snapshot vaadin-step step host horizontal orientation */ + +snapshots["vaadin-step step host small size"] = +` + +`; +/* end snapshot vaadin-step step host small size */ + +snapshots["vaadin-step step host with step number"] = +` + +`; +/* end snapshot vaadin-step step host with step number */ + +snapshots["vaadin-step step host current"] = +` + +`; +/* end snapshot vaadin-step step host current */ + +snapshots["vaadin-step step shadow default with href"] = +` + + + + Test Step + + + + +`; +/* end snapshot vaadin-step step shadow default with href */ + +snapshots["vaadin-step step shadow default without href"] = +`
+ + + + Test Step + + +
+ +`; +/* end snapshot vaadin-step step shadow default without href */ + +snapshots["vaadin-step step shadow with description"] = +`
+ + + + Test Step + + + Step description + + +
+ +`; +/* end snapshot vaadin-step step shadow with description */ + +snapshots["vaadin-step step shadow completed state"] = +`
+ + + + Completed Step + + +
+ +`; +/* end snapshot vaadin-step step shadow completed state */ + +snapshots["vaadin-step step shadow error state"] = +`
+ + + + Error Step + + +
+ +`; +/* end snapshot vaadin-step step shadow error state */ + +snapshots["vaadin-step step shadow disabled"] = +`
+ + + + Disabled Step + + +
+ +`; +/* end snapshot vaadin-step step shadow disabled */ + +snapshots["vaadin-step step shadow last step"] = +`
+ + + + Last Step + + +
+ +`; +/* end snapshot vaadin-step step shadow last step */ + diff --git a/packages/stepper/test/dom/stepper.test.js b/packages/stepper/test/dom/stepper.test.js new file mode 100644 index 00000000000..940809c3b2e --- /dev/null +++ b/packages/stepper/test/dom/stepper.test.js @@ -0,0 +1,189 @@ +import { expect } from '@vaadin/chai-plugins'; +import { sendKeys } from '@vaadin/test-runner-commands'; +import { fixtureSync } from '@vaadin/testing-helpers'; +import '../../src/vaadin-stepper.js'; +import '../../src/vaadin-step.js'; + +describe('vaadin-stepper', () => { + let stepper; + + describe('stepper host', () => { + beforeEach(() => { + stepper = fixtureSync(` + + + + + + `); + }); + + it('default', async () => { + await expect(stepper).dom.to.equalSnapshot(); + }); + + it('horizontal', async () => { + stepper.orientation = 'horizontal'; + await expect(stepper).dom.to.equalSnapshot(); + }); + + it('small theme', async () => { + stepper.setAttribute('theme', 'small'); + await expect(stepper).dom.to.equalSnapshot(); + }); + }); + + describe('stepper shadow', () => { + beforeEach(() => { + stepper = fixtureSync(` + + + + + + `); + }); + + it('default', async () => { + await expect(stepper).shadowDom.to.equalSnapshot(); + }); + }); +}); + +describe('vaadin-step', () => { + let step; + + describe('step host', () => { + it('default with href', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('default without href', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('with description', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('active state', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('completed state', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('error state', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('disabled', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('with target', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('router-ignore', async () => { + step = fixtureSync(''); + await expect(step).dom.to.equalSnapshot(); + }); + + it('focused', async () => { + step = fixtureSync(''); + step.focus(); + await expect(step).dom.to.equalSnapshot(); + }); + + it('focus-ring', async () => { + step = fixtureSync(''); + await sendKeys({ press: 'Tab' }); + await expect(step).dom.to.equalSnapshot(); + }); + + it('last step', async () => { + step = fixtureSync(''); + step._setLast(true); + await expect(step).dom.to.equalSnapshot(); + }); + + it('horizontal orientation', async () => { + step = fixtureSync( + '', + ); + step._setOrientation('horizontal'); + await expect(step).dom.to.equalSnapshot(); + }); + + it('small size', async () => { + step = fixtureSync(''); + step._setSmall(true); + await expect(step).dom.to.equalSnapshot(); + }); + + it('with step number', async () => { + step = fixtureSync(''); + step._setStepNumber(3); + await expect(step).dom.to.equalSnapshot(); + }); + + it('current', async () => { + step = fixtureSync(''); + step._setCurrent(true); + await expect(step).dom.to.equalSnapshot(); + }); + }); + + describe('step shadow', () => { + it('default with href', async () => { + step = fixtureSync(''); + step._setStepNumber(1); + await expect(step).shadowDom.to.equalSnapshot(); + }); + + it('default without href', async () => { + step = fixtureSync(''); + step._setStepNumber(1); + await expect(step).shadowDom.to.equalSnapshot(); + }); + + it('with description', async () => { + step = fixtureSync(''); + step._setStepNumber(1); + await expect(step).shadowDom.to.equalSnapshot(); + }); + + it('completed state', async () => { + step = fixtureSync(''); + await expect(step).shadowDom.to.equalSnapshot(); + }); + + it('error state', async () => { + step = fixtureSync(''); + await expect(step).shadowDom.to.equalSnapshot(); + }); + + it('disabled', async () => { + step = fixtureSync(''); + step._setStepNumber(1); + await expect(step).shadowDom.to.equalSnapshot(); + }); + + it('last step', async () => { + step = fixtureSync(''); + step._setLast(true); + step._setStepNumber(4); + await expect(step).shadowDom.to.equalSnapshot(); + }); + }); +}); diff --git a/packages/stepper/test/stepper.test.js b/packages/stepper/test/stepper.test.js new file mode 100644 index 00000000000..884849b00bc --- /dev/null +++ b/packages/stepper/test/stepper.test.js @@ -0,0 +1,389 @@ +import { expect } from '@vaadin/chai-plugins'; +import { fixtureSync, nextFrame, nextRender } from '@vaadin/testing-helpers'; +import '../src/vaadin-stepper.js'; +import '../src/vaadin-step.js'; + +describe('vaadin-stepper', () => { + let stepper; + + describe('basic', () => { + beforeEach(() => { + stepper = fixtureSync(` + + + + + + `); + }); + + it('should have correct tag name', () => { + expect(stepper.localName).to.equal('vaadin-stepper'); + }); + + it('should have navigation role', () => { + expect(stepper.getAttribute('role')).to.equal('navigation'); + }); + + it('should have aria-label', () => { + expect(stepper.getAttribute('aria-label')).to.equal('Progress'); + }); + + it('should have vertical orientation by default', () => { + expect(stepper.orientation).to.equal('vertical'); + expect(stepper.getAttribute('orientation')).to.equal('vertical'); + }); + + it('should update steps array on slot change', async () => { + await nextFrame(); + expect(stepper._steps).to.have.lengthOf(3); + expect(stepper._steps[0].label).to.equal('Step 1'); + expect(stepper._steps[1].label).to.equal('Step 2'); + expect(stepper._steps[2].label).to.equal('Step 3'); + }); + + it('should mark last step', async () => { + await nextFrame(); + expect(stepper._steps[0].hasAttribute('last')).to.be.false; + expect(stepper._steps[1].hasAttribute('last')).to.be.false; + expect(stepper._steps[2].hasAttribute('last')).to.be.true; + }); + + it('should set step numbers', async () => { + await nextFrame(); + expect(stepper._steps[0]._stepNumber).to.equal(1); + expect(stepper._steps[1]._stepNumber).to.equal(2); + expect(stepper._steps[2]._stepNumber).to.equal(3); + }); + }); + + describe('orientation', () => { + beforeEach(() => { + stepper = fixtureSync(` + + + + + `); + }); + + it('should set horizontal orientation', () => { + expect(stepper.orientation).to.equal('horizontal'); + expect(stepper.getAttribute('orientation')).to.equal('horizontal'); + }); + + it('should update step orientation', async () => { + await nextFrame(); + expect(stepper._steps[0].getAttribute('orientation')).to.equal('horizontal'); + expect(stepper._steps[1].getAttribute('orientation')).to.equal('horizontal'); + }); + + it('should update orientation when changed', async () => { + await nextFrame(); + stepper.orientation = 'vertical'; + await nextFrame(); + expect(stepper._steps[0].getAttribute('orientation')).to.equal('vertical'); + expect(stepper._steps[1].getAttribute('orientation')).to.equal('vertical'); + }); + }); + + describe('theme', () => { + beforeEach(() => { + stepper = fixtureSync(` + + + + + `); + }); + + it('should apply small theme to steps', async () => { + await nextFrame(); + expect(stepper._steps[0].hasAttribute('small')).to.be.true; + expect(stepper._steps[1].hasAttribute('small')).to.be.true; + }); + }); + + describe('step states', () => { + beforeEach(() => { + stepper = fixtureSync(` + + + + + + `); + }); + + it('should set step state', async () => { + await nextFrame(); + stepper.setStepState('active', 0); + await nextRender(); + expect(stepper._steps[0].state).to.equal('active'); + expect(stepper._steps[0].hasAttribute('active')).to.be.true; + }); + + it('should complete steps until index', async () => { + await nextFrame(); + stepper.completeStepsUntil(2); + expect(stepper._steps[0].state).to.equal('completed'); + expect(stepper._steps[1].state).to.equal('completed'); + expect(stepper._steps[2].state).to.equal('inactive'); + }); + + it('should get active step', async () => { + await nextFrame(); + stepper.setStepState('active', 1); + await nextRender(); + const activeStep = stepper.getActiveStep(); + expect(activeStep).to.equal(stepper._steps[1]); + }); + + it('should return null when no active step', async () => { + await nextFrame(); + const activeStep = stepper.getActiveStep(); + expect(activeStep).to.be.null; + }); + + it('should reset all steps', async () => { + await nextFrame(); + stepper.setStepState('active', 0); + stepper.setStepState('completed', 1); + stepper.setStepState('error', 2); + + stepper.reset(); + + expect(stepper._steps[0].state).to.equal('inactive'); + expect(stepper._steps[1].state).to.equal('inactive'); + expect(stepper._steps[2].state).to.equal('inactive'); + }); + }); +}); + +describe('vaadin-step', () => { + let step; + + describe('basic', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should have correct tag name', () => { + expect(step.localName).to.equal('vaadin-step'); + }); + + it('should have listitem role', () => { + expect(step.getAttribute('role')).to.equal('listitem'); + }); + + it('should render label', () => { + expect(step.label).to.equal('Test Step'); + }); + + it('should render description', () => { + expect(step.description).to.equal('Test description'); + }); + + it('should have inactive state by default', () => { + expect(step.state).to.equal('inactive'); + }); + }); + + describe('with href', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should have href', () => { + expect(step.href).to.equal('/test'); + }); + + it('should render link element', () => { + const link = step.shadowRoot.querySelector('a'); + expect(link).to.exist; + expect(link.getAttribute('href')).to.equal('/test'); + }); + + it('should support target attribute', async () => { + step.target = '_blank'; + await nextFrame(); + const link = step.shadowRoot.querySelector('a'); + expect(link.getAttribute('target')).to.equal('_blank'); + }); + + it('should support router-ignore', async () => { + step.routerIgnore = true; + await nextFrame(); + const link = step.shadowRoot.querySelector('a'); + expect(link.hasAttribute('router-ignore')).to.be.true; + }); + }); + + describe('without href', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should render div element', () => { + const div = step.shadowRoot.querySelector('div'); + expect(div).to.exist; + const link = step.shadowRoot.querySelector('a'); + expect(link).to.not.exist; + }); + }); + + describe('states', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should set active state', async () => { + step.state = 'active'; + await nextRender(); + expect(step.hasAttribute('active')).to.be.true; + expect(step.hasAttribute('completed')).to.be.false; + expect(step.hasAttribute('error')).to.be.false; + }); + + it('should set completed state', async () => { + step.state = 'completed'; + await nextRender(); + expect(step.hasAttribute('completed')).to.be.true; + expect(step.hasAttribute('active')).to.be.false; + expect(step.hasAttribute('error')).to.be.false; + }); + + it('should set error state', async () => { + step.state = 'error'; + await nextRender(); + expect(step.hasAttribute('error')).to.be.true; + expect(step.hasAttribute('active')).to.be.false; + expect(step.hasAttribute('completed')).to.be.false; + }); + + it('should show checkmark for completed state', async () => { + step.state = 'completed'; + await nextFrame(); + const indicator = step.shadowRoot.querySelector('[part="indicator"]'); + expect(indicator.querySelector('.checkmark')).to.exist; + }); + + it('should show error icon for error state', async () => { + step.state = 'error'; + await nextFrame(); + const indicator = step.shadowRoot.querySelector('[part="indicator"]'); + expect(indicator.querySelector('.error-icon')).to.exist; + }); + + it('should show step number for other states', async () => { + step._setStepNumber(3); + await nextFrame(); + const indicator = step.shadowRoot.querySelector('[part="indicator"]'); + expect(indicator.querySelector('.step-number').textContent).to.equal('3'); + }); + }); + + describe('disabled', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should be disabled', () => { + expect(step.disabled).to.be.true; + }); + + it('should have disabled attribute', () => { + expect(step.hasAttribute('disabled')).to.be.true; + }); + + it('should have tabindex -1 when disabled', () => { + const link = step.shadowRoot.querySelector('a'); + expect(link.getAttribute('tabindex')).to.equal('-1'); + }); + }); + + describe('current page detection', () => { + let originalLocation; + + beforeEach(() => { + originalLocation = window.location.href; + window.history.pushState({}, '', '/test-page'); + step = fixtureSync(``); + }); + + afterEach(() => { + window.history.pushState({}, '', originalLocation); + }); + + it('should detect current page', () => { + expect(step.current).to.be.true; + expect(step.active).to.be.true; + }); + + it('should set aria-current for current page', async () => { + await nextRender(); + const link = step.shadowRoot.querySelector('a'); + expect(link.getAttribute('aria-current')).to.equal('step'); + }); + + it('should update on navigation', async () => { + window.history.pushState({}, '', '/other-page'); + window.dispatchEvent(new PopStateEvent('popstate')); + await nextFrame(); + expect(step.current).to.be.false; + }); + }); + + describe('orientation', () => { + beforeEach(() => { + step = fixtureSync( + ``, + ); + }); + + it('should have vertical orientation by default', () => { + expect(step.getAttribute('orientation')).to.equal('vertical'); + }); + + it('should update orientation', async () => { + step._setOrientation('horizontal'); + await nextRender(); + expect(step.getAttribute('orientation')).to.equal('horizontal'); + }); + }); + + describe('size', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should not be small by default', () => { + expect(step.hasAttribute('small')).to.be.false; + }); + + it('should set small size', async () => { + step._setSmall(true); + await nextRender(); + + expect(step.hasAttribute('small')).to.be.true; + }); + }); + + describe('connector', () => { + beforeEach(() => { + step = fixtureSync(``); + }); + + it('should show connector by default', () => { + const connector = step.shadowRoot.querySelector('[part="connector"]'); + expect(connector).to.exist; + }); + + it('should hide connector for last step', async () => { + step._setLast(true); + await nextFrame(); + const connector = step.shadowRoot.querySelector('[part="connector"]'); + expect(connector).to.not.exist; + }); + }); +}); diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/all-states.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/all-states.png new file mode 100644 index 0000000000000000000000000000000000000000..d71c6a96e845875f330491a409bc7ef9e2a0b442 GIT binary patch literal 5402 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 D=m78* literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/focus-ring.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/focus-ring.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7e4818b66ff445d6a14ce5e0242957ea59b5cf GIT binary patch literal 1344 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 S6p_0j8Q^H=V#~DgzVkQ2MgHah literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-small.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-small.png new file mode 100644 index 0000000000000000000000000000000000000000..3086249a2e8714cf73e5fc24e83f2f943bbeba0b GIT binary patch literal 1818 zcmbVN=UdYW68=$Ca0LWCBTbH8L^w%AN&qP#1Y?kuatQ`jsR0QKgf1(q#~~8n=t3YW z>>ec{2C@)=&=zTtrh!OT2%1oW(xpf?{0Vno=AD`6ect&n?=zEr69tz$sd5qk06Bz< z(~kfk1rg_ZGLqt0_8Du93MqE*?Yv73TI63PdT6MSmWmu$kB{X zTGc5Bh4{zZ>K!=>@%}yki&IaJZ+;=f)t9|aZ&=;Y zt#zy9v_#u#v}UgwDla6Mh$jisBIMP@2&m`;i=&N0)Nue9(f)smY?q<>Wya5h?|j>e z1dOODMFQv$4L{0bv`h#<$z)c7A;O|6HQglJv^Rzq-*iW<>|Z@-g@!JJ!<0DLwI;}Q zuQZ?Mq~%mF!ICABvmthUIx{7408xY+GpqfV}C0|G0tR>y8Iad#|zzT=FMd zxph&hwenh8M!t5I*<DhKKP4RKwfGDAnL8h2S8j;hjJn;BP_kqXuP^mc&WhY5 zXx{yV=jsY&*u%WveM;XWHIaX;T}BeX$hYk(u%%IIne7sZQqcDgLLU1qi=5@2K5pW6 z>def2QuE@tG0Gj|1s_KTa>=czKRee5x|GGpWJK6I0N5O`VcLrlMQm?}(VC2!TAqRL z)l_@W@S7AboH`}(+P=tHR6jxO4W%_@Y5#6zM2eMpWk{@Hek=i7-8GxyRN=#odQ0Rz zNs29%)ynN?12D8s3M_A3G_V0NYoT!n!gKsuf6pBpx63dx%=YzI(dmN9;xwDTg-mg8 zcZd1M8u?zmK5{ruN_8Jp$X}P9!xAB8+(A1W0POkuL~Zx(zyBa2tgXFV=kYTtA}Tf` zDyKd#47AyoAkqsK&OfqM4dz(YOk-~*u=n`>?+#Gy`RRKv` zJ}tH%YQyiHs{?y_fH578j}2NVi@|$+Pa0kr7>Jq*8^Op0yNJS+dMtx-SFxv}4`>J} zU_^DQ@roZAi)v%-ukr7S_>Q@K3qnD6VP4~U+qLHmYvwKY^M3c7uRs30jSR zvm-P9>Qb<}t}piTgmBjWO(eXi4s#=WFdX8R7n#}r&d*T;St#znx0P3QVLBGpMT^vN zE~_6(%AB`NyBMnhkI+Kj1|>azuaBcX@zyOYERvc9p7ty)N#ro|E!L!~My3Tmcj>zqOc0EA< zI<(4GGIcyH->n>Q{&>BbhFcnL-#jz`uW&LRj=g+rj;_u4`uZ%go)sU$D7gUYe_Gk! zT=O!XqHVLG@6XuSXa=p>D}qy*M=g|&6p$1&a{!@^7_tHBJ^OtKHhyGpQ% znaptCLh)*-Bi2V|yTb=b+8*we^)1t;jfcw;$+7GlXDy>A)WjsFr?nm5j9xdb_fAb$p0Bwoc-@5qX12fJHMhqQM99RusI%2J4vnwy=bQ?aH zR|CF|CDFofh&d}MN04$s(^5+OKNNGp|8tS^K*A*?E@B(4xa{skVN BYvBL@ literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-with-descriptions.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/horizontal-with-descriptions.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4c9d835f9c2f8bd6e49506cb14980b04530352 GIT binary patch literal 3632 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 literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/hover.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/hover.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7e4818b66ff445d6a14ce5e0242957ea59b5cf GIT binary patch literal 1344 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 literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/rtl-horizontal.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/rtl-horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..04dbfc6f1f958202395554cff186ac15a618b032 GIT binary patch literal 1517 zcmb7^`9IWK7{|ZWs}!XxUDIN{ktpk2B3mO%gPCmEx45Vo`zVA;m%QxBlK9#Zb8ieW zmJCLV8T&|M62m2CjIoTR!L>B*x9&f1?=R2iyv}o8&-0wud7n>`HQM}$@F`&c0FEH9 zn%DxszF(pB*@JtbSU7`Jfn*QP*4!AVrb%)EU_Tydg0PPS7sutonPvcWh5p8&Za8x> zXMut^X8CzG!6GOp7}oeR0}d^a5)3rEj81OSOQxy*MWO-4q1Qc)X!k)K^2%oNzl z_;Z;fg^|;Qj2xVb-z>Y|EA};MxW#45qjR8{1eQAHyJkU0^gR1{8rZOxJJGT7=$&n< zm@{+{$>%yDi7ACC&J1 z_=8sC;q{0~LVAy@oMVmUgak23*=n5Pgg>8&(jXemuD+(PVqVx*f}_<;P5j+e!8UAZ z)E?e*5|~`>czZP!%X=6)>EuAN${wG=a)an?h-~?&cID#C^%o6V$4x;Rx6yV}^Ce@IC+ixpNET7YtO7u+q^iwtb*vEq@Wy#qbjo-b70?V&y-cwAhY$F^maZO7Filq*2LC z7-HL)EP+H_KOC)QV+kFvgPd62D3D37E@&D!_v7`lNMEz>eZ-SFm~W%4vza+W^{ViA zlFpp_pi9S&jrj9*r%+iH|I-@S`4pa}Na^Q07xYR}He-A9kS89oNj{@iW0Vr$Fpk`UvIRusnYy&cPKlhbc0=Mlm4OUjW)(!-=7mXt+7Z=WcpClA|_ zAZ3u1XS`1M>MVe%jWPXXTQv0)|8=>5@;w0H^%FEO@BnenA2PcGr4Zb}iFgQ||CeCh Xccy7dHF^;*Kve*wDcYpk*z4gxm&58n literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/rtl-vertical.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/rtl-vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..83b8d7bfe61e4c5f89ffd7f8d70f966a61269dce GIT binary patch literal 3284 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 literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-default.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-default.png new file mode 100644 index 0000000000000000000000000000000000000000..395b70d1634beddd69edf9cf61d652e57d110011 GIT binary patch literal 5186 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 HVjlcIjffqn literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-no-descriptions.png b/packages/stepper/test/visual/base/screenshots/stepper/baseline/vertical-no-descriptions.png new file mode 100644 index 0000000000000000000000000000000000000000..43e3c40261ec246ab3cd05a3beb457c729ec44ba GIT binary patch literal 1706 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 Z_((gMvm0K{8TtXh#?sCLcftGNe*lqO8r1** literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/base/stepper.test.js b/packages/stepper/test/visual/base/stepper.test.js new file mode 100644 index 00000000000..3c1379fea4c --- /dev/null +++ b/packages/stepper/test/visual/base/stepper.test.js @@ -0,0 +1,245 @@ +import { resetMouse, sendKeys, sendMouseToElement } from '@vaadin/test-runner-commands'; +import { fixtureSync } from '@vaadin/testing-helpers'; +import { visualDiff } from '@web/test-runner-visual-regression'; +import '../../../src/vaadin-stepper.js'; +import '../../../src/vaadin-step.js'; + +describe('stepper', () => { + let div, element; + + afterEach(async () => { + await resetMouse(); + }); + + describe('vertical', () => { + it('default', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'vertical-default'); + }); + + it('small', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'vertical-small'); + }); + + it('without-descriptions', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'vertical-no-descriptions'); + }); + }); + + describe('horizontal', () => { + it('default', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '800px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'horizontal-default'); + }); + + it('small', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '800px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'horizontal-small'); + }); + + it('with-descriptions', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '1000px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'horizontal-with-descriptions'); + }); + }); + + describe('states', () => { + it('all-states', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'all-states'); + }); + + it('hover', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + `, + div, + ); + const step = element.querySelector('vaadin-step[href="/step3"]'); + await sendMouseToElement({ type: 'move', element: step }); + await visualDiff(div, 'hover'); + }); + + it('focus-ring', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + `, + div, + ); + await sendKeys({ press: 'Tab' }); + await visualDiff(div, 'focus-ring'); + }); + + it('disabled', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + `, + div, + ); + await visualDiff(div, 'disabled'); + }); + }); + + describe('without-links', () => { + it('no-href', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'no-href'); + }); + }); + + describe('RTL', () => { + it('rtl-vertical', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + div.setAttribute('dir', 'rtl'); + element = fixtureSync( + ` + + + + `, + div, + ); + await visualDiff(div, 'rtl-vertical'); + }); + + it('rtl-horizontal', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '800px'; + div.setAttribute('dir', 'rtl'); + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'rtl-horizontal'); + }); + }); +}); diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/all-states.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/all-states.png new file mode 100644 index 0000000000000000000000000000000000000000..57ff5e2ab72dfa71f828c84ae8461a825b4e2d51 GIT binary patch literal 16857 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 P4FDNQMTsggqo4m9eFa1j literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/disabled.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3a124fb4092b82d5d34d41dfe20f78e2804134b7 GIT binary patch literal 8868 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 obVM`A!O$y}< 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 Jls&fy`8Q4IAu|8~ literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-default.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-default.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca0710f006c2b0561939d774b1f35822dc43614 GIT binary patch literal 7507 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 literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-small.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-small.png new file mode 100644 index 0000000000000000000000000000000000000000..a9d56c4cfcefd27bc6639c013dbe5b0bd7f3c192 GIT binary patch literal 6803 zcmchc=QkYM`}POXdv9Svh(u2iy<`XxHF_6>Q8K#GOE4T^h@(Xh6J-dZjZQ-J7QOc} z%II~J@i^b-fB3!G_g;J5Yu$Ta>stH8=ZewQR-+_iBLe^clFjVV=9{f9g8uf4v%r ztF+^EUy*yBC_9xYP|JFp)*_+{i8l9QZxxu}X#FN@Tv`Fy`|%SYv?gd1WGP+E=ZV%@ znKi#%L^RJi*370Fy^hr!DaZVEtYIr-0_1kDo%l~0aR<}uKCJ_KBUP}Sy8Tb3NgGkwneVl&;UWi{b~dJ17nj%J0VphA z0LVq_P`iyUW|{8%tm^&PZUy(*C!qBU7AxxUn*WHnEi#ms%CCLw2GmdXP1gKeO4%9J zcB&Asjv@=a0%!o+rl^%GcwgyRl>Z9>fxK~TTQ@!?(g#5b)L~|2@0`Si%03se zmvQjd+6WJJ4EEZ5m+ugDXvXJ?oUe|0k_G9XxPNCye%&AUqH@3AfP-iJF^sPlz9y@aYTmHQbGdgFKZ zlMEUIE_BSOB7AdKD>D1h86MGbMhTFHjJsRa4ty7f6S|x{vZZkQ84X5b_DnN?U%hmL zl=N3DY+{P-UTZw51kUa4P0bT<ZLXjbh?Fhqg zd$-i`S00lyhK05~dT8>3fM$6JD`-&+t`vmvQvhUIaC%rn0DX4@rC>T9&76tWp(lYm zakt^0>APD1XFpmn}2e)jN{LbBaY%s>um) zwOnb*L07UTI<{ST%|{vLo68p7a^pdcrTDqqS|QqBHMNrosBenr405yUjw905pOT6s zeohDKS+EUT!K^a|x5RN^^35fQ-s|$&=@^dk6OjoZQ60P88UYPtoO%vbV>HQ^uOx?* z_p@fNTicIOP`HsmWo;!LlLucb&fDx1>7=)vwxRT_CIeQ~#x$XGUh(- zjAOL=2_1_1-OTIRpBnWZ|)qe{p%jqqDyz@zRV| z3Q3uD;hA-jl@&JNkNTEd=%400GvNWKPCdSV*CB5^;?hjZT&N(HEnG-loBWtExQ}mL z7qZj~+Qqw`-BI63+driyVk$R7R1!iJ?1(HmR#-?kv)wU&97!`qk@}peYV=X#d_%d+1k}m&mpoWFd{Do#$$r2U1YUxHwkS+LVum|cql7gd^L&yZG%%gm2F4987P5*lW!BXL!%P5YG6nVdB#-Y^ zY~e@M+;pqTd;ma6+d>Pkf~?My9FFtN)z+7zHx`$>0OHU&8uRYoH?wcCPSu))i#e`? z6_AVT-A)~Rqu}}*`0$6B-73}Av)e)}odIwrDeDFj(11^OQP4lxTpLtkQ}P{g)l;=tDt#?qLs#a$T#!wpYqKqP)hu8=u- z+rZB=N>I!;p$1+qwG!gFM-eQ4%OqytWLwdPx7xg?FaDrk-ayaSP{{r4)aqetPiQhg z$>%((9*A!{8Iy2;!`45<4XdgS{yEaoe=+nlGN*NgcKGrQz|><@Hk~BF?7PgN6Li8b zZ>;$X?=aCkZGpYLKWlmem;sJj{f6!D0L$b#g#HPH0lr*Wsq9P_4<_R1e3Vyk6;&Fs z>-RH5CjTmOMSd0kWv|t;0_ho$M5sLwsjtc{V#}S~&gYnq-`QD@3`WuB+Vk=W>hg4V zhUf*%p));gxvdrWt*&hPdLv>=g9PeSx>#mwQgi5Gu6=UQWyewc-jM_=&1RBsYg^aD z-5e@g=Z}~8DvtT5GhY-}rdL?kTH+oKS6E$xtdVt!wT6~`ebdC~FQ%4b4$oM@%zuDF z^WxUwQErk7ZLLZysO_E$YlrgVhGdp%?jvqM^1f-Mcehi;VI*b%(YxZR%U;3}?AbnN zO02z4nf3urbFuYEv0dO3ps~NVmp_?Rko^r=%oY@3UeC>%%T?G=(G69r4 z@XT#HBjvqMsHAUG4h&vho3x=XC0`!dmQ7=U#h>M+xs2WjjNmK56wFD-cVq1VQ}#nVaok=7J4saCQ0LfU<2Q2h;my9@hBqjG~ zx4*qWR%}(g_+@#o#l`_iJxsODD&!C=t}lXf{6!GK7L+zZoV=m6`C9DRojvt>XxaAT zvkcQYge)i3G#-FPBv`;H-FWJZkhcGZVl0Zex{mRYAa3t35-<-!NcM*K^B?tW8}66X zoN^zuar(RDu>;az8hFY3GXdV~bK4a+zwz8nSXk4K42}~u`tL?3kh<%lJ{$bsz@fSq zjEJa`_IToCMlH;SY724=tdTsxCm7~GCgrpeG{%mksQx$DNNVG&@CFM2WAW^t^9{UT z{t$0Us48iMr8Gd~Jn@`ZXX|sCDIwPROE;4X%^zcQ?xzFsa-i6s8SB-^71$QZ;6eE-5K`D_lIzR;%jL zDdAD{`raADhZr-UjaM#frzp4!O}!2_a8chkp31VCZSGOSS7N*Q+;{{Zn7?~@?LAZp z&z4*oen-;H2Ry?{GmGWstZ)8xepnoS)&MREw{#7R zIeP8_ZY0I)&F{qHJ?idb(mJoMmXKSu6r>{yD_Pq%q>4o_>7?R+eXjWEprzeQ;+8H`r2mcFPcdT-CjxfozG?1`8w-k+eX zeBfAL>*JzjPjD05C`SC9%1TK~U*J8TY-Y>F`^DbAs0@wQFWxhS&1&#{`bipZSq4*f zR|qq`D&C_@^kf>vja23{B#3NYNx1OkZk4Kux$L%_u68NzNl`WL8VMq z>We$ciVqh!{t&%GV=B z&t4~`wQUFxT`5=^6^wX`xUzAfP9Bs?`o70NwoRdBREIu$R!R(SIl^w(2xU5ENMdZ_ z@GEH+b}wyvpDq{5%J1>4mMfC+gkdJtElpoDhTVT#rxuMTP$$z9dkNtKjnC6lUW2FF zvLF&xKdBR7|Fimh$q=TrCm(=Cm#j8JukB}*Es9Dr+Rm|vuY@d@P3a~;d=tk| z$j?Wcig^c^w-#%U-mQ1aF;fB_F9dx$?laP?ApjVz?ZvWn6jYXXZWw@iJ*kSUA>Ok*?Ue(t$@hl#U9BG%-U}P^_rS2$9q*6-XYdziGi5I8VT=E%QLR226woD7h5w5*LijGu$QwqQ-kvU~te&F) z#B7nyFTGD{hS#R#Yat!=-+qJyxN!-{hNuR!_R=bPTdD_(+$lz=-j0Ent`tGEwX`@1uUR+!Kkz< z&Ga*7=4PNi2an7(*CypnH|bv)#TO0^!y&bKQbh4Io(b&B+Q~)0<@WW$vpzXP6FhbX z?$75+xOZOEI@aQY1}0gp?~#fjvn<$q5)(%1K4fA%p25lI%5;fmC5Iw2`(-o_fULdY?tC3At zGWFqr)HC9B|7WIPc0&#t*~YjBf9Fzcz*4E0r6=*cNyrl&86m)Bv{OmP z=~!ck!L%7m6U)=q%#oZ`3t1vI>%um#!d! zCIKnw#_cgPq2+}QX8|)u;{;gzgKti@^p*=q8QBwEf3N5tJAP1Cg)E1q0Ohc3@Gpv2 z+pSrvs*HfwYw5~u-h+*#pC*s1qB5$SXH0VWI@7#7PXsay!`@n*_fy*!4%_oYe)%+< zCI39pWl*iDYdopJOMhY}Q^kf2qMN(xD){Ty=Y(&hPdf5_|A2c(sp-e)r+`jj)1lg1 z-E-UyOQ(oAMNg!i(KwL$rJccYVT)VzeCx(^@XX?e=s%Hv4Ev{$57vU2dA_R+T;Ly? zth;;~iD3uZtEaV|JM{d(a09~ZwhA?8;(dCbd!1jYbTwmlvLXaRk^=DuipxSery4&S zHpl-P->UY(;occG{;P@a0#Q6&Lo+4Nha1&W!u}H=UqHU8o5K^h=8gOC30KoYHEg6? zCV{3!`a_Xfl#AV)0Ezn>0Aqs$70l zIcOIXW(+2Q;Pm?g>opajc$q_k(=S)FEITlUWp5s%fD`3!^rNw6o#n0Lda0|_zz>iwJCfr&yknEF=? zy=|#A7kD)&8dGmckKuV~A*@#JXk7CQE`N4Y81a%~H^$a(?9GeUnfY418}1k$)y)+d z=|PjG$(3o`d{+DS_FTN*^}TCMbNKDgR@l>;96l7b8c&n_u6M%Ql_W|yKqpUJViRU> zvzl9V@#ZQ;%FGqkP@x2LZE3cNi5cv7LwKwY)(Wu-vc2xXea&F-b zEV#5VHE$a2bV`n%%O+l>Xd6O^PrfERb*qBYfTI5V0_(pNq>0Ck*M7uI=AH13nLH7G-$tAYr3;{v51D1C%J!>BJ$Eew>!r!M} zW%~iVFW8Gjz z{60U8eRv%C@SZabvt3pd{vHC>JWqF~mmSvJ4$vG~y5sSa*s7bZ4)V>LrK%g0&Y)a! zeAw9&Y`Bh|ZL>BAK~4_ew#Dy43|8hWTPAf)^@q_%K~MZMu8RkSA$uHXoO#}ev;2IP zWtJ-C9Lqhx%=cJZT_rj>6O)skV*F^6!YS(Gr6fWDXH}8!x}MXo;Tb2t$7O*Z@$26G z-n1S)kk1Qt6a+U%G++hMS*}+3Zzo?d?!*2}s+LXmFziuk388FVPI6GB0HLyDFXoCZ z@5T`-J?bf(95k5*v@aAv2?j7}ZkUlD-V(}x%^_viZ_Fnkz>sXXS*ehNRPTxDTszXj z1&=CwD%9hxu|=6L`)^hO3B%P~kzM1^0^E|DxS71+^wVt;(zK3-5q`Ii&Q2}|G-O!N zCnTts0kV-&YbbFh*dGw@11woAa`Bmfn+NXV*uBOWi2!on2g(&m znY0k{yupZjDKiD+7C&KuidKjJfoZX>_>t=3lu8L9jBi0>jsC2_prGNjrk12xzd!|2 z!VF+!1VU#2S=1J!Be@I`{#87|mZCbwtuMadxVNRt&Y7_f)*?9^^Twp8e&j;A;f>bH8{r26` zw8h-t@ySJ-d^o(eXU1dQF&dY>tV6|Qq*xP za+u%QlCWJRK4MDzdxZK979C-RXc^(wuMwC_DS_G(16&gS&YJO{P;53Lv=m$0oA+L; zU`ze~Q3!}AYSQ6<5sDxQOzgkdgoYfn68B$@@+VwZ>YjbwGuuZDL;uGuJ$D4Ub=1+W U;e|@~DHA~bwYEw*=zaMA1M+7kx&QzG literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-with-descriptions.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/horizontal-with-descriptions.png new file mode 100644 index 0000000000000000000000000000000000000000..0d1a3346e02970eafed2e0ef2320908cb2e2a55e GIT binary patch literal 10579 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 literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/hover.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/hover.png new file mode 100644 index 0000000000000000000000000000000000000000..1637ed23dbc6a5da5e3609ea096d673a86060ecc GIT binary patch literal 7636 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 literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/rtl-vertical.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/rtl-vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..4f084c7e3c1216942acf066ab01ca4b429bcdb00 GIT binary patch literal 9982 zcmb`Nbx>Pj)aFy6w9rBW6t@Oi+?^n$gyK*rR$L0fT^lG=32w!$#a)7Hio0uYDDD~@ z_I7vn+nw3{W54-!CX?LB&CDw~_nhZ`DX)z7aG-0$jX_pNx| zpVYmb({l5I4}?+j5ydbure7c>(gHgU)^M0D+7l z^xGgm;-~JQKaUUI5F=<$b4B@+%0S%uXn@+&1A^5?VitQ>=$BU z?1fhM@qF0dfN<|lW6{A@Ls(wmqh1`|0=#dYq+NKbs$F&j&(p+J63)7W~|WjzI#`Nw;EvZ z3GMX9y{l_UVUPN)Wp5LLxuP9KQ9Y41?$$|DdpWl@qSDsESHs|;6m^$<_Z{fU>hBIW zf@Xq0eWQ{j*MjC=MySVT)jIC`au}TS#b&gjE#jgWvWhuVDL^s-TaC;xA*PP zZw1|(b!j0*{ZHE_A6;F2Ll+Yt=t=Oj1XeqlASbVl;#7@Lq>>B=F}1%CIoqI_tg;ov zJi?t86E9{Z&MoNUwtP~|sq(79vJ{o?a(pc>+y7#=Viqmx&~VGq(6;#{6XzR^-!!a1 zvL3q8?iAAgM-NR$<6QBakS4!Qz+_XIgNhk)(t%Sa zRn!)hen1WcPLz_{h0(k>f^qS;fjQ0JnGwfQ+uNcLk6EZBcCKz>?_;s`;0aA19lGRZ z@x1i3->7m?=o0OEsdz5-HPMk#DKrlp>d_Esn){|sV41}8!s*zsZ_x#vpqOerZ z=eX`Nb{28E%D})`pO+|k(`V47N_T})SB8zcF7`}B2{qnm`sU^8DJIBBhE#84rzE7~ zdd&K0cPFM+1lPY_D*vIfHU2ss5$e+y^V)3WS+*A2ziH>4|D~B`H8t$JW`)}=e`mOq z+}xZtJQ+7bUl+{1QqDd~#ayhEBwaAuT{j-$Y|Y;;kBGKqy9KIlNzBJnTY7Vymbp)# zg5}+eZdZ~|o##ZbVYLIN^`v8wb#^05lZe}@@e{OhhosW@V(iaqQbny8LpFD7?x2!; zaY}0v7ry3T`2k6ir7Gc#^Sa#avTk<>q(zACS;c_jh5ypXfMKBRE$i+2_ve=sRtG)b zz2vJdu@2!}=WSVuIh7SYXCke9%?z)vkjR+(IJMQcZg%66x6`kehvRD($suXdcs&@c zjv(kanm>%2g=k|&)rdHx96OfLdRGe!rqFDFsR_-(NR9`kw{llBc1}+90`~f+e8T2W zI;>sl3QT23y=(qaez|YH z^MMb6S<-H~`RzyCQyFty?s$72PLI7Go%9f*%bA+R6`z4w+v!guSwdKQHB|GRL>IrqDHsHXrHPBfGvXtA}gPCm(MrDmJ&ZT0?X9 z^r5GAaVsCz(01k6*~Pt9a=~TyMJVB6hkZx*PS@S+p9G;F4(LICxqWXBE>JXiv)|Em z(=Mnw-qCznf=CJ@$q3RaQXw{h=Qe;|)+{vYnaFFHCc!|1KDl{2PM!a3pruP(bw!jFIsD?M#Zt z1=C>`rN4_m5_x}*(}YqrzS3>F0r&5yJP#ZfL_j1_EC3Y^zs5vG61x=UyOW1aqX`vT z!l19GM)SnoK=%N+P0cZul`^ z$IGR!ElRxJO&PAPtuzW@k{0`67%U544H3MMqYgC|=cvG+Me7kkv%Ep4qo_yS zb?_McW*?d`c3^T;IBo4(DMcQQUycHm`;Dl!BROkkc5%O_?E2zVDJjKEdMtOT+ynC1 zE(v)?(z+pDOmu#;*^ zrR?IQZe6=GPtIYmvuN4muv;2!Q1nS&u!m?UpY6L%dJ+vg!!}6&O=hRE0?kL01ad~iZ>c2(DquCa(+&H3N?5h5mwYlHZ;#K4;FWAyL-`nH; z2WR99F_}Blv-xBVZy}THdvTVVdD1vH6qtAlK77I_hCj(W3nA0Uf#T$(ci{hPgAT`aV+B+AwF6B>G@T3MO^%$kl)aek)g5*YI)qX!R$SqfJYY zP;6_s!{PbRt4;#F#&w6>0+uJCiChd`o-?myLZCrV2bN?{wW~?h3x|B;03F=dn^T;s z?2ECD^w`MSECisH>T>G_!frArY<)MkwZIWGOa;0k)e>8DUG7!dxR>gYO_rv*O7-Nal9lMK`u{#@j0mvUaM5#%1Y+KOP^hYAoBT*NPClV!Abn;Lj8O zXs`DxYE~>hB5CaMeVOIGnxCZ;SQORsA!QTyLp+1K($$w~(?YJ3Qy->|>hMbPX!1{8 zZew5ku0Ou~b}AEkdw$pbl{v1lW&Y z2rHG{%AR^J8-GZ>LByn@=k$tdqTL4b{1N?#k$ZyR#StdERfT#_RKzIG=%zD=4-C${ z3R_q~e0wfoMrIRYuuYYkK;Uin5|SJ4JRX!1?6M+8Mam4CY4WbrIBhMiPzsEZA1azE zmdvNg{2jv~+D2+%dJVHNSSi^Cx=h%s;_>^wd>{tf`|-7zJ_x< zIFR_9oX3LhKZGH zZf%lyR^(}`?!m)s_X=8?*;KQ$tR@8*f)3o^n9XoNB$9aAM%tA!(8qP%SAC0rw4pe@ z1ZSL6Cvzn_>ax*%+S9Y1+)q* z_%wvCNb|N;#Xu%@>w)dWL!s?`V-LBzGmh)eKbdwESG;aN|E`~W=XsTO!i()H4P|!ZRF~=>*D_fA1W{}fMswcxz+P84_ za!)E?@R!lFq*?W%-%Y_3jr_;Hf7sC7cbC@Zut0cb!kjF0X1U|)F9lE7?<X8@MBM!P@Piby4Eq}h}%b&ygmd4Y59C_5Tf3xj`)_@wJGp~}lXl{-T-gm!&y9cHPEZD`(q+Ez zz@sFJXQoL!kT-J6x~+1Op%?=jY@1K)j#UxNhWIQgZ#|;RvQ3QZJ1}+;n@qkU%Wz#V zb4lO1WM)bH>$LPFjQH~3*OC|Sw0?Vy_go06)ZKXOp80om58tagqziKEq5QL&`6U|c z&8ArV3@Q*O1MJ1uii3C8U+!x85*NE?cjOI4hUVn;ew>Nw@`RDp!s5Vk9jbbi0mxpa z?nyzGqtu4TDf7{B+v^^}7VP6?%?}FNy&J_D7Dyxg*P}fIK{Al%WyS>O#9*}?^wuW` z7(7<-{`SfNzh#h)mbCV4@axsh^XFh1b)EiDj||C&04$#z!yi+Hs;|Gk2_SocFJ?bD z=!zwZ2#3UiiCfb`a4a;qn}>QxW-fH!Ai*Ylvw+<;CAW zAFS-S>+6iDYWwOhNGi^`SEgI3E@D`fLhOppGcUV)*%ei1o>yb$Lrk3Y==TnEB>pFu z(2#(Nw1M29t;{AJugO+Kf}e$D5uFt8C!xNH zI*-<^l`H4{QYECu{v5I-BMA{M5QL8olU3@i_l>%@Bv>>u6(X0=MCN^+aGR5BJ^NL= z>USlkMSh*AUwtKuHhE>o6-E?I2t;~k*ZjF%dPQOE-R0%o42HC}-}MwDIWlc2>beeu z?#r$~k0491;%38cJO%f=Z_PwVlxe8fNsiTNb{70rHoR=Ef2O?hW;*=fIpSBW+^fWx zhgf@RyNHkX(I4mI5W`80y46Q_WN+RX_Y)ZB@n|Lsp2QWvU@wmXTE_3e^6lfDfy$Vj zPyi#LGW89Po8vH+{(FAwCAF_c676mGX(ivOw+W-7k?ZOha<@gtFSlLy5FKOZYA3T4 z`u*yObO-v~YgsNum`nW*A+%{E{*s5F?i zyssJGa)jn8GTWBe>s=^^hb_eiy2jH#2CgrMiDl$Foa)+=HpJk~1plarK?kMww%iGY zF!9$CP=qx}5NuoLo<*6{4ME*w-GJ>e9!BE8VC>MjL=$BuEY(sT3y0cS>x>gDe6U7u z2vFM#^uDSVzZ%P8$Io^hls!_?Jw9=KGV40iGO%UB3x}Tlx&t7LaHmoKQ#HNfYZEwU z7mp;S?OE17?kLHSOYMZstFB|MC8QT7F%faY3`&r?In!e3}L* zK?9R}%gZ{$&w;xvHuisshvs<6>KT^Wu`vk&%+IF|;)MVfQ4}C!TG7nCkg#Mu8g?O} zq&zOo@bWB^UrgxFD0=#I2*}2g zP_EoYAZN`aN13N82XP6z9gC}((`m0!FzmS3S*p7DZ^S=%OF=PKpcN=9OLHw9o!01! zfof6Fq(a-O>@LZC{Bw{=Af`U5zY$~$bMUdcLCvuezgrzh{&O z)=NcQPq=iESLQP3i?MP@LgP`+Y-8ya@~Y~vH8^|~ck2V4?6o>BsW$*?Ns zQ)K4l>X)`q@%DXSJ~ZeNgQ0)&p%+)5`$2Mb2{iX?H)E;p5tPO+F^8l^K6hjHJ?Egt z>XR@&Wm&l6j5mdvqdp{h;t4Dp*sbDHg@{C{uP;xQhr$T0F&aM+5_ODP~{M=qaLR zefKfYpbE)J^w)L_G{tEvzz&=nFHDv1VmFN?RUweW$DuXj>LWuU!YK~~sN%!sU$6X{ z>U%?4CgNpaWv_01F@D!v$@n&%ckED}jD6Qn#9-f?jx#|ky{QciCWx{|B2$c*ZfaL}1%MwR*4pv%zKaoqtA&|tt zVIwyFxa^=z7ztfnk;XwvmC6)DW>a56P*f<+9)@~H;P_iYcYQ%p#8#bz=;!}QU(q|$ zF1Mnl=~CCv-8B2L&E3E2rbj3`fJfB+e9&`Ae?Gch?Q{Jllf0Q=;m4?^$n-O(x=6ESAF71F;h=jX z`p&ug_o<#&&u&LiDy}kR1-?Nz6zLFkE233BjWXD{3@QA!wn6rCw8^L-=gRE0V+Wns zn0O-L8XxEI+V>QKr4&9!jJJ()pH4L|>ieAw+SRA6cg9iTx|Igf{{aZZB8gSJUwl>X z&rc^4s!EyT?*Gjk&sjz_Hsw;a=iM3r)HV6rfx8angW$|GFS>BZ-Cmwu$$ftv^|6!! zGovi30XP!Rs*msg*NupO;PWj2kwOFd!}!|#zh-LuXCMkl;{ThILLawH0QwV_I`ly+ zS0Eu@w4uq8oBZSr16UpgDb-;F2YndHm^0-4{ingHwS;|ZoEQXxQ-oyo>=1`hoV;pG^gP-?34fwXZ{uuCR^am{Y4Xk%8ZT2cr>|ps9rl}jwTmx2+->>MOKE&~c z@WyjklwmA+PjdvcH5x>dKO;RK6ECb0lP_!?b^;n%iS;Y0zC4h$NEfELGDbp+7M2rh zr)8Dd9lv`Uye%N5k_03+@pL|*NoL74tg&jo(yR2Z71erBL_y?or%|Hpo`u2-vujpJ z@|0uHTzaneJ>8ad{rINuvm^*x2`t>vE@MfQ<c zPo&}|P=@`W_lu_v<93Soad=yLzB8#z5H5|jc ze}znZy^ONzr?!ike@vLWY?cQMMo{2G58e&ida-O7nQuqu^@btXFQ~Tjdugb9j%>=;r6^)X zy()I^a?-pXBLeU()ei=kgi025i4-#`U7JuE$-ErNdBw)E7Hx?H$F=&K23UpW~_} z5bmdzoGRVwPr+*Yt29z*Fdg!&nrC{v`<2oTbfrKuhqm*}JvuxiBcrR+sp1aLa zb@YVz&_OvT=%y|^6bJ0(_30U=Yh|;Uor{7+1y(Y@uNcJ^%Fk3oSpU$xNEx!Uep~r; zs6HISnY;1eD5mH2*SnNIIYPQ)DCV5uMY2)=y>#@pO&iv?4Z3B$aT0ZaTdbsavGlyr z4d1!Cc-zP;#$%ocEYX1_@L7+#sSgs#NwUY8qe-mR(k1S7heFyvE&FJWTitlOGDBdo z()6v*>emMUFuHu*GUIqMFiugIuZyygo|_NmcZ>g_OJKk_kdE+N4+u34?cwj;Yh&Sl z#bH5&KroeE!wok!cGPS*D_nc=<9GI*xZ$`9v`c>bUW*Z>Hncv1c3bLZE4Y~g470Go z4Cef#I#*>|zlkrJgq#@)G7W*qP92xS@{icz;O*Youm?H$VcLR(m;pI_BHqelCK_;; z!~2>kf67|fxC`RTv%V+c#9*9Dui7*1&Ep5tAVGf1pEfr7CieU65bLdVK}ux;y8D2r zZLL;#koKDxo)Bum5MXW!fq=b;#@zA)>N_pDpY}Z=fTT@kvPm$Dxx9CQFZ^QDhJh1_ z{W+mI&=8n%tSC#4Z)d@#n9J%>l&mT%6lp1C+y2+)%kuTwj%#1Bb?uA_tdXx?Ji}gp z?<8Eo8}8}hdcw?ACbS7NUQDcg<5Zpy-~bPK^UsgZS*G8-ySWg9d0ie zO)o=*SYH^rLX09x4NT%%kX$FT{LipC_*wgamuOcdFYJ@S(|edWG&GjJIVS84c-DSf z0q_eX7aN{ROm2WT+`m|9sv2UwtY$bkwM-(th|8o0g`wgmqqi>hFnF~#?-byRYBDy; z_W=Lb-6Qw01y`x-GI8K)?~{jN4K989<_C4Dqx?kjGA^qRzHuQ#f}RkjvM}&oNK9q1 zs;7)3BJTqaQ|ryu0eJ0chjjkP*2$aCetRrOj)!l}4u5(*yzkvGmov6OlMiunVE;2} zA^dLt&_r5&YBeXq{!g4nEN7LGtv&w!iEe}x1qk$@;NMw*M`Z|0Ook`Adfj^^&SNMf zqp`H6FdfP`=-Y2AiTg1K2hT6}&B*9X;ofcC&E&l5+gHmofNylqY|?7v4U3TMFEy%W zZLvfYydz7N%sP~enw_e4-WsLQhs-`p)inBjq|s9_BA8X(}pyTJGg`IB~$-9l7Ne$xL z)c~~HW(ZU1GUU55cq+sQwEsm8f#u2r)($IW#|tasHxO_iHnj<5D;`1mOZm9ski?!lZQQ)wLn9Ez+XEyAKX~bk?#qz&=-6 zoic~*XWJG2q_-B$mS-ptCIpXRP<5yDQ&a_QKdpW#nTTX&hGKSozG$1niNH7(S=FWR zC{_9e|L^y29Di?ko0Y*J&O7++qY3$IREYu1?EG)(7p6-)a)5cfOU>ftV$1$m;PKS} z;gzm82XVg#WTs+kx4yz;pa63QKa5h)KZ?|CnA1V*LV8f2@9_D+J)vIwK--eqWQ{RF zvAslD=AR33j_LX-ut{J0fAg?%H{^4#d%(M3UZz)^N8E`VV-;(f4cf_)zw%D4$KqWq z%G#zCNqIYPia7xR6`Ysb*>Hy^IE&Z8Gs#L+^dANxzx*Z2t+%HaEmo$_BdMX_w^Uc9 zy*~RDqbyUiMm%!p@giw}(oO(_L;fS4j+UM1QJ;mPvccCK1+afbx!c&NfDXG>gq*Oi zVM){gv=pd+!R_XIRONdAfnk~-%w0Tg-_W7I!(bUjq8baSJhta)=uA`=zp#B{@baP) z{xgByUi*l*o|kq)mzNhM?1;ssm4w;{xJ9x<8&Bp_?W%v(_o51JdpD})-OHlhx&8AI z(<9FNGti-jk0EYlk)m~%#mZau#k;<@<#5N|3ay0D{-y)|989P86)7w3n7z*|5|dP4 z#4p4m;A8Wd_hrd#=J(BuLu+#cSMDasPjboS1ah~dSBk(a0WO0?ewV>XMT`$!~dUfOYB%?;+_py=oj&%3S|jhJ{-aZQNZ z_{jqy`d7G6#TQVo4f!20+_dTeRk6K#oWzfC?tXs7yg(e$Wy_P;_a>@Fws1qus$5hY z%=7rXKaQ51dt}97_RZuS$L|Ue2&7=`G6W8#c-*d7NMlE%z1>AY8}?}bBz{NoomkOY z{q&RA6p-WhfB5tnXp)(hGP5&svopS(MN}LGD!6FE1@(F@f-t7fA$L-_p6=W2O{R#< z_RKm=0Rvol<_fUZ6gW6e=_d`vm%#6GHBu?p!rk`4;!=Ec3c<@^c|@pbaE1qXH{>ZT#iG0nfv9 AE&u=k literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-default.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-default.png new file mode 100644 index 0000000000000000000000000000000000000000..b238f3d883cf61e0840d4f33d7388a07a00d634e GIT binary patch literal 15416 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 ISMNUmFUT85!~g&Q literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-no-descriptions.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-no-descriptions.png new file mode 100644 index 0000000000000000000000000000000000000000..0121004a547913197d28331b4bedf838d6efcf20 GIT binary patch literal 9947 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 K1}Tv>@&8}ucW*ub literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-small.png b/packages/stepper/test/visual/lumo/screenshots/stepper/baseline/vertical-small.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3abb6a324c8cd8db1c2f83688d342f526e80af GIT binary patch literal 11115 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 A$N&HU literal 0 HcmV?d00001 diff --git a/packages/stepper/test/visual/lumo/stepper.test.js b/packages/stepper/test/visual/lumo/stepper.test.js new file mode 100644 index 00000000000..2904b2ae3b1 --- /dev/null +++ b/packages/stepper/test/visual/lumo/stepper.test.js @@ -0,0 +1,246 @@ +import { resetMouse, sendKeys, sendMouseToElement } from '@vaadin/test-runner-commands'; +import { fixtureSync } from '@vaadin/testing-helpers'; +import { visualDiff } from '@web/test-runner-visual-regression'; +import '@vaadin/vaadin-lumo-styles/props.css'; +import '../../../vaadin-stepper.js'; +import '../../../vaadin-step.js'; + +describe('stepper', () => { + let div, element; + + afterEach(async () => { + await resetMouse(); + }); + + describe('vertical', () => { + it('default', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'vertical-default'); + }); + + it('small', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'vertical-small'); + }); + + it('without-descriptions', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'vertical-no-descriptions'); + }); + }); + + describe('horizontal', () => { + it('default', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '800px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'horizontal-default'); + }); + + it('small', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '800px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'horizontal-small'); + }); + + it('with-descriptions', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '1000px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'horizontal-with-descriptions'); + }); + }); + + describe('states', () => { + it('all-states', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'all-states'); + }); + + it('hover', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + `, + div, + ); + const step = element.querySelector('vaadin-step[href="/step3"]'); + await sendMouseToElement({ type: 'move', element: step }); + await visualDiff(div, 'hover'); + }); + + it('focus-ring', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + `, + div, + ); + await sendKeys({ press: 'Tab' }); + await visualDiff(div, 'focus-ring'); + }); + + it('disabled', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + `, + div, + ); + await visualDiff(div, 'disabled'); + }); + }); + + describe('without-links', () => { + it('no-href', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'no-href'); + }); + }); + + describe('RTL', () => { + it('rtl-vertical', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '400px'; + div.setAttribute('dir', 'rtl'); + element = fixtureSync( + ` + + + + `, + div, + ); + await visualDiff(div, 'rtl-vertical'); + }); + + it('rtl-horizontal', async () => { + div = document.createElement('div'); + div.style.display = 'inline-block'; + div.style.padding = '10px'; + div.style.width = '800px'; + div.setAttribute('dir', 'rtl'); + element = fixtureSync( + ` + + + + + `, + div, + ); + await visualDiff(div, 'rtl-horizontal'); + }); + }); +}); diff --git a/packages/stepper/vaadin-step.d.ts b/packages/stepper/vaadin-step.d.ts new file mode 100644 index 00000000000..2ea025ec924 --- /dev/null +++ b/packages/stepper/vaadin-step.d.ts @@ -0,0 +1,80 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import { DisabledMixin } from '@vaadin/a11y-base/src/disabled-mixin.js'; +import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js'; +import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js'; +import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; + +export type StepState = 'active' | 'completed' | 'error' | 'inactive'; + +/** + * `` is a Web Component for displaying a single step in a stepper. + * + * ```html + * Step 1 + * ``` + */ +declare class Step extends DisabledMixin(DirMixin(ElementMixin(ThemableMixin(HTMLElement)))) { + /** + * The URL to navigate to + */ + href: string | null | undefined; + + /** + * The target of the link + */ + target: string | null | undefined; + + /** + * The label text + */ + label: string | null | undefined; + + /** + * The description text + */ + description: string | null | undefined; + + /** + * The state of the step + * @attr {string} state + */ + state: StepState; + + /** + * Whether to exclude the item from client-side routing + * @attr {boolean} router-ignore + */ + routerIgnore: boolean; + + /** + * Whether the step's href matches the current page + */ + readonly current: boolean; + + /** + * Whether the step is completed + */ + completed: boolean; + + /** + * Whether the step has an error + */ + error: boolean; + + /** + * Whether the step is active + */ + active: boolean; +} + +declare global { + interface HTMLElementTagNameMap { + 'vaadin-step': Step; + } +} + +export { Step }; diff --git a/packages/stepper/vaadin-step.js b/packages/stepper/vaadin-step.js new file mode 100644 index 00000000000..1e77aed654c --- /dev/null +++ b/packages/stepper/vaadin-step.js @@ -0,0 +1,6 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +export { Step } from './src/vaadin-step.js'; diff --git a/packages/stepper/vaadin-stepper.d.ts b/packages/stepper/vaadin-stepper.d.ts new file mode 100644 index 00000000000..381faaa4c42 --- /dev/null +++ b/packages/stepper/vaadin-stepper.d.ts @@ -0,0 +1,56 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js'; +import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js'; + +export type StepperOrientation = 'horizontal' | 'vertical'; + +/** + * `` is a Web Component for displaying a step-by-step process. + * + * ```html + * + * Step 1 + * Step 2 + * Step 3 + * + * ``` + */ +declare class Stepper extends ElementMixin(ThemableMixin(HTMLElement)) { + /** + * The orientation of the stepper + * @attr {string} orientation + */ + orientation: StepperOrientation; + + /** + * Sets the state of a specific step + */ + setStepState(state: string, stepIndex: number): void; + + /** + * Marks steps up to the specified index as completed + */ + completeStepsUntil(untilIndex: number): void; + + /** + * Gets the current active step + */ + getActiveStep(): any | null; + + /** + * Resets all steps to inactive state + */ + reset(): void; +} + +declare global { + interface HTMLElementTagNameMap { + 'vaadin-stepper': Stepper; + } +} + +export { Stepper }; diff --git a/packages/stepper/vaadin-stepper.js b/packages/stepper/vaadin-stepper.js new file mode 100644 index 00000000000..37baeaba5a3 --- /dev/null +++ b/packages/stepper/vaadin-stepper.js @@ -0,0 +1,6 @@ +/** + * @license + * Copyright (c) 2017 - 2025 Vaadin Ltd. + * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ + */ +export { Stepper } from './src/vaadin-stepper.js'; From f1cd0bb0d67958e252cd268c037477d2aec2cfd8 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 25 Aug 2025 16:56:39 +0300 Subject: [PATCH 2/3] fix: improve stepper component disabled state rendering and test fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix disabled steps to render as div elements instead of links for better accessibility - Update test expectations to match new disabled step behavior - Remove tabindex handling for disabled links since they now render as divs - Ensure proper semantic HTML structure for disabled interactive elements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- packages/stepper/src/vaadin-step.js | 4 ++-- packages/stepper/test/stepper.test.js | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/stepper/src/vaadin-step.js b/packages/stepper/src/vaadin-step.js index eac83ac953a..fca4cb446e2 100644 --- a/packages/stepper/src/vaadin-step.js +++ b/packages/stepper/src/vaadin-step.js @@ -211,7 +211,7 @@ class Step extends DisabledMixin(DirMixin(ElementMixin(ThemableMixin(PolylitMixi /** @protected */ render() { - const hasLink = !!this.href; + const hasLink = !!this.href && !this.disabled; const showConnector = !this._last; return html` @@ -222,7 +222,7 @@ class Step extends DisabledMixin(DirMixin(ElementMixin(ThemableMixin(PolylitMixi target="${ifDefined(this.target)}" ?router-ignore="${this.routerIgnore}" aria-current="${this.current ? 'step' : 'false'}" - tabindex="${this.disabled ? '-1' : '0'}" + tabindex="0" > ${this._renderContent()} diff --git a/packages/stepper/test/stepper.test.js b/packages/stepper/test/stepper.test.js index 884849b00bc..24867599bd6 100644 --- a/packages/stepper/test/stepper.test.js +++ b/packages/stepper/test/stepper.test.js @@ -296,9 +296,11 @@ describe('vaadin-step', () => { expect(step.hasAttribute('disabled')).to.be.true; }); - it('should have tabindex -1 when disabled', () => { + it('should render as div when disabled', () => { + const div = step.shadowRoot.querySelector('div'); + expect(div).to.exist; const link = step.shadowRoot.querySelector('a'); - expect(link.getAttribute('tabindex')).to.equal('-1'); + expect(link).to.not.exist; }); }); From 4dd06dbce2c59e708cc37389a73cbd06b0b21010 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 26 Aug 2025 12:11:21 +0300 Subject: [PATCH 3/3] chore: add web-types configuration for stepper component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- packages/stepper/package.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/stepper/package.json b/packages/stepper/package.json index bc3299b8626..1266e680572 100644 --- a/packages/stepper/package.json +++ b/packages/stepper/package.json @@ -22,7 +22,13 @@ "files": [ "src", "vaadin-*.d.ts", - "vaadin-*.js" + "vaadin-*.js", + "web-types.json", + "web-types.lit.json" + ], + "web-types": [ + "web-types.json", + "web-types.lit.json" ], "keywords": [ "Vaadin",