import { ChangeDetectionStrategy, Component, input } from '@angular/core';
import { NgIcon, provideIcons, provideNgIconsConfig } from '@ng-icons/core';
import { lucideLoader2 } from '@ng-icons/lucide';
import { classes } from '@spartan-ng/styles/utils';
@Component({
selector: 'hlm-spinner',
imports: [NgIcon],
providers: [provideIcons({ lucideLoader2 }), provideNgIconsConfig({ size: '1em' })],
changeDetection: ChangeDetectionStrategy.OnPush,
host: {
'data-slot': 'spinner',
},
template: ` `,
})
export class HlmSpinner {
/**
* The name of the icon to be used as the spinner.
* Use provideIcons({ ... }) to register custom icons.
*/
public readonly icon = input('lucideLoader2');
constructor() {
classes(() => 'inline-flex motion-safe:animate-spin');
}
}