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

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,10 +1,9 @@
1
- import { ChangeDetectionStrategy, Component, computed, effect, inject, input, untracked } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, effect, inject, untracked } from '@angular/core';
2
2
  import { NgIcon, provideIcons } from '@ng-icons/core';
3
3
  import { lucideArrowLeft } from '@ng-icons/lucide';
4
4
  import { HlmButton, provideBrnButtonConfig } from '<%- importAlias %>/button';
5
5
  import { HlmIcon } from '<%- importAlias %>/icon';
6
6
  import { hlm } from '<%- importAlias %>/utils';
7
- import type { ClassValue } from 'clsx';
8
7
  import { HlmCarousel } from './hlm-carousel';
9
8
 
10
9
  @Component({
@@ -28,15 +27,12 @@ export class HlmCarouselPrevious {
28
27
 
29
28
  protected readonly _carousel = inject(HlmCarousel);
30
29
 
31
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
32
-
33
30
  private readonly _computedClass = computed(() =>
34
31
  hlm(
35
32
  'absolute h-8 w-8 rounded-full',
36
33
  this._carousel.orientation() === 'horizontal'
37
34
  ? 'top-1/2 -left-12 -translate-y-1/2'
38
35
  : '-top-12 left-1/2 -translate-x-1/2 rotate-90',
39
- this.userClass(),
40
36
  ),
41
37
  );
42
38
  protected readonly isDisabled = () => !this._carousel.canScrollPrev();
@@ -44,7 +40,6 @@ export class HlmCarouselPrevious {
44
40
  constructor() {
45
41
  effect(() => {
46
42
  const computedClass = this._computedClass();
47
-
48
43
  untracked(() => this._button.setClass(computedClass));
49
44
  });
50
45
  }
@@ -1,5 +1,4 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
2
- import { hlm } from '<%- importAlias %>/utils';
3
2
  import type { ClassValue } from 'clsx';
4
3
  import { HlmCarousel } from './hlm-carousel';
5
4
 
@@ -8,7 +7,6 @@ import { HlmCarousel } from './hlm-carousel';
8
7
  changeDetection: ChangeDetectionStrategy.OnPush,
9
8
  host: {
10
9
  'data-slot': 'carousel-slide-display',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  template: `
14
12
  <span class="sr-only">{{ _labelContent() }}</span>
@@ -20,9 +18,6 @@ export class HlmCarouselSlideDisplay {
20
18
 
21
19
  protected readonly _currentSlide = computed(() => this._carousel.currentSlide() + 1);
22
20
 
23
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
24
- protected readonly _computedClass = computed(() => hlm('', this.userClass()));
25
-
26
21
  public readonly slideClass = input<ClassValue>('text-muted-foreground text-sm');
27
22
 
28
23
  /** Screen reader only text for the slide display */
@@ -8,8 +8,7 @@ import {
8
8
  signal,
9
9
  viewChild,
10
10
  } from '@angular/core';
11
- import { hlm } from '<%- importAlias %>/utils';
12
- import type { ClassValue } from 'clsx';
11
+ import { classes } from '<%- importAlias %>/utils';
13
12
  import {
14
13
  EmblaCarouselDirective,
15
14
  type EmblaEventType,
@@ -23,7 +22,6 @@ import {
23
22
  changeDetection: ChangeDetectionStrategy.OnPush,
24
23
  host: {
25
24
  'data-slot': 'carousel',
26
- '[class]': '_computedClass()',
27
25
  role: 'region',
28
26
  'aria-roledescription': 'carousel',
29
27
  '(keydown)': 'onKeydown($event)',
@@ -45,9 +43,6 @@ import {
45
43
  export class HlmCarousel {
46
44
  protected readonly _emblaCarousel = viewChild.required(EmblaCarouselDirective);
47
45
 
48
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
49
- protected readonly _computedClass = computed(() => hlm('relative', this.userClass()));
50
-
51
46
  public readonly orientation = input<'horizontal' | 'vertical'>('horizontal');
52
47
  public readonly options: InputSignal<Omit<EmblaOptionsType, 'axis'> | undefined> =
53
48
  input<Omit<EmblaOptionsType, 'axis'>>();
@@ -68,6 +63,10 @@ export class HlmCarousel {
68
63
  private readonly _slideCount = signal(0);
69
64
  public readonly slideCount = this._slideCount.asReadonly();
70
65
 
66
+ constructor() {
67
+ classes(() => 'relative');
68
+ }
69
+
71
70
  protected onEmblaEvent(event: EmblaEventType) {
72
71
  const emblaApi = this._emblaCarousel().emblaApi;
73
72
 
@@ -1,18 +1,16 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnCollapsibleContent } from '@spartan-ng/brain/collapsible';
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: '[hlmCollapsibleContent],hlm-collapsible-content',
8
7
  hostDirectives: [{ directive: BrnCollapsibleContent, inputs: ['id'] }],
9
8
  host: {
10
9
  'data-slot': 'collapsible-content',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmCollapsibleContent {
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
-
17
- protected readonly _computedClass = computed(() => hlm('data-[state=closed]:hidden', this.userClass()));
13
+ constructor() {
14
+ classes(() => 'data-[state=closed]:hidden');
15
+ }
18
16
  }
@@ -1,24 +1,19 @@
1
- import { Directive, computed, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnDialogClose } from '@spartan-ng/brain/dialog';
3
3
  import { HlmButton, provideBrnButtonConfig } from '<%- importAlias %>/button';
4
4
  import { provideHlmIconConfig } 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
  @Directive({
9
8
  selector: '[hlmCommandDialogCloseBtn]',
10
9
  providers: [provideBrnButtonConfig({ variant: 'ghost' }), provideHlmIconConfig({ size: 'xs' })],
11
10
  hostDirectives: [HlmButton, BrnDialogClose],
12
- host: {
13
- '[class]': '_computedClass()',
14
- },
15
11
  })
16
12
  export class HlmCommandDialogCloseButton {
17
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
18
- protected readonly _computedClass = computed(() =>
19
- hlm(
20
- 'focus-visible:ring-ring hover:bg-accent hover:text-accent-foreground ring-offset-background absolute top-3 right-3 inline-flex !h-5 h-10 !w-5 items-center justify-center rounded-md !p-1 px-4 py-2 text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',
21
- this.userClass(),
22
- ),
23
- );
13
+ constructor() {
14
+ classes(
15
+ () =>
16
+ 'focus-visible:ring-ring hover:bg-accent hover:text-accent-foreground ring-offset-background absolute top-3 right-3 inline-flex !h-5 h-10 !w-5 items-center justify-center rounded-md !p-1 px-4 py-2 text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',
17
+ );
18
+ }
24
19
  }
@@ -1,14 +1,12 @@
1
- import { Directive, ElementRef, Renderer2, computed, contentChild, effect, inject, input, signal } from '@angular/core';
1
+ import { Directive, ElementRef, Renderer2, contentChild, effect, inject, signal } from '@angular/core';
2
2
  import { BrnCommandSearchInputToken } from '@spartan-ng/brain/command';
3
3
  import { injectExposesStateProvider } from '@spartan-ng/brain/core';
4
- import { hlm } from '<%- importAlias %>/utils';
5
- import type { ClassValue } from 'clsx';
4
+ import { classes } from '<%- importAlias %>/utils';
6
5
 
7
6
  @Directive({
8
7
  selector: '[hlmCommandDialog]',
9
8
  host: {
10
9
  'data-slot': 'command-dialog',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmCommandDialog {
@@ -20,15 +18,12 @@ export class HlmCommandDialog {
20
18
  /** Access the search field */
21
19
  private readonly _searchInput = contentChild(BrnCommandSearchInputToken, { read: ElementRef });
22
20
 
23
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
24
- protected readonly _computedClass = computed(() =>
25
- hlm(
26
- '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-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%]',
27
- this.userClass(),
28
- ),
29
- );
30
-
31
21
  constructor() {
22
+ classes(
23
+ () =>
24
+ '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-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%]',
25
+ );
26
+
32
27
  effect(() => {
33
28
  this._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());
34
29
 
@@ -1,15 +1,14 @@
1
- import { Directive, computed, 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: '[hlmCommandEmpty]',
7
6
  host: {
8
7
  'data-slot': 'command-empty',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmCommandEmpty {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() => hlm('py-6 text-center text-sm', this.userClass()));
11
+ constructor() {
12
+ classes(() => 'py-6 text-center text-sm');
13
+ }
15
14
  }
@@ -1,21 +1,15 @@
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: '[hlmCommandGroupLabel],hlm-command-group-label',
7
6
  host: {
8
7
  'data-slot': 'command-group-label',
9
8
  role: 'presentation',
10
- '[class]': '_computedClass()',
11
9
  },
12
10
  })
13
11
  export class HlmCommandGroupLabel {
14
- /** The user defined class */
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
-
17
- /** The styles to apply */
18
- protected readonly _computedClass = computed(() =>
19
- hlm('text-muted-foreground px-2 py-1.5 text-xs font-medium', this.userClass()),
20
- );
12
+ constructor() {
13
+ classes(() => 'text-muted-foreground px-2 py-1.5 text-xs font-medium');
14
+ }
21
15
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnCommandGroup } from '@spartan-ng/brain/command';
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: '[hlmCommandGroup],hlm-command-group',
@@ -13,15 +12,10 @@ import type { ClassValue } from 'clsx';
13
12
  ],
14
13
  host: {
15
14
  'data-slot': 'command-group',
16
- '[class]': '_computedClass()',
17
15
  },
18
16
  })
19
17
  export class HlmCommandGroup {
20
- /** The user defined class */
21
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
22
-
23
- /** The styles to apply */
24
- protected readonly _computedClass = computed(() =>
25
- hlm('text-foreground block overflow-hidden p-1 data-[hidden]:hidden', this.userClass()),
26
- );
18
+ constructor() {
19
+ classes(() => 'text-foreground block overflow-hidden p-1 data-[hidden]:hidden');
20
+ }
27
21
  }
@@ -1,19 +1,16 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { provideHlmIconConfig } from '<%- importAlias %>/icon';
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: '[hlmCommandIcon]',
8
7
  providers: [provideHlmIconConfig({ size: 'sm' })],
9
8
  host: {
10
9
  'data-slot': 'command-icon',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmCommandIcon {
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
- protected readonly _computedClass = computed(() =>
17
- hlm('text-muted-foreground pointer-events-none shrink-0', this.userClass()),
18
- );
13
+ constructor() {
14
+ classes(() => 'text-muted-foreground pointer-events-none shrink-0');
15
+ }
19
16
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnCommandItem } from '@spartan-ng/brain/command';
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: 'button[hlmCommandItem],button[hlm-command-item]',
@@ -14,18 +13,13 @@ import type { ClassValue } from 'clsx';
14
13
  ],
15
14
  host: {
16
15
  'data-slot': 'command-item',
17
- '[class]': '_computedClass()',
18
16
  },
19
17
  })
20
18
  export class HlmCommandItem {
21
- /** The user defined class */
22
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
23
-
24
- /** The styles to apply */
25
- protected readonly _computedClass = computed(() =>
26
- hlm(
27
- `data-[selected]:bg-accent data-[selected=true]:text-accent-foreground [&>ng-icon:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[hidden]:hidden [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon:not([class*='text-'])]:text-base`,
28
- this.userClass(),
29
- ),
30
- );
19
+ constructor() {
20
+ classes(
21
+ () =>
22
+ "data-[selected]:bg-accent data-[selected=true]:text-accent-foreground [&>ng-icon:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[hidden]:hidden [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon:not([class*='text-'])]:text-base",
23
+ );
24
+ }
31
25
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnCommandList } from '@spartan-ng/brain/command';
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: '[hlmCommandList],hlm-command-list',
@@ -13,15 +12,10 @@ import type { ClassValue } from 'clsx';
13
12
  ],
14
13
  host: {
15
14
  'data-slot': 'command-list',
16
- '[class]': '_computedClass()',
17
15
  },
18
16
  })
19
17
  export class HlmCommandList {
20
- /** The user defined class */
21
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
22
-
23
- /** The styles to apply */
24
- protected readonly _computedClass = computed(() =>
25
- hlm('max-h-[300px] overflow-x-hidden overflow-y-auto', this.userClass()),
26
- );
18
+ constructor() {
19
+ classes(() => 'max-h-[300px] overflow-x-hidden overflow-y-auto');
20
+ }
27
21
  }
@@ -1,25 +1,19 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnCommandSearchInput } from '@spartan-ng/brain/command';
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: 'input[hlmCommandSearchInput],input[hlm-command-search-input]',
8
7
  hostDirectives: [{ directive: BrnCommandSearchInput, inputs: ['value'] }],
9
8
  host: {
10
9
  'data-slot': 'command-search-input',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmCommandSearchInput {
15
- /** The user defined class */
16
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
17
-
18
- /** The styles to apply */
19
- protected readonly _computedClass = computed(() =>
20
- hlm(
21
- 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',
22
- this.userClass(),
23
- ),
24
- );
13
+ constructor() {
14
+ classes(
15
+ () =>
16
+ 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',
17
+ );
18
+ }
25
19
  }
@@ -1,22 +1,16 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { provideHlmIconConfig } from '<%- importAlias %>/icon';
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: '[hlmCommandSearch],hlm-command-search',
8
7
  providers: [provideHlmIconConfig({ size: 'sm' })],
9
8
  host: {
10
9
  'data-slot': 'command-search',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmCommandSearch {
15
- /** The user defined class */
16
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
17
-
18
- /** The styles to apply */
19
- protected readonly _computedClass = computed(() =>
20
- hlm('flex h-9 items-center gap-2 border-b px-3 [&>_ng-icon]:flex-none [&>_ng-icon]:opacity-50', this.userClass()),
21
- );
13
+ constructor() {
14
+ classes(() => 'flex h-9 items-center gap-2 border-b px-3 [&>_ng-icon]:flex-none [&>_ng-icon]:opacity-50');
15
+ }
22
16
  }
@@ -1,19 +1,15 @@
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: '[hlmCommandSeparator],hlm-command-separator',
7
6
  host: {
8
7
  'data-slot': 'command-separator',
9
8
  role: 'separator',
10
- '[class]': '_computedClass()',
11
9
  },
12
10
  })
13
11
  export class HlmCommandSeparator {
14
- /** The user defined class */
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
-
17
- /** The styles to apply */
18
- protected readonly _computedClass = computed(() => hlm('bg-border -mx-1 block h-px', this.userClass()));
12
+ constructor() {
13
+ classes(() => 'bg-border -mx-1 block h-px');
14
+ }
19
15
  }
@@ -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: '[hlmCommandShortcut],hlm-command-shortcut',
7
6
  host: {
8
7
  'data-slot': 'command-shortcut',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmCommandShortcut {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('text-muted-foreground ml-auto text-xs tracking-widest', this.userClass()),
16
- );
11
+ constructor() {
12
+ classes(() => 'text-muted-foreground ml-auto text-xs tracking-widest');
13
+ }
17
14
  }
@@ -1,7 +1,6 @@
1
- import { computed, Directive, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnCommand } from '@spartan-ng/brain/command';
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: '[hlmCommand],hlm-command',
@@ -14,15 +13,10 @@ import type { ClassValue } from 'clsx';
14
13
  ],
15
14
  host: {
16
15
  'data-slot': 'command',
17
- '[class]': '_computedClass()',
18
16
  },
19
17
  })
20
18
  export class HlmCommand {
21
- /** The user defined class */
22
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
23
-
24
- /** The styles to apply */
25
- protected readonly _computedClass = computed(() =>
26
- hlm('bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md', this.userClass()),
27
- );
19
+ constructor() {
20
+ classes(() => 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md');
21
+ }
28
22
  }
@@ -1,23 +1,19 @@
1
- import { Directive, computed, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnDialogClose } from '@spartan-ng/brain/dialog';
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: 'button[hlmDialogClose]',
8
7
  hostDirectives: [{ directive: BrnDialogClose, inputs: ['delay'] }],
9
8
  host: {
10
9
  'data-slot': 'dialog-close',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmDialogClose {
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
-
17
- protected readonly _computedClass = computed(() =>
18
- hlm(
19
- 'ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 flex items-center justify-center rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none [&_ng-icon]:shrink-0',
20
- this.userClass(),
21
- ),
22
- );
13
+ constructor() {
14
+ classes(
15
+ () =>
16
+ 'ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 flex items-center justify-center rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none [&_ng-icon]:shrink-0',
17
+ );
18
+ }
23
19
  }
@@ -1,11 +1,10 @@
1
1
  import { NgComponentOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
3
3
  import { provideIcons } from '@ng-icons/core';
4
4
  import { lucideX } from '@ng-icons/lucide';
5
5
  import { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';
6
6
  import { HlmIconImports } from '<%- importAlias %>/icon';
7
- import { hlm } from '<%- importAlias %>/utils';
8
- import type { ClassValue } from 'clsx';
7
+ import { classes } from '<%- importAlias %>/utils';
9
8
  import { HlmDialogClose } from './hlm-dialog-close';
10
9
 
11
10
  @Component({
@@ -15,7 +14,6 @@ import { HlmDialogClose } from './hlm-dialog-close';
15
14
  changeDetection: ChangeDetectionStrategy.OnPush,
16
15
  host: {
17
16
  'data-slot': 'dialog-content',
18
- '[class]': '_computedClass()',
19
17
  '[attr.data-state]': 'state()',
20
18
  },
21
19
  template: `
@@ -40,12 +38,10 @@ export class HlmDialogContent {
40
38
  public readonly component = this._dialogContext?.$component;
41
39
  private readonly _dynamicComponentClass = this._dialogContext?.$dynamicComponentClass;
42
40
 
43
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
44
- protected readonly _computedClass = computed(() =>
45
- hlm(
41
+ constructor() {
42
+ classes(() => [
46
43
  'bg-background 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 relative z-50 mx-auto grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border p-6 shadow-lg data-[state=closed]:duration-200 data-[state=open]:duration-200 sm:mx-0 sm:max-w-lg',
47
- this.userClass(),
48
44
  this._dynamicComponentClass,
49
- ),
50
- );
45
+ ]);
46
+ }
51
47
  }
@@ -1,17 +1,16 @@
1
- import { Directive, computed, input } from '@angular/core';
1
+ import { Directive } from '@angular/core';
2
2
  import { BrnDialogDescription } from '@spartan-ng/brain/dialog';
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: '[hlmDialogDescription]',
8
7
  hostDirectives: [BrnDialogDescription],
9
8
  host: {
10
9
  'data-slot': 'dialog-description',
11
- '[class]': '_computedClass()',
12
10
  },
13
11
  })
14
12
  export class HlmDialogDescription {
15
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
16
- protected readonly _computedClass = computed(() => hlm('text-muted-foreground text-sm', this.userClass()));
13
+ constructor() {
14
+ classes(() => 'text-muted-foreground text-sm');
15
+ }
17
16
  }
@@ -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: '[hlmDialogFooter],hlm-dialog-footer',
7
6
  host: {
8
7
  'data-slot': 'dialog-footer',
9
- '[class]': '_computedClass()',
10
8
  },
11
9
  })
12
10
  export class HlmDialogFooter {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.userClass()),
16
- );
11
+ constructor() {
12
+ classes(() => 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end');
13
+ }
17
14
  }