@egose/shadcn-theme-ng 0.0.11 → 0.0.13

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 (49) hide show
  1. package/accordion/fesm2022/accordion.mjs +19 -19
  2. package/alert/fesm2022/alert.mjs +16 -16
  3. package/autocomplete/README.md +64 -0
  4. package/autocomplete/fesm2022/autocomplete.mjs +543 -0
  5. package/autocomplete/fesm2022/autocomplete.mjs.map +1 -0
  6. package/autocomplete/index.d.ts +162 -0
  7. package/badge/fesm2022/badge.mjs +19 -28
  8. package/badge/fesm2022/badge.mjs.map +1 -1
  9. package/badge/index.d.ts +9 -9
  10. package/basic-alert/fesm2022/basic-alert.mjs +17 -25
  11. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
  12. package/basic-alert/index.d.ts +7 -7
  13. package/button/fesm2022/button.mjs +51 -69
  14. package/button/fesm2022/button.mjs.map +1 -1
  15. package/button/index.d.ts +20 -20
  16. package/calendar/fesm2022/calendar.mjs +13 -13
  17. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +6 -6
  18. package/date-picker/fesm2022/date-picker.mjs +13 -13
  19. package/dialog/fesm2022/dialog.mjs +31 -31
  20. package/exports.json +1 -1
  21. package/form-date-picker/fesm2022/form-date-picker.mjs +3 -3
  22. package/form-field/fesm2022/form-field.mjs +13 -13
  23. package/form-searchable-multiselect/README.md +64 -0
  24. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +124 -0
  25. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -0
  26. package/form-searchable-multiselect/index.d.ts +28 -0
  27. package/form-select/fesm2022/form-select.mjs +3 -3
  28. package/form-text-input/fesm2022/form-text-input.mjs +6 -6
  29. package/form-textarea/fesm2022/form-textarea.mjs +3 -3
  30. package/icon/fesm2022/icon.mjs +7 -7
  31. package/input/fesm2022/input.mjs +7 -7
  32. package/label/fesm2022/label.mjs +7 -7
  33. package/package.json +21 -5
  34. package/popover/fesm2022/popover.mjs +10 -10
  35. package/radio-group/fesm2022/radio-group.mjs +13 -13
  36. package/searchable-multiselect/README.md +64 -0
  37. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +221 -0
  38. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -0
  39. package/searchable-multiselect/index.d.ts +50 -0
  40. package/select/fesm2022/select.mjs +31 -31
  41. package/separator/README.md +64 -0
  42. package/separator/fesm2022/separator.mjs +46 -0
  43. package/separator/fesm2022/separator.mjs.map +1 -0
  44. package/separator/index.d.ts +19 -0
  45. package/sonner/fesm2022/sonner.mjs +7 -7
  46. package/spinner/fesm2022/spinner.mjs +7 -7
  47. package/switch/fesm2022/switch.mjs +10 -10
  48. package/tabs/fesm2022/tabs.mjs +19 -19
  49. package/tooltip/fesm2022/tooltip.mjs +10 -10
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, computed, Input, Component, NgModule } from '@angular/core';
2
+ import { input, signal, computed, Component, NgModule } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import * as i1 from '@spartan-ng/brain/button';
5
5
  import { BrnButton } from '@spartan-ng/brain/button';
@@ -47,12 +47,14 @@ const buttonVariants = cva([
47
47
  ghost: 'tw:hover:bg-light tw:hover:text-light-foreground',
48
48
  },
49
49
  size: {
50
- default: 'tw:h-9 tw:px-4 tw:py-2',
50
+ xs: 'tw:h-7 tw:rounded-xs tw:px-2 tw:text-xs',
51
51
  sm: 'tw:h-8 tw:rounded-sm tw:px-3',
52
+ default: 'tw:h-9 tw:px-4 tw:py-2',
52
53
  lg: 'tw:h-10 tw:rounded-sm tw:px-7 tw:text-base',
53
54
  icon: 'tw:h-9 tw:w-9',
54
- 'compact-default': 'tw:h-8 tw:px-2 tw:py-1',
55
+ 'compact-xs': 'tw:h-6 tw:px-2 tw:py-1 tw:text-xs',
55
56
  'compact-sm': 'tw:h-7 tw:px-2 tw:py-1',
57
+ 'compact-default': 'tw:h-8 tw:px-2 tw:py-1',
56
58
  'compact-lg': 'tw:h-9 tw:px-2 tw:py-1 tw:text-base',
57
59
  'compact-icon': 'tw:h-8 tw:w-8',
58
60
  },
@@ -74,40 +76,40 @@ const buttonVariants = cva([
74
76
  },
75
77
  });
76
78
  class HlmButton {
77
- /** Props */
78
- variant = 'primary';
79
- size = 'default';
80
- appearance = 'solid';
81
- loading = false;
82
- icon;
83
- iconPosition = 'left';
84
- userClass = '';
85
- spinnerUserClass = '';
86
- disabled = false;
87
- type = 'button';
79
+ /** Props as signal-based inputs */
80
+ variant = input('primary', ...(ngDevMode ? [{ debugName: "variant" }] : []));
81
+ size = input('default', ...(ngDevMode ? [{ debugName: "size" }] : []));
82
+ appearance = input('solid', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
83
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
84
+ icon = input(undefined, ...(ngDevMode ? [{ debugName: "icon" }] : []));
85
+ iconPosition = input('left', ...(ngDevMode ? [{ debugName: "iconPosition" }] : []));
86
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass" }] : []));
87
+ spinnerUserClass = input('', ...(ngDevMode ? [{ debugName: "spinnerUserClass" }] : []));
88
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
89
+ type = input('button', ...(ngDevMode ? [{ debugName: "type" }] : []));
88
90
  _additionalClasses = signal('', ...(ngDevMode ? [{ debugName: "_additionalClasses" }] : []));
89
91
  /** Computed button class merging */
90
92
  _computedClass = computed(() => {
91
- const outlineClasses = this.appearance === 'outline' || this.appearance === 'outline-filled'
92
- ? [this.getOutlineClasses(this.variant)]
93
+ const outlineClasses = this.appearance() === 'outline' || this.appearance() === 'outline-filled'
94
+ ? [this.getOutlineClasses(this.variant())]
93
95
  : [];
94
- if (this.appearance === 'outline-filled') {
95
- outlineClasses.push(this.getOutlineFilledClasses(this.variant));
96
+ if (this.appearance() === 'outline-filled') {
97
+ outlineClasses.push(this.getOutlineFilledClasses(this.variant()));
96
98
  }
97
99
  return hlm(buttonVariants({
98
- variant: this.variant,
99
- size: this.size,
100
- appearance: this.appearance,
101
- loading: this.loading,
102
- className: this.userClass,
103
- }), outlineClasses, this.loading ? 'tw:pointer-events-none' : '', this._additionalClasses());
100
+ variant: this.variant(),
101
+ size: this.size(),
102
+ appearance: this.appearance(),
103
+ loading: this.loading(),
104
+ className: this.userClass(),
105
+ }), outlineClasses, this.loading() ? 'tw:pointer-events-none' : '', this._additionalClasses());
104
106
  }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
105
107
  /** Computed spinner classes */
106
108
  spinnerClass = computed(() => {
107
- const base = this.appearance === 'outline' || this.appearance === 'outline-filled'
108
- ? this.getOutlineSpinnerClasses(this.variant)
109
- : this.getSpinnerClasses(this.variant);
110
- return hlm(base, this.spinnerUserClass);
109
+ const base = this.appearance() === 'outline' || this.appearance() === 'outline-filled'
110
+ ? this.getOutlineSpinnerClasses(this.variant())
111
+ : this.getSpinnerClasses(this.variant());
112
+ return hlm(base, this.spinnerUserClass());
111
113
  }, ...(ngDevMode ? [{ debugName: "spinnerClass" }] : []));
112
114
  setClass(classes) {
113
115
  this._additionalClasses.set(classes);
@@ -185,13 +187,13 @@ class HlmButton {
185
187
  };
186
188
  return colors[variant];
187
189
  }
188
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
189
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: HlmButton, isStandalone: true, selector: "button[hlmButton], a[hlmButton]", inputs: { variant: "variant", size: "size", appearance: "appearance", loading: "loading", icon: "icon", iconPosition: "iconPosition", userClass: "userClass", spinnerUserClass: "spinnerUserClass", disabled: "disabled", type: "type" }, host: { properties: { "class": "_computedClass()", "attr.aria-busy": "loading || null", "attr.disabled": "(loading || disabled) ? true : null", "attr.type": "type" } }, hostDirectives: [{ directive: i1.BrnButton, inputs: ["disabled", "disabled"] }], ngImport: i0, template: `
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmButton, isStandalone: true, selector: "button[hlmButton], a[hlmButton]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconPosition: { classPropertyName: "iconPosition", publicName: "iconPosition", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "userClass", isSignal: true, isRequired: false, transformFunction: null }, spinnerUserClass: { classPropertyName: "spinnerUserClass", publicName: "spinnerUserClass", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()", "attr.aria-busy": "loading() || null", "attr.disabled": "(loading() || disabled()) ? true : null", "attr.type": "type()" } }, hostDirectives: [{ directive: i1.BrnButton, inputs: ["disabled", "disabled"] }], ngImport: i0, template: `
190
192
  <ng-template #projected>
191
193
  <ng-content></ng-content>
192
194
  </ng-template>
193
195
 
194
- @if (loading) {
196
+ @if (loading()) {
195
197
  <div class="tw:relative tw:inline-flex tw:items-center">
196
198
  <span class="tw:invisible">
197
199
  <ng-container *ngTemplateOutlet="projected" />
@@ -202,18 +204,18 @@ class HlmButton {
202
204
  </div>
203
205
  } @else {
204
206
  <div class="tw:flex tw:items-center tw:gap-1">
205
- @if (icon && iconPosition === 'left') {
206
- <ng-container *ngTemplateOutlet="icon" />
207
+ @if (icon() && iconPosition() === 'left') {
208
+ <ng-container *ngTemplateOutlet="icon()" />
207
209
  }
208
210
  <ng-container *ngTemplateOutlet="projected" />
209
- @if (icon && iconPosition === 'right') {
210
- <ng-container *ngTemplateOutlet="icon" />
211
+ @if (icon() && iconPosition() === 'right') {
212
+ <ng-container *ngTemplateOutlet="icon()" />
211
213
  }
212
214
  </div>
213
215
  }
214
216
  `, isInline: true, dependencies: [{ kind: "component", type: HlmSpinner, selector: "hlm-spinner", inputs: ["size", "show", "class", "spinnerClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
215
217
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmButton, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmButton, decorators: [{
217
219
  type: Component,
218
220
  args: [{
219
221
  selector: 'button[hlmButton], a[hlmButton]',
@@ -222,16 +224,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
222
224
  hostDirectives: [{ directive: BrnButton, inputs: ['disabled'] }],
223
225
  host: {
224
226
  '[class]': '_computedClass()',
225
- '[attr.aria-busy]': 'loading || null',
226
- '[attr.disabled]': '(loading || disabled) ? true : null',
227
- '[attr.type]': 'type',
227
+ '[attr.aria-busy]': 'loading() || null',
228
+ '[attr.disabled]': '(loading() || disabled()) ? true : null',
229
+ '[attr.type]': 'type()',
228
230
  },
229
231
  template: `
230
232
  <ng-template #projected>
231
233
  <ng-content></ng-content>
232
234
  </ng-template>
233
235
 
234
- @if (loading) {
236
+ @if (loading()) {
235
237
  <div class="tw:relative tw:inline-flex tw:items-center">
236
238
  <span class="tw:invisible">
237
239
  <ng-container *ngTemplateOutlet="projected" />
@@ -242,49 +244,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
242
244
  </div>
243
245
  } @else {
244
246
  <div class="tw:flex tw:items-center tw:gap-1">
245
- @if (icon && iconPosition === 'left') {
246
- <ng-container *ngTemplateOutlet="icon" />
247
+ @if (icon() && iconPosition() === 'left') {
248
+ <ng-container *ngTemplateOutlet="icon()" />
247
249
  }
248
250
  <ng-container *ngTemplateOutlet="projected" />
249
- @if (icon && iconPosition === 'right') {
250
- <ng-container *ngTemplateOutlet="icon" />
251
+ @if (icon() && iconPosition() === 'right') {
252
+ <ng-container *ngTemplateOutlet="icon()" />
251
253
  }
252
254
  </div>
253
255
  }
254
256
  `,
255
257
  }]
256
- }], propDecorators: { variant: [{
257
- type: Input
258
- }], size: [{
259
- type: Input
260
- }], appearance: [{
261
- type: Input
262
- }], loading: [{
263
- type: Input
264
- }], icon: [{
265
- type: Input
266
- }], iconPosition: [{
267
- type: Input
268
- }], userClass: [{
269
- type: Input
270
- }], spinnerUserClass: [{
271
- type: Input
272
- }], disabled: [{
273
- type: Input
274
- }], type: [{
275
- type: Input
276
- }] } });
258
+ }] });
277
259
 
278
260
  /*
279
261
  * Public API Surface of button
280
262
  */
281
263
  const HlmButtonImports = [HlmButton];
282
264
  class HlmButtonModule {
283
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
284
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: HlmButtonModule, imports: [HlmButton], exports: [HlmButton] });
285
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmButtonModule, imports: [HlmButtonImports] });
265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
266
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmButtonModule, imports: [HlmButton], exports: [HlmButton] });
267
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmButtonModule, imports: [HlmButtonImports] });
286
268
  }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmButtonModule, decorators: [{
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmButtonModule, decorators: [{
288
270
  type: NgModule,
289
271
  args: [{
290
272
  imports: [...HlmButtonImports],
@@ -1 +1 @@
1
- {"version":3,"file":"button.mjs","sources":["../../../projects/button/src/lib/button.ts","../../../projects/button/src/public-api.ts","../../../projects/button/src/button.ts"],"sourcesContent":["import { Component, Input, computed, signal } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { HlmSpinner } from '@egose/shadcn-theme-ng/spinner';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ClassValue } from 'clsx';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\nexport const buttonVariants = cva(\n [\n 'tw:cursor-pointer',\n 'tw:active:translate-y-[0.5px]',\n 'tw:disabled:pointer-events-none',\n 'tw:disabled:opacity-50',\n 'tw:focus-visible:outline-none',\n 'tw:focus-visible:ring-1',\n 'tw:focus-visible:ring-ring',\n 'tw:font-medium',\n 'tw:gap-2',\n 'tw:inline-flex',\n 'tw:items-center',\n 'tw:justify-center',\n 'tw:rounded-sm',\n 'tw:text-sm',\n 'tw:transform',\n 'tw:transition',\n 'tw:transition-colors',\n 'tw:whitespace-nowrap',\n 'tw:[&_svg]:pointer-events-none',\n 'tw:[&_svg]:shrink-0',\n 'tw:[&_svg]:size-4',\n ],\n {\n variants: {\n variant: {\n primary:\n 'tw:border tw:border-primary tw:bg-primary tw:text-primary-foreground tw:shadow-sm tw:hover:bg-primary/90',\n secondary:\n 'tw:border tw:border-secondary tw:bg-secondary tw:text-secondary-foreground tw:shadow-sm tw:hover:bg-secondary/90',\n success:\n 'tw:border tw:border-success tw:bg-success tw:text-success-foreground tw:shadow-sm tw:hover:bg-success/90',\n warning:\n 'tw:border tw:border-warning tw:bg-warning tw:text-warning-foreground tw:shadow-sm tw:hover:bg-warning/90',\n danger: 'tw:border tw:border-danger tw:bg-danger tw:text-danger-foreground tw:shadow-sm tw:hover:bg-danger/90',\n info: 'tw:border tw:border-info tw:bg-info tw:text-info-foreground tw:shadow-sm tw:hover:bg-info/90',\n light: 'tw:border tw:border-light tw:bg-light tw:text-light-foreground tw:shadow-sm tw:hover:bg-light/90',\n dark: 'tw:border tw:border-dark tw:bg-dark tw:text-dark-foreground tw:shadow-sm tw:hover:bg-dark/90',\n accent: 'tw:border tw:border-accent tw:bg-accent tw:text-accent-foreground tw:shadow-sm tw:hover:bg-accent/90',\n destructive:\n 'tw:border tw:border-destructive tw:bg-destructive tw:text-destructive-foreground tw:shadow-sm tw:hover:bg-destructive/90',\n muted: 'tw:border tw:border-muted tw:bg-muted tw:text-muted-foreground tw:shadow-sm tw:hover:bg-muted/90',\n link: 'tw:text-primary tw:underline-offset-4 tw:hover:underline',\n ghost: 'tw:hover:bg-light tw:hover:text-light-foreground',\n },\n size: {\n default: 'tw:h-9 tw:px-4 tw:py-2',\n sm: 'tw:h-8 tw:rounded-sm tw:px-3',\n lg: 'tw:h-10 tw:rounded-sm tw:px-7 tw:text-base',\n icon: 'tw:h-9 tw:w-9',\n 'compact-default': 'tw:h-8 tw:px-2 tw:py-1',\n 'compact-sm': 'tw:h-7 tw:px-2 tw:py-1',\n 'compact-lg': 'tw:h-9 tw:px-2 tw:py-1 tw:text-base',\n 'compact-icon': 'tw:h-8 tw:w-8',\n },\n appearance: {\n solid: '',\n outline: 'tw:bg-white tw:border',\n 'outline-filled': 'tw:bg-white tw:border',\n },\n loading: {\n true: 'tw:pointer-events-none',\n false: null,\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n appearance: 'solid',\n loading: false,\n },\n },\n);\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\nexport type VariantType = NonNullable<ButtonVariants['variant']>;\nexport type SizeType = NonNullable<ButtonVariants['size']>;\nexport type AppearanceType = NonNullable<ButtonVariants['appearance']>;\n\n@Component({\n selector: 'button[hlmButton], a[hlmButton]',\n standalone: true,\n imports: [BrnButton, HlmSpinner, NgTemplateOutlet],\n hostDirectives: [{ directive: BrnButton, inputs: ['disabled'] }],\n host: {\n '[class]': '_computedClass()',\n '[attr.aria-busy]': 'loading || null',\n '[attr.disabled]': '(loading || disabled) ? true : null',\n '[attr.type]': 'type',\n },\n template: `\n <ng-template #projected>\n <ng-content></ng-content>\n </ng-template>\n\n @if (loading) {\n <div class=\"tw:relative tw:inline-flex tw:items-center\">\n <span class=\"tw:invisible\">\n <ng-container *ngTemplateOutlet=\"projected\" />\n </span>\n <span class=\"tw:absolute tw:inset-0 tw:flex tw:items-center tw:justify-center\">\n <hlm-spinner size=\"small\" [spinnerClass]=\"spinnerClass()\" />\n </span>\n </div>\n } @else {\n <div class=\"tw:flex tw:items-center tw:gap-1\">\n @if (icon && iconPosition === 'left') {\n <ng-container *ngTemplateOutlet=\"icon\" />\n }\n <ng-container *ngTemplateOutlet=\"projected\" />\n @if (icon && iconPosition === 'right') {\n <ng-container *ngTemplateOutlet=\"icon\" />\n }\n </div>\n }\n `,\n})\nexport class HlmButton {\n /** Props */\n @Input() variant: VariantType = 'primary';\n @Input() size: SizeType = 'default';\n @Input() appearance: AppearanceType = 'solid';\n @Input() loading = false;\n @Input() icon?: any;\n @Input() iconPosition: 'left' | 'right' = 'left';\n @Input() userClass: ClassValue = '';\n @Input() spinnerUserClass: ClassValue = '';\n @Input() disabled = false;\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n\n private readonly _additionalClasses = signal<ClassValue>('');\n\n /** Computed button class merging */\n protected readonly _computedClass = computed(() => {\n const outlineClasses =\n this.appearance === 'outline' || this.appearance === 'outline-filled'\n ? [this.getOutlineClasses(this.variant)]\n : [];\n if (this.appearance === 'outline-filled') {\n outlineClasses.push(this.getOutlineFilledClasses(this.variant));\n }\n return hlm(\n buttonVariants({\n variant: this.variant,\n size: this.size,\n appearance: this.appearance,\n loading: this.loading,\n className: this.userClass,\n }),\n outlineClasses,\n this.loading ? 'tw:pointer-events-none' : '',\n this._additionalClasses(),\n );\n });\n\n /** Computed spinner classes */\n protected readonly spinnerClass = computed(() => {\n const base =\n this.appearance === 'outline' || this.appearance === 'outline-filled'\n ? this.getOutlineSpinnerClasses(this.variant)\n : this.getSpinnerClasses(this.variant);\n return hlm(base, this.spinnerUserClass);\n });\n\n setClass(classes: string): void {\n this._additionalClasses.set(classes);\n }\n\n /** Helper functions */\n private getOutlineClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:border-primary tw:text-primary tw:shadow-sm tw:hover:bg-primary/10',\n secondary: 'tw:border-secondary tw:text-secondary tw:shadow-sm tw:hover:bg-secondary/10',\n success: 'tw:border-success tw:text-success tw:shadow-sm tw:hover:bg-success/10',\n warning: 'tw:border-warning tw:text-warning tw:shadow-sm tw:hover:bg-warning/10',\n danger: 'tw:border-danger tw:text-danger tw:shadow-sm tw:hover:bg-danger/10',\n info: 'tw:border-info tw:text-info tw:shadow-sm tw:hover:bg-info/10',\n light: 'tw:border-light tw:text-light-foreground tw:shadow-sm tw:hover:bg-light/10',\n dark: 'tw:border-dark tw:text-dark tw:shadow-sm tw:hover:bg-dark/10',\n accent: 'tw:border-accent tw:text-accent tw:shadow-sm tw:hover:bg-accent/10',\n destructive: 'tw:border-destructive tw:text-destructive tw:shadow-sm tw:hover:bg-destructive/10',\n muted: 'tw:border-muted tw:text-muted-foreground tw:shadow-sm tw:hover:bg-muted/10',\n link: 'tw:text-primary',\n ghost: 'tw:text-light-foreground',\n };\n return colors[variant];\n }\n\n private getOutlineFilledClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:hover:bg-primary tw:hover:text-primary-foreground',\n secondary: 'tw:hover:bg-secondary tw:hover:text-secondary-foreground',\n success: 'tw:hover:bg-success tw:hover:text-success-foreground',\n warning: 'tw:hover:bg-warning tw:hover:text-warning-foreground',\n danger: 'tw:hover:bg-danger tw:hover:text-danger-foreground',\n info: 'tw:hover:bg-info tw:hover:text-info-foreground',\n light: 'tw:hover:bg-light tw:hover:text-light-foreground',\n dark: 'tw:hover:bg-dark tw:hover:text-dark-foreground',\n accent: 'tw:hover:bg-accent tw:hover:text-accent-foreground',\n destructive: 'tw:hover:bg-destructive tw:hover:text-destructive-foreground',\n muted: 'tw:hover:bg-muted tw:hover:text-muted-foreground',\n link: 'tw:hover:underline',\n ghost: 'tw:hover:bg-light',\n };\n return colors[variant];\n }\n\n private getSpinnerClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:[&>svg]:text-primary-foreground',\n secondary: 'tw:[&>svg]:text-secondary-foreground',\n success: 'tw:[&>svg]:text-success-foreground',\n warning: 'tw:[&>svg]:text-warning-foreground',\n danger: 'tw:[&>svg]:text-danger-foreground',\n info: 'tw:[&>svg]:text-info-foreground',\n light: 'tw:[&>svg]:text-light-foreground',\n dark: 'tw:[&>svg]:text-dark-foreground',\n accent: 'tw:[&>svg]:text-accent-foreground',\n destructive: 'tw:[&>svg]:text-destructive-foreground',\n muted: 'tw:[&>svg]:text-muted-foreground',\n link: 'tw:[&>svg]:text-primary',\n ghost: 'tw:[&>svg]:text-light-foreground',\n };\n return colors[variant];\n }\n\n private getOutlineSpinnerClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:[&>svg]:text-primary',\n secondary: 'tw:[&>svg]:text-secondary',\n success: 'tw:[&>svg]:text-success',\n warning: 'tw:[&>svg]:text-warning',\n danger: 'tw:[&>svg]:text-danger',\n info: 'tw:[&>svg]:text-info',\n light: 'tw:[&>svg]:text-light',\n dark: 'tw:[&>svg]:text-dark',\n accent: 'tw:[&>svg]:text-accent',\n destructive: 'tw:[&>svg]:text-destructive',\n muted: 'tw:[&>svg]:text-muted-foreground',\n link: 'tw:[&>svg]:text-primary',\n ghost: 'tw:[&>svg]:text-light-foreground',\n };\n return colors[variant];\n }\n}\n","/*\n * Public API Surface of button\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmButton } from './lib/button';\nexport * from './lib/button';\n\nexport const HlmButtonImports = [HlmButton] as const;\n\n@NgModule({\n imports: [...HlmButtonImports],\n exports: [...HlmButtonImports],\n})\nexport class HlmButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"button.mjs","sources":["../../../projects/button/src/lib/button.ts","../../../projects/button/src/public-api.ts","../../../projects/button/src/button.ts"],"sourcesContent":["import { Component, computed, signal, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { HlmSpinner } from '@egose/shadcn-theme-ng/spinner';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ClassValue } from 'clsx';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\nexport const buttonVariants = cva(\n [\n 'tw:cursor-pointer',\n 'tw:active:translate-y-[0.5px]',\n 'tw:disabled:pointer-events-none',\n 'tw:disabled:opacity-50',\n 'tw:focus-visible:outline-none',\n 'tw:focus-visible:ring-1',\n 'tw:focus-visible:ring-ring',\n 'tw:font-medium',\n 'tw:gap-2',\n 'tw:inline-flex',\n 'tw:items-center',\n 'tw:justify-center',\n 'tw:rounded-sm',\n 'tw:text-sm',\n 'tw:transform',\n 'tw:transition',\n 'tw:transition-colors',\n 'tw:whitespace-nowrap',\n 'tw:[&_svg]:pointer-events-none',\n 'tw:[&_svg]:shrink-0',\n 'tw:[&_svg]:size-4',\n ],\n {\n variants: {\n variant: {\n primary:\n 'tw:border tw:border-primary tw:bg-primary tw:text-primary-foreground tw:shadow-sm tw:hover:bg-primary/90',\n secondary:\n 'tw:border tw:border-secondary tw:bg-secondary tw:text-secondary-foreground tw:shadow-sm tw:hover:bg-secondary/90',\n success:\n 'tw:border tw:border-success tw:bg-success tw:text-success-foreground tw:shadow-sm tw:hover:bg-success/90',\n warning:\n 'tw:border tw:border-warning tw:bg-warning tw:text-warning-foreground tw:shadow-sm tw:hover:bg-warning/90',\n danger: 'tw:border tw:border-danger tw:bg-danger tw:text-danger-foreground tw:shadow-sm tw:hover:bg-danger/90',\n info: 'tw:border tw:border-info tw:bg-info tw:text-info-foreground tw:shadow-sm tw:hover:bg-info/90',\n light: 'tw:border tw:border-light tw:bg-light tw:text-light-foreground tw:shadow-sm tw:hover:bg-light/90',\n dark: 'tw:border tw:border-dark tw:bg-dark tw:text-dark-foreground tw:shadow-sm tw:hover:bg-dark/90',\n accent: 'tw:border tw:border-accent tw:bg-accent tw:text-accent-foreground tw:shadow-sm tw:hover:bg-accent/90',\n destructive:\n 'tw:border tw:border-destructive tw:bg-destructive tw:text-destructive-foreground tw:shadow-sm tw:hover:bg-destructive/90',\n muted: 'tw:border tw:border-muted tw:bg-muted tw:text-muted-foreground tw:shadow-sm tw:hover:bg-muted/90',\n link: 'tw:text-primary tw:underline-offset-4 tw:hover:underline',\n ghost: 'tw:hover:bg-light tw:hover:text-light-foreground',\n },\n size: {\n xs: 'tw:h-7 tw:rounded-xs tw:px-2 tw:text-xs',\n sm: 'tw:h-8 tw:rounded-sm tw:px-3',\n default: 'tw:h-9 tw:px-4 tw:py-2',\n lg: 'tw:h-10 tw:rounded-sm tw:px-7 tw:text-base',\n icon: 'tw:h-9 tw:w-9',\n 'compact-xs': 'tw:h-6 tw:px-2 tw:py-1 tw:text-xs',\n 'compact-sm': 'tw:h-7 tw:px-2 tw:py-1',\n 'compact-default': 'tw:h-8 tw:px-2 tw:py-1',\n 'compact-lg': 'tw:h-9 tw:px-2 tw:py-1 tw:text-base',\n 'compact-icon': 'tw:h-8 tw:w-8',\n },\n appearance: {\n solid: '',\n outline: 'tw:bg-white tw:border',\n 'outline-filled': 'tw:bg-white tw:border',\n },\n loading: {\n true: 'tw:pointer-events-none',\n false: null,\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n appearance: 'solid',\n loading: false,\n },\n },\n);\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\nexport type VariantType = NonNullable<ButtonVariants['variant']>;\nexport type SizeType = NonNullable<ButtonVariants['size']>;\nexport type AppearanceType = NonNullable<ButtonVariants['appearance']>;\n\n@Component({\n selector: 'button[hlmButton], a[hlmButton]',\n standalone: true,\n imports: [BrnButton, HlmSpinner, NgTemplateOutlet],\n hostDirectives: [{ directive: BrnButton, inputs: ['disabled'] }],\n host: {\n '[class]': '_computedClass()',\n '[attr.aria-busy]': 'loading() || null',\n '[attr.disabled]': '(loading() || disabled()) ? true : null',\n '[attr.type]': 'type()',\n },\n template: `\n <ng-template #projected>\n <ng-content></ng-content>\n </ng-template>\n\n @if (loading()) {\n <div class=\"tw:relative tw:inline-flex tw:items-center\">\n <span class=\"tw:invisible\">\n <ng-container *ngTemplateOutlet=\"projected\" />\n </span>\n <span class=\"tw:absolute tw:inset-0 tw:flex tw:items-center tw:justify-center\">\n <hlm-spinner size=\"small\" [spinnerClass]=\"spinnerClass()\" />\n </span>\n </div>\n } @else {\n <div class=\"tw:flex tw:items-center tw:gap-1\">\n @if (icon() && iconPosition() === 'left') {\n <ng-container *ngTemplateOutlet=\"icon()\" />\n }\n <ng-container *ngTemplateOutlet=\"projected\" />\n @if (icon() && iconPosition() === 'right') {\n <ng-container *ngTemplateOutlet=\"icon()\" />\n }\n </div>\n }\n `,\n})\nexport class HlmButton {\n /** Props as signal-based inputs */\n variant = input<VariantType>('primary');\n size = input<SizeType>('default');\n appearance = input<AppearanceType>('solid');\n loading = input<boolean>(false);\n icon = input<any | undefined>(undefined);\n iconPosition = input<'left' | 'right'>('left');\n userClass = input<ClassValue>('');\n spinnerUserClass = input<ClassValue>('');\n disabled = input<boolean>(false);\n type = input<'button' | 'submit' | 'reset'>('button');\n\n private readonly _additionalClasses = signal<ClassValue>('');\n\n /** Computed button class merging */\n protected readonly _computedClass = computed(() => {\n const outlineClasses =\n this.appearance() === 'outline' || this.appearance() === 'outline-filled'\n ? [this.getOutlineClasses(this.variant())]\n : [];\n\n if (this.appearance() === 'outline-filled') {\n outlineClasses.push(this.getOutlineFilledClasses(this.variant()));\n }\n\n return hlm(\n buttonVariants({\n variant: this.variant(),\n size: this.size(),\n appearance: this.appearance(),\n loading: this.loading(),\n className: this.userClass(),\n }),\n outlineClasses,\n this.loading() ? 'tw:pointer-events-none' : '',\n this._additionalClasses(),\n );\n });\n\n /** Computed spinner classes */\n protected readonly spinnerClass = computed(() => {\n const base =\n this.appearance() === 'outline' || this.appearance() === 'outline-filled'\n ? this.getOutlineSpinnerClasses(this.variant())\n : this.getSpinnerClasses(this.variant());\n\n return hlm(base, this.spinnerUserClass());\n });\n\n setClass(classes: string): void {\n this._additionalClasses.set(classes);\n }\n\n /** Helper functions */\n private getOutlineClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:border-primary tw:text-primary tw:shadow-sm tw:hover:bg-primary/10',\n secondary: 'tw:border-secondary tw:text-secondary tw:shadow-sm tw:hover:bg-secondary/10',\n success: 'tw:border-success tw:text-success tw:shadow-sm tw:hover:bg-success/10',\n warning: 'tw:border-warning tw:text-warning tw:shadow-sm tw:hover:bg-warning/10',\n danger: 'tw:border-danger tw:text-danger tw:shadow-sm tw:hover:bg-danger/10',\n info: 'tw:border-info tw:text-info tw:shadow-sm tw:hover:bg-info/10',\n light: 'tw:border-light tw:text-light-foreground tw:shadow-sm tw:hover:bg-light/10',\n dark: 'tw:border-dark tw:text-dark tw:shadow-sm tw:hover:bg-dark/10',\n accent: 'tw:border-accent tw:text-accent tw:shadow-sm tw:hover:bg-accent/10',\n destructive: 'tw:border-destructive tw:text-destructive tw:shadow-sm tw:hover:bg-destructive/10',\n muted: 'tw:border-muted tw:text-muted-foreground tw:shadow-sm tw:hover:bg-muted/10',\n link: 'tw:text-primary',\n ghost: 'tw:text-light-foreground',\n };\n return colors[variant];\n }\n\n private getOutlineFilledClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:hover:bg-primary tw:hover:text-primary-foreground',\n secondary: 'tw:hover:bg-secondary tw:hover:text-secondary-foreground',\n success: 'tw:hover:bg-success tw:hover:text-success-foreground',\n warning: 'tw:hover:bg-warning tw:hover:text-warning-foreground',\n danger: 'tw:hover:bg-danger tw:hover:text-danger-foreground',\n info: 'tw:hover:bg-info tw:hover:text-info-foreground',\n light: 'tw:hover:bg-light tw:hover:text-light-foreground',\n dark: 'tw:hover:bg-dark tw:hover:text-dark-foreground',\n accent: 'tw:hover:bg-accent tw:hover:text-accent-foreground',\n destructive: 'tw:hover:bg-destructive tw:hover:text-destructive-foreground',\n muted: 'tw:hover:bg-muted tw:hover:text-muted-foreground',\n link: 'tw:hover:underline',\n ghost: 'tw:hover:bg-light',\n };\n return colors[variant];\n }\n\n private getSpinnerClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:[&>svg]:text-primary-foreground',\n secondary: 'tw:[&>svg]:text-secondary-foreground',\n success: 'tw:[&>svg]:text-success-foreground',\n warning: 'tw:[&>svg]:text-warning-foreground',\n danger: 'tw:[&>svg]:text-danger-foreground',\n info: 'tw:[&>svg]:text-info-foreground',\n light: 'tw:[&>svg]:text-light-foreground',\n dark: 'tw:[&>svg]:text-dark-foreground',\n accent: 'tw:[&>svg]:text-accent-foreground',\n destructive: 'tw:[&>svg]:text-destructive-foreground',\n muted: 'tw:[&>svg]:text-muted-foreground',\n link: 'tw:[&>svg]:text-primary',\n ghost: 'tw:[&>svg]:text-light-foreground',\n };\n return colors[variant];\n }\n\n private getOutlineSpinnerClasses(variant: VariantType) {\n const colors: Record<VariantType, string> = {\n primary: 'tw:[&>svg]:text-primary',\n secondary: 'tw:[&>svg]:text-secondary',\n success: 'tw:[&>svg]:text-success',\n warning: 'tw:[&>svg]:text-warning',\n danger: 'tw:[&>svg]:text-danger',\n info: 'tw:[&>svg]:text-info',\n light: 'tw:[&>svg]:text-light',\n dark: 'tw:[&>svg]:text-dark',\n accent: 'tw:[&>svg]:text-accent',\n destructive: 'tw:[&>svg]:text-destructive',\n muted: 'tw:[&>svg]:text-muted-foreground',\n link: 'tw:[&>svg]:text-primary',\n ghost: 'tw:[&>svg]:text-light-foreground',\n };\n return colors[variant];\n }\n}\n","/*\n * Public API Surface of button\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmButton } from './lib/button';\nexport * from './lib/button';\n\nexport const HlmButtonImports = [HlmButton] as const;\n\n@NgModule({\n imports: [...HlmButtonImports],\n exports: [...HlmButtonImports],\n})\nexport class HlmButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAQO,MAAM,cAAc,GAAG,GAAG,CAC/B;IACE,mBAAmB;IACnB,+BAA+B;IAC/B,iCAAiC;IACjC,wBAAwB;IACxB,+BAA+B;IAC/B,yBAAyB;IACzB,4BAA4B;IAC5B,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,YAAY;IACZ,cAAc;IACd,eAAe;IACf,sBAAsB;IACtB,sBAAsB;IACtB,gCAAgC;IAChC,qBAAqB;IACrB,mBAAmB;CACpB,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EACL,0GAA0G;AAC5G,YAAA,SAAS,EACP,kHAAkH;AACpH,YAAA,OAAO,EACL,0GAA0G;AAC5G,YAAA,OAAO,EACL,0GAA0G;AAC5G,YAAA,MAAM,EAAE,sGAAsG;AAC9G,YAAA,IAAI,EAAE,8FAA8F;AACpG,YAAA,KAAK,EAAE,kGAAkG;AACzG,YAAA,IAAI,EAAE,8FAA8F;AACpG,YAAA,MAAM,EAAE,sGAAsG;AAC9G,YAAA,WAAW,EACT,0HAA0H;AAC5H,YAAA,KAAK,EAAE,kGAAkG;AACzG,YAAA,IAAI,EAAE,0DAA0D;AAChE,YAAA,KAAK,EAAE,kDAAkD;AAC1D,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,yCAAyC;AAC7C,YAAA,EAAE,EAAE,8BAA8B;AAClC,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,EAAE,EAAE,4CAA4C;AAChD,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,YAAY,EAAE,mCAAmC;AACjD,YAAA,YAAY,EAAE,wBAAwB;AACtC,YAAA,iBAAiB,EAAE,wBAAwB;AAC3C,YAAA,YAAY,EAAE,qCAAqC;AACnD,YAAA,cAAc,EAAE,eAAe;AAChC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,gBAAgB,EAAE,uBAAuB;AAC1C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,OAAO,EAAE,KAAK;AACf,KAAA;AACF,CAAA;MA8CU,SAAS,CAAA;;AAEpB,IAAA,OAAO,GAAG,KAAK,CAAc,SAAS,mDAAC;AACvC,IAAA,IAAI,GAAG,KAAK,CAAW,SAAS,gDAAC;AACjC,IAAA,UAAU,GAAG,KAAK,CAAiB,OAAO,sDAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAkB,SAAS,gDAAC;AACxC,IAAA,YAAY,GAAG,KAAK,CAAmB,MAAM,wDAAC;AAC9C,IAAA,SAAS,GAAG,KAAK,CAAa,EAAE,qDAAC;AACjC,IAAA,gBAAgB,GAAG,KAAK,CAAa,EAAE,4DAAC;AACxC,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ,gDAAC;AAEpC,IAAA,kBAAkB,GAAG,MAAM,CAAa,EAAE,8DAAC;;AAGzC,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,QAAA,MAAM,cAAc,GAClB,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK;cACrD,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;cACvC,EAAE;AAER,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,gBAAgB,EAAE;AAC1C,YAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE;QAEA,OAAO,GAAG,CACR,cAAc,CAAC;AACb,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;SAC5B,CAAC,EACF,cAAc,EACd,IAAI,CAAC,OAAO,EAAE,GAAG,wBAAwB,GAAG,EAAE,EAC9C,IAAI,CAAC,kBAAkB,EAAE,CAC1B;AACH,IAAA,CAAC,0DAAC;;AAGiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,IAAI,GACR,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK;cACrD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE;cAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAE5C,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3C,IAAA,CAAC,wDAAC;AAEF,IAAA,QAAQ,CAAC,OAAe,EAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;IACtC;;AAGQ,IAAA,iBAAiB,CAAC,OAAoB,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAgC;AAC1C,YAAA,OAAO,EAAE,uEAAuE;AAChF,YAAA,SAAS,EAAE,6EAA6E;AACxF,YAAA,OAAO,EAAE,uEAAuE;AAChF,YAAA,OAAO,EAAE,uEAAuE;AAChF,YAAA,MAAM,EAAE,oEAAoE;AAC5E,YAAA,IAAI,EAAE,8DAA8D;AACpE,YAAA,KAAK,EAAE,4EAA4E;AACnF,YAAA,IAAI,EAAE,8DAA8D;AACpE,YAAA,MAAM,EAAE,oEAAoE;AAC5E,YAAA,WAAW,EAAE,mFAAmF;AAChG,YAAA,KAAK,EAAE,4EAA4E;AACnF,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,KAAK,EAAE,0BAA0B;SAClC;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB;AAEQ,IAAA,uBAAuB,CAAC,OAAoB,EAAA;AAClD,QAAA,MAAM,MAAM,GAAgC;AAC1C,YAAA,OAAO,EAAE,sDAAsD;AAC/D,YAAA,SAAS,EAAE,0DAA0D;AACrE,YAAA,OAAO,EAAE,sDAAsD;AAC/D,YAAA,OAAO,EAAE,sDAAsD;AAC/D,YAAA,MAAM,EAAE,oDAAoD;AAC5D,YAAA,IAAI,EAAE,gDAAgD;AACtD,YAAA,KAAK,EAAE,kDAAkD;AACzD,YAAA,IAAI,EAAE,gDAAgD;AACtD,YAAA,MAAM,EAAE,oDAAoD;AAC5D,YAAA,WAAW,EAAE,8DAA8D;AAC3E,YAAA,KAAK,EAAE,kDAAkD;AACzD,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,KAAK,EAAE,mBAAmB;SAC3B;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB;AAEQ,IAAA,iBAAiB,CAAC,OAAoB,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAgC;AAC1C,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,SAAS,EAAE,sCAAsC;AACjD,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,MAAM,EAAE,mCAAmC;AAC3C,YAAA,IAAI,EAAE,iCAAiC;AACvC,YAAA,KAAK,EAAE,kCAAkC;AACzC,YAAA,IAAI,EAAE,iCAAiC;AACvC,YAAA,MAAM,EAAE,mCAAmC;AAC3C,YAAA,WAAW,EAAE,wCAAwC;AACrD,YAAA,KAAK,EAAE,kCAAkC;AACzC,YAAA,IAAI,EAAE,yBAAyB;AAC/B,YAAA,KAAK,EAAE,kCAAkC;SAC1C;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB;AAEQ,IAAA,wBAAwB,CAAC,OAAoB,EAAA;AACnD,QAAA,MAAM,MAAM,GAAgC;AAC1C,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,SAAS,EAAE,2BAA2B;AACtC,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,wBAAwB;AAChC,YAAA,WAAW,EAAE,6BAA6B;AAC1C,YAAA,KAAK,EAAE,kCAAkC;AACzC,YAAA,IAAI,EAAE,yBAAyB;AAC/B,YAAA,KAAK,EAAE,kCAAkC;SAC1C;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB;uGAjIW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,yCAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3BV;;;;;;;;;;;;;;;;;;;;;;;;;GAyBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjCoB,UAAU,2GAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAmCtC,SAAS,EAAA,UAAA,EAAA,CAAA;kBAtCrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC;AAClD,oBAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAChE,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,kBAAkB,EAAE,mBAAmB;AACvC,wBAAA,iBAAiB,EAAE,yCAAyC;AAC5D,wBAAA,aAAa,EAAE,QAAQ;AACxB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA;AACF,iBAAA;;;AC/HD;;AAEG;AAMI,MAAM,gBAAgB,GAAG,CAAC,SAAS;MAM7B,eAAe,CAAA;uGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAf,eAAe,EAAA,OAAA,EAAA,CANK,SAAS,CAAA,EAAA,OAAA,EAAA,CAAT,SAAS,CAAA,EAAA,CAAA;AAM7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHb,gBAAgB,CAAA,EAAA,CAAA;;2FAGlB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAC9B,oBAAA,OAAO,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAC/B,iBAAA;;;ACbD;;AAEG;;;;"}
package/button/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
  import { ClassValue } from 'clsx';
@@ -6,7 +6,7 @@ import * as i1 from '@spartan-ng/brain/button';
6
6
 
7
7
  declare const buttonVariants: (props?: ({
8
8
  variant?: "primary" | "secondary" | "success" | "warning" | "danger" | "info" | "light" | "dark" | "accent" | "destructive" | "muted" | "link" | "ghost" | null | undefined;
9
- size?: "default" | "sm" | "lg" | "icon" | "compact-default" | "compact-sm" | "compact-lg" | "compact-icon" | null | undefined;
9
+ size?: "xs" | "sm" | "default" | "lg" | "icon" | "compact-xs" | "compact-sm" | "compact-default" | "compact-lg" | "compact-icon" | null | undefined;
10
10
  appearance?: "solid" | "outline" | "outline-filled" | null | undefined;
11
11
  loading?: boolean | null | undefined;
12
12
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -15,37 +15,37 @@ type VariantType = NonNullable<ButtonVariants['variant']>;
15
15
  type SizeType = NonNullable<ButtonVariants['size']>;
16
16
  type AppearanceType = NonNullable<ButtonVariants['appearance']>;
17
17
  declare class HlmButton {
18
- /** Props */
19
- variant: VariantType;
20
- size: SizeType;
21
- appearance: AppearanceType;
22
- loading: boolean;
23
- icon?: any;
24
- iconPosition: 'left' | 'right';
25
- userClass: ClassValue;
26
- spinnerUserClass: ClassValue;
27
- disabled: boolean;
28
- type: 'button' | 'submit' | 'reset';
18
+ /** Props as signal-based inputs */
19
+ variant: _angular_core.InputSignal<VariantType>;
20
+ size: _angular_core.InputSignal<SizeType>;
21
+ appearance: _angular_core.InputSignal<AppearanceType>;
22
+ loading: _angular_core.InputSignal<boolean>;
23
+ icon: _angular_core.InputSignal<any>;
24
+ iconPosition: _angular_core.InputSignal<"left" | "right">;
25
+ userClass: _angular_core.InputSignal<ClassValue>;
26
+ spinnerUserClass: _angular_core.InputSignal<ClassValue>;
27
+ disabled: _angular_core.InputSignal<boolean>;
28
+ type: _angular_core.InputSignal<"button" | "submit" | "reset">;
29
29
  private readonly _additionalClasses;
30
30
  /** Computed button class merging */
31
- protected readonly _computedClass: i0.Signal<string>;
31
+ protected readonly _computedClass: _angular_core.Signal<string>;
32
32
  /** Computed spinner classes */
33
- protected readonly spinnerClass: i0.Signal<string>;
33
+ protected readonly spinnerClass: _angular_core.Signal<string>;
34
34
  setClass(classes: string): void;
35
35
  /** Helper functions */
36
36
  private getOutlineClasses;
37
37
  private getOutlineFilledClasses;
38
38
  private getSpinnerClasses;
39
39
  private getOutlineSpinnerClasses;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<HlmButton, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<HlmButton, "button[hlmButton], a[hlmButton]", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "userClass": { "alias": "userClass"; "required": false; }; "spinnerUserClass": { "alias": "spinnerUserClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BrnButton; inputs: { "disabled": "disabled"; }; outputs: {}; }]>;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmButton, never>;
41
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmButton, "button[hlmButton], a[hlmButton]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "userClass": { "alias": "userClass"; "required": false; "isSignal": true; }; "spinnerUserClass": { "alias": "spinnerUserClass"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BrnButton; inputs: { "disabled": "disabled"; }; outputs: {}; }]>;
42
42
  }
43
43
 
44
44
  declare const HlmButtonImports: readonly [typeof HlmButton];
45
45
  declare class HlmButtonModule {
46
- static ɵfac: i0.ɵɵFactoryDeclaration<HlmButtonModule, never>;
47
- static ɵmod: i0.ɵɵNgModuleDeclaration<HlmButtonModule, never, [typeof HlmButton], [typeof HlmButton]>;
48
- static ɵinj: i0.ɵɵInjectorDeclaration<HlmButtonModule>;
46
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmButtonModule, never>;
47
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HlmButtonModule, never, [typeof HlmButton], [typeof HlmButton]>;
48
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<HlmButtonModule>;
49
49
  }
50
50
 
51
51
  export { HlmButton, HlmButtonImports, HlmButtonModule, buttonVariants };
@@ -40,8 +40,8 @@ class HlmCalendar {
40
40
  .config()
41
41
  .formatHeader(this._dateAdapter.getMonth(this._calendar().focusedDate()), this._dateAdapter.getYear(this._calendar().focusedDate())), ...(ngDevMode ? [{ debugName: "_heading" }] : []));
42
42
  _btnClass = hlm(buttonVariants({ variant: 'ghost' }), 'tw:size-8 tw:p-0 tw:font-normal tw:aria-selected:opacity-100', 'tw:data-[outside]:text-muted-foreground tw:data-[outside]:aria-selected:bg-secondary/50 tw:data-[outside]:aria-selected:text-muted-foreground tw:data-[outside]:opacity-50 tw:data-[outside]:aria-selected:opacity-30', 'tw:data-[today]:bg-secondary tw:data-[today]:text-secondary-foreground', 'tw:data-[selected]:bg-primary tw:data-[selected]:text-primary-foreground tw:data-[selected]:hover:bg-primary tw:data-[selected]:focus:bg-primary tw:data-[selected]:focus:text-primary-foreground', 'tw:data-[disabled]:text-muted-foreground tw:data-[disabled]:opacity-50');
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: HlmCalendar, isStandalone: true, selector: "hlm-calendar", inputs: { calendarClass: { classPropertyName: "calendarClass", publicName: "calendarClass", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "dateDisabled", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, defaultFocusedDate: { classPropertyName: "defaultFocusedDate", publicName: "defaultFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "dateChange" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: BrnCalendar, descendants: true, isSignal: true }], ngImport: i0, template: `
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmCalendar, isStandalone: true, selector: "hlm-calendar", inputs: { calendarClass: { classPropertyName: "calendarClass", publicName: "calendarClass", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "dateDisabled", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, defaultFocusedDate: { classPropertyName: "defaultFocusedDate", publicName: "defaultFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "dateChange" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: BrnCalendar, descendants: true, isSignal: true }], ngImport: i0, template: `
45
45
  <div
46
46
  brnCalendar
47
47
  [min]="min()"
@@ -112,7 +112,7 @@ class HlmCalendar {
112
112
  </div>
113
113
  `, isInline: true, dependencies: [{ kind: "directive", type: BrnCalendar, selector: "[brnCalendar]", inputs: ["min", "max", "disabled", "date", "dateDisabled", "weekStartsOn", "defaultFocusedDate"], outputs: ["dateChange"] }, { kind: "directive", type: BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendar, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendar, decorators: [{
116
116
  type: Component,
117
117
  args: [{
118
118
  selector: 'hlm-calendar',
@@ -244,8 +244,8 @@ class HlmCalendarMulti {
244
244
  .config()
245
245
  .formatHeader(this._dateAdapter.getMonth(this._calendar().focusedDate()), this._dateAdapter.getYear(this._calendar().focusedDate())), ...(ngDevMode ? [{ debugName: "_heading" }] : []));
246
246
  _btnClass = hlm(buttonVariants({ variant: 'ghost' }), 'tw:size-8 tw:p-0 tw:font-normal tw:aria-selected:opacity-100', 'tw:data-[outside]:text-muted-foreground tw:data-[outside]:aria-selected:bg-accent/50 tw:data-[outside]:aria-selected:text-muted-foreground tw:data-[outside]:opacity-50 tw:data-[outside]:aria-selected:opacity-30', 'tw:data-[today]:bg-accent tw:data-[today]:text-accent-foreground', 'tw:data-[selected]:bg-primary tw:data-[selected]:text-primary-foreground tw:data-[selected]:hover:bg-primary tw:data-[selected]:hover:text-primary-foreground tw:data-[selected]:focus:bg-primary tw:data-[selected]:focus:text-primary-foreground', 'tw:data-[disabled]:text-muted-foreground tw:data-[disabled]:opacity-50');
247
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarMulti, deps: [], target: i0.ɵɵFactoryTarget.Component });
248
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: HlmCalendarMulti, isStandalone: true, selector: "hlm-calendar-multi", inputs: { calendarClass: { classPropertyName: "calendarClass", publicName: "calendarClass", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minSelection: { classPropertyName: "minSelection", publicName: "minSelection", isSignal: true, isRequired: false, transformFunction: null }, maxSelection: { classPropertyName: "maxSelection", publicName: "maxSelection", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "dateDisabled", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, defaultFocusedDate: { classPropertyName: "defaultFocusedDate", publicName: "defaultFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "dateChange" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: BrnCalendarMulti, descendants: true, isSignal: true }], ngImport: i0, template: `
247
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarMulti, deps: [], target: i0.ɵɵFactoryTarget.Component });
248
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmCalendarMulti, isStandalone: true, selector: "hlm-calendar-multi", inputs: { calendarClass: { classPropertyName: "calendarClass", publicName: "calendarClass", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minSelection: { classPropertyName: "minSelection", publicName: "minSelection", isSignal: true, isRequired: false, transformFunction: null }, maxSelection: { classPropertyName: "maxSelection", publicName: "maxSelection", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "dateDisabled", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, defaultFocusedDate: { classPropertyName: "defaultFocusedDate", publicName: "defaultFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { date: "dateChange" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: BrnCalendarMulti, descendants: true, isSignal: true }], ngImport: i0, template: `
249
249
  <div
250
250
  brnCalendarMulti
251
251
  [min]="min()"
@@ -318,7 +318,7 @@ class HlmCalendarMulti {
318
318
  </div>
319
319
  `, isInline: true, dependencies: [{ kind: "directive", type: BrnCalendarMulti, selector: "[brnCalendarMulti]", inputs: ["min", "max", "minSelection", "maxSelection", "disabled", "date", "dateDisabled", "weekStartsOn", "defaultFocusedDate"], outputs: ["dateChange"] }, { kind: "directive", type: BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
320
320
  }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarMulti, decorators: [{
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarMulti, decorators: [{
322
322
  type: Component,
323
323
  args: [{
324
324
  selector: 'hlm-calendar-multi',
@@ -446,8 +446,8 @@ class HlmCalendarRange {
446
446
  .config()
447
447
  .formatHeader(this._dateAdapter.getMonth(this._calendar().focusedDate()), this._dateAdapter.getYear(this._calendar().focusedDate())), ...(ngDevMode ? [{ debugName: "_heading" }] : []));
448
448
  _btnClass = hlm(buttonVariants({ variant: 'ghost' }), 'tw:size-8 tw:p-0 tw:font-normal tw:aria-selected:opacity-100', 'tw:data-[outside]:text-muted-foreground tw:data-[outside]:aria-selected:text-muted-foreground', 'tw:data-[today]:bg-accent tw:data-[today]:text-accent-foreground', 'tw:data-[selected]:bg-primary tw:data-[selected]:text-primary-foreground tw:data-[selected]:focus:bg-primary tw:data-[selected]:focus:text-primary-foreground', 'tw:data-[disabled]:text-muted-foreground tw:data-[disabled]:opacity-50', 'tw:data-[range-start]:rounded-l-md', 'tw:data-[range-end]:rounded-r-md', 'tw:data-[range-between]:bg-accent tw:data-[range-between]:text-accent-foreground tw:data-[range-between]:rounded-none');
449
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarRange, deps: [], target: i0.ɵɵFactoryTarget.Component });
450
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: HlmCalendarRange, isStandalone: true, selector: "hlm-calendar-range", inputs: { calendarClass: { classPropertyName: "calendarClass", publicName: "calendarClass", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "dateDisabled", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, defaultFocusedDate: { classPropertyName: "defaultFocusedDate", publicName: "defaultFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startDate: "startDateChange", endDate: "endDateChange" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: BrnCalendarRange, descendants: true, isSignal: true }], ngImport: i0, template: `
449
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarRange, deps: [], target: i0.ɵɵFactoryTarget.Component });
450
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmCalendarRange, isStandalone: true, selector: "hlm-calendar-range", inputs: { calendarClass: { classPropertyName: "calendarClass", publicName: "calendarClass", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, dateDisabled: { classPropertyName: "dateDisabled", publicName: "dateDisabled", isSignal: true, isRequired: false, transformFunction: null }, weekStartsOn: { classPropertyName: "weekStartsOn", publicName: "weekStartsOn", isSignal: true, isRequired: false, transformFunction: null }, defaultFocusedDate: { classPropertyName: "defaultFocusedDate", publicName: "defaultFocusedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startDate: "startDateChange", endDate: "endDateChange" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: BrnCalendarRange, descendants: true, isSignal: true }], ngImport: i0, template: `
451
451
  <div
452
452
  brnCalendarRange
453
453
  [min]="min()"
@@ -519,7 +519,7 @@ class HlmCalendarRange {
519
519
  </div>
520
520
  `, isInline: true, dependencies: [{ kind: "directive", type: BrnCalendarHeader, selector: "[brnCalendarHeader]", inputs: ["id"] }, { kind: "directive", type: BrnCalendarNextButton, selector: "[brnCalendarNextButton]" }, { kind: "directive", type: BrnCalendarPreviousButton, selector: "[brnCalendarPreviousButton]" }, { kind: "directive", type: BrnCalendarWeekday, selector: "[brnCalendarWeekday]" }, { kind: "directive", type: BrnCalendarWeek, selector: "[brnCalendarWeek]" }, { kind: "directive", type: BrnCalendarCellButton, selector: "button[brnCalendarCellButton]", inputs: ["date"] }, { kind: "directive", type: BrnCalendarCell, selector: "[brnCalendarCell]" }, { kind: "directive", type: BrnCalendarGrid, selector: "[brnCalendarGrid]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }, { kind: "directive", type: BrnCalendarRange, selector: "[brnCalendarRange]", inputs: ["min", "max", "disabled", "dateDisabled", "weekStartsOn", "defaultFocusedDate", "startDate", "endDate"], outputs: ["startDateChange", "endDateChange"] }], viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
521
521
  }
522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarRange, decorators: [{
522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarRange, decorators: [{
523
523
  type: Component,
524
524
  args: [{
525
525
  selector: 'hlm-calendar-range',
@@ -617,11 +617,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
617
617
  */
618
618
  const HlmCalendarImports = [HlmCalendar, HlmCalendarMulti, HlmCalendarRange];
619
619
  class HlmCalendarModule {
620
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
621
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarModule, imports: [HlmCalendar, HlmCalendarMulti, HlmCalendarRange], exports: [HlmCalendar, HlmCalendarMulti, HlmCalendarRange] });
622
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarModule, imports: [HlmCalendarImports] });
620
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
621
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarModule, imports: [HlmCalendar, HlmCalendarMulti, HlmCalendarRange], exports: [HlmCalendar, HlmCalendarMulti, HlmCalendarRange] });
622
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarModule, imports: [HlmCalendarImports] });
623
623
  }
624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmCalendarModule, decorators: [{
624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCalendarModule, decorators: [{
625
625
  type: NgModule,
626
626
  args: [{
627
627
  imports: [...HlmCalendarImports],
@@ -16,8 +16,8 @@ class EgConfirmationDiaglog {
16
16
  close(confirm) {
17
17
  this._dialogRef.close(confirm);
18
18
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: EgConfirmationDiaglog, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: EgConfirmationDiaglog, isStandalone: true, selector: "ng-component", host: { classAttribute: "tw:w-full tw:p-1" }, providers: [provideIcons({ lucideTriangleAlert })], ngImport: i0, template: `
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDiaglog, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: EgConfirmationDiaglog, isStandalone: true, selector: "ng-component", host: { classAttribute: "tw:w-full tw:p-1" }, providers: [provideIcons({ lucideTriangleAlert })], ngImport: i0, template: `
21
21
  <hlm-dialog-header>
22
22
  <div class="tw:flex tw:items-center tw:gap-1">
23
23
  <ng-icon hlm hlmAlertIcon name="lucideTriangleAlert" size="base" />
@@ -32,7 +32,7 @@ class EgConfirmationDiaglog {
32
32
  </hlm-dialog-footer>
33
33
  `, isInline: true, dependencies: [{ kind: "component", type: HlmButton, selector: "button[hlmButton], a[hlmButton]", inputs: ["variant", "size", "appearance", "loading", "icon", "iconPosition", "userClass", "spinnerUserClass", "disabled", "type"] }, { kind: "directive", type: HlmDialogDescription, selector: "[hlmDialogDescription]", inputs: ["class"] }, { kind: "component", type: HlmDialogHeader, selector: "hlm-dialog-header", inputs: ["class"] }, { kind: "component", type: HlmDialogFooter, selector: "hlm-dialog-footer", inputs: ["class"] }, { kind: "directive", type: HlmDialogTitle, selector: "[hlmDialogTitle]", inputs: ["class"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }] });
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: EgConfirmationDiaglog, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDiaglog, decorators: [{
36
36
  type: Component,
37
37
  args: [{
38
38
  imports: [HlmButton, HlmDialogDescription, HlmDialogHeader, HlmDialogFooter, HlmDialogTitle, NgIcon, HlmIcon],
@@ -73,10 +73,10 @@ class EgConfirmationDialogService {
73
73
  });
74
74
  });
75
75
  }
76
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: EgConfirmationDialogService, deps: [{ token: i1.HlmDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
77
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: EgConfirmationDialogService, providedIn: 'root' });
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDialogService, deps: [{ token: i1.HlmDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
77
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDialogService, providedIn: 'root' });
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: EgConfirmationDialogService, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDialogService, decorators: [{
80
80
  type: Injectable,
81
81
  args: [{ providedIn: 'root' }]
82
82
  }], ctorParameters: () => [{ type: i1.HlmDialogService }] });