@egose/shadcn-theme-ng 0.0.10 → 0.0.12

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 (83) hide show
  1. package/accordion/fesm2022/accordion.mjs +25 -25
  2. package/accordion/fesm2022/accordion.mjs.map +1 -1
  3. package/alert/fesm2022/alert.mjs +109 -33
  4. package/alert/fesm2022/alert.mjs.map +1 -1
  5. package/alert/index.d.ts +6 -3
  6. package/autocomplete/README.md +64 -0
  7. package/autocomplete/fesm2022/autocomplete.mjs +524 -0
  8. package/autocomplete/fesm2022/autocomplete.mjs.map +1 -0
  9. package/autocomplete/index.d.ts +158 -0
  10. package/badge/fesm2022/badge.mjs +5 -5
  11. package/badge/fesm2022/badge.mjs.map +1 -1
  12. package/basic-alert/README.md +64 -0
  13. package/basic-alert/fesm2022/basic-alert.mjs +111 -0
  14. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -0
  15. package/basic-alert/index.d.ts +14 -0
  16. package/button/fesm2022/button.mjs +16 -14
  17. package/button/fesm2022/button.mjs.map +1 -1
  18. package/button/index.d.ts +1 -1
  19. package/calendar/README.md +64 -0
  20. package/calendar/fesm2022/calendar.mjs +637 -0
  21. package/calendar/fesm2022/calendar.mjs.map +1 -0
  22. package/calendar/index.d.ts +111 -0
  23. package/confirmation-dialog/README.md +64 -0
  24. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +93 -0
  25. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +1 -0
  26. package/confirmation-dialog/index.d.ts +24 -0
  27. package/date-picker/README.md +64 -0
  28. package/date-picker/fesm2022/date-picker.mjs +599 -0
  29. package/date-picker/fesm2022/date-picker.mjs.map +1 -0
  30. package/date-picker/index.d.ts +227 -0
  31. package/dialog/README.md +64 -0
  32. package/dialog/fesm2022/dialog.mjs +278 -0
  33. package/dialog/fesm2022/dialog.mjs.map +1 -0
  34. package/dialog/index.d.ts +89 -0
  35. package/exports.json +1 -1
  36. package/form-date-picker/README.md +64 -0
  37. package/form-date-picker/fesm2022/form-date-picker.mjs +146 -0
  38. package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -0
  39. package/form-date-picker/index.d.ts +32 -0
  40. package/form-field/fesm2022/form-field.mjs +19 -17
  41. package/form-field/fesm2022/form-field.mjs.map +1 -1
  42. package/form-select/README.md +64 -0
  43. package/form-select/fesm2022/form-select.mjs +165 -0
  44. package/form-select/fesm2022/form-select.mjs.map +1 -0
  45. package/form-select/index.d.ts +33 -0
  46. package/form-text-input/README.md +64 -0
  47. package/form-text-input/fesm2022/form-text-input.mjs +197 -0
  48. package/form-text-input/fesm2022/form-text-input.mjs.map +1 -0
  49. package/form-text-input/index.d.ts +47 -0
  50. package/form-textarea/README.md +64 -0
  51. package/form-textarea/fesm2022/form-textarea.mjs +156 -0
  52. package/form-textarea/fesm2022/form-textarea.mjs.map +1 -0
  53. package/form-textarea/index.d.ts +33 -0
  54. package/icon/fesm2022/icon.mjs +7 -7
  55. package/input/fesm2022/input.mjs +11 -11
  56. package/input/fesm2022/input.mjs.map +1 -1
  57. package/label/fesm2022/label.mjs +9 -9
  58. package/label/fesm2022/label.mjs.map +1 -1
  59. package/package.json +56 -5
  60. package/popover/README.md +64 -0
  61. package/popover/fesm2022/popover.mjs +69 -0
  62. package/popover/fesm2022/popover.mjs.map +1 -0
  63. package/popover/index.d.ts +30 -0
  64. package/radio-group/fesm2022/radio-group.mjs +17 -17
  65. package/radio-group/fesm2022/radio-group.mjs.map +1 -1
  66. package/select/fesm2022/select.mjs +42 -42
  67. package/select/fesm2022/select.mjs.map +1 -1
  68. package/separator/README.md +64 -0
  69. package/separator/fesm2022/separator.mjs +46 -0
  70. package/separator/fesm2022/separator.mjs.map +1 -0
  71. package/separator/index.d.ts +19 -0
  72. package/sonner/fesm2022/sonner.mjs +9 -9
  73. package/sonner/fesm2022/sonner.mjs.map +1 -1
  74. package/spinner/fesm2022/spinner.mjs +10 -10
  75. package/spinner/fesm2022/spinner.mjs.map +1 -1
  76. package/switch/fesm2022/switch.mjs +13 -13
  77. package/switch/fesm2022/switch.mjs.map +1 -1
  78. package/tabs/fesm2022/tabs.mjs +27 -27
  79. package/tabs/fesm2022/tabs.mjs.map +1 -1
  80. package/tooltip/fesm2022/tooltip.mjs +10 -10
  81. package/utils/fesm2022/utils.mjs +2 -2
  82. package/utils/fesm2022/utils.mjs.map +1 -1
  83. package/utils/index.d.ts +2 -2
@@ -0,0 +1,146 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { ReactiveFormsModule, FormGroupDirective, ControlContainer } from '@angular/forms';
5
+ import { HlmFormField, HlmError, HlmHint } from '@egose/shadcn-theme-ng/form-field';
6
+ import { HlmLabel } from '@egose/shadcn-theme-ng/label';
7
+ import { HlmDatePicker } from '@egose/shadcn-theme-ng/date-picker';
8
+ import { hlm } from '@egose/shadcn-theme-ng/utils';
9
+
10
+ let nextId = 0;
11
+ class EgFormDatePicker {
12
+ // Inputs
13
+ label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : []));
14
+ controlName = input('', ...(ngDevMode ? [{ debugName: "controlName" }] : []));
15
+ error = input(undefined, ...(ngDevMode ? [{ debugName: "error" }] : []));
16
+ hint = input(undefined, ...(ngDevMode ? [{ debugName: "hint" }] : []));
17
+ // HTML attributes
18
+ id = input(`eg-form-date-picker-${nextId++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
19
+ name = input(undefined, ...(ngDevMode ? [{ debugName: "name" }] : []));
20
+ placeholder = input('Pick a date', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
21
+ readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
22
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
23
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
24
+ min = input(null, ...(ngDevMode ? [{ debugName: "min" }] : []));
25
+ max = input(null, ...(ngDevMode ? [{ debugName: "max" }] : []));
26
+ autoCloseOnSelect = input(true, ...(ngDevMode ? [{ debugName: "autoCloseOnSelect" }] : []));
27
+ // Styling
28
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
29
+ labelClass = input('', ...(ngDevMode ? [{ debugName: "labelClass" }] : []));
30
+ pickerClass = input('', ...(ngDevMode ? [{ debugName: "pickerClass" }] : []));
31
+ errorClass = input('', ...(ngDevMode ? [{ debugName: "errorClass" }] : []));
32
+ hintClass = input('', ...(ngDevMode ? [{ debugName: "hintClass" }] : []));
33
+ // Computed classes
34
+ $userClass = computed(() => hlm('tw:flex tw:flex-col', this.userClass()), ...(ngDevMode ? [{ debugName: "$userClass" }] : []));
35
+ $labelClass = computed(() => hlm('tw:mb-1', this.labelClass()), ...(ngDevMode ? [{ debugName: "$labelClass" }] : []));
36
+ $pickerClass = computed(() => hlm('tw:mb-1', this.pickerClass()), ...(ngDevMode ? [{ debugName: "$pickerClass" }] : []));
37
+ $errorClass = computed(() => hlm('tw:mt-0', this.errorClass()), ...(ngDevMode ? [{ debugName: "$errorClass" }] : []));
38
+ $hintClass = computed(() => hlm('tw:mt-0', this.hintClass()), ...(ngDevMode ? [{ debugName: "$hintClass" }] : []));
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgFormDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: EgFormDatePicker, isStandalone: true, selector: "eg-form-date-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, controlName: { classPropertyName: "controlName", publicName: "controlName", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", 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 }, autoCloseOnSelect: { classPropertyName: "autoCloseOnSelect", publicName: "autoCloseOnSelect", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, pickerClass: { classPropertyName: "pickerClass", publicName: "pickerClass", isSignal: true, isRequired: false, transformFunction: null }, errorClass: { classPropertyName: "errorClass", publicName: "errorClass", isSignal: true, isRequired: false, transformFunction: null }, hintClass: { classPropertyName: "hintClass", publicName: "hintClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "tw:w-full" }, providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }], ngImport: i0, template: `
41
+ @let lbl = label();
42
+ @let nm = controlName();
43
+ @let err = error();
44
+ @let hnt = hint();
45
+ @let rqrd = required();
46
+
47
+ <hlm-form-field>
48
+ @if (lbl) {
49
+ <span hlmLabel [class]="$labelClass()">{{ lbl }}
50
+ @if (rqrd) {
51
+ <span class="tw:text-red-500">*</span>
52
+ }
53
+ </span>
54
+ }
55
+
56
+ <hlm-date-picker
57
+ [buttonId]="id()"
58
+ [min]="min()"
59
+ [max]="max()"
60
+ [formControlName]="nm"
61
+ [autoCloseOnSelect]="autoCloseOnSelect()"
62
+ [required]="rqrd"
63
+ [class]="$pickerClass()"
64
+ >
65
+ <span>{{ placeholder() }}</span>
66
+ </hlm-date-picker>
67
+
68
+ @if (err) {
69
+ <hlm-error [class]="$errorClass()">
70
+ {{ err }}
71
+ </hlm-error>
72
+ }
73
+
74
+ @if (hnt) {
75
+ <hlm-hint [class]="$hintClass()">
76
+ {{ hnt }}
77
+ </hlm-hint>
78
+ }
79
+ </hlm-form-field>
80
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: HlmFormField, selector: "hlm-form-field", inputs: ["class"] }, { kind: "directive", type: HlmError, selector: "hlm-error", inputs: ["class"] }, { kind: "directive", type: HlmHint, selector: "hlm-hint", inputs: ["class"] }, { kind: "directive", type: HlmLabel, selector: "[hlmLabel]", inputs: ["class"] }, { kind: "component", type: HlmDatePicker, selector: "hlm-date-picker", inputs: ["class", "buttonId", "min", "max", "disabled", "date", "autoCloseOnSelect", "formatDate", "transformDate"], outputs: ["dateChange"] }] });
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgFormDatePicker, decorators: [{
83
+ type: Component,
84
+ args: [{
85
+ selector: 'eg-form-date-picker',
86
+ standalone: true,
87
+ host: {
88
+ class: 'tw:w-full',
89
+ },
90
+ imports: [ReactiveFormsModule, HlmFormField, HlmError, HlmHint, HlmLabel, HlmDatePicker],
91
+ providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }],
92
+ // prettier-ignore
93
+ template: `
94
+ @let lbl = label();
95
+ @let nm = controlName();
96
+ @let err = error();
97
+ @let hnt = hint();
98
+ @let rqrd = required();
99
+
100
+ <hlm-form-field>
101
+ @if (lbl) {
102
+ <span hlmLabel [class]="$labelClass()">{{ lbl }}
103
+ @if (rqrd) {
104
+ <span class="tw:text-red-500">*</span>
105
+ }
106
+ </span>
107
+ }
108
+
109
+ <hlm-date-picker
110
+ [buttonId]="id()"
111
+ [min]="min()"
112
+ [max]="max()"
113
+ [formControlName]="nm"
114
+ [autoCloseOnSelect]="autoCloseOnSelect()"
115
+ [required]="rqrd"
116
+ [class]="$pickerClass()"
117
+ >
118
+ <span>{{ placeholder() }}</span>
119
+ </hlm-date-picker>
120
+
121
+ @if (err) {
122
+ <hlm-error [class]="$errorClass()">
123
+ {{ err }}
124
+ </hlm-error>
125
+ }
126
+
127
+ @if (hnt) {
128
+ <hlm-hint [class]="$hintClass()">
129
+ {{ hnt }}
130
+ </hlm-hint>
131
+ }
132
+ </hlm-form-field>
133
+ `,
134
+ }]
135
+ }] });
136
+
137
+ /*
138
+ * Public API Surface of form-date-picker
139
+ */
140
+
141
+ /**
142
+ * Generated bundle index. Do not edit.
143
+ */
144
+
145
+ export { EgFormDatePicker };
146
+ //# sourceMappingURL=form-date-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-date-picker.mjs","sources":["../../../projects/form-date-picker/src/lib/form-date-picker.ts","../../../projects/form-date-picker/src/public-api.ts","../../../projects/form-date-picker/src/form-date-picker.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { HlmFormField, HlmError, HlmHint } from '@egose/shadcn-theme-ng/form-field';\nimport { HlmLabel } from '@egose/shadcn-theme-ng/label';\nimport { HlmDatePicker } from '@egose/shadcn-theme-ng/date-picker';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\n\nlet nextId = 0;\n\n@Component({\n selector: 'eg-form-date-picker',\n standalone: true,\n host: {\n class: 'tw:w-full',\n },\n imports: [ReactiveFormsModule, HlmFormField, HlmError, HlmHint, HlmLabel, HlmDatePicker],\n providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\n // prettier-ignore\n template: `\n @let lbl = label();\n @let nm = controlName();\n @let err = error();\n @let hnt = hint();\n @let rqrd = required();\n\n <hlm-form-field>\n @if (lbl) {\n <span hlmLabel [class]=\"$labelClass()\">{{ lbl }}\n @if (rqrd) {\n <span class=\"tw:text-red-500\">*</span>\n }\n </span>\n }\n\n <hlm-date-picker\n [buttonId]=\"id()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [formControlName]=\"nm\"\n [autoCloseOnSelect]=\"autoCloseOnSelect()\"\n [required]=\"rqrd\"\n [class]=\"$pickerClass()\"\n >\n <span>{{ placeholder() }}</span>\n </hlm-date-picker>\n\n @if (err) {\n <hlm-error [class]=\"$errorClass()\">\n {{ err }}\n </hlm-error>\n }\n\n @if (hnt) {\n <hlm-hint [class]=\"$hintClass()\">\n {{ hnt }}\n </hlm-hint>\n }\n </hlm-form-field>\n `,\n})\nexport class EgFormDatePicker {\n // Inputs\n label = input<string | undefined>(undefined);\n controlName = input<string>('');\n error = input<string | undefined>(undefined);\n hint = input<string | undefined>(undefined);\n\n // HTML attributes\n id = input<string>(`eg-form-date-picker-${nextId++}`);\n name = input<string | undefined>(undefined);\n placeholder = input<string>('Pick a date');\n readonly = input<boolean>(false);\n disabled = input<boolean>(false);\n required = input<boolean>(false);\n min = input<Date | string | null>(null);\n max = input<Date | string | null>(null);\n autoCloseOnSelect = input<boolean>(true);\n\n // Styling\n userClass = input<ClassValue>('', { alias: 'class' });\n labelClass = input<string>('');\n pickerClass = input<string>('');\n errorClass = input<string>('');\n hintClass = input<string>('');\n\n // Computed classes\n $userClass = computed(() => hlm('tw:flex tw:flex-col', this.userClass()));\n $labelClass = computed(() => hlm('tw:mb-1', this.labelClass()));\n $pickerClass = computed(() => hlm('tw:mb-1', this.pickerClass()));\n $errorClass = computed(() => hlm('tw:mt-0', this.errorClass()));\n $hintClass = computed(() => hlm('tw:mt-0', this.hintClass()));\n}\n","/*\n * Public API Surface of form-date-picker\n */\n\nexport * from './lib/form-date-picker';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ClassValue } from 'clsx';
3
+
4
+ declare class EgFormDatePicker {
5
+ label: _angular_core.InputSignal<string | undefined>;
6
+ controlName: _angular_core.InputSignal<string>;
7
+ error: _angular_core.InputSignal<string | undefined>;
8
+ hint: _angular_core.InputSignal<string | undefined>;
9
+ id: _angular_core.InputSignal<string>;
10
+ name: _angular_core.InputSignal<string | undefined>;
11
+ placeholder: _angular_core.InputSignal<string>;
12
+ readonly: _angular_core.InputSignal<boolean>;
13
+ disabled: _angular_core.InputSignal<boolean>;
14
+ required: _angular_core.InputSignal<boolean>;
15
+ min: _angular_core.InputSignal<string | Date | null>;
16
+ max: _angular_core.InputSignal<string | Date | null>;
17
+ autoCloseOnSelect: _angular_core.InputSignal<boolean>;
18
+ userClass: _angular_core.InputSignal<ClassValue>;
19
+ labelClass: _angular_core.InputSignal<string>;
20
+ pickerClass: _angular_core.InputSignal<string>;
21
+ errorClass: _angular_core.InputSignal<string>;
22
+ hintClass: _angular_core.InputSignal<string>;
23
+ $userClass: _angular_core.Signal<string>;
24
+ $labelClass: _angular_core.Signal<string>;
25
+ $pickerClass: _angular_core.Signal<string>;
26
+ $errorClass: _angular_core.Signal<string>;
27
+ $hintClass: _angular_core.Signal<string>;
28
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EgFormDatePicker, never>;
29
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EgFormDatePicker, "eg-form-date-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "controlName": { "alias": "controlName"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "autoCloseOnSelect": { "alias": "autoCloseOnSelect"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "labelClass": { "alias": "labelClass"; "required": false; "isSignal": true; }; "pickerClass": { "alias": "pickerClass"; "required": false; "isSignal": true; }; "errorClass": { "alias": "errorClass"; "required": false; "isSignal": true; }; "hintClass": { "alias": "hintClass"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
30
+ }
31
+
32
+ export { EgFormDatePicker };
@@ -1,15 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, computed, Directive, contentChild, contentChildren, effect, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
- import { cn } from '@egose/shadcn-theme-ng/utils';
3
+ import { hlm } from '@egose/shadcn-theme-ng/utils';
4
+ import { FormGroupDirective, ControlContainer } from '@angular/forms';
4
5
  import { BrnFormFieldControl } from '@spartan-ng/brain/form-field';
5
6
 
6
7
  class HlmError {
7
8
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
8
- _computedClass = computed(() => cn('tw:text-destructive tw:block tw:text-sm tw:font-medium', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.0", type: HlmError, isStandalone: true, selector: "hlm-error", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
9
+ _computedClass = computed(() => hlm('tw:text-destructive tw:block tw:text-sm tw:font-medium', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmError, isStandalone: true, selector: "hlm-error", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
11
12
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmError, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmError, decorators: [{
13
14
  type: Directive,
14
15
  args: [{
15
16
  selector: 'hlm-error',
@@ -21,7 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
21
22
 
22
23
  class HlmFormField {
23
24
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
24
- _computedClass = computed(() => cn('tw:block tw:space-y-2', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
25
+ _computedClass = computed(() => hlm('tw:block tw:space-y-2', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
25
26
  control = contentChild(BrnFormFieldControl, ...(ngDevMode ? [{ debugName: "control" }] : []));
26
27
  errorChildren = contentChildren(HlmError, ...(ngDevMode ? [{ debugName: "errorChildren" }] : []));
27
28
  _hasDisplayedMessage = computed(() => this.errorChildren() && this.errorChildren().length > 0 && this.control()?.errorState() ? 'error' : 'hint', ...(ngDevMode ? [{ debugName: "_hasDisplayedMessage" }] : []));
@@ -32,8 +33,8 @@ class HlmFormField {
32
33
  }
33
34
  });
34
35
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmFormField, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: HlmFormField, isStandalone: true, selector: "hlm-form-field", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, queries: [{ propertyName: "control", first: true, predicate: BrnFormFieldControl, descendants: true, isSignal: true }, { propertyName: "errorChildren", predicate: HlmError, isSignal: true }], ngImport: i0, template: `
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmFormField, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmFormField, isStandalone: true, selector: "hlm-form-field", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }], queries: [{ propertyName: "control", first: true, predicate: BrnFormFieldControl, descendants: true, isSignal: true }, { propertyName: "errorChildren", predicate: HlmError, isSignal: true }], ngImport: i0, template: `
37
38
  <ng-content />
38
39
 
39
40
  @switch (_hasDisplayedMessage()) {
@@ -46,7 +47,7 @@ class HlmFormField {
46
47
  }
47
48
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
49
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmFormField, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmFormField, decorators: [{
50
51
  type: Component,
51
52
  args: [{
52
53
  selector: 'hlm-form-field',
@@ -62,6 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
62
63
  }
63
64
  }
64
65
  `,
66
+ providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }],
65
67
  host: {
66
68
  '[class]': '_computedClass()',
67
69
  },
@@ -71,11 +73,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
71
73
 
72
74
  class HlmHint {
73
75
  userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
74
- _computedClass = computed(() => cn('tw:text-muted-foreground tw:block tw:text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
76
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.0", type: HlmHint, isStandalone: true, selector: "hlm-hint", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
76
+ _computedClass = computed(() => hlm('tw:text-muted-foreground tw:block tw:text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
78
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmHint, isStandalone: true, selector: "hlm-hint", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
77
79
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmHint, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmHint, decorators: [{
79
81
  type: Directive,
80
82
  args: [{
81
83
  selector: 'hlm-hint',
@@ -90,11 +92,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
90
92
  */
91
93
  const HlmFormFieldImports = [HlmFormField, HlmError, HlmHint];
92
94
  class HlmFormFieldModule {
93
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
94
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: HlmFormFieldModule, imports: [HlmFormField, HlmError, HlmHint], exports: [HlmFormField, HlmError, HlmHint] });
95
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmFormFieldModule });
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
96
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmFormFieldModule, imports: [HlmFormField, HlmError, HlmHint], exports: [HlmFormField, HlmError, HlmHint] });
97
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmFormFieldModule });
96
98
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: HlmFormFieldModule, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmFormFieldModule, decorators: [{
98
100
  type: NgModule,
99
101
  args: [{
100
102
  imports: [...HlmFormFieldImports],
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.mjs","sources":["../../../projects/form-field/src/lib/error.ts","../../../projects/form-field/src/lib/form-field.ts","../../../projects/form-field/src/lib/hint.ts","../../../projects/form-field/src/public-api.ts","../../../projects/form-field/src/form-field.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { cn } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-error',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmError {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n cn('tw:text-destructive tw:block tw:text-sm tw:font-medium', this.userClass()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n input,\n} from '@angular/core';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { cn } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\nimport { HlmError } from './error';\n\n@Component({\n selector: 'hlm-form-field',\n template: `\n <ng-content />\n\n @switch (_hasDisplayedMessage()) {\n @case ('error') {\n <ng-content select=\"hlm-error\" />\n }\n @default {\n <ng-content select=\"hlm-hint\" />\n }\n }\n `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmFormField {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => cn('tw:block tw:space-y-2', this.userClass()));\n public readonly control = contentChild(BrnFormFieldControl);\n\n public readonly errorChildren = contentChildren(HlmError);\n\n protected readonly _hasDisplayedMessage = computed<'error' | 'hint'>(() =>\n this.errorChildren() && this.errorChildren().length > 0 && this.control()?.errorState() ? 'error' : 'hint',\n );\n\n constructor() {\n effect(() => {\n if (!this.control()) {\n throw new Error('hlm-form-field must contain a BrnFormFieldControl.');\n }\n });\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { cn } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-hint',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmHint {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n cn('tw:text-muted-foreground tw:block tw:text-sm', this.userClass()),\n );\n}\n","/*\n * Public API Surface of form-field\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmError } from './lib/error';\nimport { HlmFormField } from './lib/form-field';\nimport { HlmHint } from './lib/hint';\n\nexport * from './lib/error';\nexport * from './lib/form-field';\nexport * from './lib/hint';\n\nexport const HlmFormFieldImports = [HlmFormField, HlmError, HlmHint];\n\n@NgModule({\n imports: [...HlmFormFieldImports],\n exports: [...HlmFormFieldImports],\n})\nexport class HlmFormFieldModule {}\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":"form-field.mjs","sources":["../../../projects/form-field/src/lib/error.ts","../../../projects/form-field/src/lib/form-field.ts","../../../projects/form-field/src/lib/hint.ts","../../../projects/form-field/src/public-api.ts","../../../projects/form-field/src/form-field.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-error',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmError {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('tw:text-destructive tw:block tw:text-sm tw:font-medium', this.userClass()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n input,\n} from '@angular/core';\nimport { ControlContainer, FormGroupDirective } from '@angular/forms';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\nimport { HlmError } from './error';\n\n@Component({\n selector: 'hlm-form-field',\n template: `\n <ng-content />\n\n @switch (_hasDisplayedMessage()) {\n @case ('error') {\n <ng-content select=\"hlm-error\" />\n }\n @default {\n <ng-content select=\"hlm-hint\" />\n }\n }\n `,\n providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmFormField {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:block tw:space-y-2', this.userClass()));\n public readonly control = contentChild(BrnFormFieldControl);\n\n public readonly errorChildren = contentChildren(HlmError);\n\n protected readonly _hasDisplayedMessage = computed<'error' | 'hint'>(() =>\n this.errorChildren() && this.errorChildren().length > 0 && this.control()?.errorState() ? 'error' : 'hint',\n );\n\n constructor() {\n effect(() => {\n if (!this.control()) {\n throw new Error('hlm-form-field must contain a BrnFormFieldControl.');\n }\n });\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-hint',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmHint {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('tw:text-muted-foreground tw:block tw:text-sm', this.userClass()),\n );\n}\n","/*\n * Public API Surface of form-field\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmError } from './lib/error';\nimport { HlmFormField } from './lib/form-field';\nimport { HlmHint } from './lib/hint';\n\nexport * from './lib/error';\nexport * from './lib/form-field';\nexport * from './lib/hint';\n\nexport const HlmFormFieldImports = [HlmFormField, HlmError, HlmHint];\n\n@NgModule({\n imports: [...HlmFormFieldImports],\n exports: [...HlmFormFieldImports],\n})\nexport class HlmFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ # FormSelect
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
+
9
+ ```bash
10
+ ng generate component component-name
11
+ ```
12
+
13
+ For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
+
15
+ ```bash
16
+ ng generate --help
17
+ ```
18
+
19
+ ## Building
20
+
21
+ To build the library, run:
22
+
23
+ ```bash
24
+ ng build form-select
25
+ ```
26
+
27
+ This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
+
29
+ ### Publishing the Library
30
+
31
+ Once the project is built, you can publish your library by following these steps:
32
+
33
+ 1. Navigate to the `dist` directory:
34
+
35
+ ```bash
36
+ cd dist/form-select
37
+ ```
38
+
39
+ 2. Run the `npm publish` command to publish your library to the npm registry:
40
+ ```bash
41
+ npm publish
42
+ ```
43
+
44
+ ## Running unit tests
45
+
46
+ To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
47
+
48
+ ```bash
49
+ ng test
50
+ ```
51
+
52
+ ## Running end-to-end tests
53
+
54
+ For end-to-end (e2e) testing, run:
55
+
56
+ ```bash
57
+ ng e2e
58
+ ```
59
+
60
+ Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
61
+
62
+ ## Additional Resources
63
+
64
+ For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,165 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { ReactiveFormsModule, FormGroupDirective, ControlContainer } from '@angular/forms';
5
+ import { HlmFormField, HlmError, HlmHint } from '@egose/shadcn-theme-ng/form-field';
6
+ import { HlmLabel } from '@egose/shadcn-theme-ng/label';
7
+ import { hlm } from '@egose/shadcn-theme-ng/utils';
8
+ import * as i2 from '@spartan-ng/brain/select';
9
+ import { BrnSelectImports } from '@spartan-ng/brain/select';
10
+ import * as i3 from '@egose/shadcn-theme-ng/select';
11
+ import { HlmSelectImports } from '@egose/shadcn-theme-ng/select';
12
+
13
+ class EgFormSelect {
14
+ label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : []));
15
+ controlName = input('', ...(ngDevMode ? [{ debugName: "controlName" }] : []));
16
+ error = input(undefined, ...(ngDevMode ? [{ debugName: "error" }] : []));
17
+ hint = input(undefined, ...(ngDevMode ? [{ debugName: "hint" }] : []));
18
+ // HTML/select attributes
19
+ placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
20
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
21
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
22
+ // Select-specific
23
+ multiple = input(false, ...(ngDevMode ? [{ debugName: "multiple" }] : []));
24
+ options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
25
+ optionsLabel = input(undefined, ...(ngDevMode ? [{ debugName: "optionsLabel" }] : [])); // optional group label
26
+ // Styling classes
27
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
28
+ labelClass = input('', ...(ngDevMode ? [{ debugName: "labelClass" }] : []));
29
+ selectClass = input('', ...(ngDevMode ? [{ debugName: "selectClass" }] : []));
30
+ errorClass = input('', ...(ngDevMode ? [{ debugName: "errorClass" }] : []));
31
+ hintClass = input('', ...(ngDevMode ? [{ debugName: "hintClass" }] : []));
32
+ // Computed classes
33
+ $userClass = computed(() => hlm('tw:flex tw:flex-col', this.userClass()), ...(ngDevMode ? [{ debugName: "$userClass" }] : []));
34
+ $labelClass = computed(() => hlm('tw:mb-1 tw:gap-0', this.labelClass()), ...(ngDevMode ? [{ debugName: "$labelClass" }] : []));
35
+ $selectClass = computed(() => hlm('tw:w-full', this.selectClass()), ...(ngDevMode ? [{ debugName: "$selectClass" }] : []));
36
+ $errorClass = computed(() => hlm('tw:mt-0', this.errorClass()), ...(ngDevMode ? [{ debugName: "$errorClass" }] : []));
37
+ $hintClass = computed(() => hlm('tw:mt-0', this.hintClass()), ...(ngDevMode ? [{ debugName: "$hintClass" }] : []));
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgFormSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: EgFormSelect, isStandalone: true, selector: "eg-form-select", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, controlName: { classPropertyName: "controlName", publicName: "controlName", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionsLabel: { classPropertyName: "optionsLabel", publicName: "optionsLabel", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, selectClass: { classPropertyName: "selectClass", publicName: "selectClass", isSignal: true, isRequired: false, transformFunction: null }, errorClass: { classPropertyName: "errorClass", publicName: "errorClass", isSignal: true, isRequired: false, transformFunction: null }, hintClass: { classPropertyName: "hintClass", publicName: "hintClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "tw:w-full" }, providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }], ngImport: i0, template: `
40
+ @let lbl = label();
41
+ @let nm = controlName();
42
+ @let err = error();
43
+ @let hnt = hint();
44
+ @let rqrd = required();
45
+
46
+ <hlm-form-field>
47
+ @if (lbl) {
48
+ <span hlmLabel [class]="$labelClass()">{{ lbl }}
49
+ @if (rqrd) {
50
+ <span class="tw:text-red-500">*</span>
51
+ }
52
+ </span>
53
+ }
54
+
55
+ <brn-select
56
+ [multiple]="multiple()"
57
+ [placeholder]="placeholder()"
58
+ [formControlName]="nm"
59
+ [required]="rqrd"
60
+ >
61
+ <hlm-select-trigger [class]="$selectClass()">
62
+ <hlm-select-value />
63
+ </hlm-select-trigger>
64
+
65
+ <hlm-select-content>
66
+ @if (options().length) {
67
+ @if (optionsLabel()) {
68
+ <hlm-select-label>{{ optionsLabel() }}</hlm-select-label>
69
+ }
70
+ @for (option of options(); track option.value) {
71
+ <hlm-option [value]="option.value">{{ option.label }}</hlm-option>
72
+ }
73
+ }
74
+ </hlm-select-content>
75
+ </brn-select>
76
+
77
+ @if (err) {
78
+ <hlm-error [class]="$errorClass()">
79
+ {{ err }}
80
+ </hlm-error>
81
+ }
82
+
83
+ @if (hnt) {
84
+ <hlm-hint [class]="$hintClass()">
85
+ {{ hnt }}
86
+ </hlm-hint>
87
+ }
88
+ </hlm-form-field>
89
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: HlmFormField, selector: "hlm-form-field", inputs: ["class"] }, { kind: "directive", type: HlmError, selector: "hlm-error", inputs: ["class"] }, { kind: "directive", type: HlmHint, selector: "hlm-hint", inputs: ["class"] }, { kind: "directive", type: HlmLabel, selector: "[hlmLabel]", inputs: ["class"] }, { kind: "component", type: i2.BrnSelect, selector: "brn-select, hlm-select", inputs: ["id", "multiple", "placeholder", "disabled", "dir", "closeDelay", "open", "value", "compareWith"], outputs: ["openChange", "valueChange"] }, { kind: "component", type: i2.BrnSelectContent, selector: "brn-select-content, hlm-select-content:not(noHlm)" }, { kind: "component", type: i2.BrnSelectValue, selector: "brn-select-value, hlm-select-value", inputs: ["transformFn"] }, { kind: "directive", type: i3.HlmSelectContent, selector: "[hlmSelectContent], hlm-select-content", inputs: ["class", "stickyLabels"] }, { kind: "component", type: i3.HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "size"] }, { kind: "component", type: i3.HlmSelectOption, selector: "hlm-option", inputs: ["class"] }, { kind: "directive", type: i3.HlmSelectValue, selector: "hlm-select-value,[hlmSelectValue], brn-select-value[hlm]", inputs: ["class"] }, { kind: "directive", type: i3.HlmSelectLabel, selector: "[hlmSelectLabel], hlm-select-label", inputs: ["class"] }] });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgFormSelect, decorators: [{
92
+ type: Component,
93
+ args: [{
94
+ selector: 'eg-form-select',
95
+ standalone: true,
96
+ host: {
97
+ class: 'tw:w-full',
98
+ },
99
+ imports: [ReactiveFormsModule, HlmFormField, HlmError, HlmHint, HlmLabel, BrnSelectImports, HlmSelectImports],
100
+ providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }],
101
+ // prettier-ignore
102
+ template: `
103
+ @let lbl = label();
104
+ @let nm = controlName();
105
+ @let err = error();
106
+ @let hnt = hint();
107
+ @let rqrd = required();
108
+
109
+ <hlm-form-field>
110
+ @if (lbl) {
111
+ <span hlmLabel [class]="$labelClass()">{{ lbl }}
112
+ @if (rqrd) {
113
+ <span class="tw:text-red-500">*</span>
114
+ }
115
+ </span>
116
+ }
117
+
118
+ <brn-select
119
+ [multiple]="multiple()"
120
+ [placeholder]="placeholder()"
121
+ [formControlName]="nm"
122
+ [required]="rqrd"
123
+ >
124
+ <hlm-select-trigger [class]="$selectClass()">
125
+ <hlm-select-value />
126
+ </hlm-select-trigger>
127
+
128
+ <hlm-select-content>
129
+ @if (options().length) {
130
+ @if (optionsLabel()) {
131
+ <hlm-select-label>{{ optionsLabel() }}</hlm-select-label>
132
+ }
133
+ @for (option of options(); track option.value) {
134
+ <hlm-option [value]="option.value">{{ option.label }}</hlm-option>
135
+ }
136
+ }
137
+ </hlm-select-content>
138
+ </brn-select>
139
+
140
+ @if (err) {
141
+ <hlm-error [class]="$errorClass()">
142
+ {{ err }}
143
+ </hlm-error>
144
+ }
145
+
146
+ @if (hnt) {
147
+ <hlm-hint [class]="$hintClass()">
148
+ {{ hnt }}
149
+ </hlm-hint>
150
+ }
151
+ </hlm-form-field>
152
+ `,
153
+ }]
154
+ }] });
155
+
156
+ /*
157
+ * Public API Surface of form-select
158
+ */
159
+
160
+ /**
161
+ * Generated bundle index. Do not edit.
162
+ */
163
+
164
+ export { EgFormSelect };
165
+ //# sourceMappingURL=form-select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-select.mjs","sources":["../../../projects/form-select/src/lib/form-select.ts","../../../projects/form-select/src/public-api.ts","../../../projects/form-select/src/form-select.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { HlmFormField, HlmError, HlmHint } from '@egose/shadcn-theme-ng/form-field';\nimport { HlmLabel } from '@egose/shadcn-theme-ng/label';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { ClassValue } from 'clsx';\nimport { BrnSelectImports } from '@spartan-ng/brain/select';\nimport { HlmSelectImports } from '@egose/shadcn-theme-ng/select';\n\ninterface SelectOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'eg-form-select',\n standalone: true,\n host: {\n class: 'tw:w-full',\n },\n imports: [ReactiveFormsModule, HlmFormField, HlmError, HlmHint, HlmLabel, BrnSelectImports, HlmSelectImports],\n providers: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\n // prettier-ignore\n template: `\n @let lbl = label();\n @let nm = controlName();\n @let err = error();\n @let hnt = hint();\n @let rqrd = required();\n\n <hlm-form-field>\n @if (lbl) {\n <span hlmLabel [class]=\"$labelClass()\">{{ lbl }}\n @if (rqrd) {\n <span class=\"tw:text-red-500\">*</span>\n }\n </span>\n }\n\n <brn-select\n [multiple]=\"multiple()\"\n [placeholder]=\"placeholder()\"\n [formControlName]=\"nm\"\n [required]=\"rqrd\"\n >\n <hlm-select-trigger [class]=\"$selectClass()\">\n <hlm-select-value />\n </hlm-select-trigger>\n\n <hlm-select-content>\n @if (options().length) {\n @if (optionsLabel()) {\n <hlm-select-label>{{ optionsLabel() }}</hlm-select-label>\n }\n @for (option of options(); track option.value) {\n <hlm-option [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n }\n </hlm-select-content>\n </brn-select>\n\n @if (err) {\n <hlm-error [class]=\"$errorClass()\">\n {{ err }}\n </hlm-error>\n }\n\n @if (hnt) {\n <hlm-hint [class]=\"$hintClass()\">\n {{ hnt }}\n </hlm-hint>\n }\n </hlm-form-field>\n `,\n})\nexport class EgFormSelect {\n label = input<string | undefined>(undefined);\n controlName = input<string>('');\n error = input<string | undefined>(undefined);\n hint = input<string | undefined>(undefined);\n\n // HTML/select attributes\n placeholder = input<string>('');\n disabled = input<boolean>(false);\n required = input<boolean>(false);\n\n // Select-specific\n multiple = input<boolean>(false);\n options = input<SelectOption[]>([]);\n optionsLabel = input<string | undefined>(undefined); // optional group label\n\n // Styling classes\n userClass = input<ClassValue>('', { alias: 'class' });\n labelClass = input<string>('');\n selectClass = input<string>('');\n errorClass = input<string>('');\n hintClass = input<string>('');\n\n // Computed classes\n $userClass = computed(() => hlm('tw:flex tw:flex-col', this.userClass()));\n $labelClass = computed(() => hlm('tw:mb-1 tw:gap-0', this.labelClass()));\n $selectClass = computed(() => hlm('tw:w-full', this.selectClass()));\n $errorClass = computed(() => hlm('tw:mt-0', this.errorClass()));\n $hintClass = computed(() => hlm('tw:mt-0', this.hintClass()));\n}\n","/*\n * Public API Surface of form-select\n */\n\nexport * from './lib/form-select';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}