@egose/shadcn-theme-ng-tw 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 (123) hide show
  1. package/README.md +2 -0
  2. package/accordion/README.md +64 -0
  3. package/accordion/fesm2022/accordion.mjs +155 -0
  4. package/accordion/fesm2022/accordion.mjs.map +1 -0
  5. package/accordion/index.d.ts +49 -0
  6. package/alert/README.md +64 -0
  7. package/alert/fesm2022/alert.mjs +189 -0
  8. package/alert/fesm2022/alert.mjs.map +1 -0
  9. package/alert/index.d.ts +49 -0
  10. package/autocomplete/README.md +64 -0
  11. package/autocomplete/fesm2022/autocomplete.mjs +543 -0
  12. package/autocomplete/fesm2022/autocomplete.mjs.map +1 -0
  13. package/autocomplete/index.d.ts +162 -0
  14. package/badge/README.md +64 -0
  15. package/badge/fesm2022/badge.mjs +137 -0
  16. package/badge/fesm2022/badge.mjs.map +1 -0
  17. package/badge/index.d.ts +33 -0
  18. package/basic-alert/README.md +64 -0
  19. package/basic-alert/fesm2022/basic-alert.mjs +103 -0
  20. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -0
  21. package/basic-alert/index.d.ts +14 -0
  22. package/button/README.md +64 -0
  23. package/button/fesm2022/button.mjs +282 -0
  24. package/button/fesm2022/button.mjs.map +1 -0
  25. package/button/index.d.ts +52 -0
  26. package/calendar/README.md +64 -0
  27. package/calendar/fesm2022/calendar.mjs +637 -0
  28. package/calendar/fesm2022/calendar.mjs.map +1 -0
  29. package/calendar/index.d.ts +111 -0
  30. package/confirmation-dialog/README.md +64 -0
  31. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +93 -0
  32. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +1 -0
  33. package/confirmation-dialog/index.d.ts +24 -0
  34. package/date-picker/README.md +64 -0
  35. package/date-picker/fesm2022/date-picker.mjs +599 -0
  36. package/date-picker/fesm2022/date-picker.mjs.map +1 -0
  37. package/date-picker/index.d.ts +227 -0
  38. package/dialog/README.md +64 -0
  39. package/dialog/fesm2022/dialog.mjs +278 -0
  40. package/dialog/fesm2022/dialog.mjs.map +1 -0
  41. package/dialog/index.d.ts +89 -0
  42. package/exports.json +1 -0
  43. package/form-date-picker/README.md +64 -0
  44. package/form-date-picker/fesm2022/form-date-picker.mjs +146 -0
  45. package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -0
  46. package/form-date-picker/index.d.ts +32 -0
  47. package/form-field/README.md +64 -0
  48. package/form-field/fesm2022/form-field.mjs +112 -0
  49. package/form-field/fesm2022/form-field.mjs.map +1 -0
  50. package/form-field/index.d.ts +37 -0
  51. package/form-searchable-multiselect/README.md +64 -0
  52. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +124 -0
  53. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -0
  54. package/form-searchable-multiselect/index.d.ts +28 -0
  55. package/form-select/README.md +64 -0
  56. package/form-select/fesm2022/form-select.mjs +165 -0
  57. package/form-select/fesm2022/form-select.mjs.map +1 -0
  58. package/form-select/index.d.ts +33 -0
  59. package/form-text-input/README.md +64 -0
  60. package/form-text-input/fesm2022/form-text-input.mjs +197 -0
  61. package/form-text-input/fesm2022/form-text-input.mjs.map +1 -0
  62. package/form-text-input/index.d.ts +47 -0
  63. package/form-textarea/README.md +64 -0
  64. package/form-textarea/fesm2022/form-textarea.mjs +156 -0
  65. package/form-textarea/fesm2022/form-textarea.mjs.map +1 -0
  66. package/form-textarea/index.d.ts +33 -0
  67. package/icon/README.md +64 -0
  68. package/icon/fesm2022/icon.mjs +71 -0
  69. package/icon/fesm2022/icon.mjs.map +1 -0
  70. package/icon/index.d.ts +27 -0
  71. package/input/README.md +64 -0
  72. package/input/fesm2022/input.mjs +97 -0
  73. package/input/fesm2022/input.mjs.map +1 -0
  74. package/input/index.d.ts +41 -0
  75. package/label/README.md +64 -0
  76. package/label/fesm2022/label.mjs +51 -0
  77. package/label/fesm2022/label.mjs.map +1 -0
  78. package/label/index.d.ts +19 -0
  79. package/package.json +139 -0
  80. package/popover/README.md +64 -0
  81. package/popover/fesm2022/popover.mjs +69 -0
  82. package/popover/fesm2022/popover.mjs.map +1 -0
  83. package/popover/index.d.ts +30 -0
  84. package/radio-group/README.md +64 -0
  85. package/radio-group/fesm2022/radio-group.mjs +170 -0
  86. package/radio-group/fesm2022/radio-group.mjs.map +1 -0
  87. package/radio-group/index.d.ts +63 -0
  88. package/searchable-multiselect/README.md +64 -0
  89. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +221 -0
  90. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -0
  91. package/searchable-multiselect/index.d.ts +50 -0
  92. package/select/README.md +64 -0
  93. package/select/fesm2022/select.mjs +281 -0
  94. package/select/fesm2022/select.mjs.map +1 -0
  95. package/select/index.d.ts +92 -0
  96. package/separator/README.md +64 -0
  97. package/separator/fesm2022/separator.mjs +46 -0
  98. package/separator/fesm2022/separator.mjs.map +1 -0
  99. package/separator/index.d.ts +19 -0
  100. package/sonner/README.md +64 -0
  101. package/sonner/fesm2022/sonner.mjs +110 -0
  102. package/sonner/fesm2022/sonner.mjs.map +1 -0
  103. package/sonner/index.d.ts +32 -0
  104. package/spinner/README.md +64 -0
  105. package/spinner/fesm2022/spinner.mjs +67 -0
  106. package/spinner/fesm2022/spinner.mjs.map +1 -0
  107. package/spinner/index.d.ts +25 -0
  108. package/switch/README.md +64 -0
  109. package/switch/fesm2022/switch.mjs +139 -0
  110. package/switch/fesm2022/switch.mjs.map +1 -0
  111. package/switch/index.d.ts +56 -0
  112. package/tabs/README.md +64 -0
  113. package/tabs/fesm2022/tabs.mjs +258 -0
  114. package/tabs/fesm2022/tabs.mjs.map +1 -0
  115. package/tabs/index.d.ts +71 -0
  116. package/tooltip/README.md +64 -0
  117. package/tooltip/fesm2022/tooltip.mjs +93 -0
  118. package/tooltip/fesm2022/tooltip.mjs.map +1 -0
  119. package/tooltip/index.d.ts +21 -0
  120. package/utils/README.md +64 -0
  121. package/utils/fesm2022/utils.mjs +17 -0
  122. package/utils/fesm2022/utils.mjs.map +1 -0
  123. package/utils/index.d.ts +5 -0
@@ -0,0 +1,97 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, linkedSignal, computed, inject, Injector, effect, untracked, forwardRef, Directive, NgModule } from '@angular/core';
3
+ import { NgControl, NgForm, FormGroupDirective } from '@angular/forms';
4
+ import { BrnFormFieldControl } from '@spartan-ng/brain/form-field';
5
+ import { ErrorStateMatcher, ErrorStateTracker } from '@spartan-ng/brain/forms';
6
+ import { hlm } from '@egose/shadcn-theme-ng/utils';
7
+ import { cva } from 'class-variance-authority';
8
+
9
+ const inputVariants = cva('tw:file:text-foreground tw:placeholder:text-muted-foreground tw:selection:bg-primary tw:selection:text-primary-foreground tw:dark:bg-input/10 tw:border-input tw:shadow-xs tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:flex tw:h-9 tw:w-full tw:min-w-0 tw:rounded-md tw:border tw:bg-transparent tw:px-3 tw:py-1 tw:text-base tw:outline-none tw:transition-[color,box-shadow] tw:file:inline-flex tw:file:h-7 tw:file:border-0 tw:file:bg-transparent tw:file:text-sm tw:file:font-medium tw:focus-visible:ring-[3px] tw:disabled:pointer-events-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 md:text-sm', {
10
+ variants: {
11
+ error: {
12
+ auto: 'tw:[&.ng-invalid.ng-touched]:text-destructive/20 tw:dark:[&.ng-invalid.ng-touched]:text-destructive/40 tw:[&.ng-invalid.ng-touched]:border-destructive tw:[&.ng-invalid.ng-touched]:focus-visible:ring-destructive',
13
+ true: 'tw:text-destructive/90 dark:text-destructive/60 tw:border-destructive tw:focus-visible:ring-destructive',
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ error: 'auto',
18
+ },
19
+ });
20
+ class HlmInput {
21
+ error = input('auto', ...(ngDevMode ? [{ debugName: "error" }] : []));
22
+ _state = linkedSignal(() => ({ error: this.error() }));
23
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
24
+ _computedClass = computed(() => hlm(inputVariants({ error: this._state().error }), this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
25
+ _injector = inject(Injector);
26
+ ngControl = this._injector.get(NgControl, null);
27
+ _errorStateTracker;
28
+ _defaultErrorStateMatcher = inject(ErrorStateMatcher);
29
+ _parentForm = inject(NgForm, { optional: true });
30
+ _parentFormGroup = inject(FormGroupDirective, { optional: true });
31
+ errorState = computed(() => this._errorStateTracker.errorState(), ...(ngDevMode ? [{ debugName: "errorState" }] : []));
32
+ constructor() {
33
+ this._errorStateTracker = new ErrorStateTracker(this._defaultErrorStateMatcher, this.ngControl, this._parentFormGroup, this._parentForm);
34
+ effect(() => {
35
+ const error = this._errorStateTracker.errorState();
36
+ untracked(() => {
37
+ if (this.ngControl) {
38
+ const shouldShowError = error && this.ngControl.invalid && (this.ngControl.touched || this.ngControl.dirty);
39
+ this._errorStateTracker.errorState.set(shouldShowError ? true : false);
40
+ this.setError(shouldShowError ? true : 'auto');
41
+ }
42
+ });
43
+ });
44
+ }
45
+ ngDoCheck() {
46
+ this._errorStateTracker.updateErrorState();
47
+ }
48
+ setError(error) {
49
+ this._state.set({ error });
50
+ }
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
52
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmInput, isStandalone: true, selector: "[hlmInput]", inputs: { error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [
53
+ {
54
+ provide: BrnFormFieldControl,
55
+ useExisting: forwardRef(() => HlmInput),
56
+ },
57
+ ], ngImport: i0 });
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmInput, decorators: [{
60
+ type: Directive,
61
+ args: [{
62
+ selector: '[hlmInput]',
63
+ host: {
64
+ '[class]': '_computedClass()',
65
+ },
66
+ providers: [
67
+ {
68
+ provide: BrnFormFieldControl,
69
+ useExisting: forwardRef(() => HlmInput),
70
+ },
71
+ ],
72
+ }]
73
+ }], ctorParameters: () => [] });
74
+
75
+ /*
76
+ * Public API Surface of input
77
+ */
78
+ const HlmInputImpots = [HlmInput];
79
+ class HlmInputModule {
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
81
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmInputModule, imports: [HlmInput], exports: [HlmInput] });
82
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmInputModule });
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmInputModule, decorators: [{
85
+ type: NgModule,
86
+ args: [{
87
+ imports: [...HlmInputImpots],
88
+ exports: [...HlmInputImpots],
89
+ }]
90
+ }] });
91
+
92
+ /**
93
+ * Generated bundle index. Do not edit.
94
+ */
95
+
96
+ export { HlmInput, HlmInputImpots, HlmInputModule, inputVariants };
97
+ //# sourceMappingURL=input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.mjs","sources":["../../../projects/input/src/lib/input.ts","../../../projects/input/src/public-api.ts","../../../projects/input/src/input.ts"],"sourcesContent":["import {\n computed,\n Directive,\n type DoCheck,\n effect,\n forwardRef,\n inject,\n Injector,\n input,\n linkedSignal,\n untracked,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { ErrorStateMatcher, ErrorStateTracker } from '@spartan-ng/brain/forms';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\n\nexport const inputVariants = cva(\n 'tw:file:text-foreground tw:placeholder:text-muted-foreground tw:selection:bg-primary tw:selection:text-primary-foreground tw:dark:bg-input/10 tw:border-input tw:shadow-xs tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:flex tw:h-9 tw:w-full tw:min-w-0 tw:rounded-md tw:border tw:bg-transparent tw:px-3 tw:py-1 tw:text-base tw:outline-none tw:transition-[color,box-shadow] tw:file:inline-flex tw:file:h-7 tw:file:border-0 tw:file:bg-transparent tw:file:text-sm tw:file:font-medium tw:focus-visible:ring-[3px] tw:disabled:pointer-events-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 md:text-sm',\n {\n variants: {\n error: {\n auto: 'tw:[&.ng-invalid.ng-touched]:text-destructive/20 tw:dark:[&.ng-invalid.ng-touched]:text-destructive/40 tw:[&.ng-invalid.ng-touched]:border-destructive tw:[&.ng-invalid.ng-touched]:focus-visible:ring-destructive',\n true: 'tw:text-destructive/90 dark:text-destructive/60 tw:border-destructive tw:focus-visible:ring-destructive',\n },\n },\n defaultVariants: {\n error: 'auto',\n },\n },\n);\ntype InputVariants = VariantProps<typeof inputVariants>;\n\n@Directive({\n selector: '[hlmInput]',\n host: {\n '[class]': '_computedClass()',\n },\n providers: [\n {\n provide: BrnFormFieldControl,\n useExisting: forwardRef(() => HlmInput),\n },\n ],\n})\nexport class HlmInput implements BrnFormFieldControl, DoCheck {\n public readonly error = input<InputVariants['error']>('auto');\n\n protected readonly _state = linkedSignal(() => ({ error: this.error() }));\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(inputVariants({ error: this._state().error }), this.userClass()),\n );\n\n private readonly _injector = inject(Injector);\n\n public readonly ngControl: NgControl | null = this._injector.get(NgControl, null);\n\n private readonly _errorStateTracker: ErrorStateTracker;\n\n private readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n private readonly _parentForm = inject(NgForm, { optional: true });\n private readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n public readonly errorState = computed(() => this._errorStateTracker.errorState());\n\n constructor() {\n this._errorStateTracker = new ErrorStateTracker(\n this._defaultErrorStateMatcher,\n this.ngControl,\n this._parentFormGroup,\n this._parentForm,\n );\n\n effect(() => {\n const error = this._errorStateTracker.errorState();\n untracked(() => {\n if (this.ngControl) {\n const shouldShowError = error && this.ngControl.invalid && (this.ngControl.touched || this.ngControl.dirty);\n this._errorStateTracker.errorState.set(shouldShowError ? true : false);\n this.setError(shouldShowError ? true : 'auto');\n }\n });\n });\n }\n\n ngDoCheck() {\n this._errorStateTracker.updateErrorState();\n }\n\n setError(error: InputVariants['error']) {\n this._state.set({ error });\n }\n}\n","/*\n * Public API Surface of input\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmInput } from './lib/input';\n\nexport * from './lib/input';\n\nexport const HlmInputImpots = [HlmInput] as const;\n\n@NgModule({\n imports: [...HlmInputImpots],\n exports: [...HlmInputImpots],\n})\nexport class HlmInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { DoCheck } from '@angular/core';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { NgControl } from '@angular/forms';
5
+ import { BrnFormFieldControl } from '@spartan-ng/brain/form-field';
6
+ import { VariantProps } from 'class-variance-authority';
7
+ import { ClassValue } from 'clsx';
8
+
9
+ declare const inputVariants: (props?: ({
10
+ error?: boolean | "auto" | null | undefined;
11
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
12
+ type InputVariants = VariantProps<typeof inputVariants>;
13
+ declare class HlmInput implements BrnFormFieldControl, DoCheck {
14
+ readonly error: _angular_core.InputSignal<boolean | "auto" | null | undefined>;
15
+ protected readonly _state: _angular_core.WritableSignal<{
16
+ error: boolean | "auto" | null | undefined;
17
+ }>;
18
+ readonly userClass: _angular_core.InputSignal<ClassValue>;
19
+ protected readonly _computedClass: _angular_core.Signal<string>;
20
+ private readonly _injector;
21
+ readonly ngControl: NgControl | null;
22
+ private readonly _errorStateTracker;
23
+ private readonly _defaultErrorStateMatcher;
24
+ private readonly _parentForm;
25
+ private readonly _parentFormGroup;
26
+ readonly errorState: _angular_core.Signal<boolean>;
27
+ constructor();
28
+ ngDoCheck(): void;
29
+ setError(error: InputVariants['error']): void;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmInput, never>;
31
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HlmInput, "[hlmInput]", never, { "error": { "alias": "error"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
32
+ }
33
+
34
+ declare const HlmInputImpots: readonly [typeof HlmInput];
35
+ declare class HlmInputModule {
36
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmInputModule, never>;
37
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HlmInputModule, never, [typeof HlmInput], [typeof HlmInput]>;
38
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<HlmInputModule>;
39
+ }
40
+
41
+ export { HlmInput, HlmInputImpots, HlmInputModule, inputVariants };
@@ -0,0 +1,64 @@
1
+ # Label
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.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 label
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/label
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,51 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, Directive, NgModule } from '@angular/core';
3
+ import * as i1 from '@spartan-ng/brain/label';
4
+ import { BrnLabel } from '@spartan-ng/brain/label';
5
+ import { hlm } from '@egose/shadcn-theme-ng/utils';
6
+
7
+ class HlmLabel {
8
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
9
+ _computedClass = computed(() => hlm('tw:flex tw:select-none tw:items-center tw:gap-2 tw:text-sm tw:font-medium tw:leading-none tw:peer-disabled:cursor-not-allowed tw:peer-disabled:opacity-50 tw:has-[[disabled]]:cursor-not-allowed tw:has-[[disabled]]:opacity-50 tw:group-data-[disabled=true]:pointer-events-none tw:group-data-[disabled=true]:opacity-50 tw:peer-data-[disabled]:cursor-not-allowed tw:peer-data-[disabled]:opacity-50', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmLabel, isStandalone: true, selector: "[hlmLabel]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnLabel, inputs: ["id", "id"] }], ngImport: i0 });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmLabel, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: '[hlmLabel]',
17
+ hostDirectives: [
18
+ {
19
+ directive: BrnLabel,
20
+ inputs: ['id'],
21
+ },
22
+ ],
23
+ host: {
24
+ '[class]': '_computedClass()',
25
+ },
26
+ }]
27
+ }] });
28
+
29
+ /*
30
+ * Public API Surface of label
31
+ */
32
+ const HlmLabelImports = [HlmLabel];
33
+ class HlmLabelModule {
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
35
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmLabelModule, imports: [HlmLabel], exports: [HlmLabel] });
36
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmLabelModule });
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmLabelModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ imports: [...HlmLabelImports],
42
+ exports: [...HlmLabelImports],
43
+ }]
44
+ }] });
45
+
46
+ /**
47
+ * Generated bundle index. Do not edit.
48
+ */
49
+
50
+ export { HlmLabel, HlmLabelImports, HlmLabelModule };
51
+ //# sourceMappingURL=label.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.mjs","sources":["../../../projects/label/src/lib/label.ts","../../../projects/label/src/public-api.ts","../../../projects/label/src/label.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { BrnLabel } from '@spartan-ng/brain/label';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmLabel]',\n hostDirectives: [\n {\n directive: BrnLabel,\n inputs: ['id'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmLabel {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:flex tw:select-none tw:items-center tw:gap-2 tw:text-sm tw:font-medium tw:leading-none tw:peer-disabled:cursor-not-allowed tw:peer-disabled:opacity-50 tw:has-[[disabled]]:cursor-not-allowed tw:has-[[disabled]]:opacity-50 tw:group-data-[disabled=true]:pointer-events-none tw:group-data-[disabled=true]:opacity-50 tw:peer-data-[disabled]:cursor-not-allowed tw:peer-data-[disabled]:opacity-50',\n this.userClass(),\n ),\n );\n}\n","/*\n * Public API Surface of label\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmLabel } from './lib/label';\n\nexport * from './lib/label';\n\nexport const HlmLabelImports = [HlmLabel] as const;\n\n@NgModule({\n imports: [...HlmLabelImports],\n exports: [...HlmLabelImports],\n})\nexport class HlmLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAiBa,QAAQ,CAAA;AACH,IAAA,SAAS,GAAG,KAAK,CAAa,EAAE,6CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC3C,GAAG,CACD,0YAA0Y,EAC1Y,IAAI,CAAC,SAAS,EAAE,CACjB,0DACF;uGARU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAZpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,QAAQ;4BACnB,MAAM,EAAE,CAAC,IAAI,CAAC;AACf,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACF,iBAAA;;;AChBD;;AAEG;AAOI,MAAM,eAAe,GAAG,CAAC,QAAQ;MAM3B,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAd,cAAc,EAAA,OAAA,EAAA,CANK,QAAQ,CAAA,EAAA,OAAA,EAAA,CAAR,QAAQ,CAAA,EAAA,CAAA;wGAM3B,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC9B,iBAAA;;;ACdD;;AAEG;;;;"}
@@ -0,0 +1,19 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ClassValue } from 'clsx';
3
+ import * as i1 from '@spartan-ng/brain/label';
4
+
5
+ declare class HlmLabel {
6
+ readonly userClass: i0.InputSignal<ClassValue>;
7
+ protected readonly _computedClass: i0.Signal<string>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmLabel, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HlmLabel, "[hlmLabel]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.BrnLabel; inputs: { "id": "id"; }; outputs: {}; }]>;
10
+ }
11
+
12
+ declare const HlmLabelImports: readonly [typeof HlmLabel];
13
+ declare class HlmLabelModule {
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmLabelModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HlmLabelModule, never, [typeof HlmLabel], [typeof HlmLabel]>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<HlmLabelModule>;
17
+ }
18
+
19
+ export { HlmLabel, HlmLabelImports, HlmLabelModule };
package/package.json ADDED
@@ -0,0 +1,139 @@
1
+ {
2
+ "version": "0.0.14",
3
+ "description": "Angular shadcn UI theme",
4
+ "license": "MIT",
5
+ "sideEffects": false,
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/egose/shadcn-theme"
9
+ },
10
+ "dependencies": {
11
+ "tslib": "^2.3.0"
12
+ },
13
+ "engines": {
14
+ "node": ">=20"
15
+ },
16
+ "name": "@egose/shadcn-theme-ng-tw",
17
+ "exports": {
18
+ "./utils": {
19
+ "types": "./utils/index.d.ts",
20
+ "default": "./utils/fesm2022/utils.mjs"
21
+ },
22
+ "./icon": {
23
+ "types": "./icon/index.d.ts",
24
+ "default": "./icon/fesm2022/icon.mjs"
25
+ },
26
+ "./spinner": {
27
+ "types": "./spinner/index.d.ts",
28
+ "default": "./spinner/fesm2022/spinner.mjs"
29
+ },
30
+ "./badge": {
31
+ "types": "./badge/index.d.ts",
32
+ "default": "./badge/fesm2022/badge.mjs"
33
+ },
34
+ "./input": {
35
+ "types": "./input/index.d.ts",
36
+ "default": "./input/fesm2022/input.mjs"
37
+ },
38
+ "./select": {
39
+ "types": "./select/index.d.ts",
40
+ "default": "./select/fesm2022/select.mjs"
41
+ },
42
+ "./button": {
43
+ "types": "./button/index.d.ts",
44
+ "default": "./button/fesm2022/button.mjs"
45
+ },
46
+ "./accordion": {
47
+ "types": "./accordion/index.d.ts",
48
+ "default": "./accordion/fesm2022/accordion.mjs"
49
+ },
50
+ "./alert": {
51
+ "types": "./alert/index.d.ts",
52
+ "default": "./alert/fesm2022/alert.mjs"
53
+ },
54
+ "./switch": {
55
+ "types": "./switch/index.d.ts",
56
+ "default": "./switch/fesm2022/switch.mjs"
57
+ },
58
+ "./label": {
59
+ "types": "./label/index.d.ts",
60
+ "default": "./label/fesm2022/label.mjs"
61
+ },
62
+ "./form-field": {
63
+ "types": "./form-field/index.d.ts",
64
+ "default": "./form-field/fesm2022/form-field.mjs"
65
+ },
66
+ "./popover": {
67
+ "types": "./popover/index.d.ts",
68
+ "default": "./popover/fesm2022/popover.mjs"
69
+ },
70
+ "./calendar": {
71
+ "types": "./calendar/index.d.ts",
72
+ "default": "./calendar/fesm2022/calendar.mjs"
73
+ },
74
+ "./date-picker": {
75
+ "types": "./date-picker/index.d.ts",
76
+ "default": "./date-picker/fesm2022/date-picker.mjs"
77
+ },
78
+ "./dialog": {
79
+ "types": "./dialog/index.d.ts",
80
+ "default": "./dialog/fesm2022/dialog.mjs"
81
+ },
82
+ "./radio-group": {
83
+ "types": "./radio-group/index.d.ts",
84
+ "default": "./radio-group/fesm2022/radio-group.mjs"
85
+ },
86
+ "./separator": {
87
+ "types": "./separator/index.d.ts",
88
+ "default": "./separator/fesm2022/separator.mjs"
89
+ },
90
+ "./tabs": {
91
+ "types": "./tabs/index.d.ts",
92
+ "default": "./tabs/fesm2022/tabs.mjs"
93
+ },
94
+ "./tooltip": {
95
+ "types": "./tooltip/index.d.ts",
96
+ "default": "./tooltip/fesm2022/tooltip.mjs"
97
+ },
98
+ "./form-select": {
99
+ "types": "./form-select/index.d.ts",
100
+ "default": "./form-select/fesm2022/form-select.mjs"
101
+ },
102
+ "./form-text-input": {
103
+ "types": "./form-text-input/index.d.ts",
104
+ "default": "./form-text-input/fesm2022/form-text-input.mjs"
105
+ },
106
+ "./form-textarea": {
107
+ "types": "./form-textarea/index.d.ts",
108
+ "default": "./form-textarea/fesm2022/form-textarea.mjs"
109
+ },
110
+ "./form-date-picker": {
111
+ "types": "./form-date-picker/index.d.ts",
112
+ "default": "./form-date-picker/fesm2022/form-date-picker.mjs"
113
+ },
114
+ "./basic-alert": {
115
+ "types": "./basic-alert/index.d.ts",
116
+ "default": "./basic-alert/fesm2022/basic-alert.mjs"
117
+ },
118
+ "./confirmation-dialog": {
119
+ "types": "./confirmation-dialog/index.d.ts",
120
+ "default": "./confirmation-dialog/fesm2022/confirmation-dialog.mjs"
121
+ },
122
+ "./sonner": {
123
+ "types": "./sonner/index.d.ts",
124
+ "default": "./sonner/fesm2022/sonner.mjs"
125
+ },
126
+ "./autocomplete": {
127
+ "types": "./autocomplete/index.d.ts",
128
+ "default": "./autocomplete/fesm2022/autocomplete.mjs"
129
+ },
130
+ "./searchable-multiselect": {
131
+ "types": "./searchable-multiselect/index.d.ts",
132
+ "default": "./searchable-multiselect/fesm2022/searchable-multiselect.mjs"
133
+ },
134
+ "./form-searchable-multiselect": {
135
+ "types": "./form-searchable-multiselect/index.d.ts",
136
+ "default": "./form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs"
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,64 @@
1
+ # Popover
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 popover
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/popover
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,69 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, Directive, signal, inject, Renderer2, ElementRef, effect, NgModule } from '@angular/core';
3
+ import { hlm } from '@egose/shadcn-theme-ng/utils';
4
+ import { injectExposesStateProvider } from '@spartan-ng/brain/core';
5
+
6
+ class HlmPopoverClose {
7
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
8
+ _computedClass = computed(() => hlm('tw:ring-offset-background tw:focus:ring-ring tw:data-[state=open]:bg-accent tw:data-[state=open]:text-muted-foreground tw:absolute tw:right-4 tw:top-4 tw:rounded-sm tw:opacity-70 tw:transition-opacity tw:hover:opacity-100 tw:focus:outline-none tw:focus:ring-2 tw:focus:ring-offset-2 tw:disabled:pointer-events-none', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverClose, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmPopoverClose, isStandalone: true, selector: "[hlmPopoverClose],[brnPopoverClose][hlm]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverClose, decorators: [{
13
+ type: Directive,
14
+ args: [{
15
+ selector: '[hlmPopoverClose],[brnPopoverClose][hlm]',
16
+ host: {
17
+ '[class]': '_computedClass()',
18
+ },
19
+ }]
20
+ }] });
21
+
22
+ class HlmPopoverContent {
23
+ _stateProvider = injectExposesStateProvider({ host: true });
24
+ state = this._stateProvider.state ?? signal('closed');
25
+ _renderer = inject(Renderer2);
26
+ _element = inject(ElementRef);
27
+ constructor() {
28
+ effect(() => {
29
+ this._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());
30
+ });
31
+ }
32
+ userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
33
+ _computedClass = computed(() => hlm('tw:border-border tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:relative tw:w-72 tw:rounded-md tw:border tw:p-4 tw:shadow-md tw:outline-none', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
35
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmPopoverContent, isStandalone: true, selector: "[hlmPopoverContent],[brnPopoverContent][hlm]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverContent, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[hlmPopoverContent],[brnPopoverContent][hlm]',
41
+ host: {
42
+ '[class]': '_computedClass()',
43
+ },
44
+ }]
45
+ }], ctorParameters: () => [] });
46
+
47
+ /*
48
+ * Public API Surface of popover
49
+ */
50
+ const HlmPopoverImports = [HlmPopoverContent, HlmPopoverClose];
51
+ class HlmPopoverModule {
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
53
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverModule, imports: [HlmPopoverContent, HlmPopoverClose], exports: [HlmPopoverContent, HlmPopoverClose] });
54
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverModule });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmPopoverModule, decorators: [{
57
+ type: NgModule,
58
+ args: [{
59
+ imports: [...HlmPopoverImports],
60
+ exports: [...HlmPopoverImports],
61
+ }]
62
+ }] });
63
+
64
+ /**
65
+ * Generated bundle index. Do not edit.
66
+ */
67
+
68
+ export { HlmPopoverClose, HlmPopoverContent, HlmPopoverImports, HlmPopoverModule };
69
+ //# sourceMappingURL=popover.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.mjs","sources":["../../../projects/popover/src/lib/popover-close.ts","../../../projects/popover/src/lib/popover-content.ts","../../../projects/popover/src/public-api.ts","../../../projects/popover/src/popover.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: '[hlmPopoverClose],[brnPopoverClose][hlm]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmPopoverClose {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:ring-offset-background tw:focus:ring-ring tw:data-[state=open]:bg-accent tw:data-[state=open]:text-muted-foreground tw:absolute tw:right-4 tw:top-4 tw:rounded-sm tw:opacity-70 tw:transition-opacity tw:hover:opacity-100 tw:focus:outline-none tw:focus:ring-2 tw:focus:ring-offset-2 tw:disabled:pointer-events-none',\n this.userClass(),\n ),\n );\n}\n","import { Directive, ElementRef, Renderer2, computed, effect, inject, input, signal } from '@angular/core';\nimport { injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmPopoverContent],[brnPopoverContent][hlm]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmPopoverContent {\n private readonly _stateProvider = injectExposesStateProvider({ host: true });\n public state = this._stateProvider.state ?? signal('closed');\n private readonly _renderer = inject(Renderer2);\n private readonly _element = inject(ElementRef);\n\n constructor() {\n effect(() => {\n this._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());\n });\n }\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:border-border tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:relative tw:w-72 tw:rounded-md tw:border tw:p-4 tw:shadow-md tw:outline-none',\n this.userClass(),\n ),\n );\n}\n","/*\n * Public API Surface of popover\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmPopoverClose } from './lib/popover-close';\nimport { HlmPopoverContent } from './lib/popover-content';\n\nexport * from './lib/popover-close';\nexport * from './lib/popover-content';\n\nexport const HlmPopoverImports = [HlmPopoverContent, HlmPopoverClose] as const;\n\n@NgModule({\n imports: [...HlmPopoverImports],\n exports: [...HlmPopoverImports],\n})\nexport class HlmPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ClassValue } from 'clsx';
3
+
4
+ declare class HlmPopoverClose {
5
+ readonly userClass: i0.InputSignal<ClassValue>;
6
+ protected readonly _computedClass: i0.Signal<string>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmPopoverClose, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HlmPopoverClose, "[hlmPopoverClose],[brnPopoverClose][hlm]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ }
10
+
11
+ declare class HlmPopoverContent {
12
+ private readonly _stateProvider;
13
+ state: i0.Signal<"open" | "closed">;
14
+ private readonly _renderer;
15
+ private readonly _element;
16
+ constructor();
17
+ readonly userClass: i0.InputSignal<ClassValue>;
18
+ protected readonly _computedClass: i0.Signal<string>;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmPopoverContent, never>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HlmPopoverContent, "[hlmPopoverContent],[brnPopoverContent][hlm]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
21
+ }
22
+
23
+ declare const HlmPopoverImports: readonly [typeof HlmPopoverContent, typeof HlmPopoverClose];
24
+ declare class HlmPopoverModule {
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmPopoverModule, never>;
26
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HlmPopoverModule, never, [typeof HlmPopoverContent, typeof HlmPopoverClose], [typeof HlmPopoverContent, typeof HlmPopoverClose]>;
27
+ static ɵinj: i0.ɵɵInjectorDeclaration<HlmPopoverModule>;
28
+ }
29
+
30
+ export { HlmPopoverClose, HlmPopoverContent, HlmPopoverImports, HlmPopoverModule };