@spartan-ng/cli 0.0.1-alpha.557 → 0.0.1-alpha.558

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 (114) hide show
  1. package/package.json +1 -1
  2. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-content.ts.template +1 -1
  3. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-item.ts.template +3 -3
  4. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-trigger.ts.template +1 -1
  5. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion.ts.template +1 -1
  6. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-cancel-button.ts.template +1 -1
  7. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-content.ts.template +1 -1
  8. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-description.ts.template +1 -1
  9. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-footer.ts.template +4 -4
  10. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-header.ts.template +4 -4
  11. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-title.ts.template +1 -1
  12. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog.ts.template +6 -6
  13. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-group.ts.template +2 -2
  14. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-item.ts.template +4 -4
  15. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-list.ts.template +5 -5
  16. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete.ts.template +1 -1
  17. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-ellipsis.ts.template +1 -1
  18. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-separator.ts.template +1 -1
  19. package/src/generators/ui/libs/button-group/files/lib/hlm-button-group-separator.ts.template +1 -1
  20. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar-multi.ts.template +1 -1
  21. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar-range.ts.template +1 -1
  22. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar.ts.template +1 -1
  23. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-next.ts.template +3 -3
  24. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-previous.ts.template +3 -3
  25. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-slide-display.ts.template +4 -4
  26. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel.ts.template +1 -1
  27. package/src/generators/ui/libs/checkbox/files/lib/hlm-checkbox.ts.template +11 -11
  28. package/src/generators/ui/libs/command/files/lib/hlm-command-dialog-close-button.ts.template +1 -1
  29. package/src/generators/ui/libs/command/files/lib/hlm-command-group-label.ts.template +2 -2
  30. package/src/generators/ui/libs/command/files/lib/hlm-command-group.ts.template +2 -2
  31. package/src/generators/ui/libs/command/files/lib/hlm-command-icon.ts.template +1 -1
  32. package/src/generators/ui/libs/command/files/lib/hlm-command-item.ts.template +4 -4
  33. package/src/generators/ui/libs/command/files/lib/hlm-command-list.ts.template +5 -5
  34. package/src/generators/ui/libs/command/files/lib/hlm-command-search-input.ts.template +2 -2
  35. package/src/generators/ui/libs/command/files/lib/hlm-command-search.ts.template +5 -5
  36. package/src/generators/ui/libs/command/files/lib/hlm-command-separator.ts.template +2 -2
  37. package/src/generators/ui/libs/command/files/lib/hlm-command-shortcut.ts.template +2 -2
  38. package/src/generators/ui/libs/command/files/lib/hlm-command.ts.template +4 -4
  39. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-multi.ts.template +4 -4
  40. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker.ts.template +4 -4
  41. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-range-picker.ts.template +4 -4
  42. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-content.ts.template +1 -1
  43. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-description.ts.template +1 -1
  44. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-footer.ts.template +4 -4
  45. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-header.ts.template +4 -4
  46. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog.ts.template +2 -2
  47. package/src/generators/ui/libs/field/files/lib/hlm-field-error.ts.template +1 -1
  48. package/src/generators/ui/libs/field/files/lib/hlm-field-separator.ts.template +1 -1
  49. package/src/generators/ui/libs/form-field/files/lib/hlm-form-field.ts.template +4 -4
  50. package/src/generators/ui/libs/hover-card/files/lib/hlm-hover-card-content.ts.template +1 -1
  51. package/src/generators/ui/libs/input/files/lib/hlm-input.ts.template +3 -3
  52. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-fake-caret.ts.template +1 -1
  53. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-separator.ts.template +4 -4
  54. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-slot.ts.template +5 -5
  55. package/src/generators/ui/libs/menu/files/lib/hlm-menu-bar-item.ts.template +1 -1
  56. package/src/generators/ui/libs/menu/files/lib/hlm-menu-bar.ts.template +2 -2
  57. package/src/generators/ui/libs/menu/files/lib/hlm-menu-group.ts.template +2 -2
  58. package/src/generators/ui/libs/menu/files/lib/hlm-menu-item-check.ts.template +5 -5
  59. package/src/generators/ui/libs/menu/files/lib/hlm-menu-item-checkbox.ts.template +3 -3
  60. package/src/generators/ui/libs/menu/files/lib/hlm-menu-item-radio-indicator.ts.template +5 -5
  61. package/src/generators/ui/libs/menu/files/lib/hlm-menu-item-radio.ts.template +3 -3
  62. package/src/generators/ui/libs/menu/files/lib/hlm-menu-item-sub-indicator.ts.template +5 -5
  63. package/src/generators/ui/libs/menu/files/lib/hlm-menu-item.ts.template +5 -5
  64. package/src/generators/ui/libs/menu/files/lib/hlm-menu-label.ts.template +4 -4
  65. package/src/generators/ui/libs/menu/files/lib/hlm-menu-separator.ts.template +2 -2
  66. package/src/generators/ui/libs/menu/files/lib/hlm-menu-shortcut.ts.template +4 -4
  67. package/src/generators/ui/libs/menu/files/lib/hlm-menu.ts.template +2 -2
  68. package/src/generators/ui/libs/menu/files/lib/hlm-sub-menu.ts.template +2 -2
  69. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-item.ts.template +1 -1
  70. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-link.ts.template +1 -1
  71. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-list.ts.template +3 -3
  72. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-trigger.ts.template +1 -1
  73. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu.ts.template +3 -3
  74. package/src/generators/ui/libs/pagination/files/lib/hlm-numbered-pagination-query-params.ts.template +13 -13
  75. package/src/generators/ui/libs/pagination/files/lib/hlm-numbered-pagination.ts.template +13 -13
  76. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-ellipsis.ts.template +1 -1
  77. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-next.ts.template +1 -1
  78. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-previous.ts.template +1 -1
  79. package/src/generators/ui/libs/progress/files/lib/hlm-progress-indicator.ts.template +1 -1
  80. package/src/generators/ui/libs/progress/files/lib/hlm-progress.ts.template +1 -1
  81. package/src/generators/ui/libs/radio-group/files/lib/hlm-radio-group.ts.template +1 -1
  82. package/src/generators/ui/libs/radio-group/files/lib/hlm-radio-indicator.ts.template +1 -1
  83. package/src/generators/ui/libs/radio-group/files/lib/hlm-radio.ts.template +9 -9
  84. package/src/generators/ui/libs/resizable/files/lib/hlm-resizable-group.ts.template +4 -4
  85. package/src/generators/ui/libs/resizable/files/lib/hlm-resizable-handle.ts.template +5 -5
  86. package/src/generators/ui/libs/resizable/files/lib/hlm-resizable-panel.ts.template +4 -4
  87. package/src/generators/ui/libs/select/files/lib/hlm-select-option.ts.template +2 -2
  88. package/src/generators/ui/libs/select/files/lib/hlm-select-scroll-down.ts.template +1 -1
  89. package/src/generators/ui/libs/select/files/lib/hlm-select-scroll-up.ts.template +1 -1
  90. package/src/generators/ui/libs/select/files/lib/hlm-select-trigger.ts.template +1 -1
  91. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-content.ts.template +1 -1
  92. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-description.ts.template +1 -1
  93. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-footer.ts.template +4 -4
  94. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-header.ts.template +4 -4
  95. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-title.ts.template +1 -1
  96. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet.ts.template +2 -2
  97. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-action.ts.template +2 -1
  98. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-button.ts.template +2 -1
  99. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-skeleton.ts.template +10 -11
  100. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-sub-button.ts.template +2 -1
  101. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-trigger.ts.template +4 -4
  102. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar.ts.template +9 -9
  103. package/src/generators/ui/libs/slider/files/lib/hlm-slider.ts.template +4 -4
  104. package/src/generators/ui/libs/sonner/files/lib/hlm-toaster.ts.template +1 -1
  105. package/src/generators/ui/libs/spinner/files/lib/hlm-spinner.ts.template +1 -1
  106. package/src/generators/ui/libs/switch/files/lib/hlm-switch.ts.template +2 -2
  107. package/src/generators/ui/libs/table/files/lib/hlm-table.ts.template +0 -1
  108. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-list.ts.template +2 -2
  109. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-paginated-list.ts.template +4 -4
  110. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs.ts.template +2 -2
  111. package/src/generators/ui/libs/textarea/files/lib/hlm-textarea.ts.template +4 -4
  112. package/src/generators/ui/libs/toggle-group/files/lib/hlm-toggle-group.ts.template +1 -1
  113. package/src/generators/ui/libs/tooltip/files/lib/hlm-tooltip.ts.template +1 -1
  114. package/src/generators/ui/supported-ui-libraries.json +37 -36
@@ -5,9 +5,7 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Component({
7
7
  selector: 'hlm-command',
8
- template: `
9
- <ng-content />
10
- `,
8
+ changeDetection: ChangeDetectionStrategy.OnPush,
11
9
  hostDirectives: [
12
10
  {
13
11
  directive: BrnCommand,
@@ -18,7 +16,9 @@ import type { ClassValue } from 'clsx';
18
16
  host: {
19
17
  '[class]': '_computedClass()',
20
18
  },
21
- changeDetection: ChangeDetectionStrategy.OnPush,
19
+ template: `
20
+ <ng-content />
21
+ `,
22
22
  })
23
23
  export class HlmCommand {
24
24
  /** The user defined class */
@@ -36,6 +36,10 @@ let nextId = 0;
36
36
  selector: 'hlm-date-picker-multi',
37
37
  imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendarMulti],
38
38
  providers: [HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR, provideIcons({ lucideChevronDown })],
39
+ changeDetection: ChangeDetectionStrategy.OnPush,
40
+ host: {
41
+ class: 'block',
42
+ },
39
43
  template: `
40
44
  <brn-popover sideOffset="5" [state]="_popoverState()" (stateChanged)="_popoverState.set($event)">
41
45
  <button
@@ -71,10 +75,6 @@ let nextId = 0;
71
75
  </div>
72
76
  </brn-popover>
73
77
  `,
74
- host: {
75
- class: 'block',
76
- },
77
- changeDetection: ChangeDetectionStrategy.OnPush,
78
78
  })
79
79
  export class HlmDatePickerMulti<T> implements ControlValueAccessor {
80
80
  private readonly _config = injectHlmDatePickerMultiConfig<T>();
@@ -35,6 +35,10 @@ let nextId = 0;
35
35
  selector: 'hlm-date-picker',
36
36
  imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendar],
37
37
  providers: [HLM_DATE_PICKER_VALUE_ACCESSOR, provideIcons({ lucideChevronDown })],
38
+ changeDetection: ChangeDetectionStrategy.OnPush,
39
+ host: {
40
+ class: 'block',
41
+ },
38
42
  template: `
39
43
  <brn-popover sideOffset="5" [state]="_popoverState()" (stateChanged)="_popoverState.set($event)">
40
44
  <button
@@ -68,10 +72,6 @@ let nextId = 0;
68
72
  </div>
69
73
  </brn-popover>
70
74
  `,
71
- host: {
72
- class: 'block',
73
- },
74
- changeDetection: ChangeDetectionStrategy.OnPush,
75
75
  })
76
76
  export class HlmDatePicker<T> implements ControlValueAccessor {
77
77
  private readonly _config = injectHlmDatePickerConfig<T>();
@@ -36,6 +36,10 @@ let nextId = 0;
36
36
  selector: 'hlm-date-range-picker',
37
37
  imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendarRange],
38
38
  providers: [HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR, provideIcons({ lucideChevronDown })],
39
+ changeDetection: ChangeDetectionStrategy.OnPush,
40
+ host: {
41
+ class: 'block',
42
+ },
39
43
  template: `
40
44
  <brn-popover
41
45
  sideOffset="5"
@@ -76,10 +80,6 @@ let nextId = 0;
76
80
  </div>
77
81
  </brn-popover>
78
82
  `,
79
- host: {
80
- class: 'block',
81
- },
82
- changeDetection: ChangeDetectionStrategy.OnPush,
83
83
  })
84
84
  export class HlmDateRangePicker<T> implements ControlValueAccessor {
85
85
  private readonly _config = injectHlmDateRangePickerConfig<T>();
@@ -12,6 +12,7 @@ import { HlmDialogClose } from './hlm-dialog-close';
12
12
  selector: 'hlm-dialog-content',
13
13
  imports: [NgComponentOutlet, BrnDialogClose, HlmDialogClose, NgIcon, HlmIcon],
14
14
  providers: [provideIcons({ lucideX })],
15
+ changeDetection: ChangeDetectionStrategy.OnPush,
15
16
  host: {
16
17
  '[class]': '_computedClass()',
17
18
  '[attr.data-state]': 'state()',
@@ -28,7 +29,6 @@ import { HlmDialogClose } from './hlm-dialog-close';
28
29
  <ng-icon hlm size="sm" name="lucideX" />
29
30
  </button>
30
31
  `,
31
- changeDetection: ChangeDetectionStrategy.OnPush,
32
32
  })
33
33
  export class HlmDialogContent {
34
34
  private readonly _dialogRef = inject(BrnDialogRef);
@@ -5,10 +5,10 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: '[hlmDialogDescription]',
8
+ hostDirectives: [BrnDialogDescription],
8
9
  host: {
9
10
  '[class]': '_computedClass()',
10
11
  },
11
- hostDirectives: [BrnDialogDescription],
12
12
  })
13
13
  export class HlmDialogDescription {
14
14
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -4,13 +4,13 @@ import type { ClassValue } from 'clsx';
4
4
 
5
5
  @Component({
6
6
  selector: 'hlm-dialog-footer',
7
- template: `
8
- <ng-content />
9
- `,
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
8
  host: {
11
9
  '[class]': '_computedClass()',
12
10
  },
13
- changeDetection: ChangeDetectionStrategy.OnPush,
11
+ template: `
12
+ <ng-content />
13
+ `,
14
14
  })
15
15
  export class HlmDialogFooter {
16
16
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -4,13 +4,13 @@ import type { ClassValue } from 'clsx';
4
4
 
5
5
  @Component({
6
6
  selector: 'hlm-dialog-header',
7
- template: `
8
- <ng-content />
9
- `,
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
8
  host: {
11
9
  '[class]': '_computedClass()',
12
10
  },
13
- changeDetection: ChangeDetectionStrategy.OnPush,
11
+ template: `
12
+ <ng-content />
13
+ `,
14
14
  })
15
15
  export class HlmDialogHeader {
16
16
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -4,6 +4,7 @@ import { HlmDialogOverlay } from './hlm-dialog-overlay';
4
4
 
5
5
  @Component({
6
6
  selector: 'hlm-dialog',
7
+ exportAs: 'hlmDialog',
7
8
  imports: [BrnDialogOverlay, HlmDialogOverlay],
8
9
  providers: [
9
10
  {
@@ -14,11 +15,10 @@ import { HlmDialogOverlay } from './hlm-dialog-overlay';
14
15
  // add custom options here
15
16
  }),
16
17
  ],
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
19
  template: `
18
20
  <brn-dialog-overlay hlm />
19
21
  <ng-content />
20
22
  `,
21
- changeDetection: ChangeDetectionStrategy.OnPush,
22
- exportAs: 'hlmDialog',
23
23
  })
24
24
  export class HlmDialog extends BrnDialog {}
@@ -4,6 +4,7 @@ import { ClassValue } from 'clsx';
4
4
 
5
5
  @Component({
6
6
  selector: 'hlm-field-error',
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
7
8
  template: `
8
9
  <div role="alert" data-slot="field-error" [class]="_computedClass()">
9
10
  <ng-content>
@@ -21,7 +22,6 @@ import { ClassValue } from 'clsx';
21
22
  </ng-content>
22
23
  </div>
23
24
  `,
24
- changeDetection: ChangeDetectionStrategy.OnPush,
25
25
  })
26
26
  export class HlmFieldError {
27
27
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -6,6 +6,7 @@ import { ClassValue } from 'clsx';
6
6
  @Component({
7
7
  selector: 'hlm-field-separator',
8
8
  imports: [HlmSeparator],
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
9
10
  host: {
10
11
  'data-slot': 'field-separator',
11
12
  '[class]': '_computedClass()',
@@ -19,7 +20,6 @@ import { ClassValue } from 'clsx';
19
20
  <ng-content />
20
21
  </span>
21
22
  `,
22
- changeDetection: ChangeDetectionStrategy.OnPush,
23
23
  })
24
24
  export class HlmFieldSeparator {
25
25
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -14,6 +14,10 @@ import { HlmError } from './hlm-error';
14
14
 
15
15
  @Component({
16
16
  selector: 'hlm-form-field',
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ host: {
19
+ '[class]': '_computedClass()',
20
+ },
17
21
  template: `
18
22
  <ng-content />
19
23
 
@@ -26,10 +30,6 @@ import { HlmError } from './hlm-error';
26
30
  }
27
31
  }
28
32
  `,
29
- host: {
30
- '[class]': '_computedClass()',
31
- },
32
- changeDetection: ChangeDetectionStrategy.OnPush,
33
33
  })
34
34
  export class HlmFormField {
35
35
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -15,13 +15,13 @@ import type { ClassValue } from 'clsx';
15
15
 
16
16
  @Component({
17
17
  selector: 'hlm-hover-card-content',
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
19
  host: {
19
20
  '[class]': '_computedClass()',
20
21
  },
21
22
  template: `
22
23
  <ng-content />
23
24
  `,
24
- changeDetection: ChangeDetectionStrategy.OnPush,
25
25
  })
26
26
  export class HlmHoverCardContent {
27
27
  private readonly _renderer = inject(Renderer2);
@@ -36,15 +36,15 @@ type InputVariants = VariantProps<typeof inputVariants>;
36
36
 
37
37
  @Directive({
38
38
  selector: '[hlmInput]',
39
- host: {
40
- '[class]': '_computedClass()',
41
- },
42
39
  providers: [
43
40
  {
44
41
  provide: BrnFormFieldControl,
45
42
  useExisting: forwardRef(() => HlmInput),
46
43
  },
47
44
  ],
45
+ host: {
46
+ '[class]': '_computedClass()',
47
+ },
48
48
  })
49
49
  export class HlmInput implements BrnFormFieldControl, DoCheck {
50
50
  private readonly _injector = inject(Injector);
@@ -2,11 +2,11 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
 
3
3
  @Component({
4
4
  selector: 'hlm-input-otp-fake-caret',
5
+ changeDetection: ChangeDetectionStrategy.OnPush,
5
6
  template: `
6
7
  <div class="pointer-events-none absolute inset-0 flex items-center justify-center">
7
8
  <div class="animate-caret-blink bg-foreground h-4 w-px duration-1000"></div>
8
9
  </div>
9
10
  `,
10
- changeDetection: ChangeDetectionStrategy.OnPush,
11
11
  })
12
12
  export class HlmInputOtpFakeCaret {}
@@ -9,15 +9,15 @@ import type { ClassValue } from 'clsx';
9
9
  selector: 'hlm-input-otp-separator',
10
10
  imports: [HlmIcon, NgIcon],
11
11
  providers: [provideIcons({ lucideMinus })],
12
- template: `
13
- <ng-icon hlm name="lucideMinus" />
14
- `,
12
+ changeDetection: ChangeDetectionStrategy.OnPush,
15
13
  host: {
16
14
  role: 'separator',
17
15
  'data-slot': 'input-otp-separator',
18
16
  '[class]': '_computedClass()',
19
17
  },
20
- changeDetection: ChangeDetectionStrategy.OnPush,
18
+ template: `
19
+ <ng-icon hlm name="lucideMinus" />
20
+ `,
21
21
  })
22
22
  export class HlmInputOtpSeparator {
23
23
  public readonly userClass = input<ClassValue>('inline-flex', { alias: 'class' });
@@ -8,16 +8,16 @@ import { HlmInputOtpFakeCaret } from './hlm-input-otp-fake-caret';
8
8
  @Component({
9
9
  selector: 'hlm-input-otp-slot',
10
10
  imports: [BrnInputOtpSlot, HlmInputOtpFakeCaret],
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ host: {
13
+ 'data-slot': 'input-otp-slot',
14
+ '[class]': '_computedClass()',
15
+ },
11
16
  template: `
12
17
  <brn-input-otp-slot [index]="index()">
13
18
  <hlm-input-otp-fake-caret />
14
19
  </brn-input-otp-slot>
15
20
  `,
16
- host: {
17
- 'data-slot': 'input-otp-slot',
18
- '[class]': '_computedClass()',
19
- },
20
- changeDetection: ChangeDetectionStrategy.OnPush,
21
21
  })
22
22
  export class HlmInputOtpSlot {
23
23
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,10 +5,10 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: '[hlmMenuBarItem]',
8
+ hostDirectives: [BrnMenuItem],
8
9
  host: {
9
10
  '[class]': '_computedClass()',
10
11
  },
11
- hostDirectives: [BrnMenuItem],
12
12
  })
13
13
  export class HlmMenuBarItem {
14
14
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,12 +5,12 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Component({
7
7
  selector: 'hlm-menu-bar',
8
+ changeDetection: ChangeDetectionStrategy.OnPush,
9
+ hostDirectives: [BrnMenuBar],
8
10
  host: {
9
11
  '[class]': '_computedClass()',
10
12
  },
11
- hostDirectives: [BrnMenuBar],
12
13
  template: '<ng-content/>',
13
- changeDetection: ChangeDetectionStrategy.OnPush,
14
14
  })
15
15
  export class HlmMenuBar {
16
16
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -3,13 +3,13 @@ import { BrnMenuGroup } from '@spartan-ng/brain/menu';
3
3
 
4
4
  @Component({
5
5
  selector: 'hlm-menu-group',
6
+ changeDetection: ChangeDetectionStrategy.OnPush,
7
+ hostDirectives: [BrnMenuGroup],
6
8
  host: {
7
9
  class: 'block',
8
10
  },
9
- hostDirectives: [BrnMenuGroup],
10
11
  template: `
11
12
  <ng-content />
12
13
  `,
13
- changeDetection: ChangeDetectionStrategy.OnPush,
14
14
  })
15
15
  export class HlmMenuGroup {}
@@ -7,16 +7,16 @@ import type { ClassValue } from 'clsx';
7
7
 
8
8
  @Component({
9
9
  selector: 'hlm-menu-item-check',
10
- providers: [provideIcons({ lucideCheck })],
11
10
  imports: [NgIcon, HlmIcon],
11
+ providers: [provideIcons({ lucideCheck })],
12
+ changeDetection: ChangeDetectionStrategy.OnPush,
13
+ host: {
14
+ '[class]': '_computedClass()',
15
+ },
12
16
  template: `
13
17
  <!-- Using 1rem for size to mimick h-4 w-4 -->
14
18
  <ng-icon hlm size="1rem" name="lucideCheck" />
15
19
  `,
16
- host: {
17
- '[class]': '_computedClass()',
18
- },
19
- changeDetection: ChangeDetectionStrategy.OnPush,
20
20
  })
21
21
  export class HlmMenuItemCheck {
22
22
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,9 +5,6 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: '[hlmMenuItemCheckbox]',
8
- host: {
9
- '[class]': '_computedClass()',
10
- },
11
8
  hostDirectives: [
12
9
  {
13
10
  directive: BrnMenuItemCheckbox,
@@ -15,6 +12,9 @@ import type { ClassValue } from 'clsx';
15
12
  outputs: ['triggered: triggered'],
16
13
  },
17
14
  ],
15
+ host: {
16
+ '[class]': '_computedClass()',
17
+ },
18
18
  })
19
19
  export class HlmMenuItemCheckbox {
20
20
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -7,16 +7,16 @@ import type { ClassValue } from 'clsx';
7
7
 
8
8
  @Component({
9
9
  selector: 'hlm-menu-item-radio',
10
- providers: [provideIcons({ lucideCircle })],
11
10
  imports: [NgIcon, HlmIcon],
11
+ providers: [provideIcons({ lucideCircle })],
12
+ changeDetection: ChangeDetectionStrategy.OnPush,
13
+ host: {
14
+ '[class]': '_computedClass()',
15
+ },
12
16
  template: `
13
17
  <!-- Using 0.5rem for size to mimick h-2 w-2 -->
14
18
  <ng-icon hlm size="0.5rem" class="*:*:fill-current" name="lucideCircle" />
15
19
  `,
16
- host: {
17
- '[class]': '_computedClass()',
18
- },
19
- changeDetection: ChangeDetectionStrategy.OnPush,
20
20
  })
21
21
  export class HlmMenuItemRadioIndicator {
22
22
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,9 +5,6 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: '[hlmMenuItemRadio]',
8
- host: {
9
- '[class]': '_computedClass()',
10
- },
11
8
  hostDirectives: [
12
9
  {
13
10
  directive: BrnMenuItemRadio,
@@ -15,6 +12,9 @@ import type { ClassValue } from 'clsx';
15
12
  outputs: ['triggered: triggered'],
16
13
  },
17
14
  ],
15
+ host: {
16
+ '[class]': '_computedClass()',
17
+ },
18
18
  })
19
19
  export class HlmMenuItemRadio {
20
20
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -7,15 +7,15 @@ import type { ClassValue } from 'clsx';
7
7
 
8
8
  @Component({
9
9
  selector: 'hlm-menu-item-sub-indicator',
10
- providers: [provideIcons({ lucideChevronRight })],
11
10
  imports: [NgIcon, HlmIcon],
12
- template: `
13
- <ng-icon hlm size="sm" name="lucideChevronRight" class="text-popover-foreground" />
14
- `,
11
+ providers: [provideIcons({ lucideChevronRight })],
12
+ changeDetection: ChangeDetectionStrategy.OnPush,
15
13
  host: {
16
14
  '[class]': '_computedClass()',
17
15
  },
18
- changeDetection: ChangeDetectionStrategy.OnPush,
16
+ template: `
17
+ <ng-icon hlm size="sm" name="lucideChevronRight" class="text-popover-foreground" />
18
+ `,
19
19
  })
20
20
  export class HlmMenuItemSubIndicator {
21
21
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -6,11 +6,6 @@ import type { ClassValue } from 'clsx';
6
6
 
7
7
  @Directive({
8
8
  selector: '[hlmMenuItem]',
9
- host: {
10
- '[class]': '_computedClass()',
11
- '[attr.data-variant]': 'variant()',
12
- '[attr.data-inset]': 'inset() ? "" : null',
13
- },
14
9
  hostDirectives: [
15
10
  {
16
11
  directive: BrnMenuItem,
@@ -18,6 +13,11 @@ import type { ClassValue } from 'clsx';
18
13
  outputs: ['triggered: triggered'],
19
14
  },
20
15
  ],
16
+ host: {
17
+ '[class]': '_computedClass()',
18
+ '[attr.data-variant]': 'variant()',
19
+ '[attr.data-inset]': 'inset() ? "" : null',
20
+ },
21
21
  })
22
22
  export class HlmMenuItem {
23
23
  public readonly variant = input<'default' | 'destructive'>('default');
@@ -5,14 +5,14 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Component({
7
7
  selector: 'hlm-menu-label',
8
- template: `
9
- <ng-content />
10
- `,
8
+ changeDetection: ChangeDetectionStrategy.OnPush,
11
9
  host: {
12
10
  '[class]': '_computedClass()',
13
11
  '[attr.data-inset]': 'inset() ? "" : null',
14
12
  },
15
- changeDetection: ChangeDetectionStrategy.OnPush,
13
+ template: `
14
+ <ng-content />
15
+ `,
16
16
  })
17
17
  export class HlmMenuLabel {
18
18
  public readonly inset = input<boolean, BooleanInput>(false, {
@@ -4,11 +4,11 @@ import type { ClassValue } from 'clsx';
4
4
 
5
5
  @Component({
6
6
  selector: 'hlm-menu-separator',
7
- template: '',
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
8
8
  host: {
9
9
  '[class]': '_computedClass()',
10
10
  },
11
- changeDetection: ChangeDetectionStrategy.OnPush,
11
+ template: '',
12
12
  })
13
13
  export class HlmMenuSeparator {
14
14
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -4,13 +4,13 @@ import type { ClassValue } from 'clsx';
4
4
 
5
5
  @Component({
6
6
  selector: 'hlm-menu-shortcut',
7
- template: `
8
- <ng-content />
9
- `,
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
8
  host: {
11
9
  '[class]': '_computedClass()',
12
10
  },
13
- changeDetection: ChangeDetectionStrategy.OnPush,
11
+ template: `
12
+ <ng-content />
13
+ `,
14
14
  })
15
15
  export class HlmMenuShortcut {
16
16
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -22,14 +22,14 @@ type MenuVariants = VariantProps<typeof menuVariants>;
22
22
 
23
23
  @Component({
24
24
  selector: 'hlm-menu',
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ hostDirectives: [BrnMenu],
25
27
  host: {
26
28
  '[class]': '_computedClass()',
27
29
  },
28
- hostDirectives: [BrnMenu],
29
30
  template: `
30
31
  <ng-content />
31
32
  `,
32
- changeDetection: ChangeDetectionStrategy.OnPush,
33
33
  })
34
34
  export class HlmMenu {
35
35
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,14 +5,14 @@ import type { ClassValue } from 'clsx';
5
5
 
6
6
  @Component({
7
7
  selector: 'hlm-sub-menu',
8
+ changeDetection: ChangeDetectionStrategy.OnPush,
9
+ hostDirectives: [BrnMenu],
8
10
  host: {
9
11
  '[class]': '_computedClass()',
10
12
  },
11
- hostDirectives: [BrnMenu],
12
13
  template: `
13
14
  <ng-content />
14
15
  `,
15
- changeDetection: ChangeDetectionStrategy.OnPush,
16
16
  })
17
17
  export class HlmSubMenu {
18
18
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,10 +5,10 @@ import { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: 'li[hlmNavigationMenuItem]',
8
+ hostDirectives: [{ directive: BrnNavigationMenuItem, inputs: ['id'] }],
8
9
  host: {
9
10
  '[class]': '_computedClass()',
10
11
  },
11
- hostDirectives: [{ directive: BrnNavigationMenuItem, inputs: ['id'] }],
12
12
  })
13
13
  export class HlmNavigationMenuItem {
14
14
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,10 +5,10 @@ import { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: 'a[hlmNavigationMenuLink]',
8
+ hostDirectives: [{ directive: BrnNavigationMenuLink, inputs: ['active'] }],
8
9
  host: {
9
10
  '[class]': '_computedClass()',
10
11
  },
11
- hostDirectives: [{ directive: BrnNavigationMenuLink, inputs: ['active'] }],
12
12
  })
13
13
  export class HlmNavigationMenuLink {
14
14
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,14 +5,14 @@ import { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: 'ul[hlmNavigationMenuList]',
8
- host: {
9
- '[class]': '_computedClass()',
10
- },
11
8
  hostDirectives: [
12
9
  {
13
10
  directive: BrnNavigationMenuList,
14
11
  },
15
12
  ],
13
+ host: {
14
+ '[class]': '_computedClass()',
15
+ },
16
16
  })
17
17
  export class HlmNavigationMenuList {
18
18
  public readonly userClass = input<ClassValue>('', { alias: 'class' });
@@ -5,10 +5,10 @@ import { ClassValue } from 'clsx';
5
5
 
6
6
  @Directive({
7
7
  selector: 'button[hlmNavigationMenuTrigger]',
8
+ hostDirectives: [BrnNavigationMenuTrigger],
8
9
  host: {
9
10
  '[class]': '_computedClass()',
10
11
  },
11
- hostDirectives: [BrnNavigationMenuTrigger],
12
12
  })
13
13
  export class HlmNavigationMenuTrigger {
14
14
  public readonly userClass = input<ClassValue>('', { alias: 'class' });