# `src/components/linear-progress/LinearProgress.ts`:

## class: `LinearProgress`, `btu-linear-progress`

### Superclass

| Name         | Module | Package |
| ------------ | ------ | ------- |
| `LitElement` |        | lit     |

### Mixins

| Name                | Module                         | Package |
| ------------------- | ------------------------------ | ------- |
| `ProgressMixin`     | /src/util/ProgressMixin.js     |         |
| `EventEmitterMixin` | /src/util/EventEmitterMixin.js |         |
| `ReadyMixin`        | /src/util/ReadyMixin.js        |         |

### Fields

| Name                      | Privacy | Type                                               | Default     | Description                                                                                                                                 | Inherited From |
| ------------------------- | ------- | -------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `color`                   |         | `ProgressColors`                                   | `'primary'` | Color theme of the progress indicator.&#xA;Supports: black, white, primary, teal, gray, purple, rose, error, warning, success               | ProgressMixin  |
| `thickness`               |         | `number \| undefined`                              |             | Stroke width of the progress indicator.                                                                                                     | ProgressMixin  |
| `_progress`               | private | `number`                                           | `0`         |                                                                                                                                             | ProgressMixin  |
| `progress`                |         |                                                    |             | Progress value for determinate variant. Clamped to 0–100.                                                                                   | ProgressMixin  |
| `label`                   |         | `string \| undefined`                              |             | Optional label text to display with the progress indicator.                                                                                 | ProgressMixin  |
| `initialAnimation`        |         | `boolean`                                          | `true`      | Whether to animate progress from 0 to target value when component first becomes visible.                                                    | ProgressMixin  |
| `ariaLabel`               |         | `string \| null`                                   | `null`      | Optional aria-label attribute for screen readers.&#xA;Describes what the progress indicator represents.                                     | ProgressMixin  |
| `ariaLabelledBy`          |         | `string \| null`                                   | `null`      | Optional aria-labelledby attribute for screen readers.&#xA;References the ID of an element that labels the progress indicator.              | ProgressMixin  |
| `ariaValueText`           |         | `string \| null`                                   | `null`      | Optional aria-valuetext attribute for screen readers.&#xA;Provides human-readable text alternative for progress value.                      | ProgressMixin  |
| `completionAnnouncement`  |         | `string \| undefined`                              |             | Optional message to announce to screen readers when progress reaches 100%.&#xA;If not provided, no announcement will be made on completion. | ProgressMixin  |
| `_isAnimationInitialized` | private | `boolean`                                          | `false`     |                                                                                                                                             | ProgressMixin  |
| `_intersectionObserver`   | private | `IntersectionObserver \| undefined`                |             |                                                                                                                                             | ProgressMixin  |
| `_hasCompletedAt100`      | private | `boolean`                                          | `false`     |                                                                                                                                             | ProgressMixin  |
| `_hostTag`                | private | `'btu-linear-progress' \| 'btu-circular-progress'` |             |                                                                                                                                             | ProgressMixin  |

### Methods

| Name   | Privacy | Description                                                                                                                                                                                                                                                                        | Parameters                                              | Return    | Inherited From    |
| ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
| `emit` |         | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean` | EventEmitterMixin |

### Events

| Name                           | Type          | Description                                 | Inherited From |
| ------------------------------ | ------------- | ------------------------------------------- | -------------- |
| `btu-linear-progress-ready`    | `CustomEvent` | Fired after first render and initialization |                |
| `btu-linear-progress-complete` | `CustomEvent` | Fired when progress reaches 100             |                |

### Attributes

| Name                      | Field                  | Inherited From |
| ------------------------- | ---------------------- | -------------- |
| `color`                   | color                  | ProgressMixin  |
| `thickness`               | thickness              | ProgressMixin  |
| `progress`                | progress               | ProgressMixin  |
| `label`                   | label                  | ProgressMixin  |
| `initial-animation`       | initialAnimation       | ProgressMixin  |
| `aria-label`              | ariaLabel              | ProgressMixin  |
| `aria-labelledby`         | ariaLabelledBy         | ProgressMixin  |
| `aria-valuetext`          | ariaValueText          | ProgressMixin  |
| `completion-announcement` | completionAnnouncement | ProgressMixin  |

### CSS Properties

| Name               | Default | Description                                         |
| ------------------ | ------- | --------------------------------------------------- |
| `--progress-color` |         | Custom progress bar color (overrides theme color)   |
| `--track-color`    |         | Track/background color (overrides default gray-100) |

<hr/>

## Exports

| Kind                        | Name                  | Declaration    | Module                                           | Package |
| --------------------------- | --------------------- | -------------- | ------------------------------------------------ | ------- |
| `js`                        | `default`             | LinearProgress | src/components/linear-progress/LinearProgress.ts |         |
| `custom-element-definition` | `btu-linear-progress` | LinearProgress | src/components/linear-progress/LinearProgress.ts |         |
