@spartan-ng/cli 0.0.1-alpha.335 → 0.0.1-alpha.337

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 (148) hide show
  1. package/package.json +1 -1
  2. package/src/generators/base/versions.d.ts +20 -20
  3. package/src/generators/base/versions.js +20 -20
  4. package/src/generators/ui/generator.js +2 -2
  5. package/src/generators/ui/generator.js.map +1 -1
  6. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-content.directive.ts.template +3 -8
  7. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-icon.directive.ts.template +6 -11
  8. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-item.directive.ts.template +9 -9
  9. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion-trigger.directive.ts.template +3 -8
  10. package/src/generators/ui/libs/ui-accordion-helm/files/lib/hlm-accordion.directive.ts.template +4 -9
  11. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-cancel-button.directive.ts.template +3 -8
  12. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-content.component.ts.template +3 -8
  13. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-description.directive.ts.template +3 -8
  14. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-footer.component.ts.template +3 -7
  15. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-header.component.ts.template +3 -7
  16. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-overlay.directive.ts.template +3 -7
  17. package/src/generators/ui/libs/ui-alert-dialog-helm/files/lib/hlm-alert-dialog-title.directive.ts.template +3 -7
  18. package/src/generators/ui/libs/ui-alert-helm/files/lib/hlm-alert-description.directive.ts.template +3 -11
  19. package/src/generators/ui/libs/ui-alert-helm/files/lib/hlm-alert-title.directive.ts.template +3 -11
  20. package/src/generators/ui/libs/ui-alert-helm/files/lib/hlm-alert.directive.ts.template +3 -11
  21. package/src/generators/ui/libs/ui-aspect-ratio-helm/files/lib/helm-aspect-ratio.directive.ts.template +3 -8
  22. package/src/generators/ui/libs/ui-avatar-helm/files/lib/hlm-avatar.component.spec.ts.template +10 -6
  23. package/src/generators/ui/libs/ui-avatar-helm/files/lib/hlm-avatar.component.ts.template +5 -11
  24. package/src/generators/ui/libs/ui-avatar-helm/files/lib/image/hlm-avatar-image.directive.ts.template +3 -11
  25. package/src/generators/ui/libs/ui-badge-helm/files/lib/hlm-badge.directive.ts.template +5 -14
  26. package/src/generators/ui/libs/ui-button-helm/files/lib/hlm-button.directive.ts.template +11 -11
  27. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-content.directive.ts.template +3 -11
  28. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-description.directive.ts.template +3 -11
  29. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-footer.directive.ts.template +6 -16
  30. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-header.directive.ts.template +6 -15
  31. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card-title.directive.ts.template +3 -11
  32. package/src/generators/ui/libs/ui-card-helm/files/lib/hlm-card.directive.ts.template +3 -11
  33. package/src/generators/ui/libs/ui-carousel-helm/files/index.ts.template +26 -0
  34. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-content.component.ts.template +25 -0
  35. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-item.component.ts.template +26 -0
  36. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-next.component.ts.template +62 -0
  37. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel-previous.component.ts.template +62 -0
  38. package/src/generators/ui/libs/ui-carousel-helm/files/lib/hlm-carousel.component.ts.template +93 -0
  39. package/src/generators/ui/libs/ui-carousel-helm/generator.d.ts +3 -0
  40. package/src/generators/ui/libs/ui-carousel-helm/generator.js +12 -0
  41. package/src/generators/ui/libs/ui-carousel-helm/generator.js.map +1 -0
  42. package/src/generators/ui/libs/ui-checkbox-helm/files/lib/hlm-checkbox-checkicon.component.ts.template +14 -15
  43. package/src/generators/ui/libs/ui-checkbox-helm/files/lib/hlm-checkbox.component.ts.template +29 -17
  44. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-dialog-close-button.directive.ts.template +3 -11
  45. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-dialog.directive.ts.template +8 -14
  46. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-empty.directive.ts.template +3 -11
  47. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-group.directive.ts.template +7 -13
  48. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-input-wrapper.component.ts.template +5 -14
  49. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-input.directive.ts.template +7 -12
  50. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-item-icon.directive.ts.template +3 -10
  51. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-item.directive.ts.template +7 -12
  52. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-list.directive.ts.template +3 -11
  53. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command-shortcut.component.ts.template +5 -11
  54. package/src/generators/ui/libs/ui-command-helm/files/lib/hlm-command.directive.ts.template +7 -13
  55. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-close.directive.ts.template +7 -13
  56. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-content.component.ts.template +6 -11
  57. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-description.directive.ts.template +3 -11
  58. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-footer.component.ts.template +5 -11
  59. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-header.component.ts.template +5 -11
  60. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-overlay.directive.ts.template +3 -7
  61. package/src/generators/ui/libs/ui-dialog-helm/files/lib/hlm-dialog-title.directive.ts.template +5 -11
  62. package/src/generators/ui/libs/ui-hover-card-helm/files/lib/hlm-hover-card-content.component.ts.template +2 -7
  63. package/src/generators/ui/libs/ui-icon-helm/files/lib/hlm-icon.component.spec.ts.template +3 -3
  64. package/src/generators/ui/libs/ui-input-helm/files/lib/hlm-input-error.directive.ts.template +3 -11
  65. package/src/generators/ui/libs/ui-input-helm/files/lib/hlm-input.directive.ts.template +5 -10
  66. package/src/generators/ui/libs/ui-label-helm/files/lib/hlm-label.directive.ts.template +4 -10
  67. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-bar-item.directive.ts.template +7 -13
  68. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-bar.component.ts.template +5 -11
  69. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-check.component.ts.template +12 -14
  70. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-checkbox.directive.ts.template +8 -21
  71. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-icon.directive.ts.template +3 -10
  72. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-radio.component.ts.template +12 -14
  73. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-radio.directive.ts.template +8 -21
  74. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item-sub-indicator.component.ts.template +6 -14
  75. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-item.directive.ts.template +5 -15
  76. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-label.component.ts.template +5 -11
  77. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-separator.component.ts.template +3 -11
  78. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu-shortcut.component.ts.template +5 -11
  79. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-menu.component.ts.template +4 -12
  80. package/src/generators/ui/libs/ui-menu-helm/files/lib/hlm-sub-menu.component.ts.template +7 -13
  81. package/src/generators/ui/libs/ui-pagination-helm/files/index.ts.template +33 -0
  82. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-content.directive.ts.template +21 -0
  83. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-ellipsis.componet.ts.template +23 -0
  84. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-item.directive.ts.template +22 -0
  85. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-link.directive.ts.template +56 -0
  86. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-next.componet.ts.template +31 -0
  87. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination-previous.componet.ts.template +31 -0
  88. package/src/generators/ui/libs/ui-pagination-helm/files/lib/hlm-pagination.directive.ts.template +25 -0
  89. package/src/generators/ui/libs/ui-pagination-helm/generator.d.ts +3 -0
  90. package/src/generators/ui/libs/ui-pagination-helm/generator.js +12 -0
  91. package/src/generators/ui/libs/ui-pagination-helm/generator.js.map +1 -0
  92. package/src/generators/ui/libs/ui-popover-helm/files/lib/hlm-popover-close.directive.ts.template +7 -13
  93. package/src/generators/ui/libs/ui-popover-helm/files/lib/hlm-popover-content.directive.ts.template +7 -13
  94. package/src/generators/ui/libs/ui-progress-helm/files/lib/hlm-progress-indicator.directive.ts.template +5 -11
  95. package/src/generators/ui/libs/ui-progress-helm/files/lib/hlm-progress.directive.ts.template +5 -11
  96. package/src/generators/ui/libs/ui-radio-group-helm/files/lib/hlm-radio-group.directive.ts.template +3 -11
  97. package/src/generators/ui/libs/ui-radio-group-helm/files/lib/hlm-radio-indicator.component.ts.template +3 -11
  98. package/src/generators/ui/libs/ui-radio-group-helm/files/lib/hlm-radio.directive.ts.template +5 -11
  99. package/src/generators/ui/libs/ui-select-helm/files/index.ts.template +38 -0
  100. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-content.directive.ts.template +34 -0
  101. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-group.directive.ts.template +22 -0
  102. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-label.directive.ts.template +38 -0
  103. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-option.component.ts.template +54 -0
  104. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-scroll-down.component.ts.template +17 -0
  105. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-scroll-up.component.ts.template +17 -0
  106. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-trigger.component.ts.template +44 -0
  107. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select-value.directive.ts.template +26 -0
  108. package/src/generators/ui/libs/ui-select-helm/files/lib/hlm-select.directive.ts.template +21 -0
  109. package/src/generators/ui/libs/ui-select-helm/generator.d.ts +3 -0
  110. package/src/generators/ui/libs/ui-select-helm/generator.js +12 -0
  111. package/src/generators/ui/libs/ui-select-helm/generator.js.map +1 -0
  112. package/src/generators/ui/libs/ui-separator-helm/files/lib/hlm-separator.directive.ts.template +7 -13
  113. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-close.directive.ts.template +7 -13
  114. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-content.component.ts.template +6 -14
  115. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-description.directive.ts.template +3 -11
  116. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-footer.component.ts.template +5 -11
  117. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-header.component.ts.template +3 -11
  118. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-overlay.directive.ts.template +11 -17
  119. package/src/generators/ui/libs/ui-sheet-helm/files/lib/hlm-sheet-title.directive.ts.template +3 -11
  120. package/src/generators/ui/libs/ui-skeleton-helm/files/lib/hlm-skeleton.component.ts.template +3 -11
  121. package/src/generators/ui/libs/ui-spinner-helm/files/lib/hlm-spinner.component.ts.template +5 -11
  122. package/src/generators/ui/libs/ui-switch-helm/files/lib/hlm-switch-thumb.directive.ts.template +7 -13
  123. package/src/generators/ui/libs/ui-switch-helm/files/lib/hlm-switch.component.ts.template +19 -14
  124. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-caption.component.ts.template +10 -28
  125. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-table.component.ts.template +11 -27
  126. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-td.component.ts.template +8 -12
  127. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-th.component.ts.template +22 -23
  128. package/src/generators/ui/libs/ui-table-helm/files/lib/hlm-trow.component.ts.template +7 -24
  129. package/src/generators/ui/libs/ui-tabs-helm/files/index.ts.template +8 -1
  130. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs-content.directive.ts.template +9 -21
  131. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs-list.component.ts.template +5 -17
  132. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs-trigger.directive.ts.template +9 -21
  133. package/src/generators/ui/libs/ui-tabs-helm/files/lib/hlm-tabs.component.ts.template +17 -0
  134. package/src/generators/ui/libs/ui-toggle-helm/files/lib/hlm-toggle-group.directive.ts.template +7 -13
  135. package/src/generators/ui/libs/ui-toggle-helm/files/lib/hlm-toggle.directive.ts.template +5 -11
  136. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-blockquote.directive.ts.template +3 -11
  137. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-code.directive.ts.template +3 -11
  138. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h1.directive.ts.template +3 -11
  139. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h2.directive.ts.template +3 -11
  140. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h3.directive.ts.template +3 -11
  141. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-h4.directive.ts.template +3 -11
  142. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-large.directive.ts.template +3 -11
  143. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-lead.directive.ts.template +3 -11
  144. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-muted.directive.ts.template +3 -11
  145. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-p.directive.ts.template +3 -11
  146. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-small.directive.ts.template +3 -11
  147. package/src/generators/ui/libs/ui-typography-helm/files/lib/hlm-ul.directive.ts.template +3 -11
  148. package/src/generators/ui/supported-ui-libraries.json +115 -82
@@ -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 { cva, VariantProps } from 'class-variance-authority';
4
4
  import { ClassValue } from 'clsx';
@@ -17,14 +17,6 @@ export type InputErrorVariants = VariantProps<typeof inputErrorVariants>;
17
17
  },
18
18
  })
19
19
  export class HlmInputErrorDirective {
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(inputErrorVariants(), this._userCls());
29
- }
20
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
21
+ protected _computedClass = computed(() => hlm(inputErrorVariants(), this._userClass()));
30
22
  }
@@ -1,4 +1,4 @@
1
- import { computed, Directive, Input, signal } from '@angular/core';
1
+ import { computed, Directive, 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';
@@ -45,13 +45,8 @@ export class HlmInputDirective {
45
45
  this._error.set(value);
46
46
  }
47
47
 
48
- private readonly _userCls = signal<ClassValue>('');
49
- @Input()
50
- set class(userCls: ClassValue) {
51
- this._userCls.set(userCls);
52
- }
53
- protected _computedClass = computed(() => this._generateClass());
54
- private _generateClass() {
55
- return hlm(inputVariants({ size: this._size(), error: this._error() }), this._userCls());
56
- }
48
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
49
+ protected _computedClass = computed(() =>
50
+ hlm(inputVariants({ size: this._size(), error: this._error() }), this._userClass()),
51
+ );
57
52
  }
@@ -1,11 +1,11 @@
1
- import { computed, Directive, inject, Input, signal } from '@angular/core';
1
+ import { computed, Directive, inject, Input, input, signal } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnLabelDirective } from '@spartan-ng/ui-label-brain';
4
4
  import { cva, VariantProps } from 'class-variance-authority';
5
5
  import { ClassValue } from 'clsx';
6
6
 
7
7
  export const labelVariants = cva(
8
- 'text-sm font-medium leading-none [&:has([hlmInput]:disabled)]:cursor-not-allowed [&:has([hlmInput]:disabled)]:opacity-70',
8
+ 'text-sm font-medium leading-none [&>[hlmInput]]:my-1 [&:has([hlmInput]:disabled)]:cursor-not-allowed [&:has([hlmInput]:disabled)]:opacity-70',
9
9
  {
10
10
  variants: {
11
11
  variant: {
@@ -45,6 +45,7 @@ export type LabelVariants = VariantProps<typeof labelVariants>;
45
45
  export class HlmLabelDirective {
46
46
  private readonly _brn = inject(BrnLabelDirective, { host: true });
47
47
 
48
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
48
49
  protected readonly _computedClass = computed(() =>
49
50
  hlm(
50
51
  labelVariants({
@@ -52,7 +53,7 @@ export class HlmLabelDirective {
52
53
  error: this._error(),
53
54
  disabled: this._brn?.dataDisabled() ?? 'auto',
54
55
  }),
55
- this._userCls(),
56
+ this._userClass(),
56
57
  ),
57
58
  );
58
59
 
@@ -67,11 +68,4 @@ export class HlmLabelDirective {
67
68
  set error(value: LabelVariants['error']) {
68
69
  this._error.set(value);
69
70
  }
70
-
71
- private readonly _userCls = signal<ClassValue>('');
72
-
73
- @Input()
74
- set class(userCls: ClassValue) {
75
- this._userCls.set(userCls);
76
- }
77
71
  }
@@ -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 { BrnMenuItemDirective } from '@spartan-ng/ui-menu-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -12,17 +12,11 @@ import { ClassValue } from 'clsx';
12
12
  hostDirectives: [BrnMenuItemDirective],
13
13
  })
14
14
  export class HlmMenuBarItemDirective {
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(
15
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
16
+ protected _computedClass = computed(() =>
17
+ hlm(
24
18
  'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground',
25
- this._userCls(),
26
- );
27
- }
19
+ this._userClass(),
20
+ ),
21
+ );
28
22
  }
@@ -1,4 +1,4 @@
1
- import { Component, computed, Input, signal } from '@angular/core';
1
+ import { Component, computed, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnMenuBarDirective } from '@spartan-ng/ui-menu-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -13,14 +13,8 @@ import { ClassValue } from 'clsx';
13
13
  template: '<ng-content/>',
14
14
  })
15
15
  export class HlmMenuBarComponent {
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('border-border flex h-10 items-center space-x-1 rounded-md border bg-background p-1', this._userCls());
25
- }
16
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
17
+ protected _computedClass = computed(() =>
18
+ hlm('border-border flex h-10 items-center space-x-1 rounded-md border bg-background p-1', this._userClass()),
19
+ );
26
20
  }
@@ -1,5 +1,5 @@
1
- import { Component, computed, Input, signal } from '@angular/core';
2
- import { radixCheck } from '@ng-icons/radix-icons';
1
+ import { Component, computed, input } from '@angular/core';
2
+ import { lucideCheck } from '@ng-icons/lucide';
3
3
  import { hlm } from '@spartan-ng/ui-core';
4
4
  import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
5
5
  import { ClassValue } from 'clsx';
@@ -7,24 +7,22 @@ import { ClassValue } from 'clsx';
7
7
  @Component({
8
8
  selector: 'hlm-menu-item-check',
9
9
  standalone: true,
10
- providers: [provideIcons({ radixCheck })],
10
+ providers: [provideIcons({ lucideCheck })],
11
11
  imports: [HlmIconComponent],
12
12
  template: `
13
- <hlm-icon size="none" class="h-full w-full" name="radixCheck" />
13
+ <!-- Using 1rem for size to mimick h-4 w-4 -->
14
+ <hlm-icon size="1rem" name="lucideCheck" />
14
15
  `,
15
16
  host: {
16
17
  '[class]': '_computedClass()',
17
18
  },
18
19
  })
19
20
  export class HlmMenuItemCheckComponent {
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('group-[.checked]:opacity-100 opacity-0 inline-block mr-2 h-5 w-5', this._userCls());
29
- }
21
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
22
+ protected _computedClass = computed(() =>
23
+ hlm(
24
+ 'group-[.checked]:opacity-100 opacity-0 absolute left-2 flex h-3.5 w-3.5 items-center justify-center',
25
+ this._userClass(),
26
+ ),
27
+ );
30
28
  }
@@ -1,4 +1,4 @@
1
- import { booleanAttribute, 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 { BrnMenuItemCheckboxDirective } from '@spartan-ng/ui-menu-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -18,24 +18,11 @@ import { ClassValue } from 'clsx';
18
18
  ],
19
19
  })
20
20
  export class HlmMenuItemCheckboxDirective {
21
- private readonly _inset = signal<ClassValue>(false);
22
-
23
- private readonly _userCls = signal<ClassValue>('');
24
- @Input()
25
- set class(userCls: ClassValue) {
26
- this._userCls.set(userCls);
27
- }
28
- @Input({ transform: booleanAttribute })
29
- set inset(value: boolean) {
30
- this._inset.set(value);
31
- }
32
-
33
- protected _computedClass = computed(() => this._generateClass());
34
- private _generateClass() {
35
- return hlm(
36
- 'group w-full relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',
37
- this._inset() && 'pl-10',
38
- this._userCls(),
39
- );
40
- }
21
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
22
+ protected _computedClass = computed(() =>
23
+ hlm(
24
+ 'group w-full relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',
25
+ this._userClass(),
26
+ ),
27
+ );
41
28
  }
@@ -1,4 +1,4 @@
1
- import { computed, Directive, inject, Input, signal } from '@angular/core';
1
+ import { computed, Directive, inject, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { HlmIconComponent } from '@spartan-ng/ui-icon-helm';
4
4
  import { ClassValue } from 'clsx';
@@ -17,14 +17,7 @@ export class HlmMenuItemIconDirective {
17
17
  if (!this._menuIcon) return;
18
18
  this._menuIcon.size = 'none';
19
19
  }
20
- private readonly _userCls = signal<ClassValue>('');
21
- @Input()
22
- set class(userCls: ClassValue) {
23
- this._userCls.set(userCls);
24
- }
25
20
 
26
- protected _computedClass = computed(() => this._generateClass());
27
- private _generateClass() {
28
- return hlm('mr-2 h-4 w-4', this._userCls());
29
- }
21
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
22
+ protected _computedClass = computed(() => hlm('mr-2 h-4 w-4', this._userClass()));
30
23
  }
@@ -1,5 +1,5 @@
1
- import { Component, computed, Input, signal } from '@angular/core';
2
- import { radixDotFilled } from '@ng-icons/radix-icons';
1
+ import { Component, computed, input } from '@angular/core';
2
+ import { lucideCircle } from '@ng-icons/lucide';
3
3
  import { hlm } from '@spartan-ng/ui-core';
4
4
  import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
5
5
  import { ClassValue } from 'clsx';
@@ -7,24 +7,22 @@ import { ClassValue } from 'clsx';
7
7
  @Component({
8
8
  selector: 'hlm-menu-item-radio',
9
9
  standalone: true,
10
- providers: [provideIcons({ radixDotFilled })],
10
+ providers: [provideIcons({ lucideCircle })],
11
11
  imports: [HlmIconComponent],
12
12
  template: `
13
- <hlm-icon size="none" class="h-full w-full" name="radixDotFilled" />
13
+ <!-- Using 0.5rem for size to mimick h-2 w-2 -->
14
+ <hlm-icon size="0.5rem" class="*:*:fill-current" name="lucideCircle" />
14
15
  `,
15
16
  host: {
16
17
  '[class]': '_computedClass()',
17
18
  },
18
19
  })
19
20
  export class HlmMenuItemRadioComponent {
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('group-[.checked]:opacity-100 opacity-0 inline-block mr-2 h-5 w-5', this._userCls());
29
- }
21
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
22
+ protected _computedClass = computed(() =>
23
+ hlm(
24
+ 'group-[.checked]:opacity-100 opacity-0 absolute left-2 flex h-3.5 w-3.5 items-center justify-center',
25
+ this._userClass(),
26
+ ),
27
+ );
30
28
  }
@@ -1,4 +1,4 @@
1
- import { booleanAttribute, 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 { BrnMenuItemRadioDirective } from '@spartan-ng/ui-menu-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -18,24 +18,11 @@ import { ClassValue } from 'clsx';
18
18
  ],
19
19
  })
20
20
  export class HlmMenuItemRadioDirective {
21
- private readonly _inset = signal<ClassValue>(false);
22
-
23
- private readonly _userCls = signal<ClassValue>('');
24
- @Input()
25
- set class(userCls: ClassValue) {
26
- this._userCls.set(userCls);
27
- }
28
- @Input({ transform: booleanAttribute })
29
- set inset(value: boolean) {
30
- this._inset.set(value);
31
- }
32
-
33
- protected _computedClass = computed(() => this._generateClass());
34
- private _generateClass() {
35
- return hlm(
36
- 'group w-full relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',
37
- this._inset() && 'pl-10',
38
- this._userCls(),
39
- );
40
- }
21
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
22
+ protected _computedClass = computed(() =>
23
+ hlm(
24
+ 'group w-full relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',
25
+ this._userClass(),
26
+ ),
27
+ );
41
28
  }
@@ -1,5 +1,5 @@
1
- import { Component, Input, computed, signal } from '@angular/core';
2
- import { radixChevronRight } from '@ng-icons/radix-icons';
1
+ import { Component, computed, input } from '@angular/core';
2
+ import { lucideChevronRight } from '@ng-icons/lucide';
3
3
  import { hlm } from '@spartan-ng/ui-core';
4
4
  import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
5
5
  import { ClassValue } from 'clsx';
@@ -7,24 +7,16 @@ import { ClassValue } from 'clsx';
7
7
  @Component({
8
8
  selector: 'hlm-menu-item-sub-indicator',
9
9
  standalone: true,
10
- providers: [provideIcons({ radixChevronRight })],
10
+ providers: [provideIcons({ lucideChevronRight })],
11
11
  imports: [HlmIconComponent],
12
12
  template: `
13
- <hlm-icon size="none" class="h-full w-full" name="radixChevronRight" />
13
+ <hlm-icon size="none" class="h-full w-full" name="lucideChevronRight" />
14
14
  `,
15
15
  host: {
16
16
  '[class]': '_computedClass()',
17
17
  },
18
18
  })
19
19
  export class HlmMenuItemSubIndicatorComponent {
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('inline-block ml-auto h-4 w-4', this._userCls());
29
- }
20
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
21
+ protected _computedClass = computed(() => hlm('inline-block ml-auto h-4 w-4', this._userClass()));
30
22
  }
@@ -1,13 +1,13 @@
1
- import { booleanAttribute, computed, Directive, Input, signal } from '@angular/core';
1
+ import { Directive, Input, booleanAttribute, computed, input, signal } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnMenuItemDirective } from '@spartan-ng/ui-menu-brain';
4
- import { cva, VariantProps } from 'class-variance-authority';
4
+ import { VariantProps, cva } from 'class-variance-authority';
5
5
  import { ClassValue } from 'clsx';
6
6
 
7
7
  export const hlmMenuItemVariants = cva(
8
8
  'group w-full relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50',
9
9
  {
10
- variants: { inset: { true: 'pl-10', false: '' } },
10
+ variants: { inset: { true: 'pl-8', false: '' } },
11
11
  defaultVariants: { inset: false },
12
12
  },
13
13
  );
@@ -30,21 +30,11 @@ export type HlmMenuItemVariants = VariantProps<typeof hlmMenuItemVariants>;
30
30
  export class HlmMenuItemDirective {
31
31
  private readonly _inset = signal<boolean>(false);
32
32
 
33
- private readonly _userCls = signal<ClassValue>('');
34
-
35
- @Input()
36
- set class(userCls: ClassValue) {
37
- this._userCls.set(userCls);
38
- }
33
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
34
+ protected _computedClass = computed(() => hlm(hlmMenuItemVariants({ inset: this._inset() }), this._userClass()));
39
35
 
40
36
  @Input({ transform: booleanAttribute })
41
37
  set inset(value: boolean) {
42
38
  this._inset.set(value);
43
39
  }
44
-
45
- protected _computedClass = computed(() => this._generateClass());
46
-
47
- private _generateClass() {
48
- return hlm(hlmMenuItemVariants({ inset: this._inset() }), this._userCls());
49
- }
50
40
  }
@@ -1,4 +1,4 @@
1
- import { booleanAttribute, Component, computed, Input, signal } from '@angular/core';
1
+ import { Component, Input, booleanAttribute, computed, input, signal } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { ClassValue } from 'clsx';
4
4
 
@@ -13,20 +13,14 @@ import { ClassValue } from 'clsx';
13
13
  },
14
14
  })
15
15
  export class HlmMenuLabelComponent {
16
- private readonly _userCls = signal<ClassValue>('');
17
- @Input()
18
- set class(userCls: ClassValue) {
19
- this._userCls.set(userCls);
20
- }
16
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
17
+ protected _computedClass = computed(() =>
18
+ hlm('block px-2 py-1.5 text-sm font-semibold', this._inset() && 'pl-8', this._userClass()),
19
+ );
21
20
 
22
21
  private readonly _inset = signal<ClassValue>(false);
23
22
  @Input({ transform: booleanAttribute })
24
23
  set inset(value: boolean) {
25
24
  this._inset.set(value);
26
25
  }
27
-
28
- protected _computedClass = computed(() => this._generateClass());
29
- private _generateClass() {
30
- return hlm('block px-2 py-1.5 text-sm font-semibold', this._inset() && 'pl-10', this._userCls());
31
- }
32
26
  }
@@ -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 HlmMenuSeparatorComponent {
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 -mx-1 my-1 h-px bg-muted', this._userCls());
23
- }
14
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
15
+ protected _computedClass = computed(() => hlm('block -mx-1 my-1 h-px bg-muted', this._userClass()));
24
16
  }
@@ -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 HlmMenuShortcutComponent {
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('ml-auto font-light text-xs tracking-widest opacity-60', this._userCls());
25
- }
16
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
17
+ protected _computedClass = computed(() =>
18
+ hlm('ml-auto font-light text-xs tracking-widest opacity-60', this._userClass()),
19
+ );
26
20
  }
@@ -1,7 +1,7 @@
1
- import { Component, computed, Input, signal } from '@angular/core';
1
+ import { Component, Input, computed, input, signal } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnMenuDirective } from '@spartan-ng/ui-menu-brain';
4
- import { cva, VariantProps } from 'class-variance-authority';
4
+ import { VariantProps, cva } from 'class-variance-authority';
5
5
  import { ClassValue } from 'clsx';
6
6
 
7
7
  export const menuVariants = cva(
@@ -32,20 +32,12 @@ type MenuVariants = VariantProps<typeof menuVariants>;
32
32
  `,
33
33
  })
34
34
  export class HlmMenuComponent {
35
- private readonly _userCls = signal<ClassValue>('');
36
- @Input()
37
- set class(userCls: ClassValue) {
38
- this._userCls.set(userCls);
39
- }
35
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
36
+ protected _computedClass = computed(() => hlm(menuVariants({ variant: this._variant() }), this._userClass()));
40
37
 
41
38
  private readonly _variant = signal<MenuVariants['variant']>('default');
42
39
  @Input()
43
40
  set variant(value: MenuVariants['variant']) {
44
41
  this._variant.set(value);
45
42
  }
46
-
47
- protected _computedClass = computed(() => this._generateClass());
48
- private _generateClass() {
49
- return hlm(menuVariants({ variant: this._variant() }), this._userCls());
50
- }
51
43
  }
@@ -1,4 +1,4 @@
1
- import { Component, computed, Input, signal } from '@angular/core';
1
+ import { Component, computed, input } from '@angular/core';
2
2
  import { hlm } from '@spartan-ng/ui-core';
3
3
  import { BrnMenuDirective } from '@spartan-ng/ui-menu-brain';
4
4
  import { ClassValue } from 'clsx';
@@ -15,17 +15,11 @@ import { ClassValue } from 'clsx';
15
15
  `,
16
16
  })
17
17
  export class HlmSubMenuComponent {
18
- private readonly _userCls = signal<ClassValue>('');
19
- @Input()
20
- set class(userCls: ClassValue) {
21
- this._userCls.set(userCls);
22
- }
23
-
24
- protected _computedClass = computed(() => this._generateClass());
25
- private _generateClass() {
26
- return hlm(
18
+ private readonly _userClass = input<ClassValue>('', { alias: 'class' });
19
+ protected _computedClass = computed(() =>
20
+ hlm(
27
21
  'border-border min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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',
28
- this._userCls(),
29
- );
30
- }
22
+ this._userClass(),
23
+ ),
24
+ );
31
25
  }
@@ -0,0 +1,33 @@
1
+ import { NgModule } from '@angular/core';
2
+
3
+ import { HlmPaginationContentDirective } from './lib/hlm-pagination-content.directive';
4
+ import { HlmPaginationEllipsisComponent } from './lib/hlm-pagination-ellipsis.componet';
5
+ import { HlmPaginationItemDirective } from './lib/hlm-pagination-item.directive';
6
+ import { HlmPaginationLinkDirective } from './lib/hlm-pagination-link.directive';
7
+ import { HlmPaginationNextComponent } from './lib/hlm-pagination-next.componet';
8
+ import { HlmPaginationPreviousComponent } from './lib/hlm-pagination-previous.componet';
9
+ import { HlmPaginationDirective } from './lib/hlm-pagination.directive';
10
+
11
+ export * from './lib/hlm-pagination-content.directive';
12
+ export * from './lib/hlm-pagination-ellipsis.componet';
13
+ export * from './lib/hlm-pagination-item.directive';
14
+ export * from './lib/hlm-pagination-link.directive';
15
+ export * from './lib/hlm-pagination-next.componet';
16
+ export * from './lib/hlm-pagination-previous.componet';
17
+ export * from './lib/hlm-pagination.directive';
18
+
19
+ export const HlmPaginationImports = [
20
+ HlmPaginationDirective,
21
+ HlmPaginationContentDirective,
22
+ HlmPaginationItemDirective,
23
+ HlmPaginationLinkDirective,
24
+ HlmPaginationPreviousComponent,
25
+ HlmPaginationNextComponent,
26
+ HlmPaginationEllipsisComponent,
27
+ ] as const;
28
+
29
+ @NgModule({
30
+ imports: [...HlmPaginationImports],
31
+ exports: [...HlmPaginationImports],
32
+ })
33
+ export class HlmPaginationModule {}
@@ -0,0 +1,21 @@
1
+ import { computed, Directive, input } from '@angular/core';
2
+ import { hlm } from '@spartan-ng/ui-core';
3
+ import { cva, VariantProps } from 'class-variance-authority';
4
+
5
+ export const paginationContentVariants = cva('flex flex-row items-center gap-1', {
6
+ variants: {},
7
+ defaultVariants: {},
8
+ });
9
+ export type PaginationContentVariants = VariantProps<typeof paginationContentVariants>;
10
+
11
+ @Directive({
12
+ selector: '[hlmPaginationContent]',
13
+ standalone: true,
14
+ host: {
15
+ '[class]': '_computedClass()',
16
+ },
17
+ })
18
+ export class HlmPaginationContentDirective {
19
+ public readonly class = input('');
20
+ protected readonly _computedClass = computed(() => hlm(paginationContentVariants(), this.class()));
21
+ }
@@ -0,0 +1,23 @@
1
+ import { Component, computed, input } from '@angular/core';
2
+ import { lucideMoreHorizontal } from '@ng-icons/lucide';
3
+ import { hlm } from '@spartan-ng/ui-core';
4
+ import { HlmIconComponent, provideIcons } from '@spartan-ng/ui-icon-helm';
5
+ import { HlmPaginationLinkDirective } from './hlm-pagination-link.directive';
6
+
7
+ @Component({
8
+ selector: 'hlm-pagination-ellipsis',
9
+ standalone: true,
10
+ imports: [HlmPaginationLinkDirective, HlmIconComponent],
11
+ providers: [provideIcons({ lucideMoreHorizontal })],
12
+ template: `
13
+ <span [class]="_computedClass()">
14
+ <hlm-icon size="sm" name="lucideMoreHorizontal" />
15
+ <span class="sr-only">More pages</span>
16
+ </span>
17
+ `,
18
+ })
19
+ export class HlmPaginationEllipsisComponent {
20
+ public readonly class = input('');
21
+
22
+ protected _computedClass = computed(() => hlm('flex h-9 w-9 items-center justify-center', this.class()));
23
+ }