@spartan-ng/cli 0.0.1-alpha.584 → 0.0.1-alpha.585

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 (215) hide show
  1. package/package.json +1 -1
  2. package/src/generators/migrate-brain-imports/import-map.d.ts +0 -1
  3. package/src/generators/migrate-brain-imports/import-map.js +0 -1
  4. package/src/generators/migrate-brain-imports/import-map.js.map +1 -1
  5. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-content.ts.template +6 -13
  6. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-icon.ts.template +8 -13
  7. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-item.ts.template +5 -10
  8. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion-trigger.ts.template +8 -11
  9. package/src/generators/ui/libs/accordion/files/lib/hlm-accordion.ts.template +5 -10
  10. package/src/generators/ui/libs/alert/files/lib/hlm-alert-description.ts.template +5 -13
  11. package/src/generators/ui/libs/alert/files/lib/hlm-alert-title.ts.template +5 -10
  12. package/src/generators/ui/libs/alert/files/lib/hlm-alert.ts.template +6 -7
  13. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-content.ts.template +8 -11
  14. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-description.ts.template +5 -6
  15. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-footer.ts.template +5 -8
  16. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-header.ts.template +5 -8
  17. package/src/generators/ui/libs/alert-dialog/files/lib/hlm-alert-dialog-title.ts.template +5 -6
  18. package/src/generators/ui/libs/aspect-ratio/files/lib/helm-aspect-ratio.ts.template +9 -15
  19. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-empty.ts.template +5 -8
  20. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-group.ts.template +5 -13
  21. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-item.ts.template +8 -16
  22. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete-list.ts.template +5 -13
  23. package/src/generators/ui/libs/autocomplete/files/lib/hlm-autocomplete.ts.template +7 -13
  24. package/src/generators/ui/libs/avatar/files/lib/fallback/hlm-avatar-fallback.ts.template +5 -11
  25. package/src/generators/ui/libs/avatar/files/lib/hlm-avatar.ts.template +6 -11
  26. package/src/generators/ui/libs/avatar/files/lib/image/hlm-avatar-image.ts.template +6 -9
  27. package/src/generators/ui/libs/badge/files/lib/hlm-badge.ts.template +6 -7
  28. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-item.ts.template +5 -9
  29. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-link.ts.template +6 -9
  30. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-list.ts.template +5 -11
  31. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-page.ts.template +5 -7
  32. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb-separator.ts.template +5 -7
  33. package/src/generators/ui/libs/breadcrumb/files/lib/hlm-breadcrumb.ts.template +1 -7
  34. package/src/generators/ui/libs/button/files/lib/hlm-button.ts.template +6 -9
  35. package/src/generators/ui/libs/button-group/files/lib/hlm-button-group-separator.ts.template +8 -12
  36. package/src/generators/ui/libs/button-group/files/lib/hlm-button-group-text.ts.template +8 -14
  37. package/src/generators/ui/libs/button-group/files/lib/hlm-button-group.ts.template +6 -9
  38. package/src/generators/ui/libs/card/files/lib/hlm-card-action.ts.template +5 -10
  39. package/src/generators/ui/libs/card/files/lib/hlm-card-content.ts.template +5 -8
  40. package/src/generators/ui/libs/card/files/lib/hlm-card-description.ts.template +5 -8
  41. package/src/generators/ui/libs/card/files/lib/hlm-card-footer.ts.template +5 -8
  42. package/src/generators/ui/libs/card/files/lib/hlm-card-header.ts.template +8 -13
  43. package/src/generators/ui/libs/card/files/lib/hlm-card-title.ts.template +5 -8
  44. package/src/generators/ui/libs/card/files/lib/hlm-card.ts.template +5 -8
  45. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-content.ts.template +5 -8
  46. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-item.ts.template +5 -8
  47. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-next.ts.template +1 -4
  48. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-previous.ts.template +1 -6
  49. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel-slide-display.ts.template +0 -5
  50. package/src/generators/ui/libs/carousel/files/lib/hlm-carousel.ts.template +5 -6
  51. package/src/generators/ui/libs/collapsible/files/lib/hlm-collapsible-content.ts.template +5 -7
  52. package/src/generators/ui/libs/command/files/lib/hlm-command-dialog-close-button.ts.template +8 -13
  53. package/src/generators/ui/libs/command/files/lib/hlm-command-dialog.ts.template +7 -12
  54. package/src/generators/ui/libs/command/files/lib/hlm-command-empty.ts.template +5 -6
  55. package/src/generators/ui/libs/command/files/lib/hlm-command-group-label.ts.template +5 -11
  56. package/src/generators/ui/libs/command/files/lib/hlm-command-group.ts.template +5 -11
  57. package/src/generators/ui/libs/command/files/lib/hlm-command-icon.ts.template +5 -8
  58. package/src/generators/ui/libs/command/files/lib/hlm-command-item.ts.template +8 -14
  59. package/src/generators/ui/libs/command/files/lib/hlm-command-list.ts.template +5 -11
  60. package/src/generators/ui/libs/command/files/lib/hlm-command-search-input.ts.template +8 -14
  61. package/src/generators/ui/libs/command/files/lib/hlm-command-search.ts.template +5 -11
  62. package/src/generators/ui/libs/command/files/lib/hlm-command-separator.ts.template +5 -9
  63. package/src/generators/ui/libs/command/files/lib/hlm-command-shortcut.ts.template +5 -8
  64. package/src/generators/ui/libs/command/files/lib/hlm-command.ts.template +5 -11
  65. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-close.ts.template +8 -12
  66. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-content.ts.template +6 -10
  67. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-description.ts.template +5 -6
  68. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-footer.ts.template +5 -8
  69. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-header.ts.template +5 -8
  70. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-overlay.ts.template +2 -2
  71. package/src/generators/ui/libs/dialog/files/lib/hlm-dialog-title.ts.template +5 -6
  72. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-checkbox-indicator.ts.template +8 -13
  73. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-checkbox.ts.template +9 -13
  74. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-group.ts.template +5 -6
  75. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-item-sub-indicator.ts.template +5 -8
  76. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-item.ts.template +9 -12
  77. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-label.ts.template +5 -8
  78. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-radio-indicator.ts.template +8 -13
  79. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-radio.ts.template +9 -13
  80. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-separator.ts.template +5 -6
  81. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-shortcut.ts.template +5 -8
  82. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu-sub.ts.template +7 -12
  83. package/src/generators/ui/libs/dropdown-menu/files/lib/hlm-dropdown-menu.ts.template +7 -12
  84. package/src/generators/ui/libs/empty/files/lib/hlm-empty-content.ts.template +5 -9
  85. package/src/generators/ui/libs/empty/files/lib/hlm-empty-description.ts.template +7 -12
  86. package/src/generators/ui/libs/empty/files/lib/hlm-empty-header.ts.template +5 -9
  87. package/src/generators/ui/libs/empty/files/lib/hlm-empty-media.ts.template +6 -9
  88. package/src/generators/ui/libs/empty/files/lib/hlm-empty-title.ts.template +5 -7
  89. package/src/generators/ui/libs/empty/files/lib/hlm-empty.ts.template +8 -12
  90. package/src/generators/ui/libs/field/files/lib/hlm-field-content.ts.template +5 -9
  91. package/src/generators/ui/libs/field/files/lib/hlm-field-description.ts.template +6 -11
  92. package/src/generators/ui/libs/field/files/lib/hlm-field-group.ts.template +8 -12
  93. package/src/generators/ui/libs/field/files/lib/hlm-field-label.ts.template +6 -11
  94. package/src/generators/ui/libs/field/files/lib/hlm-field-legend.ts.template +6 -9
  95. package/src/generators/ui/libs/field/files/lib/hlm-field-separator.ts.template +5 -9
  96. package/src/generators/ui/libs/field/files/lib/hlm-field-set.ts.template +6 -11
  97. package/src/generators/ui/libs/field/files/lib/hlm-field-title.ts.template +8 -12
  98. package/src/generators/ui/libs/field/files/lib/hlm-field.ts.template +5 -9
  99. package/src/generators/ui/libs/form-field/files/lib/hlm-error.ts.template +5 -10
  100. package/src/generators/ui/libs/form-field/files/lib/hlm-form-field.ts.template +3 -16
  101. package/src/generators/ui/libs/form-field/files/lib/hlm-hint.ts.template +5 -8
  102. package/src/generators/ui/libs/hover-card/files/lib/hlm-hover-card-content.ts.template +5 -11
  103. package/src/generators/ui/libs/input/files/lib/hlm-input.ts.template +4 -10
  104. package/src/generators/ui/libs/input-group/files/lib/hlm-input-group-addon.ts.template +5 -8
  105. package/src/generators/ui/libs/input-group/files/lib/hlm-input-group-button.ts.template +3 -12
  106. package/src/generators/ui/libs/input-group/files/lib/hlm-input-group-input.ts.template +3 -18
  107. package/src/generators/ui/libs/input-group/files/lib/hlm-input-group-text.ts.template +8 -14
  108. package/src/generators/ui/libs/input-group/files/lib/hlm-input-group-textarea.ts.template +6 -18
  109. package/src/generators/ui/libs/input-group/files/lib/hlm-input-group.ts.template +6 -12
  110. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-group.ts.template +5 -7
  111. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-separator.ts.template +5 -7
  112. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp-slot.ts.template +6 -11
  113. package/src/generators/ui/libs/input-otp/files/lib/hlm-input-otp.ts.template +5 -9
  114. package/src/generators/ui/libs/item/files/lib/hlm-item-actions.ts.template +5 -6
  115. package/src/generators/ui/libs/item/files/lib/hlm-item-content.ts.template +5 -8
  116. package/src/generators/ui/libs/item/files/lib/hlm-item-description.ts.template +6 -10
  117. package/src/generators/ui/libs/item/files/lib/hlm-item-footer.ts.template +5 -8
  118. package/src/generators/ui/libs/item/files/lib/hlm-item-group.ts.template +6 -6
  119. package/src/generators/ui/libs/item/files/lib/hlm-item-header.ts.template +5 -8
  120. package/src/generators/ui/libs/item/files/lib/hlm-item-media.ts.template +6 -10
  121. package/src/generators/ui/libs/item/files/lib/hlm-item-separator.ts.template +6 -7
  122. package/src/generators/ui/libs/item/files/lib/hlm-item-title.ts.template +5 -8
  123. package/src/generators/ui/libs/item/files/lib/hlm-item.ts.template +6 -10
  124. package/src/generators/ui/libs/kbd/files/lib/hlm-kbd-group.ts.template +5 -6
  125. package/src/generators/ui/libs/kbd/files/lib/hlm-kbd.ts.template +6 -10
  126. package/src/generators/ui/libs/label/files/lib/hlm-label.ts.template +8 -14
  127. package/src/generators/ui/libs/menubar/files/lib/hlm-menubar-trigger.ts.template +6 -11
  128. package/src/generators/ui/libs/menubar/files/lib/hlm-menubar.ts.template +5 -8
  129. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-content.ts.template +7 -13
  130. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-item.ts.template +5 -8
  131. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-link.ts.template +6 -12
  132. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-list.ts.template +6 -12
  133. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu-trigger.ts.template +8 -13
  134. package/src/generators/ui/libs/navigation-menu/files/hlm-navigation-menu.ts.template +5 -10
  135. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-content.ts.template +5 -6
  136. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-ellipsis.ts.template +6 -6
  137. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-item.ts.template +5 -6
  138. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-link.ts.template +7 -12
  139. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-next.ts.template +5 -8
  140. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination-previous.ts.template +4 -8
  141. package/src/generators/ui/libs/pagination/files/lib/hlm-pagination.ts.template +6 -7
  142. package/src/generators/ui/libs/popover/files/lib/hlm-popover-content.ts.template +7 -14
  143. package/src/generators/ui/libs/progress/files/lib/hlm-progress-indicator.ts.template +7 -15
  144. package/src/generators/ui/libs/progress/files/lib/hlm-progress.ts.template +5 -10
  145. package/src/generators/ui/libs/radio-group/files/lib/hlm-radio-group.ts.template +5 -6
  146. package/src/generators/ui/libs/radio-group/files/lib/hlm-radio-indicator.ts.template +8 -11
  147. package/src/generators/ui/libs/resizable/files/lib/hlm-resizable-group.ts.template +5 -9
  148. package/src/generators/ui/libs/resizable/files/lib/hlm-resizable-handle.ts.template +8 -12
  149. package/src/generators/ui/libs/resizable/files/lib/hlm-resizable-panel.ts.template +2 -8
  150. package/src/generators/ui/libs/scroll-area/files/lib/hlm-scroll-area.ts.template +5 -6
  151. package/src/generators/ui/libs/select/files/lib/hlm-select-content.ts.template +8 -11
  152. package/src/generators/ui/libs/select/files/lib/hlm-select-group.ts.template +2 -10
  153. package/src/generators/ui/libs/select/files/lib/hlm-select-label.ts.template +7 -12
  154. package/src/generators/ui/libs/select/files/lib/hlm-select-option.ts.template +8 -13
  155. package/src/generators/ui/libs/select/files/lib/hlm-select-scroll-down.ts.template +5 -10
  156. package/src/generators/ui/libs/select/files/lib/hlm-select-scroll-up.ts.template +5 -10
  157. package/src/generators/ui/libs/select/files/lib/hlm-select-value.ts.template +5 -10
  158. package/src/generators/ui/libs/select/files/lib/hlm-select.ts.template +5 -8
  159. package/src/generators/ui/libs/separator/files/lib/hlm-separator.ts.template +5 -8
  160. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-close.ts.template +8 -11
  161. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-content.ts.template +3 -19
  162. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-description.ts.template +5 -6
  163. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-footer.ts.template +5 -6
  164. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-header.ts.template +5 -6
  165. package/src/generators/ui/libs/sheet/files/lib/hlm-sheet-title.ts.template +5 -6
  166. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-content.ts.template +5 -11
  167. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-footer.ts.template +5 -6
  168. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-group-action.ts.template +6 -10
  169. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-group-content.ts.template +5 -6
  170. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-group-label.ts.template +6 -10
  171. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-group.ts.template +5 -8
  172. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-header.ts.template +5 -6
  173. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-input.ts.template +7 -8
  174. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-inset.ts.template +6 -10
  175. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-action.ts.template +7 -10
  176. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-badge.ts.template +6 -10
  177. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-button.ts.template +5 -7
  178. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-item.ts.template +5 -6
  179. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-skeleton.ts.template +6 -8
  180. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-sub-button.ts.template +6 -10
  181. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-sub-item.ts.template +5 -6
  182. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu-sub.ts.template +6 -10
  183. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-menu.ts.template +5 -6
  184. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-rail.ts.template +6 -10
  185. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-separator.ts.template +5 -6
  186. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar-wrapper.ts.template +6 -9
  187. package/src/generators/ui/libs/sidebar/files/lib/hlm-sidebar.ts.template +11 -14
  188. package/src/generators/ui/libs/skeleton/files/lib/hlm-skeleton.ts.template +5 -8
  189. package/src/generators/ui/libs/slider/files/lib/hlm-slider.ts.template +5 -14
  190. package/src/generators/ui/libs/spinner/files/lib/hlm-spinner.ts.template +6 -7
  191. package/src/generators/ui/libs/switch/files/lib/hlm-switch-thumb.ts.template +8 -14
  192. package/src/generators/ui/libs/table/files/lib/hlm-table.ts.template +39 -79
  193. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-content.ts.template +8 -11
  194. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-list.ts.template +5 -8
  195. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-paginated-list.ts.template +6 -7
  196. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs-trigger.ts.template +8 -11
  197. package/src/generators/ui/libs/tabs/files/lib/hlm-tabs.ts.template +5 -6
  198. package/src/generators/ui/libs/textarea/files/lib/hlm-textarea.ts.template +4 -8
  199. package/src/generators/ui/libs/toggle/files/lib/hlm-toggle.ts.template +6 -11
  200. package/src/generators/ui/libs/toggle-group/files/lib/hlm-toggle-group-item.ts.template +7 -12
  201. package/src/generators/ui/libs/toggle-group/files/lib/hlm-toggle-group.ts.template +5 -11
  202. package/src/generators/ui/libs/typography/files/lib/hlm-blockquote.ts.template +5 -8
  203. package/src/generators/ui/libs/typography/files/lib/hlm-code.ts.template +5 -8
  204. package/src/generators/ui/libs/typography/files/lib/hlm-h1.ts.template +5 -8
  205. package/src/generators/ui/libs/typography/files/lib/hlm-h2.ts.template +5 -8
  206. package/src/generators/ui/libs/typography/files/lib/hlm-h3.ts.template +5 -8
  207. package/src/generators/ui/libs/typography/files/lib/hlm-h4.ts.template +5 -8
  208. package/src/generators/ui/libs/typography/files/lib/hlm-large.ts.template +5 -8
  209. package/src/generators/ui/libs/typography/files/lib/hlm-lead.ts.template +5 -8
  210. package/src/generators/ui/libs/typography/files/lib/hlm-muted.ts.template +5 -8
  211. package/src/generators/ui/libs/typography/files/lib/hlm-p.ts.template +5 -8
  212. package/src/generators/ui/libs/typography/files/lib/hlm-small.ts.template +5 -8
  213. package/src/generators/ui/libs/typography/files/lib/hlm-ul.ts.template +5 -8
  214. package/src/generators/ui/libs/utils/files/lib/hlm.ts.template +251 -0
  215. package/src/generators/ui/supported-ui-libraries.json +66 -97
@@ -1,16 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmInputOtpGroup]',
7
6
  host: {
8
7
  'data-slot': 'input-otp-group',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmInputOtpGroup {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
-
15
- protected readonly _computedClass = computed(() => hlm('flex items-center', this.userClass()));
11
+ constructor() {
12
+ classes(() => 'flex items-center');
13
+ }
16
14
  }
@@ -1,9 +1,8 @@
1
- import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { NgIcon, provideIcons } from '@ng-icons/core';
3
3
  import { lucideMinus } from '@ng-icons/lucide';
4
4
  import { HlmIcon } from '<%- importAlias %>/icon';
5
- import { hlm } from '<%- importAlias %>/utils';
6
- import type { ClassValue } from 'clsx';
5
+ import { classes } from '<%- importAlias %>/utils';
7
6
 
8
7
  @Component({
9
8
  selector: 'hlm-input-otp-separator',
@@ -13,14 +12,13 @@ import type { ClassValue } from 'clsx';
13
12
  host: {
14
13
  role: 'separator',
15
14
  'data-slot': 'input-otp-separator',
16
- '[class]': '_computedClass()',
17
15
  },
18
16
  template: `
19
17
  <ng-icon hlm name="lucideMinus" />
20
18
  `,
21
19
  })
22
20
  export class HlmInputOtpSeparator {
23
- public readonly userClass = input<ClassValue>('inline-flex', { alias: 'class' });
24
-
25
- protected readonly _computedClass = computed(() => hlm(this.userClass()));
21
+ constructor() {
22
+ classes(() => 'inline-flex');
23
+ }
26
24
  }
@@ -1,8 +1,7 @@
1
1
  import type { NumberInput } from '@angular/cdk/coercion';
2
- import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';
3
3
  import { BrnInputOtpSlot } from '@spartan-ng/brain/input-otp';
4
- import { hlm } from '<%- importAlias %>/utils';
5
- import type { ClassValue } from 'clsx';
4
+ import { classes } from '<%- importAlias %>/utils';
6
5
  import { HlmInputOtpFakeCaret } from './hlm-input-otp-fake-caret';
7
6
 
8
7
  @Component({
@@ -11,7 +10,6 @@ import { HlmInputOtpFakeCaret } from './hlm-input-otp-fake-caret';
11
10
  changeDetection: ChangeDetectionStrategy.OnPush,
12
11
  host: {
13
12
  'data-slot': 'input-otp-slot',
14
- '[class]': '_computedClass()',
15
13
  },
16
14
  template: `
17
15
  <brn-input-otp-slot [index]="index()">
@@ -20,16 +18,13 @@ import { HlmInputOtpFakeCaret } from './hlm-input-otp-fake-caret';
20
18
  `,
21
19
  })
22
20
  export class HlmInputOtpSlot {
23
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
24
-
25
21
  /** The index of the slot to render the char or a fake caret */
26
22
  public readonly index = input.required<number, NumberInput>({ transform: numberAttribute });
27
23
 
28
- protected readonly _computedClass = computed(() =>
29
- hlm(
24
+ constructor() {
25
+ classes(() => [
30
26
  'dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md',
31
27
  'has-[brn-input-otp-slot[data-active="true"]]:border-ring has-[brn-input-otp-slot[data-active="true"]]:ring-ring/50 has-[brn-input-otp-slot[data-active="true"]]:z-10 has-[brn-input-otp-slot[data-active="true"]]:ring-[3px]',
32
- this.userClass(),
33
- ),
34
- );
28
+ ]);
29
+ }
35
30
  }
@@ -1,18 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: 'brn-input-otp[hlmInputOtp], brn-input-otp[hlm]',
7
6
  host: {
8
7
  'data-slot': 'input-otp',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmInputOtp {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
-
15
- protected readonly _computedClass = computed(() =>
16
- hlm('flex items-center gap-2 has-disabled:opacity-50', this.userClass()),
17
- );
11
+ constructor() {
12
+ classes(() => 'flex items-center gap-2 has-disabled:opacity-50');
13
+ }
18
14
  }
@@ -1,15 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmItemActions],hlm-item-actions',
7
6
  host: {
8
7
  'data-slot': 'item-actions',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmItemActions {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() => hlm('flex items-center gap-2', this.userClass()));
11
+ constructor() {
12
+ classes(() => 'flex items-center gap-2');
13
+ }
15
14
  }
@@ -1,17 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmItemContent],hlm-item-content',
7
6
  host: {
8
7
  'data-slot': 'item-content',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmItemContent {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none', this.userClass()),
16
- );
11
+ constructor() {
12
+ classes(() => 'flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none');
13
+ }
17
14
  }
@@ -1,21 +1,17 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: 'p[hlmItemDescription]',
7
6
  host: {
8
7
  'data-slot': 'item-description',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmItemDescription {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm(
11
+ constructor() {
12
+ classes(() => [
16
13
  'text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance',
17
14
  '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',
18
- this.userClass(),
19
- ),
20
- );
15
+ ]);
16
+ }
21
17
  }
@@ -1,17 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmItemFooter],hlm-item-footer',
7
6
  host: {
8
7
  'data-slot': 'item-footer',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmItemFooter {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('flex basis-full items-center justify-between gap-2', this.userClass()),
16
- );
11
+ constructor() {
12
+ classes(() => 'flex basis-full items-center justify-between gap-2');
13
+ }
17
14
  }
@@ -1,12 +1,12 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmItemGroup],hlm-item-group',
7
- host: { 'data-slot': 'item-group', '[class]': '_computedClass()' },
6
+ host: { 'data-slot': 'item-group' },
8
7
  })
9
8
  export class HlmItemGroup {
10
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
11
- protected readonly _computedClass = computed(() => hlm('group/item-group flex flex-col', this.userClass()));
9
+ constructor() {
10
+ classes(() => 'group/item-group flex flex-col');
11
+ }
12
12
  }
@@ -1,17 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmItemHeader],hlm-item-header',
7
6
  host: {
8
7
  'data-slot': 'item-header',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmItemHeader {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('flex basis-full items-center justify-between gap-2', this.userClass()),
16
- );
11
+ constructor() {
12
+ classes(() => 'flex basis-full items-center justify-between gap-2');
13
+ }
17
14
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
1
+ import { Directive, input } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
3
3
  import { cva, type VariantProps } from 'class-variance-authority';
4
- import type { ClassValue } from 'clsx';
5
4
  import { injectHlmItemMediaConfig } from './hlm-item-token';
6
5
 
7
6
  const itemMediaVariants = cva(
@@ -26,16 +25,13 @@ export type ItemMediaVariants = VariantProps<typeof itemMediaVariants>;
26
25
  host: {
27
26
  'data-slot': 'item-media',
28
27
  '[attr.data-variant]': 'variant()',
29
- '[class]': '_computedClass()',
30
28
  },
31
29
  })
32
30
  export class HlmItemMedia {
33
31
  private readonly _config = injectHlmItemMediaConfig();
34
-
35
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
36
-
37
- protected readonly _computedClass = computed(() =>
38
- hlm(itemMediaVariants({ variant: this.variant() }), this.userClass()),
39
- );
40
32
  public readonly variant = input<ItemMediaVariants['variant']>(this._config.variant);
33
+
34
+ constructor() {
35
+ classes(() => itemMediaVariants({ variant: this.variant() }));
36
+ }
41
37
  }
@@ -1,15 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnSeparator } from '@spartan-ng/brain/separator';
3
3
  import { hlmSeparatorClass } from '<%- importAlias %>/separator';
4
- import { hlm } from '<%- importAlias %>/utils';
5
- import type { ClassValue } from 'clsx';
6
-
4
+ import { classes } from '<%- importAlias %>/utils';
7
5
  @Directive({
8
6
  selector: 'div[hlmItemSeparator]',
9
7
  hostDirectives: [{ directive: BrnSeparator, inputs: ['orientation'] }],
10
- host: { 'data-slot': 'item-separator', '[class]': '_computedClass()' },
8
+ host: { 'data-slot': 'item-separator' },
11
9
  })
12
10
  export class HlmItemSeparator {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() => hlm(hlmSeparatorClass, 'my-0', this.userClass()));
11
+ constructor() {
12
+ classes(() => [hlmSeparatorClass, 'my-0']);
13
+ }
15
14
  }
@@ -1,17 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmItemTitle],hlm-item-title',
7
6
  host: {
8
7
  'data-slot': 'item-title',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmItemTitle {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('flex w-fit items-center gap-2 text-sm leading-snug font-medium', this.userClass()),
16
- );
11
+ constructor() {
12
+ classes(() => 'flex w-fit items-center gap-2 text-sm leading-snug font-medium');
13
+ }
17
14
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
1
+ import { Directive, input } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
3
3
  import { cva, type VariantProps } from 'class-variance-authority';
4
- import type { ClassValue } from 'clsx';
5
4
  import { injectHlmItemConfig } from './hlm-item-token';
6
5
 
7
6
  const itemVariants = cva(
@@ -33,17 +32,14 @@ export type ItemVariants = VariantProps<typeof itemVariants>;
33
32
  'data-slot': 'item',
34
33
  '[attr.data-variant]': 'variant()',
35
34
  '[attr.data-size]': 'size()',
36
- '[class]': '_computedClass()',
37
35
  },
38
36
  })
39
37
  export class HlmItem {
40
38
  private readonly _config = injectHlmItemConfig();
41
-
42
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
43
-
44
- protected readonly _computedClass = computed(() =>
45
- hlm(itemVariants({ variant: this.variant(), size: this.size() }), this.userClass()),
46
- );
47
39
  public readonly variant = input<ItemVariants['variant']>(this._config.variant);
48
40
  public readonly size = input<ItemVariants['size']>(this._config.size);
41
+
42
+ constructor() {
43
+ classes(() => itemVariants({ variant: this.variant(), size: this.size() }));
44
+ }
49
45
  }
@@ -1,15 +1,14 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: 'kbd[hlmKbdGroup]',
7
6
  host: {
8
7
  'data-slot': 'kbd-group',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmKbdGroup {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() => hlm('inline-flex items-center gap-1', this.userClass()));
11
+ constructor() {
12
+ classes(() => 'inline-flex items-center gap-1');
13
+ }
15
14
  }
@@ -1,22 +1,18 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import type { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: 'kbd[hlmKbd]',
7
6
  host: {
8
7
  'data-slot': 'kbd',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmKbd {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm(
11
+ constructor() {
12
+ classes(() => [
16
13
  'bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none',
17
14
  "[&_ng-icon:not([class*='text-'])]:text-xs",
18
15
  '[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10',
19
- this.userClass(),
20
- ),
21
- );
16
+ ]);
17
+ }
22
18
  }
@@ -1,7 +1,6 @@
1
- import { Directive, computed, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnLabel } from '@spartan-ng/brain/label';
3
- import { hlm } from '<%- importAlias %>/utils';
4
- import type { ClassValue } from 'clsx';
3
+ import { classes } from '<%- importAlias %>/utils';
5
4
 
6
5
  @Directive({
7
6
  selector: '[hlmLabel]',
@@ -11,17 +10,12 @@ import type { ClassValue } from 'clsx';
11
10
  inputs: ['id'],
12
11
  },
13
12
  ],
14
- host: {
15
- '[class]': '_computedClass()',
16
- },
17
13
  })
18
14
  export class HlmLabel {
19
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
20
-
21
- protected readonly _computedClass = computed(() =>
22
- hlm(
23
- 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 peer-data-[disabled]:cursor-not-allowed peer-data-[disabled]:opacity-50 has-[[disabled]]:cursor-not-allowed has-[[disabled]]:opacity-50',
24
- this.userClass(),
25
- ),
26
- );
15
+ constructor() {
16
+ classes(
17
+ () =>
18
+ 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 peer-data-[disabled]:cursor-not-allowed peer-data-[disabled]:opacity-50 has-[[disabled]]:cursor-not-allowed has-[[disabled]]:opacity-50',
19
+ );
20
+ }
27
21
  }
@@ -3,8 +3,7 @@ import { CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';
3
3
  import { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { createMenuPosition, type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';
6
- import { hlm } from '<%- importAlias %>/utils';
7
- import type { ClassValue } from 'clsx';
6
+ import { classes } from '<%- importAlias %>/utils';
8
7
  import { injectHlmMenubarConfig } from './hlm-menubar-token';
9
8
 
10
9
  @Directive({
@@ -24,21 +23,12 @@ import { injectHlmMenubarConfig } from './hlm-menubar-token';
24
23
  'data-slot': 'menubar-trigger',
25
24
  '[disabled]': 'disabled() ',
26
25
  '[attr.data-disabled]': 'disabled() ? "" : null',
27
- '[class]': '_computedClass()',
28
26
  },
29
27
  })
30
28
  export class HlmMenubarTrigger {
31
29
  private readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });
32
30
  private readonly _config = injectHlmMenubarConfig();
33
31
 
34
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
35
- protected readonly _computedClass = computed(() =>
36
- hlm(
37
- 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
38
- this.userClass(),
39
- ),
40
- );
41
-
42
32
  public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });
43
33
 
44
34
  public readonly align = input<MenuAlign>(this._config.align);
@@ -62,5 +52,10 @@ export class HlmMenubarTrigger {
62
52
  effect(() => {
63
53
  this._cdkTrigger.menuPosition = this._menuPosition();
64
54
  });
55
+
56
+ classes(
57
+ () =>
58
+ 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
59
+ );
65
60
  }
66
61
  }
@@ -1,19 +1,16 @@
1
1
  import { CdkMenuBar } from '@angular/cdk/menu';
2
- import { computed, Directive, input } from '@angular/core';
3
- import { hlm } from '<%- importAlias %>/utils';
4
- import type { ClassValue } from 'clsx';
2
+ import { Directive } from '@angular/core';
3
+ import { classes } from '<%- importAlias %>/utils';
5
4
 
6
5
  @Directive({
7
6
  selector: '[hlmMenubar],hlm-menubar',
8
7
  hostDirectives: [CdkMenuBar],
9
8
  host: {
10
9
  'data-slot': 'menubar',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmMenubar {
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
- protected readonly _computedClass = computed(() =>
17
- hlm('bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs', this.userClass()),
18
- );
13
+ constructor() {
14
+ classes(() => 'bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs');
15
+ }
19
16
  }
@@ -1,23 +1,17 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
- import { ClassValue } from 'clsx';
1
+ import { Directive } from '@angular/core';
2
+ import { classes } from '<%- importAlias %>/utils';
4
3
 
5
4
  @Directive({
6
5
  selector: '[hlmNavigationMenuContent]',
7
- host: {
8
- '[class]': '_computedClass()',
9
- 'data-slot': 'navigation-menu-content',
10
- },
6
+ host: { 'data-slot': 'navigation-menu-content' },
11
7
  })
12
8
  export class HlmNavigationMenuContent {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm(
9
+ constructor() {
10
+ classes(() => [
16
11
  'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out top-0 left-0 w-full p-2 pr-2.5 md:w-auto',
17
12
  'data-[orientation=horizontal]:data-[motion=from-end]:slide-in-from-right-52 data-[orientation=horizontal]:data-[motion=from-start]:slide-in-from-left-52 data-[orientation=horizontal]:data-[motion=to-end]:slide-out-to-right-52 data-[orientation=horizontal]:data-[motion=to-start]:slide-out-to-left-52',
18
13
  'data-[orientation=vertical]:data-[motion=from-end]:slide-in-from-bottom-52 data-[orientation=vertical]:data-[motion=from-start]:slide-in-from-top-52 data-[orientation=vertical]:data-[motion=to-end]:slide-out-to-bottom-52 data-[orientation=vertical]:data-[motion=to-start]:slide-out-to-top-52',
19
14
  'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0 top-full overflow-hidden rounded-md border shadow duration-200 data-[orientation=horizontal]:mt-1.5 data-[orientation=vertical]:mx-1.5 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none',
20
- this.userClass(),
21
- ),
22
- );
15
+ ]);
16
+ }
23
17
  }
@@ -1,16 +1,13 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnNavigationMenuItem } from '@spartan-ng/brain/navigation-menu';
3
- import { hlm } from '<%- importAlias %>/utils';
4
- import { ClassValue } from 'clsx';
3
+ import { classes } from '<%- importAlias %>/utils';
5
4
 
6
5
  @Directive({
7
6
  selector: 'li[hlmNavigationMenuItem]',
8
7
  hostDirectives: [{ directive: BrnNavigationMenuItem, inputs: ['id'] }],
9
- host: {
10
- '[class]': '_computedClass()',
11
- },
12
8
  })
13
9
  export class HlmNavigationMenuItem {
14
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
15
- protected readonly _computedClass = computed(() => hlm('relative', this.userClass()));
10
+ constructor() {
11
+ classes(() => 'relative');
12
+ }
16
13
  }
@@ -1,22 +1,16 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnNavigationMenuLink } from '@spartan-ng/brain/navigation-menu';
3
- import { hlm } from '<%- importAlias %>/utils';
4
- import { ClassValue } from 'clsx';
3
+ import { classes } from '<%- importAlias %>/utils';
5
4
 
6
5
  @Directive({
7
6
  selector: 'a[hlmNavigationMenuLink]',
8
7
  hostDirectives: [{ directive: BrnNavigationMenuLink, inputs: ['active'] }],
9
- host: {
10
- '[class]': '_computedClass()',
11
- },
12
8
  })
13
9
  export class HlmNavigationMenuLink {
14
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
15
- protected readonly _computedClass = computed(() =>
16
- hlm(
10
+ constructor() {
11
+ classes(() => [
17
12
  'data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_ng-icon:not([class*="text-"])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_ng-icon:not([class*="text-"])]:text-base',
18
13
  'data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',
19
- this.userClass(),
20
- ),
21
- );
14
+ ]);
15
+ }
22
16
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnNavigationMenuList } from '@spartan-ng/brain/navigation-menu';
3
- import { hlm } from '<%- importAlias %>/utils';
4
- import { ClassValue } from 'clsx';
3
+ import { classes } from '<%- importAlias %>/utils';
5
4
 
6
5
  @Directive({
7
6
  selector: 'ul[hlmNavigationMenuList]',
@@ -10,17 +9,12 @@ import { ClassValue } from 'clsx';
10
9
  directive: BrnNavigationMenuList,
11
10
  },
12
11
  ],
13
- host: {
14
- '[class]': '_computedClass()',
15
- },
16
12
  })
17
13
  export class HlmNavigationMenuList {
18
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
19
- protected readonly _computedClass = computed(() =>
20
- hlm(
14
+ constructor() {
15
+ classes(() => [
21
16
  'group flex flex-1 list-none items-center justify-center gap-1',
22
17
  'data-[orientation=vertical]:flex-col',
23
- this.userClass(),
24
- ),
25
- );
18
+ ]);
19
+ }
26
20
  }