diff --git a/packages/angular-test-app/src/app/app-routing.module.ts b/packages/angular-test-app/src/app/app-routing.module.ts
index 4960b82fba..fc033f5d6b 100644
--- a/packages/angular-test-app/src/app/app-routing.module.ts
+++ b/packages/angular-test-app/src/app/app-routing.module.ts
@@ -94,6 +94,8 @@ import Pagination from 'src/preview-examples/pagination';
import Pill from 'src/preview-examples/pill';
import PillVariants from 'src/preview-examples/pill-variants';
import PopoverNews from 'src/preview-examples/popover-news';
+import ProgressBar from 'src/preview-examples/progress-bar';
+import ProgressBarVariants from 'src/preview-examples/progress-bar-variants';
import PushCard from 'src/preview-examples/push-card';
import Radiobutton from 'src/preview-examples/radio-button';
import Select from 'src/preview-examples/select';
@@ -353,6 +355,8 @@ const routes: Routes = [
{ path: 'pill', component: Pill },
{ path: 'pill-variants', component: PillVariants },
{ path: 'popover-news', component: PopoverNews },
+ { path: 'progress-bar', component: ProgressBar },
+ { path: 'progress-bar-variants', component: ProgressBarVariants },
{ path: 'radio-button', component: Radiobutton },
{ path: 'select-editable', component: SelectEditable },
{ path: 'select-multiple', component: SelectMultiple },
diff --git a/packages/angular-test-app/src/app/app.module.ts b/packages/angular-test-app/src/app/app.module.ts
index b27de3689d..73ca7db1ff 100644
--- a/packages/angular-test-app/src/app/app.module.ts
+++ b/packages/angular-test-app/src/app/app.module.ts
@@ -152,6 +152,8 @@ import Pane from '../preview-examples/pane';
import PaneLayout from '../preview-examples/pane-layout';
import { NavigationTestComponent } from './components/navigation-test.component';
import Echarts from 'src/preview-examples/echarts';
+import ProgressBar from 'src/preview-examples/progress-bar';
+import ProgressBarVariants from 'src/preview-examples/progress-bar-variants';
@NgModule({
declarations: [
@@ -222,6 +224,8 @@ import Echarts from 'src/preview-examples/echarts';
Pill,
PillVariants,
PopoverNews,
+ ProgressBar,
+ ProgressBarVariants,
Radiobutton,
SelectEditable,
SelectMultiple,
diff --git a/packages/angular-test-app/src/preview-examples/progress-bar-variants.ts b/packages/angular-test-app/src/preview-examples/progress-bar-variants.ts
new file mode 100644
index 0000000000..28f9874257
--- /dev/null
+++ b/packages/angular-test-app/src/preview-examples/progress-bar-variants.ts
@@ -0,0 +1,24 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app-example',
+ template: `
+
+
+
+
+
+
+
+ `,
+})
+export default class ProgressBarVariants {}
diff --git a/packages/angular-test-app/src/preview-examples/progress-bar.ts b/packages/angular-test-app/src/preview-examples/progress-bar.ts
new file mode 100644
index 0000000000..18987b2ac7
--- /dev/null
+++ b/packages/angular-test-app/src/preview-examples/progress-bar.ts
@@ -0,0 +1,20 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app-example',
+ template: `
+
+
+
+ `,
+})
+export default class ProgressBar {}
diff --git a/packages/angular/src/components.ts b/packages/angular/src/components.ts
index 70a328ccda..fd82b07a7f 100644
--- a/packages/angular/src/components.ts
+++ b/packages/angular/src/components.ts
@@ -1856,6 +1856,28 @@ export class IxPill {
export declare interface IxPill extends Components.IxPill {}
+@ProxyCmp({
+ inputs: ['disableAnimation', 'value', 'variant']
+})
+@Component({
+ selector: 'ix-progress-bar',
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ template: '',
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
+ inputs: ['disableAnimation', 'value', 'variant'],
+})
+export class IxProgressBar {
+ protected el: HTMLElement;
+ constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {
+ c.detach();
+ this.el = r.nativeElement;
+ }
+}
+
+
+export declare interface IxProgressBar extends Components.IxProgressBar {}
+
+
@ProxyCmp({
inputs: ['collapse', 'heading', 'icon', 'notification', 'subheading', 'variant']
})
diff --git a/packages/angular/src/declare-components.ts b/packages/angular/src/declare-components.ts
index 7717051c6d..d5a70915c2 100644
--- a/packages/angular/src/declare-components.ts
+++ b/packages/angular/src/declare-components.ts
@@ -72,6 +72,7 @@ export const DIRECTIVES = [
d.IxPane,
d.IxPaneLayout,
d.IxPill,
+ d.IxProgressBar,
d.IxPushCard,
d.IxRow,
d.IxSelect,
diff --git a/packages/core/component-doc.json b/packages/core/component-doc.json
index 7829b7f199..7b97291d2e 100644
--- a/packages/core/component-doc.json
+++ b/packages/core/component-doc.json
@@ -12604,6 +12604,124 @@
"parts": [],
"listeners": []
},
+ {
+ "dirPath": "src/components/progress-bar",
+ "filePath": "src/components/progress-bar/progress-bar.tsx",
+ "fileName": "progress-bar.tsx",
+ "readmePath": "src/components/progress-bar/readme.md",
+ "usagesDir": "src/components/progress-bar/usage",
+ "tag": "ix-progress-bar",
+ "overview": "",
+ "usage": {},
+ "docs": "",
+ "docsTags": [],
+ "encapsulation": "shadow",
+ "dependents": [],
+ "dependencies": [],
+ "dependencyGraph": {},
+ "props": [
+ {
+ "name": "disableAnimation",
+ "type": "boolean",
+ "complexType": {
+ "original": "boolean",
+ "resolved": "boolean",
+ "references": {}
+ },
+ "mutable": false,
+ "attr": "disable-animation",
+ "reflectToAttr": true,
+ "docs": "Disable progress value change animation",
+ "docsTags": [],
+ "default": "false",
+ "values": [
+ {
+ "type": "boolean"
+ }
+ ],
+ "optional": false,
+ "required": false
+ },
+ {
+ "name": "value",
+ "type": "number | string",
+ "complexType": {
+ "original": "string | number",
+ "resolved": "number | string",
+ "references": {}
+ },
+ "mutable": false,
+ "attr": "value",
+ "reflectToAttr": true,
+ "docs": "Progress value in percentage (0-100)",
+ "docsTags": [],
+ "default": "0",
+ "values": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "optional": false,
+ "required": false
+ },
+ {
+ "name": "variant",
+ "type": "\"alarm\" | \"critical\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"",
+ "complexType": {
+ "original": "| 'primary'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'",
+ "resolved": "\"alarm\" | \"critical\" | \"info\" | \"neutral\" | \"primary\" | \"success\" | \"warning\"",
+ "references": {}
+ },
+ "mutable": false,
+ "attr": "variant",
+ "reflectToAttr": true,
+ "docs": "Progress bar variant",
+ "docsTags": [],
+ "default": "'primary'",
+ "values": [
+ {
+ "value": "alarm",
+ "type": "string"
+ },
+ {
+ "value": "critical",
+ "type": "string"
+ },
+ {
+ "value": "info",
+ "type": "string"
+ },
+ {
+ "value": "neutral",
+ "type": "string"
+ },
+ {
+ "value": "primary",
+ "type": "string"
+ },
+ {
+ "value": "success",
+ "type": "string"
+ },
+ {
+ "value": "warning",
+ "type": "string"
+ }
+ ],
+ "optional": false,
+ "required": false
+ }
+ ],
+ "methods": [],
+ "events": [],
+ "styles": [],
+ "slots": [],
+ "parts": [],
+ "listeners": []
+ },
{
"dirPath": "src/components/push-card",
"filePath": "src/components/push-card/push-card.tsx",
diff --git a/packages/core/src/components.d.ts b/packages/core/src/components.d.ts
index d52c7458fa..e8b38e0d2b 100644
--- a/packages/core/src/components.d.ts
+++ b/packages/core/src/components.d.ts
@@ -1813,6 +1813,26 @@ export namespace Components {
}
interface IxPlaygroundInternal {
}
+ interface IxProgressBar {
+ /**
+ * Disable progress value change animation
+ */
+ "disableAnimation": boolean;
+ /**
+ * Progress value in percentage (0-100)
+ */
+ "value": string | number;
+ /**
+ * Progress bar variant
+ */
+ "variant": | 'primary'
+ | 'alarm'
+ | 'critical'
+ | 'warning'
+ | 'info'
+ | 'neutral'
+ | 'success';
+ }
/**
* @since 1.6.0
*/
@@ -3652,6 +3672,12 @@ declare global {
prototype: HTMLIxPlaygroundInternalElement;
new (): HTMLIxPlaygroundInternalElement;
};
+ interface HTMLIxProgressBarElement extends Components.IxProgressBar, HTMLStencilElement {
+ }
+ var HTMLIxProgressBarElement: {
+ prototype: HTMLIxProgressBarElement;
+ new (): HTMLIxProgressBarElement;
+ };
/**
* @since 1.6.0
*/
@@ -4081,6 +4107,7 @@ declare global {
"ix-pane-layout": HTMLIxPaneLayoutElement;
"ix-pill": HTMLIxPillElement;
"ix-playground-internal": HTMLIxPlaygroundInternalElement;
+ "ix-progress-bar": HTMLIxProgressBarElement;
"ix-push-card": HTMLIxPushCardElement;
"ix-row": HTMLIxRowElement;
"ix-select": HTMLIxSelectElement;
@@ -5994,6 +6021,26 @@ declare namespace LocalJSX {
}
interface IxPlaygroundInternal {
}
+ interface IxProgressBar {
+ /**
+ * Disable progress value change animation
+ */
+ "disableAnimation"?: boolean;
+ /**
+ * Progress value in percentage (0-100)
+ */
+ "value"?: string | number;
+ /**
+ * Progress bar variant
+ */
+ "variant"?: | 'primary'
+ | 'alarm'
+ | 'critical'
+ | 'warning'
+ | 'info'
+ | 'neutral'
+ | 'success';
+ }
/**
* @since 1.6.0
*/
@@ -6792,6 +6839,7 @@ declare namespace LocalJSX {
"ix-pane-layout": IxPaneLayout;
"ix-pill": IxPill;
"ix-playground-internal": IxPlaygroundInternal;
+ "ix-progress-bar": IxProgressBar;
"ix-push-card": IxPushCard;
"ix-row": IxRow;
"ix-select": IxSelect;
@@ -6984,6 +7032,7 @@ declare module "@stencil/core" {
"ix-pane-layout": LocalJSX.IxPaneLayout & JSXBase.HTMLAttributes;
"ix-pill": LocalJSX.IxPill & JSXBase.HTMLAttributes;
"ix-playground-internal": LocalJSX.IxPlaygroundInternal & JSXBase.HTMLAttributes;
+ "ix-progress-bar": LocalJSX.IxProgressBar & JSXBase.HTMLAttributes;
/**
* @since 1.6.0
*/
diff --git a/packages/core/src/components/progress-bar/progress-bar.scss b/packages/core/src/components/progress-bar/progress-bar.scss
new file mode 100644
index 0000000000..957dc50b24
--- /dev/null
+++ b/packages/core/src/components/progress-bar/progress-bar.scss
@@ -0,0 +1,32 @@
+/*
+ * SPDX-FileCopyrightText: 2023 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+@import 'mixins/shadow-dom/component';
+@import 'common-variables';
+@import 'mixins/text-truncation';
+
+:host {
+ @include ix-component;
+ display: block;
+ min-width: 20px;
+ height: 1.25rem;
+ max-height: 1.25rem;
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+.progress-bar {
+ width: 100%;
+ min-height: 1.25rem;
+ background-color: var(--theme-color-component-2);
+ border: 1px solid var(--theme-color-component-1);
+}
+
+.progress {
+ min-height: 1.25rem;
+}
diff --git a/packages/core/src/components/progress-bar/progress-bar.tsx b/packages/core/src/components/progress-bar/progress-bar.tsx
new file mode 100644
index 0000000000..24f8e07cf0
--- /dev/null
+++ b/packages/core/src/components/progress-bar/progress-bar.tsx
@@ -0,0 +1,87 @@
+/*
+ * SPDX-FileCopyrightText: 2023 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { Component, Element, h, Host, Prop } from '@stencil/core';
+
+@Component({
+ tag: 'ix-progress-bar',
+ styleUrl: 'progress-bar.scss',
+ shadow: true,
+})
+export class ProgressBar {
+ @Element() el: HTMLIxProgressBarElement;
+
+ /**
+ * Progress bar variant
+ */
+ @Prop({ reflect: true }) variant:
+ | 'primary'
+ | 'alarm'
+ | 'critical'
+ | 'warning'
+ | 'info'
+ | 'neutral'
+ | 'success' = 'primary';
+
+ /**
+ * Progress value in percentage (0-100)
+ */
+ @Prop({ reflect: true }) value: string | number = 0;
+
+ /**
+ * Disable progress value change animation
+ */
+ @Prop({ reflect: true }) disableAnimation = false;
+
+ private ceilProgressValue() {
+ if (isNaN(+this.value)) {
+ console.warn("Invalid value passed as 'value'");
+ return 0;
+ }
+
+ const progress = +this.value;
+
+ if (progress < 0) {
+ return 0;
+ }
+
+ if (progress > 100) {
+ return 100;
+ }
+
+ return progress;
+ }
+
+ render() {
+ const ceiledValue = this.ceilProgressValue();
+ const customProgressStyle = {
+ 'background-color': `var(--theme-color-${this.variant}${
+ ceiledValue === 100 ? '--active' : ''
+ })`,
+ width: `${ceiledValue}%`,
+ transition: `width ${
+ this.disableAnimation ? '0' : '1'
+ }s, background-color ${this.disableAnimation ? '0' : '1'}s`,
+ };
+
+ return (
+
+
+
+ );
+ }
+}
diff --git a/packages/core/src/components/progress-bar/test/progress-bar.spec.tsx b/packages/core/src/components/progress-bar/test/progress-bar.spec.tsx
new file mode 100644
index 0000000000..a0aebae2ca
--- /dev/null
+++ b/packages/core/src/components/progress-bar/test/progress-bar.spec.tsx
@@ -0,0 +1,61 @@
+/*
+ * SPDX-FileCopyrightText: 2023 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { newSpecPage } from '@stencil/core/testing';
+import { ProgressBar } from '../progress-bar';
+
+describe('ix-progress-bar', () => {
+ it('has correct default values', async () => {
+ await newSpecPage({
+ components: [ProgressBar],
+ html: '',
+ });
+
+ const progressBar = document.querySelector('ix-progress-bar');
+ const progressBarDiv = progressBar.shadowRoot.querySelector(
+ '.progress'
+ ) as HTMLElement;
+ expect(progressBarDiv.style.width).toBe('0%');
+ expect(progressBarDiv.style.backgroundColor).toBe(
+ 'var(--theme-color-primary)'
+ );
+ });
+
+ it('has correct values with lower bound inputs', async () => {
+ await newSpecPage({
+ components: [ProgressBar],
+ html: '',
+ });
+
+ const progressBar = document.querySelector('ix-progress-bar');
+ const progressBarDiv = progressBar.shadowRoot.querySelector(
+ '.progress'
+ ) as HTMLElement;
+ expect(progressBarDiv.style.width).toBe('0%');
+ expect(progressBarDiv.style.backgroundColor).toBe(
+ 'var(--theme-color-primary)'
+ );
+ });
+
+ it('has correct values with upper bound inputs', async () => {
+ await newSpecPage({
+ components: [ProgressBar],
+ html: '',
+ });
+
+ const progressBar = document.querySelector('ix-progress-bar');
+ const progressBarDiv = progressBar.shadowRoot.querySelector(
+ '.progress'
+ ) as HTMLElement;
+ expect(progressBarDiv.style.width).toBe('100%');
+ expect(progressBarDiv.style.backgroundColor).toBe(
+ 'var(--theme-color-critical--active)'
+ );
+ });
+});
diff --git a/packages/core/src/tests/progress-bar/basic/index.html b/packages/core/src/tests/progress-bar/basic/index.html
new file mode 100644
index 0000000000..34d16ae81e
--- /dev/null
+++ b/packages/core/src/tests/progress-bar/basic/index.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ Stencil Component Starter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/core/src/tests/progress-bar/progress-bar.e2e.ts b/packages/core/src/tests/progress-bar/progress-bar.e2e.ts
new file mode 100644
index 0000000000..cbc672cae9
--- /dev/null
+++ b/packages/core/src/tests/progress-bar/progress-bar.e2e.ts
@@ -0,0 +1,18 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { expect } from '@playwright/test';
+import { regressionTest } from '@utils/test';
+
+regressionTest.describe('progress-bar', () => {
+ regressionTest('basic', async ({ page }) => {
+ await page.goto('progress-bar/basic');
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
+ });
+});
diff --git a/packages/core/src/tests/progress-bar/progress-bar.e2e.ts-snapshots/progress-bar-basic-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/progress-bar/progress-bar.e2e.ts-snapshots/progress-bar-basic-1-chromium---theme-classic-dark-linux.png
new file mode 100644
index 0000000000..41141910cb
Binary files /dev/null and b/packages/core/src/tests/progress-bar/progress-bar.e2e.ts-snapshots/progress-bar-basic-1-chromium---theme-classic-dark-linux.png differ
diff --git a/packages/core/src/tests/progress-bar/progress-bar.e2e.ts-snapshots/progress-bar-basic-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/progress-bar/progress-bar.e2e.ts-snapshots/progress-bar-basic-1-chromium---theme-classic-light-linux.png
new file mode 100644
index 0000000000..d9f2c2a4fa
Binary files /dev/null and b/packages/core/src/tests/progress-bar/progress-bar.e2e.ts-snapshots/progress-bar-basic-1-chromium---theme-classic-light-linux.png differ
diff --git a/packages/documentation/docs/controls/progress-bar.md b/packages/documentation/docs/controls/progress-bar.md
new file mode 100644
index 0000000000..5aaf3f8da9
--- /dev/null
+++ b/packages/documentation/docs/controls/progress-bar.md
@@ -0,0 +1,33 @@
+import Playground from '@site/src/components/PlaygroundV2';
+
+import Props from './../auto-generated/ix-progress-bar/props.md';
+import Tags from './../auto-generated/ix-progress-bar/tags.md';
+import Events from './../auto-generated/ix-progress-bar/events.md';
+
+# Progress Bar
+
+
+
+## Usage
+
+
+
+
+## Variants
+
+
+
+
+## Properties
+
+### Props
+
+
+
+### Events
+
+
diff --git a/packages/html-test-app/src/preview-examples/progress-bar-variants.html b/packages/html-test-app/src/preview-examples/progress-bar-variants.html
new file mode 100644
index 0000000000..7ebb5cacee
--- /dev/null
+++ b/packages/html-test-app/src/preview-examples/progress-bar-variants.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+ Progress Bar example
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/html-test-app/src/preview-examples/progress-bar.html b/packages/html-test-app/src/preview-examples/progress-bar.html
new file mode 100644
index 0000000000..2e78f17fea
--- /dev/null
+++ b/packages/html-test-app/src/preview-examples/progress-bar.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Progress Bar example
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/react-test-app/src/preview-examples/progress-bar-variants.tsx b/packages/react-test-app/src/preview-examples/progress-bar-variants.tsx
new file mode 100644
index 0000000000..3aa9e192d0
--- /dev/null
+++ b/packages/react-test-app/src/preview-examples/progress-bar-variants.tsx
@@ -0,0 +1,31 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { IxProgressBar } from '@siemens/ix-react';
+import React from 'react';
+
+export default () => {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/packages/react-test-app/src/preview-examples/progress-bar.tsx b/packages/react-test-app/src/preview-examples/progress-bar.tsx
new file mode 100644
index 0000000000..db1e3bfd7e
--- /dev/null
+++ b/packages/react-test-app/src/preview-examples/progress-bar.tsx
@@ -0,0 +1,23 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Siemens AG
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+import { IxProgressBar } from '@siemens/ix-react';
+import React from 'react';
+
+export default () => {
+ return (
+ <>
+
+
+
+
+
+ >
+ );
+};
diff --git a/packages/react/src/components.ts b/packages/react/src/components.ts
index fe59a3c55e..d1c07c8ffe 100644
--- a/packages/react/src/components.ts
+++ b/packages/react/src/components.ts
@@ -75,6 +75,7 @@ import { defineCustomElement as defineIxPagination } from '@siemens/ix/component
import { defineCustomElement as defineIxPane } from '@siemens/ix/components/ix-pane.js';
import { defineCustomElement as defineIxPaneLayout } from '@siemens/ix/components/ix-pane-layout.js';
import { defineCustomElement as defineIxPill } from '@siemens/ix/components/ix-pill.js';
+import { defineCustomElement as defineIxProgressBar } from '@siemens/ix/components/ix-progress-bar.js';
import { defineCustomElement as defineIxPushCard } from '@siemens/ix/components/ix-push-card.js';
import { defineCustomElement as defineIxRow } from '@siemens/ix/components/ix-row.js';
import { defineCustomElement as defineIxSelect } from '@siemens/ix/components/ix-select.js';
@@ -168,6 +169,7 @@ export const IxPagination = /*@__PURE__*/createReactComponent('ix-pane', undefined, undefined, defineIxPane);
export const IxPaneLayout = /*@__PURE__*/createReactComponent('ix-pane-layout', undefined, undefined, defineIxPaneLayout);
export const IxPill = /*@__PURE__*/createReactComponent('ix-pill', undefined, undefined, defineIxPill);
+export const IxProgressBar = /*@__PURE__*/createReactComponent('ix-progress-bar', undefined, undefined, defineIxProgressBar);
export const IxPushCard = /*@__PURE__*/createReactComponent('ix-push-card', undefined, undefined, defineIxPushCard);
export const IxRow = /*@__PURE__*/createReactComponent('ix-row', undefined, undefined, defineIxRow);
export const IxSelect = /*@__PURE__*/createReactComponent('ix-select', undefined, undefined, defineIxSelect);
diff --git a/packages/vue-test-app/src/preview-examples/progress-bar-variants.vue b/packages/vue-test-app/src/preview-examples/progress-bar-variants.vue
new file mode 100644
index 0000000000..3139e207f1
--- /dev/null
+++ b/packages/vue-test-app/src/preview-examples/progress-bar-variants.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/vue-test-app/src/preview-examples/progress-bar.vue b/packages/vue-test-app/src/preview-examples/progress-bar.vue
new file mode 100644
index 0000000000..b8bc7d7e19
--- /dev/null
+++ b/packages/vue-test-app/src/preview-examples/progress-bar.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/vue/src/components.ts b/packages/vue/src/components.ts
index 07da5c332b..1fd01c651b 100644
--- a/packages/vue/src/components.ts
+++ b/packages/vue/src/components.ts
@@ -75,6 +75,7 @@ import { defineCustomElement as defineIxPagination } from '@siemens/ix/component
import { defineCustomElement as defineIxPane } from '@siemens/ix/components/ix-pane.js';
import { defineCustomElement as defineIxPaneLayout } from '@siemens/ix/components/ix-pane-layout.js';
import { defineCustomElement as defineIxPill } from '@siemens/ix/components/ix-pill.js';
+import { defineCustomElement as defineIxProgressBar } from '@siemens/ix/components/ix-progress-bar.js';
import { defineCustomElement as defineIxPushCard } from '@siemens/ix/components/ix-push-card.js';
import { defineCustomElement as defineIxRow } from '@siemens/ix/components/ix-row.js';
import { defineCustomElement as defineIxSelect } from '@siemens/ix/components/ix-select.js';
@@ -771,6 +772,13 @@ export const IxPill = /*@__PURE__*/ defineContainer('ix-pill', defin
]);
+export const IxProgressBar = /*@__PURE__*/ defineContainer('ix-progress-bar', defineIxProgressBar, [
+ 'variant',
+ 'value',
+ 'disableAnimation'
+]);
+
+
export const IxPushCard = /*@__PURE__*/ defineContainer('ix-push-card', defineIxPushCard, [
'icon',
'notification',