@spartan-ng/cli 0.0.1-alpha.336 → 0.0.1-alpha.338

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.
Files changed (164) hide show
  1. package/package.json +4 -4
  2. package/src/generators/base/generator.js +8 -3
  3. package/src/generators/base/generator.js.map +1 -1
  4. package/src/generators/base/lib/build-dependency-array.js +1 -0
  5. package/src/generators/base/lib/build-dependency-array.js.map +1 -1
  6. package/src/generators/base/versions.d.ts +2 -1
  7. package/src/generators/base/versions.js +3 -2
  8. package/src/generators/base/versions.js.map +1 -1
  9. package/src/generators/theme/libs/add-theme-to-application-styles.js.map +1 -1
  10. package/src/generators/ui/generator.js +9 -2
  11. package/src/generators/ui/generator.js.map +1 -1
  12. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-content.directive.ts.template +3 -8
  13. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-icon.directive.ts.template +7 -11
  14. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-item.directive.ts.template +9 -9
  15. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-trigger.directive.ts.template +3 -8
  16. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion.directive.ts.template +4 -9
  17. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-cancel-button.directive.ts.template +3 -8
  18. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-content.component.ts.template +3 -8
  19. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-description.directive.ts.template +3 -8
  20. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-footer.component.ts.template +3 -7
  21. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-header.component.ts.template +3 -7
  22. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-overlay.directive.ts.template +3 -7
  23. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-title.directive.ts.template +3 -7
  24. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog.component.ts.template +1 -2
  25. package/src/generators/ui/libs/ui-alert-helm/files/lib/hlm-alert-description.directive.ts.template +3 -11
  26. package/src/generators/ui/libs/ui-alert-helm/files/lib/hlm-alert-title.directive.ts.template +3 -11
  27. package/src/generators/ui/libs/ui-alert-helm/files/lib/hlm-alert.directive.ts.template +3 -11
  28. package/src/generators/ui/libs/ui-aspect-ratio-helm/files/lib/helm-aspect-ratio.directive.ts.template +3 -8
  29. package/src/generators/ui/libs/ui-avatar-helm/files/lib/hlm-avatar.component.spec.ts.template +10 -6
  30. package/src/generators/ui/libs/ui-avatar-helm/files/lib/hlm-avatar.component.ts.template +5 -11
  31. package/src/generators/ui/libs/ui-avatar-helm/files/lib/image/hlm-avatar-image.directive.ts.template +3 -11
  32. package/src/generators/ui/libs/ui-badge-helm/files/lib/hlm-badge.directive.ts.template +5 -14
  33. package/src/generators/ui/libs/ui-button-helm/files/.DS_Store.template +0 -0
  34. package/src/generators/ui/libs/ui-button-helm/files/lib/hlm-button.directive.ts.template +11 -11
  35. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-content.directive.ts.template +3 -11
  36. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-description.directive.ts.template +3 -11
  37. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-footer.directive.ts.template +4 -16
  38. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-header.directive.ts.template +4 -16
  39. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-title.directive.ts.template +3 -11
  40. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card.directive.ts.template +3 -11
  41. package/src/generators/ui/libs/ui-carousel-helm/files/index.ts.template +26 -0
  42. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-content.component.ts.template +25 -0
  43. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-item.component.ts.template +26 -0
  44. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-next.component.ts.template +62 -0
  45. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-previous.component.ts.template +62 -0
  46. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel.component.ts.template +93 -0
  47. package/src/generators/ui/libs/ui-carousel-helm/generator.d.ts +3 -0
  48. package/src/generators/ui/libs/ui-carousel-helm/generator.js +12 -0
  49. package/src/generators/ui/libs/ui-carousel-helm/generator.js.map +1 -0
  50. package/src/generators/ui/libs/ui-checkbox-helm/files/lib/hlm-checkbox-checkicon.component.ts.template +11 -20
  51. package/src/generators/ui/libs/ui-checkbox-helm/files/lib/hlm-checkbox.component.ts.template +50 -46
  52. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-dialog-close-button.directive.ts.template +3 -11
  53. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-dialog.directive.ts.template +8 -14
  54. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-empty.directive.ts.template +3 -11
  55. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-group.directive.ts.template +7 -13
  56. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-input-wrapper.component.ts.template +5 -14
  57. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-input.directive.ts.template +7 -12
  58. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-item-icon.directive.ts.template +3 -10
  59. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-item.directive.ts.template +7 -12
  60. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-list.directive.ts.template +3 -11
  61. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-shortcut.component.ts.template +5 -11
  62. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command.directive.ts.template +7 -13
  63. package/src/generators/ui/libs/ui-dialog-helm/files/.DS_Store.template +0 -0
  64. package/src/generators/ui/libs/ui-dialog-helm/files/index.ts.template +1 -0
  65. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-close.directive.ts.template +7 -13
  66. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-content.component.ts.template +24 -17
  67. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-description.directive.ts.template +3 -11
  68. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-footer.component.ts.template +5 -11
  69. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-header.component.ts.template +5 -11
  70. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-overlay.directive.ts.template +9 -13
  71. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-title.directive.ts.template +3 -11
  72. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog.component.ts.template +1 -2
  73. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog.service.ts.template +35 -0
  74. package/src/generators/ui/libs/ui-hover-card-helm/files/lib/hlm-hover-card-content.component.ts.template +3 -10
  75. package/src/generators/ui/libs/ui-icon-helm/files/lib/hlm-icon.component.spec.ts.template +3 -3
  76. package/src/generators/ui/libs/ui-icon-helm/files/lib/hlm-icon.component.ts.template +4 -4
  77. package/src/generators/ui/libs/ui-input-helm/files/lib/hlm-input-error.directive.ts.template +3 -11
  78. package/src/generators/ui/libs/ui-input-helm/files/lib/hlm-input.directive.ts.template +5 -10
  79. package/src/generators/ui/libs/ui-label-helm/files/lib/hlm-label.directive.ts.template +4 -10
  80. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-bar-item.directive.ts.template +7 -13
  81. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-bar.component.ts.template +5 -11
  82. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-check.component.ts.template +12 -14
  83. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-checkbox.directive.ts.template +8 -21
  84. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-icon.directive.ts.template +3 -10
  85. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-radio.component.ts.template +12 -14
  86. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-radio.directive.ts.template +8 -21
  87. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-sub-indicator.component.ts.template +6 -14
  88. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item.directive.ts.template +5 -15
  89. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-label.component.ts.template +5 -11
  90. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-separator.component.ts.template +3 -11
  91. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-shortcut.component.ts.template +5 -11
  92. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu.component.ts.template +4 -12
  93. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-sub-menu.component.ts.template +7 -13
  94. package/src/generators/ui/libs/ui-pagination-helm/files/index.ts.template +33 -0
  95. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-content.directive.ts.template +21 -0
  96. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-ellipsis.componet.ts.template +23 -0
  97. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-item.directive.ts.template +22 -0
  98. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-link.directive.ts.template +56 -0
  99. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-next.componet.ts.template +31 -0
  100. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-previous.componet.ts.template +31 -0
  101. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination.directive.ts.template +25 -0
  102. package/src/generators/ui/libs/ui-pagination-helm/generator.d.ts +3 -0
  103. package/src/generators/ui/libs/ui-pagination-helm/generator.js +12 -0
  104. package/src/generators/ui/libs/ui-pagination-helm/generator.js.map +1 -0
  105. package/src/generators/ui/libs/ui-popover-helm/files/lib/hlm-popover-close.directive.ts.template +7 -13
  106. package/src/generators/ui/libs/ui-popover-helm/files/lib/hlm-popover-content.directive.ts.template +7 -13
  107. package/src/generators/ui/libs/ui-progress-helm/files/lib/hlm-progress-indicator.directive.ts.template +5 -11
  108. package/src/generators/ui/libs/ui-progress-helm/files/lib/hlm-progress.directive.ts.template +5 -11
  109. package/src/generators/ui/libs/ui-radio-group-helm/files/lib/hlm-radio-group.directive.ts.template +3 -11
  110. package/src/generators/ui/libs/ui-radio-group-helm/files/lib/hlm-radio-indicator.component.ts.template +3 -11
  111. package/src/generators/ui/libs/ui-radio-group-helm/files/lib/hlm-radio.directive.ts.template +5 -11
  112. package/src/generators/ui/libs/ui-select-helm/files/index.ts.template +38 -0
  113. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-content.directive.ts.template +34 -0
  114. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-group.directive.ts.template +22 -0
  115. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-label.directive.ts.template +38 -0
  116. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-option.component.ts.template +54 -0
  117. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-scroll-down.component.ts.template +17 -0
  118. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-scroll-up.component.ts.template +17 -0
  119. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-trigger.component.ts.template +44 -0
  120. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-value.directive.ts.template +26 -0
  121. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select.directive.ts.template +21 -0
  122. package/src/generators/ui/libs/ui-select-helm/generator.d.ts +3 -0
  123. package/src/generators/ui/libs/ui-select-helm/generator.js +12 -0
  124. package/src/generators/ui/libs/ui-select-helm/generator.js.map +1 -0
  125. package/src/generators/ui/libs/ui-separator-helm/files/lib/hlm-separator.directive.ts.template +7 -13
  126. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-close.directive.ts.template +7 -13
  127. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-content.component.ts.template +6 -14
  128. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-description.directive.ts.template +3 -11
  129. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-footer.component.ts.template +5 -11
  130. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-header.component.ts.template +3 -11
  131. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-overlay.directive.ts.template +11 -17
  132. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-title.directive.ts.template +3 -11
  133. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet.component.ts.template +1 -2
  134. package/src/generators/ui/libs/ui-skeleton-helm/files/lib/hlm-skeleton.component.ts.template +3 -11
  135. package/src/generators/ui/libs/ui-spinner-helm/files/lib/hlm-spinner.component.ts.template +5 -11
  136. package/src/generators/ui/libs/ui-switch-helm/files/lib/hlm-switch-thumb.directive.ts.template +7 -13
  137. package/src/generators/ui/libs/ui-switch-helm/files/lib/hlm-switch.component.ts.template +19 -14
  138. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-caption.component.ts.template +10 -28
  139. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-table.component.ts.template +11 -27
  140. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-td.component.ts.template +8 -12
  141. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-th.component.ts.template +22 -23
  142. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-trow.component.ts.template +7 -24
  143. package/src/generators/ui/libs/ui-tabs-helm/files/index.ts.template +8 -1
  144. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs-content.directive.ts.template +9 -21
  145. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs-list.component.ts.template +5 -17
  146. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs-trigger.directive.ts.template +9 -21
  147. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs.component.ts.template +17 -0
  148. package/src/generators/ui/libs/ui-toggle-helm/files/lib/hlm-toggle-group.directive.ts.template +7 -13
  149. package/src/generators/ui/libs/ui-toggle-helm/files/lib/hlm-toggle.directive.ts.template +5 -11
  150. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-blockquote.directive.ts.template +3 -11
  151. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-code.directive.ts.template +3 -11
  152. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h1.directive.ts.template +3 -11
  153. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h2.directive.ts.template +3 -11
  154. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h3.directive.ts.template +3 -11
  155. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h4.directive.ts.template +3 -11
  156. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-large.directive.ts.template +3 -11
  157. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-lead.directive.ts.template +3 -11
  158. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-muted.directive.ts.template +3 -11
  159. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-p.directive.ts.template +3 -11
  160. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-small.directive.ts.template +3 -11
  161. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-ul.directive.ts.template +3 -11
  162. package/src/generators/ui/supported-ui-libraries.json +115 -81
  163. package/src/utils/get-project-names.js.map +1 -1
  164. package/src/utils/version-utils.js.map +1 -1
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { HlmSelectContentDirective } from './lib/hlm-select-content.directive';
3
+ import { HlmSelectGroupDirective } from './lib/hlm-select-group.directive';
4
+ import { HlmSelectLabelDirective } from './lib/hlm-select-label.directive';
5
+ import { HlmSelectOptionComponent } from './lib/hlm-select-option.component';
6
+ import { HlmSelectScrollDownComponent } from './lib/hlm-select-scroll-down.component';
7
+ import { HlmSelectScrollUpComponent } from './lib/hlm-select-scroll-up.component';
8
+ import { HlmSelectTriggerComponent } from './lib/hlm-select-trigger.component';
9
+ import { HlmSelectValueDirective } from './lib/hlm-select-value.directive';
10
+ import { HlmSelectDirective } from './lib/hlm-select.directive';
11
+
12
+ export * from './lib/hlm-select-content.directive';
13
+ export * from './lib/hlm-select-group.directive';
14
+ export * from './lib/hlm-select-label.directive';
15
+ export * from './lib/hlm-select-option.component';
16
+ export * from './lib/hlm-select-scroll-down.component';
17
+ export * from './lib/hlm-select-scroll-up.component';
18
+ export * from './lib/hlm-select-trigger.component';
19
+ export * from './lib/hlm-select-value.directive';
20
+ export * from './lib/hlm-select.directive';
21
+
22
+ export const HlmSelectImports = [
23
+ HlmSelectContentDirective,
24
+ HlmSelectTriggerComponent,
25
+ HlmSelectOptionComponent,
26
+ HlmSelectValueDirective,
27
+ HlmSelectDirective,
28
+ HlmSelectScrollUpComponent,
29
+ HlmSelectScrollDownComponent,
30
+ HlmSelectLabelDirective,
31
+ HlmSelectGroupDirective,
32
+ ] as const;
33
+
34
+ @NgModule({
35
+ imports: [...HlmSelectImports],
36
+ exports: [...HlmSelectImports],
37
+ })
38
+ export class HlmSelectModule {}
@@ -0,0 +1,34 @@
1
+ import { computed, Directive, Input, signal } from '@angular/core';
2
+ import { hlm } from '@spartan-ng/ui-core';
3
+ import { ClassValue } from 'clsx';
4
+
5
+ @Directive({
6
+ selector: '[hlmSelectContent], hlm-select-content',
7
+ standalone: true,
8
+ host: {
9
+ '[class]': '_computedClass()',
10
+ },
11
+ })
12
+ export class HlmSelectContentDirective {
13
+ private readonly _classNames = signal<ClassValue>('');
14
+ // eslint-disable-next-line @angular-eslint/no-input-rename
15
+ @Input({ alias: 'class' })
16
+ set _class(classNames: ClassValue) {
17
+ this._classNames.set(classNames);
18
+ }
19
+ protected readonly _computedClass = computed(() =>
20
+ hlm(
21
+ 'top-[2px] relative z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md p-1 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',
22
+ this._classNames(),
23
+ ),
24
+ );
25
+
26
+ private readonly _stickyLabels = signal(false);
27
+ @Input()
28
+ set stickyLabels(value: boolean) {
29
+ this._stickyLabels.set(value);
30
+ }
31
+ get stickyLabels() {
32
+ return this._stickyLabels();
33
+ }
34
+ }
@@ -0,0 +1,22 @@
1
+ import { computed, Directive, Input, signal } from '@angular/core';
2
+ import { hlm } from '@spartan-ng/ui-core';
3
+ import { BrnSelectGroupDirective } from '@spartan-ng/ui-select-brain';
4
+ import { ClassValue } from 'clsx';
5
+
6
+ @Directive({
7
+ selector: '[hlmSelectGroup], hlm-select-group',
8
+ hostDirectives: [BrnSelectGroupDirective],
9
+ standalone: true,
10
+ host: {
11
+ '[class]': '_computedClass()',
12
+ },
13
+ })
14
+ export class HlmSelectGroupDirective {
15
+ private readonly _classNames = signal<ClassValue>('');
16
+ // eslint-disable-next-line @angular-eslint/no-input-rename
17
+ @Input({ alias: 'class' })
18
+ set _class(classNames: ClassValue) {
19
+ this._classNames.set(classNames);
20
+ }
21
+ protected readonly _computedClass = computed(() => hlm(this._classNames()));
22
+ }
@@ -0,0 +1,38 @@
1
+ import { computed, Directive, inject, Input, OnInit, signal } from '@angular/core';
2
+ import { hlm } from '@spartan-ng/ui-core';
3
+ import { BrnSelectLabelDirective } from '@spartan-ng/ui-select-brain';
4
+ import { ClassValue } from 'clsx';
5
+ import { HlmSelectContentDirective } from './hlm-select-content.directive';
6
+
7
+ @Directive({
8
+ selector: '[hlmSelectLabel], hlm-select-label',
9
+ hostDirectives: [BrnSelectLabelDirective],
10
+ standalone: true,
11
+ host: {
12
+ '[class]': '_computedClass()',
13
+ },
14
+ })
15
+ export class HlmSelectLabelDirective implements OnInit {
16
+ private readonly selectContent = inject(HlmSelectContentDirective);
17
+ private readonly _stickyLabels = signal(false);
18
+
19
+ private readonly _classNames = signal<ClassValue>('');
20
+ // eslint-disable-next-line @angular-eslint/no-input-rename
21
+ @Input({ alias: 'class' })
22
+ set _class(classNames: ClassValue) {
23
+ this._classNames.set(classNames);
24
+ }
25
+ protected _computedClass = computed(() =>
26
+ hlm(
27
+ 'pl-8 pr-2 text-sm font-semibold rtl:pl-2 rtl:pr-8',
28
+ this._stickyLabels() ? 'sticky top-0 bg-popover block z-[2]' : '',
29
+ this._classNames(),
30
+ ),
31
+ );
32
+
33
+ ngOnInit(): void {
34
+ if (this.selectContent.stickyLabels) {
35
+ this._stickyLabels.set(true);
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,54 @@
1
+ import { ChangeDetectionStrategy, Component, computed, inject, Input, signal } from '@angular/core';
2
+ import { lucideCheck } from '@ng-icons/lucide';
3
+ import { hlm } from '@spartan-ng/ui-core';
4
+ import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
5
+ import { BrnSelectOptionDirective } from '@spartan-ng/ui-select-brain';
6
+ import { ClassValue } from 'clsx';
7
+
8
+ @Component({
9
+ selector: 'hlm-option',
10
+ standalone: true,
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ hostDirectives: [BrnSelectOptionDirective],
13
+ providers: [provideIcons({ lucideCheck })],
14
+ host: {
15
+ '[class]': '_computedClass()',
16
+ },
17
+ template: `
18
+ <ng-content />
19
+ <span
20
+ [attr.dir]="_brnSelectOption.dir()"
21
+ class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center rtl:left-auto rtl:right-2"
22
+ [attr.data-state]="this._brnSelectOption.checkedState()"
23
+ >
24
+ @if (this._brnSelectOption.selected()) {
25
+ <hlm-icon aria-hidden="true" name="lucideCheck" />
26
+ }
27
+ </span>
28
+ `,
29
+ imports: [HlmIconComponent],
30
+ })
31
+ export class HlmSelectOptionComponent {
32
+ protected readonly _brnSelectOption = inject(BrnSelectOptionDirective, { host: true });
33
+
34
+ private readonly classNames = signal<ClassValue>('');
35
+ // eslint-disable-next-line @angular-eslint/no-input-rename
36
+ @Input({ alias: 'class' })
37
+ set _class(classNames: ClassValue) {
38
+ this.classNames.set(classNames);
39
+ }
40
+ protected readonly _computedClass = computed(() =>
41
+ hlm(
42
+ 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 rtl:flex-reverse rtl:pr-8 rtl:pl-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
43
+ this.classNames(),
44
+ ),
45
+ );
46
+
47
+ @Input()
48
+ set value(value: unknown | null) {
49
+ this._brnSelectOption.value = value;
50
+ }
51
+
52
+ @Input()
53
+ public disabled = false;
54
+ }
@@ -0,0 +1,17 @@
1
+ import { Component } from '@angular/core';
2
+ import { lucideChevronDown } from '@ng-icons/lucide';
3
+ import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
4
+
5
+ @Component({
6
+ selector: 'hlm-select-scroll-down',
7
+ standalone: true,
8
+ imports: [HlmIconComponent],
9
+ providers: [provideIcons({ lucideChevronDown })],
10
+ host: {
11
+ class: 'flex cursor-default items-center justify-center py-1',
12
+ },
13
+ template: `
14
+ <hlm-icon class="ml-2 h-4 w-4" name="lucideChevronDown" />
15
+ `,
16
+ })
17
+ export class HlmSelectScrollDownComponent {}
@@ -0,0 +1,17 @@
1
+ import { Component } from '@angular/core';
2
+ import { lucideChevronUp } from '@ng-icons/lucide';
3
+ import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
4
+
5
+ @Component({
6
+ selector: 'hlm-select-scroll-up',
7
+ standalone: true,
8
+ imports: [HlmIconComponent],
9
+ providers: [provideIcons({ lucideChevronUp })],
10
+ host: {
11
+ class: 'flex cursor-default items-center justify-center py-1',
12
+ },
13
+ template: `
14
+ <hlm-icon class="ml-2 h-4 w-4" name="lucideChevronUp" />
15
+ `,
16
+ })
17
+ export class HlmSelectScrollUpComponent {}
@@ -0,0 +1,44 @@
1
+ import { Component, computed, ContentChild, ElementRef, Input, signal, ViewChild } from '@angular/core';
2
+ import { provideIcons } from '@ng-icons/core';
3
+ import { lucideChevronDown } from '@ng-icons/lucide';
4
+ import { hlm } from '@spartan-ng/ui-core';
5
+ import { HlmIconComponent } from '@spartan-ng/ui-icon-helm';
6
+ import { BrnSelectTriggerDirective } from '@spartan-ng/ui-select-brain';
7
+ import { ClassValue } from 'clsx';
8
+
9
+ @Component({
10
+ selector: 'hlm-select-trigger',
11
+ standalone: true,
12
+ imports: [BrnSelectTriggerDirective, HlmIconComponent],
13
+ providers: [provideIcons({ lucideChevronDown })],
14
+ template: `
15
+ <button [class]="_computedClass()" #button brnSelectTrigger type="button">
16
+ <ng-content />
17
+ @if (icon) {
18
+ <ng-content select="hlm-icon" />
19
+ } @else {
20
+ <hlm-icon class="ml-2 h-4 w-4 flex-none" name="lucideChevronDown" />
21
+ }
22
+ </button>
23
+ `,
24
+ })
25
+ export class HlmSelectTriggerComponent {
26
+ @ViewChild('button', { static: true })
27
+ public buttonEl!: ElementRef;
28
+
29
+ @ContentChild(HlmIconComponent, { static: false })
30
+ protected icon!: HlmIconComponent;
31
+
32
+ private readonly classNames = signal<ClassValue>('');
33
+ // eslint-disable-next-line @angular-eslint/no-input-rename
34
+ @Input({ alias: 'class' })
35
+ set _class(classNames: ClassValue) {
36
+ this.classNames.set(classNames);
37
+ }
38
+ protected readonly _computedClass = computed(() =>
39
+ hlm(
40
+ 'flex h-10 items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 w-[180px]',
41
+ this.classNames(),
42
+ ),
43
+ );
44
+ }
@@ -0,0 +1,26 @@
1
+ import { computed, Directive, Input, signal } from '@angular/core';
2
+ import { hlm } from '@spartan-ng/ui-core';
3
+ import { ClassValue } from 'clsx';
4
+
5
+ @Directive({
6
+ // eslint-disable-next-line @angular-eslint/component-selector
7
+ selector: 'hlm-select-value,[hlmSelectValue], brn-select-value[hlm]',
8
+ standalone: true,
9
+ host: {
10
+ '[class]': '_computedClass()',
11
+ },
12
+ })
13
+ export class HlmSelectValueDirective {
14
+ private readonly classNames = signal<ClassValue>('');
15
+ // eslint-disable-next-line @angular-eslint/no-input-rename
16
+ @Input({ alias: 'class' })
17
+ set _class(classNames: ClassValue) {
18
+ this.classNames.set(classNames);
19
+ }
20
+ protected readonly _computedClass = computed(() =>
21
+ hlm(
22
+ '!inline-block ltr:text-left rtl:text-right border-border w-[calc(100%)]] min-w-0 pointer-events-none truncate',
23
+ this.classNames(),
24
+ ),
25
+ );
26
+ }
@@ -0,0 +1,21 @@
1
+ import { computed, Directive, Input, signal } from '@angular/core';
2
+ import { hlm } from '@spartan-ng/ui-core';
3
+ import { ClassValue } from 'clsx';
4
+
5
+ @Directive({
6
+ // eslint-disable-next-line @angular-eslint/directive-selector
7
+ selector: 'hlm-select, brn-select [hlm]',
8
+ standalone: true,
9
+ host: {
10
+ '[class]': '_computedClass()',
11
+ },
12
+ })
13
+ export class HlmSelectDirective {
14
+ private readonly _classNames = signal<ClassValue>('');
15
+ // eslint-disable-next-line @angular-eslint/no-input-rename
16
+ @Input({ alias: 'class' })
17
+ set _class(classNames: ClassValue) {
18
+ this._classNames.set(classNames);
19
+ }
20
+ protected readonly _computedClass = computed(() => hlm('', this._classNames()));
21
+ }
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { HlmBaseGeneratorSchema } from '../../../base/schema';
3
+ export declare function generator(tree: Tree, options: HlmBaseGeneratorSchema): Promise<import("@nx/devkit").GeneratorCallback>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const generator_1 = require("../../../base/generator");
6
+ function generator(tree, options) {
7
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
+ return yield (0, generator_1.default)(tree, Object.assign(Object.assign({}, options), { primitiveName: 'select', internalName: 'ui-select-helm', publicName: 'ui-select-helm' }));
9
+ });
10
+ }
11
+ exports.generator = generator;
12
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/ui-select-helm/generator.ts"],"names":[],"mappings":";;;;AACA,uDAAuD;AAGvD,SAAsB,SAAS,CAAC,IAAU,EAAE,OAA+B;;QAC1E,OAAO,MAAM,IAAA,mBAAgB,EAAC,IAAI,kCAC9B,OAAO,KACV,aAAa,EAAE,QAAQ,EACvB,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,gBAAgB,IAC3B,CAAC;IACJ,CAAC;CAAA;AAPD,8BAOC"}
@@ -1,4 +1,4 @@
1
- import { Directive, Input, computed, signal } from '@angular/core';
1
+ import { Directive, Input, computed, input, signal } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -17,18 +17,12 @@ export class HlmSeparatorDirective {
17
17
  this._orientation.set(value);
18
18
  }
19
19
 
20
- private readonly _userCls = signal<ClassValue>('');
21
- @Input()
22
- set class(userCls: ClassValue) {
23
- this._userCls.set(userCls);
24
- }
25
-
26
- protected _computedClass = computed(() => this._generateClass());
27
- private _generateClass() {
28
- return hlm(
20
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
21
+ protected _computedClass = computed(() =>
22
+ hlm(
29
23
  'inline-flex shrink-0 border-0 bg-border',
30
24
  this._orientation() === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',
31
- this._userCls(),
32
- );
33
- }
25
+ this.userClass(),
26
+ ),
27
+ );
34
28
  }
@@ -1,4 +1,4 @@
1
- import { Directive, Input, computed, signal } from '@angular/core';
1
+ import { Directive, computed, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -10,17 +10,11 @@ import { ClassValue } from 'clsx';
10
10
  },
11
11
  })
12
12
  export class HlmSheetCloseDirective {
13
- private readonly _userCls = signal<ClassValue>('');
14
- @Input()
15
- set class(userCls: ClassValue) {
16
- this._userCls.set(userCls);
17
- }
18
-
19
- protected _computedClass = computed(() => this._generateClass());
20
- private _generateClass() {
21
- return hlm(
13
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
+ protected _computedClass = computed(() =>
15
+ hlm(
22
16
  'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',
23
- this._userCls(),
24
- );
25
- }
17
+ this.userClass(),
18
+ ),
19
+ );
26
20
  }
@@ -1,5 +1,5 @@
1
- import { Component, computed, effect, ElementRef, inject, Input, Renderer2, signal } from '@angular/core';
2
- import { radixCross1 } from '@ng-icons/radix-icons';
1
+ import { Component, ElementRef, Renderer2, computed, effect, inject, input, signal } from '@angular/core';
2
+ import { lucideX } from '@ng-icons/lucide';
3
3
  import { hlm, injectExposedSideProvider, injectExposesStateProvider } from '@spartan-ng/ui-core';
4
4
  import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
5
5
  import { BrnSheetCloseDirective } from '@spartan-ng/ui-sheet-brain';
@@ -30,7 +30,7 @@ export const sheetVariants = cva(
30
30
  selector: 'hlm-sheet-content',
31
31
  standalone: true,
32
32
  imports: [HlmSheetCloseDirective, BrnSheetCloseDirective, HlmIconComponent],
33
- providers: [provideIcons({ radixCross1 })],
33
+ providers: [provideIcons({ lucideX })],
34
34
  host: {
35
35
  '[class]': '_computedClass()',
36
36
  '[attr.data-state]': 'state()',
@@ -39,7 +39,7 @@ export const sheetVariants = cva(
39
39
  <ng-content />
40
40
  <button brnSheetClose hlm>
41
41
  <span class="sr-only">Close</span>
42
- <hlm-icon class="flex h-4 w-4" size="100%" name="radixCross1" />
42
+ <hlm-icon class="flex h-4 w-4" size="100%" name="lucideX" />
43
43
  </button>
44
44
  `,
45
45
  })
@@ -56,14 +56,6 @@ export class HlmSheetContentComponent {
56
56
  });
57
57
  }
58
58
 
59
- private readonly _userCls = signal<ClassValue>('');
60
- @Input()
61
- set class(userCls: ClassValue) {
62
- this._userCls.set(userCls);
63
- }
64
-
65
- protected _computedClass = computed(() => this._generateClass());
66
- private _generateClass() {
67
- return hlm(sheetVariants({ side: this._sideProvider.side() }), this._userCls());
68
- }
59
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
60
+ protected _computedClass = computed(() => hlm(sheetVariants({ side: this._sideProvider.side() }), this.userClass()));
69
61
  }
@@ -1,4 +1,4 @@
1
- import { computed, Directive, Input, signal } from '@angular/core';
1
+ import { computed, Directive, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnSheetDescriptionDirective } from '@spartan-ng/ui-sheet-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -12,14 +12,6 @@ import { ClassValue } from 'clsx';
12
12
  hostDirectives: [BrnSheetDescriptionDirective],
13
13
  })
14
14
  export class HlmSheetDescriptionDirective {
15
- private readonly _userCls = signal<ClassValue>('');
16
- @Input()
17
- set class(userCls: ClassValue) {
18
- this._userCls.set(userCls);
19
- }
20
-
21
- protected _computedClass = computed(() => this._generateClass());
22
- private _generateClass() {
23
- return hlm('text-sm text-muted-foreground', this._userCls);
24
- }
15
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
+ protected _computedClass = computed(() => hlm('text-sm text-muted-foreground', this.userClass()));
25
17
  }
@@ -1,4 +1,4 @@
1
- import { Component, Input, computed, signal } from '@angular/core';
1
+ import { Component, computed, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -13,14 +13,8 @@ import { ClassValue } from 'clsx';
13
13
  },
14
14
  })
15
15
  export class HlmSheetFooterComponent {
16
- private readonly _userCls = signal<ClassValue>('');
17
- @Input()
18
- set class(userCls: ClassValue) {
19
- this._userCls.set(userCls);
20
- }
21
-
22
- protected _computedClass = computed(() => this._generateClass());
23
- private _generateClass() {
24
- return hlm('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this._userCls());
25
- }
16
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
17
+ protected _computedClass = computed(() =>
18
+ hlm('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.userClass()),
19
+ );
26
20
  }
@@ -1,4 +1,4 @@
1
- import { Component, Input, computed, signal } from '@angular/core';
1
+ import { Component, computed, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -13,14 +13,6 @@ import { ClassValue } from 'clsx';
13
13
  },
14
14
  })
15
15
  export class HlmSheetHeaderComponent {
16
- private readonly _userCls = signal<ClassValue>('');
17
- @Input()
18
- set class(userCls: ClassValue) {
19
- this._userCls.set(userCls);
20
- }
21
-
22
- protected _computedClass = computed(() => this._generateClass());
23
- private _generateClass() {
24
- return hlm('flex flex-col space-y-2 text-center sm:text-left', this._userCls());
25
- }
16
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
17
+ protected _computedClass = computed(() => hlm('flex flex-col space-y-2 text-center sm:text-left', this.userClass()));
26
18
  }
@@ -1,4 +1,4 @@
1
- import { Directive, Input, computed, signal } from '@angular/core';
1
+ import { Directive, computed, effect, input } from '@angular/core';
2
2
  import { hlm, injectCustomClassSettable } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -11,23 +11,17 @@ import { ClassValue } from 'clsx';
11
11
  })
12
12
  export class HlmSheetOverlayDirective {
13
13
  private _classSettable = injectCustomClassSettable({ optional: true, host: true });
14
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
15
+ protected _computedClass = computed(() =>
16
+ hlm(
17
+ 'bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',
18
+ this.userClass(),
19
+ ),
20
+ );
14
21
 
15
22
  constructor() {
16
- this._classSettable?.setClassToCustomElement(this._computedClass());
17
- }
18
-
19
- private readonly _userCls = signal<ClassValue>('');
20
- @Input()
21
- set class(userCls: ClassValue) {
22
- this._userCls.set(userCls);
23
- this._classSettable?.setClassToCustomElement(this._computedClass());
24
- }
25
-
26
- protected _computedClass = computed(() => this._generateClass());
27
- private _generateClass() {
28
- return hlm(
29
- 'bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',
30
- this._userCls(),
31
- );
23
+ effect(() => {
24
+ this._classSettable?.setClassToCustomElement(this._computedClass());
25
+ });
32
26
  }
33
27
  }
@@ -1,4 +1,4 @@
1
- import { computed, Directive, Input, signal } from '@angular/core';
1
+ import { computed, Directive, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnSheetTitleDirective } from '@spartan-ng/ui-sheet-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -12,14 +12,6 @@ import { ClassValue } from 'clsx';
12
12
  hostDirectives: [BrnSheetTitleDirective],
13
13
  })
14
14
  export class HlmSheetTitleDirective {
15
- private readonly _userCls = signal<ClassValue>('');
16
- @Input()
17
- set class(userCls: ClassValue) {
18
- this._userCls.set(userCls);
19
- }
20
-
21
- protected _computedClass = computed(() => this._generateClass());
22
- private _generateClass() {
23
- return hlm('text-lg font-semibold', this._userCls());
24
- }
15
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
+ protected _computedClass = computed(() => hlm('text-lg font-semibold', this.userClass()));
25
17
  }
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';
2
- import { BrnDialogComponent, provideBrnDialog } from '@spartan-ng/ui-dialog-brain';
2
+ import { BrnDialogComponent } from '@spartan-ng/ui-dialog-brain';
3
3
  import { BrnSheetComponent, BrnSheetOverlayComponent } from '@spartan-ng/ui-sheet-brain';
4
4
  import { HlmSheetOverlayDirective } from './hlm-sheet-overlay.directive';
5
5
 
@@ -8,7 +8,6 @@ import { HlmSheetOverlayDirective } from './hlm-sheet-overlay.directive';
8
8
  standalone: true,
9
9
  imports: [BrnSheetOverlayComponent, HlmSheetOverlayDirective],
10
10
  providers: [
11
- provideBrnDialog(),
12
11
  {
13
12
  provide: BrnDialogComponent,
14
13
  useExisting: forwardRef(() => BrnSheetComponent),
@@ -1,4 +1,4 @@
1
- import { Component, Input, computed, signal } from '@angular/core';
1
+ import { Component, computed, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -11,14 +11,6 @@ import { ClassValue } from 'clsx';
11
11
  },
12
12
  })
13
13
  export class HlmSkeletonComponent {
14
- private readonly _userCls = signal<ClassValue>('');
15
- @Input()
16
- set class(userCls: ClassValue) {
17
- this._userCls.set(userCls);
18
- }
19
-
20
- protected _computedClass = computed(() => this._generateClass());
21
- private _generateClass() {
22
- return hlm('block animate-pulse rounded-md bg-muted', this._userCls());
23
- }
14
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
15
+ protected _computedClass = computed(() => hlm('block animate-pulse rounded-md bg-muted', this.userClass()));
24
16
  }
@@ -1,4 +1,4 @@
1
- import { Component, computed, Input, signal } from '@angular/core';
1
+ import { Component, computed, input, Input, signal } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { cva, VariantProps } from 'class-variance-authority';
4
4
  import { ClassValue } from 'clsx';
@@ -12,6 +12,8 @@ export const spinnerVariants = cva('inline-block', {
12
12
  xs: 'h-4 w-4',
13
13
  sm: 'h-6 w-6',
14
14
  default: 'w-8 h-8 ',
15
+ lg: 'w-12 h-12',
16
+ xl: 'w-16 h-16',
15
17
  },
16
18
  },
17
19
  defaultVariants: {
@@ -49,14 +51,6 @@ export class HlmSpinnerComponent {
49
51
  this._size.set(value);
50
52
  }
51
53
 
52
- private readonly _userCls = signal<ClassValue>('');
53
- @Input()
54
- set class(userCls: ClassValue) {
55
- this._userCls.set(userCls);
56
- }
57
-
58
- protected _computedClass = computed(() => this._generateClass());
59
- private _generateClass() {
60
- return hlm(spinnerVariants({ size: this._size() }), this._userCls());
61
- }
54
+ public readonly userClass = input<ClassValue>('', { alias: 'class' });
55
+ protected _computedClass = computed(() => hlm(spinnerVariants({ size: this._size() }), this.userClass()));
62
56
  }