@egose/shadcn-theme-ng 0.0.12 → 0.0.14

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 (44) hide show
  1. package/accordion/fesm2022/accordion.mjs +10 -10
  2. package/alert/fesm2022/alert.mjs +30 -30
  3. package/autocomplete/fesm2022/autocomplete.mjs +34 -15
  4. package/autocomplete/fesm2022/autocomplete.mjs.map +1 -1
  5. package/autocomplete/index.d.ts +5 -1
  6. package/badge/fesm2022/badge.mjs +70 -79
  7. package/badge/fesm2022/badge.mjs.map +1 -1
  8. package/badge/index.d.ts +9 -9
  9. package/basic-alert/fesm2022/basic-alert.mjs +15 -23
  10. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
  11. package/basic-alert/index.d.ts +7 -7
  12. package/button/fesm2022/button.mjs +148 -168
  13. package/button/fesm2022/button.mjs.map +1 -1
  14. package/button/index.d.ts +19 -19
  15. package/calendar/fesm2022/calendar.mjs +78 -78
  16. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +10 -10
  17. package/date-picker/fesm2022/date-picker.mjs +11 -11
  18. package/dialog/fesm2022/dialog.mjs +9 -9
  19. package/exports.json +1 -1
  20. package/form-date-picker/fesm2022/form-date-picker.mjs +9 -9
  21. package/form-field/fesm2022/form-field.mjs +3 -3
  22. package/form-searchable-multiselect/README.md +64 -0
  23. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +124 -0
  24. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -0
  25. package/form-searchable-multiselect/index.d.ts +28 -0
  26. package/form-select/fesm2022/form-select.mjs +9 -9
  27. package/form-text-input/fesm2022/form-text-input.mjs +9 -9
  28. package/form-textarea/fesm2022/form-textarea.mjs +9 -9
  29. package/input/fesm2022/input.mjs +3 -3
  30. package/label/fesm2022/label.mjs +1 -1
  31. package/package.json +9 -1
  32. package/popover/fesm2022/popover.mjs +2 -2
  33. package/radio-group/fesm2022/radio-group.mjs +5 -5
  34. package/searchable-multiselect/README.md +64 -0
  35. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +221 -0
  36. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -0
  37. package/searchable-multiselect/index.d.ts +50 -0
  38. package/select/fesm2022/select.mjs +18 -18
  39. package/separator/fesm2022/separator.mjs +1 -1
  40. package/sonner/fesm2022/sonner.mjs +4 -4
  41. package/spinner/fesm2022/spinner.mjs +6 -6
  42. package/switch/fesm2022/switch.mjs +2 -2
  43. package/tabs/fesm2022/tabs.mjs +12 -12
  44. package/tooltip/fesm2022/tooltip.mjs +5 -5
@@ -10,7 +10,7 @@ import { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';
10
10
  class HlmAccordion {
11
11
  _brn = inject(BrnAccordion);
12
12
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
13
- _computedClass = computed(() => hlm('tw:flex', this._brn.orientation() === 'horizontal' ? 'tw:flex-row' : 'tw:flex-col', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
13
+ _computedClass = computed(() => hlm('flex', this._brn.orientation() === 'horizontal' ? 'flex-row' : 'flex-col', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive });
15
15
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAccordion, isStandalone: true, selector: "[hlmAccordion], hlm-accordion", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordion, inputs: ["type", "type", "dir", "dir", "orientation", "orientation"] }], ngImport: i0 });
16
16
  }
@@ -28,13 +28,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
28
28
  class HlmAccordionContent extends BrnAccordionContent {
29
29
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
30
30
  _computedClass = computed(() => {
31
- const gridRows = this.state() === 'open' ? 'tw:grid-rows-[1fr]' : 'tw:hidden';
32
- return hlm('tw:grid tw:text-sm tw:transition-all', gridRows, this.userClass());
31
+ const gridRows = this.state() === 'open' ? 'grid-rows-[1fr]' : 'hidden';
32
+ return hlm('grid text-sm transition-all', gridRows, this.userClass());
33
33
  }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
34
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAccordionContent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
35
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAccordionContent, isStandalone: true, selector: "hlm-accordion-content", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, usesInheritance: true, ngImport: i0, template: `
36
- <div [attr.inert]="_addInert()" style="tw:overflow:hidden">
37
- <div class="tw:flex tw:flex-col tw:gap-4 tw:text-balance tw:pb-4 tw:pt-0">
36
+ <div [attr.inert]="_addInert()" style="overflow:hidden">
37
+ <div class="flex flex-col gap-4 text-balance pb-4 pt-0">
38
38
  <ng-content />
39
39
  </div>
40
40
  </div>
@@ -45,8 +45,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
45
45
  args: [{
46
46
  selector: 'hlm-accordion-content',
47
47
  template: `
48
- <div [attr.inert]="_addInert()" style="tw:overflow:hidden">
49
- <div class="tw:flex tw:flex-col tw:gap-4 tw:text-balance tw:pb-4 tw:pt-0">
48
+ <div [attr.inert]="_addInert()" style="overflow:hidden">
49
+ <div class="flex flex-col gap-4 text-balance pb-4 pt-0">
50
50
  <ng-content />
51
51
  </div>
52
52
  </div>
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
61
61
 
62
62
  class HlmAccordionIcon {
63
63
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
64
- _computedClass = computed(() => hlm('tw:text-muted-foreground tw:pointer-events-none tw:size-4 tw:shrink-0 tw:translate-y-0.5 tw:transition-transform tw:duration-200', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
64
+ _computedClass = computed(() => hlm('text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
65
65
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAccordionIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
66
66
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAccordionIcon, isStandalone: true, selector: "ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [provideIcons({ lucideChevronDown }), provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
67
67
  }
@@ -78,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
78
78
 
79
79
  class HlmAccordionItem {
80
80
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
81
- _computedClass = computed(() => hlm('tw:border-border tw:flex tw:flex-1 tw:flex-col tw:border-b', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
81
+ _computedClass = computed(() => hlm('border-border flex flex-1 flex-col border-b', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
82
82
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
83
83
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAccordionItem, isStandalone: true, selector: "[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionItem, inputs: ["isOpened", "isOpened"] }], ngImport: i0 });
84
84
  }
@@ -100,7 +100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
100
100
 
101
101
  class HlmAccordionTrigger {
102
102
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
103
- _computedClass = computed(() => hlm('tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:flex tw:flex-1 tw:items-start tw:justify-between tw:gap-4 tw:rounded-md tw:py-4 tw:text-left tw:text-sm tw:font-medium tw:outline-none tw:transition-all tw:hover:underline tw:focus-visible:ring-[3px] tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:[&[data-state=open]>[egAccIcon]]:rotate-180', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
103
+ _computedClass = computed(() => hlm('focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium outline-none transition-all hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>[egAccIcon]]:rotate-180', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
104
104
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
105
105
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAccordionTrigger, isStandalone: true, selector: "[hlmAccordionTrigger]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--tw-ring-offset-shadow": "\"0 0 #000\"", "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionTrigger }], ngImport: i0 });
106
106
  }
@@ -4,93 +4,93 @@ import { hlm } from '@egose/shadcn-theme-ng/utils';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';
6
6
 
7
- const alertVariants = cva('tw:relative tw:w-full tw:items-start tw:gap-y-0.5 tw:rounded-lg tw:border tw:px-4 tw:py-3 tw:text-sm tw:has-[>[hlmAlertIcon]]:grid tw:has-[>[hlmAlertIcon]]:grid-cols-[calc(theme(spacing.1)*4)_1fr] tw:has-[>[hlmAlertIcon]]:gap-x-3 tw:[&>[hlmAlertIcon]]:size-4 tw:[&>[hlmAlertIcon]]:translate-y-0.5 tw:[&>[hlmAlertIcon]]:text-current', {
7
+ const alertVariants = cva('relative w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>[hlmAlertIcon]]:grid has-[>[hlmAlertIcon]]:grid-cols-[calc(theme(spacing.1)*4)_1fr] has-[>[hlmAlertIcon]]:gap-x-3 [&>[hlmAlertIcon]]:size-4 [&>[hlmAlertIcon]]:translate-y-0.5 [&>[hlmAlertIcon]]:text-current', {
8
8
  variants: {
9
9
  variant: {
10
- primary: 'tw:bg-primary tw:text-primary-foreground tw:[&>[hlmAlertDescription]]:text-primary-foreground/90',
11
- secondary: 'tw:bg-secondary tw:text-secondary-foreground tw:[&>[hlmAlertDescription]]:text-secondary-foreground/90',
12
- success: 'tw:bg-success tw:text-success-foreground tw:[&>[hlmAlertDescription]]:text-success-foreground/90',
13
- warning: 'tw:bg-warning tw:text-warning-foreground tw:[&>[hlmAlertDescription]]:text-warning-foreground/90',
14
- danger: 'tw:bg-danger tw:text-danger-foreground tw:[&>[hlmAlertDescription]]:text-danger-foreground/90',
15
- info: 'tw:bg-info tw:text-info-foreground tw:[&>[hlmAlertDescription]]:text-info-foreground/90',
16
- light: 'tw:bg-light tw:text-light-foreground tw:[&>[hlmAlertDescription]]:text-light-foreground/90',
17
- dark: 'tw:bg-dark tw:text-dark-foreground tw:[&>[hlmAlertDescription]]:text-dark-foreground/90',
18
- accent: 'tw:bg-accent tw:text-accent-foreground tw:[&>[hlmAlertDescription]]:text-accent-foreground/90',
19
- destructive: 'tw:bg-destructive tw:text-destructive-foreground tw:[&>[hlmAlertDescription]]:text-destructive-foreground/90',
20
- muted: 'tw:bg-muted tw:text-muted-foreground tw:[&>[hlmAlertDescription]]:text-muted-foreground/90',
21
- link: 'tw:text-primary tw:underline-offset-4 tw:[&>[hlmAlertDescription]]:text-primary/90',
22
- ghost: 'tw:[&>[hlmAlertDescription]]:text-muted-foreground',
10
+ primary: 'bg-primary text-primary-foreground [&>[hlmAlertDescription]]:text-primary-foreground/90',
11
+ secondary: 'bg-secondary text-secondary-foreground [&>[hlmAlertDescription]]:text-secondary-foreground/90',
12
+ success: 'bg-success text-success-foreground [&>[hlmAlertDescription]]:text-success-foreground/90',
13
+ warning: 'bg-warning text-warning-foreground [&>[hlmAlertDescription]]:text-warning-foreground/90',
14
+ danger: 'bg-danger text-danger-foreground [&>[hlmAlertDescription]]:text-danger-foreground/90',
15
+ info: 'bg-info text-info-foreground [&>[hlmAlertDescription]]:text-info-foreground/90',
16
+ light: 'bg-light text-light-foreground [&>[hlmAlertDescription]]:text-light-foreground/90',
17
+ dark: 'bg-dark text-dark-foreground [&>[hlmAlertDescription]]:text-dark-foreground/90',
18
+ accent: 'bg-accent text-accent-foreground [&>[hlmAlertDescription]]:text-accent-foreground/90',
19
+ destructive: 'bg-destructive text-destructive-foreground [&>[hlmAlertDescription]]:text-destructive-foreground/90',
20
+ muted: 'bg-muted text-muted-foreground [&>[hlmAlertDescription]]:text-muted-foreground/90',
21
+ link: 'text-primary underline-offset-4 [&>[hlmAlertDescription]]:text-primary/90',
22
+ ghost: '[&>[hlmAlertDescription]]:text-muted-foreground',
23
23
  },
24
24
  appearance: {
25
25
  solid: '',
26
- light: 'tw:text-semibold',
26
+ light: 'text-semibold',
27
27
  },
28
28
  },
29
29
  compoundVariants: [
30
30
  {
31
31
  variant: 'primary',
32
32
  appearance: 'light',
33
- class: 'tw:bg-primary/20 tw:text-primary tw:[&>[hlmAlertDescription]]:text-primary',
33
+ class: 'bg-primary/20 text-primary [&>[hlmAlertDescription]]:text-primary',
34
34
  },
35
35
  {
36
36
  variant: 'secondary',
37
37
  appearance: 'light',
38
- class: 'tw:bg-secondary/20 tw:text-secondary tw:[&>[hlmAlertDescription]]:text-secondary',
38
+ class: 'bg-secondary/20 text-secondary [&>[hlmAlertDescription]]:text-secondary',
39
39
  },
40
40
  {
41
41
  variant: 'success',
42
42
  appearance: 'light',
43
- class: 'tw:bg-success/20 tw:text-success tw:[&>[hlmAlertDescription]]:text-success',
43
+ class: 'bg-success/20 text-success [&>[hlmAlertDescription]]:text-success',
44
44
  },
45
45
  {
46
46
  variant: 'warning',
47
47
  appearance: 'light',
48
- class: 'tw:bg-warning/20 tw:text-warning tw:[&>[hlmAlertDescription]]:text-warning',
48
+ class: 'bg-warning/20 text-warning [&>[hlmAlertDescription]]:text-warning',
49
49
  },
50
50
  {
51
51
  variant: 'danger',
52
52
  appearance: 'light',
53
- class: 'tw:bg-danger/20 tw:text-danger tw:[&>[hlmAlertDescription]]:text-danger',
53
+ class: 'bg-danger/20 text-danger [&>[hlmAlertDescription]]:text-danger',
54
54
  },
55
55
  {
56
56
  variant: 'info',
57
57
  appearance: 'light',
58
- class: 'tw:bg-info/20 tw:text-info tw:[&>[hlmAlertDescription]]:text-info',
58
+ class: 'bg-info/20 text-info [&>[hlmAlertDescription]]:text-info',
59
59
  },
60
60
  {
61
61
  variant: 'light',
62
62
  appearance: 'light',
63
- class: 'tw:bg-light/20 tw:text-light tw:[&>[hlmAlertDescription]]:text-light',
63
+ class: 'bg-light/20 text-light [&>[hlmAlertDescription]]:text-light',
64
64
  },
65
65
  {
66
66
  variant: 'dark',
67
67
  appearance: 'light',
68
- class: 'tw:bg-dark/20 tw:text-dark tw:[&>[hlmAlertDescription]]:text-dark',
68
+ class: 'bg-dark/20 text-dark [&>[hlmAlertDescription]]:text-dark',
69
69
  },
70
70
  {
71
71
  variant: 'accent',
72
72
  appearance: 'light',
73
- class: 'tw:bg-accent/20 tw:text-accent tw:[&>[hlmAlertDescription]]:text-accent',
73
+ class: 'bg-accent/20 text-accent [&>[hlmAlertDescription]]:text-accent',
74
74
  },
75
75
  {
76
76
  variant: 'destructive',
77
77
  appearance: 'light',
78
- class: 'tw:bg-destructive/20 tw:text-destructive tw:[&>[hlmAlertDescription]]:text-destructive',
78
+ class: 'bg-destructive/20 text-destructive [&>[hlmAlertDescription]]:text-destructive',
79
79
  },
80
80
  {
81
81
  variant: 'muted',
82
82
  appearance: 'light',
83
- class: 'tw:bg-muted/20 tw:text-muted tw:[&>[hlmAlertDescription]]:text-muted',
83
+ class: 'bg-muted/20 text-muted [&>[hlmAlertDescription]]:text-muted',
84
84
  },
85
85
  {
86
86
  variant: 'link',
87
87
  appearance: 'light',
88
- class: 'tw:bg-primary/10 tw:text-primary tw:[&>[hlmAlertDescription]]:text-primary',
88
+ class: 'bg-primary/10 text-primary [&>[hlmAlertDescription]]:text-primary',
89
89
  },
90
90
  {
91
91
  variant: 'ghost',
92
92
  appearance: 'light',
93
- class: 'tw:bg-muted/10 tw:text-muted-foreground tw:[&>[hlmAlertDescription]]:text-muted-foreground',
93
+ class: 'bg-muted/10 text-muted-foreground [&>[hlmAlertDescription]]:text-muted-foreground',
94
94
  },
95
95
  ],
96
96
  defaultVariants: {
@@ -122,7 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
122
122
 
123
123
  class HlmAlertDescription {
124
124
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
125
- _computedClass = computed(() => hlm('tw:text-current tw:col-start-2 tw:grid tw:justify-items-start tw:gap-1 tw:text-sm tw:[&_p]:leading-relaxed', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
125
+ _computedClass = computed(() => hlm('text-current col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
126
126
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAlertDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
127
127
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAlertDescription, isStandalone: true, selector: "[hlmAlertDesc],[hlmAlertDescription]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
128
128
  }
@@ -150,7 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
150
150
 
151
151
  class HlmAlertTitle {
152
152
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
153
- _computedClass = computed(() => hlm('tw:col-start-2 tw:line-clamp-1 tw:min-h-4 tw:text-md tw:font-semibold tw:tracking-tight', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
153
+ _computedClass = computed(() => hlm('col-start-2 line-clamp-1 min-h-4 text-md font-semibold tracking-tight', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
154
154
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAlertTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
155
155
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAlertTitle, isStandalone: true, selector: "[hlmAlertTitle]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
156
156
  }
@@ -14,7 +14,7 @@ import { BrnDialog } from '@spartan-ng/brain/dialog';
14
14
 
15
15
  class HlmAutocompleteEmpty {
16
16
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
17
- _computedClass = computed(() => hlm('tw:py-6 tw:text-center tw:text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
17
+ _computedClass = computed(() => hlm('py-2 text-center text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
18
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
19
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteEmpty, isStandalone: true, selector: "[hlmAutocompleteEmpty]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
20
20
  }
@@ -32,7 +32,7 @@ class HlmAutocompleteGroup {
32
32
  /** The user defined class */
33
33
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
34
34
  /** The styles to apply */
35
- _computedClass = computed(() => hlm('tw:text-foreground tw:block tw:overflow-hidden tw:p-1', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
35
+ _computedClass = computed(() => hlm('text-foreground block overflow-hidden p-1', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
36
36
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
37
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteGroup, isStandalone: true, selector: "hlm-autocomplete-group", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAutocompleteGroup, inputs: ["id", "id"] }], ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
38
  }
@@ -58,7 +58,7 @@ class HlmAutocompleteItem {
58
58
  /** The user defined class */
59
59
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
60
60
  /** The styles to apply */
61
- _computedClass = computed(() => hlm('tw:data-[selected]:bg-accent tw:data-[selected=true]:text-accent-foreground tw:[&>ng-icon]:text-muted-foreground tw:outline-hidden tw:relative tw:flex tw:w-full tw:cursor-default tw:select-none tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:data-[disabled]:pointer-events-none tw:data-[hidden]:hidden tw:data-[disabled]:opacity-50 tw:[&>ng-icon]:pointer-events-none tw:[&>ng-icon]:shrink-0 tw:[&>ng-icon]:text-base', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
61
+ _computedClass = computed(() => hlm('data-[selected]:bg-accent data-[selected]:text-accent-foreground [&>ng-icon]:text-muted-foreground outline-hidden relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[hidden]:hidden data-[disabled]:opacity-50 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:text-base', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
62
62
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
63
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteItem, isStandalone: true, selector: "button[hlm-autocomplete-item]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAutocompleteItem, inputs: ["value", "value", "disabled", "disabled", "id", "id"], outputs: ["selected", "selected"] }], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
64
64
  }
@@ -85,7 +85,7 @@ class HlmAutocompleteList {
85
85
  /** The user defined class */
86
86
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
87
87
  /** The styles to apply */
88
- _computedClass = computed(() => hlm('tw:block tw:max-h-60 tw:overflow-y-auto tw:overflow-x-hidden', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
88
+ _computedClass = computed(() => hlm('block max-h-60 overflow-y-auto overflow-x-hidden', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
89
89
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteList, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
90
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteList, isStandalone: true, selector: "hlm-autocomplete-list", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAutocompleteList, inputs: ["id", "id"] }], ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
91
  }
@@ -111,7 +111,7 @@ class HlmAutocompleteSearch {
111
111
  /** The user defined class */
112
112
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
113
113
  /** The styles to apply */
114
- _computedClass = computed(() => hlm('tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/30 tw:flex tw:h-9 tw:min-w-0 tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-3 tw:focus-within:ring-[3px] tw:[&>_ng-icon]:flex-none tw:[&>_ng-icon]:opacity-50', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
114
+ _computedClass = computed(() => hlm('border-input focus-within:border-ring bg-background focus-within:ring-ring/50 shadow-xs dark:bg-input/10 flex h-9 min-w-0 items-center gap-2 rounded-md border px-3 focus-within:ring-[3px] [&>_ng-icon]:flex-none [&>_ng-icon]:opacity-50', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
115
115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteSearch, deps: [], target: i0.ɵɵFactoryTarget.Component });
116
116
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteSearch, isStandalone: true, selector: "hlm-autocomplete-search", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [provideHlmIconConfig({ size: 'sm' })], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
117
  }
@@ -132,7 +132,7 @@ class HlmAutocompleteSearchInput {
132
132
  /** The user defined class */
133
133
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
134
134
  /** The styles to apply */
135
- _computedClass = computed(() => hlm('tw:placeholder:text-muted-foreground tw:flex tw:h-9 tw:w-full tw:bg-transparent tw:py-1 tw:text-base tw:outline-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:md:text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
135
+ _computedClass = computed(() => hlm('placeholder:text-muted-foreground flex h-9 w-full bg-transparent py-1 text-base outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
136
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteSearchInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
137
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteSearchInput, isStandalone: true, selector: "input[hlm-autocomplete-search-input]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAutocompleteSearchInput, inputs: ["value", "value"] }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
138
138
  }
@@ -203,9 +203,10 @@ class HlmAutocomplete {
203
203
  _brnPopover = viewChild.required(BrnPopover);
204
204
  _inputRef = viewChild.required('input', { read: ElementRef });
205
205
  _elementRef = inject((ElementRef));
206
+ onSelect = input(...(ngDevMode ? [undefined, { debugName: "onSelect" }] : []));
206
207
  /** The user defined class */
207
208
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
208
- _computedClass = computed(() => hlm('tw:block tw:w-full', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
209
+ _computedClass = computed(() => hlm('block w-full', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
209
210
  /** Custom class for the autocomplete list. */
210
211
  autocompleteListClass = input('', ...(ngDevMode ? [{ debugName: "autocompleteListClass" }] : []));
211
212
  _computedAutocompleteListClass = computed(() => hlm('', this.autocompleteListClass()), ...(ngDevMode ? [{ debugName: "_computedAutocompleteListClass" }] : []));
@@ -253,6 +254,9 @@ class HlmAutocomplete {
253
254
  this._brnPopover().close();
254
255
  }
255
256
  }
257
+ _click() {
258
+ this._toggleOptions();
259
+ }
256
260
  _openPopover() {
257
261
  if (this._search() || this.filteredOptions().length > 0) {
258
262
  // only open if there's a search term or options to show
@@ -286,9 +290,22 @@ class HlmAutocomplete {
286
290
  this._onChange?.(option);
287
291
  this.valueChange.emit(option);
288
292
  const searchValue = this.transformValueToSearch()(option);
289
- this._search.set(searchValue);
290
- this.searchChange.emit(searchValue);
291
- this._setPopoverState('closed');
293
+ if (this.onSelect()) {
294
+ this.onSelect()?.(searchValue);
295
+ }
296
+ else {
297
+ this._search.set(searchValue);
298
+ this.searchChange.emit(searchValue);
299
+ this._setPopoverState('closed');
300
+ }
301
+ }
302
+ clearText() {
303
+ this._inputRef().nativeElement.value = '';
304
+ this._search.set('');
305
+ this.searchChange.emit('');
306
+ }
307
+ setPopoverState(state) {
308
+ this._setPopoverState(state);
292
309
  }
293
310
  /** CONTROL VALUE ACCESSOR */
294
311
  writeValue(value) {
@@ -304,7 +321,7 @@ class HlmAutocomplete {
304
321
  this._disabled.set(isDisabled);
305
322
  }
306
323
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component });
307
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmAutocomplete, isStandalone: true, selector: "hlm-autocomplete", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, autocompleteListClass: { classPropertyName: "autocompleteListClass", publicName: "autocompleteListClass", isSignal: true, isRequired: false, transformFunction: null }, autocompleteEmptyClass: { classPropertyName: "autocompleteEmptyClass", publicName: "autocompleteEmptyClass", isSignal: true, isRequired: false, transformFunction: null }, filteredOptions: { classPropertyName: "filteredOptions", publicName: "filteredOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, transformValueToSearch: { classPropertyName: "transformValueToSearch", publicName: "transformValueToSearch", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderText: { classPropertyName: "searchPlaceholderText", publicName: "searchPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelToggleButton: { classPropertyName: "ariaLabelToggleButton", publicName: "ariaLabelToggleButton", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", searchChange: "searchChange" }, host: { properties: { "class": "_computedClass()" } }, providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })], viewQueries: [{ propertyName: "_brnPopover", first: true, predicate: BrnPopover, descendants: true, isSignal: true }, { propertyName: "_inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
324
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmAutocomplete, isStandalone: true, selector: "hlm-autocomplete", inputs: { onSelect: { classPropertyName: "onSelect", publicName: "onSelect", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, autocompleteListClass: { classPropertyName: "autocompleteListClass", publicName: "autocompleteListClass", isSignal: true, isRequired: false, transformFunction: null }, autocompleteEmptyClass: { classPropertyName: "autocompleteEmptyClass", publicName: "autocompleteEmptyClass", isSignal: true, isRequired: false, transformFunction: null }, filteredOptions: { classPropertyName: "filteredOptions", publicName: "filteredOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, transformValueToSearch: { classPropertyName: "transformValueToSearch", publicName: "transformValueToSearch", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderText: { classPropertyName: "searchPlaceholderText", publicName: "searchPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelToggleButton: { classPropertyName: "ariaLabelToggleButton", publicName: "ariaLabelToggleButton", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", searchChange: "searchChange" }, host: { properties: { "class": "_computedClass()" } }, providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })], viewQueries: [{ propertyName: "_brnPopover", first: true, predicate: BrnPopover, descendants: true, isSignal: true }, { propertyName: "_inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
308
325
  <brn-popover
309
326
  #popover
310
327
  align="start"
@@ -327,10 +344,11 @@ class HlmAutocomplete {
327
344
  [value]="_search()"
328
345
  (input)="_onSearchChanged($event)"
329
346
  (keydown.arrowDown)="_openPopover()"
347
+ (click)="_click()"
330
348
  />
331
349
 
332
350
  <button
333
- class="tw:flex tw:items-center tw:justify-center tw:outline-none tw:disabled:cursor-not-allowed tw:[&>_ng-icon]:opacity-50"
351
+ class="flex items-center justify-center outline-none disabled:cursor-not-allowed [&>_ng-icon]:opacity-50"
334
352
  tabindex="-1"
335
353
  type="button"
336
354
  [attr.aria-label]="ariaLabelToggleButton()"
@@ -344,7 +362,7 @@ class HlmAutocomplete {
344
362
  <div
345
363
  *brnPopoverContent="let ctx"
346
364
  hlmPopoverContent
347
- class="tw:p-0"
365
+ class="p-0"
348
366
  [style.width.px]="_elementRef.nativeElement.offsetWidth"
349
367
  >
350
368
  <hlm-autocomplete-list
@@ -421,10 +439,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
421
439
  [value]="_search()"
422
440
  (input)="_onSearchChanged($event)"
423
441
  (keydown.arrowDown)="_openPopover()"
442
+ (click)="_click()"
424
443
  />
425
444
 
426
445
  <button
427
- class="tw:flex tw:items-center tw:justify-center tw:outline-none tw:disabled:cursor-not-allowed tw:[&>_ng-icon]:opacity-50"
446
+ class="flex items-center justify-center outline-none disabled:cursor-not-allowed [&>_ng-icon]:opacity-50"
428
447
  tabindex="-1"
429
448
  type="button"
430
449
  [attr.aria-label]="ariaLabelToggleButton()"
@@ -438,7 +457,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
438
457
  <div
439
458
  *brnPopoverContent="let ctx"
440
459
  hlmPopoverContent
441
- class="tw:p-0"
460
+ class="p-0"
442
461
  [style.width.px]="_elementRef.nativeElement.offsetWidth"
443
462
  >
444
463
  <hlm-autocomplete-list
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.mjs","sources":["../../../projects/autocomplete/src/lib/autocomplete-empty.ts","../../../projects/autocomplete/src/lib/autocomplete-group.ts","../../../projects/autocomplete/src/lib/autocomplete-item.ts","../../../projects/autocomplete/src/lib/autocomplete-list.ts","../../../projects/autocomplete/src/lib/autocomplete-search.ts","../../../projects/autocomplete/src/lib/autocomplete-search-input.ts","../../../projects/autocomplete/src/lib/autocomplete-trigger.ts","../../../projects/autocomplete/src/lib/autocomplete.token.ts","../../../projects/autocomplete/src/lib/autocomplete.ts","../../../projects/autocomplete/src/public-api.ts","../../../projects/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAutocompleteEmpty]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocompleteEmpty {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:py-6 tw:text-center tw:text-sm', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteGroup } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-group',\n template: '<ng-content />',\n hostDirectives: [\n {\n directive: BrnAutocompleteGroup,\n inputs: ['id'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteGroup {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:text-foreground tw:block tw:overflow-hidden tw:p-1', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteItem } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'button[hlm-autocomplete-item]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: BrnAutocompleteItem,\n inputs: ['value', 'disabled', 'id'],\n outputs: ['selected'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteItem {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:data-[selected]:bg-accent tw:data-[selected=true]:text-accent-foreground tw:[&>ng-icon]:text-muted-foreground tw:outline-hidden tw:relative tw:flex tw:w-full tw:cursor-default tw:select-none tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:data-[disabled]:pointer-events-none tw:data-[hidden]:hidden tw:data-[disabled]:opacity-50 tw:[&>ng-icon]:pointer-events-none tw:[&>ng-icon]:shrink-0 tw:[&>ng-icon]:text-base',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteList } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-list',\n template: '<ng-content />',\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [\n {\n directive: BrnAutocompleteList,\n inputs: ['id'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteList {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:block tw:max-h-60 tw:overflow-y-auto tw:overflow-x-hidden', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-autocomplete-search',\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n providers: [provideHlmIconConfig({ size: 'sm' })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearch {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/30 tw:flex tw:h-9 tw:min-w-0 tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-3 tw:focus-within:ring-[3px] tw:[&>_ng-icon]:flex-none tw:[&>_ng-icon]:opacity-50',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteSearchInput } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'input[hlm-autocomplete-search-input]',\n template: '',\n hostDirectives: [{ directive: BrnAutocompleteSearchInput, inputs: ['value'] }],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearchInput {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:placeholder:text-muted-foreground tw:flex tw:h-9 tw:w-full tw:bg-transparent tw:py-1 tw:text-base tw:outline-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:md:text-sm',\n this.userClass(),\n ),\n );\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n selector: '[hlmAutocompleteTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class HlmAutocompleteTrigger {\n private readonly _host = inject(ElementRef, { host: true });\n\n private readonly _brnDialog = inject(BrnDialog, { optional: true });\n\n /** Whether the trigger is disabled. */\n public readonly disabledTrigger = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n if (!this._brnDialog) return;\n\n this._brnDialog.mutableAttachTo.set(this._host.nativeElement);\n }\n\n open() {\n if (this.disabledTrigger()) return;\n\n this._brnDialog?.open();\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport type TransformValueToString<T> = (value: T) => string;\n\nexport interface HlmAutocompleteConfig<T> {\n transformValueToSearch: TransformValueToString<T>;\n}\n\nfunction getDefaultConfig<T>(): HlmAutocompleteConfig<T> {\n return {\n transformValueToSearch: (value: T) => (typeof value === 'string' ? value : String(value)),\n };\n}\n\nconst HlmAutocompleteConfigToken = new InjectionToken<HlmAutocompleteConfig<unknown>>('HlmAutocompleteConfig');\n\nexport function provideHlmAutocompleteConfig<T>(config: Partial<HlmAutocompleteConfig<T>>): ValueProvider {\n return { provide: HlmAutocompleteConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmAutocompleteConfig<T>(): HlmAutocompleteConfig<T> {\n return inject(HlmAutocompleteConfigToken, { optional: true }) ?? getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideSearch } from '@ng-icons/lucide';\nimport { BrnAutocomplete, BrnAutocompleteEmpty } from '@spartan-ng/brain/autocomplete';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent } from '@spartan-ng/brain/popover';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmAutocompleteEmpty } from './autocomplete-empty';\nimport { HlmAutocompleteGroup } from './autocomplete-group';\nimport { HlmAutocompleteItem } from './autocomplete-item';\nimport { HlmAutocompleteList } from './autocomplete-list';\nimport { HlmAutocompleteSearch } from './autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './autocomplete-trigger';\nimport { injectHlmAutocompleteConfig } from './autocomplete.token';\n\nexport const HLM_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmAutocomplete),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-autocomplete',\n imports: [\n NgTemplateOutlet,\n\n BrnPopover,\n BrnPopoverContent,\n HlmPopoverContent,\n\n BrnAutocomplete,\n BrnAutocompleteEmpty,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n\n NgIcon,\n HlmIcon,\n ],\n providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })],\n template: `\n <brn-popover\n #popover\n align=\"start\"\n autoFocus=\"first-heading\"\n sideOffset=\"5\"\n closeDelay=\"100\"\n [closeOnOutsidePointerEvents]=\"true\"\n >\n <div brnAutocomplete>\n <hlm-autocomplete-search hlmAutocompleteTrigger [disabledTrigger]=\"!_search()\">\n <ng-icon name=\"lucideSearch\" hlm />\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n hlm-autocomplete-search-input\n [id]=\"inputId()\"\n [placeholder]=\"searchPlaceholderText()\"\n [disabled]=\"_disabled()\"\n [value]=\"_search()\"\n (input)=\"_onSearchChanged($event)\"\n (keydown.arrowDown)=\"_openPopover()\"\n />\n\n <button\n class=\"tw:flex tw:items-center tw:justify-center tw:outline-none tw:disabled:cursor-not-allowed tw:[&>_ng-icon]:opacity-50\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabelToggleButton()\"\n [disabled]=\"_disabled()\"\n (click)=\"_toggleOptions()\"\n >\n <ng-icon name=\"lucideChevronDown\" hlm />\n </button>\n </hlm-autocomplete-search>\n\n <div\n *brnPopoverContent=\"let ctx\"\n hlmPopoverContent\n class=\"tw:p-0\"\n [style.width.px]=\"_elementRef.nativeElement.offsetWidth\"\n >\n <hlm-autocomplete-list\n [class]=\"_computedAutocompleteListClass()\"\n [class.hidden]=\"filteredOptions().length === 0\"\n >\n <hlm-autocomplete-group>\n @for (option of filteredOptions(); track option) {\n <button hlm-autocomplete-item [value]=\"option\" (selected)=\"_optionSelected(option)\">\n @if (optionTemplate(); as optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\" />\n } @else {\n {{ option }}\n }\n </button>\n }\n </hlm-autocomplete-group>\n </hlm-autocomplete-list>\n\n <div *brnAutocompleteEmpty hlmAutocompleteEmpty [class]=\"_computedAutocompleteEmptyClass()\">\n @if (loading()) {\n <ng-content select=\"[loading]\">{{ loadingText() }}</ng-content>\n } @else {\n <ng-content select=\"[empty]\">{{ emptyText() }}</ng-content>\n }\n </div>\n </div>\n </div>\n </brn-popover>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocomplete<T> implements ControlValueAccessor {\n private static _id = 0;\n private readonly _config = injectHlmAutocompleteConfig<T>();\n\n private readonly _brnPopover = viewChild.required(BrnPopover);\n private readonly _inputRef = viewChild.required('input', { read: ElementRef });\n\n protected readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:block tw:w-full', this.userClass()));\n\n /** Custom class for the autocomplete list. */\n public readonly autocompleteListClass = input<ClassValue>('');\n protected readonly _computedAutocompleteListClass = computed(() => hlm('', this.autocompleteListClass()));\n\n /** Custom class for the empty and loading state container. */\n public readonly autocompleteEmptyClass = input<ClassValue>('');\n protected readonly _computedAutocompleteEmptyClass = computed(() => hlm('', this.autocompleteEmptyClass()));\n\n /** The list of filtered options to display in the autocomplete. */\n public readonly filteredOptions = input<T[]>([]);\n\n /** The selected value. */\n public readonly value = input<T>();\n protected readonly _value = linkedSignal(() => this.value());\n\n /** The search query. */\n public readonly search = input<string>();\n protected readonly _search = linkedSignal(() => this.search() || '');\n\n /** Function to transform an option value to a search string. Defaults to identity function for strings. */\n public readonly transformValueToSearch = input<(value: T) => string>(this._config.transformValueToSearch);\n\n /** Optional template for rendering each option. */\n public readonly optionTemplate = input<TemplateRef<HlmAutocompleteOption<T>>>();\n\n /** Whether the autocomplete is in a loading state. */\n public readonly loading = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Placeholder text for the input field. */\n public readonly searchPlaceholderText = input('Select an option');\n\n /** Text to display when loading options. */\n public readonly loadingText = input('Loading options...');\n\n /** Text to display when no options are found. */\n public readonly emptyText = input('No options found');\n\n /** Aria label for the toggle button. */\n public readonly ariaLabelToggleButton = input<string>('Toggle options');\n\n /** The id of the input field. */\n public readonly inputId = input<string>(`hlm-autocomplete-input-${++HlmAutocomplete._id}`);\n\n /** Whether the autocomplete is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n protected readonly _disabled = linkedSignal(() => this.disabled());\n\n /** Emitted when the selected value changes. */\n public readonly valueChange = output<T | null>();\n\n /** Emitted when the search query changes. */\n public readonly searchChange = output<string>();\n\n protected _onChange?: ChangeFn<T | null>;\n protected _onTouched?: TouchFn;\n\n protected _setPopoverState(state: 'open' | 'closed') {\n if (state === 'open') {\n this._brnPopover().open();\n } else {\n this._brnPopover().close();\n }\n }\n\n protected _openPopover() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only open if there's a search term or options to show\n this._brnPopover().open();\n }\n }\n\n protected _toggleOptions() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only toggle if there's a search term or options to show\n const state = this._brnPopover().stateComputed();\n this._setPopoverState(state === 'open' ? 'closed' : 'open');\n }\n\n this._inputRef().nativeElement.focus();\n }\n\n protected _onSearchChanged(event: Event) {\n const input = event.target as HTMLInputElement;\n this._search.set(input.value);\n this.searchChange.emit(input.value);\n\n this._clearOption();\n\n if (this._brnPopover().stateComputed() !== 'open' && input.value.length > 0) {\n this._setPopoverState('open');\n }\n }\n\n protected _clearOption() {\n this._value.set(undefined);\n this._onChange?.(null);\n this.valueChange.emit(null);\n }\n\n protected _optionSelected(option: T) {\n this._value.set(option);\n this._onChange?.(option);\n this.valueChange.emit(option);\n\n const searchValue = this.transformValueToSearch()(option);\n\n this._search.set(searchValue);\n this.searchChange.emit(searchValue);\n\n this._setPopoverState('closed');\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: T | null): void {\n this._value.set(value ? value : undefined);\n }\n\n public registerOnChange(fn: ChangeFn<T | null>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n}\n\ninterface HlmAutocompleteOption<T> {\n $implicit: T;\n}\n","/*\n * Public API Surface of autocomplete\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmAutocomplete } from './lib/autocomplete';\nimport { HlmAutocompleteEmpty } from './lib/autocomplete-empty';\nimport { HlmAutocompleteGroup } from './lib/autocomplete-group';\nimport { HlmAutocompleteItem } from './lib/autocomplete-item';\nimport { HlmAutocompleteList } from './lib/autocomplete-list';\nimport { HlmAutocompleteSearch } from './lib/autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './lib/autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './lib/autocomplete-trigger';\n\nexport * from './lib/autocomplete';\nexport * from './lib/autocomplete-empty';\nexport * from './lib/autocomplete-group';\nexport * from './lib/autocomplete-item';\nexport * from './lib/autocomplete-list';\nexport * from './lib/autocomplete-search';\nexport * from './lib/autocomplete-search-input';\nexport * from './lib/autocomplete-trigger';\nexport * from './lib/autocomplete.token';\n\nexport const HlmAutocompleteImports = [\n HlmAutocomplete,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n] as const;\n\n@NgModule({\n imports: [...HlmAutocompleteImports],\n exports: [...HlmAutocompleteImports],\n})\nexport class HlmAutocompleteModule {}\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":"autocomplete.mjs","sources":["../../../projects/autocomplete/src/lib/autocomplete-empty.ts","../../../projects/autocomplete/src/lib/autocomplete-group.ts","../../../projects/autocomplete/src/lib/autocomplete-item.ts","../../../projects/autocomplete/src/lib/autocomplete-list.ts","../../../projects/autocomplete/src/lib/autocomplete-search.ts","../../../projects/autocomplete/src/lib/autocomplete-search-input.ts","../../../projects/autocomplete/src/lib/autocomplete-trigger.ts","../../../projects/autocomplete/src/lib/autocomplete.token.ts","../../../projects/autocomplete/src/lib/autocomplete.ts","../../../projects/autocomplete/src/public-api.ts","../../../projects/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAutocompleteEmpty]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocompleteEmpty {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:py-2 tw:text-center tw:text-sm', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteGroup } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-group',\n template: '<ng-content />',\n hostDirectives: [\n {\n directive: BrnAutocompleteGroup,\n inputs: ['id'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteGroup {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:text-foreground tw:block tw:overflow-hidden tw:p-1', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteItem } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'button[hlm-autocomplete-item]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: BrnAutocompleteItem,\n inputs: ['value', 'disabled', 'id'],\n outputs: ['selected'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteItem {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:data-[selected]:bg-accent tw:data-[selected]:text-accent-foreground tw:[&>ng-icon]:text-muted-foreground tw:outline-hidden tw:relative tw:flex tw:w-full tw:cursor-default tw:select-none tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:data-[disabled]:pointer-events-none tw:data-[hidden]:hidden tw:data-[disabled]:opacity-50 tw:[&>ng-icon]:pointer-events-none tw:[&>ng-icon]:shrink-0 tw:[&>ng-icon]:text-base',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteList } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-list',\n template: '<ng-content />',\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [\n {\n directive: BrnAutocompleteList,\n inputs: ['id'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteList {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:block tw:max-h-60 tw:overflow-y-auto tw:overflow-x-hidden', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-autocomplete-search',\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n providers: [provideHlmIconConfig({ size: 'sm' })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearch {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/10 tw:flex tw:h-9 tw:min-w-0 tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-3 tw:focus-within:ring-[3px] tw:[&>_ng-icon]:flex-none tw:[&>_ng-icon]:opacity-50',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteSearchInput } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'input[hlm-autocomplete-search-input]',\n template: '',\n hostDirectives: [{ directive: BrnAutocompleteSearchInput, inputs: ['value'] }],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearchInput {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:placeholder:text-muted-foreground tw:flex tw:h-9 tw:w-full tw:bg-transparent tw:py-1 tw:text-base tw:outline-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:md:text-sm',\n this.userClass(),\n ),\n );\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n selector: '[hlmAutocompleteTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class HlmAutocompleteTrigger {\n private readonly _host = inject(ElementRef, { host: true });\n\n private readonly _brnDialog = inject(BrnDialog, { optional: true });\n\n /** Whether the trigger is disabled. */\n public readonly disabledTrigger = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n if (!this._brnDialog) return;\n\n this._brnDialog.mutableAttachTo.set(this._host.nativeElement);\n }\n\n open() {\n if (this.disabledTrigger()) return;\n\n this._brnDialog?.open();\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport type TransformValueToString<T> = (value: T) => string;\n\nexport interface HlmAutocompleteConfig<T> {\n transformValueToSearch: TransformValueToString<T>;\n}\n\nfunction getDefaultConfig<T>(): HlmAutocompleteConfig<T> {\n return {\n transformValueToSearch: (value: T) => (typeof value === 'string' ? value : String(value)),\n };\n}\n\nconst HlmAutocompleteConfigToken = new InjectionToken<HlmAutocompleteConfig<unknown>>('HlmAutocompleteConfig');\n\nexport function provideHlmAutocompleteConfig<T>(config: Partial<HlmAutocompleteConfig<T>>): ValueProvider {\n return { provide: HlmAutocompleteConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmAutocompleteConfig<T>(): HlmAutocompleteConfig<T> {\n return inject(HlmAutocompleteConfigToken, { optional: true }) ?? getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideSearch } from '@ng-icons/lucide';\nimport { BrnAutocomplete, BrnAutocompleteEmpty } from '@spartan-ng/brain/autocomplete';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent } from '@spartan-ng/brain/popover';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmAutocompleteEmpty } from './autocomplete-empty';\nimport { HlmAutocompleteGroup } from './autocomplete-group';\nimport { HlmAutocompleteItem } from './autocomplete-item';\nimport { HlmAutocompleteList } from './autocomplete-list';\nimport { HlmAutocompleteSearch } from './autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './autocomplete-trigger';\nimport { injectHlmAutocompleteConfig } from './autocomplete.token';\n\nexport const HLM_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmAutocomplete),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-autocomplete',\n imports: [\n NgTemplateOutlet,\n\n BrnPopover,\n BrnPopoverContent,\n HlmPopoverContent,\n\n BrnAutocomplete,\n BrnAutocompleteEmpty,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n\n NgIcon,\n HlmIcon,\n ],\n providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })],\n template: `\n <brn-popover\n #popover\n align=\"start\"\n autoFocus=\"first-heading\"\n sideOffset=\"5\"\n closeDelay=\"100\"\n [closeOnOutsidePointerEvents]=\"true\"\n >\n <div brnAutocomplete>\n <hlm-autocomplete-search hlmAutocompleteTrigger [disabledTrigger]=\"!_search()\">\n <ng-icon name=\"lucideSearch\" hlm />\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n hlm-autocomplete-search-input\n [id]=\"inputId()\"\n [placeholder]=\"searchPlaceholderText()\"\n [disabled]=\"_disabled()\"\n [value]=\"_search()\"\n (input)=\"_onSearchChanged($event)\"\n (keydown.arrowDown)=\"_openPopover()\"\n (click)=\"_click()\"\n />\n\n <button\n class=\"tw:flex tw:items-center tw:justify-center tw:outline-none tw:disabled:cursor-not-allowed tw:[&>_ng-icon]:opacity-50\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabelToggleButton()\"\n [disabled]=\"_disabled()\"\n (click)=\"_toggleOptions()\"\n >\n <ng-icon name=\"lucideChevronDown\" hlm />\n </button>\n </hlm-autocomplete-search>\n\n <div\n *brnPopoverContent=\"let ctx\"\n hlmPopoverContent\n class=\"tw:p-0\"\n [style.width.px]=\"_elementRef.nativeElement.offsetWidth\"\n >\n <hlm-autocomplete-list\n [class]=\"_computedAutocompleteListClass()\"\n [class.hidden]=\"filteredOptions().length === 0\"\n >\n <hlm-autocomplete-group>\n @for (option of filteredOptions(); track option) {\n <button hlm-autocomplete-item [value]=\"option\" (selected)=\"_optionSelected(option)\">\n @if (optionTemplate(); as optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\" />\n } @else {\n {{ option }}\n }\n </button>\n }\n </hlm-autocomplete-group>\n </hlm-autocomplete-list>\n\n <div *brnAutocompleteEmpty hlmAutocompleteEmpty [class]=\"_computedAutocompleteEmptyClass()\">\n @if (loading()) {\n <ng-content select=\"[loading]\">{{ loadingText() }}</ng-content>\n } @else {\n <ng-content select=\"[empty]\">{{ emptyText() }}</ng-content>\n }\n </div>\n </div>\n </div>\n </brn-popover>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocomplete<T> implements ControlValueAccessor {\n private static _id = 0;\n private readonly _config = injectHlmAutocompleteConfig<T>();\n\n private readonly _brnPopover = viewChild.required(BrnPopover);\n private readonly _inputRef = viewChild.required('input', { read: ElementRef });\n\n protected readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n public readonly onSelect = input<(option: string) => void>();\n\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:block tw:w-full', this.userClass()));\n\n /** Custom class for the autocomplete list. */\n public readonly autocompleteListClass = input<ClassValue>('');\n protected readonly _computedAutocompleteListClass = computed(() => hlm('', this.autocompleteListClass()));\n\n /** Custom class for the empty and loading state container. */\n public readonly autocompleteEmptyClass = input<ClassValue>('');\n protected readonly _computedAutocompleteEmptyClass = computed(() => hlm('', this.autocompleteEmptyClass()));\n\n /** The list of filtered options to display in the autocomplete. */\n public readonly filteredOptions = input<T[]>([]);\n\n /** The selected value. */\n public readonly value = input<T>();\n protected readonly _value = linkedSignal(() => this.value());\n\n /** The search query. */\n public readonly search = input<string>();\n protected readonly _search = linkedSignal(() => this.search() || '');\n\n /** Function to transform an option value to a search string. Defaults to identity function for strings. */\n public readonly transformValueToSearch = input<(value: T) => string>(this._config.transformValueToSearch);\n\n /** Optional template for rendering each option. */\n public readonly optionTemplate = input<TemplateRef<HlmAutocompleteOption<T>>>();\n\n /** Whether the autocomplete is in a loading state. */\n public readonly loading = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Placeholder text for the input field. */\n public readonly searchPlaceholderText = input('Select an option');\n\n /** Text to display when loading options. */\n public readonly loadingText = input('Loading options...');\n\n /** Text to display when no options are found. */\n public readonly emptyText = input('No options found');\n\n /** Aria label for the toggle button. */\n public readonly ariaLabelToggleButton = input<string>('Toggle options');\n\n /** The id of the input field. */\n public readonly inputId = input<string>(`hlm-autocomplete-input-${++HlmAutocomplete._id}`);\n\n /** Whether the autocomplete is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n protected readonly _disabled = linkedSignal(() => this.disabled());\n\n /** Emitted when the selected value changes. */\n public readonly valueChange = output<T | null>();\n\n /** Emitted when the search query changes. */\n public readonly searchChange = output<string>();\n\n protected _onChange?: ChangeFn<T | null>;\n protected _onTouched?: TouchFn;\n\n protected _setPopoverState(state: 'open' | 'closed') {\n if (state === 'open') {\n this._brnPopover().open();\n } else {\n this._brnPopover().close();\n }\n }\n\n protected _click() {\n this._toggleOptions();\n }\n\n protected _openPopover() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only open if there's a search term or options to show\n this._brnPopover().open();\n }\n }\n\n protected _toggleOptions() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only toggle if there's a search term or options to show\n const state = this._brnPopover().stateComputed();\n this._setPopoverState(state === 'open' ? 'closed' : 'open');\n }\n\n this._inputRef().nativeElement.focus();\n }\n\n protected _onSearchChanged(event: Event) {\n const input = event.target as HTMLInputElement;\n this._search.set(input.value);\n this.searchChange.emit(input.value);\n\n this._clearOption();\n\n if (this._brnPopover().stateComputed() !== 'open' && input.value.length > 0) {\n this._setPopoverState('open');\n }\n }\n\n protected _clearOption() {\n this._value.set(undefined);\n this._onChange?.(null);\n this.valueChange.emit(null);\n }\n\n protected _optionSelected(option: T) {\n this._value.set(option);\n this._onChange?.(option);\n this.valueChange.emit(option);\n\n const searchValue = this.transformValueToSearch()(option);\n\n if (this.onSelect()) {\n this.onSelect()?.(searchValue);\n } else {\n this._search.set(searchValue);\n this.searchChange.emit(searchValue);\n\n this._setPopoverState('closed');\n }\n }\n\n public clearText(): void {\n this._inputRef().nativeElement.value = '';\n this._search.set('');\n this.searchChange.emit('');\n }\n\n public setPopoverState(state: 'open' | 'closed') {\n this._setPopoverState(state);\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: T | null): void {\n this._value.set(value ? value : undefined);\n }\n\n public registerOnChange(fn: ChangeFn<T | null>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n}\n\ninterface HlmAutocompleteOption<T> {\n $implicit: T;\n}\n","/*\n * Public API Surface of autocomplete\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmAutocomplete } from './lib/autocomplete';\nimport { HlmAutocompleteEmpty } from './lib/autocomplete-empty';\nimport { HlmAutocompleteGroup } from './lib/autocomplete-group';\nimport { HlmAutocompleteItem } from './lib/autocomplete-item';\nimport { HlmAutocompleteList } from './lib/autocomplete-list';\nimport { HlmAutocompleteSearch } from './lib/autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './lib/autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './lib/autocomplete-trigger';\n\nexport * from './lib/autocomplete';\nexport * from './lib/autocomplete-empty';\nexport * from './lib/autocomplete-group';\nexport * from './lib/autocomplete-item';\nexport * from './lib/autocomplete-list';\nexport * from './lib/autocomplete-search';\nexport * from './lib/autocomplete-search-input';\nexport * from './lib/autocomplete-trigger';\nexport * from './lib/autocomplete.token';\n\nexport const HlmAutocompleteImports = [\n HlmAutocomplete,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n] as const;\n\n@NgModule({\n imports: [...HlmAutocompleteImports],\n exports: [...HlmAutocompleteImports],\n})\nexport class HlmAutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}