@spartan-ng/cli 0.0.1-alpha.598 → 0.0.1-alpha.600

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spartan-ng/cli",
3
- "version": "0.0.1-alpha.598",
3
+ "version": "0.0.1-alpha.600",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "@angular/core": ">=19.0.0",
@@ -1,10 +1,9 @@
1
1
  import { HlmCommand } from './lib/hlm-command';
2
2
  import { HlmCommandDialog } from './lib/hlm-command-dialog';
3
- import { HlmCommandDialogCloseButton } from './lib/hlm-command-dialog-close-button';
4
3
  import { HlmCommandEmpty } from './lib/hlm-command-empty';
4
+ import { HlmCommandEmptyState } from './lib/hlm-command-empty-state';
5
5
  import { HlmCommandGroup } from './lib/hlm-command-group';
6
6
  import { HlmCommandGroupLabel } from './lib/hlm-command-group-label';
7
- import { HlmCommandIcon } from './lib/hlm-command-icon';
8
7
  import { HlmCommandItem } from './lib/hlm-command-item';
9
8
  import { HlmCommandList } from './lib/hlm-command-list';
10
9
  import { HlmCommandSearch } from './lib/hlm-command-search';
@@ -14,11 +13,10 @@ import { HlmCommandShortcut } from './lib/hlm-command-shortcut';
14
13
 
15
14
  export * from './lib/hlm-command';
16
15
  export * from './lib/hlm-command-dialog';
17
- export * from './lib/hlm-command-dialog-close-button';
18
16
  export * from './lib/hlm-command-empty';
17
+ export * from './lib/hlm-command-empty-state';
19
18
  export * from './lib/hlm-command-group';
20
19
  export * from './lib/hlm-command-group-label';
21
- export * from './lib/hlm-command-icon';
22
20
  export * from './lib/hlm-command-item';
23
21
  export * from './lib/hlm-command-list';
24
22
  export * from './lib/hlm-command-search';
@@ -28,16 +26,15 @@ export * from './lib/hlm-command-shortcut';
28
26
 
29
27
  export const HlmCommandImports = [
30
28
  HlmCommand,
31
- HlmCommandItem,
32
- HlmCommandSeparator,
29
+ HlmCommandDialog,
30
+ HlmCommandEmpty,
31
+ HlmCommandEmptyState,
33
32
  HlmCommandGroup,
33
+ HlmCommandGroupLabel,
34
+ HlmCommandItem,
34
35
  HlmCommandList,
35
- HlmCommandShortcut,
36
- HlmCommandIcon,
37
- HlmCommandDialogCloseButton,
38
- HlmCommandDialog,
39
36
  HlmCommandSearchInput,
40
37
  HlmCommandSearch,
41
- HlmCommandGroupLabel,
42
- HlmCommandEmpty,
38
+ HlmCommandSeparator,
39
+ HlmCommandShortcut,
43
40
  ] as const;
@@ -1,6 +1,5 @@
1
- import { Directive, ElementRef, Renderer2, contentChild, effect, inject, signal } from '@angular/core';
1
+ import { Directive, ElementRef, afterNextRender, contentChild } from '@angular/core';
2
2
  import { BrnCommandSearchInputToken } from '@spartan-ng/brain/command';
3
- import { injectExposesStateProvider } from '@spartan-ng/brain/core';
4
3
  import { classes } from '<%- importAlias %>/utils';
5
4
 
6
5
  @Directive({
@@ -10,26 +9,16 @@ import { classes } from '<%- importAlias %>/utils';
10
9
  },
11
10
  })
12
11
  export class HlmCommandDialog {
13
- private readonly _stateProvider = injectExposesStateProvider({ host: true });
14
- public readonly state = this._stateProvider.state ?? signal('closed').asReadonly();
15
- private readonly _renderer = inject(Renderer2);
16
- private readonly _element = inject(ElementRef);
17
-
18
12
  /** Access the search field */
19
13
  private readonly _searchInput = contentChild(BrnCommandSearchInputToken, { read: ElementRef });
20
14
 
21
15
  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
-
27
- effect(() => {
28
- this._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());
16
+ classes(() => '**:data-[slot=command-search]:h-12 **:data-[slot=command-search-input]:h-12');
29
17
 
18
+ afterNextRender(() => {
30
19
  const searchInput = this._searchInput();
31
20
 
32
- if (this.state() === 'open' && searchInput) {
21
+ if (searchInput) {
33
22
  searchInput.nativeElement.focus();
34
23
  }
35
24
  });
@@ -0,0 +1,8 @@
1
+ import { Directive } from '@angular/core';
2
+ import { BrnCommandEmpty } from '@spartan-ng/brain/command';
3
+
4
+ @Directive({
5
+ selector: '[hlmCommandEmptyState]',
6
+ hostDirectives: [BrnCommandEmpty],
7
+ })
8
+ export class HlmCommandEmptyState {}
@@ -10,6 +10,6 @@ import { classes } from '<%- importAlias %>/utils';
10
10
  })
11
11
  export class HlmCommandGroupLabel {
12
12
  constructor() {
13
- classes(() => 'text-muted-foreground px-2 py-1.5 text-xs font-medium');
13
+ classes(() => 'text-muted-foreground block px-2 py-1.5 text-xs font-medium');
14
14
  }
15
15
  }
@@ -16,6 +16,6 @@ import { classes } from '<%- importAlias %>/utils';
16
16
  })
17
17
  export class HlmCommandGroup {
18
18
  constructor() {
19
- classes(() => 'text-foreground block overflow-hidden p-1 data-[hidden]:hidden');
19
+ classes(() => 'text-foreground block overflow-hidden p-1 data-hidden:hidden');
20
20
  }
21
21
  }
@@ -19,7 +19,7 @@ export class HlmCommandItem {
19
19
  constructor() {
20
20
  classes(
21
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",
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-hidden:hidden data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon:not([class*='text-'])]:text-base",
23
23
  );
24
24
  }
25
25
  }
@@ -16,6 +16,6 @@ import { classes } from '<%- importAlias %>/utils';
16
16
  })
17
17
  export class HlmCommandList {
18
18
  constructor() {
19
- classes(() => 'max-h-[300px] overflow-x-hidden overflow-y-auto');
19
+ classes(() => 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto');
20
20
  }
21
21
  }
@@ -13,7 +13,7 @@ export class HlmCommandSearchInput {
13
13
  constructor() {
14
14
  classes(
15
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',
16
+ 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',
17
17
  );
18
18
  }
19
19
  }
@@ -1,15 +1,16 @@
1
1
  import { Directive } from '@angular/core';
2
+ import { BrnCommandSeparator } from '@spartan-ng/brain/command';
2
3
  import { classes } from '<%- importAlias %>/utils';
3
4
 
4
5
  @Directive({
5
6
  selector: '[hlmCommandSeparator],hlm-command-separator',
7
+ hostDirectives: [BrnCommandSeparator],
6
8
  host: {
7
9
  'data-slot': 'command-separator',
8
- role: 'separator',
9
10
  },
10
11
  })
11
12
  export class HlmCommandSeparator {
12
13
  constructor() {
13
- classes(() => 'bg-border -mx-1 block h-px');
14
+ classes(() => 'bg-border -mx-1 block h-px data-hidden:hidden');
14
15
  }
15
16
  }
@@ -1,5 +1,6 @@
1
+ import type { BooleanInput } from '@angular/cdk/coercion';
1
2
  import { NgComponentOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
3
+ import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
3
4
  import { provideIcons } from '@ng-icons/core';
4
5
  import { lucideX } from '@ng-icons/lucide';
5
6
  import { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';
@@ -23,16 +24,20 @@ import { HlmDialogClose } from './hlm-dialog-close';
23
24
  <ng-content />
24
25
  }
25
26
 
26
- <button hlmDialogClose>
27
- <span class="sr-only">Close</span>
28
- <ng-icon hlm size="sm" name="lucideX" />
29
- </button>
27
+ @if (showCloseButton()) {
28
+ <button hlmDialogClose>
29
+ <span class="sr-only">Close</span>
30
+ <ng-icon hlm size="sm" name="lucideX" />
31
+ </button>
32
+ }
30
33
  `,
31
34
  })
32
35
  export class HlmDialogContent {
33
36
  private readonly _dialogRef = inject(BrnDialogRef);
34
37
  private readonly _dialogContext = injectBrnDialogContext({ optional: true });
35
38
 
39
+ public readonly showCloseButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });
40
+
36
41
  public readonly state = computed(() => this._dialogRef?.state() ?? 'closed');
37
42
 
38
43
  public readonly component = this._dialogContext?.$component;
@@ -13,9 +13,6 @@ export class HlmTabsContent {
13
13
  public readonly contentFor = input.required<string>({ alias: 'hlmTabsContent' });
14
14
 
15
15
  constructor() {
16
- classes(
17
- () =>
18
- 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',
19
- );
16
+ classes(() => 'flex-1 text-sm outline-none');
20
17
  }
21
18
  }
@@ -4,16 +4,16 @@ import { classes } from '<%- importAlias %>/utils';
4
4
  import { type VariantProps, cva } from 'class-variance-authority';
5
5
 
6
6
  export const listVariants = cva(
7
- 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]',
7
+ 'group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center rounded-lg p-[3px] group-data-horizontal/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none',
8
8
  {
9
9
  variants: {
10
- orientation: {
11
- horizontal: 'h-10 space-x-1',
12
- vertical: 'mt-2 h-fit flex-col space-y-1',
10
+ variant: {
11
+ default: 'bg-muted',
12
+ line: 'gap-1 bg-transparent',
13
13
  },
14
14
  },
15
15
  defaultVariants: {
16
- orientation: 'horizontal',
16
+ variant: 'default',
17
17
  },
18
18
  },
19
19
  );
@@ -24,12 +24,13 @@ type ListVariants = VariantProps<typeof listVariants>;
24
24
  hostDirectives: [BrnTabsList],
25
25
  host: {
26
26
  'data-slot': 'tabs-list',
27
+ '[attr.data-variant]': 'variant()',
27
28
  },
28
29
  })
29
30
  export class HlmTabsList {
30
- public readonly orientation = input<ListVariants['orientation']>('horizontal');
31
+ public readonly variant = input<ListVariants['variant']>('default');
31
32
 
32
33
  constructor() {
33
- classes(() => listVariants({ orientation: this.orientation() }));
34
+ classes(() => listVariants({ variant: this.variant() }));
34
35
  }
35
36
  }
@@ -12,9 +12,11 @@ import { classes } from '<%- importAlias %>/utils';
12
12
  export class HlmTabsTrigger {
13
13
  public readonly triggerFor = input.required<string>({ alias: 'hlmTabsTrigger' });
14
14
  constructor() {
15
- classes(
16
- () =>
17
- `data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0 [&_ng-icon:not([class*='text-'])]:text-base`,
18
- );
15
+ classes(() => [
16
+ `focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0 [&_ng-icon:not([class*='text-'])]:text-base`,
17
+ 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent',
18
+ 'data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground',
19
+ 'after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',
20
+ ]);
19
21
  }
20
22
  }
@@ -7,7 +7,7 @@ import { classes } from '<%- importAlias %>/utils';
7
7
  hostDirectives: [
8
8
  {
9
9
  directive: BrnTabs,
10
- inputs: ['orientation', 'direction', 'activationMode', 'brnTabs: tab'],
10
+ inputs: ['orientation', 'activationMode', 'brnTabs: tab'],
11
11
  outputs: ['tabActivated'],
12
12
  },
13
13
  ],
@@ -19,6 +19,6 @@ export class HlmTabs {
19
19
  public readonly tab = input.required<string>();
20
20
 
21
21
  constructor() {
22
- classes(() => 'flex flex-col gap-2');
22
+ classes(() => 'group/tabs flex gap-2 data-[orientation=horizontal]:flex-col');
23
23
  }
24
24
  }
@@ -3,7 +3,7 @@
3
3
  "name": "accordion",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=20.0.0 <22.0.0",
6
- "@spartan-ng/brain": "0.0.1-alpha.598",
6
+ "@spartan-ng/brain": "0.0.1-alpha.600",
7
7
  "@ng-icons/core": ">=32.0.0 <34.0.0",
8
8
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
9
9
  }
@@ -19,7 +19,7 @@
19
19
  "name": "alert-dialog",
20
20
  "peerDependencies": {
21
21
  "@angular/core": ">=20.0.0 <22.0.0",
22
- "@spartan-ng/brain": "0.0.1-alpha.598",
22
+ "@spartan-ng/brain": "0.0.1-alpha.600",
23
23
  "clsx": "^2.1.1"
24
24
  }
25
25
  },
@@ -34,7 +34,7 @@
34
34
  "name": "autocomplete",
35
35
  "peerDependencies": {
36
36
  "@angular/core": ">=20.0.0 <22.0.0",
37
- "@spartan-ng/brain": "0.0.1-alpha.598",
37
+ "@spartan-ng/brain": "0.0.1-alpha.600",
38
38
  "@angular/cdk": ">=20.0.0 <22.0.0",
39
39
  "@angular/common": ">=20.0.0 <22.0.0",
40
40
  "@angular/forms": ">=20.0.0 <22.0.0",
@@ -47,7 +47,7 @@
47
47
  "name": "avatar",
48
48
  "peerDependencies": {
49
49
  "@angular/core": ">=20.0.0 <22.0.0",
50
- "@spartan-ng/brain": "0.0.1-alpha.598"
50
+ "@spartan-ng/brain": "0.0.1-alpha.600"
51
51
  }
52
52
  },
53
53
  "badge": {
@@ -71,7 +71,7 @@
71
71
  "name": "button",
72
72
  "peerDependencies": {
73
73
  "@angular/core": ">=20.0.0 <22.0.0",
74
- "@spartan-ng/brain": "0.0.1-alpha.598",
74
+ "@spartan-ng/brain": "0.0.1-alpha.600",
75
75
  "class-variance-authority": "^0.7.0",
76
76
  "clsx": "^2.1.1"
77
77
  }
@@ -80,7 +80,7 @@
80
80
  "name": "button-group",
81
81
  "peerDependencies": {
82
82
  "@angular/core": ">=20.0.0 <22.0.0",
83
- "@spartan-ng/brain": "0.0.1-alpha.598",
83
+ "@spartan-ng/brain": "0.0.1-alpha.600",
84
84
  "class-variance-authority": "^0.7.0"
85
85
  }
86
86
  },
@@ -92,7 +92,7 @@
92
92
  "@angular/core": ">=20.0.0 <22.0.0",
93
93
  "@ng-icons/core": ">=32.0.0 <34.0.0",
94
94
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
95
- "@spartan-ng/brain": "0.0.1-alpha.598",
95
+ "@spartan-ng/brain": "0.0.1-alpha.600",
96
96
  "clsx": "^2.1.1"
97
97
  }
98
98
  },
@@ -121,7 +121,7 @@
121
121
  "@angular/cdk": ">=20.0.0 <22.0.0",
122
122
  "@ng-icons/core": ">=32.0.0 <34.0.0",
123
123
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
124
- "@spartan-ng/brain": "0.0.1-alpha.598",
124
+ "@spartan-ng/brain": "0.0.1-alpha.600",
125
125
  "clsx": "^2.1.1"
126
126
  }
127
127
  },
@@ -129,21 +129,21 @@
129
129
  "name": "collapsible",
130
130
  "peerDependencies": {
131
131
  "@angular/core": ">=20.0.0 <22.0.0",
132
- "@spartan-ng/brain": "0.0.1-alpha.598"
132
+ "@spartan-ng/brain": "0.0.1-alpha.600"
133
133
  }
134
134
  },
135
135
  "command": {
136
136
  "name": "command",
137
137
  "peerDependencies": {
138
138
  "@angular/core": ">=20.0.0 <22.0.0",
139
- "@spartan-ng/brain": "0.0.1-alpha.598"
139
+ "@spartan-ng/brain": "0.0.1-alpha.600"
140
140
  }
141
141
  },
142
142
  "context-menu": {
143
143
  "name": "context-menu",
144
144
  "peerDependencies": {
145
145
  "@angular/core": ">=20.0.0 <22.0.0",
146
- "@spartan-ng/brain": "0.0.1-alpha.598",
146
+ "@spartan-ng/brain": "0.0.1-alpha.600",
147
147
  "@angular/cdk": ">=20.0.0 <22.0.0",
148
148
  "rxjs": "^7.8.0"
149
149
  }
@@ -156,7 +156,7 @@
156
156
  "@angular/forms": ">=20.0.0 <22.0.0",
157
157
  "@ng-icons/core": ">=32.0.0 <34.0.0",
158
158
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
159
- "@spartan-ng/brain": "0.0.1-alpha.598",
159
+ "@spartan-ng/brain": "0.0.1-alpha.600",
160
160
  "clsx": "^2.1.1"
161
161
  }
162
162
  },
@@ -164,12 +164,12 @@
164
164
  "name": "dialog",
165
165
  "peerDependencies": {
166
166
  "@angular/core": ">=20.0.0 <22.0.0",
167
- "@spartan-ng/brain": "0.0.1-alpha.598",
167
+ "@spartan-ng/brain": "0.0.1-alpha.600",
168
+ "@angular/cdk": ">=20.0.0 <22.0.0",
168
169
  "@angular/common": ">=20.0.0 <22.0.0",
169
170
  "@ng-icons/core": ">=32.0.0 <34.0.0",
170
171
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
171
- "clsx": "^2.1.1",
172
- "@angular/cdk": ">=20.0.0 <22.0.0"
172
+ "clsx": "^2.1.1"
173
173
  }
174
174
  },
175
175
  "dropdown-menu": {
@@ -180,7 +180,7 @@
180
180
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
181
181
  "@angular/cdk": ">=20.0.0 <22.0.0",
182
182
  "rxjs": "^7.8.0",
183
- "@spartan-ng/brain": "0.0.1-alpha.598"
183
+ "@spartan-ng/brain": "0.0.1-alpha.600"
184
184
  }
185
185
  },
186
186
  "empty": {
@@ -203,14 +203,14 @@
203
203
  "peerDependencies": {
204
204
  "@angular/core": ">=20.0.0 <22.0.0",
205
205
  "@angular/forms": ">=20.0.0 <22.0.0",
206
- "@spartan-ng/brain": "0.0.1-alpha.598"
206
+ "@spartan-ng/brain": "0.0.1-alpha.600"
207
207
  }
208
208
  },
209
209
  "hover-card": {
210
210
  "name": "hover-card",
211
211
  "peerDependencies": {
212
212
  "@angular/core": ">=20.0.0 <22.0.0",
213
- "@spartan-ng/brain": "0.0.1-alpha.598"
213
+ "@spartan-ng/brain": "0.0.1-alpha.600"
214
214
  }
215
215
  },
216
216
  "icon": {
@@ -226,7 +226,7 @@
226
226
  "peerDependencies": {
227
227
  "@angular/core": ">=20.0.0 <22.0.0",
228
228
  "@angular/forms": ">=20.0.0 <22.0.0",
229
- "@spartan-ng/brain": "0.0.1-alpha.598",
229
+ "@spartan-ng/brain": "0.0.1-alpha.600",
230
230
  "class-variance-authority": "^0.7.0",
231
231
  "clsx": "^2.1.1"
232
232
  }
@@ -245,7 +245,7 @@
245
245
  "@ng-icons/core": ">=32.0.0 <34.0.0",
246
246
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
247
247
  "@angular/cdk": ">=20.0.0 <22.0.0",
248
- "@spartan-ng/brain": "0.0.1-alpha.598"
248
+ "@spartan-ng/brain": "0.0.1-alpha.600"
249
249
  }
250
250
  },
251
251
  "item": {
@@ -253,7 +253,7 @@
253
253
  "peerDependencies": {
254
254
  "@angular/core": ">=20.0.0 <22.0.0",
255
255
  "class-variance-authority": "^0.7.0",
256
- "@spartan-ng/brain": "0.0.1-alpha.598"
256
+ "@spartan-ng/brain": "0.0.1-alpha.600"
257
257
  }
258
258
  },
259
259
  "kbd": {
@@ -266,14 +266,14 @@
266
266
  "name": "label",
267
267
  "peerDependencies": {
268
268
  "@angular/core": ">=20.0.0 <22.0.0",
269
- "@spartan-ng/brain": "0.0.1-alpha.598"
269
+ "@spartan-ng/brain": "0.0.1-alpha.600"
270
270
  }
271
271
  },
272
272
  "menubar": {
273
273
  "name": "menubar",
274
274
  "peerDependencies": {
275
275
  "@angular/core": ">=20.0.0 <22.0.0",
276
- "@spartan-ng/brain": "0.0.1-alpha.598",
276
+ "@spartan-ng/brain": "0.0.1-alpha.600",
277
277
  "@angular/cdk": ">=20.0.0 <22.0.0",
278
278
  "rxjs": "^7.8.0"
279
279
  }
@@ -282,7 +282,7 @@
282
282
  "name": "navigation-menu",
283
283
  "peerDependencies": {
284
284
  "@angular/core": ">=20.0.0 <22.0.0",
285
- "@spartan-ng/brain": "0.0.1-alpha.598"
285
+ "@spartan-ng/brain": "0.0.1-alpha.600"
286
286
  }
287
287
  },
288
288
  "pagination": {
@@ -291,7 +291,7 @@
291
291
  "@angular/cdk": ">=20.0.0 <22.0.0",
292
292
  "@angular/core": ">=20.0.0 <22.0.0",
293
293
  "@angular/forms": ">=20.0.0 <22.0.0",
294
- "@spartan-ng/brain": "0.0.1-alpha.598",
294
+ "@spartan-ng/brain": "0.0.1-alpha.600",
295
295
  "@ng-icons/core": ">=32.0.0 <34.0.0",
296
296
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
297
297
  "@angular/router": ">=20.0.0 <22.0.0"
@@ -301,21 +301,21 @@
301
301
  "name": "popover",
302
302
  "peerDependencies": {
303
303
  "@angular/core": ">=20.0.0 <22.0.0",
304
- "@spartan-ng/brain": "0.0.1-alpha.598"
304
+ "@spartan-ng/brain": "0.0.1-alpha.600"
305
305
  }
306
306
  },
307
307
  "progress": {
308
308
  "name": "progress",
309
309
  "peerDependencies": {
310
310
  "@angular/core": ">=20.0.0 <22.0.0",
311
- "@spartan-ng/brain": "0.0.1-alpha.598"
311
+ "@spartan-ng/brain": "0.0.1-alpha.600"
312
312
  }
313
313
  },
314
314
  "radio-group": {
315
315
  "name": "radio-group",
316
316
  "peerDependencies": {
317
317
  "@angular/core": ">=20.0.0 <22.0.0",
318
- "@spartan-ng/brain": "0.0.1-alpha.598",
318
+ "@spartan-ng/brain": "0.0.1-alpha.600",
319
319
  "@angular/cdk": ">=20.0.0 <22.0.0",
320
320
  "@angular/common": ">=20.0.0 <22.0.0",
321
321
  "clsx": "^2.1.1"
@@ -325,7 +325,7 @@
325
325
  "name": "resizable",
326
326
  "peerDependencies": {
327
327
  "@angular/core": ">=20.0.0 <22.0.0",
328
- "@spartan-ng/brain": "0.0.1-alpha.598",
328
+ "@spartan-ng/brain": "0.0.1-alpha.600",
329
329
  "@ng-icons/core": ">=32.0.0 <34.0.0",
330
330
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
331
331
  }
@@ -341,7 +341,7 @@
341
341
  "peerDependencies": {
342
342
  "@angular/cdk": ">=20.0.0 <22.0.0",
343
343
  "@angular/core": ">=20.0.0 <22.0.0",
344
- "@spartan-ng/brain": "0.0.1-alpha.598",
344
+ "@spartan-ng/brain": "0.0.1-alpha.600",
345
345
  "@ng-icons/core": ">=32.0.0 <34.0.0",
346
346
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
347
347
  "class-variance-authority": "^0.7.0",
@@ -352,14 +352,14 @@
352
352
  "name": "separator",
353
353
  "peerDependencies": {
354
354
  "@angular/core": ">=20.0.0 <22.0.0",
355
- "@spartan-ng/brain": "0.0.1-alpha.598"
355
+ "@spartan-ng/brain": "0.0.1-alpha.600"
356
356
  }
357
357
  },
358
358
  "sheet": {
359
359
  "name": "sheet",
360
360
  "peerDependencies": {
361
361
  "@angular/core": ">=20.0.0 <22.0.0",
362
- "@spartan-ng/brain": "0.0.1-alpha.598",
362
+ "@spartan-ng/brain": "0.0.1-alpha.600",
363
363
  "@ng-icons/core": ">=32.0.0 <34.0.0",
364
364
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
365
365
  "class-variance-authority": "^0.7.0",
@@ -371,7 +371,7 @@
371
371
  "peerDependencies": {
372
372
  "@angular/core": ">=20.0.0 <22.0.0",
373
373
  "@angular/cdk": ">=20.0.0 <22.0.0",
374
- "@spartan-ng/brain": "0.0.1-alpha.598",
374
+ "@spartan-ng/brain": "0.0.1-alpha.600",
375
375
  "class-variance-authority": "^0.7.0",
376
376
  "@ng-icons/core": ">=32.0.0 <34.0.0",
377
377
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -389,7 +389,7 @@
389
389
  "name": "slider",
390
390
  "peerDependencies": {
391
391
  "@angular/core": ">=20.0.0 <22.0.0",
392
- "@spartan-ng/brain": "0.0.1-alpha.598"
392
+ "@spartan-ng/brain": "0.0.1-alpha.600"
393
393
  }
394
394
  },
395
395
  "sonner": {
@@ -414,7 +414,7 @@
414
414
  "@angular/core": ">=20.0.0 <22.0.0",
415
415
  "@angular/cdk": ">=20.0.0 <22.0.0",
416
416
  "@angular/forms": ">=20.0.0 <22.0.0",
417
- "@spartan-ng/brain": "0.0.1-alpha.598",
417
+ "@spartan-ng/brain": "0.0.1-alpha.600",
418
418
  "clsx": "^2.1.1"
419
419
  }
420
420
  },
@@ -428,7 +428,7 @@
428
428
  "name": "tabs",
429
429
  "peerDependencies": {
430
430
  "@angular/core": ">=20.0.0 <22.0.0",
431
- "@spartan-ng/brain": "0.0.1-alpha.598",
431
+ "@spartan-ng/brain": "0.0.1-alpha.600",
432
432
  "class-variance-authority": "^0.7.0",
433
433
  "@angular/cdk": ">=20.0.0 <22.0.0",
434
434
  "@ng-icons/core": ">=32.0.0 <34.0.0",
@@ -442,7 +442,7 @@
442
442
  "peerDependencies": {
443
443
  "@angular/core": ">=20.0.0 <22.0.0",
444
444
  "@angular/forms": ">=20.0.0 <22.0.0",
445
- "@spartan-ng/brain": "0.0.1-alpha.598",
445
+ "@spartan-ng/brain": "0.0.1-alpha.600",
446
446
  "class-variance-authority": "^0.7.0",
447
447
  "clsx": "^2.1.1"
448
448
  }
@@ -451,7 +451,7 @@
451
451
  "name": "toggle",
452
452
  "peerDependencies": {
453
453
  "@angular/core": ">=20.0.0 <22.0.0",
454
- "@spartan-ng/brain": "0.0.1-alpha.598",
454
+ "@spartan-ng/brain": "0.0.1-alpha.600",
455
455
  "class-variance-authority": "^0.7.0"
456
456
  }
457
457
  },
@@ -459,7 +459,7 @@
459
459
  "name": "toggle-group",
460
460
  "peerDependencies": {
461
461
  "@angular/core": ">=20.0.0 <22.0.0",
462
- "@spartan-ng/brain": "0.0.1-alpha.598",
462
+ "@spartan-ng/brain": "0.0.1-alpha.600",
463
463
  "@angular/cdk": ">=20.0.0 <22.0.0"
464
464
  }
465
465
  },
@@ -467,7 +467,7 @@
467
467
  "name": "tooltip",
468
468
  "peerDependencies": {
469
469
  "@angular/core": ">=20.0.0 <22.0.0",
470
- "@spartan-ng/brain": "0.0.1-alpha.598"
470
+ "@spartan-ng/brain": "0.0.1-alpha.600"
471
471
  }
472
472
  },
473
473
  "typography": {
@@ -1,19 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { BrnDialogClose } from '@spartan-ng/brain/dialog';
3
- import { HlmButton, provideBrnButtonConfig } from '<%- importAlias %>/button';
4
- import { provideHlmIconConfig } from '<%- importAlias %>/icon';
5
- import { classes } from '<%- importAlias %>/utils';
6
-
7
- @Directive({
8
- selector: '[hlmCommandDialogCloseBtn]',
9
- providers: [provideBrnButtonConfig({ variant: 'ghost' }), provideHlmIconConfig({ size: 'xs' })],
10
- hostDirectives: [HlmButton, BrnDialogClose],
11
- })
12
- export class HlmCommandDialogCloseButton {
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
- }
19
- }
@@ -1,16 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { provideHlmIconConfig } from '<%- importAlias %>/icon';
3
- import { classes } from '<%- importAlias %>/utils';
4
-
5
- @Directive({
6
- selector: '[hlmCommandIcon]',
7
- providers: [provideHlmIconConfig({ size: 'sm' })],
8
- host: {
9
- 'data-slot': 'command-icon',
10
- },
11
- })
12
- export class HlmCommandIcon {
13
- constructor() {
14
- classes(() => 'text-muted-foreground pointer-events-none shrink-0');
15
- }
16
- }