@mozaic-ds/angular 2.0.0-beta.4 → 2.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"mozaic-ds-angular.mjs","sources":["../../../../projects/mozaic-ng/src/lib/link/link.ts","../../../../projects/mozaic-ng/src/lib/link/link.html","../../../../projects/mozaic-ng/src/lib/breadcrumb/breadcrumb.ts","../../../../projects/mozaic-ng/src/lib/breadcrumb/breadcrumb.html","../../../../projects/mozaic-ng/src/lib/loader/loader.ts","../../../../projects/mozaic-ng/src/lib/loader/loader.html","../../../../projects/mozaic-ng/src/lib/button/button.ts","../../../../projects/mozaic-ng/src/lib/button/button.html","../../../../projects/mozaic-ng/src/lib/button-wrapper/button-wrapper.ts","../../../../projects/mozaic-ng/src/lib/button-wrapper/button-wrapper.html","../../../../projects/mozaic-ng/src/lib/checkbox/checkbox.ts","../../../../projects/mozaic-ng/src/lib/checkbox/checkbox.html","../../../../projects/mozaic-ng/src/lib/checkbox-group/checkbox-group.ts","../../../../projects/mozaic-ng/src/lib/checkbox-group/checkbox-group.html","../../../../projects/mozaic-ng/src/lib/divider/divider.ts","../../../../projects/mozaic-ng/src/lib/divider/divider.html","../../../../projects/mozaic-ng/src/lib/overlay/overlay.ts","../../../../projects/mozaic-ng/src/lib/overlay/overlay.html","../../../../projects/mozaic-ng/src/lib/icon-button/icon-button.ts","../../../../projects/mozaic-ng/src/lib/icon-button/icon-button.html","../../../../projects/mozaic-ng/src/lib/drawer/drawer.ts","../../../../projects/mozaic-ng/src/lib/drawer/drawer.html","../../../../projects/mozaic-ng/src/lib/drawer/container/drawer-container.component.ts","../../../../projects/mozaic-ng/src/lib/drawer/drawer.service.ts","../../../../projects/mozaic-ng/src/lib/field/field.ts","../../../../projects/mozaic-ng/src/lib/field/field.html","../../../../projects/mozaic-ng/src/lib/field-group/field-group.ts","../../../../projects/mozaic-ng/src/lib/field-group/field-group.html","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-buffer/linear-progress-bar-buffer.ts","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-buffer/linear-progress-bar-buffer.html","../../../../projects/mozaic-ng/src/lib/file-uploader/item/file-uploader-item.ts","../../../../projects/mozaic-ng/src/lib/file-uploader/item/file-uploader-item.html","../../../../projects/mozaic-ng/src/lib/file-uploader/file-uploader.ts","../../../../projects/mozaic-ng/src/lib/file-uploader/file-uploader.html","../../../../projects/mozaic-ng/src/lib/loading-overlay/loading-overlay.ts","../../../../projects/mozaic-ng/src/lib/loading-overlay/loading-overlay.html","../../../../projects/mozaic-ng/src/lib/modal/modal.ts","../../../../projects/mozaic-ng/src/lib/modal/modal.html","../../../../projects/mozaic-ng/src/lib/modal/header/modal-header.component.ts","../../../../projects/mozaic-ng/src/lib/modal/header/modal-header.component.html","../../../../projects/mozaic-ng/src/lib/modal/body/modal-body.component.ts","../../../../projects/mozaic-ng/src/lib/modal/body/modal-body.component.html","../../../../projects/mozaic-ng/src/lib/modal/footer/modal-footer.component.ts","../../../../projects/mozaic-ng/src/lib/modal/footer/modal-footer.component.html","../../../../projects/mozaic-ng/src/lib/modal/container/modal-container.component.ts","../../../../projects/mozaic-ng/src/lib/modal/modal.service.ts","../../../../projects/mozaic-ng/src/lib/number-badge/number-badge.ts","../../../../projects/mozaic-ng/src/lib/number-badge/number-badge.html","../../../../projects/mozaic-ng/src/lib/select/select.ts","../../../../projects/mozaic-ng/src/lib/select/select.html","../../../../projects/mozaic-ng/src/lib/pagination/pagination.ts","../../../../projects/mozaic-ng/src/lib/pagination/pagination.html","../../../../projects/mozaic-ng/src/lib/password-input/password-input.directive.ts","../../../../projects/mozaic-ng/src/lib/pincode/pincode.ts","../../../../projects/mozaic-ng/src/lib/pincode/pincode.html","../../../../projects/mozaic-ng/src/lib/quantity-selector/quantity-selector.ts","../../../../projects/mozaic-ng/src/lib/quantity-selector/quantity-selector.html","../../../../projects/mozaic-ng/src/lib/radio/radio.ts","../../../../projects/mozaic-ng/src/lib/radio/radio.html","../../../../projects/mozaic-ng/src/lib/radio-group/radio-group.ts","../../../../projects/mozaic-ng/src/lib/radio-group/radio-group.html","../../../../projects/mozaic-ng/src/lib/status-dot/status-dot.ts","../../../../projects/mozaic-ng/src/lib/status-dot/status-dot.html","../../../../projects/mozaic-ng/src/lib/status-badge/status-badge.ts","../../../../projects/mozaic-ng/src/lib/status-badge/status-badge.html","../../../../projects/mozaic-ng/src/lib/status-notification/status-notification.ts","../../../../projects/mozaic-ng/src/lib/status-notification/status-notification.html","../../../../projects/mozaic-ng/src/lib/tabs/tabs.ts","../../../../projects/mozaic-ng/src/lib/tabs/tabs.html","../../../../projects/mozaic-ng/src/lib/tag/tag.ts","../../../../projects/mozaic-ng/src/lib/tag/tag.html","../../../../projects/mozaic-ng/src/lib/text-area/text-area.directive.ts","../../../../projects/mozaic-ng/src/lib/text-input/text-input.directive.ts","../../../../projects/mozaic-ng/src/lib/toggle/toggle.ts","../../../../projects/mozaic-ng/src/lib/toggle/toggle.html","../../../../projects/mozaic-ng/src/lib/flag/flag.ts","../../../../projects/mozaic-ng/src/lib/flag/flag.html","../../../../projects/mozaic-ng/src/lib/datepicker/datepicker.ts","../../../../projects/mozaic-ng/src/lib/datepicker/datepicker.html","../../../../projects/mozaic-ng/src/lib/tooltip/tooltip.ts","../../../../projects/mozaic-ng/src/lib/tooltip/tooltip.html","../../../../projects/mozaic-ng/src/lib/tooltip/tooltip.directive.ts","../../../../projects/mozaic-ng/src/lib/circular-progress-bar/circular-progress-bar.ts","../../../../projects/mozaic-ng/src/lib/circular-progress-bar/ciruclar-progress-bar.html","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-percentage/linear-progress-bar-percentage.ts","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-percentage/linear-progress-bar-percentage.html","../../../../projects/mozaic-ng/src/lib/callout/callout.ts","../../../../projects/mozaic-ng/src/lib/callout/callout.html","../../../../projects/mozaic-ng/src/lib/avatar/avatar.ts","../../../../projects/mozaic-ng/src/lib/avatar/avatar.html","../../../../projects/mozaic-ng/src/lib/phone-number-input/phone-number-input.ts","../../../../projects/mozaic-ng/src/lib/phone-number-input/phone-number-input.html","../../../../projects/mozaic-ng/src/lib/toaster/toaster.ts","../../../../projects/mozaic-ng/src/lib/toaster/toaster.html","../../../../projects/mozaic-ng/src/lib/sidebar/sidebar.ts","../../../../projects/mozaic-ng/src/lib/sidebar/sidebar.html","../../../../projects/mozaic-ng/src/lib/segmented-control/segmented-control.ts","../../../../projects/mozaic-ng/src/lib/segmented-control/segmented-control.html","../../../../projects/mozaic-ng/src/lib/accordion/components/header/accordion-header.ts","../../../../projects/mozaic-ng/src/lib/accordion/components/header/accordion-header.html","../../../../projects/mozaic-ng/src/lib/accordion/components/content/accordion-content.ts","../../../../projects/mozaic-ng/src/lib/accordion/components/content/accordion-content.html","../../../../projects/mozaic-ng/src/lib/accordion/components/panel/accordion-panel.ts","../../../../projects/mozaic-ng/src/lib/accordion/accordion.ts","../../../../projects/mozaic-ng/src/lib/accordion/accordion.html","../../../../projects/mozaic-ng/src/lib/action-bottom-bar/action-bottom-bar.ts","../../../../projects/mozaic-ng/src/lib/action-bottom-bar/action-bottom-bar.html","../../../../projects/mozaic-ng/src/lib/action-listbox/action-listbox.ts","../../../../projects/mozaic-ng/src/lib/action-listbox/action-listbox.html","../../../../projects/mozaic-ng/src/lib/carousel/carousel.ts","../../../../projects/mozaic-ng/src/lib/carousel/carousel.html","../../../../projects/mozaic-ng/src/lib/status-message/status-message.ts","../../../../projects/mozaic-ng/src/lib/status-message/status-message.html","../../../../projects/mozaic-ng/src/lib/kpi/kpi.ts","../../../../projects/mozaic-ng/src/lib/kpi/kpi.html","../../../../projects/mozaic-ng/src/lib/stepper-compact/stepper-compact.ts","../../../../projects/mozaic-ng/src/lib/stepper-compact/stepper-compact.html","../../../../projects/mozaic-ng/src/lib/star-rating/star-rating.ts","../../../../projects/mozaic-ng/src/lib/star-rating/star-rating.html","../../../../projects/mozaic-ng/src/lib/built-in-menu/built-in-menu.ts","../../../../projects/mozaic-ng/src/lib/built-in-menu/built-in-menu.html","../../../../projects/mozaic-ng/src/lib/check-list-menu/check-list-menu.ts","../../../../projects/mozaic-ng/src/lib/check-list-menu/check-list-menu.html","../../../../projects/mozaic-ng/src/lib/stepper-inline/stepper-inline.ts","../../../../projects/mozaic-ng/src/lib/stepper-inline/stepper-inline.html","../../../../projects/mozaic-ng/src/lib/stepper-stacked/stepper-stacked.ts","../../../../projects/mozaic-ng/src/lib/stepper-stacked/stepper-stacked.html","../../../../projects/mozaic-ng/src/lib/stepper-bottom-bar/stepper-bottom-bar.ts","../../../../projects/mozaic-ng/src/lib/stepper-bottom-bar/stepper-bottom-bar.html","../../../../projects/mozaic-ng/src/lib/page-header/page-header.ts","../../../../projects/mozaic-ng/src/lib/page-header/page-header.html","../../../../projects/mozaic-ng/src/lib/tiles/tile/tile.ts","../../../../projects/mozaic-ng/src/lib/tiles/tile/tile.html","../../../../projects/mozaic-ng/src/lib/tiles/selectable/selectable-tile.ts","../../../../projects/mozaic-ng/src/lib/tiles/selectable/selectable-tile.html","../../../../projects/mozaic-ng/src/lib/tiles/expandable/expandable-tile.ts","../../../../projects/mozaic-ng/src/lib/tiles/expandable/expandable-tile.html","../../../../projects/mozaic-ng/src/mozaic-ds-angular.ts"],"sourcesContent":["import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { RouterLinkActive, RouterLinkWithHref, RouterModule } from '@angular/router';\n\nexport type MozLinkAppearance = 'secondary' | 'accent' | 'inverse' | 'standard';\nexport type MozLinkSize = 's' | 'm';\nexport type MozLinkIconPosition = 'left' | 'right' | 'only';\n\n@Component({\n selector: 'moz-link',\n imports: [RouterModule, NgClass, NgTemplateOutlet],\n templateUrl: './link.html',\n styleUrls: ['./link.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLinkComponent {\n href = input<string | undefined>();\n target = input<string | undefined>();\n appearance = input<MozLinkAppearance>('standard');\n size = input<MozLinkSize>('m');\n inline = input<boolean>(false);\n router = input<boolean>(false);\n iconPosition = input<MozLinkIconPosition>('left');\n current = input<boolean>(false);\n ariaCurrent = input<string | null>(null);\n\n private readonly routerLinkActive = inject(RouterLinkActive, {\n optional: true,\n });\n public readonly routerLink = inject(RouterLinkWithHref, { optional: true });\n\n readonly classes = computed(() => {\n return {\n [`mc-link--${this.appearance()}`]: this.appearance(),\n [`mc-link--${this.size()}`]: this.size(),\n 'mc-link--inline': this.inline() && !this.current(),\n 'mc-link--stand-alone': !this.inline(),\n 'mc-link--active': this.routerLinkActive?.isActive ?? false,\n 'mc-link--breadcrumb__current': this.current(),\n };\n });\n}\n","@if (router()) {\n<a\n class=\"mc-link\"\n [routerLink]=\"href()\"\n [ngClass]=\"classes()\"\n [attr.target]=\"target()\"\n [attr.aria-current]=\"ariaCurrent()\"\n>\n <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n} @else {\n<a\n class=\"mc-link\"\n [attr.href]=\"href()\"\n [ngClass]=\"classes()\"\n [attr.target]=\"target()\"\n [attr.aria-current]=\"ariaCurrent()\"\n>\n <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n}\n\n<ng-template #linkContent>\n @if(iconPosition() === 'left'){\n <span class=\"mc-link__icon\" aria-hidden=\"true\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n }\n\n <span class=\"mc-link__label\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n </span>\n\n @if(iconPosition() === 'right'){\n <span class=\"mc-link__icon\" aria-hidden=\"true\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n }\n</ng-template>\n\n<ng-template #iconTemplate>\n <ng-content select=\"[icon]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MozLinkComponent } from '../link/link';\n\nexport type MozBreadcrumbAppearance = 'standard' | 'inverse';\n\nexport interface MozBreadcrumbLink {\n label: string;\n href: string;\n router?: boolean;\n}\n\n@Component({\n selector: 'moz-breadcrumb',\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozLinkComponent, NgClass],\n})\nexport class MozBreadcrumbComponent {\n appearance = input<MozBreadcrumbAppearance>('standard');\n links = input<MozBreadcrumbLink[]>([]);\n\n readonly classObject = computed(() => {\n return {\n [`mc-breadcrumb--${this.appearance()}`]: this.appearance(),\n };\n });\n}\n","<nav class=\"mc-breadcrumb\" [ngClass]=\"classObject()\">\n <ul class=\"mc-breadcrumb__container\">\n @for (link of links(); track $index; let isLast = $last) {\n <li class=\"mc-breadcrumb__item\">\n <moz-link\n [href]=\"link.href\"\n [router]=\"link.router ?? false\"\n [appearance]=\"appearance()\"\n [inline]=\"true\"\n [current]=\"isLast\"\n [ariaCurrent]=\"isLast ? 'page' : null\"\n >\n {{ link.label }}\n </moz-link>\n </li>\n }\n </ul>\n</nav>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozLoaderAppearance = 'standard' | 'accent' | 'inverse';\nexport type MozLoaderSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-loader',\n imports: [NgClass],\n templateUrl: './loader.html',\n styleUrls: ['./loader.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLoaderComponent {\n appearance = input<MozLoaderAppearance>('standard');\n size = input<MozLoaderSize>('m');\n text = input<string>();\n\n readonly classes = computed(() => {\n return {\n [`mc-loader--${this.size()}`]: this.size(),\n [`mc-loader--${this.appearance()}`]: this.appearance(),\n [`mc-loader--text-visible`]: this.text() !== '',\n };\n });\n\n readonly viewBox = computed(() => {\n switch (this.size()) {\n case 's':\n return '0 0 24 24';\n case 'l':\n return '0 0 64 64';\n default:\n return '0 0 32 32';\n }\n });\n\n readonly circleRadius = computed(() => {\n switch (this.size()) {\n case 's':\n return 6;\n case 'l':\n return 19;\n default:\n return 9;\n }\n });\n}\n","<div class=\"mc-loader\" [ngClass]=\"classes()\">\n <span class=\"mc-loader__spinner\">\n <svg\n class=\"mc-loader__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.viewBox]=\"viewBox()\"\n aria-hidden=\"true\"\n >\n <circle\n class=\"mc-loader__path\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.r]=\"circleRadius()\"\n ></circle>\n </svg>\n </span>\n\n @if (text()) {\n <span class=\"mc-loader__text\" role=\"status\">{{ text() }}</span>\n }\n</div>\n","import {\n Component,\n TemplateRef,\n computed,\n contentChild,\n input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MozLoaderComponent } from '../loader/loader';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type MozButtonAppearance = 'standard' | 'accent' | 'danger' | 'inverse';\nexport type MozButtonSize = 's' | 'm' | 'l';\nexport type MozButtonIconPosition = 'left' | 'right' | 'only' | null;\nexport type MozButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n selector: 'button[moz-button]',\n templateUrl: './button.html',\n styleUrls: ['./button.scss'],\n imports: [MozLoaderComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClasses()',\n '[disabled]': 'disabled()',\n '[type]': 'type()',\n },\n})\nexport class MozButtonComponent {\n appearance = input<MozButtonAppearance>('standard');\n size = input<MozButtonSize>();\n disabled = input<boolean>();\n ghost = input<boolean>();\n outlined = input<boolean>();\n iconPosition = input<MozButtonIconPosition>(null);\n type = input<MozButtonType>('button');\n isLoading = input<boolean>();\n iconTpl = contentChild<TemplateRef<void>>('icon', { descendants: false });\n\n readonly hostClasses = computed(() => {\n const classes = ['mc-button'];\n\n if (this.appearance()) {\n classes.push(`mc-button--${this.appearance()}`);\n }\n if (this.size()) {\n classes.push(`mc-button--${this.size()}`);\n }\n if (this.ghost()) {\n classes.push('mc-button--ghost');\n }\n if (this.outlined()) {\n classes.push('mc-button--outlined');\n }\n if (this.iconPosition() === 'only') {\n classes.push('mc-button--icon-only');\n }\n\n return classes.join(' ');\n });\n}\n","@if ((iconPosition() === 'left' || iconPosition() === 'only') && !isLoading()) {\n<span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n</span>\n} @if (isLoading()) {\n<span class=\"mc-button__icon\" [style.position]=\"'absolute'\">\n <moz-loader size=\"s\" [appearance]=\"'inverse'\" />\n</span>\n} @if (iconPosition() !== 'only') {\n<span class=\"mc-button__label\" [style.visibility]=\"isLoading() ? 'hidden' : 'visible'\">\n <ng-content></ng-content>\n</span>\n} @if ((iconPosition() === 'right') && !isLoading()) {\n<span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n</span>\n}\n<ng-template #iconTemplate>\n <ng-content select=\"[icon]\"></ng-content>\n</ng-template>\n","import {\n Component,\n TemplateRef,\n computed,\n contentChild,\n input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MozLoaderComponent } from '../loader/loader';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n MozButtonAppearance,\n MozButtonSize,\n MozButtonIconPosition,\n MozButtonType,\n} from '../button/button';\n\n@Component({\n selector: 'moz-button',\n templateUrl: './button-wrapper.html',\n styleUrls: ['../button/button.scss'],\n imports: [MozLoaderComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[attr.disabled]': 'disabled() ? \"\" : null',\n },\n})\nexport class MozButtonWrapperComponent {\n appearance = input<MozButtonAppearance>('standard');\n size = input<MozButtonSize>();\n disabled = input<boolean>();\n ghost = input<boolean>();\n outlined = input<boolean>();\n iconPosition = input<MozButtonIconPosition>(null);\n type = input<MozButtonType>('button');\n isLoading = input<boolean>();\n iconTpl = contentChild<TemplateRef<void>>('icon', { descendants: false });\n\n readonly hostClasses = computed(() => {\n const classes = ['mc-button'];\n\n if (this.appearance()) {\n classes.push(`mc-button--${this.appearance()}`);\n }\n if (this.size()) {\n classes.push(`mc-button--${this.size()}`);\n }\n if (this.ghost()) {\n classes.push('mc-button--ghost');\n }\n if (this.outlined()) {\n classes.push('mc-button--outlined');\n }\n if (this.iconPosition() === 'only') {\n classes.push('mc-button--icon-only');\n }\n\n return classes.join(' ');\n });\n}\n","<button\n [class]=\"hostClasses()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n>\n @if ((iconPosition() === 'left' || iconPosition() === 'only') && !isLoading()) {\n <span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n } @if (isLoading()) {\n <span class=\"mc-button__icon\" [style.position]=\"'absolute'\">\n <moz-loader size=\"s\" [appearance]=\"'inverse'\" />\n </span>\n } @if (iconPosition() !== 'only') {\n <span class=\"mc-button__label\" [style.visibility]=\"isLoading() ? 'hidden' : 'visible'\">\n <ng-content></ng-content>\n </span>\n } @if ((iconPosition() === 'right') && !isLoading()) {\n <span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n }\n</button>\n<ng-template #iconTemplate>\n <ng-content select=\"[icon]\"></ng-content>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\n\n@Component({\n selector: 'moz-checkbox',\n imports: [FormsModule, ReactiveFormsModule, NgClass],\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozCheckboxComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozCheckboxComponent implements ControlValueAccessor {\n id = input.required<string>();\n name = input<string | undefined>();\n label = input<string | undefined>();\n indeterminate = input(false);\n isInvalid = input(false);\n disabled = input(false);\n indented = input(false);\n\n public _value = signal(false);\n\n onChange: (_: boolean) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n readonly classObject = computed(() => {\n return {\n 'is-invalid': this.isInvalid(),\n };\n });\n\n readonly indentedClass = computed(() => {\n return {\n 'mc-checkbox--indented': this.indented(),\n };\n });\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (_: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onInputChange(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n this._value.set(checked);\n this.onChange(checked);\n this.onTouched();\n }\n}\n","<div class=\"mc-checkbox\" [ngClass]=\"indentedClass()\">\n <input\n class=\"mc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [ngClass]=\"classObject()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled()\"\n (change)=\"onInputChange($event)\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-checked]=\"_value()\"\n />\n @if (label()) {\n <label class=\"mc-checkbox__label\" [for]=\"id()\"> {{ label() }} </label>\n }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MozCheckboxComponent } from '../checkbox/checkbox';\n\n@Component({\n selector: 'moz-checkbox-group',\n templateUrl: './checkbox-group.html',\n styleUrls: ['./checkbox-group.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozCheckboxGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozCheckboxComponent, FormsModule, NgClass],\n})\nexport class MozCheckboxGroupComponent implements ControlValueAccessor {\n name = input.required<string>();\n options = input<\n {\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n isInvalid?: boolean;\n }[]\n >();\n inline = input<boolean>(false);\n\n _value = signal<string[]>([]);\n readonly containerClass = computed(() => {\n return {\n 'mc-field__content--inline': this.inline(),\n };\n });\n\n onChange: (_: string[]) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: string[]): void {\n this._value.set(value || []);\n }\n\n registerOnChange(fn: (value: string[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n toggleSelection(event: Event, val: string) {\n const isChecked = (event.target as HTMLInputElement).checked;\n const values = [...this._value()];\n\n if (isChecked && !values.includes(val)) {\n values.push(val);\n } else if (!isChecked && values.includes(val)) {\n const index = values.indexOf(val);\n values.splice(index, 1);\n }\n\n this._value.set(values);\n this.onChange(values);\n this.onTouched();\n }\n\n isChecked(value: string): boolean {\n return this._value().includes(value);\n }\n}\n","<fieldset class=\"mc-field mc-field--group\">\n <div class=\"mc-field__content\" [ngClass]=\"containerClass()\">\n @for (option of options(); track $index) {\n <moz-checkbox\n [id]=\"option.id\"\n [label]=\"option.label\"\n [name]=\"name()\"\n [isInvalid]=\"option.isInvalid ?? false\"\n [disabled]=\"option.disabled ?? false\"\n [ngModel]=\"isChecked(option.value)\"\n (change)=\"toggleSelection($event, option.value)\"\n ></moz-checkbox>\n }\n </div>\n</fieldset>\n","import { Component, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozDividerOrientation = 'horizontal' | 'vertical';\nexport type MozDividerAppearance = 'primary' | 'secondary' | 'tertiary' | 'inverse';\nexport type MozDividerSize = 's' | 'm' | 'l';\n\n/**\n * A divider is a visual element used to separate content or sections within an interface. It helps improve readability and organization by creating clear distinctions between groups of information. Dividers can be thin lines, thick separators, or even styled with spacing variations, adapting to different layouts. They are commonly used in menus, lists, forms, and content blocks to create a structured visual hierarchy.\n */\n@Component({\n selector: 'moz-divider',\n imports: [NgClass],\n templateUrl: './divider.html',\n styleUrls: ['./divider.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozDividerComponent {\n /**\n * Determines the orientation of the divider.\n */\n orientation = input<MozDividerOrientation>('horizontal');\n /**\n * Determines the appearance of the divider.\n */\n appearance = input<MozDividerAppearance>('primary');\n /**\n * Determines the size of the divider.\n */\n size = input<MozDividerSize>('s');\n\n readonly classes = computed(() => {\n return {\n [`mc-divider-${this.orientation()}`]: this.orientation(),\n [`mc-divider-horizontal--${this.appearance()}`]:\n this.appearance() && this.appearance() !== 'primary',\n [`mc-divider-horizontal--${this.size()}`]: this.size() && this.size() !== 's',\n };\n });\n}\n","<div class=\"mc-divider\">\n <div [ngClass]=\"classes()\" aria-hidden=\"true\"></div>\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-overlay',\n imports: [NgClass],\n templateUrl: './overlay.html',\n styleUrls: ['./overlay.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozOverlayComponent {\n readonly backdropClick = output<void>();\n readonly backdropKeydown = output<void>();\n\n /**\n * Controls the visibility of the overlay.\n */\n isVisible = input<boolean>();\n\n /**\n * Accessible label for the overlay dialog.\n */\n dialogLabel = input<string>();\n\n onBackdropClick() {\n this.backdropClick.emit();\n }\n\n \n noop() {}\n}\n","<div\n class=\"mc-overlay\"\n [ngClass]=\"{ 'is-visible': isVisible() }\"\n (click)=\"onBackdropClick()\"\n (keydown)=\"noop()\"\n tabindex=\"-1\"\n aria-label=\"Close pannel\"\n>\n <div role=\"dialog\" tabindex=\"-1\" [attr.aria-labelledby]=\"dialogLabel()\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozIconButtonAppearance = 'standard' | 'accent' | 'danger' | 'inverse';\nexport type MozIconButtonSize = 's' | 'm' | 'l';\nexport type MozIconButtonType = 'button' | 'reset' | 'submit';\n\n@Component({\n selector: 'moz-icon-button',\n templateUrl: './icon-button.html',\n styleUrls: ['./icon-button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozIconButtonComponent {\n appearance = input<MozIconButtonAppearance>('standard');\n size = input<MozIconButtonSize>('m');\n disabled = input<boolean>();\n ghost = input<boolean>();\n outlined = input<boolean>();\n type = input<MozIconButtonType>('button');\n ariaLabel = input<string>();\n\n readonly classes = computed(() => {\n return {\n [`mc-button--${this.appearance()}`]: this.appearance(),\n [`mc-button--${this.size()}`]: this.size(),\n 'mc-button--ghost': this.ghost() ?? false,\n 'mc-button--outlined': this.outlined() ?? false,\n };\n });\n}\n","<button\n [disabled]=\"disabled()\"\n [attr.type]=\"type()\"\n [ngClass]=\"classes()\"\n class=\"mc-button mc-button--icon-button\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"mc-button__icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n contentChild,\n input,\n output,\n signal,\n effect,\n computed,\n} from '@angular/core';\nimport { MozOverlayComponent } from '../overlay/overlay';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\nimport { ArrowBack24, Cross24 } from '@mozaic-ds/icons-angular';\nimport { NgClass } from '@angular/common';\n\nexport type MozDrawerPosition = 'left' | 'right';\n\n@Component({\n selector: 'moz-drawer',\n imports: [MozOverlayComponent, MozIconButtonComponent, ArrowBack24, Cross24, NgClass],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozDrawerComponent {\n readonly open = input<boolean>(false);\n readonly position = input<MozDrawerPosition>('right');\n readonly extended = input<boolean>(false);\n readonly back = input<boolean>(false);\n readonly title = input.required<string>();\n readonly contentTitle = input<string | undefined>();\n\n readonly updateOpen = output<boolean>();\n readonly backEvent = output<void>();\n\n footerTpl = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n readonly isOpen = signal(this.open());\n\n readonly classMap = computed(() => ({\n 'is-open': this.isOpen(),\n 'mc-drawer--extend': this.extended(),\n [`mc-drawer--${this.position()}`]: this.position() !== 'right',\n }));\n\n readonly ariaModal = computed(() => (this.isOpen() ? 'true' : 'false'));\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.open());\n });\n }\n\n close(): void {\n this.updateOpen.emit(false);\n }\n\n backClick(): void {\n this.backEvent.emit();\n }\n\n noop() {}\n}\n","<moz-overlay\n [isVisible]=\"isOpen()\"\n dialogLabel=\"drawerTitle\"\n (backdropClick)=\"close()\"\n (backdropKeydown)=\"close()\"\n>\n <section\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"noop()\"\n class=\"mc-drawer\"\n [ngClass]=\"classMap()\"\n role=\"dialog\"\n aria-labelledby=\"drawerTitle\"\n [attr.aria-modal]=\"ariaModal()\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!isOpen()\"\n >\n <div class=\"mc-drawer__dialog\" role=\"document\">\n <div class=\"mc-drawer__header\">\n @if (back()) {\n <moz-icon-button\n class=\"mc-drawer__back\"\n aria-label=\"Back\"\n [ghost]=\"true\"\n (click)=\"backClick()\"\n >\n <ArrowBack24 icon />\n </moz-icon-button>\n }\n\n <h2 class=\"mc-drawer__title\" id=\"drawerTitle\">{{ title() }}</h2>\n\n <moz-icon-button\n class=\"mc-drawer__close\"\n aria-label=\"Close\"\n [ghost]=\"true\"\n (click)=\"close()\"\n >\n <Cross24 icon />\n </moz-icon-button>\n </div>\n\n <div class=\"mc-drawer__body\">\n <div class=\"mc-drawer__content\" tabindex=\"0\">\n @if (contentTitle()) {\n <h2 class=\"mc-drawer__content__title\">\n {{ contentTitle() }}\n </h2>\n }\n\n <ng-content />\n </div>\n </div>\n\n <div class=\"mc-drawer__footer\">\n <ng-content select=\"[footer]\" />\n </div>\n </div>\n </section>\n</moz-overlay>\n","import {\n Component,\n ChangeDetectionStrategy,\n inject,\n TemplateRef,\n Type,\n signal,\n viewChild,\n ElementRef,\n afterNextRender,\n OnDestroy,\n} from '@angular/core';\nimport { DialogRef, DIALOG_DATA } from '@angular/cdk/dialog';\nimport { MozDrawerConfig } from '../drawer.service';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { MozDrawerComponent } from '../drawer';\nimport { MozButtonComponent } from '../../button/button';\n\n@Component({\n selector: 'moz-drawer-container',\n imports: [NgTemplateOutlet, NgComponentOutlet, MozDrawerComponent, MozButtonComponent],\n template: `\n <moz-drawer\n [open]=\"isOpen()\"\n [title]=\"data.title || ''\"\n [contentTitle]=\"data.contentTitle\"\n [position]=\"data.position || 'right'\"\n [extended]=\"data.extended || false\"\n [back]=\"data.back || false\"\n (updateOpen)=\"onUpdateOpen($event)\"\n (backEvent)=\"onBackClick()\"\n #drawerElement\n >\n @if (isTemplate(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"asTemplate(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit: data.data }\"\n ></ng-container>\n } @else if (isComponent(data.content)) {\n <ng-container [ngComponentOutlet]=\"asComponent(data.content)\"></ng-container>\n } @else if (data.content) {\n <p>{{ data.content }}</p>\n } @for (button of data.footerButtons; track button.label) {\n <button moz-button (click)=\"onButtonClick(button)\" footer>{{ button.label }}</button>\n }\n </moz-drawer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozDrawerContainerComponent<T = unknown, R = unknown> implements OnDestroy {\n readonly dialogRef = inject<DialogRef<R>>(DialogRef);\n readonly data = inject<MozDrawerConfig<T>>(DIALOG_DATA);\n readonly isOpen = signal(false);\n readonly drawerElement = viewChild<ElementRef<HTMLElement>>('drawerElement');\n private pendingClose: R | undefined = undefined;\n private isClosing = false;\n private transitionEndHandler?: (event: TransitionEvent) => void;\n private closeTimeoutId?: ReturnType<typeof setTimeout>;\n\n constructor() {\n afterNextRender(() => {\n const element = this.drawerElement()?.nativeElement;\n if (element) {\n this.transitionEndHandler = this.onTransitionEnd.bind(this);\n element.addEventListener('transitionend', this.transitionEndHandler);\n }\n setTimeout(() => this.isOpen.set(true), 0);\n });\n }\n\n ngOnDestroy(): void {\n const element = this.drawerElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n }\n }\n\n private onTransitionEnd(event: TransitionEvent): void {\n if (this.isClosing && event.propertyName === 'opacity') {\n this.cleanupAndClose();\n }\n }\n\n private cleanupAndClose(): void {\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n this.closeTimeoutId = undefined;\n }\n const element = this.drawerElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n this.dialogRef.close(this.pendingClose);\n }\n\n isTemplate(content: unknown): content is TemplateRef<{ $implicit: T | undefined }> {\n return content instanceof TemplateRef;\n }\n\n isComponent(content: unknown): content is Type<unknown> {\n return typeof content === 'function';\n }\n\n asTemplate(content: unknown): TemplateRef<{ $implicit: T | undefined }> {\n return content as TemplateRef<{ $implicit: T | undefined }>;\n }\n\n asComponent(content: unknown): Type<unknown> {\n return content as Type<unknown>;\n }\n\n onButtonClick(button: { label: string; onClick?: () => void }): void {\n if (button.onClick) {\n button.onClick();\n }\n }\n\n onUpdateOpen(open: boolean): void {\n if (!open) {\n this.close();\n }\n }\n\n onBackClick(): void {\n if (this.data.onBack) {\n this.data.onBack();\n }\n }\n\n close(result?: R): void {\n if (this.isClosing) {\n return;\n }\n this.isClosing = true;\n this.pendingClose = result;\n this.isOpen.set(false);\n \n // Safety timeout: close after 500ms even if transitionend doesn't fire\n this.closeTimeoutId = setTimeout(() => {\n if (this.isClosing) {\n this.cleanupAndClose();\n }\n }, 500);\n }\n}\n","import { Injectable, inject, TemplateRef, Type, Injector } from '@angular/core';\nimport { Dialog, DialogRef, DialogConfig } from '@angular/cdk/dialog';\nimport { Observable } from 'rxjs';\nimport { MozDrawerContainerComponent } from './container/drawer-container.component';\n\nexport interface MozDrawerButton {\n label: string;\n onClick?: () => void;\n primary?: boolean;\n}\n\nexport interface MozDrawerConfig<T = unknown> {\n title?: string;\n contentTitle?: string;\n position?: 'left' | 'right';\n extended?: boolean;\n back?: boolean;\n onBack?: () => void;\n content?: TemplateRef<T> | Type<unknown> | string;\n data?: T;\n panelClass?: string | string[];\n backdropClass?: string | string[];\n disableClose?: boolean;\n ariaLabel?: string;\n ariaDescribedBy?: string;\n footerButtons?: MozDrawerButton[];\n}\n\nexport class MozDrawerRef<R = unknown> {\n private _dialogRef!: DialogRef<R, MozDrawerContainerComponent>;\n\n setDialogRef(dialogRef: DialogRef<R, MozDrawerContainerComponent>): void {\n this._dialogRef = dialogRef;\n }\n\n close(result?: R): void {\n this._dialogRef.componentInstance?.close(result);\n }\n\n get afterClosed(): Observable<R | undefined> {\n return this._dialogRef.closed;\n }\n\n get componentInstance(): MozDrawerContainerComponent | null {\n return this._dialogRef.componentInstance;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MozDrawerService {\n private readonly dialog = inject(Dialog);\n private readonly injector = inject(Injector);\n\n open<T = unknown, R = unknown>(config: MozDrawerConfig<T> = {}): MozDrawerRef<R> {\n const drawerRef = new MozDrawerRef<R>();\n\n const customInjector = Injector.create({\n parent: this.injector,\n providers: [{ provide: MozDrawerRef, useValue: drawerRef }],\n });\n\n const dialogConfig: DialogConfig<\n MozDrawerConfig<T>,\n DialogRef<R, MozDrawerContainerComponent>\n > = {\n data: config,\n injector: customInjector,\n panelClass: [\n ...(Array.isArray(config.panelClass)\n ? config.panelClass\n : config.panelClass\n ? [config.panelClass]\n : []),\n ],\n backdropClass: [\n ...(Array.isArray(config.backdropClass)\n ? config.backdropClass\n : config.backdropClass\n ? [config.backdropClass]\n : []),\n ],\n disableClose: config.disableClose ?? true,\n ariaLabel: config.ariaLabel || config.title,\n ariaDescribedBy: config.ariaDescribedBy,\n hasBackdrop: false,\n closeOnNavigation: true,\n closeOnDestroy: true,\n };\n\n const dialogRef = this.dialog.open<R, MozDrawerConfig<T>, MozDrawerContainerComponent>(\n MozDrawerContainerComponent,\n dialogConfig\n );\n\n drawerRef.setDialogRef(dialogRef);\n\n return drawerRef;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozFieldComponent {\n id = input<string>();\n label = input<string>();\n requirementText = input<string | undefined>();\n helpText = input<string | undefined>();\n helpId = input<string | undefined>();\n isValid = input<boolean>(false);\n isInvalid = input<boolean>(false);\n messageId = input<string | undefined>();\n message = input<string | undefined>();\n\n readonly classes = computed(() => {\n return {\n 'is-valid': this.isValid(),\n 'is-invalid': this.isInvalid(),\n };\n });\n}\n","<div class=\"mc-field\">\n <label class=\"mc-field__label\" [attr.for]=\"id()\">\n {{ label() }} @if (requirementText()) {\n <span class=\"mc-field__requirement\"> ({{ requirementText() }}) </span>\n }\n </label>\n\n @if (helpId() && helpText()) {\n <span class=\"mc-field__help\" [id]=\"helpId()\"> {{ helpText() }} </span>\n }\n\n <div class=\"mc-field__content\">\n <ng-content></ng-content>\n </div>\n\n @if ((isValid() || isInvalid()) && message()) {\n <span\n class=\"mc-field__validation-message\"\n [id]=\"messageId()\"\n [ngClass]=\"classes()\"\n >\n {{ message() }}\n </span>\n }\n</div>\n","import { Component, ChangeDetectionStrategy, input } from '@angular/core';\n\n@Component({\n selector: 'moz-field-group',\n templateUrl: './field-group.html',\n styleUrl: './field-group.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozFieldGroupComponent {\n id = input.required<string>();\n legend = input.required<string>();\n requirementText = input<string | undefined>();\n helpText = input<string | undefined>();\n isValid = input(false);\n isInvalid = input(false);\n message = input<string | undefined>();\n}\n","<fieldset class=\"mc-field--group\">\n <legend class=\"mc-field__legend\" [attr.for]=\"id()\">\n {{ legend() }} @if (requirementText()) {\n <span class=\"mc-field__requirement\">({{ requirementText() }})</span>\n }\n </legend>\n\n @if (helpText()) {\n <span class=\"mc-field__help\">{{ helpText() }}</span>\n }\n\n <div class=\"mc-field__content\">\n <ng-content></ng-content>\n </div>\n\n @if ((isValid() || isInvalid()) && message()) {\n <span\n class=\"mc-field__validation-message\"\n [class.is-valid]=\"isValid()\"\n [class.is-invalid]=\"isInvalid()\"\n >\n {{ message() }}\n </span>\n }\n</fieldset>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\ntype MozLinearProgressBarBufferSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-linear-progress-bar-buffer',\n templateUrl: './linear-progress-bar-buffer.html',\n styleUrls: ['./linear-progress-bar-buffer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLinearProgressBarBufferComponent {\n valuePercent = input<number>(0);\n size = input<MozLinearProgressBarBufferSize>('l');\n ariaLabel = input<string>('Progress bar');\n\n classes = computed(() => {\n const classes = ['mc-linear-progressbar-buffer'];\n if (this.size() === 's') classes.push('mc-linear-progressbar-buffer--s');\n if (this.size() === 'm') classes.push('mc-linear-progressbar-buffer--m');\n if (this.size() === 'l') classes.push('mc-linear-progressbar-buffer--l');\n return classes.join(' ');\n });\n}\n","<div [class]=\"classes()\">\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n [style.--progress-value]=\"valuePercent()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuenow]=\"valuePercent()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport {\n CheckCircle32,\n CrossCircleFilled20,\n Uploading32,\n WarningCircle32,\n Refresh20,\n Refresh32,\n Eye20,\n} from '@mozaic-ds/icons-angular';\nimport { MozButtonComponent } from '../../button/button';\nimport { MozDividerComponent } from '../../divider/divider';\nimport { MozIconButtonComponent } from '../../icon-button/icon-button';\nimport { MozLinearProgressBarBufferComponent } from '../../linear-progress-bar-buffer/linear-progress-bar-buffer';\n\nexport type MozFileUploaderItemFormat = 'inline' | 'stacked';\n\n@Component({\n selector: 'moz-file-uploader-item',\n templateUrl: './file-uploader-item.html',\n styleUrls: ['./file-uploader-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MozLinearProgressBarBufferComponent,\n MozButtonComponent,\n CheckCircle32,\n CrossCircleFilled20,\n Refresh32,\n MozDividerComponent,\n MozIconButtonComponent,\n Refresh20,\n Uploading32,\n Eye20,\n WarningCircle32,\n ],\n})\nexport class MozFileUploaderItemComponent {\n format = input<MozFileUploaderItemFormat>('inline');\n invalid = input<boolean>(false);\n uploading = input<boolean>(false);\n errorMessage = input<string>();\n hasPreview = input<boolean>(false);\n file = input.required<File>();\n fileInformation = input<(file: File) => string>();\n retryButtonLabel = input<string>('Retry');\n deleteButtonLabel = input<string>('Delete');\n previewButtonLabel = input<string>('Preview');\n\n delete = output<File>();\n retry = output<File>();\n preview = output<File>();\n\n readonly fileName = computed(() => this.file().name);\n\n readonly fileInfo = computed(() => {\n const customInfo = this.fileInformation();\n if (customInfo) {\n return customInfo(this.file());\n }\n\n // Default information\n const file = this.file();\n const size = this.formatFileSize(file.size);\n return `${size} • ${file.type || 'Unknown type'}`;\n });\n\n readonly isInline = computed(() => this.format() === 'inline');\n\n readonly stateModifier = computed(() => {\n if (this.invalid()) return 'error';\n if (this.uploading()) return 'loading';\n return 'default';\n });\n\n readonly modifierClass = computed(() => {\n const state = this.stateModifier();\n return state !== 'default' ? `mc-file-uploader-item--${state}` : '';\n });\n\n readonly isUploading = computed(() => this.stateModifier() === 'loading');\n\n readonly stateIcon = computed(() => {\n const state = this.stateModifier();\n const iconMap = {\n default: CheckCircle32,\n loading: Uploading32,\n error: WarningCircle32,\n };\n return iconMap[state];\n });\n\n readonly showInlineActions = computed(() => this.isInline() && !this.isUploading());\n\n readonly showStackedActions = computed(() => !this.isInline() && !this.isUploading());\n\n onDelete(): void {\n this.delete.emit(this.file());\n }\n\n onRetry(): void {\n this.retry.emit(this.file());\n }\n\n onPreview(): void {\n this.preview.emit(this.file());\n }\n\n private formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];\n }\n}\n","<div class=\"mc-file-uploader-item\" [class]=\"modifierClass()\">\n <div class=\"mc-file-uploader-item__container mc-file-uploader-item__container--{{ format() }}\">\n <div\n class=\"mc-file-uploader-item__meta-row\"\n [class.mc-file-uploader-item__meta-row--with-info]=\"true\"\n >\n @if (isUploading() && !invalid()) {\n <Uploading32 class=\"mc-file-uploader-item__status-icon\" />\n } @else if(invalid()) {\n <WarningCircle32 class=\"mc-file-uploader-item__status-icon\" />\n } @else {\n <CheckCircle32 class=\"mc-file-uploader-item__status-icon\" />\n }\n <div class=\"mc-file-uploader-item__info-content\">\n <span class=\"mc-file-uploader-item__label\">{{ fileName() }}</span>\n <span class=\"mc-file-uploader-item__details\">{{ fileInfo() }}</span>\n </div>\n </div>\n\n @if (showInlineActions()) {\n <div class=\"mc-file-uploader-item__inline-actions\">\n @if (invalid()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onRetry()\"\n >\n <Refresh32 icon />\n <span class=\"mc-button__label\">{{ retryButtonLabel() }}</span>\n </button>\n } @if (!invalid() && hasPreview()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onPreview()\"\n >\n <span class=\"mc-button__label\">{{ previewButtonLabel() }}</span>\n </button>\n }\n </div>\n <div class=\"mc-file-uploader-item__delete-button-container\">\n <moz-icon-button (click)=\"onDelete()\" [size]=\"'s'\" [ghost]=\"true\">\n <CrossCircleFilled20 icon />\n </moz-icon-button>\n </div>\n } @if (showStackedActions()) {\n <moz-divider orientation=\"horizontal\"></moz-divider>\n <div class=\"mc-file-uploader-item__actions-container\">\n @if (!invalid() && hasPreview()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onPreview()\"\n [iconPosition]=\"'left'\"\n >\n <Eye20 icon />\n <span class=\"mc-button__label\">{{ previewButtonLabel() }}</span>\n </button>\n } @if (invalid()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onRetry()\"\n [iconPosition]=\"'left'\"\n >\n <Refresh20 icon />\n <span class=\"mc-button__label\">{{ retryButtonLabel() }}</span>\n </button>\n }\n\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onDelete()\"\n [iconPosition]=\"'left'\"\n >\n <CrossCircleFilled20 icon />\n <span class=\"mc-button__label\">{{ deleteButtonLabel() }}</span>\n </button>\n </div>\n } @if (isUploading() && !invalid()) {\n <moz-linear-progress-bar-buffer size=\"l\" [valuePercent]=\"75\" />\n }\n </div>\n\n @if (errorMessage() && invalid()) {\n <span class=\"mc-file-uploader-item__error-message\">{{ errorMessage() }}</span>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n computed,\n input,\n OnInit,\n signal,\n output,\n} from '@angular/core';\nimport { MozFieldComponent } from '../field/field';\nimport { MozButtonComponent } from '../button/button';\nimport { Upload24 } from '@mozaic-ds/icons-angular';\nimport { MozFileUploaderItemComponent } from './item/file-uploader-item';\nexport type MozFileUploaderFormat = 'inline' | 'stacked';\n\n@Component({\n selector: 'moz-file-uploader',\n templateUrl: './file-uploader.html',\n styleUrls: ['./file-uploader.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozFieldComponent, MozButtonComponent, MozFileUploaderItemComponent, Upload24],\n})\nexport class MozFileUploaderComponent implements OnInit {\n // File input props\n id = input.required<string>();\n label = input<string>();\n helpText = input<string>();\n helpId = input<string>();\n necessityIndicator = input<string>('');\n hasDragDrop = input<boolean>(true);\n showFilesList = input<boolean>(true);\n disabled = input<boolean>(false);\n multipleFiles = input<boolean>(true);\n accept = input<string>();\n title = input<string>('Drag & drop');\n subtitle = input<string>('or');\n uploadButtonLabel = input<string>('Upload file(s)');\n\n // File item props\n format = input<MozFileUploaderFormat>('inline');\n errorMessage = input<string>();\n invalid = input<boolean>(false);\n uploading = input<boolean>(false);\n hasPreview = input<boolean>(false);\n retryButtonLabel = input<string>('Retry');\n deleteButtonLabel = input<string>('Delete');\n previewButtonLabel = input<string>('Preview');\n information = input<string>();\n fileInformation = input<(file: File) => string>();\n\n // Outputs for file operations\n retryFile = output<File>();\n previewFile = output<File>();\n\n // Internal state\n files = signal<File[]>([]);\n isDragged = signal<boolean>(false);\n\n // Initial files for stories/testing\n initialFiles = input<File[]>([]);\n\n readonly classes = computed(() => ({\n 'mc-file-uploader--draggable': this.hasDragDrop(),\n }));\n\n readonly inputClasses = computed(() => ({\n 'mc-file-uploader__input--disabled': this.disabled(),\n 'mc-file-uploader__input--dragged': this.isDragged(),\n }));\n\n iconTpl = ContentChild('icon', { descendants: false });\n\n ngOnInit(): void {\n const initial = this.initialFiles();\n if (initial.length > 0) {\n this.files.set(initial);\n }\n }\n\n removeFile(index: number): void {\n const currentFiles = this.files();\n const newFiles = currentFiles.filter((_, i) => i !== index);\n this.files.set(newFiles);\n }\n\n onDeleteFile(file: File): void {\n const currentFiles = this.files();\n const newFiles = currentFiles.filter((f) => f.name !== file.name);\n this.files.set(newFiles);\n }\n\n onRetryFile(file: File): void {\n this.retryFile.emit(file);\n }\n\n onPreviewFile(file: File): void {\n this.previewFile.emit(file);\n }\n\n onFileSelect(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (target.files) {\n const newFiles = Array.from(target.files);\n\n if (this.multipleFiles()) {\n // Mode multiple : ajoute les nouveaux fichiers aux existants\n const currentFiles = this.files();\n this.files.set([...currentFiles, ...newFiles]);\n } else {\n // Mode simple : remplace tous les fichiers\n this.files.set(newFiles);\n }\n }\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragged.set(false);\n\n if (event.dataTransfer?.files) {\n const newFiles = Array.from(event.dataTransfer.files);\n\n if (this.multipleFiles()) {\n // Mode multiple : ajoute les nouveaux fichiers aux existants\n const currentFiles = this.files();\n this.files.set([...currentFiles, ...newFiles]);\n } else {\n // Mode simple : remplace tous les fichiers\n this.files.set(newFiles);\n }\n }\n }\n\n openFileDialog(): void {\n if (this.disabled()) return;\n\n const fileInput = document.getElementById(this.id()) as HTMLInputElement;\n fileInput?.click();\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n this.isDragged.set(true);\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.isDragged.set(false);\n }\n}\n","<div class=\"mc-file-uploader\" [class]=\"classes()\">\n <moz-field\n [id]=\"id()\"\n [label]=\"label()\"\n [helpText]=\"helpText()\"\n [helpId]=\"helpId()\"\n [requirementText]=\"necessityIndicator()\"\n [isInvalid]=\"invalid()\"\n >\n <input\n [id]=\"id()\"\n type=\"file\"\n class=\"mc-file-uploader__hidden-input\"\n [disabled]=\"disabled()\"\n (change)=\"onFileSelect($event)\"\n [multiple]=\"multipleFiles()\"\n [accept]=\"accept()\"\n />\n\n <div\n class=\"mc-file-uploader__input\"\n [class]=\"inputClasses()\"\n (click)=\"openFileDialog()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n @if (hasDragDrop()) {\n <span class=\"mc-file-uploader__input-title\">{{ title() }}</span>\n <span class=\"mc-file-uploader__input-subtitle\">{{ subtitle() }}</span>\n }\n\n <button moz-button [outlined]=\"true\" iconPosition=\"left\" class=\"mc-file-uploader__button\">\n <Upload24 icon />\n <span class=\"mc-button__label\">{{ uploadButtonLabel() }}</span>\n </button>\n </div>\n </moz-field>\n\n @if (showFilesList() && files().length > 0) {\n <div class=\"mc-file-uploader__files-list\">\n @for (file of files(); track file; let i = $index) {\n <moz-file-uploader-item\n [format]=\"format()\"\n [invalid]=\"invalid()\"\n [uploading]=\"uploading()\"\n [errorMessage]=\"errorMessage()\"\n [hasPreview]=\"hasPreview()\"\n [file]=\"file\"\n [fileInformation]=\"fileInformation()\"\n [retryButtonLabel]=\"retryButtonLabel()\"\n [deleteButtonLabel]=\"deleteButtonLabel()\"\n [previewButtonLabel]=\"previewButtonLabel()\"\n (delete)=\"onDeleteFile($event)\"\n (retry)=\"onRetryFile($event)\"\n (preview)=\"onPreviewFile($event)\"\n />\n }\n </div>\n }\n</div>\n","import { Component, input } from '@angular/core';\nimport { MozLoaderComponent } from '../loader/loader';\n\n@Component({\n selector: 'moz-loading-overlay',\n imports: [MozLoaderComponent],\n templateUrl: './loading-overlay.html',\n styleUrl: './loading-overlay.scss',\n})\nexport class MozLoadingOverlayComponent {\n label = input<string>('Loading...');\n visible = input<boolean>(true);\n}\n","@if (visible()) {\n<div class=\"mc-loading-loader\" [class.is-visible]=\"visible()\">\n <div role=\"dialog\" tabindex=\"-1\" [attr.aria-labelledby]=\"'dialogLabel'\">\n <moz-loader [size]=\"'l'\" [appearance]=\"'inverse'\" [text]=\"label()\">\n </moz-loader>\n </div>\n</div>\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n signal,\n effect,\n computed,\n} from '@angular/core';\nimport { MozOverlayComponent } from '../overlay/overlay';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-modal',\n templateUrl: './modal.html',\n styleUrls: ['./modal.scss'],\n imports: [MozOverlayComponent, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalComponent {\n open = input(false);\n readonly isOpen = signal(this.open());\n\n readonly updateOpen = output<boolean>();\n readonly closeRequest = output<void>();\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.open());\n });\n }\n\n close(): void {\n this.closeRequest.emit();\n this.updateOpen.emit(false);\n }\n\n readonly classMap = computed(() => ({\n 'is-open': this.isOpen(),\n }));\n\n readonly ariaModal = computed(() => (this.isOpen() ? 'true' : 'false'));\n\n noop() {}\n}\n","<moz-overlay\n [isVisible]=\"open()\"\n dialogLabel=\"modalTitle\"\n (backdropClick)=\"close()\"\n (backdropKeydown)=\"close()\"\n>\n <section\n class=\"mc-modal\"\n [ngClass]=\"classMap()\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n [attr.aria-modal]=\"ariaModal()\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!open()\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"noop()\"\n >\n <div class=\"mc-modal__dialog\" role=\"document\">\n <ng-content />\n </div>\n </section>\n</moz-overlay>\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\nimport { MozIconButtonComponent } from '../../icon-button/icon-button';\nimport { Cross24 } from '@mozaic-ds/icons-angular';\n\n@Component({\n selector: 'moz-modal-header',\n imports: [MozIconButtonComponent, Cross24],\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalHeaderComponent {\n readonly title = input<string>('');\n readonly titleId = input<string>('modalTitle');\n readonly closable = input<boolean>(true);\n readonly closeClick = output<void>();\n}\n","<header class=\"mc-modal__header\">\n <span class=\"mc-modal__icon\">\n <ng-content select=\"[icon]\" />\n </span>\n\n <h2 class=\"mc-modal__title\" [id]=\"titleId()\">\n {{ title() }}\n </h2>\n\n @if (closable()) {\n <moz-icon-button\n class=\"mc-modal__close\"\n aria-label=\"Close\"\n [ghost]=\"true\"\n (click)=\"closeClick.emit()\"\n >\n <Cross24 icon aria-hidden=\"true\" />\n </moz-icon-button>\n }\n</header>\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'moz-modal-body',\n templateUrl: './modal-body.component.html',\n styleUrls: ['./modal-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalBodyComponent {}\n","<main class=\"mc-modal__body\">\n <ng-content />\n</main>\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'moz-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalFooterComponent {}\n","<footer class=\"mc-modal__footer\">\n <span class=\"mc-modal__link\">\n <ng-content select=\"[link]\" />\n </span>\n <ng-content />\n</footer>\n","import {\n Component,\n ChangeDetectionStrategy,\n inject,\n TemplateRef,\n Type,\n signal,\n viewChild,\n ElementRef,\n afterNextRender,\n OnDestroy,\n} from '@angular/core';\nimport { DialogRef, DIALOG_DATA } from '@angular/cdk/dialog';\nimport { MozModalConfig } from '../modal.service';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { MozModalComponent } from '../modal';\nimport { MozModalHeaderComponent } from '../header/modal-header.component';\nimport { MozModalBodyComponent } from '../body/modal-body.component';\nimport { MozModalFooterComponent } from '../footer/modal-footer.component';\nimport { MozButtonComponent } from '../../button/button';\nimport { MozLinkComponent } from '../../link/link';\nimport { ExternalLink24 } from '@mozaic-ds/icons-angular';\n\n@Component({\n selector: 'moz-modal-container',\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet,\n MozModalComponent,\n MozModalHeaderComponent,\n MozModalBodyComponent,\n MozModalFooterComponent,\n MozButtonComponent,\n MozLinkComponent,\n ExternalLink24,\n ],\n template: `\n <moz-modal [open]=\"isOpen()\" (closeRequest)=\"close()\" #modalElement>\n @if (data.title) {\n <moz-modal-header\n [title]=\"data.title\"\n [closable]=\"data.closable ?? false\"\n (closeClick)=\"close()\"\n >\n @if (data.icon) {\n <ng-container [ngComponentOutlet]=\"data.icon\" />\n }\n </moz-modal-header>\n } @if (isTemplate(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"asTemplate(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit: data.data }\"\n ></ng-container>\n } @else if (isComponent(data.content)) {\n <ng-container [ngComponentOutlet]=\"asComponent(data.content)\"></ng-container>\n } @else if (data.content) {\n <moz-modal-body>\n <p>{{ data.content }}</p>\n </moz-modal-body>\n } @if (data.footerLink || data.footerButtons) {\n <moz-modal-footer>\n @if (data.footerLink) {\n <moz-link link [href]=\"data.footerLink.href\" [iconPosition]=\"'right'\">\n {{ data.footerLink.label }}\n <ExternalLink24 icon />\n </moz-link>\n } @for (button of data.footerButtons; track button.label) {\n <button moz-button (click)=\"onButtonClick(button)\">{{ button.label }}</button>\n }\n </moz-modal-footer>\n }\n </moz-modal>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalContainerComponent<T = unknown, R = unknown> implements OnDestroy {\n readonly dialogRef = inject<DialogRef<R>>(DialogRef);\n readonly data = inject<MozModalConfig<T>>(DIALOG_DATA);\n readonly isOpen = signal(true);\n readonly modalElement = viewChild<ElementRef<HTMLElement>>('modalElement');\n private pendingClose: R | undefined = undefined;\n private isClosing = false;\n private transitionEndHandler?: (event: TransitionEvent) => void;\n private closeTimeoutId?: ReturnType<typeof setTimeout>;\n\n constructor() {\n afterNextRender(() => {\n const element = this.modalElement()?.nativeElement;\n if (element) {\n this.transitionEndHandler = this.onTransitionEnd.bind(this);\n element.addEventListener('transitionend', this.transitionEndHandler);\n }\n });\n }\n\n ngOnDestroy(): void {\n const element = this.modalElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n }\n }\n\n private onTransitionEnd(event: TransitionEvent): void {\n if (this.isClosing && event.propertyName === 'opacity') {\n this.cleanupAndClose();\n }\n }\n\n private cleanupAndClose(): void {\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n this.closeTimeoutId = undefined;\n }\n const element = this.modalElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n this.dialogRef.close(this.pendingClose);\n }\n\n isTemplate(content: unknown): content is TemplateRef<{ $implicit: T | undefined }> {\n return content instanceof TemplateRef;\n }\n\n isComponent(content: unknown): content is Type<unknown> {\n return typeof content === 'function';\n }\n\n asTemplate(content: unknown): TemplateRef<{ $implicit: T | undefined }> {\n return content as TemplateRef<{ $implicit: T | undefined }>;\n }\n\n asComponent(content: unknown): Type<unknown> {\n return content as Type<unknown>;\n }\n\n onButtonClick(button: { label: string; onClick?: () => void }): void {\n if (button.onClick) {\n button.onClick();\n }\n }\n\n close(result?: R): void {\n if (this.isClosing) {\n return;\n }\n this.isClosing = true;\n this.pendingClose = result;\n this.isOpen.set(false);\n \n // Safety timeout: close after 500ms even if transitionend doesn't fire\n this.closeTimeoutId = setTimeout(() => {\n if (this.isClosing) {\n this.cleanupAndClose();\n }\n }, 500);\n }\n}\n","import { Injectable, inject, TemplateRef, Type, Injector } from '@angular/core';\nimport { Dialog, DialogRef, DialogConfig } from '@angular/cdk/dialog';\nimport { MozModalContainerComponent } from './container/modal-container.component';\nimport { Observable } from 'rxjs';\n\nexport interface MozModalButton {\n label: string;\n onClick?: () => void;\n primary?: boolean;\n}\n\nexport interface MozModalConfig<T = unknown> {\n title?: string;\n closable?: boolean;\n content?: TemplateRef<T> | Type<unknown> | string;\n data?: T;\n panelClass?: string | string[];\n backdropClass?: string | string[];\n disableClose?: boolean;\n ariaLabel?: string;\n ariaDescribedBy?: string;\n icon?: Type<unknown>;\n footerButtons?: MozModalButton[];\n footerLink?: { label: string; href: string };\n}\n\nexport class MozModalRef<R = unknown> {\n private _dialogRef!: DialogRef<R, MozModalContainerComponent>;\n\n setDialogRef(dialogRef: DialogRef<R, MozModalContainerComponent>): void {\n this._dialogRef = dialogRef;\n }\n\n close(result?: R): void {\n this._dialogRef.componentInstance?.close(result);\n }\n\n get afterClosed(): Observable<R | undefined> {\n return this._dialogRef.closed;\n }\n\n get componentInstance(): MozModalContainerComponent | null {\n return this._dialogRef.componentInstance;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MozModalService {\n private readonly dialog = inject(Dialog);\n private readonly injector = inject(Injector);\n\n open<T = unknown, R = unknown>(config: MozModalConfig<T> = {}): MozModalRef<R> {\n const modalRef = new MozModalRef<R>();\n\n const customInjector = Injector.create({\n parent: this.injector,\n providers: [{ provide: MozModalRef, useValue: modalRef }],\n });\n\n const dialogConfig: DialogConfig<\n MozModalConfig<T>,\n DialogRef<R, MozModalContainerComponent>\n > = {\n data: config,\n injector: customInjector,\n panelClass: [\n ...(Array.isArray(config.panelClass)\n ? config.panelClass\n : config.panelClass\n ? [config.panelClass]\n : []),\n ],\n backdropClass: [\n ...(Array.isArray(config.backdropClass)\n ? config.backdropClass\n : config.backdropClass\n ? [config.backdropClass]\n : []),\n ],\n disableClose: config.disableClose ?? !config.closable,\n ariaLabel: config.ariaLabel || config.title,\n ariaDescribedBy: config.ariaDescribedBy,\n hasBackdrop: false,\n closeOnNavigation: true,\n closeOnDestroy: true,\n };\n\n const dialogRef = this.dialog.open<R, MozModalConfig<T>, MozModalContainerComponent>(\n MozModalContainerComponent,\n dialogConfig\n );\n\n modalRef.setDialogRef(dialogRef);\n\n return modalRef;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozNumberBadgeAppearance = 'danger' | 'accent' | 'inverse' | 'standard';\nexport type MozNumberBadgeSize = 's' | 'm';\n\n@Component({\n selector: 'moz-number-badge',\n imports: [NgClass],\n templateUrl: './number-badge.html',\n styleUrls: ['./number-badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozNumberBadgeComponent {\n label = input<number>(0);\n appearance = input<MozNumberBadgeAppearance>('standard');\n size = input<MozNumberBadgeSize>('s');\n\n readonly classes = computed(() => {\n return {\n [`mc-number-badge--${this.appearance()}`]: this.appearance(),\n [`mc-number-badge--${this.size()}`]: this.size(),\n };\n });\n}\n","<span class=\"mc-number-badge\" [ngClass]=\"classes()\"> {{ label() }} </span>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type MozSelectValue = string | number | null;\n\nexport type MozSelectOption = {\n id?: string;\n text: string;\n value: string | number;\n attributes?: Record<string, string | boolean | number>;\n disabled?: boolean;\n};\n\nexport type MozSelectSize = 's' | 'm';\n\n@Component({\n selector: 'moz-select',\n templateUrl: './select.html',\n styleUrls: ['./select.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozSelectComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozSelectComponent implements ControlValueAccessor {\n id = input<string>();\n name = input.required<string>();\n options = input<MozSelectOption[]>();\n placeholder = input<string>();\n isInvalid = input<boolean>(false);\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n size = input<MozSelectSize>('m');\n\n _value = signal<MozSelectValue>(null);\n\n onChange: (value: MozSelectValue) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: MozSelectValue): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: MozSelectValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n handleChange(event: Event) {\n const target = event.target as HTMLSelectElement;\n const value = target.value;\n this._value.set(value);\n this.onChange(value);\n }\n\n readonly classes = computed(() => {\n return {\n [`mc-select--${this.size()}`]: this.size(),\n 'mc-select--readonly': this.readonly(),\n 'is-invalid': this.isInvalid(),\n };\n });\n}\n","<select\n class=\"mc-select\"\n [id]=\"id()\"\n [ngClass]=\"classes()\"\n [name]=\"name()\"\n [disabled]=\"disabled() || readonly()\"\n (change)=\"handleChange($event)\"\n>\n <option value=\"\" [selected]=\"!_value()\" disabled>\n {{ placeholder() || 'Select an option' }}\n </option>\n @for (option of options(); track $index) {\n <option\n [value]=\"option.value\"\n [selected]=\"_value() === option.value\"\n [disabled]=\"option.disabled\"\n [attr.data-id]=\"option.id\"\n [attr.*]=\"option.attributes\"\n >\n {{ option.text }}\n </option>\n }\n</select>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MozSelectComponent } from '../select/select';\nimport { ChevronLeft24, ChevronRight24 } from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\n@Component({\n selector: 'moz-pagination',\n imports: [MozIconButtonComponent, MozSelectComponent, ChevronLeft24, ChevronRight24, FormsModule],\n templateUrl: './pagination.html',\n styleUrls: ['./pagination.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozPaginationComponent {\n readonly id = input.required<string>();\n readonly compact = input<boolean>(false);\n readonly options = input.required<{ text: string; value: number }[]>();\n readonly selectLabel = input<string>('Select page');\n\n readonly value = input<number>();\n readonly updateValue = output<number>();\n\n readonly _currentValue = linkedSignal(this.value);\n\n readonly currentIndex = computed(\n () => this.options()?.findIndex((opt) => opt.value === this._currentValue()) ?? 0\n );\n\n readonly isFirstPage = computed(() => this.currentIndex() === 0);\n readonly isLastPage = computed(() => this.currentIndex() === this.options().length - 1);\n\n readonly currentPageText = computed(\n () => this.options().find((option) => option.value === this._currentValue())?.text || ''\n );\n\n previous(): void {\n const currentIndex = this.currentIndex();\n if (currentIndex > 0) {\n const newValue = this.options()[currentIndex - 1].value;\n this._currentValue.set(newValue);\n this.updateValue.emit(newValue);\n }\n }\n\n next(): void {\n const currentIndex = this.currentIndex();\n if (currentIndex < this.options().length - 1) {\n const newValue = this.options()[currentIndex + 1].value;\n this._currentValue.set(newValue);\n this.updateValue.emit(newValue);\n }\n }\n\n onSelectChange(value: string): void {\n this._currentValue.set(+value);\n this.updateValue.emit(+value);\n }\n}\n","<nav class=\"mc-pagination\" role=\"navigation\">\n @if (!compact()) {\n <button\n moz-button\n iconPosition=\"only\"\n aria-label=\"Previous page\"\n [disabled]=\"isFirstPage()\"\n (click)=\"previous()\"\n >\n <ng-template #icon>\n <ChevronLeft24 />\n </ng-template>\n </button>\n } @else {\n <moz-icon-button aria-label=\"Previous page\" [disabled]=\"isFirstPage()\" (click)=\"previous()\">\n <ChevronLeft24 icon />\n </moz-icon-button>\n } @if (!compact()) {\n <div class=\"mc-pagination__field\">\n <moz-select\n class=\"mc-pagination__select\"\n [id]=\"id()\"\n [name]=\"id()\"\n [options]=\"options()\"\n [ngModel]=\"_currentValue()\"\n (ngModelChange)=\"onSelectChange($event)\"\n [ariaLabel]=\"selectLabel()\"\n />\n </div>\n } @else {\n <span class=\"mc-pagination__label\" aria-current=\"page\">\n {{ currentPageText() }}\n </span>\n } @if (!compact()) {\n <button\n moz-button\n iconPosition=\"only\"\n aria-label=\"Next page\"\n [disabled]=\"isLastPage()\"\n (click)=\"next()\"\n >\n <ng-template #icon>\n <ChevronRight24 />\n </ng-template>\n </button>\n } @else {\n <moz-icon-button aria-label=\"Next page\" [disabled]=\"isLastPage()\" (click)=\"next()\">\n <ChevronRight24 icon />\n </moz-icon-button>\n }\n</nav>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n createComponent,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n inject,\n input,\n OnDestroy,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircleFilled24 } from '@mozaic-ds/icons-angular';\n\n/**\n * Directive that transforms a simple input into a styled password input with toggle visibility and clearable button.\n * Wraps the input element in a container and adds additional elements as needed.\n */\n@Component({\n selector: 'input[moz-password-input]',\n template: '',\n styleUrls: ['./password-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozPasswordInputDirective),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"mc-password-input__control mc-text-input__control\"',\n '[attr.aria-invalid]': 'isInvalid()',\n '[attr.aria-valuetext]': 'getValue()',\n '[type]': 'inputType()',\n '(input)': 'onInput($event)',\n '(blur)': 'onTouched()',\n '[disabled]': 'disabled()',\n },\n})\nexport class MozPasswordInputDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly clearable = input<boolean>(false);\n readonly clearLabel = input<string>('Clear content');\n readonly buttonLabel = input<{ show: string; hide: string }>({\n show: 'Show',\n hide: 'Hide',\n });\n\n private wrapper: HTMLElement | null = null;\n private clearButton: HTMLElement | null = null;\n private toggleButton: HTMLElement | null = null;\n private clearIconComponentRef: ComponentRef<CrossCircleFilled24> | null = null;\n private environmentInjector = inject(EnvironmentInjector);\n protected _value = signal<string>('');\n private _isVisible = signal(false);\n\n readonly inputType = computed(() => (this._isVisible() ? 'text' : 'password'));\n readonly ariaChecked = computed(() => (this._isVisible() ? 'true' : 'false'));\n readonly isClearable = computed(() => this.clearable() && this._value().length > 0);\n\n /** Get the current value of the input */\n getValue(): string {\n return this._value();\n }\n\n onChange: (value: string) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n constructor(private elementRef: ElementRef<HTMLInputElement>, private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.wrapInput();\n }\n\n ngOnDestroy(): void {\n if (this.clearIconComponentRef) {\n this.clearIconComponentRef.destroy();\n }\n }\n\n private wrapInput(): void {\n const input = this.elementRef.nativeElement;\n const parent = input.parentElement;\n\n if (!parent) return;\n\n // Create wrapper div\n this.wrapper = this.renderer.createElement('div');\n this.renderer.addClass(this.wrapper, 'mc-password-input');\n this.renderer.addClass(this.wrapper, 'mc-text-input');\n\n if (this.isInvalid()) {\n this.renderer.addClass(this.wrapper, 'is-invalid');\n }\n\n // Insert wrapper before input\n this.renderer.insertBefore(parent, this.wrapper, input);\n\n // Move input into wrapper\n this.renderer.appendChild(this.wrapper, input);\n\n // Add clearable button if needed\n if (this.clearable()) {\n this.createClearButton();\n }\n\n // Add toggle visibility button\n this.createToggleButton();\n }\n\n private createClearButton(): void {\n if (!this.wrapper) return;\n\n this.clearButton = this.renderer.createElement('button');\n this.renderer.setAttribute(this.clearButton, 'type', 'button');\n this.renderer.addClass(this.clearButton, 'mc-controls-options__button');\n this.renderer.listen(this.clearButton, 'click', () => this.clearValue());\n\n // Create icon component dynamically\n this.clearIconComponentRef = createComponent(CrossCircleFilled24, {\n environmentInjector: this.environmentInjector,\n });\n\n const iconElement = this.clearIconComponentRef.location.nativeElement;\n this.renderer.addClass(iconElement, 'mc-controls-options__icon');\n this.renderer.setAttribute(iconElement, 'aria-hidden', 'true');\n\n const label = this.renderer.createElement('span');\n this.renderer.addClass(label, 'mc-controls-options__label');\n this.renderer.setProperty(label, 'textContent', this.clearLabel());\n\n this.renderer.appendChild(this.clearButton, iconElement);\n this.renderer.appendChild(this.clearButton, label);\n this.renderer.appendChild(this.wrapper, this.clearButton);\n\n // Initially hide if no value\n this.updateClearButtonVisibility();\n }\n\n private createToggleButton(): void {\n if (!this.wrapper) return;\n\n // Create button element with manual CSS classes\n this.toggleButton = this.renderer.createElement('button');\n this.renderer.setAttribute(this.toggleButton, 'type', 'button');\n this.renderer.setAttribute(this.toggleButton, 'role', 'switch');\n this.renderer.addClass(this.toggleButton, 'mc-button');\n this.renderer.addClass(this.toggleButton, 'mc-button--s');\n this.renderer.addClass(this.toggleButton, 'mc-button--ghost');\n\n // Add click listener\n this.renderer.listen(this.toggleButton, 'click', () => this.toggleVisibility());\n\n // Set initial button text and aria-checked\n this.updateToggleButtonText(this.toggleButton || undefined);\n\n this.renderer.appendChild(this.wrapper, this.toggleButton);\n }\n\n private updateClearButtonVisibility(): void {\n if (!this.clearButton || !this.clearable()) return;\n\n if (this.isClearable()) {\n this.renderer.setStyle(this.clearButton, 'display', 'block');\n } else {\n this.renderer.setStyle(this.clearButton, 'display', 'none');\n }\n }\n\n private updateToggleButtonText(buttonElement?: HTMLElement): void {\n const button = buttonElement || this.toggleButton;\n if (!button) return;\n\n const text = this._isVisible() ? this.buttonLabel().hide : this.buttonLabel().show;\n this.renderer.setProperty(button, 'textContent', text);\n this.renderer.setAttribute(button, 'aria-checked', this.ariaChecked());\n }\n\n clearValue(): void {\n this._value.set('');\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\n this.onChange('');\n this.onTouched();\n this.updateClearButtonVisibility();\n }\n\n toggleVisibility(): void {\n this._isVisible.update((v) => !v);\n this.updateToggleButtonText();\n }\n\n onInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this._value.set(value);\n this.onChange(value);\n this.updateClearButtonVisibility();\n }\n\n writeValue(value: string): void {\n const normalizedValue = value ?? '';\n this._value.set(normalizedValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\n this.updateClearButtonVisibility();\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n Component,\n forwardRef,\n ElementRef,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n NgZone,\n signal,\n WritableSignal,\n input,\n inject,\n computed,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'moz-pincode',\n templateUrl: './pincode.html',\n styleUrls: ['./pincode.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozPincodeInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass],\n})\nexport class MozPincodeInputComponent implements OnInit, ControlValueAccessor {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly ngZone = inject(NgZone);\n\n id = input.required<string>();\n length = input<4 | 5 | 6>(6);\n name = input<string | undefined>(undefined);\n isInvalid = input<boolean>(false);\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n otp: WritableSignal<string[]> = signal([]);\n\n inputRefs = viewChildren<ElementRef<HTMLInputElement>>('pincodeItem');\n\n private _value = '';\n\n public onChange: (value: string) => void = () => void 0;\n public onTouched: () => void = () => void 0;\n\n readonly classObject = computed(() => ({\n 'is-invalid': this.isInvalid(),\n }));\n\n ngOnInit(): void {\n this.otp.set(Array(this.length()).fill(''));\n if (this._value) {\n this.writeValue(this._value);\n }\n }\n\n writeValue(value: string): void {\n this._value = String(value ?? '');\n const newOtp = Array.from({ length: this.length() }, (_, i) => this._value[i] ?? '');\n this.otp.set(newOtp);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n private focusInput(index: number): void {\n const refs = this.inputRefs();\n if (refs && refs.length > index && index >= 0) {\n this.ngZone.runOutsideAngular(() => {\n refs[index]?.nativeElement.focus();\n });\n }\n }\n\n onInput(event: Event, index: number): void {\n this.ngZone.runOutsideAngular(() => {\n const inputElement = event.target as HTMLInputElement;\n const val = inputElement.value.replace(/\\D/g, '');\n\n this.otp.update((currentOtp) => {\n const newOtp = [...currentOtp];\n newOtp[index] = val ? val[0] : '';\n return newOtp;\n });\n\n inputElement.value = this.otp()[index];\n\n const newValue = this.otp().join('');\n this._value = newValue;\n this.onChange(newValue);\n if (val && index + 1 < this.length()) {\n this.focusInput(index + 1);\n }\n this.onTouched();\n this.cdr.detectChanges();\n });\n }\n\n onKeyDown(event: KeyboardEvent, index: number): void {\n this.ngZone.runOutsideAngular(() => {\n if (event.key === 'ArrowLeft' && index > 0) {\n this.focusInput(index - 1);\n } else if (event.key === 'ArrowRight' && index < this.length() - 1) {\n this.focusInput(index + 1);\n } else if (event.key === 'Backspace') {\n this.onBackspace(event, index);\n }\n this.onTouched();\n });\n }\n\n onBackspace(event: KeyboardEvent, index: number): void {\n this.ngZone.runOutsideAngular(() => {\n if (!this.otp()[index] && index > 0) {\n event.preventDefault();\n\n this.otp.update((currentOtp) => {\n const newOtp = [...currentOtp];\n newOtp[index - 1] = '';\n return newOtp;\n });\n\n const newValue = this.otp().join('');\n this._value = newValue;\n this.onChange(newValue);\n this.focusInput(index - 1);\n this.cdr.detectChanges();\n }\n });\n }\n\n onPaste(event: ClipboardEvent): void {\n this.ngZone.runOutsideAngular(() => {\n event.preventDefault();\n const pasted = event.clipboardData?.getData('text') ?? '';\n const digits = pasted.replace(/\\D/g, '').slice(0, this.length()).split('');\n\n this.otp.set(Array.from({ length: this.length() }, (_, i) => digits[i] ?? ''));\n\n const newValue = this.otp().join('');\n this._value = newValue;\n this.onChange(newValue);\n this.focusInput(Math.min(digits.length - 1, this.length() - 1));\n this.onTouched();\n this.cdr.detectChanges();\n });\n }\n}\n","<div\n class=\"mc-pincode-input\"\n [ngClass]=\"classObject()\"\n (paste)=\"onPaste($event)\"\n>\n @for (digit of otp(); track $index) {\n <input\n #pincodeItem\n [id]=\"'pincodeItem' + $index\"\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n pattern=\"\\d*\"\n autocomplete=\"one-time-code\"\n [name]=\"name()\"\n class=\"mc-pincode-input__control\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [value]=\"digit\"\n (input)=\"onInput($event, $index)\"\n (keydown)=\"onKeyDown($event, $index)\"\n (blur)=\"onTouched()\"\n />\n }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Less24, More24 } from '@mozaic-ds/icons-angular';\n\nexport type MozQuantitySelectorSize = 's' | 'm';\n\n@Component({\n selector: 'moz-quantity-selector',\n imports: [More24, Less24, NgClass],\n templateUrl: './quantity-selector.html',\n styleUrls: ['./quantity-selector.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozQuantitySelectorComponent),\n multi: true,\n },\n ],\n})\nexport class MozQuantitySelectorComponent implements ControlValueAccessor {\n readonly id = input.required<string>();\n readonly name = input<string>('quantity-selector-input');\n readonly size = input<MozQuantitySelectorSize>('m');\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly min = input<number>(1);\n readonly max = input<number>(100);\n readonly step = input<number>(1);\n readonly incrementLabel = input<string>('Increment');\n readonly decrementLabel = input<string>('Decrement');\n\n readonly _value = signal<number>(1);\n\n readonly classes = computed(() => ({\n [`mc-quantity-selector--${this.size()}`]: this.size(),\n 'is-invalid': this.isInvalid(),\n }));\n\n private onChange: (value: number) => void = () => void 0;\n private onTouched: () => void = () => void 0;\n\n writeValue(value: number): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChangeInput(event: Event): void {\n let value = Number((event.target as HTMLInputElement).value);\n\n value = Math.max(this.min(), Math.min(this.max(), value));\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n increment(): void {\n const value = Math.min(this.max(), this._value() + this.step());\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n decrement(): void {\n const value = Math.max(this.min(), this._value() - this.step());\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n}\n","<div class=\"mc-quantity-selector\" [ngClass]=\"classes()\">\n <input\n class=\"mc-quantity-selector__control\"\n type=\"number\"\n [id]=\"id()\"\n [name]=\"name()\"\n [disabled]=\"disabled()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"_value()\"\n [value]=\"_value()\"\n (change)=\"onChangeInput($event)\"\n />\n\n @if (!readonly()) {\n <button\n type=\"button\"\n [attr.aria-controls]=\"id()\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--increase\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || _value() === max()\"\n (click)=\"increment()\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <More24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ incrementLabel() }}</span>\n </button>\n\n <button\n type=\"button\"\n [attr.aria-controls]=\"id()\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--decrease\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || _value() === min()\"\n (click)=\"decrement()\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <Less24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ decrementLabel() }}</span>\n </button>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-radio',\n templateUrl: './radio.html',\n styleUrls: ['./radio.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozRadioComponent),\n multi: true,\n },\n ],\n imports: [NgClass],\n})\nexport class MozRadioComponent implements ControlValueAccessor {\n id = input.required<string>();\n name = input<string | undefined>();\n label = input<string | undefined>();\n isInvalid = input<boolean>(false);\n disabled = input<boolean>(false);\n\n _value = signal<boolean>(false);\n\n onChange: (_: boolean) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n handleChange(event: Event): void {\n const isChecked = (event.target as HTMLInputElement).checked;\n this._value.set(isChecked);\n this.onChange(isChecked);\n this.onTouched();\n }\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly classes = computed(() => {\n return {\n 'is-invalid': this.isInvalid(),\n };\n });\n}\n","<div class=\"mc-radio\">\n <input\n class=\"mc-radio__input\"\n [ngClass]=\"classes()\"\n [id]=\"id()\"\n [type]=\"'radio'\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"isInvalid()\"\n (change)=\"handleChange($event)\"\n />\n @if (label()) {\n <label class=\"mc-radio__label\" [for]=\"id()\"> {{ label() }} </label>\n }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MozRadioComponent } from '../radio/radio';\n\n@Component({\n selector: 'moz-radio-group',\n templateUrl: './radio-group.html',\n styleUrls: ['./radio-group.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozRadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozRadioComponent, FormsModule, NgClass],\n})\nexport class MozRadioGroupComponent implements ControlValueAccessor {\n name = input.required<string>();\n options = input<{ id: string; label: string; value: string; disabled?: boolean }[]>([]);\n isInvalid = input(false);\n inline = input(false);\n\n _value = signal<string | null>(null);\n\n onChange: (value: string) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: string): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n select(value: string) {\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n readonly classes = computed(() => {\n return {\n 'mc-field__content--inline': this.inline(),\n };\n });\n}\n","<fieldset class=\"mc-field mc-field--group\">\n <div class=\"mc-field__content\" [ngClass]=\"classes()\">\n @for (option of options(); track $index) {\n <moz-radio\n [id]=\"option.id\"\n [label]=\"option.label\"\n [name]=\"name()\"\n [ngModel]=\"_value() === option.value\"\n [disabled]=\"option.disabled ?? false\"\n [isInvalid]=\"isInvalid()\"\n (change)=\"select(option.value)\"\n ></moz-radio>\n }\n </div>\n</fieldset>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozStatusDotStatus = 'info' | 'success' | 'warning' | 'error' | 'neutral';\nexport type MozStatusDotSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-status-dot',\n imports: [NgClass],\n templateUrl: './status-dot.html',\n styleUrls: ['./status-dot.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozStatusDotComponent {\n status = input<MozStatusDotStatus>('info');\n size = input<MozStatusDotSize>('m');\n\n readonly classes = computed(() => {\n return {\n [`mc-status-dot--${this.status()}`]: this.status(),\n [`mc-status-dot--${this.size()}`]: this.size(),\n };\n });\n}\n","<span class=\"mc-status-dot\" [ngClass]=\"classes()\"></span>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MozStatusDotComponent } from '../status-dot/status-dot';\n\nexport type MozStatusBadgeStatus = 'info' | 'success' | 'warning' | 'error' | 'neutral';\n\n@Component({\n selector: 'moz-status-badge',\n imports: [NgClass, MozStatusDotComponent],\n templateUrl: './status-badge.html',\n styleUrls: ['./status-badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozStatusBadgeComponent {\n label = input<string>();\n status = input<MozStatusBadgeStatus>('info');\n\n readonly classes = computed(() => {\n return {\n [`mc-status-badge--${this.status()}`]: this.status(),\n };\n });\n}\n","<div class=\"mc-status-badge\" [ngClass]=\"classes()\">\n <moz-status-dot [status]=\"status()\" />\n <span class=\"mc-status-badge__label\">{{ label() }}</span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n output,\n TemplateRef,\n} from '@angular/core';\n\nimport { NgClass, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n CheckCircle32,\n Cross20,\n CrossCircle32,\n InfoCircle32,\n WarningCircle32,\n} from '@mozaic-ds/icons-angular';\n\nexport type MozStatusNotificationStatus = 'info' | 'success' | 'warning' | 'error';\n\n@Component({\n selector: 'moz-status-notification',\n templateUrl: './status-notification.html',\n styleUrls: ['./status-notification.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, Cross20, NgComponentOutlet, NgTemplateOutlet],\n})\nexport class MozStatusNotificationComponent {\n title = input.required<string>();\n description = input.required<string>();\n status = input<MozStatusNotificationStatus>('info');\n closable = input<boolean>(false);\n closed = output<void>();\n footerTpl = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n readonly classes = computed(() => ({\n [`mc-status-notification--${this.status()}`]: this.status(),\n }));\n\n readonly iconComponent = computed(() => {\n switch (this.status()) {\n case 'success':\n return CheckCircle32;\n case 'warning':\n return WarningCircle32;\n case 'error':\n return CrossCircle32;\n default:\n return InfoCircle32;\n }\n });\n\n onCloseClick(): void {\n this.closed.emit();\n }\n}\n","<section class=\"mc-status-notification\" role=\"status\" [ngClass]=\"classes()\">\n <div class=\"mc-status-notification__icon\">\n <ng-container [ngComponentOutlet]=\"iconComponent()\" />\n </div>\n\n <div class=\"mc-status-notification__content\">\n <h2 class=\"mc-status-notification__title\">{{ title() }}</h2>\n <p class=\"mc-status-notification__message\">{{ description() }}</p>\n\n @if (footerTpl()) {\n <div class=\"mc-status-notification__footer\">\n <ng-container [ngTemplateOutlet]=\"footerTpl()\" />\n </div>\n }\n </div>\n\n @if (closable()) {\n <button\n class=\"mc-status-notification-closable__close mc-button mc-button--s mc-button--icon-button mc-button--ghost\"\n type=\"button\"\n (click)=\"onCloseClick()\"\n >\n <Cross20 class=\"mc-button__icon\" aria-hidden=\"true\" />\n </button>\n }\n</section>\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n Type,\n computed,\n input,\n model,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { MozDividerComponent } from '../divider/divider';\n\nexport interface MozTabItem {\n label: string;\n icon?: Type<unknown>;\n disabled?: boolean;\n routerLink?: string;\n}\n\n@Component({\n selector: 'moz-tabs',\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.scss'],\n imports: [NgComponentOutlet, NgClass, RouterModule, MozDividerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozTabsComponent {\n tabs = input.required<MozTabItem[]>();\n description = input<string | undefined>();\n divider = input(true);\n centered = input(false);\n selectedIndex = model<number>(0);\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n readonly classes = computed(() => ({\n 'mc-tabs--centered': this.centered(),\n }));\n\n isTabSelected = (index: number): boolean => index === this.selectedIndex();\n\n getTabClasses(index: number) {\n return computed(() => {\n const tab = this.tabs()[index];\n return {\n 'mc-tabs__tab--selected': this.isTabSelected(index),\n 'mc-tabs__tab--disabled': !!tab?.disabled,\n };\n });\n }\n\n onClickTab(index: number): void {\n const tab = this.tabs()[index];\n if (!tab || tab.disabled) return;\n if (index !== this.selectedIndex()) {\n this.selectedIndexChange.emit(index);\n this.selectedIndex.set(index);\n }\n }\n}\n","<nav class=\"mc-tabs\" [ngClass]=\"classes()\" aria-label=\"Tabs\">\n <ul class=\"mc-tabs__list\" role=\"tablist\" [attr.aria-label]=\"description()\">\n @for (tab of tabs(); let index = $index; track index) {\n <li class=\"mc-tabs__item\" role=\"presentation\">\n @if (tab.routerLink) {\n <button\n type=\"button\"\n role=\"tab\"\n class=\"mc-tabs__tab\"\n [ngClass]=\"getTabClasses(index)()\"\n [routerLink]=\"tab.routerLink\"\n [attr.aria-selected]=\"isTabSelected(index)\"\n (click)=\"onClickTab(index)\"\n >\n @if (tab.icon) {\n <span class=\"mc-tabs__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"tab.icon\"></ng-container>\n </span>\n }\n <div class=\"mc-tabs__label\">\n <span>{{ tab.label }}</span>\n </div>\n </button>\n } @else {\n <button\n type=\"button\"\n role=\"tab\"\n class=\"mc-tabs__tab\"\n [ngClass]=\"getTabClasses(index)()\"\n [attr.aria-selected]=\"isTabSelected(index)\"\n (click)=\"onClickTab(index)\"\n >\n @if (tab.icon) {\n <span class=\"mc-tabs__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"tab.icon\"></ng-container>\n </span>\n }\n <div class=\"mc-tabs__label\">\n <span>{{ tab.label }}</span>\n </div>\n </button>\n }\n </li>\n }\n </ul>\n\n @if (divider()) {\n <moz-divider></moz-divider>\n }\n</nav>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircleFilled24 } from '@mozaic-ds/icons-angular';\nimport { MozNumberBadgeComponent } from '../number-badge/number-badge';\n\nexport type MozTagType =\n | 'informative'\n | 'interactive'\n | 'contextualised'\n | 'removable'\n | 'selectable';\nexport type MozTagSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-tag',\n imports: [CrossCircleFilled24, MozNumberBadgeComponent],\n templateUrl: './tag.html',\n styleUrls: ['./tag.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTagComponent),\n multi: true,\n },\n ],\n})\nexport class MozTagComponent implements ControlValueAccessor {\n readonly type = input<MozTagType>('informative');\n readonly size = input<MozTagSize>('m');\n readonly id = input.required<string>();\n readonly name = input<string>();\n readonly label = input.required<string>();\n readonly disabled = input<boolean>(false);\n readonly contextualisedNumber = input<number>(99);\n readonly removableLabel = input<string>('Remove');\n\n readonly _value = signal<boolean>(true);\n\n readonly removeTag = output<string>();\n\n readonly classes = computed(() => ({\n [`mc-tag-${this.type()}`]: this.type(),\n [`mc-tag--${this.size()}`]: this.size(),\n }));\n\n private onChange: (value: boolean) => void = () => void 0;\n private onTouched: () => void = () => void 0;\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onCheckboxChange(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n this._value.set(checked);\n this.onChange(checked);\n this.onTouched();\n }\n\n onRemove(): void {\n this.removeTag.emit(this.id());\n }\n}\n","<!-- Selectable -->\n@if (type() === 'selectable') {\n<label class=\"mc-tag\" [class]=\"classes()\" [attr.for]=\"id()\">\n <input\n type=\"checkbox\"\n class=\"mc-tag__input\"\n [id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [disabled]=\"disabled()\"\n (change)=\"onCheckboxChange($event)\"\n />\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</label>\n}\n<!-- Interactive -->\n@if (type() === 'interactive') {\n<button\n type=\"button\"\n class=\"mc-tag\"\n [class]=\"classes()\"\n [disabled]=\"disabled()\"\n>\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</button>\n}\n<!-- Contextualised -->\n@if (type() === 'contextualised') {\n<button\n type=\"button\"\n class=\"mc-tag\"\n [class]=\"classes()\"\n [disabled]=\"disabled()\"\n>\n <moz-number-badge\n appearance=\"inverse\"\n [label]=\"contextualisedNumber()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</button>\n}\n<!-- Removable -->\n@if (type() === 'removable') {\n<span class=\"mc-tag\" [class]=\"classes()\">\n <span class=\"mc-tag__label\">{{ label() }}</span>\n <button class=\"mc-tag-removable__remove\" type=\"button\" (click)=\"onRemove()\">\n <CrossCircleFilled24\n class=\"mc-tag-removable__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-tag-removable__text\">{{ removableLabel() }}</span>\n </button>\n</span>\n}\n<!-- Informative -->\n@if (type() === 'informative') {\n<span class=\"mc-tag\" [class]=\"classes()\">\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</span>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n input,\n OnDestroy,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Directive that transforms a simple textarea into a styled textarea.\n * Applies Mozaic Design System styles to native textarea elements.\n */\n@Component({\n selector: 'textarea[moz-text-area]',\n template: '',\n styleUrls: ['./text-area.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTextareaDirective),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.mc-textarea]': 'true',\n '[class.is-invalid]': 'isInvalid()',\n '[class.is-disabled]': 'disabled()',\n '[attr.aria-invalid]': 'isInvalid()',\n '[disabled]': 'disabled()',\n '(input)': 'handleInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class MozTextareaDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly rows = input<number>(2);\n readonly minLength = input<number | undefined>();\n readonly maxLength = input<number | undefined>();\n\n private _value = signal<string>('');\n\n onChange: (value: string) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n constructor(private elementRef: ElementRef<HTMLTextAreaElement>, private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.applyAttributes();\n }\n\n ngOnDestroy(): void {\n // Cleanup if needed\n }\n\n private applyAttributes(): void {\n const textarea = this.elementRef.nativeElement;\n\n if (this.rows()) {\n this.renderer.setAttribute(textarea, 'rows', String(this.rows()));\n }\n\n if (this.minLength() !== undefined) {\n this.renderer.setAttribute(textarea, 'minlength', String(this.minLength()));\n }\n\n if (this.maxLength() !== undefined) {\n this.renderer.setAttribute(textarea, 'maxlength', String(this.maxLength()));\n }\n }\n\n handleInput(event: Event): void {\n const value = (event.target as HTMLTextAreaElement).value;\n this._value.set(value);\n this.onChange(value);\n }\n\n writeValue(value: string): void {\n const normalizedValue = value ?? '';\n this._value.set(normalizedValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n createComponent,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n inject,\n input,\n OnDestroy,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircleFilled24 } from '@mozaic-ds/icons-angular';\n\nexport type MozTextInputSize = 's' | 'm';\n/**\n * Directive that transforms a simple input into a styled text input with optional icon and clearable button.\n * Wraps the input element in a container and adds additional elements as needed.\n */\n@Component({\n selector: 'input[moz-text-input]',\n template: '',\n styleUrls: ['./text-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTextInputDirective),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"mc-text-input__control\"',\n '[attr.aria-invalid]': 'isInvalid()',\n '[disabled]': 'disabled()',\n '(input)': 'onInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class MozTextInputDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly size = input<MozTextInputSize>('m');\n readonly clearable = input<boolean>(false);\n readonly clearLabel = input<string>('Clear content');\n\n private wrapper: HTMLElement | null = null;\n private clearButton: HTMLElement | null = null;\n private iconContainer: HTMLElement | null = null;\n private iconComponentRef: ComponentRef<CrossCircleFilled24> | null = null;\n private _value = signal<string>('');\n\n readonly isClearable = computed(() => this.clearable() && this._value());\n\n private environmentInjector = inject(EnvironmentInjector);\n\n constructor(private elementRef: ElementRef<HTMLInputElement>, private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.wrapInput();\n }\n\n ngOnDestroy(): void {\n if (this.iconComponentRef) {\n this.iconComponentRef.destroy();\n }\n }\n\n private wrapInput(): void {\n const input = this.elementRef.nativeElement;\n const parent = input.parentElement;\n\n if (!parent) return;\n\n // Create wrapper div\n this.wrapper = this.renderer.createElement('div');\n this.renderer.addClass(this.wrapper, 'mc-text-input');\n\n if (this.size()) {\n this.renderer.addClass(this.wrapper, `mc-text-input--${this.size()}`);\n }\n if (this.isInvalid()) {\n this.renderer.addClass(this.wrapper, 'is-invalid');\n }\n\n // Insert wrapper before input\n this.renderer.insertBefore(parent, this.wrapper, input);\n\n // Check for icon element (sibling with attribute [icon])\n const iconElement = this.findIconElement(parent);\n if (iconElement) {\n this.createIconContainer(iconElement);\n }\n\n // Move input into wrapper\n this.renderer.appendChild(this.wrapper, input);\n\n // Add clearable button if needed\n if (this.clearable()) {\n this.createClearButton();\n }\n }\n\n private findIconElement(parent: HTMLElement): Element | null {\n // Look for an element with [icon] attribute as sibling of input\n const children = Array.from(parent.children);\n return children.find((child) => child.hasAttribute('icon')) || null;\n }\n\n private createIconContainer(iconElement: Element): void {\n if (!this.wrapper) return;\n\n this.iconContainer = this.renderer.createElement('div');\n this.renderer.addClass(this.iconContainer, 'mc-text-input__icon');\n\n // Move the icon element into the icon container\n this.renderer.appendChild(this.iconContainer, iconElement);\n\n // Add icon container to wrapper\n this.renderer.appendChild(this.wrapper, this.iconContainer);\n }\n\n private createClearButton(): void {\n if (!this.wrapper) return;\n\n const controlsDiv = this.renderer.createElement('div');\n this.renderer.addClass(controlsDiv, 'mc-controls-options');\n\n this.clearButton = this.renderer.createElement('button');\n this.renderer.setAttribute(this.clearButton, 'type', 'button');\n this.renderer.addClass(this.clearButton, 'mc-controls-options__button');\n this.renderer.listen(this.clearButton, 'click', () => this.clearValue());\n\n // Create icon component dynamically\n this.iconComponentRef = createComponent(CrossCircleFilled24, {\n environmentInjector: this.environmentInjector,\n });\n\n const iconElement = this.iconComponentRef.location.nativeElement;\n this.renderer.addClass(iconElement, 'mc-controls-options__icon');\n this.renderer.setAttribute(iconElement, 'aria-hidden', 'true');\n\n const label = this.renderer.createElement('span');\n this.renderer.addClass(label, 'mc-controls-options__label');\n this.renderer.setProperty(label, 'textContent', this.clearLabel());\n\n this.renderer.appendChild(this.clearButton, iconElement);\n this.renderer.appendChild(this.clearButton, label);\n this.renderer.appendChild(controlsDiv, this.clearButton);\n this.renderer.appendChild(this.wrapper, controlsDiv);\n\n // Initially hide if no value\n this.updateClearButtonVisibility();\n }\n\n private updateClearButtonVisibility(): void {\n if (!this.clearButton || !this.clearable()) return;\n\n const parent = this.clearButton.parentElement;\n if (parent) {\n if (this.isClearable()) {\n this.renderer.setStyle(parent, 'display', 'block');\n } else {\n this.renderer.setStyle(parent, 'display', 'none');\n }\n }\n }\n\n clearValue(): void {\n this._value.set('');\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\n this.onChange('');\n this.onTouched();\n this.updateClearButtonVisibility();\n }\n\n onInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this._value.set(value);\n this.onChange(value);\n this.updateClearButtonVisibility();\n }\n\n onChange: (value: string | number) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: string | number): void {\n const normalizedValue = value == null ? '' : String(value);\n this._value.set(normalizedValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\n this.updateClearButtonVisibility();\n }\n\n registerOnChange(fn: (value: string | number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\n\nexport type MozToggleSize = 's' | 'm';\n\n@Component({\n selector: 'moz-toggle',\n imports: [FormsModule, ReactiveFormsModule, NgClass],\n templateUrl: './toggle.html',\n styleUrls: ['./toggle.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozToggleComponent implements ControlValueAccessor {\n id = input.required<string>();\n name = input<string | undefined>();\n label = input<string | undefined>();\n size = input<MozToggleSize>('s');\n disabled = input<boolean>(false);\n readonly classes = computed(() => {\n return {\n [`mc-toggle--${this.size()}`]: this.size(),\n };\n });\n\n _value = signal(false);\n\n onChange: (_: boolean) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onInputChange(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n this._value.set(checked);\n this.onChange(checked);\n this.onTouched();\n }\n}\n","<div class=\"mc-toggle\" [ngClass]=\"classes()\">\n <label class=\"mc-toggle__container\">\n <input\n #toggleRef\n [id]=\"id()\"\n type=\"checkbox\"\n class=\"mc-toggle__input\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [disabled]=\"disabled()\"\n (change)=\"onInputChange($event)\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-checked]=\"_value()\"\n />\n @if (label()) {\n <span class=\"mc-toggle__label\" [attr.for]=\"id()\"> {{ label() }} </span>\n }\n </label>\n</div>\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozFlagType = 'default' | 'accent' | 'danger' | 'inverse';\n\n@Component({\n selector: 'moz-flag',\n templateUrl: './flag.html',\n styleUrls: ['./flag.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozFlagComponent {\n readonly type = input<MozFlagType>('default');\n\n get typeClass() {\n switch (this.type()) {\n case 'accent':\n return 'mc-flag--accent';\n case 'danger':\n return 'mc-flag--danger';\n case 'inverse':\n return 'mc-flag--inverse';\n default:\n return '';\n }\n }\n}\n","<div class=\"mc-flag\" [ngClass]=\"typeClass\">\n <span class=\"mc-flag__label\">\n <ng-content />\n </span>\n</div>\n","import {\n Component,\n input,\n signal,\n ChangeDetectionStrategy,\n forwardRef,\n computed,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircle24 } from '@mozaic-ds/icons-angular';\nimport { NgClass } from '@angular/common';\n\nexport type MozDatepickerSize = 'default' | 's';\n\n@Component({\n selector: 'moz-datepicker',\n templateUrl: './datepicker.html',\n styleUrls: ['./datepicker.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozDatepickerComponent),\n multi: true,\n },\n ],\n imports: [CrossCircle24, NgClass],\n})\nexport class MozDatepickerComponent implements ControlValueAccessor {\n readonly id = input.required<string>();\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n readonly error = input<string | undefined>(undefined);\n readonly clearable = input<boolean>(false);\n readonly size = input<MozDatepickerSize>('default');\n readonly label = input<string>('Date');\n\n _value = signal<string | null>(null);\n\n readonly classes = computed(() => ({\n 'is-invalid': this.invalid(),\n 'mc-datepicker--s': this.size() === 's',\n 'mc-text-input--s': this.size() === 's',\n }));\n\n private onChange: (value: string | null) => void = () => void 0;\n private onTouched: () => void = () => void 0;\n\n writeValue(val: string | null): void {\n this._value.set(val);\n }\n\n registerOnChange(fn: (val: string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onInput(event: Event) {\n const input = event.target as HTMLInputElement;\n const newVal = input.value || null;\n this._value.set(newVal);\n this.onChange(newVal);\n }\n\n onClear() {\n this._value.set(null);\n this.onChange(null);\n }\n\n onBlur() {\n this.onTouched();\n }\n}\n","<div class=\"mc-field\">\n <label class=\"mc-field__label\" [attr.for]=\"id()\"> {{ label() }} </label>\n\n <div class=\"mc-field__content\">\n <div class=\"mc-datepicker mc-text-input\" [ngClass]=\"classes()\">\n <input\n type=\"date\"\n [id]=\"id()\"\n class=\"mc-datepicker__control mc-text-input__control\"\n [value]=\"_value() ?? ''\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n [attr.aria-invalid]=\"invalid()\"\n />\n\n @if (clearable() && !disabled() && !readonly() && _value()) {\n <div class=\"mc-controls-options mc-datepicker__controls-options\">\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n (click)=\"onClear()\"\n aria-label=\"Clear\"\n tabindex=\"-1\"\n >\n <CrossCircle24 class=\"mc-controls-options__icon\" />\n <span class=\"mc-controls-options__label\"\n >Clear content</span\n >\n </button>\n </div>\n }\n </div>\n </div>\n\n @if (invalid() && error()) {\n <span class=\"mc-field__validation-message is-invalid\"> {{ error() }} </span>\n }\n</div>\n","import { Component, input, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n@Component({\n selector: 'moz-tooltip',\n templateUrl: './tooltip.html',\n styleUrls: ['./tooltip.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozTooltipComponent {\n readonly id = input.required<string>();\n readonly position = input<MozTooltipPosition>('top');\n readonly noPointer = input<boolean>(false);\n readonly standalone = input<boolean>(false);\n content = '';\n\n readonly classes = computed(() => ({\n 'mc-tooltip': true,\n [`mc-tooltip--${this.position()}`]: !!this.position(),\n 'mc-tooltip--no-pointer': this.noPointer(),\n 'mc-tooltip--standalone': this.standalone(),\n }));\n}\n","<div [ngClass]=\"classes()\">\n @if (!standalone()) {\n <div>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n }\n\n <span [id]=\"id()\" class=\"mc-tooltip__content\" role=\"tooltip\">\n @if (content) {\n {{ content }}\n } @else {\n <ng-content select=\"[content]\"></ng-content>\n }\n </span>\n</div>\n","import { Directive, ElementRef, HostListener, OnDestroy, inject, Input } from '@angular/core';\nimport {\n Overlay,\n OverlayRef,\n OverlayPositionBuilder,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { MozTooltipComponent, MozTooltipPosition } from './tooltip';\n\n@Directive({\n selector: '[mozTooltip]',\n})\nexport class MozTooltipDirective implements OnDestroy {\n @Input('mozTooltip') content = '';\n @Input() tooltipPosition: MozTooltipPosition = 'top';\n @Input() tooltipNoPointer = false;\n\n private overlayRef: OverlayRef | null = null;\n private overlay = inject(Overlay);\n private overlayPositionBuilder = inject(OverlayPositionBuilder);\n private elementRef = inject(ElementRef);\n\n @HostListener('mouseenter')\n show(): void {\n if (this.overlayRef?.hasAttached()) {\n return;\n }\n\n const offset = 20;\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getPositions());\n\n if (this.tooltipPosition === 'top') {\n positionStrategy.withDefaultOffsetY(-offset);\n } else if (this.tooltipPosition === 'bottom') {\n positionStrategy.withDefaultOffsetY(offset);\n } else if (this.tooltipPosition === 'left') {\n positionStrategy.withDefaultOffsetX(-offset);\n } else if (this.tooltipPosition === 'right') {\n positionStrategy.withDefaultOffsetX(offset);\n }\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n\n const tooltipPortal = new ComponentPortal(MozTooltipComponent);\n const tooltipRef = this.overlayRef.attach(tooltipPortal);\n\n tooltipRef.setInput('id', `tooltip-${Math.random().toString(36).substr(2, 9)}`);\n tooltipRef.setInput('position', this.tooltipPosition);\n tooltipRef.setInput('noPointer', this.tooltipNoPointer);\n tooltipRef.setInput('standalone', true);\n tooltipRef.instance.content = this.content;\n }\n\n @HostListener('mouseleave')\n hide(): void {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n }\n\n ngOnDestroy(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n private getPositions(): ConnectedPosition[] {\n const positions: Record<MozTooltipPosition, ConnectedPosition> = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n };\n\n return [positions[this.tooltipPosition]];\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozCircularProgessBarSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-circular-progress-bar',\n templateUrl: './ciruclar-progress-bar.html',\n styleUrls: ['./circular-progress-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozCircularProgressBarComponent {\n valuePercent = input<number>(0);\n size = input<MozCircularProgessBarSize>('l');\n ariaLabel = input<string>('Progress bar');\n numberLabel = input<string | null>(null);\n textLabel = input<string | null>(null);\n showPercentage = input<boolean>(false);\n\n classes = computed(() => {\n const classes = ['mc-circular-progressbar'];\n if (this.size() === 's') classes.push('mc-circular-progressbar--s');\n if (this.size() === 'm') classes.push('mc-circular-progressbar--m');\n return classes.join(' ');\n });\n\n hasNumberOrText = () => !!(this.numberLabel() || this.textLabel());\n}\n","<div\n [class]=\"classes()\"\n role=\"progressbar\"\n [attr.aria-label]=\"ariaLabel()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"valuePercent()\"\n [style.--progress-value]=\"valuePercent()\"\n>\n <svg\n class=\"mc-circular-progressbar__line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n viewBox=\"0 0 100 100\"\n >\n <circle\n class=\"mc-circular-progressbar__track\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n <circle\n class=\"mc-circular-progressbar__indicator\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n </svg>\n\n @if (showPercentage()) {\n <div class=\"mc-circular-progressbar__percentage\">\n <p class=\"mc-circular-progressbar__value\">{{ valuePercent() }}</p>\n <p class=\"mc-circular-progressbar__unit\">%</p>\n </div>\n } @else if (hasNumberOrText()) {\n <div class=\"mc-circular-progressbar__content\">\n @if (numberLabel()) {\n <p class=\"mc-circular-progressbar__number\">{{ numberLabel() }}</p>\n } @if (textLabel()) {\n <p class=\"mc-circular-progressbar__text\">{{ textLabel() }}</p>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'moz-linear-progress-bar-percentage',\n templateUrl: './linear-progress-bar-percentage.html',\n styleUrls: ['./linear-progress-bar-percentage.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLinearProgressBarPercentageComponent {\n valuePercent = input<number>(0);\n ariaLabel = input<string>('Progress bar');\n showLabel = input<boolean>(false);\n}\n","<div class=\"mc-linear-progressbar-percentage\">\n <div\n class=\"mc-linear-progressbar-percentage__indicator\"\n role=\"progressbar\"\n [style.--progress-value]=\"valuePercent()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuenow]=\"valuePercent()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n @if (showLabel()) {\n <div class=\"mc-linear-progressbar-percentage__label\">\n <p class=\"mc-linear-progressbar-percentage__value\">\n {{ valuePercent() }}<span\n class=\"mc-linear-progressbar-percentage__unit\"\n >%</span\n >\n </p>\n </div>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ImageAlt32 } from '@mozaic-ds/icons-angular';\nimport { NgClass } from '@angular/common';\n\nexport type MozCalloutVariant = 'default' | 'inverse' | 'tips' | 'accent';\n\n@Component({\n selector: 'moz-callout',\n imports: [ImageAlt32, NgClass],\n templateUrl: './callout.html',\n styleUrls: ['./callout.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozCalloutComponent {\n title = input<string | null>(null);\n message = input<string | null>(null);\n role = input<string>('status');\n variant = input<MozCalloutVariant>('default');\n\n classes = computed(() => {\n const classes = ['mc-callout'];\n if (this.variant() === 'default') classes.push('mc-callout--default');\n if (this.variant() === 'inverse') classes.push('mc-callout--inverse');\n if (this.variant() === 'tips') classes.push('mc-callout--tips');\n if (this.variant() === 'accent') classes.push('mc-callout--accent');\n return classes.join(' ');\n });\n}\n","<section [attr.role]=\"role()\" [ngClass]=\"classes()\">\n <ImageAlt32 class=\"mc-callout__icon\" />\n <div class=\"mc-callout__content\">\n @if (title()) {\n <h2 class=\"mc-callout__title\">{{ title() }}</h2>\n } @if (message()) {\n <p class=\"mc-callout__message\">{{ message() }}</p>\n }\n <div class=\"mc-callout__footer\">\n <ng-content select=\"[footer]\" />\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozAvatarSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-avatar',\n templateUrl: './avatar.html',\n styleUrls: ['./avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozAvatarComponent {\n size = input<MozAvatarSize>('s');\n\n hostClasses = computed(() => {\n const size = this.size();\n return ['mc-avatar', size === 'm' ? 'mc-avatar--m' : '', size === 'l' ? 'mc-avatar--l' : '']\n .filter(Boolean)\n .join(' ');\n });\n}\n","<div [class]=\"hostClasses()\">\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n computed,\n booleanAttribute,\n signal,\n effect,\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n ControlValueAccessor,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ChevronDown24 } from '@mozaic-ds/icons-angular';\nimport parsePhoneNumberFromString, {\n isValidPhoneNumber,\n getCountries,\n getCountryCallingCode,\n getExampleNumber,\n type CountryCode,\n type Examples,\n} from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\n\nexport type MozPhoneNumberCountry = {\n code: string; // ex: 'fr'\n name: string; // ex: 'France'\n dialCode: string; // ex: '+33'\n};\n\nexport type MozPhoneNumberValue = {\n country: string; // code ISO 2\n number: string; // numéro national (ex: \"6 XX XX XX XX\")\n};\n\nlet UID = 0;\n\n@Component({\n selector: 'moz-phone-number',\n imports: [FormsModule, ReactiveFormsModule, ChevronDown24],\n templateUrl: './phone-number-input.html',\n styleUrls: ['./phone-number-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozPhoneNumberComponent),\n multi: true,\n },\n ],\n})\nexport class MozPhoneNumberComponent implements ControlValueAccessor {\n label = input<string>('Phone number');\n requirementText = input<string | null>('(required / optional)');\n showRequirement = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n helpText = input<string | null>('Help text');\n\n size = input<'s' | 'm'>('m');\n placeholder = input<string | null>(null);\n\n defaultCountry = input<string>('fr');\n locale = input<string>('en');\n\n countryCodes = input<string[] | null>(null);\n\n countries = input<MozPhoneNumberCountry[]>([\n {\n code: 'br',\n name: 'Brazil',\n dialCode: '+55',\n },\n {\n code: 'fr',\n name: 'France',\n dialCode: '+33',\n },\n {\n code: 'gr',\n name: 'Greece',\n dialCode: '+30',\n },\n {\n code: 'it',\n name: 'Italy',\n dialCode: '+39',\n },\n {\n code: 'pl',\n name: 'Poland',\n dialCode: '+48',\n },\n {\n code: 'pt',\n name: 'Portugal',\n dialCode: '+351',\n },\n {\n code: 'ro',\n name: 'Romania',\n dialCode: '+40',\n },\n {\n code: 'za',\n name: 'South Africa',\n dialCode: '+27',\n },\n {\n code: 'es',\n name: 'Spain',\n dialCode: '+34',\n },\n {\n code: 'ua',\n name: 'Ukraine',\n dialCode: '+380',\n },\n ]);\n\n showCountrySelect = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n showCountryCode = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n invalid = input<boolean | null>(null);\n errorMessage = input<string | null>(null);\n\n selectName = input<string>('selectComponentName');\n inputName = input<string>('example-small');\n\n private _country = signal<string>('fr');\n private _number = signal<string>('');\n\n private uid = ++UID;\n selectId = `phone_select_${this.uid}`;\n flagImgId = `phone_flag_${this.uid}`;\n inputId = `phone_input_${this.uid}`;\n helpId = `help_${this.uid}`;\n errorId = `err_${this.uid}`;\n ccId = `countryCode_${this.uid}`;\n\n selectedCountryCode = computed(() => this._country());\n availableCountries = computed(() => {\n const explicitCodes = this.countryCodes();\n if (explicitCodes && explicitCodes.length) {\n return explicitCodes.map((c) => c.toLowerCase());\n }\n\n const legacyCountries = this.countries();\n if (legacyCountries && legacyCountries.length) {\n return legacyCountries.map((c) => c.code.toLowerCase());\n }\n\n return getCountries().map((c) => c.toLowerCase());\n });\n\n selectedCountryName = computed(() => this.getCountryName(this._country()));\n selectedDialCode = computed(() => {\n const dialCode = this.getCountryCallingCodeFor(this._country());\n return dialCode ? `+${dialCode}` : '';\n });\n selectedFlagUrl = computed(() => `https://flagcdn.com/${this._country()}.svg`);\n\n number = computed(() => this._number());\n\n dynamicPlaceholder = computed(() => {\n const manual = this.placeholder();\n if (manual && manual.length > 0) {\n return manual;\n }\n\n const country = this.selectedLibCountryCode();\n if (!country) {\n return '';\n }\n\n try {\n const example = getExampleNumber(country, examples as Examples);\n return example?.formatNational() ?? '';\n } catch {\n return '';\n }\n });\n\n private selectedLibCountryCode = computed<CountryCode | undefined>(() => {\n const code = this._country();\n if (!code) {\n return undefined;\n }\n return code.toUpperCase() as CountryCode;\n });\n\n private parsedNumber = computed(() => {\n const number = this._number().trim();\n const country = this.selectedLibCountryCode();\n if (!number || !country) {\n return null;\n }\n\n try {\n return parsePhoneNumberFromString(number, country);\n } catch {\n return null;\n }\n });\n\n private phoneIsValid = computed(() => {\n const number = this._number().trim();\n const country = this.selectedLibCountryCode();\n if (!number || !country) {\n return false;\n }\n\n try {\n return isValidPhoneNumber(number, country);\n } catch {\n return false;\n }\n });\n\n getCountryName(countryCode: string): string {\n const upper = countryCode.toUpperCase();\n\n try {\n const regionNames = new Intl.DisplayNames([this.locale()], {\n type: 'region',\n });\n return regionNames.of(upper) ?? upper;\n } catch {\n return upper;\n }\n }\n\n getCountryCallingCodeFor(countryCode: string): string {\n const upper = countryCode.toUpperCase() as CountryCode;\n\n try {\n return getCountryCallingCode(upper);\n } catch {\n return '';\n }\n }\n\n // aria-describedby\n describedBy = computed(() => {\n const ids: string[] = [];\n if (this.helpText()) ids.push(this.helpId);\n if (this.isInvalid() && this.errorToShow()) ids.push(this.errorId);\n return ids.length ? ids.join(' ') : null;\n });\n\n // invalid combiné (input override > form state)\n private formInvalid = signal<boolean>(false);\n private formErrorMsg = signal<string | null>(null);\n\n isInvalid = computed(() => {\n const explicit = this.invalid();\n if (explicit !== null) {\n return !!explicit;\n }\n\n if (this.formInvalid()) {\n return true;\n }\n\n const value = this._number().trim();\n if (!value) {\n return false;\n }\n\n return !this.phoneIsValid();\n });\n\n errorToShow = computed(() => this.errorMessage() ?? this.formErrorMsg());\n\n // ----- CVA\n private onChange?: (value: MozPhoneNumberValue) => void;\n onTouched?: () => void;\n\n writeValue(value: MozPhoneNumberValue | null): void {\n if (!value) {\n this._number.set('');\n return;\n }\n\n if (value.country) {\n this._country.set(value.country.toLowerCase());\n }\n\n const incoming = value.number ?? '';\n if (!incoming) {\n this._number.set('');\n return;\n }\n\n const current = this._number();\n if (incoming === current) {\n return;\n }\n\n if (incoming.startsWith('+')) {\n try {\n const parsed = parsePhoneNumberFromString(incoming);\n if (parsed) {\n if (parsed.country) {\n this._country.set(parsed.country.toLowerCase());\n }\n this._number.set(parsed.formatNational());\n return;\n }\n } catch {\n // ignore and fallback to raw value\n }\n }\n\n this._number.set(incoming);\n }\n\n registerOnChange(fn: (value: MozPhoneNumberValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Appels depuis le template\n onCountryChange(code: string) {\n this._country.set(code.toLowerCase());\n\n const parsed = this.parsedNumber();\n if (parsed && this.phoneIsValid()) {\n const formatted = parsed.formatNational();\n if (formatted !== this._number()) {\n this._number.set(formatted);\n }\n }\n\n this.emitChange();\n }\n onNumberChange(val: string) {\n const sanitized = this.sanitize(val);\n this._number.set(sanitized);\n\n const parsed = this.parsedNumber();\n if (parsed && this.phoneIsValid()) {\n const formatted = parsed.formatNational();\n if (formatted !== sanitized) {\n this._number.set(formatted);\n }\n }\n\n this.emitChange();\n }\n\n private emitChange() {\n if (!this.onChange) {\n return;\n }\n\n const parsed = this.parsedNumber();\n const fullNumber = parsed?.number ?? this._number();\n\n this.onChange({\n country: this._country(),\n number: fullNumber,\n });\n }\n\n private sanitize(value: string): string {\n return value.replace(/[^0-9+\\s()-]/g, '');\n }\n\n // ---- Sync validation depuis le parent (optionnel)\n // Tu peux appeler ces helpers depuis un directive/validator externe si besoin.\n setFormInvalidState(invalid: boolean, message?: string | null) {\n this.formInvalid.set(invalid);\n this.formErrorMsg.set(message ?? null);\n }\n\n constructor() {\n // fallback si la country par défaut n'est pas dans la liste\n effect(() => {\n const codes = this.availableCountries();\n if (!codes.length) {\n return;\n }\n\n const preferred = this.defaultCountry()?.toLowerCase();\n const target = preferred && codes.includes(preferred) ? preferred : codes[0];\n\n if (!this._country() || !codes.includes(this._country())) {\n this._country.set(target);\n }\n });\n }\n}\n","<div\n class=\"mc-field\"\n [class.is-disabled]=\"disabled()\"\n [class.is-readonly]=\"readonly()\"\n>\n <legend class=\"mc-field__legend\">\n {{ label() }} @if (showRequirement() && requirementText()) {\n <span class=\"mc-field__requirement\">{{ requirementText() }}</span>\n }\n </legend>\n\n @if (helpText()) {\n <span [id]=\"helpId\" class=\"mc-field__help\">{{ helpText() }}</span>\n }\n\n <div class=\"mc-field__content\">\n <div id=\"mc-phone-number-input\" class=\"mc-phone-number-input\">\n <!-- Select pays + flag -->\n <div\n class=\"mc-phone-number-input__select-wrapper\"\n [class.mc-phone-number-input__select-wrapper--hidden]=\"\n !showCountrySelect()\n \"\n >\n <select\n [id]=\"selectId\"\n [name]=\"selectName()\"\n class=\"mc-select mc-phone-number-input__select\"\n [class.mc-select--s]=\"size() === 's'\"\n [disabled]=\"disabled() || readonly()\"\n [ngModel]=\"selectedCountryCode()\"\n (ngModelChange)=\"onCountryChange($event)\"\n aria-label=\"Country\"\n >\n <option value=\"\" selected hidden></option>\n @for (code of availableCountries(); track code) {\n <option\n [attr.data-flag]=\"code\"\n [value]=\"code\"\n [selected]=\"code === selectedCountryCode()\"\n >\n {{ getCountryName(code) }} (+{{ getCountryCallingCodeFor(code) }})\n </option>\n }\n </select>\n\n @if (showCountrySelect()) {\n <div class=\"mc-phone-number-input__select-display\">\n <div class=\"mc-phone-number-input__flag\">\n <img\n class=\"mc-phone-number-input__flag-image\"\n [id]=\"flagImgId\"\n [src]=\"selectedFlagUrl()\"\n [alt]=\"selectedCountryName()\"\n width=\"20\"\n />\n </div>\n <ChevronDown24 class=\"mc-phone-number-input__chevron\" />\n </div>\n }\n </div>\n\n <!-- Input numéro -->\n <div\n class=\"mc-text-input mc-phone-number-input__input\"\n [class.mc-text-input--s]=\"size() === 's'\"\n [class.is-invalid]=\"isInvalid()\"\n >\n @if (showCountryCode()) {\n <span [id]=\"ccId\" class=\"mc-phone-number-input__country-code\"\n >{{ selectedDialCode() }}</span\n >\n }\n\n <input\n type=\"tel\"\n [id]=\"inputId\"\n class=\"mc-phone-number-input__control mc-text-input__control\"\n [placeholder]=\"dynamicPlaceholder()\"\n [name]=\"inputName()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"isInvalid() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n [ngModel]=\"number()\"\n (ngModelChange)=\"onNumberChange($event)\"\n (blur)=\"onTouched?.()\"\n />\n </div>\n </div>\n </div>\n\n <!-- Message d'erreur -->\n @if (isInvalid() && errorToShow()) {\n <span [id]=\"errorId\" class=\"mc-field__validation-message is-invalid\">\n {{ errorToShow() }}\n </span>\n }\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n input,\n output,\n signal,\n booleanAttribute,\n contentChild,\n} from '@angular/core';\nimport { MozLinearProgressBarBufferComponent } from '../linear-progress-bar-buffer/linear-progress-bar-buffer';\nimport {\n CheckCircleFilled32,\n WarningCircleFilled32,\n CrossCircleFilled32,\n InfoCircleFilled32,\n Cross20,\n} from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\nexport type MozToasterStatus = 'info' | 'success' | 'warning' | 'error';\nexport type MozToasterPosition = 'top' | 'bottom' | 'top-center' | 'bottom-center';\nexport type MozToasterRole = 'status' | 'alert';\n\n@Component({\n selector: 'moz-toaster',\n imports: [\n MozLinearProgressBarBufferComponent,\n CheckCircleFilled32,\n WarningCircleFilled32,\n CrossCircleFilled32,\n InfoCircleFilled32,\n Cross20,\n MozIconButtonComponent,\n ],\n templateUrl: './toaster.html',\n styleUrls: ['./toaster.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozToasterComponent implements AfterContentInit {\n open = input<boolean, unknown>(false, { transform: booleanAttribute });\n position = input<MozToasterPosition>('top');\n description = input<string>('');\n status = input<MozToasterStatus>('info');\n closable = input<boolean, unknown>(true, { transform: booleanAttribute });\n progress = input<boolean, unknown>(false, { transform: booleanAttribute });\n timeout = input<number | null>(null);\n role = input<MozToasterRole>('status');\n closeAriaLabel = input<string>('Close');\n\n openChange = output<boolean>();\n closed = output<void>();\n\n actionSlot = contentChild<ElementRef<HTMLElement>>('[action]', { descendants: false });\n hasAction = false;\n\n ngAfterContentInit() {\n this.hasAction = !!this.actionSlot();\n }\n\n hostClasses = computed(() => {\n const classes = [];\n if (this.open()) {\n classes.push('is-open');\n }\n const s = this.status();\n const p = this.position();\n if (s && s !== 'info') {\n classes.push(`mc-toaster--${s}`);\n }\n if (p && p !== 'top') {\n classes.push(`mc-toaster--${p}`);\n }\n return classes.join(' ');\n });\n\n private _progressValue = signal(0); // 0 → 100\n progressValue = () => this._progressValue();\n\n private intervalId: number | null = null;\n private timeoutId: number | null = null;\n private startAt = 0;\n\n constructor() {\n effect(() => {\n const isOpen = this.open();\n const ms = this.timeout();\n const showProgress = this.progress();\n\n this.clearTimers();\n this._progressValue.set(0);\n\n if (!isOpen || !ms || ms <= 0) {\n return;\n }\n\n if (showProgress) {\n this.startAt = Date.now();\n const step = 100;\n this.intervalId = setInterval(() => {\n const elapsed = Date.now() - this.startAt;\n const pct = Math.min(100, (elapsed / ms) * 100);\n this._progressValue.set(pct);\n if (pct >= 100) {\n this.onCloseClick();\n }\n }, step) as unknown as number;\n } else {\n this.timeoutId = setTimeout(() => this.onCloseClick(), ms) as unknown as number;\n }\n });\n }\n\n onCloseClick() {\n if (!this.open()) {\n return;\n }\n this.clearTimers();\n this._progressValue.set(100);\n this.openChange.emit(false);\n this.closed.emit();\n }\n\n private clearTimers() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n}\n","<section class=\"mc-toaster\" [class]=\"hostClasses()\" [attr.role]=\"role()\">\n <div class=\"mc-toaster__icon\">\n @switch (status()) { @case ('success') {\n <CheckCircleFilled32 />\n } @case ('warning') {\n <WarningCircleFilled32 />\n } @case ('error') {\n <CrossCircleFilled32 />\n } @case ('info') {\n <InfoCircleFilled32 />\n } }\n </div>\n\n <div class=\"mc-toaster__content\">\n <p class=\"mc-toaster__message\">{{ description() }}</p>\n\n @if (hasAction) {\n <div class=\"mc-toaster__action\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n }\n </div>\n\n @if (closable()) {\n <moz-icon-button\n type=\"button\"\n [attr.aria-label]=\"closeAriaLabel()\"\n (click)=\"onCloseClick()\"\n [appearance]=\"'inverse'\"\n [size]=\"'s'\"\n [ghost]=\"true\"\n >\n <Cross20 icon />\n </moz-icon-button>\n } @if (progress() && timeout() && timeout()! > 0) {\n <moz-linear-progress-bar-buffer\n class=\"mc-toaster__indicator\"\n [valuePercent]=\"progressValue()\"\n size=\"m\"\n >\n </moz-linear-progress-bar-buffer>\n }\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n computed,\n booleanAttribute,\n} from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { Type } from '@angular/core';\nimport { ChevronDown20, SidebarExpand24 } from '@mozaic-ds/icons-angular';\n\nexport type MozSidebarSubItem = {\n id: string;\n label: string;\n href?: string;\n selected?: boolean;\n};\n\nexport type MozSidebarItem = {\n id: string;\n label: string;\n icon?: Type<unknown>;\n href?: string;\n selected?: boolean;\n open?: boolean;\n children?: MozSidebarSubItem[];\n};\n\n@Component({\n selector: 'moz-sidebar',\n imports: [NgComponentOutlet, SidebarExpand24, ChevronDown20],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './sidebar.html',\n styleUrls: ['./sidebar.scss'],\n})\nexport class MozSidebarComponent {\n expanded = input<boolean, unknown>(false, { transform: booleanAttribute });\n items = input<MozSidebarItem[]>([]);\n title = input<string>('ADEO Design System');\n logoSrc = input<string | null>('/images/logo.svg');\n logoAlt = input<string>('logo');\n\n showFooter = input<boolean, unknown>(true, { transform: booleanAttribute });\n showProfile = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n profileName = input<string | null>('Dieter Rams');\n profileTitle = input<string | null>('Industrial designer');\n profileAvatarSrc = input<string | null>('/images/Avatar.png');\n\n expandedChange = output<boolean>();\n itemClick = output<{ itemId: string; subItemId: string | null }>();\n\n hostClasses = computed(() =>\n ['mc-sidebar', this.expanded() ? 'mc-sidebar--expanded' : ''].filter(Boolean).join(' ')\n );\n\n expandButtonAriaLabel = computed(() => (this.expanded() ? 'Collapse' : 'Expand'));\n\n shouldOpen = (i: MozSidebarItem) => !!i.open || !!i.children?.some((c) => c.selected);\n\n toggleExpanded() {\n this.expandedChange.emit(!this.expanded());\n }\n\n onItemClick(itemId: string, subItemId: string | null, ev: Event) {\n this.itemClick.emit({ itemId, subItemId });\n if ((ev.currentTarget as HTMLAnchorElement)?.getAttribute('href') === '#') ev.preventDefault();\n }\n\n toggleOpen(item: MozSidebarItem) {\n item.open = !item.open;\n }\n}\n","<aside [class]=\"hostClasses()\">\n <header class=\"mc-sidebar__header\">\n @if (logoSrc()) {\n <img class=\"mc-sidebar__header-logo\" [src]=\"logoSrc()!\" [alt]=\"logoAlt()\" />\n } @if (title()) {\n <p class=\"mc-sidebar__header-title\">{{ title() }}</p>\n }\n </header>\n\n <section class=\"mc-sidebar__container\">\n <nav class=\"mc-sidebar__menu\" role=\"navigation\">\n <ul class=\"mc-sidebar__list\">\n @for (item of items(); track item.id) {\n <li class=\"mc-sidebar__item\">\n @if (expanded() && !!item.children?.length) {\n <details\n class=\"mc-sidebar__link-expand\"\n (click)=\"toggleOpen(item)\"\n [attr.open]=\"item.open || null\"\n >\n <summary class=\"mc-sidebar__link\" (click)=\"$event.preventDefault()\">\n @if (item.icon) {\n <span class=\"mc-sidebar__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n <span class=\"mc-sidebar__text\">{{ item.label }}</span>\n <span aria-hidden=\"true\" class=\"mc-sidebar__sub\">\n <ChevronDown20 />\n </span>\n </summary>\n\n <ul class=\"mc-sidebar__sublist\">\n @for (sub of item.children!; track sub.id) {\n <li class=\"mc-sidebar__item\">\n <a\n class=\"mc-sidebar__sublink\"\n [class.mc-sidebar__sublink--selected]=\"!!sub.selected\"\n [attr.href]=\"sub.href || '#'\"\n (click)=\"onItemClick(item.id, sub.id, $event)\"\n >\n <span class=\"mc-sidebar__text\">{{ sub.label }}</span>\n </a>\n </li>\n }\n </ul>\n </details>\n } @else {\n <a\n class=\"mc-sidebar__link\"\n [class.mc-sidebar__link--selected]=\"!!item.selected\"\n [attr.title]=\"item.label\"\n [attr.href]=\"item.href || '#'\"\n (click)=\"onItemClick(item.id, null, $event)\"\n >\n @if (item.icon) {\n <span class=\"mc-sidebar__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n <span class=\"mc-sidebar__text\">{{ item.label }}</span>\n </a>\n }\n </li>\n }\n </ul>\n </nav>\n </section>\n\n @if (showFooter()) {\n <footer class=\"mc-sidebar__footer\">\n <div class=\"mc-divider-horizontal\"></div>\n <div class=\"mc-sidebar__footer-container\">\n @if (showProfile() && (profileName() || profileTitle() || profileAvatarSrc())) {\n <a href=\"#\" class=\"mc-sidebar__footer-profile\" (click)=\"$event.preventDefault()\">\n @if (profileAvatarSrc()) {\n <img\n class=\"mc-sidebar__footer-avatar\"\n [src]=\"profileAvatarSrc()!\"\n [alt]=\"profileName() || 'User'\"\n loading=\"lazy\"\n />\n }\n <div class=\"mc-sidebar__footer-content\">\n @if (profileName()) {\n <p class=\"mc-sidebar__footer-identity\">\n {{ profileName() }}\n </p>\n } @if (profileTitle()) {\n <p class=\"mc-sidebar__footer-title\">{{ profileTitle() }}</p>\n }\n </div>\n </a>\n }\n <button\n class=\"mc-sidebar__footer-expand mc-button mc-button--ghost\"\n type=\"button\"\n [attr.aria-label]=\"expandButtonAriaLabel()\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggleExpanded()\"\n >\n <SidebarExpand24 class=\"mc-button__icon\" />\n </button>\n </div>\n </footer>\n }\n</aside>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n model,\n computed,\n booleanAttribute,\n viewChildren,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozSegmentedControlSize = 's' | 'm';\n\nexport type MozSegmentedItem = {\n label: string;\n value: string | number;\n};\n\n@Component({\n selector: 'moz-segmented-control',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './segmented-control.html',\n styleUrls: ['./segmented-control.scss'],\n imports: [NgClass],\n})\nexport class MozSegmentedControlComponent {\n items = input<MozSegmentedItem[]>([]);\n\n size = input<MozSegmentedControlSize>('s');\n full = input<boolean, unknown>(false, { transform: booleanAttribute });\n ariaLabel = input<string>('Segmented control');\n\n selectedIndex = model<number>(0);\n change = output<{ index: number; value: string | number }>();\n\n hostClasses = computed(() => ({\n 'mc-segmented-control--m': this.size() === 'm',\n 'mc-segmented-control--full': this.full(),\n }));\n\n segmentClasses = (index: number) =>\n computed(() => ({\n 'mc-segmented-control__segment--selected': index === this.selectedIndex(),\n }));\n\n private buttons = viewChildren<ElementRef<HTMLButtonElement>>('segBtn');\n\n onSelect(index: number) {\n const item = this.items()[index];\n this.selectedIndex.set(index);\n this.change.emit({ index, value: item.value });\n queueMicrotask(() => this.focusIndex(index));\n }\n\n private focusIndex(index: number) {\n const btns = this.buttons();\n const btn = btns[index]?.nativeElement;\n btn?.focus();\n }\n}\n","<div\n class=\"mc-segmented-control\"\n [ngClass]=\"hostClasses()\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n @for (item of items(); track item.value; let i = $index) {\n <button\n #segBtn\n type=\"button\"\n class=\"mc-segmented-control__segment\"\n [ngClass]=\"segmentClasses(i)()\"\n role=\"tab\"\n [attr.aria-selected]=\"i === selectedIndex()\"\n [attr.tabindex]=\"i === selectedIndex() ? 0 : -1\"\n (click)=\"onSelect(i)\"\n >\n {{ item.label }}\n </button>\n }\n</div>\n","import { Component, viewChild, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'moz-accordion-header',\n templateUrl: './accordion-header.html',\n})\nexport class MozAccordionHeaderComponent {\n tpl = viewChild('tpl', { read: TemplateRef });\n}\n","<ng-template #tpl>\n <div class=\"mc-accordion__title-wrapper\">\n <span class=\"mc-accordion__title-text\" #titleWrapper>\n <ng-content select=\"[title]\"></ng-content>\n </span>\n <span class=\"mc-accordion__subtitle\" #subtitleWrapper>\n <ng-content select=\"[subtitle]\"></ng-content>\n </span>\n </div>\n</ng-template>\n","import { Component, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'moz-accordion-content',\n templateUrl: './accordion-content.html',\n styleUrls: ['./accordion-content.scss'],\n})\nexport class MozAccordionContentComponent {\n tpl = viewChild('tpl', { read: TemplateRef });\n}\n","<ng-template #tpl><ng-content></ng-content></ng-template>\n","import { Component, Type, contentChild, signal } from '@angular/core';\nimport { input } from '@angular/core';\nimport { MozAccordionHeaderComponent } from '../header/accordion-header';\nimport { MozAccordionContentComponent } from '../content/accordion-content';\n\n@Component({\n selector: 'moz-accordion-panel',\n template: ``,\n})\nexport class MozAccordionPanelComponent {\n icon = input<Type<unknown> | null>(null);\n open = input(false);\n state = signal(false);\n\n header = contentChild(MozAccordionHeaderComponent);\n content = contentChild(MozAccordionContentComponent);\n\n ngOnInit() {\n this.state.set(!!this.open());\n }\n}\n","import { Component, ChangeDetectionStrategy, contentChildren, computed } from '@angular/core';\nimport { input } from '@angular/core';\nimport { NgTemplateOutlet, NgComponentOutlet, NgClass } from '@angular/common';\nimport { MozAccordionPanelComponent } from './components/panel/accordion-panel';\n\n/**\n * Accordion component for organizing content in collapsible sections.\n *\n * @description\n * The accordion component allows users to show and hide sections of content.\n * Each section consists of a header and content area that can be expanded or collapsed.\n * Supports both custom and native HTML implementation.\n *\n * @example\n * ```html\n * <moz-accordion [ghost]=\"false\" [native]=\"false\">\n * <moz-accordion-panel [icon]=\"HomeIcon\" [open]=\"true\">\n * <moz-accordion-header>\n * <span title=\"\">Panel Title</span>\n * <span subtitle=\"\">Panel Subtitle</span>\n * </moz-accordion-header>\n * <moz-accordion-content>\n * <p>Panel content goes here</p>\n * </moz-accordion-content>\n * </moz-accordion-panel>\n * </moz-accordion>\n * ```\n */\n@Component({\n selector: 'moz-accordion',\n imports: [NgTemplateOutlet, NgComponentOutlet, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './accordion.html',\n styleUrls: ['./accordion.scss'],\n})\nexport class MozAccordionComponent {\n /**\n * Applies ghost styling to the accordion for a lighter visual appearance.\n * Useful for nested or secondary accordions.\n *\n * @default false\n */\n ghost = input(false);\n\n /**\n * Uses native HTML `<details>` and `<summary>` elements instead of custom implementation.\n * Provides better accessibility and performance with browser-native behavior.\n *\n * @default false\n */\n native = input(false);\n\n /**\n * Computed CSS classes based on component inputs.\n * Automatically updates when ghost input changes.\n *\n * @internal\n */\n cssClasses = computed(() => ({\n 'mc-accordion': true,\n 'mc-accordion--ghost': this.ghost(),\n }));\n\n /**\n * Signal containing all accordion panels projected into this component.\n * Automatically synchronized with content children.\n *\n * @internal\n */\n panels = contentChildren(MozAccordionPanelComponent);\n\n /**\n * Toggles the open/closed state of an accordion panel.\n *\n * @param p - The accordion panel to toggle\n */\n toggle(p: MozAccordionPanelComponent) {\n p.state.update((v: boolean) => !v);\n }\n\n /**\n * Handles the native toggle event for accordion panels using HTML details/summary.\n * Synchronizes the panel state with the native element's open state.\n *\n * @param ev - The native toggle event\n * @param p - The accordion panel being toggled\n */\n onNativeToggle(ev: Event, p: MozAccordionPanelComponent) {\n p.state.set((ev.currentTarget as HTMLDetailsElement).open);\n }\n}\n","<div [ngClass]=\"cssClasses()\">\n @for (panel of panels(); track panel; let i = $index) { @if (!native()) {\n <div class=\"mc-accordion__item\">\n <div class=\"mc-accordion__header\">\n <h2 class=\"mc-accordion__title\">\n <button\n class=\"mc-accordion__trigger\"\n type=\"button\"\n [attr.id]=\"'accordion-' + (i + 1)\"\n data-mc-component=\"accordion\"\n [attr.aria-controls]=\"'content-' + (i + 1)\"\n [attr.aria-expanded]=\"panel.state()\"\n (click)=\"toggle(panel)\"\n >\n @if (panel.icon()) {\n <span class=\"mc-accordion__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"panel.icon()\"></ng-container>\n </span>\n } @if (panel.header()) {\n <ng-container [ngTemplateOutlet]=\"panel.header()?.tpl()\"></ng-container>\n }\n </button>\n </h2>\n </div>\n\n <div\n class=\"mc-accordion__content\"\n [class.is-open]=\"panel.state()\"\n [attr.id]=\"'content-' + (i + 1)\"\n [attr.aria-labelledby]=\"'accordion-' + (i + 1)\"\n [attr.aria-hidden]=\"!panel.state()\"\n >\n @if (panel.content()) {\n <ng-container [ngTemplateOutlet]=\"panel.content()?.tpl()\"></ng-container>\n }\n </div>\n </div>\n } @else {\n <details\n class=\"mc-accordion__item\"\n [attr.open]=\"panel.state() ? '' : null\"\n (toggle)=\"onNativeToggle($event, panel)\"\n >\n <summary class=\"mc-accordion__header\">\n <span class=\"mc-accordion__title\">\n <span class=\"mc-accordion__trigger\">\n @if (panel.icon()) {\n <span class=\"mc-accordion__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"panel.icon()\"></ng-container>\n </span>\n } @if (panel.header()) {\n <ng-container [ngTemplateOutlet]=\"panel.header()?.tpl()\"></ng-container>\n }\n </span>\n </span>\n </summary>\n <div class=\"mc-accordion__content\" [attr.aria-hidden]=\"!panel.state()\">\n @if (panel.content()) {\n <ng-container [ngTemplateOutlet]=\"panel.content()?.tpl()\"></ng-container>\n }\n </div>\n </details>\n } }\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'moz-action-bottom-bar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n templateUrl: './action-bottom-bar.html',\n styleUrls: ['./action-bottom-bar.scss'],\n})\nexport class MozActionBottomBarComponent {\n boxShadow = input<boolean>(false);\n\n readonly classes = computed(() => ({\n 'mc-action-bottom-bar--shadow': this.boxShadow(),\n }));\n}\n","<div class=\"mc-action-bottom-bar\" [ngClass]=\"classes()\">\n <div class=\"mc-divider-horizontal mc-action-bottom-bar__divider\"></div>\n\n <div class=\"mc-action-bottom-bar__left\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n\n <div class=\"mc-action-bottom-bar__right\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n Type,\n computed,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\nimport { Cross24 } from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\nexport type MozActionListItemAppearance = 'standard' | 'danger';\n\nexport interface ActionListItem {\n /**\n * The icon component displayed for the item.\n */\n icon?: Type<unknown>;\n /**\n * The label displayed for the item.\n */\n label: string;\n /**\n * If `true`, the item will be disabled.\n */\n disabled?: boolean;\n /**\n * Allows to define the item appearance.\n */\n appearance?: MozActionListItemAppearance;\n /**\n * Add a divider on top of the item.\n */\n divider?: boolean;\n}\n\n/**\n * An action list is a contextual menu that presents a list of available actions related to a specific element or interface area.\n * It allows users to quickly access functions such as editing, sharing, deleting, or navigating to sub-actions.\n * Action Lists are commonly triggered by buttons, icons (e.g., three-dot menus), or right-click interactions, ensuring a clean and efficient UI.\n */\n@Component({\n selector: 'moz-action-listbox',\n templateUrl: './action-listbox.html',\n styleUrls: ['./action-listbox.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, NgComponentOutlet, MozIconButtonComponent, Cross24],\n})\nexport class MozActionListboxComponent {\n /**\n * Title displayed in mobile version.\n */\n title = input<string>();\n\n /**\n * An array of objects that allows you to provide all the data needed to generate the content for each item.\n */\n items = input.required<ActionListItem[]>();\n\n /**\n * Computed signal that maps items to their CSS classes.\n */\n itemsWithClasses = computed(() =>\n this.items().map((item) => ({\n item,\n classes: {\n 'mc-action-list__element': true,\n 'mc-action-list__element--danger': item.appearance === 'danger',\n 'mc-action-list__element--disabled': item.disabled === true,\n },\n }))\n );\n}\n","<div class=\"mc-listbox\">\n <div class=\"mc-listbox__content\">\n <div class=\"mc-listbox__header\">\n @if (title()) {\n <h3 class=\"mc-listbox__title\">{{ title() }}</h3>\n }\n <moz-icon-button class=\"mc-listbox__close\" [ghost]=\"true\" [ariaLabel]=\"'Close'\">\n <Cross24 icon />\n </moz-icon-button>\n </div>\n <div class=\"mc-listbox__body\">\n <ul class=\"mc-action-list\" role=\"menu\">\n @for (itemWithClasses of itemsWithClasses(); track $index) { @if\n (itemWithClasses.item.divider) {\n <li class=\"mc-divider-horizontal mc-action-list__divider\"></li>\n }\n <li [ngClass]=\"itemWithClasses.classes\" role=\"menuitem\">\n <button\n type=\"button\"\n class=\"mc-action-list__button\"\n [disabled]=\"itemWithClasses.item.disabled\"\n >\n @if (itemWithClasses.item.icon) {\n <div class=\"mc-action-list__icon\">\n <ng-container [ngComponentOutlet]=\"itemWithClasses.item.icon\"> </ng-container>\n </div>\n }\n <p class=\"mc-action-list__text\">\n {{ itemWithClasses.item.label }}\n </p>\n </button>\n </li>\n }\n </ul>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n computed,\n input,\n model,\n signal,\n viewChild,\n afterNextRender,\n} from '@angular/core';\nimport { ChevronLeft20, ChevronRight20 } from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\n@Component({\n selector: 'moz-carousel',\n imports: [ChevronLeft20, ChevronRight20, MozIconButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './carousel.html',\n styleUrls: ['./carousel.scss'],\n})\nexport class MozCarouselComponent implements OnDestroy {\n ariaLabelledby = input<string | null>(null);\n previousButtonAriaLabel = input('previous');\n nextButtonAriaLabel = input('next');\n index = model(0);\n\n private contentEl = viewChild<ElementRef<HTMLElement>>('content');\n\n private metrics = signal({ left: 0, cw: 0, sw: 0 });\n private raf = 0;\n private cleanup: Array<() => void> = [];\n\n private eps = 1;\n\n canPrev = computed(() => this.metrics().left > this.eps);\n canNext = computed(() => {\n const { left, cw, sw } = this.metrics();\n return left + cw < sw - this.eps;\n });\n\n private updateLogicalIndexFromScroll() {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n const children = Array.from(root.children) as HTMLElement[];\n if (!children.length) return;\n\n const center = this.metrics().left + this.metrics().cw / 2;\n let best = 0;\n let bestDist = Number.POSITIVE_INFINITY;\n children.forEach((el, i) => {\n const mid = el.offsetLeft + el.offsetWidth / 2;\n const d = Math.abs(mid - center);\n if (d < bestDist) {\n bestDist = d;\n best = i;\n }\n });\n if (best !== this.index()) this.index.set(best);\n }\n\n constructor() {\n afterNextRender(() => {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n\n const update = () => {\n this.metrics.set({\n left: root.scrollLeft,\n cw: root.clientWidth,\n sw: root.scrollWidth,\n });\n this.updateLogicalIndexFromScroll();\n };\n\n update();\n\n const onScroll = () => {\n cancelAnimationFrame(this.raf);\n this.raf = requestAnimationFrame(update);\n };\n root.addEventListener('scroll', onScroll, { passive: true });\n\n const onResize = () => update();\n window.addEventListener('resize', onResize, { passive: true });\n\n this.cleanup.push(\n () => root.removeEventListener('scroll', onScroll),\n () => window.removeEventListener('resize', onResize),\n () => cancelAnimationFrame(this.raf)\n );\n });\n }\n\n ngOnDestroy(): void {\n this.cleanup.forEach((fn) => fn());\n }\n\n goPrevious(): void {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n root.scrollBy({ left: -root.clientWidth, behavior: 'smooth' });\n }\n\n goNext(): void {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n root.scrollBy({ left: root.clientWidth, behavior: 'smooth' });\n }\n}\n","<div\n class=\"mc-carousel\"\n role=\"group\"\n aria-roledescription=\"carousel\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n>\n <div class=\"mc-carousel__header\">\n <div class=\"mc-carousel__headings\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"mc-carousel__controls\">\n <moz-icon-button\n (click)=\"goPrevious()\"\n [disabled]=\"!canPrev()\"\n [ariaLabel]=\"previousButtonAriaLabel()\"\n [size]=\"'s'\"\n [outlined]=\"true\"\n >\n <ChevronLeft20 icon aria-hidden=\"true\" />\n </moz-icon-button>\n\n <moz-icon-button\n (click)=\"goNext()\"\n [disabled]=\"!canNext()\"\n [ariaLabel]=\"nextButtonAriaLabel()\"\n [size]=\"'s'\"\n [outlined]=\"true\"\n >\n <ChevronRight20 icon aria-hidden=\"true\" />\n </moz-icon-button>\n </div>\n </div>\n\n <div class=\"mc-carousel__content\" #content>\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport {\n CheckCircleFilled24,\n CrossCircleFilled24,\n InfoCircleFilled24,\n WarningCircleFilled24,\n} from '@mozaic-ds/icons-angular';\nimport { MozLoaderComponent } from '../loader/loader';\n\nexport type MozStatusMessageStatus =\n | 'info'\n | 'success'\n | 'warning'\n | 'error'\n | 'neutral'\n | 'inprogress';\n\n@Component({\n selector: 'moz-status-message',\n imports: [NgClass, NgComponentOutlet, MozLoaderComponent],\n templateUrl: './status-message.html',\n styleUrls: ['./status-message.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozStatusMessageComponent {\n status = input<MozStatusMessageStatus>('info');\n description = input<string | null>(null);\n\n readonly classes = computed(() => ({\n [`mc-status-message--${this.status()}`]: this.status(),\n }));\n\n readonly iconComponent = computed(() => {\n switch (this.status()) {\n case 'success':\n return CheckCircleFilled24;\n case 'warning':\n return WarningCircleFilled24;\n case 'error':\n return CrossCircleFilled24;\n case 'neutral':\n case 'inprogress':\n default:\n return InfoCircleFilled24;\n }\n });\n}\n","<div class=\"mc-status-message\" [ngClass]=\"classes()\">\n @if (status() === 'inprogress') {\n <moz-loader size=\"s\"></moz-loader>\n } @else {\n <div class=\"mc-status-message__icon\">\n <ng-container [ngComponentOutlet]=\"iconComponent()\"></ng-container>\n </div>\n }\n\n <p class=\"mc-status-message__description\">\n @if (description()) {\n {{ description() }}\n }\n </p>\n</div>\n","import { ChangeDetectionStrategy, Component, Type, computed, input } from '@angular/core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\n\nimport { ArrowBottomRight24, ArrowTopRight24, Less24 } from '@mozaic-ds/icons-angular';\n\nexport type MozKpiTrend = 'increasing' | 'decreasing' | 'stable';\nexport type MozKpiStatus = 'info' | 'warning' | 'error' | 'success' | 'neutral';\nexport type MozKpiSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-kpi',\n imports: [NgClass, NgComponentOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './kpi.html',\n styleUrls: ['./kpi.scss'],\n})\nexport class MozKpiComponent {\n /** The current value of the KPI item. */\n value = input.required<string>();\n\n /** Defines the evolution of the KPI. */\n trend = input<MozKpiTrend | null>(null);\n\n /** Label of the KPI item. */\n label = input<string | null>(null);\n\n /** Allows to define the KPI item status. */\n status = input<MozKpiStatus>('info');\n\n /** The evolution information defining the KPI. */\n information = input<string | null>(null);\n\n /** Allows to define the KPI item size. */\n size = input<MozKpiSize>('s');\n\n readonly isMedium = computed(() => this.size() === 'm');\n readonly isLarge = computed(() => this.size() === 'l');\n\n readonly rootClasses = computed(() => ({\n 'mc-kpi': true,\n 'mc-kpi--s': this.size() === 's',\n 'mc-kpi--m': this.size() === 'm',\n 'mc-kpi--l': this.size() === 'l',\n 'mc-kpi--info': this.status() === 'info',\n 'mc-kpi--warning': this.status() === 'warning',\n 'mc-kpi--error': this.status() === 'error',\n 'mc-kpi--success': this.status() === 'success',\n 'mc-kpi--neutral': this.status() === 'neutral',\n }));\n\n private readonly iconMap: Record<MozKpiTrend, Type<unknown>> = {\n increasing: ArrowTopRight24,\n decreasing: ArrowBottomRight24,\n stable: Less24,\n };\n\n readonly IconComponent = computed<Type<unknown> | null>(() => {\n const t = this.trend();\n return t ? this.iconMap[t] : null;\n });\n}\n","<div [ngClass]=\"rootClasses()\">\n @if (isMedium() && label()) {\n <span class=\"mc-kpi__label\">\n {{ label() }}\n </span>\n }\n\n <div class=\"mc-kpi__content\">\n <div class=\"mc-kpi__main\">\n @if (isLarge() && label()) {\n <span class=\"mc-kpi__label\">\n {{ label() }}\n </span>\n }\n\n <span class=\"mc-kpi__value\">\n {{ value() }}\n </span>\n </div>\n\n @if (trend() || information()) {\n <div class=\"mc-kpi__aside\">\n @if (isLarge() && information()) {\n <span class=\"mc-kpi__detail\">\n {{ information() }}\n </span>\n } @if (IconComponent()) {\n <div class=\"mc-button__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"IconComponent()\"></ng-container>\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'moz-stepper-compact',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './stepper-compact.html',\n styleUrls: ['./stepper-compact.scss'],\n})\nexport class MozStepperCompactComponent {\n value = input.required<number>();\n maxSteps = input<number>(4);\n label = input<string>('');\n description = input<string>('');\n\n readonly hasLabel = computed(() => !!this.label() && this.label().trim().length > 0);\n\n readonly safeMaxSteps = computed(() => {\n const max = this.maxSteps();\n return max && max > 0 ? max : 4;\n });\n\n readonly progressPercentage = computed(() => {\n const max = this.safeMaxSteps();\n const current = this.value();\n const clamped = Math.max(0, Math.min(current, max));\n return (clamped / max) * 100;\n });\n}\n","<div class=\"mc-stepper-compact\">\n <div\n class=\"mc-circular-progressbar mc-stepper-compact__progress\"\n role=\"progressbar\"\n aria-label=\"Progress bar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"safeMaxSteps()\"\n [attr.aria-valuenow]=\"value()\"\n [style.--progress-value]=\"progressPercentage()\"\n >\n <svg\n class=\"mc-circular-progressbar__line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n viewBox=\"0 0 100 100\"\n >\n <circle class=\"mc-circular-progressbar__track\" cx=\"50\" cy=\"50\" r=\"46\"></circle>\n <circle\n class=\"mc-circular-progressbar__indicator mc-stepper-compact__indicator\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n </svg>\n <div class=\"mc-circular-progressbar__content\">\n <p class=\"mc-circular-progressbar__number mc-stepper-compact__number\">\n {{ value() }} / {{ safeMaxSteps() }}\n </p>\n </div>\n </div>\n\n @if (hasLabel()) {\n <div class=\"mc-stepper-compact__label-container\">\n <p class=\"mc-stepper-compact__label\">\n {{ label() }}\n </p>\n\n @if (description().trim().length) {\n <p class=\"mc-stepper-compact__description\">\n {{ description() }}\n </p>\n }\n </div>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n Type,\n computed,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n Star20,\n Star24,\n Star32,\n StarFilled20,\n StarFilled24,\n StarFilled32,\n StarHalf20,\n StarHalf24,\n StarHalf32,\n} from '@mozaic-ds/icons-angular';\n\nexport type MozStarRatingSize = 's' | 'm' | 'l';\nexport type MozStarRatingAppearance = 'standard' | 'accent';\n\n@Component({\n selector: 'moz-star-rating',\n imports: [NgClass, NgComponentOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './star-rating.html',\n styleUrls: ['./star-rating.scss'],\n})\nexport class MozStarRatingComponent {\n /**\n * The current rating value of the component.\n * Used with two-way binding [(value)].\n * When the rating changes (via click or keyboard), the model is automatically updated.\n */\n value = model<number>(0);\n\n /**\n * Determines whether the rating is interactive or read-only.\n * When true, all user interactions (click, hover, keyboard) are disabled.\n * Automatically set to true when `compact`, `href`, or `text` are provided.\n */\n readonly = input<boolean>(true);\n\n /**\n * Enables a compact display mode that shows only one star instead of five.\n * Typically used for summaries or quick visual cues.\n * When enabled, the component automatically becomes read-only.\n */\n compact = input<boolean>(false);\n\n /**\n * Defines the visual size of the star icons and the accompanying text.\n */\n size = input<MozStarRatingSize>('s');\n\n /**\n * Specifies the color scheme of the stars.\n */\n appearance = input<MozStarRatingAppearance>('accent');\n\n /**\n * Optional text displayed next to the star rating.\n * If provided, the component automatically becomes read-only.\n */\n text = input<string | null>(null);\n\n /**\n * URL for the link (for external links).\n */\n href = input<string | null>(null);\n\n /**\n * Where to open the link.\n */\n target = input<string | null>(null);\n\n // -------- logique dérivée --------\n\n readonly maxValue = computed(() => (this.compact() ? 1 : 5));\n\n readonly isReadonly = computed(\n () =>\n this.readonly() ||\n this.compact() ||\n !!this.href() ||\n !!(this.text() && this.text()!.trim().length)\n );\n\n readonly hasInfoText = computed(() => !!(this.text() || this.href()));\n\n readonly ariaLabel = computed(() => `Note ${this.displayValue()} sur ${this.maxValue()}`);\n\n readonly stars = computed(() => Array.from({ length: this.maxValue() }, (_, i) => i));\n\n readonly rootClasses = computed(() => ({\n 'mc-star-rating': true,\n 'mc-star-rating--link': !!this.href(),\n 'mc-star-rating--slider': !this.isReadonly(),\n 'mc-star-rating--s': this.size() === 's',\n 'mc-star-rating--m': this.size() === 'm',\n 'mc-star-rating--l': this.size() === 'l',\n 'mc-star-rating--standard': this.appearance() === 'standard',\n 'mc-star-rating--accent': this.appearance() === 'accent',\n }));\n\n // Icon maps for each size\n private readonly iconMaps = {\n s: {\n star: Star20,\n 'star-filled': StarFilled20,\n 'star-half': StarHalf20,\n },\n m: {\n star: Star24,\n 'star-filled': StarFilled24,\n 'star-half': StarHalf24,\n },\n l: {\n star: Star32,\n 'star-filled': StarFilled32,\n 'star-half': StarHalf32,\n },\n };\n\n // -------- gestion preview / hover & clavier --------\n\n private hoverValue = signal<number | null>(null);\n\n /**\n * valeur réellement utilisée pour afficher les étoiles :\n * - en readonly : toujours value()\n * - en interactif : hoverValue si non nul, sinon value()\n */\n readonly displayValue = computed(() => {\n if (this.isReadonly()) return this.value();\n return this.hoverValue() ?? this.value();\n });\n\n private clampValue(newValue: number): number {\n const max = this.maxValue();\n // dans le JS ils ne descendent jamais sous 1 via clavier\n return Math.min(max, Math.max(1, Math.floor(newValue)));\n }\n\n /** JS: onClick(index) -> setValue(index+1) + updateStarIcons */\n onStarClick(index: number): void {\n if (this.isReadonly()) return;\n const newValue = this.clampValue(index + 1);\n this.hoverValue.set(null);\n this.value.set(newValue);\n }\n\n /** JS: onHover(index) -> hoverValue=index+1 + updateStarIcons(hoverValue) */\n onStarMouseMove(index: number): void {\n if (this.isReadonly()) return;\n this.hoverValue.set(this.clampValue(index + 1));\n }\n\n /** JS: resetHoverValue() -> hoverValue=null + updateStarIcons(value) */\n clearHover(): void {\n if (this.isReadonly()) return;\n this.hoverValue.set(null);\n }\n\n /** JS: onKeydown (ArrowRight / ArrowLeft) */\n onWrapperKeydown(event: KeyboardEvent): void {\n if (this.isReadonly()) return;\n\n const key = event.key;\n const max = this.maxValue();\n let current = Math.floor(this.value() || 0);\n\n if (key === 'ArrowRight') {\n current = Math.min(max, current + 1);\n } else if (key === 'ArrowLeft') {\n current = Math.max(1, current - 1);\n } else {\n return;\n }\n\n this.hoverValue.set(null);\n this.value.set(current);\n event.preventDefault();\n }\n\n // -------- calcul du composant d'étoile (JS: getStarComponent) --------\n\n getStarComponent(index: number): Type<unknown> {\n const compact = this.compact();\n const isReadonly = this.isReadonly();\n const baseValue = this.displayValue();\n const size = this.size();\n const iconMap = this.iconMaps[size];\n\n if (compact || baseValue >= index + 1) {\n return iconMap['star-filled'];\n } else if (isReadonly && baseValue >= index + 0.5) {\n // half star uniquement en readonly comme en JS\n return iconMap['star-half'];\n } else {\n return iconMap['star'];\n }\n }\n}\n","@if (href()) {\n<a [ngClass]=\"rootClasses()\" [href]=\"href()!\" [attr.target]=\"target()\">\n <div\n class=\"mc-star-rating__wrapper\"\n [attr.tabindex]=\"isReadonly() ? -1 : 0\"\n [attr.role]=\"isReadonly() ? 'img' : 'slider'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-readonly]=\"isReadonly() ? true : null\"\n [attr.aria-valuemin]=\"!isReadonly() ? 0 : null\"\n [attr.aria-valuemax]=\"!isReadonly() ? maxValue() : null\"\n [attr.aria-valuenow]=\"!isReadonly() ? value() : null\"\n (keydown)=\"isReadonly() ? null : onWrapperKeydown($event)\"\n (mouseleave)=\"isReadonly() ? null : clearHover()\"\n (blur)=\"isReadonly() ? null : clearHover()\"\n >\n @for (index of stars(); track index) {\n <span\n class=\"mc-star-rating__icon\"\n (click)=\"isReadonly() ? null : onStarClick(index)\"\n (mousemove)=\"isReadonly() ? null : onStarMouseMove(index)\"\n >\n <ng-container [ngComponentOutlet]=\"getStarComponent(index)\"></ng-container>\n </span>\n }\n </div>\n\n @if (hasInfoText()) {\n <span class=\"mc-star-rating__info\">\n {{ text() || href() }}\n </span>\n }\n</a>\n} @else {\n<div [ngClass]=\"rootClasses()\">\n <div\n class=\"mc-star-rating__wrapper\"\n [attr.tabindex]=\"isReadonly() ? -1 : 0\"\n [attr.role]=\"isReadonly() ? 'img' : 'slider'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-readonly]=\"isReadonly() ? true : null\"\n [attr.aria-valuemin]=\"!isReadonly() ? 0 : null\"\n [attr.aria-valuemax]=\"!isReadonly() ? maxValue() : null\"\n [attr.aria-valuenow]=\"!isReadonly() ? value() : null\"\n (keydown)=\"isReadonly() ? null : onWrapperKeydown($event)\"\n (mouseleave)=\"isReadonly() ? null : clearHover()\"\n (blur)=\"isReadonly() ? null : clearHover()\"\n >\n @for (index of stars(); track index) {\n <span\n class=\"mc-star-rating__icon\"\n (click)=\"isReadonly() ? null : onStarClick(index)\"\n (mousemove)=\"isReadonly() ? null : onStarMouseMove(index)\"\n >\n <ng-container [ngComponentOutlet]=\"getStarComponent(index)\"></ng-container>\n </span>\n }\n </div>\n\n @if (hasInfoText()) {\n <span class=\"mc-star-rating__info\">\n {{ text() || href() }}\n </span>\n }\n</div>\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, computed, input, model } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ChevronRight20 } from '@mozaic-ds/icons-angular';\n\nexport type MozBuiltInMenuItemTarget = '_self' | '_blank' | '_parent' | '_top';\n\nexport type MozBuiltInMenuItem = {\n label: string;\n icon?: Type<unknown>;\n href?: string;\n routerLink?: string | unknown[];\n target?: MozBuiltInMenuItemTarget;\n};\n\n/**\n * A built-in menu is a structured list of navigational or interactive options,\n * typically displayed as a vertical stack.\n */\n@Component({\n selector: 'moz-built-in-menu',\n templateUrl: './built-in-menu.html',\n styleUrls: ['./built-in-menu.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterModule, NgComponentOutlet, ChevronRight20],\n})\nexport class BuiltInMenuComponent {\n /**\n * Items displayed in the menu.\n */\n items = input.required<MozBuiltInMenuItem[]>();\n\n /**\n * Index of the currently selected menu item.\n * Used with two-way binding: [(selectedIndex)].\n */\n selectedIndex = model<number | null>(null);\n\n /**\n * When enabled, adds a visible border around the wrapper.\n */\n outlined = input(false);\n\n /**\n * Accessible label for the navigation.\n */\n ariaLabel = input<string>('menu');\n\n readonly hostClasses = computed(() =>\n ['mc-built-in-menu', this.outlined() ? 'mc-built-in-menu--outlined' : '']\n .filter(Boolean)\n .join(' ')\n );\n\n isSelected(index: number): boolean {\n return this.selectedIndex() === index;\n }\n\n onItemClick(index: number, event: Event): void {\n if (this.selectedIndex() !== index) {\n this.selectedIndex.set(index);\n }\n\n const target = event.currentTarget as HTMLAnchorElement | HTMLButtonElement | null;\n if (target && target instanceof HTMLAnchorElement && target.getAttribute('href') === '#') {\n event.preventDefault();\n }\n }\n}\n","<nav [class]=\"hostClasses()\" role=\"navigation\" [attr.aria-label]=\"ariaLabel()\">\n <ul class=\"mc-built-in-menu__list\">\n @for (item of items(); let index = $index; track index) {\n <li\n class=\"mc-built-in-menu__item\"\n [class.mc-built-in-menu__item--selected]=\"isSelected(index)\"\n [attr.aria-current]=\"isSelected(index) ? 'true' : null\"\n >\n @if (item.href) {\n <a\n class=\"mc-built-in-menu__link\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target || '_self'\"\n (click)=\"onItemClick(index, $event)\"\n >\n @if (item.icon) {\n <span class=\"mc-built-in-menu__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n\n <span class=\"mc-built-in-menu__label\">{{ item.label }}</span>\n\n <ChevronRight20 class=\"mc-built-in-menu__icon\" />\n </a>\n } @else if (item.routerLink) {\n <a\n class=\"mc-built-in-menu__link\"\n [routerLink]=\"item.routerLink\"\n [attr.target]=\"item.target || '_self'\"\n (click)=\"onItemClick(index, $event)\"\n >\n @if (item.icon) {\n <span class=\"mc-built-in-menu__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n\n <span class=\"mc-built-in-menu__label\">{{ item.label }}</span>\n\n <ChevronRight20 class=\"mc-built-in-menu__icon\" />\n </a>\n } @else {\n <button type=\"button\" class=\"mc-built-in-menu__button\" (click)=\"onItemClick(index, $event)\">\n @if (item.icon) {\n <span class=\"mc-built-in-menu__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n\n <span class=\"mc-built-in-menu__label\">{{ item.label }}</span>\n\n <ChevronRight20 class=\"mc-built-in-menu__icon\" />\n </button>\n }\n </li>\n }\n </ul>\n</nav>\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { BuiltInMenuComponent, MozBuiltInMenuItem } from '../built-in-menu/built-in-menu';\nimport { CheckCircleFilled24 } from '@mozaic-ds/icons-angular';\n\n/**\n * A check-list menu is a structured vertical list where each item represents a distinct section of content.\n * It wraps moz-built-in-menu and adds a visual checked state using an icon.\n */\nexport type MozCheckListMenuItem = Omit<MozBuiltInMenuItem, 'icon'> & { checked: boolean };\n\n@Component({\n selector: 'moz-check-list-menu',\n templateUrl: './check-list-menu.html',\n styleUrls: ['./check-list-menu.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [BuiltInMenuComponent],\n})\nexport class MozCheckListMenuComponent {\n /**\n * Defines the menu items, each of which sets a checked state and can act as a button or link.\n */\n items = input<MozCheckListMenuItem[]>([]);\n\n /**\n * When enabled, adds a visible border around the wrapper.\n */\n outlined = input(false);\n\n /**\n * Currently selected item index (two-way bindable with [(selectedIndex)]).\n */\n selectedIndex = model<number | null>(null);\n\n /**\n * Internal mapping to BuiltInMenuItem with an icon for checked items.\n */\n readonly menuItems = computed<MozBuiltInMenuItem[]>(() =>\n this.items().map((item) => ({\n ...item,\n icon: item.checked ? CheckCircleFilled24 : undefined,\n }))\n );\n}\n","<moz-built-in-menu\n [items]=\"menuItems()\"\n [outlined]=\"outlined()\"\n [selectedIndex]=\"selectedIndex()\"\n (selectedIndexChange)=\"selectedIndex.set($event)\"\n></moz-built-in-menu>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Check20, ChevronRight20 } from '@mozaic-ds/icons-angular';\n\n/**\n * A stepper is a navigation component that guides users through a sequence of steps\n * in a structured process. It visually represents progress, completed steps, and\n * upcoming steps, helping users understand their position within a workflow.\n */\nexport interface MozStepperInlineStep {\n /**\n * Label of the step.\n */\n label: string;\n /**\n * Optional additional information under the label.\n */\n additionalInfo?: string;\n}\n\n@Component({\n selector: 'moz-stepper-inline',\n templateUrl: './stepper-inline.html',\n styleUrls: ['./stepper-inline.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [Check20, ChevronRight20],\n})\nexport class MozStepperInlineComponent {\n /**\n * Current step of the stepper inline (1-based index).\n */\n currentStep = input<number>(1);\n\n /**\n * Steps of the stepper inline.\n */\n steps = input<MozStepperInlineStep[]>([]);\n\n /**\n * Clamped current step between 1 and steps.length.\n */\n readonly safeStep = computed(() => {\n const steps = this.steps();\n const max = steps.length || 1;\n const raw = this.currentStep();\n return Math.min(Math.max(raw, 1), max);\n });\n\n /**\n * Derived state for each step: completed / current.\n */\n readonly stepStates = computed(() =>\n this.steps().map((_, i) => ({\n completed: i + 1 < this.safeStep(),\n current: i + 1 === this.safeStep(),\n }))\n );\n}\n","<nav class=\"mc-stepper-inline\" aria-label=\"Stepper\">\n <ol class=\"mc-stepper-inline__container\">\n @for (step of steps(); let i = $index; track i) {\n <li\n class=\"mc-stepper-inline__item\"\n [class.is-completed]=\"stepStates()[i].completed\"\n [attr.tabindex]=\"stepStates()[i].completed ? 0 : null\"\n >\n @if (stepStates()[i].completed) {\n <Check20 class=\"mc-stepper-inline__icon mc-stepper-inline__icon--check\" aria-hidden=\"true\" />\n } @else {\n <span class=\"mc-stepper-inline__circle\" [class.is-current]=\"stepStates()[i].current\">\n {{ i + 1 }}\n </span>\n }\n\n <div class=\"mc-stepper-inline__content\">\n <span class=\"mc-stepper-inline__label\" [class.is-current]=\"stepStates()[i].current\">\n {{ step.label }}\n </span>\n @if (step.additionalInfo) {\n <span class=\"mc-stepper-inline__additional\">\n {{ step.additionalInfo }}\n </span>\n }\n </div>\n\n @if (i < steps().length - 1) {\n <ChevronRight20 class=\"mc-stepper-inline__icon mc-stepper-inline__icon--chevron\" />\n }\n </li>\n }\n </ol>\n</nav>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Check24 } from '@mozaic-ds/icons-angular';\n\n/**\n * A stepper is a navigation component that guides users through a sequence of steps\n * in a structured process. It visually represents progress, completed steps, and\n * upcoming steps, helping users understand their position within a workflow.\n */\nexport interface MozStepperStackedStep {\n /**\n * Label of the step.\n */\n label: string;\n /**\n * Optional additional information under the label.\n */\n additionalInfo?: string;\n}\n\n@Component({\n selector: 'moz-stepper-stacked',\n templateUrl: './stepper-stacked.html',\n styleUrls: ['./stepper-stacked.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [Check24],\n})\nexport class MozStepperStackedComponent {\n /**\n * Current step of the stepper stacked (1-based index).\n */\n currentStep = input<number>(1);\n\n /**\n * Steps of the stepper stacked.\n */\n steps = input<MozStepperStackedStep[]>([]);\n\n /**\n * Clamped current step between 1 and steps.length.\n */\n readonly safeStep = computed(() => {\n const steps = this.steps();\n const max = steps.length || 1;\n const raw = this.currentStep();\n return Math.min(Math.max(raw, 1), max);\n });\n\n /**\n * Derived state for each step: completed / current.\n */\n readonly stepStates = computed(() =>\n this.steps().map((_, i) => ({\n completed: i + 1 < this.safeStep(),\n current: i + 1 === this.safeStep(),\n }))\n );\n}\n","<nav class=\"mc-stepper-stacked\" aria-label=\"Stepper\">\n <ol class=\"mc-stepper-stacked__container\">\n @for (step of steps(); let i = $index; track i) {\n <li\n class=\"mc-stepper-stacked__item\"\n [class.is-current]=\"stepStates()[i].current\"\n [class.has-additional]=\"!!step.additionalInfo\"\n >\n <div class=\"mc-stepper-stacked__indicator\">\n @if (stepStates()[i].completed) {\n <Check24\n class=\"mc-stepper-stacked__icon mc-stepper-stacked__icon--check\"\n aria-hidden=\"true\"\n />\n } @else {\n <span class=\"mc-stepper-stacked__circle\" [class.is-current]=\"stepStates()[i].current\">\n {{ i + 1 }}\n </span>\n }\n </div>\n <div class=\"mc-stepper-stacked__content\">\n <span class=\"mc-stepper-stacked__label\" [class.is-current]=\"stepStates()[i].current\">\n {{ step.label }}\n </span>\n @if (step.additionalInfo) {\n <span class=\"mc-stepper-stacked__additional\">\n {{ step.additionalInfo }}\n </span>\n }\n </div>\n </li>\n }\n </ol>\n</nav>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { ArrowBack24, ArrowNext24 } from '@mozaic-ds/icons-angular';\n\n/**\n * Step position in the stepper workflow.\n */\nexport type MozStepperBottomBarStep = 'start' | 'middle' | 'end';\n\n/**\n * Stepper Bottom Bar component for navigation in multi-step processes.\n *\n * @description\n * The stepper bottom bar provides navigation controls for multi-step workflows,\n * with cancel, previous, next, and validate buttons that adapt based on the current step.\n */\n@Component({\n selector: 'moz-stepper-bottom-bar',\n templateUrl: './stepper-bottom-bar.html',\n styleUrls: ['./stepper-bottom-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ArrowBack24, ArrowNext24],\n})\nexport class MozStepperBottomBarComponent {\n /**\n * Step of the process.\n */\n step = input<MozStepperBottomBarStep>('start');\n\n /**\n * If `true`, display the cancel button.\n */\n hasCancel = input<boolean>(true);\n\n /**\n * Text for the cancel button.\n */\n cancelText = input<string>('Cancel');\n\n /**\n * Text for the previous button.\n */\n previousText = input<string>('Previous');\n\n /**\n * Text for the next button.\n */\n nextText = input<string>('Next');\n\n /**\n * Text for the validate button.\n */\n validateText = input<string>('Validate');\n\n /**\n * Event emitted when cancel button is clicked.\n */\n cancel = output<void>();\n\n /**\n * Event emitted when previous button is clicked.\n */\n previous = output<void>();\n\n /**\n * Event emitted when next button is clicked.\n */\n next = output<void>();\n\n /**\n * Event emitted when validate button is clicked.\n */\n validate = output<void>();\n\n handleCancel() {\n this.cancel.emit();\n }\n\n handlePrevious() {\n this.previous.emit();\n }\n\n handleNext() {\n this.next.emit();\n }\n\n handleValidate() {\n this.validate.emit();\n }\n}\n","<div class=\"mc-stepper-bottom-bar\">\n <div class=\"mc-divider-horizontal mc-stepper-bottom-bar__divider\"></div>\n <div class=\"mc-stepper-bottom-bar__left\">\n @if (hasCancel()) {\n <button\n type=\"button\"\n class=\"mc-button mc-button--ghost mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handleCancel()\"\n >\n {{ cancelText() }}\n </button>\n\n <button\n type=\"button\"\n class=\"mc-button mc-button--ghost mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"cancelText()\"\n (click)=\"handleCancel()\"\n >\n {{ cancelText() }}\n </button>\n }\n </div>\n\n <div class=\"mc-stepper-bottom-bar__right\">\n @if (step() !== 'start') {\n <button\n type=\"button\"\n class=\"mc-button mc-button--outlined mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handlePrevious()\"\n >\n {{ previousText() }}\n </button>\n\n <button\n type=\"button\"\n class=\"mc-button mc-button--outlined mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"previousText()\"\n (click)=\"handlePrevious()\"\n >\n <ArrowBack24 class=\"mc-stepper-bottom-bar__icon\" />\n </button>\n } @if (step() !== 'end') {\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handleNext()\"\n >\n {{ nextText() }}\n </button>\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"nextText()\"\n (click)=\"handleNext()\"\n >\n <ArrowNext24 class=\"mc-stepper-bottom-bar__icon\" />\n </button>\n } @if (step() === 'end') {\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handleValidate()\"\n >\n {{ validateText() }}\n </button>\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"validateText()\"\n (click)=\"handleValidate()\"\n >\n {{ validateText() }}\n </button>\n }\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport {\n ArrowBack24,\n HelpCircle24,\n Menu24,\n Notification24,\n Search24,\n} from '@mozaic-ds/icons-angular';\nimport { MozSelectComponent } from '../select/select';\nimport { MozStatusBadgeComponent, type MozStatusBadgeStatus } from '../status-badge/status-badge';\nimport { MozTagComponent } from '../tag/tag';\nimport { MozTabItem, MozTabsComponent } from '../tabs/tabs';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\nexport interface MozPageHeaderScope {\n id?: string;\n text: string;\n value: string | number;\n attributes?: Record<string, string | boolean | number>;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'moz-page-header',\n templateUrl: './page-header.html',\n styleUrls: ['./page-header.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n MozIconButtonComponent,\n MozTagComponent,\n MozSelectComponent,\n MozStatusBadgeComponent,\n MozTabsComponent,\n ArrowBack24,\n HelpCircle24,\n Menu24,\n Notification24,\n Search24,\n MozIconButtonComponent,\n MozTagComponent,\n ReactiveFormsModule,\n MozSelectComponent,\n FormsModule,\n MozTabsComponent,\n ],\n})\nexport class MozPageHeaderComponent {\n title = input.required<string>();\n shadow = input<boolean>(false);\n backButton = input<boolean>(false);\n searchButton = input<boolean>(false);\n helpButton = input<boolean>(false);\n notificationButton = input<boolean>(false);\n status = input<MozStatusBadgeStatus>();\n statusLabel = input<string>();\n extraInfo = input<string>();\n scope = input<string | MozPageHeaderScope[]>();\n scopeValue = input<string | number | boolean>();\n scopePlaceholder = input<string>();\n tabs = input<MozTabItem[]>();\n activeTab = model<number>(0);\n\n readonly back = output<void>();\n readonly search = output<void>();\n readonly help = output<void>();\n readonly notification = output<void>();\n readonly toggleMenu = output<void>();\n readonly toggleScope = output<boolean | undefined>();\n readonly scopeValueChange = output<string | number | boolean>();\n readonly activeTabChange = output<number>();\n\n readonly classes = computed(() => ({\n 'mc-page-header': true,\n 'mc-page-header--with-shadow': this.shadow(),\n }));\n\n readonly isScopeString = computed(() => typeof this.scope() === 'string');\n readonly isScopeArray = computed(() => Array.isArray(this.scope()));\n readonly isScopeValueBoolean = computed(() => typeof this.scopeValue() === 'boolean');\n readonly isScopeValueNotBoolean = computed(() => typeof this.scopeValue() !== 'boolean');\n\n readonly hasStatusOrExtraInfo = computed(() => this.status() || this.extraInfo());\n readonly hasStatusBadge = computed(() => this.statusLabel() && this.status());\n readonly hasIconButtons = computed(\n () => this.searchButton() || this.helpButton() || this.notificationButton()\n );\n\n readonly scopeAsArray = computed(() => {\n const scope = this.scope();\n return Array.isArray(scope) ? scope : [];\n });\n\n readonly mobileTagLabel = computed(() => {\n const scope = this.scope();\n if (!Array.isArray(scope)) return '';\n const scopeValue = this.scopeValue();\n if (!scopeValue) {\n return this.scopePlaceholder() ?? '';\n }\n const found = scope.find((opt) => opt.value === scopeValue);\n return found?.text ?? this.scopePlaceholder() ?? '';\n });\n\n onBack(): void {\n this.back.emit();\n }\n\n onSearch(): void {\n this.search.emit();\n }\n\n onHelp(): void {\n this.help.emit();\n }\n\n onNotification(): void {\n this.notification.emit();\n }\n\n onToggleMenu(): void {\n this.toggleMenu.emit();\n }\n\n onToggleScope(): void {\n this.toggleScope.emit(true);\n }\n\n onScopeTagClick(): void {\n const currentValue = this.scopeValue() as boolean;\n this.scopeValueChange.emit(!currentValue);\n }\n\n onScopeSelectChange(value: string | number): void {\n this.scopeValueChange.emit(value);\n }\n\n onActiveTabChange(index: number): void {\n this.activeTabChange.emit(index);\n }\n}\n","<div [ngClass]=\"classes()\">\n <div class=\"mc-page-header__top-wrapper\">\n <div class=\"mc-page-header__top-content\">\n @if (backButton()) {\n <moz-icon-button [ghost]=\"true\" ariaLabel=\"Back button\" (click)=\"onBack()\">\n <ArrowBack24 icon />\n </moz-icon-button>\n }\n\n <div class=\"mc-page-header__content-wrapper\">\n <span class=\"mc-page-header__title\">\n {{ title() }}\n </span>\n\n @if (hasStatusOrExtraInfo()) {\n <div class=\"mc-page-header__info-wrapper\">\n @if (hasStatusBadge()) {\n <moz-status-badge [label]=\"statusLabel()!\" [status]=\"status()!\" />\n } @if (extraInfo()) {\n <span class=\"mc-page-header__extra-info\">\n {{ extraInfo() }}\n </span>\n }\n </div>\n }\n\n <ng-content select=\"[content]\" />\n </div>\n </div>\n\n <div class=\"mc-page-header__actions-wrapper\">\n <moz-icon-button\n class=\"mc-page-header__burger-menu\"\n [ghost]=\"true\"\n ariaLabel=\"Burger menu\"\n (click)=\"onToggleMenu()\"\n >\n <Menu24 icon />\n </moz-icon-button>\n\n <ng-content select=\"[actions]\">\n <div class=\"mc-page-header__actions-content\">\n @if (hasIconButtons()) {\n <div class=\"mc-page-header__icons\">\n @if (searchButton()) {\n <moz-icon-button [ghost]=\"true\" ariaLabel=\"Search button\" (click)=\"onSearch()\">\n <Search24 icon />\n </moz-icon-button>\n } @if (helpButton()) {\n <moz-icon-button [ghost]=\"true\" ariaLabel=\"Help button\" (click)=\"onHelp()\">\n <HelpCircle24 icon />\n </moz-icon-button>\n } @if (notificationButton()) {\n <moz-icon-button\n [ghost]=\"true\"\n ariaLabel=\"Notification button\"\n (click)=\"onNotification()\"\n >\n <Notification24 icon />\n </moz-icon-button>\n }\n </div>\n } @if (isScopeString() && isScopeValueBoolean()) {\n <moz-tag\n type=\"interactive\"\n [id]=\"'scope-tag'\"\n [label]=\"$any(scope())\"\n (click)=\"onScopeTagClick()\"\n />\n } @if (isScopeArray() && isScopeValueNotBoolean()) {\n <div class=\"mc-page-header__scope--select\">\n <moz-select\n [name]=\"'scope-select'\"\n id=\"scope-select\"\n size=\"s\"\n [options]=\"scopeAsArray()\"\n [placeholder]=\"scopePlaceholder()\"\n [ngModel]=\"scopeValue()\"\n (ngModelChange)=\"onScopeSelectChange($event)\"\n />\n </div>\n\n <div class=\"mc-page-header__scope--tag\">\n <moz-tag\n type=\"interactive\"\n [id]=\"'mobile-scope-tag'\"\n [label]=\"mobileTagLabel()\"\n (click)=\"onToggleScope()\"\n />\n </div>\n }\n </div>\n </ng-content>\n </div>\n </div>\n\n @if (tabs() && tabs()!.length > 0) {\n <div class=\"mc-page-header__tabs\">\n <moz-tabs\n [tabs]=\"tabs()!\"\n [(selectedIndex)]=\"activeTab\"\n (selectedIndexChange)=\"onActiveTabChange($event)\"\n />\n </div>\n }\n</div>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, input, computed } from '@angular/core';\n\nexport type MozTileAppearance = 'primary' | 'secondary' | 'inverse';\n\n@Component({\n selector: 'moz-tile',\n imports: [NgClass, NgTemplateOutlet],\n templateUrl: './tile.html',\n styleUrls: ['./tile.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozBasicTileComponent {\n appearance = input<MozTileAppearance>('primary');\n isBordered = input(false);\n extraAction = input(false);\n\n readonly classes = computed(() => ({\n 'mc-tile': true,\n [`mc-tile--${this.appearance()}`]: this.appearance() !== 'primary',\n 'mc-tile--bordered': this.isBordered(),\n }));\n}\n","<div [ngClass]=\"classes()\">\n <div class=\"mc-tile__header\">\n @if (extraAction()) {\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n <div class=\"mc-tile__action\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n } @else {\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n }\n </div>\n <div class=\"mc-tile__content\">\n <ng-content select=\"[segmented]\"></ng-content>\n </div>\n\n <ng-template #bodyTemplate>\n <ng-content select=\"[body]\"></ng-content>\n </ng-template>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type MozTileSelectableType = 'checkbox' | 'radio';\nexport type MozTileInputVerticalPosition = 'top' | 'center';\nexport type MozTileInputPosition = 'left' | 'right';\nexport type MozTileSelectableAppearance = 'primary';\n\n@Component({\n selector: 'moz-tile-selectable',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n templateUrl: './selectable-tile.html',\n styleUrls: ['./selectable-tile.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTileSelectableComponent),\n multi: true,\n },\n ],\n})\nexport class MozTileSelectableComponent implements ControlValueAccessor {\n appearance = input<MozTileSelectableAppearance>('primary');\n bordered = input(false);\n\n name = input<string>('tile-select-group');\n value = input<string>('');\n checked = input(false);\n disabled = input(false);\n inputVerticalPosition = input<MozTileInputVerticalPosition>('top');\n inputPosition = input<MozTileInputPosition>('right');\n inputType = input<MozTileSelectableType>('checkbox');\n\n // ControlValueAccessor properties\n private innerValue: boolean | string = '';\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (value: boolean | string) => void = () => {};\n\n protected classes = computed(() => {\n const cls = ['mc-tile', 'mc-tile--selectable'];\n\n // appearance\n if (this.appearance() !== 'primary') cls.push(`mc-tile--${this.appearance()}`);\n\n // border\n if (this.bordered()) cls.push('mc-tile--bordered');\n\n // disabled\n if (this.disabled()) cls.push('mc-tile--disabled');\n\n // input vertical position\n cls.push(`mc-tile--input-${this.inputVerticalPosition()}`);\n\n // input position\n cls.push(`mc-tile--input-${this.inputPosition()}`);\n\n return cls.join(' ');\n });\n\n protected isCheckbox = computed(() => this.inputType() === 'checkbox');\n protected isRadio = computed(() => this.inputType() === 'radio');\n\n // ControlValueAccessor methods\n writeValue(value: boolean | string): void {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n registerOnChange(fn: (value: boolean | string) => void): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n // Méthode appelée quand l'utilisateur clique sur le tile\n onTileChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n\n if (this.isCheckbox()) {\n this.innerValue = target.checked;\n this.onChangeCallback(target.checked);\n } else {\n this.innerValue = target.value;\n this.onChangeCallback(target.value);\n }\n\n this.onTouchedCallback();\n }\n\n // Getter pour la valeur actuelle (utilisé dans le template)\n get isChecked(): boolean {\n if (this.isCheckbox()) {\n return this.innerValue as boolean;\n } else {\n return this.innerValue === this.value();\n }\n }\n}\n","<label [ngClass]=\"classes()\" [class.mc-tile--disabled]=\"disabled()\">\n <div class=\"mc-tile__header\">\n <div class=\"mc-tile__body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"mc-tile__action\">\n @if (isCheckbox()) {\n <input\n type=\"checkbox\"\n class=\"mc-checkbox__input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled()\"\n (change)=\"onTileChange($event)\"\n />\n } @else if (isRadio()) {\n <input\n type=\"radio\"\n class=\"mc-radio__input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled()\"\n (change)=\"onTileChange($event)\"\n />\n }\n </div>\n </div>\n <div class=\"mc-tile__content\">\n <ng-content select=\"[segmented]\"></ng-content>\n </div>\n</label>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { MozButtonComponent } from '../../button/button';\nimport { MozIconButtonComponent } from '../../icon-button/icon-button';\nimport { ChevronDown24 } from '@mozaic-ds/icons-angular';\n\nexport type MozTileExpandableTrigger = 'container' | 'button' | 'icon';\n\n@Component({\n selector: 'moz-tile-expandable',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './expandable-tile.html',\n styleUrls: ['./expandable-tile.scss'],\n imports: [NgClass, NgTemplateOutlet, MozButtonComponent, MozIconButtonComponent, ChevronDown24],\n})\nexport class MozTileExpandableComponent {\n triggerMode = input<MozTileExpandableTrigger>('container');\n id = input<number>(0);\n expanded = signal(false);\n contentId = `tile-content-${this.id()}`;\n\n isContainerTrigger = computed(() => this.triggerMode() === 'container');\n isIconTrigger = computed(() => this.triggerMode() === 'icon');\n isButtonTrigger = computed(() => this.triggerMode() === 'button');\n\n toggle() {\n this.expanded.update((v) => !v);\n }\n\n hostClass = computed(() => {\n const cls = ['mc-tile', 'mc-tile--expandable'];\n\n if (!this.isContainerTrigger()) {\n cls.push(`mc-tile--trigger-${this.triggerMode()}`);\n }\n\n return cls.join(' ');\n });\n}\n","<div [ngClass]=\"hostClass()\">\n @if (isContainerTrigger()) {\n <button\n class=\"mc-tile__header\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"contentId\"\n (click)=\"toggle()\"\n >\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n <div class=\"mc-tile__action\"></div>\n </button>\n } @else {\n <div class=\"mc-tile__header\">\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n <div class=\"mc-tile__action\">\n @if (isButtonTrigger()) {\n <button\n moz-button\n class=\"mc-tile__action-button\"\n [ghost]=\"true\"\n [iconPosition]=\"'right'\"\n (click)=\"toggle(); $event.stopPropagation()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"contentId\"\n >\n <span class=\"mc-tile__action-label\">See more</span>\n <ChevronDown24 icon />\n </button>\n } @else if (isIconTrigger()) {\n <moz-icon-button\n class=\"mc-tile__action-button\"\n [ghost]=\"true\"\n [ariaLabel]=\"'Toggle content'\"\n (click)=\"toggle(); $event.stopPropagation()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"contentId\"\n >\n <ChevronDown24 icon />\n </moz-icon-button>\n }\n </div>\n </div>\n }\n\n <div class=\"mc-tile__content\" [id]=\"contentId\" [attr.aria-hidden]=\"!expanded()\">\n <ng-content select=\"[segmented]\" />\n </div>\n\n <ng-template #bodyTemplate>\n <ng-content select=\"[body]\" />\n </ng-template>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"mozaic-ds-angular.mjs","sources":["../../../../projects/mozaic-ng/src/lib/link/link.ts","../../../../projects/mozaic-ng/src/lib/link/link.html","../../../../projects/mozaic-ng/src/lib/breadcrumb/breadcrumb.ts","../../../../projects/mozaic-ng/src/lib/breadcrumb/breadcrumb.html","../../../../projects/mozaic-ng/src/lib/loader/loader.ts","../../../../projects/mozaic-ng/src/lib/loader/loader.html","../../../../projects/mozaic-ng/src/lib/button/button.ts","../../../../projects/mozaic-ng/src/lib/button/button.html","../../../../projects/mozaic-ng/src/lib/button-wrapper/button-wrapper.ts","../../../../projects/mozaic-ng/src/lib/button-wrapper/button-wrapper.html","../../../../projects/mozaic-ng/src/lib/checkbox/checkbox.ts","../../../../projects/mozaic-ng/src/lib/checkbox/checkbox.html","../../../../projects/mozaic-ng/src/lib/checkbox-group/checkbox-group.ts","../../../../projects/mozaic-ng/src/lib/checkbox-group/checkbox-group.html","../../../../projects/mozaic-ng/src/lib/divider/divider.ts","../../../../projects/mozaic-ng/src/lib/divider/divider.html","../../../../projects/mozaic-ng/src/lib/overlay/overlay.ts","../../../../projects/mozaic-ng/src/lib/overlay/overlay.html","../../../../projects/mozaic-ng/src/lib/icon-button/icon-button.ts","../../../../projects/mozaic-ng/src/lib/icon-button/icon-button.html","../../../../projects/mozaic-ng/src/lib/drawer/drawer.ts","../../../../projects/mozaic-ng/src/lib/drawer/drawer.html","../../../../projects/mozaic-ng/src/lib/drawer/container/drawer-container.component.ts","../../../../projects/mozaic-ng/src/lib/drawer/drawer.service.ts","../../../../projects/mozaic-ng/src/lib/field/field.ts","../../../../projects/mozaic-ng/src/lib/field/field.html","../../../../projects/mozaic-ng/src/lib/field-group/field-group.ts","../../../../projects/mozaic-ng/src/lib/field-group/field-group.html","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-buffer/linear-progress-bar-buffer.ts","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-buffer/linear-progress-bar-buffer.html","../../../../projects/mozaic-ng/src/lib/file-uploader/item/file-uploader-item.ts","../../../../projects/mozaic-ng/src/lib/file-uploader/item/file-uploader-item.html","../../../../projects/mozaic-ng/src/lib/file-uploader/file-uploader.ts","../../../../projects/mozaic-ng/src/lib/file-uploader/file-uploader.html","../../../../projects/mozaic-ng/src/lib/loading-overlay/loading-overlay.ts","../../../../projects/mozaic-ng/src/lib/loading-overlay/loading-overlay.html","../../../../projects/mozaic-ng/src/lib/modal/modal.ts","../../../../projects/mozaic-ng/src/lib/modal/modal.html","../../../../projects/mozaic-ng/src/lib/modal/header/modal-header.component.ts","../../../../projects/mozaic-ng/src/lib/modal/header/modal-header.component.html","../../../../projects/mozaic-ng/src/lib/modal/body/modal-body.component.ts","../../../../projects/mozaic-ng/src/lib/modal/body/modal-body.component.html","../../../../projects/mozaic-ng/src/lib/modal/footer/modal-footer.component.ts","../../../../projects/mozaic-ng/src/lib/modal/footer/modal-footer.component.html","../../../../projects/mozaic-ng/src/lib/modal/container/modal-container.component.ts","../../../../projects/mozaic-ng/src/lib/modal/modal.service.ts","../../../../projects/mozaic-ng/src/lib/number-badge/number-badge.ts","../../../../projects/mozaic-ng/src/lib/number-badge/number-badge.html","../../../../projects/mozaic-ng/src/lib/select/select.ts","../../../../projects/mozaic-ng/src/lib/select/select.html","../../../../projects/mozaic-ng/src/lib/pagination/pagination.ts","../../../../projects/mozaic-ng/src/lib/pagination/pagination.html","../../../../projects/mozaic-ng/src/lib/password-input/password-input.directive.ts","../../../../projects/mozaic-ng/src/lib/pincode/pincode.ts","../../../../projects/mozaic-ng/src/lib/pincode/pincode.html","../../../../projects/mozaic-ng/src/lib/quantity-selector/quantity-selector.ts","../../../../projects/mozaic-ng/src/lib/quantity-selector/quantity-selector.html","../../../../projects/mozaic-ng/src/lib/radio/radio.ts","../../../../projects/mozaic-ng/src/lib/radio/radio.html","../../../../projects/mozaic-ng/src/lib/radio-group/radio-group.ts","../../../../projects/mozaic-ng/src/lib/radio-group/radio-group.html","../../../../projects/mozaic-ng/src/lib/status-dot/status-dot.ts","../../../../projects/mozaic-ng/src/lib/status-dot/status-dot.html","../../../../projects/mozaic-ng/src/lib/status-badge/status-badge.ts","../../../../projects/mozaic-ng/src/lib/status-badge/status-badge.html","../../../../projects/mozaic-ng/src/lib/status-notification/status-notification.ts","../../../../projects/mozaic-ng/src/lib/status-notification/status-notification.html","../../../../projects/mozaic-ng/src/lib/tabs/tabs.ts","../../../../projects/mozaic-ng/src/lib/tabs/tabs.html","../../../../projects/mozaic-ng/src/lib/tag/tag.ts","../../../../projects/mozaic-ng/src/lib/tag/tag.html","../../../../projects/mozaic-ng/src/lib/text-area/text-area.directive.ts","../../../../projects/mozaic-ng/src/lib/text-input/text-input.directive.ts","../../../../projects/mozaic-ng/src/lib/toggle/toggle.ts","../../../../projects/mozaic-ng/src/lib/toggle/toggle.html","../../../../projects/mozaic-ng/src/lib/flag/flag.ts","../../../../projects/mozaic-ng/src/lib/flag/flag.html","../../../../projects/mozaic-ng/src/lib/datepicker/datepicker.ts","../../../../projects/mozaic-ng/src/lib/datepicker/datepicker.html","../../../../projects/mozaic-ng/src/lib/tooltip/tooltip.ts","../../../../projects/mozaic-ng/src/lib/tooltip/tooltip.html","../../../../projects/mozaic-ng/src/lib/tooltip/tooltip.directive.ts","../../../../projects/mozaic-ng/src/lib/circular-progress-bar/circular-progress-bar.ts","../../../../projects/mozaic-ng/src/lib/circular-progress-bar/ciruclar-progress-bar.html","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-percentage/linear-progress-bar-percentage.ts","../../../../projects/mozaic-ng/src/lib/linear-progress-bar-percentage/linear-progress-bar-percentage.html","../../../../projects/mozaic-ng/src/lib/callout/callout.ts","../../../../projects/mozaic-ng/src/lib/callout/callout.html","../../../../projects/mozaic-ng/src/lib/avatar/avatar.ts","../../../../projects/mozaic-ng/src/lib/avatar/avatar.html","../../../../projects/mozaic-ng/src/lib/phone-number-input/phone-number-input.ts","../../../../projects/mozaic-ng/src/lib/phone-number-input/phone-number-input.html","../../../../projects/mozaic-ng/src/lib/toaster/toaster.ts","../../../../projects/mozaic-ng/src/lib/toaster/toaster.html","../../../../projects/mozaic-ng/src/lib/sidebar/sidebar.ts","../../../../projects/mozaic-ng/src/lib/sidebar/sidebar.html","../../../../projects/mozaic-ng/src/lib/segmented-control/segmented-control.ts","../../../../projects/mozaic-ng/src/lib/segmented-control/segmented-control.html","../../../../projects/mozaic-ng/src/lib/accordion/components/header/accordion-header.ts","../../../../projects/mozaic-ng/src/lib/accordion/components/header/accordion-header.html","../../../../projects/mozaic-ng/src/lib/accordion/components/content/accordion-content.ts","../../../../projects/mozaic-ng/src/lib/accordion/components/content/accordion-content.html","../../../../projects/mozaic-ng/src/lib/accordion/components/panel/accordion-panel.ts","../../../../projects/mozaic-ng/src/lib/accordion/accordion.ts","../../../../projects/mozaic-ng/src/lib/accordion/accordion.html","../../../../projects/mozaic-ng/src/lib/action-bottom-bar/action-bottom-bar.ts","../../../../projects/mozaic-ng/src/lib/action-bottom-bar/action-bottom-bar.html","../../../../projects/mozaic-ng/src/lib/action-listbox/action-listbox.ts","../../../../projects/mozaic-ng/src/lib/action-listbox/action-listbox.html","../../../../projects/mozaic-ng/src/lib/carousel/carousel.ts","../../../../projects/mozaic-ng/src/lib/carousel/carousel.html","../../../../projects/mozaic-ng/src/lib/status-message/status-message.ts","../../../../projects/mozaic-ng/src/lib/status-message/status-message.html","../../../../projects/mozaic-ng/src/lib/kpi/kpi.ts","../../../../projects/mozaic-ng/src/lib/kpi/kpi.html","../../../../projects/mozaic-ng/src/lib/stepper-compact/stepper-compact.ts","../../../../projects/mozaic-ng/src/lib/stepper-compact/stepper-compact.html","../../../../projects/mozaic-ng/src/lib/star-rating/star-rating.ts","../../../../projects/mozaic-ng/src/lib/star-rating/star-rating.html","../../../../projects/mozaic-ng/src/lib/built-in-menu/built-in-menu.ts","../../../../projects/mozaic-ng/src/lib/built-in-menu/built-in-menu.html","../../../../projects/mozaic-ng/src/lib/check-list-menu/check-list-menu.ts","../../../../projects/mozaic-ng/src/lib/check-list-menu/check-list-menu.html","../../../../projects/mozaic-ng/src/lib/stepper-inline/stepper-inline.ts","../../../../projects/mozaic-ng/src/lib/stepper-inline/stepper-inline.html","../../../../projects/mozaic-ng/src/lib/stepper-stacked/stepper-stacked.ts","../../../../projects/mozaic-ng/src/lib/stepper-stacked/stepper-stacked.html","../../../../projects/mozaic-ng/src/lib/stepper-bottom-bar/stepper-bottom-bar.ts","../../../../projects/mozaic-ng/src/lib/stepper-bottom-bar/stepper-bottom-bar.html","../../../../projects/mozaic-ng/src/lib/page-header/page-header.ts","../../../../projects/mozaic-ng/src/lib/page-header/page-header.html","../../../../projects/mozaic-ng/src/lib/tiles/tile/tile.ts","../../../../projects/mozaic-ng/src/lib/tiles/tile/tile.html","../../../../projects/mozaic-ng/src/lib/tiles/selectable/selectable-tile.ts","../../../../projects/mozaic-ng/src/lib/tiles/selectable/selectable-tile.html","../../../../projects/mozaic-ng/src/lib/tiles/expandable/expandable-tile.ts","../../../../projects/mozaic-ng/src/lib/tiles/expandable/expandable-tile.html","../../../../projects/mozaic-ng/src/mozaic-ds-angular.ts"],"sourcesContent":["import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { RouterLinkActive, RouterLinkWithHref, RouterModule } from '@angular/router';\n\nexport type MozLinkAppearance = 'secondary' | 'accent' | 'inverse' | 'standard';\nexport type MozLinkSize = 's' | 'm';\nexport type MozLinkIconPosition = 'left' | 'right' | 'only';\n\n@Component({\n selector: 'moz-link',\n imports: [RouterModule, NgClass, NgTemplateOutlet],\n templateUrl: './link.html',\n styleUrls: ['./link.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLinkComponent {\n href = input<string | undefined>();\n target = input<string | undefined>();\n appearance = input<MozLinkAppearance>('standard');\n size = input<MozLinkSize>('m');\n inline = input<boolean>(false);\n router = input<boolean>(false);\n iconPosition = input<MozLinkIconPosition>('left');\n current = input<boolean>(false);\n ariaCurrent = input<string | null>(null);\n\n private readonly routerLinkActive = inject(RouterLinkActive, {\n optional: true,\n });\n public readonly routerLink = inject(RouterLinkWithHref, { optional: true });\n\n readonly classes = computed(() => {\n return {\n [`mc-link--${this.appearance()}`]: this.appearance(),\n [`mc-link--${this.size()}`]: this.size(),\n 'mc-link--inline': this.inline() && !this.current(),\n 'mc-link--stand-alone': !this.inline(),\n 'mc-link--active': this.routerLinkActive?.isActive ?? false,\n 'mc-link--breadcrumb__current': this.current(),\n };\n });\n}\n","@if (router()) {\n<a\n class=\"mc-link\"\n [routerLink]=\"href()\"\n [ngClass]=\"classes()\"\n [attr.target]=\"target()\"\n [attr.aria-current]=\"ariaCurrent()\"\n>\n <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n} @else {\n<a\n class=\"mc-link\"\n [attr.href]=\"href()\"\n [ngClass]=\"classes()\"\n [attr.target]=\"target()\"\n [attr.aria-current]=\"ariaCurrent()\"\n>\n <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n}\n\n<ng-template #linkContent>\n @if(iconPosition() === 'left'){\n <span class=\"mc-link__icon\" aria-hidden=\"true\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n }\n\n <span class=\"mc-link__label\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n </span>\n\n @if(iconPosition() === 'right'){\n <span class=\"mc-link__icon\" aria-hidden=\"true\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n }\n</ng-template>\n\n<ng-template #iconTemplate>\n <ng-content select=\"[icon]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MozLinkComponent } from '../link/link';\n\nexport type MozBreadcrumbAppearance = 'standard' | 'inverse';\n\nexport interface MozBreadcrumbLink {\n label: string;\n href: string;\n router?: boolean;\n}\n\n@Component({\n selector: 'moz-breadcrumb',\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozLinkComponent, NgClass],\n})\nexport class MozBreadcrumbComponent {\n appearance = input<MozBreadcrumbAppearance>('standard');\n links = input<MozBreadcrumbLink[]>([]);\n\n readonly classObject = computed(() => {\n return {\n [`mc-breadcrumb--${this.appearance()}`]: this.appearance(),\n };\n });\n}\n","<nav class=\"mc-breadcrumb\" [ngClass]=\"classObject()\">\n <ul class=\"mc-breadcrumb__container\">\n @for (link of links(); track $index; let isLast = $last) {\n <li class=\"mc-breadcrumb__item\">\n <moz-link\n [href]=\"link.href\"\n [router]=\"link.router ?? false\"\n [appearance]=\"appearance()\"\n [inline]=\"true\"\n [current]=\"isLast\"\n [ariaCurrent]=\"isLast ? 'page' : null\"\n >\n {{ link.label }}\n </moz-link>\n </li>\n }\n </ul>\n</nav>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozLoaderAppearance = 'standard' | 'accent' | 'inverse';\nexport type MozLoaderSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-loader',\n imports: [NgClass],\n templateUrl: './loader.html',\n styleUrls: ['./loader.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLoaderComponent {\n appearance = input<MozLoaderAppearance>('standard');\n size = input<MozLoaderSize>('m');\n text = input<string>();\n\n readonly classes = computed(() => {\n return {\n [`mc-loader--${this.size()}`]: this.size(),\n [`mc-loader--${this.appearance()}`]: this.appearance(),\n [`mc-loader--text-visible`]: this.text() !== '',\n };\n });\n\n readonly viewBox = computed(() => {\n switch (this.size()) {\n case 's':\n return '0 0 24 24';\n case 'l':\n return '0 0 64 64';\n default:\n return '0 0 32 32';\n }\n });\n\n readonly circleRadius = computed(() => {\n switch (this.size()) {\n case 's':\n return 6;\n case 'l':\n return 19;\n default:\n return 9;\n }\n });\n}\n","<div class=\"mc-loader\" [ngClass]=\"classes()\">\n <span class=\"mc-loader__spinner\">\n <svg\n class=\"mc-loader__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.viewBox]=\"viewBox()\"\n aria-hidden=\"true\"\n >\n <circle\n class=\"mc-loader__path\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.r]=\"circleRadius()\"\n ></circle>\n </svg>\n </span>\n\n @if (text()) {\n <span class=\"mc-loader__text\" role=\"status\">{{ text() }}</span>\n }\n</div>\n","import {\n Component,\n TemplateRef,\n computed,\n contentChild,\n input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MozLoaderComponent } from '../loader/loader';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type MozButtonAppearance = 'standard' | 'accent' | 'danger' | 'inverse';\nexport type MozButtonSize = 's' | 'm' | 'l';\nexport type MozButtonIconPosition = 'left' | 'right' | 'only' | null;\nexport type MozButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n selector: 'button[moz-button]',\n templateUrl: './button.html',\n styleUrls: ['./button.scss'],\n imports: [MozLoaderComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClasses()',\n '[disabled]': 'disabled()',\n '[type]': 'type()',\n },\n})\nexport class MozButtonComponent {\n appearance = input<MozButtonAppearance>('standard');\n size = input<MozButtonSize>();\n disabled = input<boolean>();\n ghost = input<boolean>();\n outlined = input<boolean>();\n iconPosition = input<MozButtonIconPosition>(null);\n type = input<MozButtonType>('button');\n isLoading = input<boolean>();\n iconTpl = contentChild<TemplateRef<void>>('icon', { descendants: false });\n\n readonly hostClasses = computed(() => {\n const classes = ['mc-button'];\n\n if (this.appearance()) {\n classes.push(`mc-button--${this.appearance()}`);\n }\n if (this.size()) {\n classes.push(`mc-button--${this.size()}`);\n }\n if (this.ghost()) {\n classes.push('mc-button--ghost');\n }\n if (this.outlined()) {\n classes.push('mc-button--outlined');\n }\n if (this.iconPosition() === 'only') {\n classes.push('mc-button--icon-only');\n }\n\n return classes.join(' ');\n });\n}\n","@if ((iconPosition() === 'left' || iconPosition() === 'only') && !isLoading()) {\n<span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n</span>\n} @if (isLoading()) {\n<span class=\"mc-button__icon\" [style.position]=\"'absolute'\">\n <moz-loader size=\"s\" [appearance]=\"'inverse'\" />\n</span>\n} @if (iconPosition() !== 'only') {\n<span class=\"mc-button__label\" [style.visibility]=\"isLoading() ? 'hidden' : 'visible'\">\n <ng-content></ng-content>\n</span>\n} @if ((iconPosition() === 'right') && !isLoading()) {\n<span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n</span>\n}\n<ng-template #iconTemplate>\n <ng-content select=\"[icon]\"></ng-content>\n</ng-template>\n","import {\n Component,\n TemplateRef,\n computed,\n contentChild,\n input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MozLoaderComponent } from '../loader/loader';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n MozButtonAppearance,\n MozButtonSize,\n MozButtonIconPosition,\n MozButtonType,\n} from '../button/button';\n\n@Component({\n selector: 'moz-button',\n templateUrl: './button-wrapper.html',\n styleUrls: ['../button/button.scss'],\n imports: [MozLoaderComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[attr.disabled]': 'disabled() ? \"\" : null',\n },\n})\nexport class MozButtonWrapperComponent {\n appearance = input<MozButtonAppearance>('standard');\n size = input<MozButtonSize>();\n disabled = input<boolean>();\n ghost = input<boolean>();\n outlined = input<boolean>();\n iconPosition = input<MozButtonIconPosition>(null);\n type = input<MozButtonType>('button');\n isLoading = input<boolean>();\n iconTpl = contentChild<TemplateRef<void>>('icon', { descendants: false });\n\n readonly hostClasses = computed(() => {\n const classes = ['mc-button'];\n\n if (this.appearance()) {\n classes.push(`mc-button--${this.appearance()}`);\n }\n if (this.size()) {\n classes.push(`mc-button--${this.size()}`);\n }\n if (this.ghost()) {\n classes.push('mc-button--ghost');\n }\n if (this.outlined()) {\n classes.push('mc-button--outlined');\n }\n if (this.iconPosition() === 'only') {\n classes.push('mc-button--icon-only');\n }\n\n return classes.join(' ');\n });\n}\n","<button\n [class]=\"hostClasses()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n>\n @if ((iconPosition() === 'left' || iconPosition() === 'only') && !isLoading()) {\n <span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n } @if (isLoading()) {\n <span class=\"mc-button__icon\" [style.position]=\"'absolute'\">\n <moz-loader size=\"s\" [appearance]=\"'inverse'\" />\n </span>\n } @if (iconPosition() !== 'only') {\n <span class=\"mc-button__label\" [style.visibility]=\"isLoading() ? 'hidden' : 'visible'\">\n <ng-content></ng-content>\n </span>\n } @if ((iconPosition() === 'right') && !isLoading()) {\n <span class=\"mc-button__icon\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n </span>\n }\n</button>\n<ng-template #iconTemplate>\n <ng-content select=\"[icon]\"></ng-content>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\n\n@Component({\n selector: 'moz-checkbox',\n imports: [FormsModule, ReactiveFormsModule, NgClass],\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozCheckboxComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozCheckboxComponent implements ControlValueAccessor {\n id = input.required<string>();\n name = input<string | undefined>();\n label = input<string | undefined>();\n indeterminate = input(false);\n isInvalid = input(false);\n disabled = input(false);\n indented = input(false);\n\n public _value = signal(false);\n\n onChange: (_: boolean) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n readonly classObject = computed(() => {\n return {\n 'is-invalid': this.isInvalid(),\n };\n });\n\n readonly indentedClass = computed(() => {\n return {\n 'mc-checkbox--indented': this.indented(),\n };\n });\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (_: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onInputChange(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n this._value.set(checked);\n this.onChange(checked);\n this.onTouched();\n }\n}\n","<div class=\"mc-checkbox\" [ngClass]=\"indentedClass()\">\n <input\n class=\"mc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [ngClass]=\"classObject()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled()\"\n (change)=\"onInputChange($event)\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-checked]=\"_value()\"\n />\n @if (label()) {\n <label class=\"mc-checkbox__label\" [for]=\"id()\"> {{ label() }} </label>\n }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MozCheckboxComponent } from '../checkbox/checkbox';\n\n@Component({\n selector: 'moz-checkbox-group',\n templateUrl: './checkbox-group.html',\n styleUrls: ['./checkbox-group.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozCheckboxGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozCheckboxComponent, FormsModule, NgClass],\n})\nexport class MozCheckboxGroupComponent implements ControlValueAccessor {\n name = input.required<string>();\n options = input<\n {\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n isInvalid?: boolean;\n }[]\n >();\n inline = input<boolean>(false);\n\n _value = signal<string[]>([]);\n readonly containerClass = computed(() => {\n return {\n 'mc-field__content--inline': this.inline(),\n };\n });\n\n onChange: (_: string[]) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: string[]): void {\n this._value.set(value || []);\n }\n\n registerOnChange(fn: (value: string[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n toggleSelection(event: Event, val: string) {\n const isChecked = (event.target as HTMLInputElement).checked;\n const values = [...this._value()];\n\n if (isChecked && !values.includes(val)) {\n values.push(val);\n } else if (!isChecked && values.includes(val)) {\n const index = values.indexOf(val);\n values.splice(index, 1);\n }\n\n this._value.set(values);\n this.onChange(values);\n this.onTouched();\n }\n\n isChecked(value: string): boolean {\n return this._value().includes(value);\n }\n}\n","<fieldset class=\"mc-field mc-field--group\">\n <div class=\"mc-field__content\" [ngClass]=\"containerClass()\">\n @for (option of options(); track $index) {\n <moz-checkbox\n [id]=\"option.id\"\n [label]=\"option.label\"\n [name]=\"name()\"\n [isInvalid]=\"option.isInvalid ?? false\"\n [disabled]=\"option.disabled ?? false\"\n [ngModel]=\"isChecked(option.value)\"\n (change)=\"toggleSelection($event, option.value)\"\n ></moz-checkbox>\n }\n </div>\n</fieldset>\n","import { Component, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozDividerOrientation = 'horizontal' | 'vertical';\nexport type MozDividerAppearance = 'primary' | 'secondary' | 'tertiary' | 'inverse';\nexport type MozDividerSize = 's' | 'm' | 'l';\n\n/**\n * A divider is a visual element used to separate content or sections within an interface. It helps improve readability and organization by creating clear distinctions between groups of information. Dividers can be thin lines, thick separators, or even styled with spacing variations, adapting to different layouts. They are commonly used in menus, lists, forms, and content blocks to create a structured visual hierarchy.\n */\n@Component({\n selector: 'moz-divider',\n imports: [NgClass],\n templateUrl: './divider.html',\n styleUrls: ['./divider.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozDividerComponent {\n /**\n * Determines the orientation of the divider.\n */\n orientation = input<MozDividerOrientation>('horizontal');\n /**\n * Determines the appearance of the divider.\n */\n appearance = input<MozDividerAppearance>('primary');\n /**\n * Determines the size of the divider.\n */\n size = input<MozDividerSize>('s');\n\n readonly classes = computed(() => {\n return {\n [`mc-divider-${this.orientation()}`]: this.orientation(),\n [`mc-divider-horizontal--${this.appearance()}`]:\n this.appearance() && this.appearance() !== 'primary',\n [`mc-divider-horizontal--${this.size()}`]: this.size() && this.size() !== 's',\n };\n });\n}\n","<div class=\"mc-divider\">\n <div [ngClass]=\"classes()\" aria-hidden=\"true\"></div>\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-overlay',\n imports: [NgClass],\n templateUrl: './overlay.html',\n styleUrls: ['./overlay.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozOverlayComponent {\n readonly backdropClick = output<void>();\n readonly backdropKeydown = output<void>();\n\n /**\n * Controls the visibility of the overlay.\n */\n isVisible = input<boolean>();\n\n /**\n * Accessible label for the overlay dialog.\n */\n dialogLabel = input<string>();\n\n onBackdropClick() {\n this.backdropClick.emit();\n }\n\n \n noop() {}\n}\n","<div\n class=\"mc-overlay\"\n [ngClass]=\"{ 'is-visible': isVisible() }\"\n (click)=\"onBackdropClick()\"\n (keydown)=\"noop()\"\n tabindex=\"-1\"\n aria-label=\"Close pannel\"\n>\n <div role=\"dialog\" tabindex=\"-1\" [attr.aria-labelledby]=\"dialogLabel()\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozIconButtonAppearance = 'standard' | 'accent' | 'danger' | 'inverse';\nexport type MozIconButtonSize = 's' | 'm' | 'l';\nexport type MozIconButtonType = 'button' | 'reset' | 'submit';\n\n@Component({\n selector: 'moz-icon-button',\n templateUrl: './icon-button.html',\n styleUrls: ['./icon-button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozIconButtonComponent {\n appearance = input<MozIconButtonAppearance>('standard');\n size = input<MozIconButtonSize>('m');\n disabled = input<boolean>();\n ghost = input<boolean>();\n outlined = input<boolean>();\n type = input<MozIconButtonType>('button');\n ariaLabel = input<string>();\n\n readonly classes = computed(() => {\n return {\n [`mc-button--${this.appearance()}`]: this.appearance(),\n [`mc-button--${this.size()}`]: this.size(),\n 'mc-button--ghost': this.ghost() ?? false,\n 'mc-button--outlined': this.outlined() ?? false,\n };\n });\n}\n","<button\n [disabled]=\"disabled()\"\n [attr.type]=\"type()\"\n [ngClass]=\"classes()\"\n class=\"mc-button mc-button--icon-button\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n <span class=\"mc-button__icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n contentChild,\n input,\n output,\n signal,\n effect,\n computed,\n} from '@angular/core';\nimport { MozOverlayComponent } from '../overlay/overlay';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\nimport { ArrowBack24, Cross24 } from '@mozaic-ds/icons-angular';\nimport { NgClass } from '@angular/common';\n\nexport type MozDrawerPosition = 'left' | 'right';\n\n@Component({\n selector: 'moz-drawer',\n imports: [MozOverlayComponent, MozIconButtonComponent, ArrowBack24, Cross24, NgClass],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozDrawerComponent {\n readonly open = input<boolean>(false);\n readonly position = input<MozDrawerPosition>('right');\n readonly extended = input<boolean>(false);\n readonly back = input<boolean>(false);\n readonly title = input.required<string>();\n readonly contentTitle = input<string | undefined>();\n\n readonly updateOpen = output<boolean>();\n readonly backEvent = output<void>();\n\n footerTpl = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n readonly isOpen = signal(this.open());\n\n readonly classMap = computed(() => ({\n 'is-open': this.isOpen(),\n 'mc-drawer--extend': this.extended(),\n [`mc-drawer--${this.position()}`]: this.position() !== 'right',\n }));\n\n readonly ariaModal = computed(() => (this.isOpen() ? 'true' : 'false'));\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.open());\n });\n }\n\n close(): void {\n this.updateOpen.emit(false);\n }\n\n backClick(): void {\n this.backEvent.emit();\n }\n\n noop() {}\n}\n","<moz-overlay\n [isVisible]=\"isOpen()\"\n dialogLabel=\"drawerTitle\"\n (backdropClick)=\"close()\"\n (backdropKeydown)=\"close()\"\n>\n <section\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"noop()\"\n class=\"mc-drawer\"\n [ngClass]=\"classMap()\"\n role=\"dialog\"\n aria-labelledby=\"drawerTitle\"\n [attr.aria-modal]=\"ariaModal()\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!isOpen()\"\n >\n <div class=\"mc-drawer__dialog\" role=\"document\">\n <div class=\"mc-drawer__header\">\n @if (back()) {\n <moz-icon-button\n class=\"mc-drawer__back\"\n aria-label=\"Back\"\n [ghost]=\"true\"\n (click)=\"backClick()\"\n >\n <ArrowBack24 icon />\n </moz-icon-button>\n }\n\n <h2 class=\"mc-drawer__title\" id=\"drawerTitle\">{{ title() }}</h2>\n\n <moz-icon-button\n class=\"mc-drawer__close\"\n aria-label=\"Close\"\n [ghost]=\"true\"\n (click)=\"close()\"\n >\n <Cross24 icon />\n </moz-icon-button>\n </div>\n\n <div class=\"mc-drawer__body\">\n <div class=\"mc-drawer__content\" tabindex=\"0\">\n @if (contentTitle()) {\n <h2 class=\"mc-drawer__content__title\">\n {{ contentTitle() }}\n </h2>\n }\n\n <ng-content />\n </div>\n </div>\n\n <div class=\"mc-drawer__footer\">\n <ng-content select=\"[footer]\" />\n </div>\n </div>\n </section>\n</moz-overlay>\n","import {\n Component,\n ChangeDetectionStrategy,\n inject,\n TemplateRef,\n Type,\n signal,\n viewChild,\n ElementRef,\n afterNextRender,\n OnDestroy,\n} from '@angular/core';\nimport { DialogRef, DIALOG_DATA } from '@angular/cdk/dialog';\nimport { MozDrawerConfig } from '../drawer.service';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { MozDrawerComponent } from '../drawer';\nimport { MozButtonComponent } from '../../button/button';\n\n@Component({\n selector: 'moz-drawer-container',\n imports: [NgTemplateOutlet, NgComponentOutlet, MozDrawerComponent, MozButtonComponent],\n template: `\n <moz-drawer\n [open]=\"isOpen()\"\n [title]=\"data.title || ''\"\n [contentTitle]=\"data.contentTitle\"\n [position]=\"data.position || 'right'\"\n [extended]=\"data.extended || false\"\n [back]=\"data.back || false\"\n (updateOpen)=\"onUpdateOpen($event)\"\n (backEvent)=\"onBackClick()\"\n #drawerElement\n >\n @if (isTemplate(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"asTemplate(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit: data.data }\"\n ></ng-container>\n } @else if (isComponent(data.content)) {\n <ng-container [ngComponentOutlet]=\"asComponent(data.content)\"></ng-container>\n } @else if (data.content) {\n <p>{{ data.content }}</p>\n } @for (button of data.footerButtons; track button.label) {\n <button moz-button (click)=\"onButtonClick(button)\" footer>{{ button.label }}</button>\n }\n </moz-drawer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozDrawerContainerComponent<T = unknown, R = unknown> implements OnDestroy {\n readonly dialogRef = inject<DialogRef<R>>(DialogRef);\n readonly data = inject<MozDrawerConfig<T>>(DIALOG_DATA);\n readonly isOpen = signal(false);\n readonly drawerElement = viewChild<ElementRef<HTMLElement>>('drawerElement');\n private pendingClose: R | undefined = undefined;\n private isClosing = false;\n private transitionEndHandler?: (event: TransitionEvent) => void;\n private closeTimeoutId?: ReturnType<typeof setTimeout>;\n\n constructor() {\n afterNextRender(() => {\n const element = this.drawerElement()?.nativeElement;\n if (element) {\n this.transitionEndHandler = this.onTransitionEnd.bind(this);\n element.addEventListener('transitionend', this.transitionEndHandler);\n }\n setTimeout(() => this.isOpen.set(true), 0);\n });\n }\n\n ngOnDestroy(): void {\n const element = this.drawerElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n }\n }\n\n private onTransitionEnd(event: TransitionEvent): void {\n if (this.isClosing && event.propertyName === 'opacity') {\n this.cleanupAndClose();\n }\n }\n\n private cleanupAndClose(): void {\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n this.closeTimeoutId = undefined;\n }\n const element = this.drawerElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n this.dialogRef.close(this.pendingClose);\n }\n\n isTemplate(content: unknown): content is TemplateRef<{ $implicit: T | undefined }> {\n return content instanceof TemplateRef;\n }\n\n isComponent(content: unknown): content is Type<unknown> {\n return typeof content === 'function';\n }\n\n asTemplate(content: unknown): TemplateRef<{ $implicit: T | undefined }> {\n return content as TemplateRef<{ $implicit: T | undefined }>;\n }\n\n asComponent(content: unknown): Type<unknown> {\n return content as Type<unknown>;\n }\n\n onButtonClick(button: { label: string; onClick?: () => void }): void {\n if (button.onClick) {\n button.onClick();\n }\n }\n\n onUpdateOpen(open: boolean): void {\n if (!open) {\n this.close();\n }\n }\n\n onBackClick(): void {\n if (this.data.onBack) {\n this.data.onBack();\n }\n }\n\n close(result?: R): void {\n if (this.isClosing) {\n return;\n }\n this.isClosing = true;\n this.pendingClose = result;\n this.isOpen.set(false);\n \n // Safety timeout: close after 500ms even if transitionend doesn't fire\n this.closeTimeoutId = setTimeout(() => {\n if (this.isClosing) {\n this.cleanupAndClose();\n }\n }, 500);\n }\n}\n","import { Injectable, inject, TemplateRef, Type, Injector } from '@angular/core';\nimport { Dialog, DialogRef, DialogConfig } from '@angular/cdk/dialog';\nimport { Observable } from 'rxjs';\nimport { MozDrawerContainerComponent } from './container/drawer-container.component';\n\nexport interface MozDrawerButton {\n label: string;\n onClick?: () => void;\n primary?: boolean;\n}\n\nexport interface MozDrawerConfig<T = unknown> {\n title?: string;\n contentTitle?: string;\n position?: 'left' | 'right';\n extended?: boolean;\n back?: boolean;\n onBack?: () => void;\n content?: TemplateRef<T> | Type<unknown> | string;\n data?: T;\n panelClass?: string | string[];\n backdropClass?: string | string[];\n disableClose?: boolean;\n ariaLabel?: string;\n ariaDescribedBy?: string;\n footerButtons?: MozDrawerButton[];\n}\n\nexport class MozDrawerRef<R = unknown> {\n private _dialogRef!: DialogRef<R, MozDrawerContainerComponent>;\n\n setDialogRef(dialogRef: DialogRef<R, MozDrawerContainerComponent>): void {\n this._dialogRef = dialogRef;\n }\n\n close(result?: R): void {\n this._dialogRef.componentInstance?.close(result);\n }\n\n get afterClosed(): Observable<R | undefined> {\n return this._dialogRef.closed;\n }\n\n get componentInstance(): MozDrawerContainerComponent | null {\n return this._dialogRef.componentInstance;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MozDrawerService {\n private readonly dialog = inject(Dialog);\n private readonly injector = inject(Injector);\n\n open<T = unknown, R = unknown>(config: MozDrawerConfig<T> = {}): MozDrawerRef<R> {\n const drawerRef = new MozDrawerRef<R>();\n\n const customInjector = Injector.create({\n parent: this.injector,\n providers: [{ provide: MozDrawerRef, useValue: drawerRef }],\n });\n\n const dialogConfig: DialogConfig<\n MozDrawerConfig<T>,\n DialogRef<R, MozDrawerContainerComponent>\n > = {\n data: config,\n injector: customInjector,\n panelClass: [\n ...(Array.isArray(config.panelClass)\n ? config.panelClass\n : config.panelClass\n ? [config.panelClass]\n : []),\n ],\n backdropClass: [\n ...(Array.isArray(config.backdropClass)\n ? config.backdropClass\n : config.backdropClass\n ? [config.backdropClass]\n : []),\n ],\n disableClose: config.disableClose ?? true,\n ariaLabel: config.ariaLabel || config.title,\n ariaDescribedBy: config.ariaDescribedBy,\n hasBackdrop: false,\n closeOnNavigation: true,\n closeOnDestroy: true,\n };\n\n const dialogRef = this.dialog.open<R, MozDrawerConfig<T>, MozDrawerContainerComponent>(\n MozDrawerContainerComponent,\n dialogConfig\n );\n\n drawerRef.setDialogRef(dialogRef);\n\n return drawerRef;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozFieldComponent {\n id = input<string>();\n label = input<string>();\n requirementText = input<string | undefined>();\n helpText = input<string | undefined>();\n helpId = input<string | undefined>();\n isValid = input<boolean>(false);\n isInvalid = input<boolean>(false);\n messageId = input<string | undefined>();\n message = input<string | undefined>();\n\n readonly classes = computed(() => {\n return {\n 'is-valid': this.isValid(),\n 'is-invalid': this.isInvalid(),\n };\n });\n}\n","<div class=\"mc-field\">\n <label class=\"mc-field__label\" [attr.for]=\"id()\">\n {{ label() }} @if (requirementText()) {\n <span class=\"mc-field__requirement\"> ({{ requirementText() }}) </span>\n }\n </label>\n\n @if (helpId() && helpText()) {\n <span class=\"mc-field__help\" [id]=\"helpId()\"> {{ helpText() }} </span>\n }\n\n <div class=\"mc-field__content\">\n <ng-content></ng-content>\n </div>\n\n @if ((isValid() || isInvalid()) && message()) {\n <span\n class=\"mc-field__validation-message\"\n [id]=\"messageId()\"\n [ngClass]=\"classes()\"\n >\n {{ message() }}\n </span>\n }\n</div>\n","import { Component, ChangeDetectionStrategy, input } from '@angular/core';\n\n@Component({\n selector: 'moz-field-group',\n templateUrl: './field-group.html',\n styleUrl: './field-group.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozFieldGroupComponent {\n id = input.required<string>();\n legend = input.required<string>();\n requirementText = input<string | undefined>();\n helpText = input<string | undefined>();\n isValid = input(false);\n isInvalid = input(false);\n message = input<string | undefined>();\n}\n","<fieldset class=\"mc-field--group\">\n <legend class=\"mc-field__legend\" [attr.for]=\"id()\">\n {{ legend() }} @if (requirementText()) {\n <span class=\"mc-field__requirement\">({{ requirementText() }})</span>\n }\n </legend>\n\n @if (helpText()) {\n <span class=\"mc-field__help\">{{ helpText() }}</span>\n }\n\n <div class=\"mc-field__content\">\n <ng-content></ng-content>\n </div>\n\n @if ((isValid() || isInvalid()) && message()) {\n <span\n class=\"mc-field__validation-message\"\n [class.is-valid]=\"isValid()\"\n [class.is-invalid]=\"isInvalid()\"\n >\n {{ message() }}\n </span>\n }\n</fieldset>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\ntype MozLinearProgressBarBufferSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-linear-progress-bar-buffer',\n templateUrl: './linear-progress-bar-buffer.html',\n styleUrls: ['./linear-progress-bar-buffer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLinearProgressBarBufferComponent {\n valuePercent = input<number>(0);\n size = input<MozLinearProgressBarBufferSize>('l');\n ariaLabel = input<string>('Progress bar');\n\n classes = computed(() => {\n const classes = ['mc-linear-progressbar-buffer'];\n if (this.size() === 's') classes.push('mc-linear-progressbar-buffer--s');\n if (this.size() === 'm') classes.push('mc-linear-progressbar-buffer--m');\n if (this.size() === 'l') classes.push('mc-linear-progressbar-buffer--l');\n return classes.join(' ');\n });\n}\n","<div [class]=\"classes()\">\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n [style.--progress-value]=\"valuePercent()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuenow]=\"valuePercent()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport {\n CheckCircle32,\n CrossCircleFilled20,\n Uploading32,\n WarningCircle32,\n Refresh20,\n Refresh32,\n Eye20,\n} from '@mozaic-ds/icons-angular';\nimport { MozButtonComponent } from '../../button/button';\nimport { MozDividerComponent } from '../../divider/divider';\nimport { MozIconButtonComponent } from '../../icon-button/icon-button';\nimport { MozLinearProgressBarBufferComponent } from '../../linear-progress-bar-buffer/linear-progress-bar-buffer';\n\nexport type MozFileUploaderItemFormat = 'inline' | 'stacked';\n\n@Component({\n selector: 'moz-file-uploader-item',\n templateUrl: './file-uploader-item.html',\n styleUrls: ['./file-uploader-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MozLinearProgressBarBufferComponent,\n MozButtonComponent,\n CheckCircle32,\n CrossCircleFilled20,\n Refresh32,\n MozDividerComponent,\n MozIconButtonComponent,\n Refresh20,\n Uploading32,\n Eye20,\n WarningCircle32,\n ],\n})\nexport class MozFileUploaderItemComponent {\n format = input<MozFileUploaderItemFormat>('inline');\n invalid = input<boolean>(false);\n uploading = input<boolean>(false);\n errorMessage = input<string>();\n hasPreview = input<boolean>(false);\n file = input.required<File>();\n fileInformation = input<(file: File) => string>();\n retryButtonLabel = input<string>('Retry');\n deleteButtonLabel = input<string>('Delete');\n previewButtonLabel = input<string>('Preview');\n\n delete = output<File>();\n retry = output<File>();\n preview = output<File>();\n\n readonly fileName = computed(() => this.file().name);\n\n readonly fileInfo = computed(() => {\n const customInfo = this.fileInformation();\n if (customInfo) {\n return customInfo(this.file());\n }\n\n // Default information\n const file = this.file();\n const size = this.formatFileSize(file.size);\n return `${size} • ${file.type || 'Unknown type'}`;\n });\n\n readonly isInline = computed(() => this.format() === 'inline');\n\n readonly stateModifier = computed(() => {\n if (this.invalid()) return 'error';\n if (this.uploading()) return 'loading';\n return 'default';\n });\n\n readonly modifierClass = computed(() => {\n const state = this.stateModifier();\n return state !== 'default' ? `mc-file-uploader-item--${state}` : '';\n });\n\n readonly isUploading = computed(() => this.stateModifier() === 'loading');\n\n readonly stateIcon = computed(() => {\n const state = this.stateModifier();\n const iconMap = {\n default: CheckCircle32,\n loading: Uploading32,\n error: WarningCircle32,\n };\n return iconMap[state];\n });\n\n readonly showInlineActions = computed(() => this.isInline() && !this.isUploading());\n\n readonly showStackedActions = computed(() => !this.isInline() && !this.isUploading());\n\n onDelete(): void {\n this.delete.emit(this.file());\n }\n\n onRetry(): void {\n this.retry.emit(this.file());\n }\n\n onPreview(): void {\n this.preview.emit(this.file());\n }\n\n private formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];\n }\n}\n","<div class=\"mc-file-uploader-item\" [class]=\"modifierClass()\">\n <div class=\"mc-file-uploader-item__container mc-file-uploader-item__container--{{ format() }}\">\n <div\n class=\"mc-file-uploader-item__meta-row\"\n [class.mc-file-uploader-item__meta-row--with-info]=\"true\"\n >\n @if (isUploading() && !invalid()) {\n <Uploading32 class=\"mc-file-uploader-item__status-icon\" />\n } @else if(invalid()) {\n <WarningCircle32 class=\"mc-file-uploader-item__status-icon\" />\n } @else {\n <CheckCircle32 class=\"mc-file-uploader-item__status-icon\" />\n }\n <div class=\"mc-file-uploader-item__info-content\">\n <span class=\"mc-file-uploader-item__label\">{{ fileName() }}</span>\n <span class=\"mc-file-uploader-item__details\">{{ fileInfo() }}</span>\n </div>\n </div>\n\n @if (showInlineActions()) {\n <div class=\"mc-file-uploader-item__inline-actions\">\n @if (invalid()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onRetry()\"\n >\n <Refresh32 icon />\n <span class=\"mc-button__label\">{{ retryButtonLabel() }}</span>\n </button>\n } @if (!invalid() && hasPreview()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onPreview()\"\n >\n <span class=\"mc-button__label\">{{ previewButtonLabel() }}</span>\n </button>\n }\n </div>\n <div class=\"mc-file-uploader-item__delete-button-container\">\n <moz-icon-button (click)=\"onDelete()\" [size]=\"'s'\" [ghost]=\"true\">\n <CrossCircleFilled20 icon />\n </moz-icon-button>\n </div>\n } @if (showStackedActions()) {\n <moz-divider orientation=\"horizontal\"></moz-divider>\n <div class=\"mc-file-uploader-item__actions-container\">\n @if (!invalid() && hasPreview()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onPreview()\"\n [iconPosition]=\"'left'\"\n >\n <Eye20 icon />\n <span class=\"mc-button__label\">{{ previewButtonLabel() }}</span>\n </button>\n } @if (invalid()) {\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onRetry()\"\n [iconPosition]=\"'left'\"\n >\n <Refresh20 icon />\n <span class=\"mc-button__label\">{{ retryButtonLabel() }}</span>\n </button>\n }\n\n <button\n moz-button\n [ghost]=\"true\"\n size=\"s\"\n class=\"mc-file-uploader-item__action\"\n (click)=\"onDelete()\"\n [iconPosition]=\"'left'\"\n >\n <CrossCircleFilled20 icon />\n <span class=\"mc-button__label\">{{ deleteButtonLabel() }}</span>\n </button>\n </div>\n } @if (isUploading() && !invalid()) {\n <moz-linear-progress-bar-buffer size=\"l\" [valuePercent]=\"75\" />\n }\n </div>\n\n @if (errorMessage() && invalid()) {\n <span class=\"mc-file-uploader-item__error-message\">{{ errorMessage() }}</span>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n computed,\n input,\n OnInit,\n signal,\n output,\n} from '@angular/core';\nimport { MozFieldComponent } from '../field/field';\nimport { MozButtonComponent } from '../button/button';\nimport { Upload24 } from '@mozaic-ds/icons-angular';\nimport { MozFileUploaderItemComponent } from './item/file-uploader-item';\nexport type MozFileUploaderFormat = 'inline' | 'stacked';\n\n@Component({\n selector: 'moz-file-uploader',\n templateUrl: './file-uploader.html',\n styleUrls: ['./file-uploader.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozFieldComponent, MozButtonComponent, MozFileUploaderItemComponent, Upload24],\n})\nexport class MozFileUploaderComponent implements OnInit {\n // File input props\n id = input.required<string>();\n label = input<string>();\n helpText = input<string>();\n helpId = input<string>();\n necessityIndicator = input<string>('');\n hasDragDrop = input<boolean>(true);\n showFilesList = input<boolean>(true);\n disabled = input<boolean>(false);\n multipleFiles = input<boolean>(true);\n accept = input<string>();\n title = input<string>('Drag & drop');\n subtitle = input<string>('or');\n uploadButtonLabel = input<string>('Upload file(s)');\n\n // File item props\n format = input<MozFileUploaderFormat>('inline');\n errorMessage = input<string>();\n invalid = input<boolean>(false);\n uploading = input<boolean>(false);\n hasPreview = input<boolean>(false);\n retryButtonLabel = input<string>('Retry');\n deleteButtonLabel = input<string>('Delete');\n previewButtonLabel = input<string>('Preview');\n information = input<string>();\n fileInformation = input<(file: File) => string>();\n\n // Outputs for file operations\n retryFile = output<File>();\n previewFile = output<File>();\n\n // Internal state\n files = signal<File[]>([]);\n isDragged = signal<boolean>(false);\n\n // Initial files for stories/testing\n initialFiles = input<File[]>([]);\n\n readonly classes = computed(() => ({\n 'mc-file-uploader--draggable': this.hasDragDrop(),\n }));\n\n readonly inputClasses = computed(() => ({\n 'mc-file-uploader__input--disabled': this.disabled(),\n 'mc-file-uploader__input--dragged': this.isDragged(),\n }));\n\n iconTpl = ContentChild('icon', { descendants: false });\n\n ngOnInit(): void {\n const initial = this.initialFiles();\n if (initial.length > 0) {\n this.files.set(initial);\n }\n }\n\n removeFile(index: number): void {\n const currentFiles = this.files();\n const newFiles = currentFiles.filter((_, i) => i !== index);\n this.files.set(newFiles);\n }\n\n onDeleteFile(file: File): void {\n const currentFiles = this.files();\n const newFiles = currentFiles.filter((f) => f.name !== file.name);\n this.files.set(newFiles);\n }\n\n onRetryFile(file: File): void {\n this.retryFile.emit(file);\n }\n\n onPreviewFile(file: File): void {\n this.previewFile.emit(file);\n }\n\n onFileSelect(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (target.files) {\n const newFiles = Array.from(target.files);\n\n if (this.multipleFiles()) {\n // Mode multiple : ajoute les nouveaux fichiers aux existants\n const currentFiles = this.files();\n this.files.set([...currentFiles, ...newFiles]);\n } else {\n // Mode simple : remplace tous les fichiers\n this.files.set(newFiles);\n }\n }\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragged.set(false);\n\n if (event.dataTransfer?.files) {\n const newFiles = Array.from(event.dataTransfer.files);\n\n if (this.multipleFiles()) {\n // Mode multiple : ajoute les nouveaux fichiers aux existants\n const currentFiles = this.files();\n this.files.set([...currentFiles, ...newFiles]);\n } else {\n // Mode simple : remplace tous les fichiers\n this.files.set(newFiles);\n }\n }\n }\n\n openFileDialog(): void {\n if (this.disabled()) return;\n\n const fileInput = document.getElementById(this.id()) as HTMLInputElement;\n fileInput?.click();\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n this.isDragged.set(true);\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.isDragged.set(false);\n }\n}\n","<div class=\"mc-file-uploader\" [class]=\"classes()\">\n <moz-field\n [id]=\"id()\"\n [label]=\"label()\"\n [helpText]=\"helpText()\"\n [helpId]=\"helpId()\"\n [requirementText]=\"necessityIndicator()\"\n [isInvalid]=\"invalid()\"\n >\n <input\n [id]=\"id()\"\n type=\"file\"\n class=\"mc-file-uploader__hidden-input\"\n [disabled]=\"disabled()\"\n (change)=\"onFileSelect($event)\"\n [multiple]=\"multipleFiles()\"\n [accept]=\"accept()\"\n />\n\n <div\n class=\"mc-file-uploader__input\"\n [class]=\"inputClasses()\"\n (click)=\"openFileDialog()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n @if (hasDragDrop()) {\n <span class=\"mc-file-uploader__input-title\">{{ title() }}</span>\n <span class=\"mc-file-uploader__input-subtitle\">{{ subtitle() }}</span>\n }\n\n <button moz-button [outlined]=\"true\" iconPosition=\"left\" class=\"mc-file-uploader__button\">\n <Upload24 icon />\n <span class=\"mc-button__label\">{{ uploadButtonLabel() }}</span>\n </button>\n </div>\n </moz-field>\n\n @if (showFilesList() && files().length > 0) {\n <div class=\"mc-file-uploader__files-list\">\n @for (file of files(); track file; let i = $index) {\n <moz-file-uploader-item\n [format]=\"format()\"\n [invalid]=\"invalid()\"\n [uploading]=\"uploading()\"\n [errorMessage]=\"errorMessage()\"\n [hasPreview]=\"hasPreview()\"\n [file]=\"file\"\n [fileInformation]=\"fileInformation()\"\n [retryButtonLabel]=\"retryButtonLabel()\"\n [deleteButtonLabel]=\"deleteButtonLabel()\"\n [previewButtonLabel]=\"previewButtonLabel()\"\n (delete)=\"onDeleteFile($event)\"\n (retry)=\"onRetryFile($event)\"\n (preview)=\"onPreviewFile($event)\"\n />\n }\n </div>\n }\n</div>\n","import { Component, input } from '@angular/core';\nimport { MozLoaderComponent } from '../loader/loader';\n\n@Component({\n selector: 'moz-loading-overlay',\n imports: [MozLoaderComponent],\n templateUrl: './loading-overlay.html',\n styleUrl: './loading-overlay.scss',\n})\nexport class MozLoadingOverlayComponent {\n label = input<string>('Loading...');\n visible = input<boolean>(true);\n}\n","@if (visible()) {\n<div class=\"mc-loading-loader\" [class.is-visible]=\"visible()\">\n <div role=\"dialog\" tabindex=\"-1\" [attr.aria-labelledby]=\"'dialogLabel'\">\n <moz-loader [size]=\"'l'\" [appearance]=\"'inverse'\" [text]=\"label()\">\n </moz-loader>\n </div>\n</div>\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n signal,\n effect,\n computed,\n} from '@angular/core';\nimport { MozOverlayComponent } from '../overlay/overlay';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-modal',\n templateUrl: './modal.html',\n styleUrls: ['./modal.scss'],\n imports: [MozOverlayComponent, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalComponent {\n open = input(false);\n readonly isOpen = signal(this.open());\n\n readonly updateOpen = output<boolean>();\n readonly closeRequest = output<void>();\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.open());\n });\n }\n\n close(): void {\n this.closeRequest.emit();\n this.updateOpen.emit(false);\n }\n\n readonly classMap = computed(() => ({\n 'is-open': this.isOpen(),\n }));\n\n readonly ariaModal = computed(() => (this.isOpen() ? 'true' : 'false'));\n\n noop() {}\n}\n","<moz-overlay\n [isVisible]=\"open()\"\n dialogLabel=\"modalTitle\"\n (backdropClick)=\"close()\"\n (backdropKeydown)=\"close()\"\n>\n <section\n class=\"mc-modal\"\n [ngClass]=\"classMap()\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n [attr.aria-modal]=\"ariaModal()\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!open()\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"noop()\"\n >\n <div class=\"mc-modal__dialog\" role=\"document\">\n <ng-content />\n </div>\n </section>\n</moz-overlay>\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\nimport { MozIconButtonComponent } from '../../icon-button/icon-button';\nimport { Cross24 } from '@mozaic-ds/icons-angular';\n\n@Component({\n selector: 'moz-modal-header',\n imports: [MozIconButtonComponent, Cross24],\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalHeaderComponent {\n readonly title = input<string>('');\n readonly titleId = input<string>('modalTitle');\n readonly closable = input<boolean>(true);\n readonly closeClick = output<void>();\n}\n","<header class=\"mc-modal__header\">\n <span class=\"mc-modal__icon\">\n <ng-content select=\"[icon]\" />\n </span>\n\n <h2 class=\"mc-modal__title\" [id]=\"titleId()\">\n {{ title() }}\n </h2>\n\n @if (closable()) {\n <moz-icon-button\n class=\"mc-modal__close\"\n aria-label=\"Close\"\n [ghost]=\"true\"\n (click)=\"closeClick.emit()\"\n >\n <Cross24 icon aria-hidden=\"true\" />\n </moz-icon-button>\n }\n</header>\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'moz-modal-body',\n templateUrl: './modal-body.component.html',\n styleUrls: ['./modal-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalBodyComponent {}\n","<main class=\"mc-modal__body\">\n <ng-content />\n</main>\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'moz-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalFooterComponent {}\n","<footer class=\"mc-modal__footer\">\n <span class=\"mc-modal__link\">\n <ng-content select=\"[link]\" />\n </span>\n <ng-content />\n</footer>\n","import {\n Component,\n ChangeDetectionStrategy,\n inject,\n TemplateRef,\n Type,\n signal,\n viewChild,\n ElementRef,\n afterNextRender,\n OnDestroy,\n} from '@angular/core';\nimport { DialogRef, DIALOG_DATA } from '@angular/cdk/dialog';\nimport { MozModalConfig } from '../modal.service';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { MozModalComponent } from '../modal';\nimport { MozModalHeaderComponent } from '../header/modal-header.component';\nimport { MozModalBodyComponent } from '../body/modal-body.component';\nimport { MozModalFooterComponent } from '../footer/modal-footer.component';\nimport { MozButtonComponent } from '../../button/button';\nimport { MozLinkComponent } from '../../link/link';\nimport { ExternalLink24 } from '@mozaic-ds/icons-angular';\n\n@Component({\n selector: 'moz-modal-container',\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet,\n MozModalComponent,\n MozModalHeaderComponent,\n MozModalBodyComponent,\n MozModalFooterComponent,\n MozButtonComponent,\n MozLinkComponent,\n ExternalLink24,\n ],\n template: `\n <moz-modal [open]=\"isOpen()\" (closeRequest)=\"close()\" #modalElement>\n @if (data.title) {\n <moz-modal-header\n [title]=\"data.title\"\n [closable]=\"data.closable ?? false\"\n (closeClick)=\"close()\"\n >\n @if (data.icon) {\n <ng-container [ngComponentOutlet]=\"data.icon\" />\n }\n </moz-modal-header>\n } @if (isTemplate(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"asTemplate(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit: data.data }\"\n ></ng-container>\n } @else if (isComponent(data.content)) {\n <ng-container [ngComponentOutlet]=\"asComponent(data.content)\"></ng-container>\n } @else if (data.content) {\n <moz-modal-body>\n <p>{{ data.content }}</p>\n </moz-modal-body>\n } @if (data.footerLink || data.footerButtons) {\n <moz-modal-footer>\n @if (data.footerLink) {\n <moz-link link [href]=\"data.footerLink.href\" [iconPosition]=\"'right'\">\n {{ data.footerLink.label }}\n <ExternalLink24 icon />\n </moz-link>\n } @for (button of data.footerButtons; track button.label) {\n <button moz-button (click)=\"onButtonClick(button)\">{{ button.label }}</button>\n }\n </moz-modal-footer>\n }\n </moz-modal>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozModalContainerComponent<T = unknown, R = unknown> implements OnDestroy {\n readonly dialogRef = inject<DialogRef<R>>(DialogRef);\n readonly data = inject<MozModalConfig<T>>(DIALOG_DATA);\n readonly isOpen = signal(true);\n readonly modalElement = viewChild<ElementRef<HTMLElement>>('modalElement');\n private pendingClose: R | undefined = undefined;\n private isClosing = false;\n private transitionEndHandler?: (event: TransitionEvent) => void;\n private closeTimeoutId?: ReturnType<typeof setTimeout>;\n\n constructor() {\n afterNextRender(() => {\n const element = this.modalElement()?.nativeElement;\n if (element) {\n this.transitionEndHandler = this.onTransitionEnd.bind(this);\n element.addEventListener('transitionend', this.transitionEndHandler);\n }\n });\n }\n\n ngOnDestroy(): void {\n const element = this.modalElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n }\n }\n\n private onTransitionEnd(event: TransitionEvent): void {\n if (this.isClosing && event.propertyName === 'opacity') {\n this.cleanupAndClose();\n }\n }\n\n private cleanupAndClose(): void {\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n this.closeTimeoutId = undefined;\n }\n const element = this.modalElement()?.nativeElement;\n if (element && this.transitionEndHandler) {\n element.removeEventListener('transitionend', this.transitionEndHandler);\n }\n this.dialogRef.close(this.pendingClose);\n }\n\n isTemplate(content: unknown): content is TemplateRef<{ $implicit: T | undefined }> {\n return content instanceof TemplateRef;\n }\n\n isComponent(content: unknown): content is Type<unknown> {\n return typeof content === 'function';\n }\n\n asTemplate(content: unknown): TemplateRef<{ $implicit: T | undefined }> {\n return content as TemplateRef<{ $implicit: T | undefined }>;\n }\n\n asComponent(content: unknown): Type<unknown> {\n return content as Type<unknown>;\n }\n\n onButtonClick(button: { label: string; onClick?: () => void }): void {\n if (button.onClick) {\n button.onClick();\n }\n }\n\n close(result?: R): void {\n if (this.isClosing) {\n return;\n }\n this.isClosing = true;\n this.pendingClose = result;\n this.isOpen.set(false);\n \n // Safety timeout: close after 500ms even if transitionend doesn't fire\n this.closeTimeoutId = setTimeout(() => {\n if (this.isClosing) {\n this.cleanupAndClose();\n }\n }, 500);\n }\n}\n","import { Injectable, inject, TemplateRef, Type, Injector } from '@angular/core';\nimport { Dialog, DialogRef, DialogConfig } from '@angular/cdk/dialog';\nimport { MozModalContainerComponent } from './container/modal-container.component';\nimport { Observable } from 'rxjs';\n\nexport interface MozModalButton {\n label: string;\n onClick?: () => void;\n primary?: boolean;\n}\n\nexport interface MozModalConfig<T = unknown> {\n title?: string;\n closable?: boolean;\n content?: TemplateRef<T> | Type<unknown> | string;\n data?: T;\n panelClass?: string | string[];\n backdropClass?: string | string[];\n disableClose?: boolean;\n ariaLabel?: string;\n ariaDescribedBy?: string;\n icon?: Type<unknown>;\n footerButtons?: MozModalButton[];\n footerLink?: { label: string; href: string };\n}\n\nexport class MozModalRef<R = unknown> {\n private _dialogRef!: DialogRef<R, MozModalContainerComponent>;\n\n setDialogRef(dialogRef: DialogRef<R, MozModalContainerComponent>): void {\n this._dialogRef = dialogRef;\n }\n\n close(result?: R): void {\n this._dialogRef.componentInstance?.close(result);\n }\n\n get afterClosed(): Observable<R | undefined> {\n return this._dialogRef.closed;\n }\n\n get componentInstance(): MozModalContainerComponent | null {\n return this._dialogRef.componentInstance;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MozModalService {\n private readonly dialog = inject(Dialog);\n private readonly injector = inject(Injector);\n\n open<T = unknown, R = unknown>(config: MozModalConfig<T> = {}): MozModalRef<R> {\n const modalRef = new MozModalRef<R>();\n\n const customInjector = Injector.create({\n parent: this.injector,\n providers: [{ provide: MozModalRef, useValue: modalRef }],\n });\n\n const dialogConfig: DialogConfig<\n MozModalConfig<T>,\n DialogRef<R, MozModalContainerComponent>\n > = {\n data: config,\n injector: customInjector,\n panelClass: [\n ...(Array.isArray(config.panelClass)\n ? config.panelClass\n : config.panelClass\n ? [config.panelClass]\n : []),\n ],\n backdropClass: [\n ...(Array.isArray(config.backdropClass)\n ? config.backdropClass\n : config.backdropClass\n ? [config.backdropClass]\n : []),\n ],\n disableClose: config.disableClose ?? !config.closable,\n ariaLabel: config.ariaLabel || config.title,\n ariaDescribedBy: config.ariaDescribedBy,\n hasBackdrop: false,\n closeOnNavigation: true,\n closeOnDestroy: true,\n };\n\n const dialogRef = this.dialog.open<R, MozModalConfig<T>, MozModalContainerComponent>(\n MozModalContainerComponent,\n dialogConfig\n );\n\n modalRef.setDialogRef(dialogRef);\n\n return modalRef;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozNumberBadgeAppearance = 'danger' | 'accent' | 'inverse' | 'standard';\nexport type MozNumberBadgeSize = 's' | 'm';\n\n@Component({\n selector: 'moz-number-badge',\n imports: [NgClass],\n templateUrl: './number-badge.html',\n styleUrls: ['./number-badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozNumberBadgeComponent {\n label = input<number>(0);\n appearance = input<MozNumberBadgeAppearance>('standard');\n size = input<MozNumberBadgeSize>('s');\n\n readonly classes = computed(() => {\n return {\n [`mc-number-badge--${this.appearance()}`]: this.appearance(),\n [`mc-number-badge--${this.size()}`]: this.size(),\n };\n });\n}\n","<span class=\"mc-number-badge\" [ngClass]=\"classes()\"> {{ label() }} </span>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type MozSelectValue = string | number | null;\n\nexport type MozSelectOption = {\n id?: string;\n text: string;\n value: string | number;\n attributes?: Record<string, string | boolean | number>;\n disabled?: boolean;\n};\n\nexport type MozSelectSize = 's' | 'm';\n\n@Component({\n selector: 'moz-select',\n templateUrl: './select.html',\n styleUrls: ['./select.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozSelectComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozSelectComponent implements ControlValueAccessor {\n id = input<string>();\n name = input.required<string>();\n options = input<MozSelectOption[]>();\n placeholder = input<string>();\n isInvalid = input<boolean>(false);\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n size = input<MozSelectSize>('m');\n\n _value = signal<MozSelectValue>(null);\n\n onChange: (value: MozSelectValue) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: MozSelectValue): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: MozSelectValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n handleChange(event: Event) {\n const target = event.target as HTMLSelectElement;\n const value = target.value;\n this._value.set(value);\n this.onChange(value);\n }\n\n readonly classes = computed(() => {\n return {\n [`mc-select--${this.size()}`]: this.size(),\n 'mc-select--readonly': this.readonly(),\n 'is-invalid': this.isInvalid(),\n };\n });\n}\n","<select\n class=\"mc-select\"\n [id]=\"id()\"\n [ngClass]=\"classes()\"\n [name]=\"name()\"\n [disabled]=\"disabled() || readonly()\"\n (change)=\"handleChange($event)\"\n>\n <option value=\"\" [selected]=\"!_value()\" disabled>\n {{ placeholder() || 'Select an option' }}\n </option>\n @for (option of options(); track $index) {\n <option\n [value]=\"option.value\"\n [selected]=\"_value() === option.value\"\n [disabled]=\"option.disabled\"\n [attr.data-id]=\"option.id\"\n [attr.*]=\"option.attributes\"\n >\n {{ option.text }}\n </option>\n }\n</select>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MozSelectComponent } from '../select/select';\nimport { ChevronLeft24, ChevronRight24 } from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\nimport { MozButtonComponent } from '../button/button';\n\n@Component({\n selector: 'moz-pagination',\n imports: [\n MozIconButtonComponent,\n MozSelectComponent,\n MozButtonComponent,\n ChevronLeft24,\n ChevronRight24,\n FormsModule,\n ],\n templateUrl: './pagination.html',\n styleUrls: ['./pagination.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozPaginationComponent {\n readonly id = input.required<string>();\n readonly compact = input<boolean>(false);\n readonly options = input.required<{ text: string; value: number }[]>();\n readonly selectLabel = input<string>('Select page');\n\n readonly value = input<number>();\n readonly updateValue = output<number>();\n\n readonly _currentValue = linkedSignal(this.value);\n\n readonly currentIndex = computed(\n () => this.options()?.findIndex((opt) => opt.value === this._currentValue()) ?? 0\n );\n\n readonly isFirstPage = computed(() => this.currentIndex() === 0);\n readonly isLastPage = computed(() => this.currentIndex() === this.options().length - 1);\n\n readonly currentPageText = computed(\n () => this.options().find((option) => option.value === this._currentValue())?.text || ''\n );\n\n previous(): void {\n const currentIndex = this.currentIndex();\n if (currentIndex > 0) {\n const newValue = this.options()[currentIndex - 1].value;\n this._currentValue.set(newValue);\n this.updateValue.emit(newValue);\n }\n }\n\n next(): void {\n const currentIndex = this.currentIndex();\n if (currentIndex < this.options().length - 1) {\n const newValue = this.options()[currentIndex + 1].value;\n this._currentValue.set(newValue);\n this.updateValue.emit(newValue);\n }\n }\n\n onSelectChange(value: string): void {\n this._currentValue.set(+value);\n this.updateValue.emit(+value);\n }\n}\n","<nav class=\"mc-pagination\" role=\"navigation\">\n @if (!compact()) {\n <button\n moz-button\n iconPosition=\"only\"\n aria-label=\"Previous page\"\n [disabled]=\"isFirstPage()\"\n (click)=\"previous()\"\n >\n <ChevronLeft24 icon />\n </button>\n } @else {\n <moz-icon-button aria-label=\"Previous page\" [disabled]=\"isFirstPage()\" (click)=\"previous()\">\n <ChevronLeft24 icon />\n </moz-icon-button>\n } @if (!compact()) {\n <div class=\"mc-pagination__field\">\n <moz-select\n class=\"mc-pagination__select\"\n [id]=\"id()\"\n [name]=\"id()\"\n [options]=\"options()\"\n [ngModel]=\"_currentValue()\"\n (ngModelChange)=\"onSelectChange($event)\"\n [ariaLabel]=\"selectLabel()\"\n />\n </div>\n } @else {\n <span class=\"mc-pagination__label\" aria-current=\"page\">\n {{ currentPageText() }}\n </span>\n } @if (!compact()) {\n <button\n moz-button\n iconPosition=\"only\"\n aria-label=\"Next page\"\n [disabled]=\"isLastPage()\"\n (click)=\"next()\"\n >\n <ChevronRight24 icon />\n </button>\n } @else {\n <moz-icon-button aria-label=\"Next page\" [disabled]=\"isLastPage()\" (click)=\"next()\">\n <ChevronRight24 icon />\n </moz-icon-button>\n }\n</nav>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n createComponent,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n inject,\n input,\n OnDestroy,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircleFilled24 } from '@mozaic-ds/icons-angular';\n\n/**\n * Directive that transforms a simple input into a styled password input with toggle visibility and clearable button.\n * Wraps the input element in a container and adds additional elements as needed.\n */\n@Component({\n selector: 'input[moz-password-input]',\n template: '',\n styleUrls: ['./password-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozPasswordInputDirective),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"mc-password-input__control mc-text-input__control\"',\n '[attr.aria-invalid]': 'isInvalid()',\n '[attr.aria-valuetext]': 'getValue()',\n '[type]': 'inputType()',\n '(input)': 'onInput($event)',\n '(blur)': 'onTouched()',\n '[disabled]': 'disabled()',\n },\n})\nexport class MozPasswordInputDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly clearable = input<boolean>(false);\n readonly clearLabel = input<string>('Clear content');\n readonly buttonLabel = input<{ show: string; hide: string }>({\n show: 'Show',\n hide: 'Hide',\n });\n\n private wrapper: HTMLElement | null = null;\n private clearButton: HTMLElement | null = null;\n private toggleButton: HTMLElement | null = null;\n private clearIconComponentRef: ComponentRef<CrossCircleFilled24> | null = null;\n private environmentInjector = inject(EnvironmentInjector);\n protected _value = signal<string>('');\n private _isVisible = signal(false);\n\n readonly inputType = computed(() => (this._isVisible() ? 'text' : 'password'));\n readonly ariaChecked = computed(() => (this._isVisible() ? 'true' : 'false'));\n readonly isClearable = computed(() => this.clearable() && this._value().length > 0);\n\n /** Get the current value of the input */\n getValue(): string {\n return this._value();\n }\n\n onChange: (value: string) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n constructor(private elementRef: ElementRef<HTMLInputElement>, private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.wrapInput();\n }\n\n ngOnDestroy(): void {\n if (this.clearIconComponentRef) {\n this.clearIconComponentRef.destroy();\n }\n }\n\n private wrapInput(): void {\n const input = this.elementRef.nativeElement;\n const parent = input.parentElement;\n\n if (!parent) return;\n\n // Create wrapper div\n this.wrapper = this.renderer.createElement('div');\n this.renderer.addClass(this.wrapper, 'mc-password-input');\n this.renderer.addClass(this.wrapper, 'mc-text-input');\n\n if (this.isInvalid()) {\n this.renderer.addClass(this.wrapper, 'is-invalid');\n }\n\n // Insert wrapper before input\n this.renderer.insertBefore(parent, this.wrapper, input);\n\n // Move input into wrapper\n this.renderer.appendChild(this.wrapper, input);\n\n // Add clearable button if needed\n if (this.clearable()) {\n this.createClearButton();\n }\n\n // Add toggle visibility button\n this.createToggleButton();\n }\n\n private createClearButton(): void {\n if (!this.wrapper) return;\n\n this.clearButton = this.renderer.createElement('button');\n this.renderer.setAttribute(this.clearButton, 'type', 'button');\n this.renderer.addClass(this.clearButton, 'mc-controls-options__button');\n this.renderer.listen(this.clearButton, 'click', () => this.clearValue());\n\n // Create icon component dynamically\n this.clearIconComponentRef = createComponent(CrossCircleFilled24, {\n environmentInjector: this.environmentInjector,\n });\n\n const iconElement = this.clearIconComponentRef.location.nativeElement;\n this.renderer.addClass(iconElement, 'mc-controls-options__icon');\n this.renderer.setAttribute(iconElement, 'aria-hidden', 'true');\n\n const label = this.renderer.createElement('span');\n this.renderer.addClass(label, 'mc-controls-options__label');\n this.renderer.setProperty(label, 'textContent', this.clearLabel());\n\n this.renderer.appendChild(this.clearButton, iconElement);\n this.renderer.appendChild(this.clearButton, label);\n this.renderer.appendChild(this.wrapper, this.clearButton);\n\n // Initially hide if no value\n this.updateClearButtonVisibility();\n }\n\n private createToggleButton(): void {\n if (!this.wrapper) return;\n\n // Create button element with manual CSS classes\n this.toggleButton = this.renderer.createElement('button');\n this.renderer.setAttribute(this.toggleButton, 'type', 'button');\n this.renderer.setAttribute(this.toggleButton, 'role', 'switch');\n this.renderer.addClass(this.toggleButton, 'mc-button');\n this.renderer.addClass(this.toggleButton, 'mc-button--s');\n this.renderer.addClass(this.toggleButton, 'mc-button--ghost');\n\n // Add click listener\n this.renderer.listen(this.toggleButton, 'click', () => this.toggleVisibility());\n\n // Set initial button text and aria-checked\n this.updateToggleButtonText(this.toggleButton || undefined);\n\n this.renderer.appendChild(this.wrapper, this.toggleButton);\n }\n\n private updateClearButtonVisibility(): void {\n if (!this.clearButton || !this.clearable()) return;\n\n if (this.isClearable()) {\n this.renderer.setStyle(this.clearButton, 'display', 'block');\n } else {\n this.renderer.setStyle(this.clearButton, 'display', 'none');\n }\n }\n\n private updateToggleButtonText(buttonElement?: HTMLElement): void {\n const button = buttonElement || this.toggleButton;\n if (!button) return;\n\n const text = this._isVisible() ? this.buttonLabel().hide : this.buttonLabel().show;\n this.renderer.setProperty(button, 'textContent', text);\n this.renderer.setAttribute(button, 'aria-checked', this.ariaChecked());\n }\n\n clearValue(): void {\n this._value.set('');\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\n this.onChange('');\n this.onTouched();\n this.updateClearButtonVisibility();\n }\n\n toggleVisibility(): void {\n this._isVisible.update((v) => !v);\n this.updateToggleButtonText();\n }\n\n onInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this._value.set(value);\n this.onChange(value);\n this.updateClearButtonVisibility();\n }\n\n writeValue(value: string): void {\n const normalizedValue = value ?? '';\n this._value.set(normalizedValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\n this.updateClearButtonVisibility();\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n Component,\n forwardRef,\n ElementRef,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n NgZone,\n signal,\n WritableSignal,\n input,\n inject,\n computed,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'moz-pincode',\n templateUrl: './pincode.html',\n styleUrls: ['./pincode.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozPincodeInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass],\n})\nexport class MozPincodeInputComponent implements OnInit, ControlValueAccessor {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly ngZone = inject(NgZone);\n\n id = input.required<string>();\n length = input<4 | 5 | 6>(6);\n name = input<string | undefined>(undefined);\n isInvalid = input<boolean>(false);\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n otp: WritableSignal<string[]> = signal([]);\n\n inputRefs = viewChildren<ElementRef<HTMLInputElement>>('pincodeItem');\n\n private _value = '';\n\n public onChange: (value: string) => void = () => void 0;\n public onTouched: () => void = () => void 0;\n\n readonly classObject = computed(() => ({\n 'is-invalid': this.isInvalid(),\n }));\n\n ngOnInit(): void {\n this.otp.set(Array(this.length()).fill(''));\n if (this._value) {\n this.writeValue(this._value);\n }\n }\n\n writeValue(value: string): void {\n this._value = String(value ?? '');\n const newOtp = Array.from({ length: this.length() }, (_, i) => this._value[i] ?? '');\n this.otp.set(newOtp);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n private focusInput(index: number): void {\n const refs = this.inputRefs();\n if (refs && refs.length > index && index >= 0) {\n this.ngZone.runOutsideAngular(() => {\n refs[index]?.nativeElement.focus();\n });\n }\n }\n\n onInput(event: Event, index: number): void {\n this.ngZone.runOutsideAngular(() => {\n const inputElement = event.target as HTMLInputElement;\n const val = inputElement.value.replace(/\\D/g, '');\n\n this.otp.update((currentOtp) => {\n const newOtp = [...currentOtp];\n newOtp[index] = val ? val[0] : '';\n return newOtp;\n });\n\n inputElement.value = this.otp()[index];\n\n const newValue = this.otp().join('');\n this._value = newValue;\n this.onChange(newValue);\n if (val && index + 1 < this.length()) {\n this.focusInput(index + 1);\n }\n this.onTouched();\n this.cdr.detectChanges();\n });\n }\n\n onKeyDown(event: KeyboardEvent, index: number): void {\n this.ngZone.runOutsideAngular(() => {\n if (event.key === 'ArrowLeft' && index > 0) {\n this.focusInput(index - 1);\n } else if (event.key === 'ArrowRight' && index < this.length() - 1) {\n this.focusInput(index + 1);\n } else if (event.key === 'Backspace') {\n this.onBackspace(event, index);\n }\n this.onTouched();\n });\n }\n\n onBackspace(event: KeyboardEvent, index: number): void {\n this.ngZone.runOutsideAngular(() => {\n if (!this.otp()[index] && index > 0) {\n event.preventDefault();\n\n this.otp.update((currentOtp) => {\n const newOtp = [...currentOtp];\n newOtp[index - 1] = '';\n return newOtp;\n });\n\n const newValue = this.otp().join('');\n this._value = newValue;\n this.onChange(newValue);\n this.focusInput(index - 1);\n this.cdr.detectChanges();\n }\n });\n }\n\n onPaste(event: ClipboardEvent): void {\n this.ngZone.runOutsideAngular(() => {\n event.preventDefault();\n const pasted = event.clipboardData?.getData('text') ?? '';\n const digits = pasted.replace(/\\D/g, '').slice(0, this.length()).split('');\n\n this.otp.set(Array.from({ length: this.length() }, (_, i) => digits[i] ?? ''));\n\n const newValue = this.otp().join('');\n this._value = newValue;\n this.onChange(newValue);\n this.focusInput(Math.min(digits.length - 1, this.length() - 1));\n this.onTouched();\n this.cdr.detectChanges();\n });\n }\n}\n","<div\n class=\"mc-pincode-input\"\n [ngClass]=\"classObject()\"\n (paste)=\"onPaste($event)\"\n>\n @for (digit of otp(); track $index) {\n <input\n #pincodeItem\n [id]=\"'pincodeItem' + $index\"\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n pattern=\"\\d*\"\n autocomplete=\"one-time-code\"\n [name]=\"name()\"\n class=\"mc-pincode-input__control\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [value]=\"digit\"\n (input)=\"onInput($event, $index)\"\n (keydown)=\"onKeyDown($event, $index)\"\n (blur)=\"onTouched()\"\n />\n }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Less24, More24 } from '@mozaic-ds/icons-angular';\n\nexport type MozQuantitySelectorSize = 's' | 'm';\n\n@Component({\n selector: 'moz-quantity-selector',\n imports: [More24, Less24, NgClass],\n templateUrl: './quantity-selector.html',\n styleUrls: ['./quantity-selector.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozQuantitySelectorComponent),\n multi: true,\n },\n ],\n})\nexport class MozQuantitySelectorComponent implements ControlValueAccessor {\n readonly id = input.required<string>();\n readonly name = input<string>('quantity-selector-input');\n readonly size = input<MozQuantitySelectorSize>('m');\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly min = input<number>(1);\n readonly max = input<number>(100);\n readonly step = input<number>(1);\n readonly incrementLabel = input<string>('Increment');\n readonly decrementLabel = input<string>('Decrement');\n\n readonly _value = signal<number>(1);\n\n readonly classes = computed(() => ({\n [`mc-quantity-selector--${this.size()}`]: this.size(),\n 'is-invalid': this.isInvalid(),\n }));\n\n private onChange: (value: number) => void = () => void 0;\n private onTouched: () => void = () => void 0;\n\n writeValue(value: number): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChangeInput(event: Event): void {\n let value = Number((event.target as HTMLInputElement).value);\n\n value = Math.max(this.min(), Math.min(this.max(), value));\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n increment(): void {\n const value = Math.min(this.max(), this._value() + this.step());\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n decrement(): void {\n const value = Math.max(this.min(), this._value() - this.step());\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n}\n","<div class=\"mc-quantity-selector\" [ngClass]=\"classes()\">\n <input\n class=\"mc-quantity-selector__control\"\n type=\"number\"\n [id]=\"id()\"\n [name]=\"name()\"\n [disabled]=\"disabled()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"_value()\"\n [value]=\"_value()\"\n (change)=\"onChangeInput($event)\"\n />\n\n @if (!readonly()) {\n <button\n type=\"button\"\n [attr.aria-controls]=\"id()\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--increase\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || _value() === max()\"\n (click)=\"increment()\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <More24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ incrementLabel() }}</span>\n </button>\n\n <button\n type=\"button\"\n [attr.aria-controls]=\"id()\"\n class=\"mc-quantity-selector__button mc-quantity-selector__button--decrease\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || _value() === min()\"\n (click)=\"decrement()\"\n >\n <span class=\"mc-quantity-selector__icon\">\n <Less24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{{ decrementLabel() }}</span>\n </button>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'moz-radio',\n templateUrl: './radio.html',\n styleUrls: ['./radio.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozRadioComponent),\n multi: true,\n },\n ],\n imports: [NgClass],\n})\nexport class MozRadioComponent implements ControlValueAccessor {\n id = input.required<string>();\n name = input<string | undefined>();\n label = input<string | undefined>();\n isInvalid = input<boolean>(false);\n disabled = input<boolean>(false);\n\n _value = signal<boolean>(false);\n\n onChange: (_: boolean) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n handleChange(event: Event): void {\n const isChecked = (event.target as HTMLInputElement).checked;\n this._value.set(isChecked);\n this.onChange(isChecked);\n this.onTouched();\n }\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly classes = computed(() => {\n return {\n 'is-invalid': this.isInvalid(),\n };\n });\n}\n","<div class=\"mc-radio\">\n <input\n class=\"mc-radio__input\"\n [ngClass]=\"classes()\"\n [id]=\"id()\"\n [type]=\"'radio'\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"isInvalid()\"\n (change)=\"handleChange($event)\"\n />\n @if (label()) {\n <label class=\"mc-radio__label\" [for]=\"id()\"> {{ label() }} </label>\n }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MozRadioComponent } from '../radio/radio';\n\n@Component({\n selector: 'moz-radio-group',\n templateUrl: './radio-group.html',\n styleUrls: ['./radio-group.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozRadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MozRadioComponent, FormsModule, NgClass],\n})\nexport class MozRadioGroupComponent implements ControlValueAccessor {\n name = input.required<string>();\n options = input<{ id: string; label: string; value: string; disabled?: boolean }[]>([]);\n isInvalid = input(false);\n inline = input(false);\n\n _value = signal<string | null>(null);\n\n onChange: (value: string) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: string): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n select(value: string) {\n this._value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n readonly classes = computed(() => {\n return {\n 'mc-field__content--inline': this.inline(),\n };\n });\n}\n","<fieldset class=\"mc-field mc-field--group\">\n <div class=\"mc-field__content\" [ngClass]=\"classes()\">\n @for (option of options(); track $index) {\n <moz-radio\n [id]=\"option.id\"\n [label]=\"option.label\"\n [name]=\"name()\"\n [ngModel]=\"_value() === option.value\"\n [disabled]=\"option.disabled ?? false\"\n [isInvalid]=\"isInvalid()\"\n (change)=\"select(option.value)\"\n ></moz-radio>\n }\n </div>\n</fieldset>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozStatusDotStatus = 'info' | 'success' | 'warning' | 'error' | 'neutral';\nexport type MozStatusDotSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-status-dot',\n imports: [NgClass],\n templateUrl: './status-dot.html',\n styleUrls: ['./status-dot.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozStatusDotComponent {\n status = input<MozStatusDotStatus>('info');\n size = input<MozStatusDotSize>('m');\n\n readonly classes = computed(() => {\n return {\n [`mc-status-dot--${this.status()}`]: this.status(),\n [`mc-status-dot--${this.size()}`]: this.size(),\n };\n });\n}\n","<span class=\"mc-status-dot\" [ngClass]=\"classes()\"></span>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MozStatusDotComponent } from '../status-dot/status-dot';\n\nexport type MozStatusBadgeStatus = 'info' | 'success' | 'warning' | 'error' | 'neutral';\n\n@Component({\n selector: 'moz-status-badge',\n imports: [NgClass, MozStatusDotComponent],\n templateUrl: './status-badge.html',\n styleUrls: ['./status-badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozStatusBadgeComponent {\n label = input<string>();\n status = input<MozStatusBadgeStatus>('info');\n\n readonly classes = computed(() => {\n return {\n [`mc-status-badge--${this.status()}`]: this.status(),\n };\n });\n}\n","<div class=\"mc-status-badge\" [ngClass]=\"classes()\">\n <moz-status-dot [status]=\"status()\" />\n <span class=\"mc-status-badge__label\">{{ label() }}</span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n output,\n TemplateRef,\n} from '@angular/core';\n\nimport { NgClass, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n CheckCircle32,\n Cross20,\n CrossCircle32,\n InfoCircle32,\n WarningCircle32,\n} from '@mozaic-ds/icons-angular';\n\nexport type MozStatusNotificationStatus = 'info' | 'success' | 'warning' | 'error';\n\n@Component({\n selector: 'moz-status-notification',\n templateUrl: './status-notification.html',\n styleUrls: ['./status-notification.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, Cross20, NgComponentOutlet, NgTemplateOutlet],\n})\nexport class MozStatusNotificationComponent {\n title = input.required<string>();\n description = input.required<string>();\n status = input<MozStatusNotificationStatus>('info');\n closable = input<boolean>(false);\n closed = output<void>();\n footerTpl = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n readonly classes = computed(() => ({\n [`mc-status-notification--${this.status()}`]: this.status(),\n }));\n\n readonly iconComponent = computed(() => {\n switch (this.status()) {\n case 'success':\n return CheckCircle32;\n case 'warning':\n return WarningCircle32;\n case 'error':\n return CrossCircle32;\n default:\n return InfoCircle32;\n }\n });\n\n onCloseClick(): void {\n this.closed.emit();\n }\n}\n","<section class=\"mc-status-notification\" role=\"status\" [ngClass]=\"classes()\">\n <div class=\"mc-status-notification__icon\">\n <ng-container [ngComponentOutlet]=\"iconComponent()\" />\n </div>\n\n <div class=\"mc-status-notification__content\">\n <h2 class=\"mc-status-notification__title\">{{ title() }}</h2>\n <p class=\"mc-status-notification__message\">{{ description() }}</p>\n\n @if (footerTpl()) {\n <div class=\"mc-status-notification__footer\">\n <ng-container [ngTemplateOutlet]=\"footerTpl()\" />\n </div>\n }\n </div>\n\n @if (closable()) {\n <button\n class=\"mc-status-notification-closable__close mc-button mc-button--s mc-button--icon-button mc-button--ghost\"\n type=\"button\"\n (click)=\"onCloseClick()\"\n >\n <Cross20 class=\"mc-button__icon\" aria-hidden=\"true\" />\n </button>\n }\n</section>\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n Type,\n computed,\n input,\n model,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { MozDividerComponent } from '../divider/divider';\n\nexport interface MozTabItem {\n label: string;\n icon?: Type<unknown>;\n disabled?: boolean;\n routerLink?: string;\n}\n\n@Component({\n selector: 'moz-tabs',\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.scss'],\n imports: [NgComponentOutlet, NgClass, RouterModule, MozDividerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozTabsComponent {\n tabs = input.required<MozTabItem[]>();\n description = input<string | undefined>();\n divider = input(true);\n centered = input(false);\n selectedIndex = model<number>(0);\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n readonly classes = computed(() => ({\n 'mc-tabs--centered': this.centered(),\n }));\n\n isTabSelected = (index: number): boolean => index === this.selectedIndex();\n\n getTabClasses(index: number) {\n return computed(() => {\n const tab = this.tabs()[index];\n return {\n 'mc-tabs__tab--selected': this.isTabSelected(index),\n 'mc-tabs__tab--disabled': !!tab?.disabled,\n };\n });\n }\n\n onClickTab(index: number): void {\n const tab = this.tabs()[index];\n if (!tab || tab.disabled) return;\n if (index !== this.selectedIndex()) {\n this.selectedIndexChange.emit(index);\n this.selectedIndex.set(index);\n }\n }\n}\n","<nav class=\"mc-tabs\" [ngClass]=\"classes()\" aria-label=\"Tabs\">\n <ul class=\"mc-tabs__list\" role=\"tablist\" [attr.aria-label]=\"description()\">\n @for (tab of tabs(); let index = $index; track index) {\n <li class=\"mc-tabs__item\" role=\"presentation\">\n @if (tab.routerLink) {\n <button\n type=\"button\"\n role=\"tab\"\n class=\"mc-tabs__tab\"\n [ngClass]=\"getTabClasses(index)()\"\n [routerLink]=\"tab.routerLink\"\n [attr.aria-selected]=\"isTabSelected(index)\"\n (click)=\"onClickTab(index)\"\n >\n @if (tab.icon) {\n <span class=\"mc-tabs__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"tab.icon\"></ng-container>\n </span>\n }\n <div class=\"mc-tabs__label\">\n <span>{{ tab.label }}</span>\n </div>\n </button>\n } @else {\n <button\n type=\"button\"\n role=\"tab\"\n class=\"mc-tabs__tab\"\n [ngClass]=\"getTabClasses(index)()\"\n [attr.aria-selected]=\"isTabSelected(index)\"\n (click)=\"onClickTab(index)\"\n >\n @if (tab.icon) {\n <span class=\"mc-tabs__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"tab.icon\"></ng-container>\n </span>\n }\n <div class=\"mc-tabs__label\">\n <span>{{ tab.label }}</span>\n </div>\n </button>\n }\n </li>\n }\n </ul>\n\n @if (divider()) {\n <moz-divider></moz-divider>\n }\n</nav>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircleFilled24 } from '@mozaic-ds/icons-angular';\nimport { MozNumberBadgeComponent } from '../number-badge/number-badge';\n\nexport type MozTagType =\n | 'informative'\n | 'interactive'\n | 'contextualised'\n | 'removable'\n | 'selectable';\nexport type MozTagSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-tag',\n imports: [CrossCircleFilled24, MozNumberBadgeComponent],\n templateUrl: './tag.html',\n styleUrls: ['./tag.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTagComponent),\n multi: true,\n },\n ],\n})\nexport class MozTagComponent implements ControlValueAccessor {\n readonly type = input<MozTagType>('informative');\n readonly size = input<MozTagSize>('m');\n readonly id = input.required<string>();\n readonly name = input<string>();\n readonly label = input.required<string>();\n readonly disabled = input<boolean>(false);\n readonly contextualisedNumber = input<number>(99);\n readonly removableLabel = input<string>('Remove');\n\n readonly _value = signal<boolean>(true);\n\n readonly removeTag = output<string>();\n\n readonly classes = computed(() => ({\n [`mc-tag-${this.type()}`]: this.type(),\n [`mc-tag--${this.size()}`]: this.size(),\n }));\n\n private onChange: (value: boolean) => void = () => void 0;\n private onTouched: () => void = () => void 0;\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onCheckboxChange(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n this._value.set(checked);\n this.onChange(checked);\n this.onTouched();\n }\n\n onRemove(): void {\n this.removeTag.emit(this.id());\n }\n}\n","<!-- Selectable -->\n@if (type() === 'selectable') {\n<label class=\"mc-tag\" [class]=\"classes()\" [attr.for]=\"id()\">\n <input\n type=\"checkbox\"\n class=\"mc-tag__input\"\n [id]=\"id()\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [disabled]=\"disabled()\"\n (change)=\"onCheckboxChange($event)\"\n />\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</label>\n}\n<!-- Interactive -->\n@if (type() === 'interactive') {\n<button\n type=\"button\"\n class=\"mc-tag\"\n [class]=\"classes()\"\n [disabled]=\"disabled()\"\n>\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</button>\n}\n<!-- Contextualised -->\n@if (type() === 'contextualised') {\n<button\n type=\"button\"\n class=\"mc-tag\"\n [class]=\"classes()\"\n [disabled]=\"disabled()\"\n>\n <moz-number-badge\n appearance=\"inverse\"\n [label]=\"contextualisedNumber()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</button>\n}\n<!-- Removable -->\n@if (type() === 'removable') {\n<span class=\"mc-tag\" [class]=\"classes()\">\n <span class=\"mc-tag__label\">{{ label() }}</span>\n <button class=\"mc-tag-removable__remove\" type=\"button\" (click)=\"onRemove()\">\n <CrossCircleFilled24\n class=\"mc-tag-removable__icon\"\n aria-hidden=\"true\"\n />\n <span class=\"mc-tag-removable__text\">{{ removableLabel() }}</span>\n </button>\n</span>\n}\n<!-- Informative -->\n@if (type() === 'informative') {\n<span class=\"mc-tag\" [class]=\"classes()\">\n <span class=\"mc-tag__label\">{{ label() }}</span>\n</span>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n input,\n OnDestroy,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Directive that transforms a simple textarea into a styled textarea.\n * Applies Mozaic Design System styles to native textarea elements.\n */\n@Component({\n selector: 'textarea[moz-text-area]',\n template: '',\n styleUrls: ['./text-area.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTextareaDirective),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.mc-textarea]': 'true',\n '[class.is-invalid]': 'isInvalid()',\n '[class.is-disabled]': 'disabled()',\n '[attr.aria-invalid]': 'isInvalid()',\n '[disabled]': 'disabled()',\n '(input)': 'handleInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class MozTextareaDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly rows = input<number>(2);\n readonly minLength = input<number | undefined>();\n readonly maxLength = input<number | undefined>();\n\n private _value = signal<string>('');\n\n onChange: (value: string) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n constructor(private elementRef: ElementRef<HTMLTextAreaElement>, private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.applyAttributes();\n }\n\n ngOnDestroy(): void {\n // Cleanup if needed\n }\n\n private applyAttributes(): void {\n const textarea = this.elementRef.nativeElement;\n\n if (this.rows()) {\n this.renderer.setAttribute(textarea, 'rows', String(this.rows()));\n }\n\n if (this.minLength() !== undefined) {\n this.renderer.setAttribute(textarea, 'minlength', String(this.minLength()));\n }\n\n if (this.maxLength() !== undefined) {\n this.renderer.setAttribute(textarea, 'maxlength', String(this.maxLength()));\n }\n }\n\n handleInput(event: Event): void {\n const value = (event.target as HTMLTextAreaElement).value;\n this._value.set(value);\n this.onChange(value);\n }\n\n writeValue(value: string): void {\n const normalizedValue = value ?? '';\n this._value.set(normalizedValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n createComponent,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n inject,\n input,\n OnDestroy,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircleFilled24 } from '@mozaic-ds/icons-angular';\n\nexport type MozTextInputSize = 's' | 'm';\n/**\n * Directive that transforms a simple input into a styled text input with optional icon and clearable button.\n * Wraps the input element in a container and adds additional elements as needed.\n */\n@Component({\n selector: 'input[moz-text-input]',\n template: '',\n styleUrls: ['./text-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTextInputDirective),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"mc-text-input__control\"',\n '[attr.aria-invalid]': 'isInvalid()',\n '[disabled]': 'disabled()',\n '(input)': 'onInput($event)',\n '(blur)': 'onTouched()',\n },\n})\nexport class MozTextInputDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n readonly isInvalid = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly size = input<MozTextInputSize>('m');\n readonly clearable = input<boolean>(false);\n readonly clearLabel = input<string>('Clear content');\n\n private wrapper: HTMLElement | null = null;\n private clearButton: HTMLElement | null = null;\n private iconContainer: HTMLElement | null = null;\n private iconComponentRef: ComponentRef<CrossCircleFilled24> | null = null;\n private _value = signal<string>('');\n\n readonly isClearable = computed(() => this.clearable() && this._value());\n\n private environmentInjector = inject(EnvironmentInjector);\n\n constructor(private elementRef: ElementRef<HTMLInputElement>, private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.wrapInput();\n }\n\n ngOnDestroy(): void {\n if (this.iconComponentRef) {\n this.iconComponentRef.destroy();\n }\n }\n\n private wrapInput(): void {\n const input = this.elementRef.nativeElement;\n const parent = input.parentElement;\n\n if (!parent) return;\n\n // Create wrapper div\n this.wrapper = this.renderer.createElement('div');\n this.renderer.addClass(this.wrapper, 'mc-text-input');\n\n if (this.size()) {\n this.renderer.addClass(this.wrapper, `mc-text-input--${this.size()}`);\n }\n if (this.isInvalid()) {\n this.renderer.addClass(this.wrapper, 'is-invalid');\n }\n\n // Insert wrapper before input\n this.renderer.insertBefore(parent, this.wrapper, input);\n\n // Check for icon element (sibling with attribute [icon])\n const iconElement = this.findIconElement(parent);\n if (iconElement) {\n this.createIconContainer(iconElement);\n }\n\n // Move input into wrapper\n this.renderer.appendChild(this.wrapper, input);\n\n // Add clearable button if needed\n if (this.clearable()) {\n this.createClearButton();\n }\n }\n\n private findIconElement(parent: HTMLElement): Element | null {\n // Look for an element with [icon] attribute as sibling of input\n const children = Array.from(parent.children);\n return children.find((child) => child.hasAttribute('icon')) || null;\n }\n\n private createIconContainer(iconElement: Element): void {\n if (!this.wrapper) return;\n\n this.iconContainer = this.renderer.createElement('div');\n this.renderer.addClass(this.iconContainer, 'mc-text-input__icon');\n\n // Move the icon element into the icon container\n this.renderer.appendChild(this.iconContainer, iconElement);\n\n // Add icon container to wrapper\n this.renderer.appendChild(this.wrapper, this.iconContainer);\n }\n\n private createClearButton(): void {\n if (!this.wrapper) return;\n\n const controlsDiv = this.renderer.createElement('div');\n this.renderer.addClass(controlsDiv, 'mc-controls-options');\n\n this.clearButton = this.renderer.createElement('button');\n this.renderer.setAttribute(this.clearButton, 'type', 'button');\n this.renderer.addClass(this.clearButton, 'mc-controls-options__button');\n this.renderer.listen(this.clearButton, 'click', () => this.clearValue());\n\n // Create icon component dynamically\n this.iconComponentRef = createComponent(CrossCircleFilled24, {\n environmentInjector: this.environmentInjector,\n });\n\n const iconElement = this.iconComponentRef.location.nativeElement;\n this.renderer.addClass(iconElement, 'mc-controls-options__icon');\n this.renderer.setAttribute(iconElement, 'aria-hidden', 'true');\n\n const label = this.renderer.createElement('span');\n this.renderer.addClass(label, 'mc-controls-options__label');\n this.renderer.setProperty(label, 'textContent', this.clearLabel());\n\n this.renderer.appendChild(this.clearButton, iconElement);\n this.renderer.appendChild(this.clearButton, label);\n this.renderer.appendChild(controlsDiv, this.clearButton);\n this.renderer.appendChild(this.wrapper, controlsDiv);\n\n // Initially hide if no value\n this.updateClearButtonVisibility();\n }\n\n private updateClearButtonVisibility(): void {\n if (!this.clearButton || !this.clearable()) return;\n\n const parent = this.clearButton.parentElement;\n if (parent) {\n if (this.isClearable()) {\n this.renderer.setStyle(parent, 'display', 'block');\n } else {\n this.renderer.setStyle(parent, 'display', 'none');\n }\n }\n }\n\n clearValue(): void {\n this._value.set('');\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\n this.onChange('');\n this.onTouched();\n this.updateClearButtonVisibility();\n }\n\n onInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this._value.set(value);\n this.onChange(value);\n this.updateClearButtonVisibility();\n }\n\n onChange: (value: string | number) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: string | number): void {\n const normalizedValue = value == null ? '' : String(value);\n this._value.set(normalizedValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', normalizedValue);\n this.updateClearButtonVisibility();\n }\n\n registerOnChange(fn: (value: string | number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\n\nexport type MozToggleSize = 's' | 'm';\n\n@Component({\n selector: 'moz-toggle',\n imports: [FormsModule, ReactiveFormsModule, NgClass],\n templateUrl: './toggle.html',\n styleUrls: ['./toggle.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozToggleComponent implements ControlValueAccessor {\n id = input.required<string>();\n name = input<string | undefined>();\n label = input<string | undefined>();\n size = input<MozToggleSize>('s');\n disabled = input<boolean>(false);\n readonly classes = computed(() => {\n return {\n [`mc-toggle--${this.size()}`]: this.size(),\n };\n });\n\n _value = signal(false);\n\n onChange: (_: boolean) => void = () => void 0;\n onTouched: () => void = () => void 0;\n\n writeValue(value: boolean): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onInputChange(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n this._value.set(checked);\n this.onChange(checked);\n this.onTouched();\n }\n}\n","<div class=\"mc-toggle\" [ngClass]=\"classes()\">\n <label class=\"mc-toggle__container\">\n <input\n #toggleRef\n [id]=\"id()\"\n type=\"checkbox\"\n class=\"mc-toggle__input\"\n [name]=\"name()\"\n [checked]=\"_value()\"\n [disabled]=\"disabled()\"\n (change)=\"onInputChange($event)\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-checked]=\"_value()\"\n />\n @if (label()) {\n <span class=\"mc-toggle__label\" [attr.for]=\"id()\"> {{ label() }} </span>\n }\n </label>\n</div>\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozFlagType = 'default' | 'accent' | 'danger' | 'inverse';\n\n@Component({\n selector: 'moz-flag',\n templateUrl: './flag.html',\n styleUrls: ['./flag.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozFlagComponent {\n readonly type = input<MozFlagType>('default');\n\n get typeClass() {\n switch (this.type()) {\n case 'accent':\n return 'mc-flag--accent';\n case 'danger':\n return 'mc-flag--danger';\n case 'inverse':\n return 'mc-flag--inverse';\n default:\n return '';\n }\n }\n}\n","<div class=\"mc-flag\" [ngClass]=\"typeClass\">\n <span class=\"mc-flag__label\">\n <ng-content />\n </span>\n</div>\n","import {\n Component,\n input,\n signal,\n ChangeDetectionStrategy,\n forwardRef,\n computed,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CrossCircle24 } from '@mozaic-ds/icons-angular';\nimport { NgClass } from '@angular/common';\n\nexport type MozDatepickerSize = 'default' | 's';\n\n@Component({\n selector: 'moz-datepicker',\n templateUrl: './datepicker.html',\n styleUrls: ['./datepicker.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozDatepickerComponent),\n multi: true,\n },\n ],\n imports: [CrossCircle24, NgClass],\n})\nexport class MozDatepickerComponent implements ControlValueAccessor {\n readonly id = input.required<string>();\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n readonly error = input<string | undefined>(undefined);\n readonly clearable = input<boolean>(false);\n readonly size = input<MozDatepickerSize>('default');\n readonly label = input<string>('Date');\n\n _value = signal<string | null>(null);\n\n readonly classes = computed(() => ({\n 'is-invalid': this.invalid(),\n 'mc-datepicker--s': this.size() === 's',\n 'mc-text-input--s': this.size() === 's',\n }));\n\n private onChange: (value: string | null) => void = () => void 0;\n private onTouched: () => void = () => void 0;\n\n writeValue(val: string | null): void {\n this._value.set(val);\n }\n\n registerOnChange(fn: (val: string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onInput(event: Event) {\n const input = event.target as HTMLInputElement;\n const newVal = input.value || null;\n this._value.set(newVal);\n this.onChange(newVal);\n }\n\n onClear() {\n this._value.set(null);\n this.onChange(null);\n }\n\n onBlur() {\n this.onTouched();\n }\n}\n","<div class=\"mc-field\">\n <label class=\"mc-field__label\" [attr.for]=\"id()\"> {{ label() }} </label>\n\n <div class=\"mc-field__content\">\n <div class=\"mc-datepicker mc-text-input\" [ngClass]=\"classes()\">\n <input\n type=\"date\"\n [id]=\"id()\"\n class=\"mc-datepicker__control mc-text-input__control\"\n [value]=\"_value() ?? ''\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n [attr.aria-invalid]=\"invalid()\"\n />\n\n @if (clearable() && !disabled() && !readonly() && _value()) {\n <div class=\"mc-controls-options mc-datepicker__controls-options\">\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n (click)=\"onClear()\"\n aria-label=\"Clear\"\n tabindex=\"-1\"\n >\n <CrossCircle24 class=\"mc-controls-options__icon\" />\n <span class=\"mc-controls-options__label\"\n >Clear content</span\n >\n </button>\n </div>\n }\n </div>\n </div>\n\n @if (invalid() && error()) {\n <span class=\"mc-field__validation-message is-invalid\"> {{ error() }} </span>\n }\n</div>\n","import { Component, input, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n@Component({\n selector: 'moz-tooltip',\n templateUrl: './tooltip.html',\n styleUrls: ['./tooltip.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n})\nexport class MozTooltipComponent {\n readonly id = input.required<string>();\n readonly position = input<MozTooltipPosition>('top');\n readonly noPointer = input<boolean>(false);\n readonly standalone = input<boolean>(false);\n content = '';\n\n readonly classes = computed(() => ({\n 'mc-tooltip': true,\n [`mc-tooltip--${this.position()}`]: !!this.position(),\n 'mc-tooltip--no-pointer': this.noPointer(),\n 'mc-tooltip--standalone': this.standalone(),\n }));\n}\n","<div [ngClass]=\"classes()\">\n @if (!standalone()) {\n <div>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n }\n\n <span [id]=\"id()\" class=\"mc-tooltip__content\" role=\"tooltip\">\n @if (content) {\n {{ content }}\n } @else {\n <ng-content select=\"[content]\"></ng-content>\n }\n </span>\n</div>\n","import { Directive, ElementRef, HostListener, OnDestroy, inject, Input } from '@angular/core';\nimport {\n Overlay,\n OverlayRef,\n OverlayPositionBuilder,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { MozTooltipComponent, MozTooltipPosition } from './tooltip';\n\n@Directive({\n selector: '[mozTooltip]',\n})\nexport class MozTooltipDirective implements OnDestroy {\n @Input('mozTooltip') content = '';\n @Input() tooltipPosition: MozTooltipPosition = 'top';\n @Input() tooltipNoPointer = false;\n\n private overlayRef: OverlayRef | null = null;\n private overlay = inject(Overlay);\n private overlayPositionBuilder = inject(OverlayPositionBuilder);\n private elementRef = inject(ElementRef);\n\n @HostListener('mouseenter')\n show(): void {\n if (this.overlayRef?.hasAttached()) {\n return;\n }\n\n const offset = 20;\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getPositions());\n\n if (this.tooltipPosition === 'top') {\n positionStrategy.withDefaultOffsetY(-offset);\n } else if (this.tooltipPosition === 'bottom') {\n positionStrategy.withDefaultOffsetY(offset);\n } else if (this.tooltipPosition === 'left') {\n positionStrategy.withDefaultOffsetX(-offset);\n } else if (this.tooltipPosition === 'right') {\n positionStrategy.withDefaultOffsetX(offset);\n }\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n\n const tooltipPortal = new ComponentPortal(MozTooltipComponent);\n const tooltipRef = this.overlayRef.attach(tooltipPortal);\n\n tooltipRef.setInput('id', `tooltip-${Math.random().toString(36).substr(2, 9)}`);\n tooltipRef.setInput('position', this.tooltipPosition);\n tooltipRef.setInput('noPointer', this.tooltipNoPointer);\n tooltipRef.setInput('standalone', true);\n tooltipRef.instance.content = this.content;\n }\n\n @HostListener('mouseleave')\n hide(): void {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n }\n\n ngOnDestroy(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n private getPositions(): ConnectedPosition[] {\n const positions: Record<MozTooltipPosition, ConnectedPosition> = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n };\n\n return [positions[this.tooltipPosition]];\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozCircularProgessBarSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-circular-progress-bar',\n templateUrl: './ciruclar-progress-bar.html',\n styleUrls: ['./circular-progress-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozCircularProgressBarComponent {\n valuePercent = input<number>(0);\n size = input<MozCircularProgessBarSize>('l');\n ariaLabel = input<string>('Progress bar');\n numberLabel = input<string | null>(null);\n textLabel = input<string | null>(null);\n showPercentage = input<boolean>(false);\n\n classes = computed(() => {\n const classes = ['mc-circular-progressbar'];\n if (this.size() === 's') classes.push('mc-circular-progressbar--s');\n if (this.size() === 'm') classes.push('mc-circular-progressbar--m');\n return classes.join(' ');\n });\n\n hasNumberOrText = () => !!(this.numberLabel() || this.textLabel());\n}\n","<div\n [class]=\"classes()\"\n role=\"progressbar\"\n [attr.aria-label]=\"ariaLabel()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"valuePercent()\"\n [style.--progress-value]=\"valuePercent()\"\n>\n <svg\n class=\"mc-circular-progressbar__line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n viewBox=\"0 0 100 100\"\n >\n <circle\n class=\"mc-circular-progressbar__track\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n <circle\n class=\"mc-circular-progressbar__indicator\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n </svg>\n\n @if (showPercentage()) {\n <div class=\"mc-circular-progressbar__percentage\">\n <p class=\"mc-circular-progressbar__value\">{{ valuePercent() }}</p>\n <p class=\"mc-circular-progressbar__unit\">%</p>\n </div>\n } @else if (hasNumberOrText()) {\n <div class=\"mc-circular-progressbar__content\">\n @if (numberLabel()) {\n <p class=\"mc-circular-progressbar__number\">{{ numberLabel() }}</p>\n } @if (textLabel()) {\n <p class=\"mc-circular-progressbar__text\">{{ textLabel() }}</p>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'moz-linear-progress-bar-percentage',\n templateUrl: './linear-progress-bar-percentage.html',\n styleUrls: ['./linear-progress-bar-percentage.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozLinearProgressBarPercentageComponent {\n valuePercent = input<number>(0);\n ariaLabel = input<string>('Progress bar');\n showLabel = input<boolean>(false);\n}\n","<div class=\"mc-linear-progressbar-percentage\">\n <div\n class=\"mc-linear-progressbar-percentage__indicator\"\n role=\"progressbar\"\n [style.--progress-value]=\"valuePercent()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-valuenow]=\"valuePercent()\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n @if (showLabel()) {\n <div class=\"mc-linear-progressbar-percentage__label\">\n <p class=\"mc-linear-progressbar-percentage__value\">\n {{ valuePercent() }}<span\n class=\"mc-linear-progressbar-percentage__unit\"\n >%</span\n >\n </p>\n </div>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ImageAlt32 } from '@mozaic-ds/icons-angular';\nimport { NgClass } from '@angular/common';\n\nexport type MozCalloutVariant = 'default' | 'inverse' | 'tips' | 'accent';\n\n@Component({\n selector: 'moz-callout',\n imports: [ImageAlt32, NgClass],\n templateUrl: './callout.html',\n styleUrls: ['./callout.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozCalloutComponent {\n title = input<string | null>(null);\n message = input<string | null>(null);\n role = input<string>('status');\n variant = input<MozCalloutVariant>('default');\n\n classes = computed(() => {\n const classes = ['mc-callout'];\n if (this.variant() === 'default') classes.push('mc-callout--default');\n if (this.variant() === 'inverse') classes.push('mc-callout--inverse');\n if (this.variant() === 'tips') classes.push('mc-callout--tips');\n if (this.variant() === 'accent') classes.push('mc-callout--accent');\n return classes.join(' ');\n });\n}\n","<section [attr.role]=\"role()\" [ngClass]=\"classes()\">\n <ImageAlt32 class=\"mc-callout__icon\" />\n <div class=\"mc-callout__content\">\n @if (title()) {\n <h2 class=\"mc-callout__title\">{{ title() }}</h2>\n } @if (message()) {\n <p class=\"mc-callout__message\">{{ message() }}</p>\n }\n <div class=\"mc-callout__footer\">\n <ng-content select=\"[footer]\" />\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type MozAvatarSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-avatar',\n templateUrl: './avatar.html',\n styleUrls: ['./avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozAvatarComponent {\n size = input<MozAvatarSize>('s');\n\n hostClasses = computed(() => {\n const size = this.size();\n return ['mc-avatar', size === 'm' ? 'mc-avatar--m' : '', size === 'l' ? 'mc-avatar--l' : '']\n .filter(Boolean)\n .join(' ');\n });\n}\n","<div [class]=\"hostClasses()\">\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n computed,\n booleanAttribute,\n signal,\n effect,\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n ControlValueAccessor,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ChevronDown24 } from '@mozaic-ds/icons-angular';\nimport parsePhoneNumberFromString, {\n isValidPhoneNumber,\n getCountries,\n getCountryCallingCode,\n getExampleNumber,\n type CountryCode,\n type Examples,\n} from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\n\nexport type MozPhoneNumberCountry = {\n code: string; // ex: 'fr'\n name: string; // ex: 'France'\n dialCode: string; // ex: '+33'\n};\n\nexport type MozPhoneNumberValue = {\n country: string; // code ISO 2\n number: string; // numéro national (ex: \"6 XX XX XX XX\")\n};\n\nlet UID = 0;\n\n@Component({\n selector: 'moz-phone-number',\n imports: [FormsModule, ReactiveFormsModule, ChevronDown24],\n templateUrl: './phone-number-input.html',\n styleUrls: ['./phone-number-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozPhoneNumberComponent),\n multi: true,\n },\n ],\n})\nexport class MozPhoneNumberComponent implements ControlValueAccessor {\n label = input<string>('Phone number');\n requirementText = input<string | null>('(required / optional)');\n showRequirement = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n helpText = input<string | null>('Help text');\n\n size = input<'s' | 'm'>('m');\n placeholder = input<string | null>(null);\n\n defaultCountry = input<string>('fr');\n locale = input<string>('en');\n\n countryCodes = input<string[] | null>(null);\n\n countries = input<MozPhoneNumberCountry[]>([\n {\n code: 'br',\n name: 'Brazil',\n dialCode: '+55',\n },\n {\n code: 'fr',\n name: 'France',\n dialCode: '+33',\n },\n {\n code: 'gr',\n name: 'Greece',\n dialCode: '+30',\n },\n {\n code: 'it',\n name: 'Italy',\n dialCode: '+39',\n },\n {\n code: 'pl',\n name: 'Poland',\n dialCode: '+48',\n },\n {\n code: 'pt',\n name: 'Portugal',\n dialCode: '+351',\n },\n {\n code: 'ro',\n name: 'Romania',\n dialCode: '+40',\n },\n {\n code: 'za',\n name: 'South Africa',\n dialCode: '+27',\n },\n {\n code: 'es',\n name: 'Spain',\n dialCode: '+34',\n },\n {\n code: 'ua',\n name: 'Ukraine',\n dialCode: '+380',\n },\n ]);\n\n showCountrySelect = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n showCountryCode = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n invalid = input<boolean | null>(null);\n errorMessage = input<string | null>(null);\n\n selectName = input<string>('selectComponentName');\n inputName = input<string>('example-small');\n\n private _country = signal<string>('fr');\n private _number = signal<string>('');\n\n private uid = ++UID;\n selectId = `phone_select_${this.uid}`;\n flagImgId = `phone_flag_${this.uid}`;\n inputId = `phone_input_${this.uid}`;\n helpId = `help_${this.uid}`;\n errorId = `err_${this.uid}`;\n ccId = `countryCode_${this.uid}`;\n\n selectedCountryCode = computed(() => this._country());\n availableCountries = computed(() => {\n const explicitCodes = this.countryCodes();\n if (explicitCodes && explicitCodes.length) {\n return explicitCodes.map((c) => c.toLowerCase());\n }\n\n const legacyCountries = this.countries();\n if (legacyCountries && legacyCountries.length) {\n return legacyCountries.map((c) => c.code.toLowerCase());\n }\n\n return getCountries().map((c) => c.toLowerCase());\n });\n\n selectedCountryName = computed(() => this.getCountryName(this._country()));\n selectedDialCode = computed(() => {\n const dialCode = this.getCountryCallingCodeFor(this._country());\n return dialCode ? `+${dialCode}` : '';\n });\n selectedFlagUrl = computed(() => `https://flagcdn.com/${this._country()}.svg`);\n\n number = computed(() => this._number());\n\n dynamicPlaceholder = computed(() => {\n const manual = this.placeholder();\n if (manual && manual.length > 0) {\n return manual;\n }\n\n const country = this.selectedLibCountryCode();\n if (!country) {\n return '';\n }\n\n try {\n const example = getExampleNumber(country, examples as Examples);\n return example?.formatNational() ?? '';\n } catch {\n return '';\n }\n });\n\n private selectedLibCountryCode = computed<CountryCode | undefined>(() => {\n const code = this._country();\n if (!code) {\n return undefined;\n }\n return code.toUpperCase() as CountryCode;\n });\n\n private parsedNumber = computed(() => {\n const number = this._number().trim();\n const country = this.selectedLibCountryCode();\n if (!number || !country) {\n return null;\n }\n\n try {\n return parsePhoneNumberFromString(number, country);\n } catch {\n return null;\n }\n });\n\n private phoneIsValid = computed(() => {\n const number = this._number().trim();\n const country = this.selectedLibCountryCode();\n if (!number || !country) {\n return false;\n }\n\n try {\n return isValidPhoneNumber(number, country);\n } catch {\n return false;\n }\n });\n\n getCountryName(countryCode: string): string {\n const upper = countryCode.toUpperCase();\n\n try {\n const regionNames = new Intl.DisplayNames([this.locale()], {\n type: 'region',\n });\n return regionNames.of(upper) ?? upper;\n } catch {\n return upper;\n }\n }\n\n getCountryCallingCodeFor(countryCode: string): string {\n const upper = countryCode.toUpperCase() as CountryCode;\n\n try {\n return getCountryCallingCode(upper);\n } catch {\n return '';\n }\n }\n\n // aria-describedby\n describedBy = computed(() => {\n const ids: string[] = [];\n if (this.helpText()) ids.push(this.helpId);\n if (this.isInvalid() && this.errorToShow()) ids.push(this.errorId);\n return ids.length ? ids.join(' ') : null;\n });\n\n // invalid combiné (input override > form state)\n private formInvalid = signal<boolean>(false);\n private formErrorMsg = signal<string | null>(null);\n\n isInvalid = computed(() => {\n const explicit = this.invalid();\n if (explicit !== null) {\n return !!explicit;\n }\n\n if (this.formInvalid()) {\n return true;\n }\n\n const value = this._number().trim();\n if (!value) {\n return false;\n }\n\n return !this.phoneIsValid();\n });\n\n errorToShow = computed(() => this.errorMessage() ?? this.formErrorMsg());\n\n // ----- CVA\n private onChange?: (value: MozPhoneNumberValue) => void;\n onTouched?: () => void;\n\n writeValue(value: MozPhoneNumberValue | null): void {\n if (!value) {\n this._number.set('');\n return;\n }\n\n if (value.country) {\n this._country.set(value.country.toLowerCase());\n }\n\n const incoming = value.number ?? '';\n if (!incoming) {\n this._number.set('');\n return;\n }\n\n const current = this._number();\n if (incoming === current) {\n return;\n }\n\n if (incoming.startsWith('+')) {\n try {\n const parsed = parsePhoneNumberFromString(incoming);\n if (parsed) {\n if (parsed.country) {\n this._country.set(parsed.country.toLowerCase());\n }\n this._number.set(parsed.formatNational());\n return;\n }\n } catch {\n // ignore and fallback to raw value\n }\n }\n\n this._number.set(incoming);\n }\n\n registerOnChange(fn: (value: MozPhoneNumberValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Appels depuis le template\n onCountryChange(code: string) {\n this._country.set(code.toLowerCase());\n\n const parsed = this.parsedNumber();\n if (parsed && this.phoneIsValid()) {\n const formatted = parsed.formatNational();\n if (formatted !== this._number()) {\n this._number.set(formatted);\n }\n }\n\n this.emitChange();\n }\n onNumberChange(val: string) {\n const sanitized = this.sanitize(val);\n this._number.set(sanitized);\n\n const parsed = this.parsedNumber();\n if (parsed && this.phoneIsValid()) {\n const formatted = parsed.formatNational();\n if (formatted !== sanitized) {\n this._number.set(formatted);\n }\n }\n\n this.emitChange();\n }\n\n private emitChange() {\n if (!this.onChange) {\n return;\n }\n\n const parsed = this.parsedNumber();\n const fullNumber = parsed?.number ?? this._number();\n\n this.onChange({\n country: this._country(),\n number: fullNumber,\n });\n }\n\n private sanitize(value: string): string {\n return value.replace(/[^0-9+\\s()-]/g, '');\n }\n\n // ---- Sync validation depuis le parent (optionnel)\n // Tu peux appeler ces helpers depuis un directive/validator externe si besoin.\n setFormInvalidState(invalid: boolean, message?: string | null) {\n this.formInvalid.set(invalid);\n this.formErrorMsg.set(message ?? null);\n }\n\n constructor() {\n // fallback si la country par défaut n'est pas dans la liste\n effect(() => {\n const codes = this.availableCountries();\n if (!codes.length) {\n return;\n }\n\n const preferred = this.defaultCountry()?.toLowerCase();\n const target = preferred && codes.includes(preferred) ? preferred : codes[0];\n\n if (!this._country() || !codes.includes(this._country())) {\n this._country.set(target);\n }\n });\n }\n}\n","<div\n class=\"mc-field\"\n [class.is-disabled]=\"disabled()\"\n [class.is-readonly]=\"readonly()\"\n>\n <legend class=\"mc-field__legend\">\n {{ label() }} @if (showRequirement() && requirementText()) {\n <span class=\"mc-field__requirement\">{{ requirementText() }}</span>\n }\n </legend>\n\n @if (helpText()) {\n <span [id]=\"helpId\" class=\"mc-field__help\">{{ helpText() }}</span>\n }\n\n <div class=\"mc-field__content\">\n <div id=\"mc-phone-number-input\" class=\"mc-phone-number-input\">\n <!-- Select pays + flag -->\n <div\n class=\"mc-phone-number-input__select-wrapper\"\n [class.mc-phone-number-input__select-wrapper--hidden]=\"\n !showCountrySelect()\n \"\n >\n <select\n [id]=\"selectId\"\n [name]=\"selectName()\"\n class=\"mc-select mc-phone-number-input__select\"\n [class.mc-select--s]=\"size() === 's'\"\n [disabled]=\"disabled() || readonly()\"\n [ngModel]=\"selectedCountryCode()\"\n (ngModelChange)=\"onCountryChange($event)\"\n aria-label=\"Country\"\n >\n <option value=\"\" selected hidden></option>\n @for (code of availableCountries(); track code) {\n <option\n [attr.data-flag]=\"code\"\n [value]=\"code\"\n [selected]=\"code === selectedCountryCode()\"\n >\n {{ getCountryName(code) }} (+{{ getCountryCallingCodeFor(code) }})\n </option>\n }\n </select>\n\n @if (showCountrySelect()) {\n <div class=\"mc-phone-number-input__select-display\">\n <div class=\"mc-phone-number-input__flag\">\n <img\n class=\"mc-phone-number-input__flag-image\"\n [id]=\"flagImgId\"\n [src]=\"selectedFlagUrl()\"\n [alt]=\"selectedCountryName()\"\n width=\"20\"\n />\n </div>\n <ChevronDown24 class=\"mc-phone-number-input__chevron\" />\n </div>\n }\n </div>\n\n <!-- Input numéro -->\n <div\n class=\"mc-text-input mc-phone-number-input__input\"\n [class.mc-text-input--s]=\"size() === 's'\"\n [class.is-invalid]=\"isInvalid()\"\n >\n @if (showCountryCode()) {\n <span [id]=\"ccId\" class=\"mc-phone-number-input__country-code\"\n >{{ selectedDialCode() }}</span\n >\n }\n\n <input\n type=\"tel\"\n [id]=\"inputId\"\n class=\"mc-phone-number-input__control mc-text-input__control\"\n [placeholder]=\"dynamicPlaceholder()\"\n [name]=\"inputName()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"isInvalid() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n [ngModel]=\"number()\"\n (ngModelChange)=\"onNumberChange($event)\"\n (blur)=\"onTouched?.()\"\n />\n </div>\n </div>\n </div>\n\n <!-- Message d'erreur -->\n @if (isInvalid() && errorToShow()) {\n <span [id]=\"errorId\" class=\"mc-field__validation-message is-invalid\">\n {{ errorToShow() }}\n </span>\n }\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n input,\n output,\n signal,\n booleanAttribute,\n contentChild,\n} from '@angular/core';\nimport { MozLinearProgressBarBufferComponent } from '../linear-progress-bar-buffer/linear-progress-bar-buffer';\nimport {\n CheckCircleFilled32,\n WarningCircleFilled32,\n CrossCircleFilled32,\n InfoCircleFilled32,\n Cross20,\n} from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\nexport type MozToasterStatus = 'info' | 'success' | 'warning' | 'error';\nexport type MozToasterPosition = 'top' | 'bottom' | 'top-center' | 'bottom-center';\nexport type MozToasterRole = 'status' | 'alert';\n\n@Component({\n selector: 'moz-toaster',\n imports: [\n MozLinearProgressBarBufferComponent,\n CheckCircleFilled32,\n WarningCircleFilled32,\n CrossCircleFilled32,\n InfoCircleFilled32,\n Cross20,\n MozIconButtonComponent,\n ],\n templateUrl: './toaster.html',\n styleUrls: ['./toaster.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozToasterComponent implements AfterContentInit {\n open = input<boolean, unknown>(false, { transform: booleanAttribute });\n position = input<MozToasterPosition>('top');\n description = input<string>('');\n status = input<MozToasterStatus>('info');\n closable = input<boolean, unknown>(true, { transform: booleanAttribute });\n progress = input<boolean, unknown>(false, { transform: booleanAttribute });\n timeout = input<number | null>(null);\n role = input<MozToasterRole>('status');\n closeAriaLabel = input<string>('Close');\n\n openChange = output<boolean>();\n closed = output<void>();\n\n actionSlot = contentChild<ElementRef<HTMLElement>>('[action]', { descendants: false });\n hasAction = false;\n\n ngAfterContentInit() {\n this.hasAction = !!this.actionSlot();\n }\n\n hostClasses = computed(() => {\n const classes = [];\n if (this.open()) {\n classes.push('is-open');\n }\n const s = this.status();\n const p = this.position();\n if (s && s !== 'info') {\n classes.push(`mc-toaster--${s}`);\n }\n if (p && p !== 'top') {\n classes.push(`mc-toaster--${p}`);\n }\n return classes.join(' ');\n });\n\n private _progressValue = signal(0); // 0 → 100\n progressValue = () => this._progressValue();\n\n private intervalId: number | null = null;\n private timeoutId: number | null = null;\n private startAt = 0;\n\n constructor() {\n effect(() => {\n const isOpen = this.open();\n const ms = this.timeout();\n const showProgress = this.progress();\n\n this.clearTimers();\n this._progressValue.set(0);\n\n if (!isOpen || !ms || ms <= 0) {\n return;\n }\n\n if (showProgress) {\n this.startAt = Date.now();\n const step = 100;\n this.intervalId = setInterval(() => {\n const elapsed = Date.now() - this.startAt;\n const pct = Math.min(100, (elapsed / ms) * 100);\n this._progressValue.set(pct);\n if (pct >= 100) {\n this.onCloseClick();\n }\n }, step) as unknown as number;\n } else {\n this.timeoutId = setTimeout(() => this.onCloseClick(), ms) as unknown as number;\n }\n });\n }\n\n onCloseClick() {\n if (!this.open()) {\n return;\n }\n this.clearTimers();\n this._progressValue.set(100);\n this.openChange.emit(false);\n this.closed.emit();\n }\n\n private clearTimers() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n}\n","<section class=\"mc-toaster\" [class]=\"hostClasses()\" [attr.role]=\"role()\">\n <div class=\"mc-toaster__icon\">\n @switch (status()) { @case ('success') {\n <CheckCircleFilled32 />\n } @case ('warning') {\n <WarningCircleFilled32 />\n } @case ('error') {\n <CrossCircleFilled32 />\n } @case ('info') {\n <InfoCircleFilled32 />\n } }\n </div>\n\n <div class=\"mc-toaster__content\">\n <p class=\"mc-toaster__message\">{{ description() }}</p>\n\n @if (hasAction) {\n <div class=\"mc-toaster__action\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n }\n </div>\n\n @if (closable()) {\n <moz-icon-button\n type=\"button\"\n [attr.aria-label]=\"closeAriaLabel()\"\n (click)=\"onCloseClick()\"\n [appearance]=\"'inverse'\"\n [size]=\"'s'\"\n [ghost]=\"true\"\n >\n <Cross20 icon />\n </moz-icon-button>\n } @if (progress() && timeout() && timeout()! > 0) {\n <moz-linear-progress-bar-buffer\n class=\"mc-toaster__indicator\"\n [valuePercent]=\"progressValue()\"\n size=\"m\"\n >\n </moz-linear-progress-bar-buffer>\n }\n</section>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n computed,\n booleanAttribute,\n} from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { Type } from '@angular/core';\nimport { ChevronDown20, SidebarExpand24 } from '@mozaic-ds/icons-angular';\n\nexport type MozSidebarSubItem = {\n id: string;\n label: string;\n href?: string;\n selected?: boolean;\n};\n\nexport type MozSidebarItem = {\n id: string;\n label: string;\n icon?: Type<unknown>;\n href?: string;\n selected?: boolean;\n open?: boolean;\n children?: MozSidebarSubItem[];\n};\n\n@Component({\n selector: 'moz-sidebar',\n imports: [NgComponentOutlet, SidebarExpand24, ChevronDown20],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './sidebar.html',\n styleUrls: ['./sidebar.scss'],\n})\nexport class MozSidebarComponent {\n expanded = input<boolean, unknown>(false, { transform: booleanAttribute });\n items = input<MozSidebarItem[]>([]);\n title = input<string>('ADEO Design System');\n logoSrc = input<string | null>('/images/logo.svg');\n logoAlt = input<string>('logo');\n\n showFooter = input<boolean, unknown>(true, { transform: booleanAttribute });\n showProfile = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n profileName = input<string | null>('Dieter Rams');\n profileTitle = input<string | null>('Industrial designer');\n profileAvatarSrc = input<string | null>('/images/Avatar.png');\n\n expandedChange = output<boolean>();\n itemClick = output<{ itemId: string; subItemId: string | null }>();\n\n hostClasses = computed(() =>\n ['mc-sidebar', this.expanded() ? 'mc-sidebar--expanded' : ''].filter(Boolean).join(' ')\n );\n\n expandButtonAriaLabel = computed(() => (this.expanded() ? 'Collapse' : 'Expand'));\n\n shouldOpen = (i: MozSidebarItem) => !!i.open || !!i.children?.some((c) => c.selected);\n\n toggleExpanded() {\n this.expandedChange.emit(!this.expanded());\n }\n\n onItemClick(itemId: string, subItemId: string | null, ev: Event) {\n this.itemClick.emit({ itemId, subItemId });\n if ((ev.currentTarget as HTMLAnchorElement)?.getAttribute('href') === '#') ev.preventDefault();\n }\n\n toggleOpen(item: MozSidebarItem) {\n item.open = !item.open;\n }\n}\n","<aside [class]=\"hostClasses()\">\n <header class=\"mc-sidebar__header\">\n @if (logoSrc()) {\n <img class=\"mc-sidebar__header-logo\" [src]=\"logoSrc()!\" [alt]=\"logoAlt()\" />\n } @if (title()) {\n <p class=\"mc-sidebar__header-title\">{{ title() }}</p>\n }\n </header>\n\n <section class=\"mc-sidebar__container\">\n <nav class=\"mc-sidebar__menu\" role=\"navigation\">\n <ul class=\"mc-sidebar__list\">\n @for (item of items(); track item.id) {\n <li class=\"mc-sidebar__item\">\n @if (expanded() && !!item.children?.length) {\n <details\n class=\"mc-sidebar__link-expand\"\n (click)=\"toggleOpen(item)\"\n [attr.open]=\"item.open || null\"\n >\n <summary class=\"mc-sidebar__link\" (click)=\"$event.preventDefault()\">\n @if (item.icon) {\n <span class=\"mc-sidebar__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n <span class=\"mc-sidebar__text\">{{ item.label }}</span>\n <span aria-hidden=\"true\" class=\"mc-sidebar__sub\">\n <ChevronDown20 />\n </span>\n </summary>\n\n <ul class=\"mc-sidebar__sublist\">\n @for (sub of item.children!; track sub.id) {\n <li class=\"mc-sidebar__item\">\n <a\n class=\"mc-sidebar__sublink\"\n [class.mc-sidebar__sublink--selected]=\"!!sub.selected\"\n [attr.href]=\"sub.href || '#'\"\n (click)=\"onItemClick(item.id, sub.id, $event)\"\n >\n <span class=\"mc-sidebar__text\">{{ sub.label }}</span>\n </a>\n </li>\n }\n </ul>\n </details>\n } @else {\n <a\n class=\"mc-sidebar__link\"\n [class.mc-sidebar__link--selected]=\"!!item.selected\"\n [attr.title]=\"item.label\"\n [attr.href]=\"item.href || '#'\"\n (click)=\"onItemClick(item.id, null, $event)\"\n >\n @if (item.icon) {\n <span class=\"mc-sidebar__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n <span class=\"mc-sidebar__text\">{{ item.label }}</span>\n </a>\n }\n </li>\n }\n </ul>\n </nav>\n </section>\n\n @if (showFooter()) {\n <footer class=\"mc-sidebar__footer\">\n <div class=\"mc-divider-horizontal\"></div>\n <div class=\"mc-sidebar__footer-container\">\n @if (showProfile() && (profileName() || profileTitle() || profileAvatarSrc())) {\n <a href=\"#\" class=\"mc-sidebar__footer-profile\" (click)=\"$event.preventDefault()\">\n @if (profileAvatarSrc()) {\n <img\n class=\"mc-sidebar__footer-avatar\"\n [src]=\"profileAvatarSrc()!\"\n [alt]=\"profileName() || 'User'\"\n loading=\"lazy\"\n />\n }\n <div class=\"mc-sidebar__footer-content\">\n @if (profileName()) {\n <p class=\"mc-sidebar__footer-identity\">\n {{ profileName() }}\n </p>\n } @if (profileTitle()) {\n <p class=\"mc-sidebar__footer-title\">{{ profileTitle() }}</p>\n }\n </div>\n </a>\n }\n <button\n class=\"mc-sidebar__footer-expand mc-button mc-button--ghost\"\n type=\"button\"\n [attr.aria-label]=\"expandButtonAriaLabel()\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggleExpanded()\"\n >\n <SidebarExpand24 class=\"mc-button__icon\" />\n </button>\n </div>\n </footer>\n }\n</aside>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n model,\n computed,\n booleanAttribute,\n viewChildren,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nexport type MozSegmentedControlSize = 's' | 'm';\n\nexport type MozSegmentedItem = {\n label: string;\n value: string | number;\n};\n\n@Component({\n selector: 'moz-segmented-control',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './segmented-control.html',\n styleUrls: ['./segmented-control.scss'],\n imports: [NgClass],\n})\nexport class MozSegmentedControlComponent {\n items = input<MozSegmentedItem[]>([]);\n\n size = input<MozSegmentedControlSize>('s');\n full = input<boolean, unknown>(false, { transform: booleanAttribute });\n ariaLabel = input<string>('Segmented control');\n\n selectedIndex = model<number>(0);\n change = output<{ index: number; value: string | number }>();\n\n hostClasses = computed(() => ({\n 'mc-segmented-control--m': this.size() === 'm',\n 'mc-segmented-control--full': this.full(),\n }));\n\n segmentClasses = (index: number) =>\n computed(() => ({\n 'mc-segmented-control__segment--selected': index === this.selectedIndex(),\n }));\n\n private buttons = viewChildren<ElementRef<HTMLButtonElement>>('segBtn');\n\n onSelect(index: number) {\n const item = this.items()[index];\n this.selectedIndex.set(index);\n this.change.emit({ index, value: item.value });\n queueMicrotask(() => this.focusIndex(index));\n }\n\n private focusIndex(index: number) {\n const btns = this.buttons();\n const btn = btns[index]?.nativeElement;\n btn?.focus();\n }\n}\n","<div\n class=\"mc-segmented-control\"\n [ngClass]=\"hostClasses()\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel()\"\n>\n @for (item of items(); track item.value; let i = $index) {\n <button\n #segBtn\n type=\"button\"\n class=\"mc-segmented-control__segment\"\n [ngClass]=\"segmentClasses(i)()\"\n role=\"tab\"\n [attr.aria-selected]=\"i === selectedIndex()\"\n [attr.tabindex]=\"i === selectedIndex() ? 0 : -1\"\n (click)=\"onSelect(i)\"\n >\n {{ item.label }}\n </button>\n }\n</div>\n","import { Component, viewChild, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'moz-accordion-header',\n templateUrl: './accordion-header.html',\n})\nexport class MozAccordionHeaderComponent {\n tpl = viewChild('tpl', { read: TemplateRef });\n}\n","<ng-template #tpl>\n <div class=\"mc-accordion__title-wrapper\">\n <span class=\"mc-accordion__title-text\" #titleWrapper>\n <ng-content select=\"[title]\"></ng-content>\n </span>\n <span class=\"mc-accordion__subtitle\" #subtitleWrapper>\n <ng-content select=\"[subtitle]\"></ng-content>\n </span>\n </div>\n</ng-template>\n","import { Component, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'moz-accordion-content',\n templateUrl: './accordion-content.html',\n styleUrls: ['./accordion-content.scss'],\n})\nexport class MozAccordionContentComponent {\n tpl = viewChild('tpl', { read: TemplateRef });\n}\n","<ng-template #tpl><ng-content></ng-content></ng-template>\n","import { Component, Type, contentChild, signal } from '@angular/core';\nimport { input } from '@angular/core';\nimport { MozAccordionHeaderComponent } from '../header/accordion-header';\nimport { MozAccordionContentComponent } from '../content/accordion-content';\n\n@Component({\n selector: 'moz-accordion-panel',\n template: ``,\n})\nexport class MozAccordionPanelComponent {\n icon = input<Type<unknown> | null>(null);\n open = input(false);\n state = signal(false);\n\n header = contentChild(MozAccordionHeaderComponent);\n content = contentChild(MozAccordionContentComponent);\n\n ngOnInit() {\n this.state.set(!!this.open());\n }\n}\n","import { Component, ChangeDetectionStrategy, contentChildren, computed } from '@angular/core';\nimport { input } from '@angular/core';\nimport { NgTemplateOutlet, NgComponentOutlet, NgClass } from '@angular/common';\nimport { MozAccordionPanelComponent } from './components/panel/accordion-panel';\n\n/**\n * Accordion component for organizing content in collapsible sections.\n *\n * @description\n * The accordion component allows users to show and hide sections of content.\n * Each section consists of a header and content area that can be expanded or collapsed.\n * Supports both custom and native HTML implementation.\n *\n * @example\n * ```html\n * <moz-accordion [ghost]=\"false\" [native]=\"false\">\n * <moz-accordion-panel [icon]=\"HomeIcon\" [open]=\"true\">\n * <moz-accordion-header>\n * <span title=\"\">Panel Title</span>\n * <span subtitle=\"\">Panel Subtitle</span>\n * </moz-accordion-header>\n * <moz-accordion-content>\n * <p>Panel content goes here</p>\n * </moz-accordion-content>\n * </moz-accordion-panel>\n * </moz-accordion>\n * ```\n */\n@Component({\n selector: 'moz-accordion',\n imports: [NgTemplateOutlet, NgComponentOutlet, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './accordion.html',\n styleUrls: ['./accordion.scss'],\n})\nexport class MozAccordionComponent {\n /**\n * Applies ghost styling to the accordion for a lighter visual appearance.\n * Useful for nested or secondary accordions.\n *\n * @default false\n */\n ghost = input(false);\n\n /**\n * Uses native HTML `<details>` and `<summary>` elements instead of custom implementation.\n * Provides better accessibility and performance with browser-native behavior.\n *\n * @default false\n */\n native = input(false);\n\n /**\n * Computed CSS classes based on component inputs.\n * Automatically updates when ghost input changes.\n *\n * @internal\n */\n cssClasses = computed(() => ({\n 'mc-accordion': true,\n 'mc-accordion--ghost': this.ghost(),\n }));\n\n /**\n * Signal containing all accordion panels projected into this component.\n * Automatically synchronized with content children.\n *\n * @internal\n */\n panels = contentChildren(MozAccordionPanelComponent);\n\n /**\n * Toggles the open/closed state of an accordion panel.\n *\n * @param p - The accordion panel to toggle\n */\n toggle(p: MozAccordionPanelComponent) {\n p.state.update((v: boolean) => !v);\n }\n\n /**\n * Handles the native toggle event for accordion panels using HTML details/summary.\n * Synchronizes the panel state with the native element's open state.\n *\n * @param ev - The native toggle event\n * @param p - The accordion panel being toggled\n */\n onNativeToggle(ev: Event, p: MozAccordionPanelComponent) {\n p.state.set((ev.currentTarget as HTMLDetailsElement).open);\n }\n}\n","<div [ngClass]=\"cssClasses()\">\n @for (panel of panels(); track panel; let i = $index) { @if (!native()) {\n <div class=\"mc-accordion__item\">\n <div class=\"mc-accordion__header\">\n <h2 class=\"mc-accordion__title\">\n <button\n class=\"mc-accordion__trigger\"\n type=\"button\"\n [attr.id]=\"'accordion-' + (i + 1)\"\n data-mc-component=\"accordion\"\n [attr.aria-controls]=\"'content-' + (i + 1)\"\n [attr.aria-expanded]=\"panel.state()\"\n (click)=\"toggle(panel)\"\n >\n @if (panel.icon()) {\n <span class=\"mc-accordion__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"panel.icon()\"></ng-container>\n </span>\n } @if (panel.header()) {\n <ng-container [ngTemplateOutlet]=\"panel.header()?.tpl()\"></ng-container>\n }\n </button>\n </h2>\n </div>\n\n <div\n class=\"mc-accordion__content\"\n [class.is-open]=\"panel.state()\"\n [attr.id]=\"'content-' + (i + 1)\"\n [attr.aria-labelledby]=\"'accordion-' + (i + 1)\"\n [attr.aria-hidden]=\"!panel.state()\"\n >\n @if (panel.content()) {\n <ng-container [ngTemplateOutlet]=\"panel.content()?.tpl()\"></ng-container>\n }\n </div>\n </div>\n } @else {\n <details\n class=\"mc-accordion__item\"\n [attr.open]=\"panel.state() ? '' : null\"\n (toggle)=\"onNativeToggle($event, panel)\"\n >\n <summary class=\"mc-accordion__header\">\n <span class=\"mc-accordion__title\">\n <span class=\"mc-accordion__trigger\">\n @if (panel.icon()) {\n <span class=\"mc-accordion__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"panel.icon()\"></ng-container>\n </span>\n } @if (panel.header()) {\n <ng-container [ngTemplateOutlet]=\"panel.header()?.tpl()\"></ng-container>\n }\n </span>\n </span>\n </summary>\n <div class=\"mc-accordion__content\" [attr.aria-hidden]=\"!panel.state()\">\n @if (panel.content()) {\n <ng-container [ngTemplateOutlet]=\"panel.content()?.tpl()\"></ng-container>\n }\n </div>\n </details>\n } }\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'moz-action-bottom-bar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n templateUrl: './action-bottom-bar.html',\n styleUrls: ['./action-bottom-bar.scss'],\n})\nexport class MozActionBottomBarComponent {\n boxShadow = input<boolean>(false);\n\n readonly classes = computed(() => ({\n 'mc-action-bottom-bar--shadow': this.boxShadow(),\n }));\n}\n","<div class=\"mc-action-bottom-bar\" [ngClass]=\"classes()\">\n <div class=\"mc-divider-horizontal mc-action-bottom-bar__divider\"></div>\n\n <div class=\"mc-action-bottom-bar__left\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n\n <div class=\"mc-action-bottom-bar__right\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n Type,\n computed,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\nimport { Cross24 } from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\nexport type MozActionListItemAppearance = 'standard' | 'danger';\n\nexport interface ActionListItem {\n /**\n * The icon component displayed for the item.\n */\n icon?: Type<unknown>;\n /**\n * The label displayed for the item.\n */\n label: string;\n /**\n * If `true`, the item will be disabled.\n */\n disabled?: boolean;\n /**\n * Allows to define the item appearance.\n */\n appearance?: MozActionListItemAppearance;\n /**\n * Add a divider on top of the item.\n */\n divider?: boolean;\n}\n\n/**\n * An action list is a contextual menu that presents a list of available actions related to a specific element or interface area.\n * It allows users to quickly access functions such as editing, sharing, deleting, or navigating to sub-actions.\n * Action Lists are commonly triggered by buttons, icons (e.g., three-dot menus), or right-click interactions, ensuring a clean and efficient UI.\n */\n@Component({\n selector: 'moz-action-listbox',\n templateUrl: './action-listbox.html',\n styleUrls: ['./action-listbox.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, NgComponentOutlet, MozIconButtonComponent, Cross24],\n})\nexport class MozActionListboxComponent {\n /**\n * Title displayed in mobile version.\n */\n title = input<string>();\n\n /**\n * An array of objects that allows you to provide all the data needed to generate the content for each item.\n */\n items = input.required<ActionListItem[]>();\n\n /**\n * Computed signal that maps items to their CSS classes.\n */\n itemsWithClasses = computed(() =>\n this.items().map((item) => ({\n item,\n classes: {\n 'mc-action-list__element': true,\n 'mc-action-list__element--danger': item.appearance === 'danger',\n 'mc-action-list__element--disabled': item.disabled === true,\n },\n }))\n );\n}\n","<div class=\"mc-listbox\">\n <div class=\"mc-listbox__content\">\n <div class=\"mc-listbox__header\">\n @if (title()) {\n <h3 class=\"mc-listbox__title\">{{ title() }}</h3>\n }\n <moz-icon-button class=\"mc-listbox__close\" [ghost]=\"true\" [ariaLabel]=\"'Close'\">\n <Cross24 icon />\n </moz-icon-button>\n </div>\n <div class=\"mc-listbox__body\">\n <ul class=\"mc-action-list\" role=\"menu\">\n @for (itemWithClasses of itemsWithClasses(); track $index) { @if\n (itemWithClasses.item.divider) {\n <li class=\"mc-divider-horizontal mc-action-list__divider\"></li>\n }\n <li [ngClass]=\"itemWithClasses.classes\" role=\"menuitem\">\n <button\n type=\"button\"\n class=\"mc-action-list__button\"\n [disabled]=\"itemWithClasses.item.disabled\"\n >\n @if (itemWithClasses.item.icon) {\n <div class=\"mc-action-list__icon\">\n <ng-container [ngComponentOutlet]=\"itemWithClasses.item.icon\"> </ng-container>\n </div>\n }\n <p class=\"mc-action-list__text\">\n {{ itemWithClasses.item.label }}\n </p>\n </button>\n </li>\n }\n </ul>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n computed,\n input,\n model,\n signal,\n viewChild,\n afterNextRender,\n} from '@angular/core';\nimport { ChevronLeft20, ChevronRight20 } from '@mozaic-ds/icons-angular';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\n@Component({\n selector: 'moz-carousel',\n imports: [ChevronLeft20, ChevronRight20, MozIconButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './carousel.html',\n styleUrls: ['./carousel.scss'],\n})\nexport class MozCarouselComponent implements OnDestroy {\n ariaLabelledby = input<string | null>(null);\n previousButtonAriaLabel = input('previous');\n nextButtonAriaLabel = input('next');\n index = model(0);\n\n private contentEl = viewChild<ElementRef<HTMLElement>>('content');\n\n private metrics = signal({ left: 0, cw: 0, sw: 0 });\n private raf = 0;\n private cleanup: Array<() => void> = [];\n\n private eps = 1;\n\n canPrev = computed(() => this.metrics().left > this.eps);\n canNext = computed(() => {\n const { left, cw, sw } = this.metrics();\n return left + cw < sw - this.eps;\n });\n\n private updateLogicalIndexFromScroll() {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n const children = Array.from(root.children) as HTMLElement[];\n if (!children.length) return;\n\n const center = this.metrics().left + this.metrics().cw / 2;\n let best = 0;\n let bestDist = Number.POSITIVE_INFINITY;\n children.forEach((el, i) => {\n const mid = el.offsetLeft + el.offsetWidth / 2;\n const d = Math.abs(mid - center);\n if (d < bestDist) {\n bestDist = d;\n best = i;\n }\n });\n if (best !== this.index()) this.index.set(best);\n }\n\n constructor() {\n afterNextRender(() => {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n\n const update = () => {\n this.metrics.set({\n left: root.scrollLeft,\n cw: root.clientWidth,\n sw: root.scrollWidth,\n });\n this.updateLogicalIndexFromScroll();\n };\n\n update();\n\n const onScroll = () => {\n cancelAnimationFrame(this.raf);\n this.raf = requestAnimationFrame(update);\n };\n root.addEventListener('scroll', onScroll, { passive: true });\n\n const onResize = () => update();\n window.addEventListener('resize', onResize, { passive: true });\n\n this.cleanup.push(\n () => root.removeEventListener('scroll', onScroll),\n () => window.removeEventListener('resize', onResize),\n () => cancelAnimationFrame(this.raf)\n );\n });\n }\n\n ngOnDestroy(): void {\n this.cleanup.forEach((fn) => fn());\n }\n\n goPrevious(): void {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n root.scrollBy({ left: -root.clientWidth, behavior: 'smooth' });\n }\n\n goNext(): void {\n const root = this.contentEl()?.nativeElement;\n if (!root) return;\n root.scrollBy({ left: root.clientWidth, behavior: 'smooth' });\n }\n}\n","<div\n class=\"mc-carousel\"\n role=\"group\"\n aria-roledescription=\"carousel\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n>\n <div class=\"mc-carousel__header\">\n <div class=\"mc-carousel__headings\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"mc-carousel__controls\">\n <moz-icon-button\n (click)=\"goPrevious()\"\n [disabled]=\"!canPrev()\"\n [ariaLabel]=\"previousButtonAriaLabel()\"\n [size]=\"'s'\"\n [outlined]=\"true\"\n >\n <ChevronLeft20 icon aria-hidden=\"true\" />\n </moz-icon-button>\n\n <moz-icon-button\n (click)=\"goNext()\"\n [disabled]=\"!canNext()\"\n [ariaLabel]=\"nextButtonAriaLabel()\"\n [size]=\"'s'\"\n [outlined]=\"true\"\n >\n <ChevronRight20 icon aria-hidden=\"true\" />\n </moz-icon-button>\n </div>\n </div>\n\n <div class=\"mc-carousel__content\" #content>\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport {\n CheckCircleFilled24,\n CrossCircleFilled24,\n InfoCircleFilled24,\n WarningCircleFilled24,\n} from '@mozaic-ds/icons-angular';\nimport { MozLoaderComponent } from '../loader/loader';\n\nexport type MozStatusMessageStatus =\n | 'info'\n | 'success'\n | 'warning'\n | 'error'\n | 'neutral'\n | 'inprogress';\n\n@Component({\n selector: 'moz-status-message',\n imports: [NgClass, NgComponentOutlet, MozLoaderComponent],\n templateUrl: './status-message.html',\n styleUrls: ['./status-message.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozStatusMessageComponent {\n status = input<MozStatusMessageStatus>('info');\n description = input<string | null>(null);\n\n readonly classes = computed(() => ({\n [`mc-status-message--${this.status()}`]: this.status(),\n }));\n\n readonly iconComponent = computed(() => {\n switch (this.status()) {\n case 'success':\n return CheckCircleFilled24;\n case 'warning':\n return WarningCircleFilled24;\n case 'error':\n return CrossCircleFilled24;\n case 'neutral':\n case 'inprogress':\n default:\n return InfoCircleFilled24;\n }\n });\n}\n","<div class=\"mc-status-message\" [ngClass]=\"classes()\">\n @if (status() === 'inprogress') {\n <moz-loader size=\"s\"></moz-loader>\n } @else {\n <div class=\"mc-status-message__icon\">\n <ng-container [ngComponentOutlet]=\"iconComponent()\"></ng-container>\n </div>\n }\n\n <p class=\"mc-status-message__description\">\n @if (description()) {\n {{ description() }}\n }\n </p>\n</div>\n","import { ChangeDetectionStrategy, Component, Type, computed, input } from '@angular/core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\n\nimport { ArrowBottomRight24, ArrowTopRight24, Less24 } from '@mozaic-ds/icons-angular';\n\nexport type MozKpiTrend = 'increasing' | 'decreasing' | 'stable';\nexport type MozKpiStatus = 'info' | 'warning' | 'error' | 'success' | 'neutral';\nexport type MozKpiSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'moz-kpi',\n imports: [NgClass, NgComponentOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './kpi.html',\n styleUrls: ['./kpi.scss'],\n})\nexport class MozKpiComponent {\n /** The current value of the KPI item. */\n value = input.required<string>();\n\n /** Defines the evolution of the KPI. */\n trend = input<MozKpiTrend | null>(null);\n\n /** Label of the KPI item. */\n label = input<string | null>(null);\n\n /** Allows to define the KPI item status. */\n status = input<MozKpiStatus>('info');\n\n /** The evolution information defining the KPI. */\n information = input<string | null>(null);\n\n /** Allows to define the KPI item size. */\n size = input<MozKpiSize>('s');\n\n readonly isMedium = computed(() => this.size() === 'm');\n readonly isLarge = computed(() => this.size() === 'l');\n\n readonly rootClasses = computed(() => ({\n 'mc-kpi': true,\n 'mc-kpi--s': this.size() === 's',\n 'mc-kpi--m': this.size() === 'm',\n 'mc-kpi--l': this.size() === 'l',\n 'mc-kpi--info': this.status() === 'info',\n 'mc-kpi--warning': this.status() === 'warning',\n 'mc-kpi--error': this.status() === 'error',\n 'mc-kpi--success': this.status() === 'success',\n 'mc-kpi--neutral': this.status() === 'neutral',\n }));\n\n private readonly iconMap: Record<MozKpiTrend, Type<unknown>> = {\n increasing: ArrowTopRight24,\n decreasing: ArrowBottomRight24,\n stable: Less24,\n };\n\n readonly IconComponent = computed<Type<unknown> | null>(() => {\n const t = this.trend();\n return t ? this.iconMap[t] : null;\n });\n}\n","<div [ngClass]=\"rootClasses()\">\n @if (isMedium() && label()) {\n <span class=\"mc-kpi__label\">\n {{ label() }}\n </span>\n }\n\n <div class=\"mc-kpi__content\">\n <div class=\"mc-kpi__main\">\n @if (isLarge() && label()) {\n <span class=\"mc-kpi__label\">\n {{ label() }}\n </span>\n }\n\n <span class=\"mc-kpi__value\">\n {{ value() }}\n </span>\n </div>\n\n @if (trend() || information()) {\n <div class=\"mc-kpi__aside\">\n @if (isLarge() && information()) {\n <span class=\"mc-kpi__detail\">\n {{ information() }}\n </span>\n } @if (IconComponent()) {\n <div class=\"mc-button__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"IconComponent()\"></ng-container>\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'moz-stepper-compact',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './stepper-compact.html',\n styleUrls: ['./stepper-compact.scss'],\n})\nexport class MozStepperCompactComponent {\n value = input.required<number>();\n maxSteps = input<number>(4);\n label = input<string>('');\n description = input<string>('');\n\n readonly hasLabel = computed(() => !!this.label() && this.label().trim().length > 0);\n\n readonly safeMaxSteps = computed(() => {\n const max = this.maxSteps();\n return max && max > 0 ? max : 4;\n });\n\n readonly progressPercentage = computed(() => {\n const max = this.safeMaxSteps();\n const current = this.value();\n const clamped = Math.max(0, Math.min(current, max));\n return (clamped / max) * 100;\n });\n}\n","<div class=\"mc-stepper-compact\">\n <div\n class=\"mc-circular-progressbar mc-stepper-compact__progress\"\n role=\"progressbar\"\n aria-label=\"Progress bar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"safeMaxSteps()\"\n [attr.aria-valuenow]=\"value()\"\n [style.--progress-value]=\"progressPercentage()\"\n >\n <svg\n class=\"mc-circular-progressbar__line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n viewBox=\"0 0 100 100\"\n >\n <circle class=\"mc-circular-progressbar__track\" cx=\"50\" cy=\"50\" r=\"46\"></circle>\n <circle\n class=\"mc-circular-progressbar__indicator mc-stepper-compact__indicator\"\n cx=\"50\"\n cy=\"50\"\n r=\"46\"\n ></circle>\n </svg>\n <div class=\"mc-circular-progressbar__content\">\n <p class=\"mc-circular-progressbar__number mc-stepper-compact__number\">\n {{ value() }} / {{ safeMaxSteps() }}\n </p>\n </div>\n </div>\n\n @if (hasLabel()) {\n <div class=\"mc-stepper-compact__label-container\">\n <p class=\"mc-stepper-compact__label\">\n {{ label() }}\n </p>\n\n @if (description().trim().length) {\n <p class=\"mc-stepper-compact__description\">\n {{ description() }}\n </p>\n }\n </div>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n Type,\n computed,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n Star20,\n Star24,\n Star32,\n StarFilled20,\n StarFilled24,\n StarFilled32,\n StarHalf20,\n StarHalf24,\n StarHalf32,\n} from '@mozaic-ds/icons-angular';\n\nexport type MozStarRatingSize = 's' | 'm' | 'l';\nexport type MozStarRatingAppearance = 'standard' | 'accent';\n\n@Component({\n selector: 'moz-star-rating',\n imports: [NgClass, NgComponentOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './star-rating.html',\n styleUrls: ['./star-rating.scss'],\n})\nexport class MozStarRatingComponent {\n /**\n * The current rating value of the component.\n * Used with two-way binding [(value)].\n * When the rating changes (via click or keyboard), the model is automatically updated.\n */\n value = model<number>(0);\n\n /**\n * Determines whether the rating is interactive or read-only.\n * When true, all user interactions (click, hover, keyboard) are disabled.\n * Automatically set to true when `compact`, `href`, or `text` are provided.\n */\n readonly = input<boolean>(true);\n\n /**\n * Enables a compact display mode that shows only one star instead of five.\n * Typically used for summaries or quick visual cues.\n * When enabled, the component automatically becomes read-only.\n */\n compact = input<boolean>(false);\n\n /**\n * Defines the visual size of the star icons and the accompanying text.\n */\n size = input<MozStarRatingSize>('s');\n\n /**\n * Specifies the color scheme of the stars.\n */\n appearance = input<MozStarRatingAppearance>('accent');\n\n /**\n * Optional text displayed next to the star rating.\n * If provided, the component automatically becomes read-only.\n */\n text = input<string | null>(null);\n\n /**\n * URL for the link (for external links).\n */\n href = input<string | null>(null);\n\n /**\n * Where to open the link.\n */\n target = input<string | null>(null);\n\n // -------- logique dérivée --------\n\n readonly maxValue = computed(() => (this.compact() ? 1 : 5));\n\n readonly isReadonly = computed(\n () =>\n this.readonly() ||\n this.compact() ||\n !!this.href() ||\n !!(this.text() && this.text()!.trim().length)\n );\n\n readonly hasInfoText = computed(() => !!(this.text() || this.href()));\n\n readonly ariaLabel = computed(() => `Note ${this.displayValue()} sur ${this.maxValue()}`);\n\n readonly stars = computed(() => Array.from({ length: this.maxValue() }, (_, i) => i));\n\n readonly rootClasses = computed(() => ({\n 'mc-star-rating': true,\n 'mc-star-rating--link': !!this.href(),\n 'mc-star-rating--slider': !this.isReadonly(),\n 'mc-star-rating--s': this.size() === 's',\n 'mc-star-rating--m': this.size() === 'm',\n 'mc-star-rating--l': this.size() === 'l',\n 'mc-star-rating--standard': this.appearance() === 'standard',\n 'mc-star-rating--accent': this.appearance() === 'accent',\n }));\n\n // Icon maps for each size\n private readonly iconMaps = {\n s: {\n star: Star20,\n 'star-filled': StarFilled20,\n 'star-half': StarHalf20,\n },\n m: {\n star: Star24,\n 'star-filled': StarFilled24,\n 'star-half': StarHalf24,\n },\n l: {\n star: Star32,\n 'star-filled': StarFilled32,\n 'star-half': StarHalf32,\n },\n };\n\n // -------- gestion preview / hover & clavier --------\n\n private hoverValue = signal<number | null>(null);\n\n /**\n * valeur réellement utilisée pour afficher les étoiles :\n * - en readonly : toujours value()\n * - en interactif : hoverValue si non nul, sinon value()\n */\n readonly displayValue = computed(() => {\n if (this.isReadonly()) return this.value();\n return this.hoverValue() ?? this.value();\n });\n\n private clampValue(newValue: number): number {\n const max = this.maxValue();\n // dans le JS ils ne descendent jamais sous 1 via clavier\n return Math.min(max, Math.max(1, Math.floor(newValue)));\n }\n\n /** JS: onClick(index) -> setValue(index+1) + updateStarIcons */\n onStarClick(index: number): void {\n if (this.isReadonly()) return;\n const newValue = this.clampValue(index + 1);\n this.hoverValue.set(null);\n this.value.set(newValue);\n }\n\n /** JS: onHover(index) -> hoverValue=index+1 + updateStarIcons(hoverValue) */\n onStarMouseMove(index: number): void {\n if (this.isReadonly()) return;\n this.hoverValue.set(this.clampValue(index + 1));\n }\n\n /** JS: resetHoverValue() -> hoverValue=null + updateStarIcons(value) */\n clearHover(): void {\n if (this.isReadonly()) return;\n this.hoverValue.set(null);\n }\n\n /** JS: onKeydown (ArrowRight / ArrowLeft) */\n onWrapperKeydown(event: KeyboardEvent): void {\n if (this.isReadonly()) return;\n\n const key = event.key;\n const max = this.maxValue();\n let current = Math.floor(this.value() || 0);\n\n if (key === 'ArrowRight') {\n current = Math.min(max, current + 1);\n } else if (key === 'ArrowLeft') {\n current = Math.max(1, current - 1);\n } else {\n return;\n }\n\n this.hoverValue.set(null);\n this.value.set(current);\n event.preventDefault();\n }\n\n // -------- calcul du composant d'étoile (JS: getStarComponent) --------\n\n getStarComponent(index: number): Type<unknown> {\n const compact = this.compact();\n const isReadonly = this.isReadonly();\n const baseValue = this.displayValue();\n const size = this.size();\n const iconMap = this.iconMaps[size];\n\n if (compact || baseValue >= index + 1) {\n return iconMap['star-filled'];\n } else if (isReadonly && baseValue >= index + 0.5) {\n // half star uniquement en readonly comme en JS\n return iconMap['star-half'];\n } else {\n return iconMap['star'];\n }\n }\n}\n","@if (href()) {\n<a [ngClass]=\"rootClasses()\" [href]=\"href()!\" [attr.target]=\"target()\">\n <div\n class=\"mc-star-rating__wrapper\"\n [attr.tabindex]=\"isReadonly() ? -1 : 0\"\n [attr.role]=\"isReadonly() ? 'img' : 'slider'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-readonly]=\"isReadonly() ? true : null\"\n [attr.aria-valuemin]=\"!isReadonly() ? 0 : null\"\n [attr.aria-valuemax]=\"!isReadonly() ? maxValue() : null\"\n [attr.aria-valuenow]=\"!isReadonly() ? value() : null\"\n (keydown)=\"isReadonly() ? null : onWrapperKeydown($event)\"\n (mouseleave)=\"isReadonly() ? null : clearHover()\"\n (blur)=\"isReadonly() ? null : clearHover()\"\n >\n @for (index of stars(); track index) {\n <span\n class=\"mc-star-rating__icon\"\n (click)=\"isReadonly() ? null : onStarClick(index)\"\n (mousemove)=\"isReadonly() ? null : onStarMouseMove(index)\"\n >\n <ng-container [ngComponentOutlet]=\"getStarComponent(index)\"></ng-container>\n </span>\n }\n </div>\n\n @if (hasInfoText()) {\n <span class=\"mc-star-rating__info\">\n {{ text() || href() }}\n </span>\n }\n</a>\n} @else {\n<div [ngClass]=\"rootClasses()\">\n <div\n class=\"mc-star-rating__wrapper\"\n [attr.tabindex]=\"isReadonly() ? -1 : 0\"\n [attr.role]=\"isReadonly() ? 'img' : 'slider'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-readonly]=\"isReadonly() ? true : null\"\n [attr.aria-valuemin]=\"!isReadonly() ? 0 : null\"\n [attr.aria-valuemax]=\"!isReadonly() ? maxValue() : null\"\n [attr.aria-valuenow]=\"!isReadonly() ? value() : null\"\n (keydown)=\"isReadonly() ? null : onWrapperKeydown($event)\"\n (mouseleave)=\"isReadonly() ? null : clearHover()\"\n (blur)=\"isReadonly() ? null : clearHover()\"\n >\n @for (index of stars(); track index) {\n <span\n class=\"mc-star-rating__icon\"\n (click)=\"isReadonly() ? null : onStarClick(index)\"\n (mousemove)=\"isReadonly() ? null : onStarMouseMove(index)\"\n >\n <ng-container [ngComponentOutlet]=\"getStarComponent(index)\"></ng-container>\n </span>\n }\n </div>\n\n @if (hasInfoText()) {\n <span class=\"mc-star-rating__info\">\n {{ text() || href() }}\n </span>\n }\n</div>\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, computed, input, model } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ChevronRight20 } from '@mozaic-ds/icons-angular';\n\nexport type MozBuiltInMenuItemTarget = '_self' | '_blank' | '_parent' | '_top';\n\nexport type MozBuiltInMenuItem = {\n label: string;\n icon?: Type<unknown>;\n href?: string;\n routerLink?: string | unknown[];\n target?: MozBuiltInMenuItemTarget;\n};\n\n/**\n * A built-in menu is a structured list of navigational or interactive options,\n * typically displayed as a vertical stack.\n */\n@Component({\n selector: 'moz-built-in-menu',\n templateUrl: './built-in-menu.html',\n styleUrls: ['./built-in-menu.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterModule, NgComponentOutlet, ChevronRight20],\n})\nexport class BuiltInMenuComponent {\n /**\n * Items displayed in the menu.\n */\n items = input.required<MozBuiltInMenuItem[]>();\n\n /**\n * Index of the currently selected menu item.\n * Used with two-way binding: [(selectedIndex)].\n */\n selectedIndex = model<number | null>(null);\n\n /**\n * When enabled, adds a visible border around the wrapper.\n */\n outlined = input(false);\n\n /**\n * Accessible label for the navigation.\n */\n ariaLabel = input<string>('menu');\n\n readonly hostClasses = computed(() =>\n ['mc-built-in-menu', this.outlined() ? 'mc-built-in-menu--outlined' : '']\n .filter(Boolean)\n .join(' ')\n );\n\n isSelected(index: number): boolean {\n return this.selectedIndex() === index;\n }\n\n onItemClick(index: number, event: Event): void {\n if (this.selectedIndex() !== index) {\n this.selectedIndex.set(index);\n }\n\n const target = event.currentTarget as HTMLAnchorElement | HTMLButtonElement | null;\n if (target && target instanceof HTMLAnchorElement && target.getAttribute('href') === '#') {\n event.preventDefault();\n }\n }\n}\n","<nav [class]=\"hostClasses()\" role=\"navigation\" [attr.aria-label]=\"ariaLabel()\">\n <ul class=\"mc-built-in-menu__list\">\n @for (item of items(); let index = $index; track index) {\n <li\n class=\"mc-built-in-menu__item\"\n [class.mc-built-in-menu__item--selected]=\"isSelected(index)\"\n [attr.aria-current]=\"isSelected(index) ? 'true' : null\"\n >\n @if (item.href) {\n <a\n class=\"mc-built-in-menu__link\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target || '_self'\"\n (click)=\"onItemClick(index, $event)\"\n >\n @if (item.icon) {\n <span class=\"mc-built-in-menu__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n\n <span class=\"mc-built-in-menu__label\">{{ item.label }}</span>\n\n <ChevronRight20 class=\"mc-built-in-menu__icon\" />\n </a>\n } @else if (item.routerLink) {\n <a\n class=\"mc-built-in-menu__link\"\n [routerLink]=\"item.routerLink\"\n [attr.target]=\"item.target || '_self'\"\n (click)=\"onItemClick(index, $event)\"\n >\n @if (item.icon) {\n <span class=\"mc-built-in-menu__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n\n <span class=\"mc-built-in-menu__label\">{{ item.label }}</span>\n\n <ChevronRight20 class=\"mc-built-in-menu__icon\" />\n </a>\n } @else {\n <button type=\"button\" class=\"mc-built-in-menu__button\" (click)=\"onItemClick(index, $event)\">\n @if (item.icon) {\n <span class=\"mc-built-in-menu__icon\" aria-hidden=\"true\">\n <ng-container [ngComponentOutlet]=\"item.icon\"></ng-container>\n </span>\n }\n\n <span class=\"mc-built-in-menu__label\">{{ item.label }}</span>\n\n <ChevronRight20 class=\"mc-built-in-menu__icon\" />\n </button>\n }\n </li>\n }\n </ul>\n</nav>\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { BuiltInMenuComponent, MozBuiltInMenuItem } from '../built-in-menu/built-in-menu';\nimport { CheckCircleFilled24 } from '@mozaic-ds/icons-angular';\n\n/**\n * A check-list menu is a structured vertical list where each item represents a distinct section of content.\n * It wraps moz-built-in-menu and adds a visual checked state using an icon.\n */\nexport type MozCheckListMenuItem = Omit<MozBuiltInMenuItem, 'icon'> & { checked: boolean };\n\n@Component({\n selector: 'moz-check-list-menu',\n templateUrl: './check-list-menu.html',\n styleUrls: ['./check-list-menu.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [BuiltInMenuComponent],\n})\nexport class MozCheckListMenuComponent {\n /**\n * Defines the menu items, each of which sets a checked state and can act as a button or link.\n */\n items = input<MozCheckListMenuItem[]>([]);\n\n /**\n * When enabled, adds a visible border around the wrapper.\n */\n outlined = input(false);\n\n /**\n * Currently selected item index (two-way bindable with [(selectedIndex)]).\n */\n selectedIndex = model<number | null>(null);\n\n /**\n * Internal mapping to BuiltInMenuItem with an icon for checked items.\n */\n readonly menuItems = computed<MozBuiltInMenuItem[]>(() =>\n this.items().map((item) => ({\n ...item,\n icon: item.checked ? CheckCircleFilled24 : undefined,\n }))\n );\n}\n","<moz-built-in-menu\n [items]=\"menuItems()\"\n [outlined]=\"outlined()\"\n [selectedIndex]=\"selectedIndex()\"\n (selectedIndexChange)=\"selectedIndex.set($event)\"\n></moz-built-in-menu>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Check20, ChevronRight20 } from '@mozaic-ds/icons-angular';\n\n/**\n * A stepper is a navigation component that guides users through a sequence of steps\n * in a structured process. It visually represents progress, completed steps, and\n * upcoming steps, helping users understand their position within a workflow.\n */\nexport interface MozStepperInlineStep {\n /**\n * Label of the step.\n */\n label: string;\n /**\n * Optional additional information under the label.\n */\n additionalInfo?: string;\n}\n\n@Component({\n selector: 'moz-stepper-inline',\n templateUrl: './stepper-inline.html',\n styleUrls: ['./stepper-inline.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [Check20, ChevronRight20],\n})\nexport class MozStepperInlineComponent {\n /**\n * Current step of the stepper inline (1-based index).\n */\n currentStep = input<number>(1);\n\n /**\n * Steps of the stepper inline.\n */\n steps = input<MozStepperInlineStep[]>([]);\n\n /**\n * Clamped current step between 1 and steps.length.\n */\n readonly safeStep = computed(() => {\n const steps = this.steps();\n const max = steps.length || 1;\n const raw = this.currentStep();\n return Math.min(Math.max(raw, 1), max);\n });\n\n /**\n * Derived state for each step: completed / current.\n */\n readonly stepStates = computed(() =>\n this.steps().map((_, i) => ({\n completed: i + 1 < this.safeStep(),\n current: i + 1 === this.safeStep(),\n }))\n );\n}\n","<nav class=\"mc-stepper-inline\" aria-label=\"Stepper\">\n <ol class=\"mc-stepper-inline__container\">\n @for (step of steps(); let i = $index; track i) {\n <li\n class=\"mc-stepper-inline__item\"\n [class.is-completed]=\"stepStates()[i].completed\"\n [attr.tabindex]=\"stepStates()[i].completed ? 0 : null\"\n >\n @if (stepStates()[i].completed) {\n <Check20 class=\"mc-stepper-inline__icon mc-stepper-inline__icon--check\" aria-hidden=\"true\" />\n } @else {\n <span class=\"mc-stepper-inline__circle\" [class.is-current]=\"stepStates()[i].current\">\n {{ i + 1 }}\n </span>\n }\n\n <div class=\"mc-stepper-inline__content\">\n <span class=\"mc-stepper-inline__label\" [class.is-current]=\"stepStates()[i].current\">\n {{ step.label }}\n </span>\n @if (step.additionalInfo) {\n <span class=\"mc-stepper-inline__additional\">\n {{ step.additionalInfo }}\n </span>\n }\n </div>\n\n @if (i < steps().length - 1) {\n <ChevronRight20 class=\"mc-stepper-inline__icon mc-stepper-inline__icon--chevron\" />\n }\n </li>\n }\n </ol>\n</nav>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Check24 } from '@mozaic-ds/icons-angular';\n\n/**\n * A stepper is a navigation component that guides users through a sequence of steps\n * in a structured process. It visually represents progress, completed steps, and\n * upcoming steps, helping users understand their position within a workflow.\n */\nexport interface MozStepperStackedStep {\n /**\n * Label of the step.\n */\n label: string;\n /**\n * Optional additional information under the label.\n */\n additionalInfo?: string;\n}\n\n@Component({\n selector: 'moz-stepper-stacked',\n templateUrl: './stepper-stacked.html',\n styleUrls: ['./stepper-stacked.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [Check24],\n})\nexport class MozStepperStackedComponent {\n /**\n * Current step of the stepper stacked (1-based index).\n */\n currentStep = input<number>(1);\n\n /**\n * Steps of the stepper stacked.\n */\n steps = input<MozStepperStackedStep[]>([]);\n\n /**\n * Clamped current step between 1 and steps.length.\n */\n readonly safeStep = computed(() => {\n const steps = this.steps();\n const max = steps.length || 1;\n const raw = this.currentStep();\n return Math.min(Math.max(raw, 1), max);\n });\n\n /**\n * Derived state for each step: completed / current.\n */\n readonly stepStates = computed(() =>\n this.steps().map((_, i) => ({\n completed: i + 1 < this.safeStep(),\n current: i + 1 === this.safeStep(),\n }))\n );\n}\n","<nav class=\"mc-stepper-stacked\" aria-label=\"Stepper\">\n <ol class=\"mc-stepper-stacked__container\">\n @for (step of steps(); let i = $index; track i) {\n <li\n class=\"mc-stepper-stacked__item\"\n [class.is-current]=\"stepStates()[i].current\"\n [class.has-additional]=\"!!step.additionalInfo\"\n >\n <div class=\"mc-stepper-stacked__indicator\">\n @if (stepStates()[i].completed) {\n <Check24\n class=\"mc-stepper-stacked__icon mc-stepper-stacked__icon--check\"\n aria-hidden=\"true\"\n />\n } @else {\n <span class=\"mc-stepper-stacked__circle\" [class.is-current]=\"stepStates()[i].current\">\n {{ i + 1 }}\n </span>\n }\n </div>\n <div class=\"mc-stepper-stacked__content\">\n <span class=\"mc-stepper-stacked__label\" [class.is-current]=\"stepStates()[i].current\">\n {{ step.label }}\n </span>\n @if (step.additionalInfo) {\n <span class=\"mc-stepper-stacked__additional\">\n {{ step.additionalInfo }}\n </span>\n }\n </div>\n </li>\n }\n </ol>\n</nav>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { ArrowBack24, ArrowNext24 } from '@mozaic-ds/icons-angular';\n\n/**\n * Step position in the stepper workflow.\n */\nexport type MozStepperBottomBarStep = 'start' | 'middle' | 'end';\n\n/**\n * Stepper Bottom Bar component for navigation in multi-step processes.\n *\n * @description\n * The stepper bottom bar provides navigation controls for multi-step workflows,\n * with cancel, previous, next, and validate buttons that adapt based on the current step.\n */\n@Component({\n selector: 'moz-stepper-bottom-bar',\n templateUrl: './stepper-bottom-bar.html',\n styleUrls: ['./stepper-bottom-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ArrowBack24, ArrowNext24],\n})\nexport class MozStepperBottomBarComponent {\n /**\n * Step of the process.\n */\n step = input<MozStepperBottomBarStep>('start');\n\n /**\n * If `true`, display the cancel button.\n */\n hasCancel = input<boolean>(true);\n\n /**\n * Text for the cancel button.\n */\n cancelText = input<string>('Cancel');\n\n /**\n * Text for the previous button.\n */\n previousText = input<string>('Previous');\n\n /**\n * Text for the next button.\n */\n nextText = input<string>('Next');\n\n /**\n * Text for the validate button.\n */\n validateText = input<string>('Validate');\n\n /**\n * Event emitted when cancel button is clicked.\n */\n cancel = output<void>();\n\n /**\n * Event emitted when previous button is clicked.\n */\n previous = output<void>();\n\n /**\n * Event emitted when next button is clicked.\n */\n next = output<void>();\n\n /**\n * Event emitted when validate button is clicked.\n */\n validate = output<void>();\n\n handleCancel() {\n this.cancel.emit();\n }\n\n handlePrevious() {\n this.previous.emit();\n }\n\n handleNext() {\n this.next.emit();\n }\n\n handleValidate() {\n this.validate.emit();\n }\n}\n","<div class=\"mc-stepper-bottom-bar\">\n <div class=\"mc-divider-horizontal mc-stepper-bottom-bar__divider\"></div>\n <div class=\"mc-stepper-bottom-bar__left\">\n @if (hasCancel()) {\n <button\n type=\"button\"\n class=\"mc-button mc-button--ghost mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handleCancel()\"\n >\n {{ cancelText() }}\n </button>\n\n <button\n type=\"button\"\n class=\"mc-button mc-button--ghost mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"cancelText()\"\n (click)=\"handleCancel()\"\n >\n {{ cancelText() }}\n </button>\n }\n </div>\n\n <div class=\"mc-stepper-bottom-bar__right\">\n @if (step() !== 'start') {\n <button\n type=\"button\"\n class=\"mc-button mc-button--outlined mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handlePrevious()\"\n >\n {{ previousText() }}\n </button>\n\n <button\n type=\"button\"\n class=\"mc-button mc-button--outlined mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"previousText()\"\n (click)=\"handlePrevious()\"\n >\n <ArrowBack24 class=\"mc-stepper-bottom-bar__icon\" />\n </button>\n } @if (step() !== 'end') {\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handleNext()\"\n >\n {{ nextText() }}\n </button>\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"nextText()\"\n (click)=\"handleNext()\"\n >\n <ArrowNext24 class=\"mc-stepper-bottom-bar__icon\" />\n </button>\n } @if (step() === 'end') {\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--s mc-stepper-bottom-bar__button--text\"\n (click)=\"handleValidate()\"\n >\n {{ validateText() }}\n </button>\n <button\n type=\"button\"\n class=\"mc-button mc-button--accent mc-button--icon mc-stepper-bottom-bar__button--icon\"\n [attr.aria-label]=\"validateText()\"\n (click)=\"handleValidate()\"\n >\n {{ validateText() }}\n </button>\n }\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport {\n ArrowBack24,\n HelpCircle24,\n Menu24,\n Notification24,\n Search24,\n} from '@mozaic-ds/icons-angular';\nimport { MozSelectComponent } from '../select/select';\nimport { MozStatusBadgeComponent, type MozStatusBadgeStatus } from '../status-badge/status-badge';\nimport { MozTagComponent } from '../tag/tag';\nimport { MozTabItem, MozTabsComponent } from '../tabs/tabs';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MozIconButtonComponent } from '../icon-button/icon-button';\n\nexport interface MozPageHeaderScope {\n id?: string;\n text: string;\n value: string | number;\n attributes?: Record<string, string | boolean | number>;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'moz-page-header',\n templateUrl: './page-header.html',\n styleUrls: ['./page-header.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n MozIconButtonComponent,\n MozTagComponent,\n MozSelectComponent,\n MozStatusBadgeComponent,\n MozTabsComponent,\n ArrowBack24,\n HelpCircle24,\n Menu24,\n Notification24,\n Search24,\n MozIconButtonComponent,\n MozTagComponent,\n ReactiveFormsModule,\n MozSelectComponent,\n FormsModule,\n MozTabsComponent,\n ],\n})\nexport class MozPageHeaderComponent {\n title = input.required<string>();\n shadow = input<boolean>(false);\n backButton = input<boolean>(false);\n searchButton = input<boolean>(false);\n helpButton = input<boolean>(false);\n notificationButton = input<boolean>(false);\n status = input<MozStatusBadgeStatus>();\n statusLabel = input<string>();\n extraInfo = input<string>();\n scope = input<string | MozPageHeaderScope[]>();\n scopeValue = input<string | number | boolean>();\n scopePlaceholder = input<string>();\n tabs = input<MozTabItem[]>();\n activeTab = model<number>(0);\n\n readonly back = output<void>();\n readonly search = output<void>();\n readonly help = output<void>();\n readonly notification = output<void>();\n readonly toggleMenu = output<void>();\n readonly toggleScope = output<boolean | undefined>();\n readonly scopeValueChange = output<string | number | boolean>();\n readonly activeTabChange = output<number>();\n\n readonly classes = computed(() => ({\n 'mc-page-header': true,\n 'mc-page-header--with-shadow': this.shadow(),\n }));\n\n readonly isScopeString = computed(() => typeof this.scope() === 'string');\n readonly isScopeArray = computed(() => Array.isArray(this.scope()));\n readonly isScopeValueBoolean = computed(() => typeof this.scopeValue() === 'boolean');\n readonly isScopeValueNotBoolean = computed(() => typeof this.scopeValue() !== 'boolean');\n\n readonly hasStatusOrExtraInfo = computed(() => this.status() || this.extraInfo());\n readonly hasStatusBadge = computed(() => this.statusLabel() && this.status());\n readonly hasIconButtons = computed(\n () => this.searchButton() || this.helpButton() || this.notificationButton()\n );\n\n readonly scopeAsArray = computed(() => {\n const scope = this.scope();\n return Array.isArray(scope) ? scope : [];\n });\n\n readonly mobileTagLabel = computed(() => {\n const scope = this.scope();\n if (!Array.isArray(scope)) return '';\n const scopeValue = this.scopeValue();\n if (!scopeValue) {\n return this.scopePlaceholder() ?? '';\n }\n const found = scope.find((opt) => opt.value === scopeValue);\n return found?.text ?? this.scopePlaceholder() ?? '';\n });\n\n onBack(): void {\n this.back.emit();\n }\n\n onSearch(): void {\n this.search.emit();\n }\n\n onHelp(): void {\n this.help.emit();\n }\n\n onNotification(): void {\n this.notification.emit();\n }\n\n onToggleMenu(): void {\n this.toggleMenu.emit();\n }\n\n onToggleScope(): void {\n this.toggleScope.emit(true);\n }\n\n onScopeTagClick(): void {\n const currentValue = this.scopeValue() as boolean;\n this.scopeValueChange.emit(!currentValue);\n }\n\n onScopeSelectChange(value: string | number): void {\n this.scopeValueChange.emit(value);\n }\n\n onActiveTabChange(index: number): void {\n this.activeTabChange.emit(index);\n }\n}\n","<div [ngClass]=\"classes()\">\n <div class=\"mc-page-header__top-wrapper\">\n <div class=\"mc-page-header__top-content\">\n @if (backButton()) {\n <moz-icon-button [ghost]=\"true\" ariaLabel=\"Back button\" (click)=\"onBack()\">\n <ArrowBack24 icon />\n </moz-icon-button>\n }\n\n <div class=\"mc-page-header__content-wrapper\">\n <span class=\"mc-page-header__title\">\n {{ title() }}\n </span>\n\n @if (hasStatusOrExtraInfo()) {\n <div class=\"mc-page-header__info-wrapper\">\n @if (hasStatusBadge()) {\n <moz-status-badge [label]=\"statusLabel()!\" [status]=\"status()!\" />\n } @if (extraInfo()) {\n <span class=\"mc-page-header__extra-info\">\n {{ extraInfo() }}\n </span>\n }\n </div>\n }\n\n <ng-content select=\"[content]\" />\n </div>\n </div>\n\n <div class=\"mc-page-header__actions-wrapper\">\n <moz-icon-button\n class=\"mc-page-header__burger-menu\"\n [ghost]=\"true\"\n ariaLabel=\"Burger menu\"\n (click)=\"onToggleMenu()\"\n >\n <Menu24 icon />\n </moz-icon-button>\n\n <ng-content select=\"[actions]\">\n <div class=\"mc-page-header__actions-content\">\n @if (hasIconButtons()) {\n <div class=\"mc-page-header__icons\">\n @if (searchButton()) {\n <moz-icon-button [ghost]=\"true\" ariaLabel=\"Search button\" (click)=\"onSearch()\">\n <Search24 icon />\n </moz-icon-button>\n } @if (helpButton()) {\n <moz-icon-button [ghost]=\"true\" ariaLabel=\"Help button\" (click)=\"onHelp()\">\n <HelpCircle24 icon />\n </moz-icon-button>\n } @if (notificationButton()) {\n <moz-icon-button\n [ghost]=\"true\"\n ariaLabel=\"Notification button\"\n (click)=\"onNotification()\"\n >\n <Notification24 icon />\n </moz-icon-button>\n }\n </div>\n } @if (isScopeString() && isScopeValueBoolean()) {\n <moz-tag\n type=\"interactive\"\n [id]=\"'scope-tag'\"\n [label]=\"$any(scope())\"\n (click)=\"onScopeTagClick()\"\n />\n } @if (isScopeArray() && isScopeValueNotBoolean()) {\n <div class=\"mc-page-header__scope--select\">\n <moz-select\n [name]=\"'scope-select'\"\n id=\"scope-select\"\n size=\"s\"\n [options]=\"scopeAsArray()\"\n [placeholder]=\"scopePlaceholder()\"\n [ngModel]=\"scopeValue()\"\n (ngModelChange)=\"onScopeSelectChange($event)\"\n />\n </div>\n\n <div class=\"mc-page-header__scope--tag\">\n <moz-tag\n type=\"interactive\"\n [id]=\"'mobile-scope-tag'\"\n [label]=\"mobileTagLabel()\"\n (click)=\"onToggleScope()\"\n />\n </div>\n }\n </div>\n </ng-content>\n </div>\n </div>\n\n @if (tabs() && tabs()!.length > 0) {\n <div class=\"mc-page-header__tabs\">\n <moz-tabs\n [tabs]=\"tabs()!\"\n [(selectedIndex)]=\"activeTab\"\n (selectedIndexChange)=\"onActiveTabChange($event)\"\n />\n </div>\n }\n</div>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, input, computed } from '@angular/core';\n\nexport type MozTileAppearance = 'primary' | 'secondary' | 'inverse';\n\n@Component({\n selector: 'moz-tile',\n imports: [NgClass, NgTemplateOutlet],\n templateUrl: './tile.html',\n styleUrls: ['./tile.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MozBasicTileComponent {\n appearance = input<MozTileAppearance>('primary');\n isBordered = input(false);\n extraAction = input(false);\n\n readonly classes = computed(() => ({\n 'mc-tile': true,\n [`mc-tile--${this.appearance()}`]: this.appearance() !== 'primary',\n 'mc-tile--bordered': this.isBordered(),\n }));\n}\n","<div [ngClass]=\"classes()\">\n <div class=\"mc-tile__header\">\n @if (extraAction()) {\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n <div class=\"mc-tile__action\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n } @else {\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n }\n </div>\n <div class=\"mc-tile__content\">\n <ng-content select=\"[segmented]\"></ng-content>\n </div>\n\n <ng-template #bodyTemplate>\n <ng-content select=\"[body]\"></ng-content>\n </ng-template>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type MozTileSelectableType = 'checkbox' | 'radio';\nexport type MozTileInputVerticalPosition = 'top' | 'center';\nexport type MozTileInputPosition = 'left' | 'right';\nexport type MozTileSelectableAppearance = 'primary';\n\n@Component({\n selector: 'moz-tile-selectable',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n templateUrl: './selectable-tile.html',\n styleUrls: ['./selectable-tile.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MozTileSelectableComponent),\n multi: true,\n },\n ],\n})\nexport class MozTileSelectableComponent implements ControlValueAccessor {\n appearance = input<MozTileSelectableAppearance>('primary');\n bordered = input(false);\n\n name = input<string>('tile-select-group');\n value = input<string>('');\n checked = input(false);\n disabled = input(false);\n inputVerticalPosition = input<MozTileInputVerticalPosition>('top');\n inputPosition = input<MozTileInputPosition>('right');\n inputType = input<MozTileSelectableType>('checkbox');\n\n // ControlValueAccessor properties\n private innerValue: boolean | string = '';\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (value: boolean | string) => void = () => {};\n\n protected classes = computed(() => {\n const cls = ['mc-tile', 'mc-tile--selectable'];\n\n // appearance\n if (this.appearance() !== 'primary') cls.push(`mc-tile--${this.appearance()}`);\n\n // border\n if (this.bordered()) cls.push('mc-tile--bordered');\n\n // disabled\n if (this.disabled()) cls.push('mc-tile--disabled');\n\n // input vertical position\n cls.push(`mc-tile--input-${this.inputVerticalPosition()}`);\n\n // input position\n cls.push(`mc-tile--input-${this.inputPosition()}`);\n\n return cls.join(' ');\n });\n\n protected isCheckbox = computed(() => this.inputType() === 'checkbox');\n protected isRadio = computed(() => this.inputType() === 'radio');\n\n // ControlValueAccessor methods\n writeValue(value: boolean | string): void {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n registerOnChange(fn: (value: boolean | string) => void): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n // Méthode appelée quand l'utilisateur clique sur le tile\n onTileChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n\n if (this.isCheckbox()) {\n this.innerValue = target.checked;\n this.onChangeCallback(target.checked);\n } else {\n this.innerValue = target.value;\n this.onChangeCallback(target.value);\n }\n\n this.onTouchedCallback();\n }\n\n // Getter pour la valeur actuelle (utilisé dans le template)\n get isChecked(): boolean {\n if (this.isCheckbox()) {\n return this.innerValue as boolean;\n } else {\n return this.innerValue === this.value();\n }\n }\n}\n","<label [ngClass]=\"classes()\" [class.mc-tile--disabled]=\"disabled()\">\n <div class=\"mc-tile__header\">\n <div class=\"mc-tile__body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"mc-tile__action\">\n @if (isCheckbox()) {\n <input\n type=\"checkbox\"\n class=\"mc-checkbox__input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled()\"\n (change)=\"onTileChange($event)\"\n />\n } @else if (isRadio()) {\n <input\n type=\"radio\"\n class=\"mc-radio__input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"isChecked\"\n [disabled]=\"disabled()\"\n (change)=\"onTileChange($event)\"\n />\n }\n </div>\n </div>\n <div class=\"mc-tile__content\">\n <ng-content select=\"[segmented]\"></ng-content>\n </div>\n</label>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { MozButtonComponent } from '../../button/button';\nimport { MozIconButtonComponent } from '../../icon-button/icon-button';\nimport { ChevronDown24 } from '@mozaic-ds/icons-angular';\n\nexport type MozTileExpandableTrigger = 'container' | 'button' | 'icon';\n\n@Component({\n selector: 'moz-tile-expandable',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './expandable-tile.html',\n styleUrls: ['./expandable-tile.scss'],\n imports: [NgClass, NgTemplateOutlet, MozButtonComponent, MozIconButtonComponent, ChevronDown24],\n})\nexport class MozTileExpandableComponent {\n triggerMode = input<MozTileExpandableTrigger>('container');\n id = input<number>(0);\n expanded = signal(false);\n contentId = `tile-content-${this.id()}`;\n\n isContainerTrigger = computed(() => this.triggerMode() === 'container');\n isIconTrigger = computed(() => this.triggerMode() === 'icon');\n isButtonTrigger = computed(() => this.triggerMode() === 'button');\n\n toggle() {\n this.expanded.update((v) => !v);\n }\n\n hostClass = computed(() => {\n const cls = ['mc-tile', 'mc-tile--expandable'];\n\n if (!this.isContainerTrigger()) {\n cls.push(`mc-tile--trigger-${this.triggerMode()}`);\n }\n\n return cls.join(' ');\n });\n}\n","<div [ngClass]=\"hostClass()\">\n @if (isContainerTrigger()) {\n <button\n class=\"mc-tile__header\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"contentId\"\n (click)=\"toggle()\"\n >\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n <div class=\"mc-tile__action\"></div>\n </button>\n } @else {\n <div class=\"mc-tile__header\">\n <div class=\"mc-tile__body\">\n <ng-container [ngTemplateOutlet]=\"bodyTemplate\"></ng-container>\n </div>\n <div class=\"mc-tile__action\">\n @if (isButtonTrigger()) {\n <button\n moz-button\n class=\"mc-tile__action-button\"\n [ghost]=\"true\"\n [iconPosition]=\"'right'\"\n (click)=\"toggle(); $event.stopPropagation()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"contentId\"\n >\n <span class=\"mc-tile__action-label\">See more</span>\n <ChevronDown24 icon />\n </button>\n } @else if (isIconTrigger()) {\n <moz-icon-button\n class=\"mc-tile__action-button\"\n [ghost]=\"true\"\n [ariaLabel]=\"'Toggle content'\"\n (click)=\"toggle(); $event.stopPropagation()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"contentId\"\n >\n <ChevronDown24 icon />\n </moz-icon-button>\n }\n </div>\n </div>\n }\n\n <div class=\"mc-tile__content\" [id]=\"contentId\" [attr.aria-hidden]=\"!expanded()\">\n <ng-content select=\"[segmented]\" />\n </div>\n\n <ng-template #bodyTemplate>\n <ng-content select=\"[body]\" />\n </ng-template>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}