@egose/shadcn-theme-ng 0.0.25 → 0.0.27

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 (100) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +107 -2
  3. package/alert/fesm2022/alert.mjs +19 -19
  4. package/alert/fesm2022/alert.mjs.map +1 -1
  5. package/badge/fesm2022/badge.mjs +4 -4
  6. package/badge/fesm2022/badge.mjs.map +1 -1
  7. package/basic-alert/fesm2022/basic-alert.mjs +4 -4
  8. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
  9. package/button/fesm2022/button.mjs +8 -8
  10. package/button/fesm2022/button.mjs.map +1 -1
  11. package/calendar/fesm2022/calendar.mjs +16 -16
  12. package/calendar/fesm2022/calendar.mjs.map +1 -1
  13. package/date-picker/fesm2022/date-picker.mjs +19 -19
  14. package/date-picker/fesm2022/date-picker.mjs.map +1 -1
  15. package/form-date-picker/fesm2022/form-date-picker.mjs +4 -4
  16. package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -1
  17. package/form-field/fesm2022/form-field.mjs +16 -16
  18. package/form-field/fesm2022/form-field.mjs.map +1 -1
  19. package/form-field-simple/fesm2022/form-field-simple.mjs +4 -4
  20. package/form-field-simple/fesm2022/form-field-simple.mjs.map +1 -1
  21. package/form-select/fesm2022/form-select.mjs +5 -5
  22. package/form-select/fesm2022/form-select.mjs.map +1 -1
  23. package/form-text-input/fesm2022/form-text-input.mjs +8 -8
  24. package/form-text-input/fesm2022/form-text-input.mjs.map +1 -1
  25. package/form-textarea/fesm2022/form-textarea.mjs +4 -4
  26. package/form-textarea/fesm2022/form-textarea.mjs.map +1 -1
  27. package/icon/fesm2022/icon.mjs +8 -8
  28. package/icon/fesm2022/icon.mjs.map +1 -1
  29. package/input/fesm2022/input.mjs +8 -8
  30. package/input/fesm2022/input.mjs.map +1 -1
  31. package/label/fesm2022/label.mjs +8 -8
  32. package/label/fesm2022/label.mjs.map +1 -1
  33. package/package.json +7 -57
  34. package/popover/fesm2022/popover.mjs +12 -12
  35. package/popover/fesm2022/popover.mjs.map +1 -1
  36. package/select/fesm2022/select.mjs +40 -40
  37. package/select/fesm2022/select.mjs.map +1 -1
  38. package/separator/fesm2022/separator.mjs +8 -8
  39. package/separator/fesm2022/separator.mjs.map +1 -1
  40. package/sheet/fesm2022/sheet.mjs +36 -37
  41. package/sheet/fesm2022/sheet.mjs.map +1 -1
  42. package/sonner/fesm2022/sonner.mjs +8 -8
  43. package/sonner/fesm2022/sonner.mjs.map +1 -1
  44. package/spinner/fesm2022/spinner.mjs +8 -8
  45. package/spinner/fesm2022/spinner.mjs.map +1 -1
  46. package/switch/fesm2022/switch.mjs +12 -12
  47. package/switch/fesm2022/switch.mjs.map +1 -1
  48. package/accordion/README.md +0 -64
  49. package/accordion/fesm2022/accordion.mjs +0 -155
  50. package/accordion/fesm2022/accordion.mjs.map +0 -1
  51. package/accordion/index.d.ts +0 -49
  52. package/autocomplete/README.md +0 -64
  53. package/autocomplete/fesm2022/autocomplete.mjs +0 -543
  54. package/autocomplete/fesm2022/autocomplete.mjs.map +0 -1
  55. package/autocomplete/index.d.ts +0 -162
  56. package/checkbox/README.md +0 -64
  57. package/checkbox/fesm2022/checkbox.mjs +0 -146
  58. package/checkbox/fesm2022/checkbox.mjs.map +0 -1
  59. package/checkbox/index.d.ts +0 -55
  60. package/confirmation-dialog/README.md +0 -64
  61. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +0 -93
  62. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +0 -1
  63. package/confirmation-dialog/index.d.ts +0 -24
  64. package/dialog/README.md +0 -64
  65. package/dialog/fesm2022/dialog.mjs +0 -278
  66. package/dialog/fesm2022/dialog.mjs.map +0 -1
  67. package/dialog/index.d.ts +0 -89
  68. package/exports.json +0 -1
  69. package/form-checkbox/README.md +0 -64
  70. package/form-checkbox/fesm2022/form-checkbox.mjs +0 -137
  71. package/form-checkbox/fesm2022/form-checkbox.mjs.map +0 -1
  72. package/form-checkbox/index.d.ts +0 -27
  73. package/form-searchable-multiselect/README.md +0 -64
  74. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +0 -139
  75. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +0 -1
  76. package/form-searchable-multiselect/index.d.ts +0 -30
  77. package/layout-simple/README.md +0 -64
  78. package/layout-simple/fesm2022/layout-simple.mjs +0 -591
  79. package/layout-simple/fesm2022/layout-simple.mjs.map +0 -1
  80. package/layout-simple/index.d.ts +0 -140
  81. package/menu/README.md +0 -64
  82. package/menu/fesm2022/menu.mjs +0 -449
  83. package/menu/fesm2022/menu.mjs.map +0 -1
  84. package/menu/index.d.ts +0 -137
  85. package/radio-group/README.md +0 -64
  86. package/radio-group/fesm2022/radio-group.mjs +0 -170
  87. package/radio-group/fesm2022/radio-group.mjs.map +0 -1
  88. package/radio-group/index.d.ts +0 -63
  89. package/searchable-multiselect/README.md +0 -64
  90. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +0 -221
  91. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +0 -1
  92. package/searchable-multiselect/index.d.ts +0 -50
  93. package/tabs/README.md +0 -64
  94. package/tabs/fesm2022/tabs.mjs +0 -258
  95. package/tabs/fesm2022/tabs.mjs.map +0 -1
  96. package/tabs/index.d.ts +0 -71
  97. package/tooltip/README.md +0 -64
  98. package/tooltip/fesm2022/tooltip.mjs +0 -93
  99. package/tooltip/fesm2022/tooltip.mjs.map +0 -1
  100. package/tooltip/index.d.ts +0 -21
@@ -1,162 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { ElementRef, TemplateRef, ValueProvider } from '@angular/core';
3
- import { BooleanInput } from '@angular/cdk/coercion';
4
- import { ControlValueAccessor } from '@angular/forms';
5
- import { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
6
- import { ClassValue } from 'clsx';
7
- import * as i1 from '@spartan-ng/brain/autocomplete';
8
-
9
- declare const HLM_AUTOCOMPLETE_VALUE_ACCESSOR: {
10
- provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
11
- useExisting: _angular_core.Type<any>;
12
- multi: boolean;
13
- };
14
- declare class HlmAutocomplete<T> implements ControlValueAccessor {
15
- private static _id;
16
- private readonly _config;
17
- private readonly _brnPopover;
18
- private readonly _inputRef;
19
- protected readonly _elementRef: ElementRef<any>;
20
- readonly onSelect: _angular_core.InputSignal<((option: string) => void) | undefined>;
21
- /** The user defined class */
22
- readonly userClass: _angular_core.InputSignal<ClassValue>;
23
- protected readonly _computedClass: _angular_core.Signal<string>;
24
- /** Custom class for the autocomplete list. */
25
- readonly autocompleteListClass: _angular_core.InputSignal<ClassValue>;
26
- protected readonly _computedAutocompleteListClass: _angular_core.Signal<string>;
27
- /** Custom class for the empty and loading state container. */
28
- readonly autocompleteEmptyClass: _angular_core.InputSignal<ClassValue>;
29
- protected readonly _computedAutocompleteEmptyClass: _angular_core.Signal<string>;
30
- /** The list of filtered options to display in the autocomplete. */
31
- readonly filteredOptions: _angular_core.InputSignal<T[]>;
32
- /** The selected value. */
33
- readonly value: _angular_core.InputSignal<T | undefined>;
34
- protected readonly _value: _angular_core.WritableSignal<T | undefined>;
35
- /** The search query. */
36
- readonly search: _angular_core.InputSignal<string | undefined>;
37
- protected readonly _search: _angular_core.WritableSignal<string>;
38
- /** Function to transform an option value to a search string. Defaults to identity function for strings. */
39
- readonly transformValueToSearch: _angular_core.InputSignal<(value: T, inputId: string) => string>;
40
- /** Optional template for rendering each option. */
41
- readonly optionTemplate: _angular_core.InputSignal<TemplateRef<HlmAutocompleteOption<T>> | undefined>;
42
- /** Whether the autocomplete is in a loading state. */
43
- readonly loading: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
44
- /** Placeholder text for the input field. */
45
- readonly searchPlaceholderText: _angular_core.InputSignal<string>;
46
- /** Text to display when loading options. */
47
- readonly loadingText: _angular_core.InputSignal<string>;
48
- /** Text to display when no options are found. */
49
- readonly emptyText: _angular_core.InputSignal<string>;
50
- /** Aria label for the toggle button. */
51
- readonly ariaLabelToggleButton: _angular_core.InputSignal<string>;
52
- /** The id of the input field. */
53
- readonly inputId: _angular_core.InputSignal<string>;
54
- /** Whether the autocomplete is disabled. */
55
- readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
56
- protected readonly _disabled: _angular_core.WritableSignal<boolean>;
57
- /** Emitted when the selected value changes. */
58
- readonly valueChange: _angular_core.OutputEmitterRef<T | null>;
59
- /** Emitted when the search query changes. */
60
- readonly searchChange: _angular_core.OutputEmitterRef<string>;
61
- protected _onChange?: ChangeFn<T | null>;
62
- protected _onTouched?: TouchFn;
63
- protected _setPopoverState(state: 'open' | 'closed'): void;
64
- protected _click(): void;
65
- protected _openPopover(): void;
66
- protected _toggleOptions(): void;
67
- protected _onSearchChanged(event: Event): void;
68
- protected _clearOption(): void;
69
- protected _optionSelected(option: T): void;
70
- clearText(): void;
71
- setPopoverState(state: 'open' | 'closed'): void;
72
- /** CONTROL VALUE ACCESSOR */
73
- writeValue(value: T | null): void;
74
- registerOnChange(fn: ChangeFn<T | null>): void;
75
- registerOnTouched(fn: TouchFn): void;
76
- setDisabledState(isDisabled: boolean): void;
77
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocomplete<any>, never>;
78
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocomplete<any>, "hlm-autocomplete", never, { "onSelect": { "alias": "onSelect"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "autocompleteListClass": { "alias": "autocompleteListClass"; "required": false; "isSignal": true; }; "autocompleteEmptyClass": { "alias": "autocompleteEmptyClass"; "required": false; "isSignal": true; }; "filteredOptions": { "alias": "filteredOptions"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "transformValueToSearch": { "alias": "transformValueToSearch"; "required": false; "isSignal": true; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "searchPlaceholderText": { "alias": "searchPlaceholderText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabelToggleButton": { "alias": "ariaLabelToggleButton"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; }, never, ["[loading]", "[empty]"], true, never>;
79
- }
80
- interface HlmAutocompleteOption<T> {
81
- $implicit: T;
82
- }
83
-
84
- declare class HlmAutocompleteEmpty {
85
- readonly userClass: _angular_core.InputSignal<ClassValue>;
86
- protected readonly _computedClass: _angular_core.Signal<string>;
87
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteEmpty, never>;
88
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HlmAutocompleteEmpty, "[hlmAutocompleteEmpty]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
89
- }
90
-
91
- declare class HlmAutocompleteGroup {
92
- /** The user defined class */
93
- readonly userClass: _angular_core.InputSignal<string>;
94
- /** The styles to apply */
95
- protected readonly _computedClass: _angular_core.Signal<string>;
96
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteGroup, never>;
97
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocompleteGroup, "hlm-autocomplete-group", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BrnAutocompleteGroup; inputs: { "id": "id"; }; outputs: {}; }]>;
98
- }
99
-
100
- declare class HlmAutocompleteItem {
101
- /** The user defined class */
102
- readonly userClass: _angular_core.InputSignal<string>;
103
- /** The styles to apply */
104
- protected readonly _computedClass: _angular_core.Signal<string>;
105
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteItem, never>;
106
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocompleteItem, "button[hlm-autocomplete-item]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BrnAutocompleteItem; inputs: { "value": "value"; "disabled": "disabled"; "id": "id"; }; outputs: { "selected": "selected"; }; }]>;
107
- }
108
-
109
- declare class HlmAutocompleteList {
110
- /** The user defined class */
111
- readonly userClass: _angular_core.InputSignal<string>;
112
- /** The styles to apply */
113
- protected readonly _computedClass: _angular_core.Signal<string>;
114
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteList, never>;
115
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocompleteList, "hlm-autocomplete-list", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BrnAutocompleteList; inputs: { "id": "id"; }; outputs: {}; }]>;
116
- }
117
-
118
- declare class HlmAutocompleteSearch {
119
- /** The user defined class */
120
- readonly userClass: _angular_core.InputSignal<ClassValue>;
121
- /** The styles to apply */
122
- protected readonly _computedClass: _angular_core.Signal<string>;
123
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteSearch, never>;
124
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocompleteSearch, "hlm-autocomplete-search", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
125
- }
126
-
127
- declare class HlmAutocompleteSearchInput {
128
- /** The user defined class */
129
- readonly userClass: _angular_core.InputSignal<ClassValue>;
130
- /** The styles to apply */
131
- protected readonly _computedClass: _angular_core.Signal<string>;
132
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteSearchInput, never>;
133
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocompleteSearchInput, "input[hlm-autocomplete-search-input]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.BrnAutocompleteSearchInput; inputs: { "value": "value"; }; outputs: {}; }]>;
134
- }
135
-
136
- declare class HlmAutocompleteTrigger {
137
- private readonly _host;
138
- private readonly _brnDialog;
139
- /** Whether the trigger is disabled. */
140
- readonly disabledTrigger: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
141
- constructor();
142
- open(): void;
143
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteTrigger, never>;
144
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HlmAutocompleteTrigger, "[hlmAutocompleteTrigger]", never, { "disabledTrigger": { "alias": "disabledTrigger"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
145
- }
146
-
147
- type TransformValueToString<T> = (value: T, inputId: string) => string;
148
- interface HlmAutocompleteConfig<T> {
149
- transformValueToSearch: TransformValueToString<T>;
150
- }
151
- declare function provideHlmAutocompleteConfig<T>(config: Partial<HlmAutocompleteConfig<T>>): ValueProvider;
152
- declare function injectHlmAutocompleteConfig<T>(): HlmAutocompleteConfig<T>;
153
-
154
- declare const HlmAutocompleteImports: readonly [typeof HlmAutocomplete, typeof HlmAutocompleteEmpty, typeof HlmAutocompleteGroup, typeof HlmAutocompleteItem, typeof HlmAutocompleteList, typeof HlmAutocompleteSearch, typeof HlmAutocompleteSearchInput, typeof HlmAutocompleteTrigger];
155
- declare class HlmAutocompleteModule {
156
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocompleteModule, never>;
157
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HlmAutocompleteModule, never, [typeof HlmAutocomplete, typeof HlmAutocompleteEmpty, typeof HlmAutocompleteGroup, typeof HlmAutocompleteItem, typeof HlmAutocompleteList, typeof HlmAutocompleteSearch, typeof HlmAutocompleteSearchInput, typeof HlmAutocompleteTrigger], [typeof HlmAutocomplete, typeof HlmAutocompleteEmpty, typeof HlmAutocompleteGroup, typeof HlmAutocompleteItem, typeof HlmAutocompleteList, typeof HlmAutocompleteSearch, typeof HlmAutocompleteSearchInput, typeof HlmAutocompleteTrigger]>;
158
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<HlmAutocompleteModule>;
159
- }
160
-
161
- export { HLM_AUTOCOMPLETE_VALUE_ACCESSOR, HlmAutocomplete, HlmAutocompleteEmpty, HlmAutocompleteGroup, HlmAutocompleteImports, HlmAutocompleteItem, HlmAutocompleteList, HlmAutocompleteModule, HlmAutocompleteSearch, HlmAutocompleteSearchInput, HlmAutocompleteTrigger, injectHlmAutocompleteConfig, provideHlmAutocompleteConfig };
162
- export type { HlmAutocompleteConfig, HlmAutocompleteOption, TransformValueToString };
@@ -1,64 +0,0 @@
1
- # Checkbox
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 checkbox
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/checkbox
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.
@@ -1,146 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { forwardRef, input, computed, model, booleanAttribute, signal, output, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { provideIcons, NgIcon } from '@ng-icons/core';
5
- import { lucideCheck } from '@ng-icons/lucide';
6
- import { BrnCheckbox } from '@spartan-ng/brain/checkbox';
7
- import { HlmIcon } from '@egose/shadcn-theme-ng/icon';
8
- import { hlm } from '@egose/shadcn-theme-ng/utils';
9
-
10
- const HLM_CHECKBOX_VALUE_ACCESSOR = {
11
- provide: NG_VALUE_ACCESSOR,
12
- useExisting: forwardRef(() => HlmCheckbox),
13
- multi: true,
14
- };
15
- class HlmCheckbox {
16
- userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
17
- _computedClass = computed(() => hlm('border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive shadow-xs peer size-4 shrink-0 cursor-default rounded-[4px] border outline-none transition-shadow focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50', this.userClass(), this._state().disabled() ? 'cursor-not-allowed opacity-50' : ''), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
18
- /** Used to set the id on the underlying brn element. */
19
- id = input(null, ...(ngDevMode ? [{ debugName: "id" }] : []));
20
- /** Used to set the aria-label attribute on the underlying brn element. */
21
- ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel", alias: 'aria-label' }] : [{ alias: 'aria-label' }]));
22
- /** Used to set the aria-labelledby attribute on the underlying brn element. */
23
- ariaLabelledby = input(null, ...(ngDevMode ? [{ debugName: "ariaLabelledby", alias: 'aria-labelledby' }] : [{ alias: 'aria-labelledby' }]));
24
- /** Used to set the aria-describedby attribute on the underlying brn element. */
25
- ariaDescribedby = input(null, ...(ngDevMode ? [{ debugName: "ariaDescribedby", alias: 'aria-describedby' }] : [{ alias: 'aria-describedby' }]));
26
- /** The checked state of the checkbox. */
27
- checked = model(false, ...(ngDevMode ? [{ debugName: "checked" }] : []));
28
- /** The name attribute of the checkbox. */
29
- name = input(null, ...(ngDevMode ? [{ debugName: "name" }] : []));
30
- /** Whether the checkbox is required. */
31
- required = input(false, ...(ngDevMode ? [{ debugName: "required", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
32
- /** Whether the checkbox is disabled. */
33
- disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
34
- _state = computed(() => ({
35
- disabled: signal(this.disabled()),
36
- }), ...(ngDevMode ? [{ debugName: "_state" }] : []));
37
- changed = output();
38
- _onChange;
39
- _onTouched;
40
- _handleChange() {
41
- if (this._state().disabled())
42
- return;
43
- const previousChecked = this.checked();
44
- this.checked.set(previousChecked === 'indeterminate' ? true : !previousChecked);
45
- this._onChange?.(!previousChecked);
46
- this.changed.emit(!previousChecked);
47
- }
48
- /** CONTROL VALUE ACCESSOR */
49
- writeValue(value) {
50
- this.checked.set(!!value);
51
- }
52
- registerOnChange(fn) {
53
- this._onChange = fn;
54
- }
55
- registerOnTouched(fn) {
56
- this._onTouched = fn;
57
- }
58
- setDisabledState(isDisabled) {
59
- this._state().disabled.set(isDisabled);
60
- }
61
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmCheckbox, isStandalone: true, selector: "hlm-checkbox", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", changed: "changed" }, host: { properties: { "attr.id": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "attr.data-disabled": "_state().disabled() ? \"\" : null" }, classAttribute: "contents peer" }, providers: [HLM_CHECKBOX_VALUE_ACCESSOR], ngImport: i0, template: `
63
- <brn-checkbox
64
- [id]="id()"
65
- [name]="name()"
66
- [class]="_computedClass()"
67
- [checked]="checked()"
68
- [disabled]="_state().disabled()"
69
- [required]="required()"
70
- [aria-label]="ariaLabel()"
71
- [aria-labelledby]="ariaLabelledby()"
72
- [aria-describedby]="ariaDescribedby()"
73
- (changed)="_handleChange()"
74
- (touched)="_onTouched?.()"
75
- >
76
- @if (checked()) {
77
- <span class="flex items-center justify-center text-current transition-none">
78
- <ng-icon hlm size="14px" name="lucideCheck" />
79
- </span>
80
- }
81
- </brn-checkbox>
82
- `, isInline: true, dependencies: [{ kind: "component", type: BrnCheckbox, selector: "brn-checkbox", inputs: ["checked", "id", "name", "class", "aria-label", "aria-labelledby", "aria-describedby", "required", "disabled"], outputs: ["checkedChange", "touched"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }], viewProviders: [provideIcons({ lucideCheck })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
- }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCheckbox, decorators: [{
85
- type: Component,
86
- args: [{
87
- selector: 'hlm-checkbox',
88
- imports: [BrnCheckbox, NgIcon, HlmIcon],
89
- template: `
90
- <brn-checkbox
91
- [id]="id()"
92
- [name]="name()"
93
- [class]="_computedClass()"
94
- [checked]="checked()"
95
- [disabled]="_state().disabled()"
96
- [required]="required()"
97
- [aria-label]="ariaLabel()"
98
- [aria-labelledby]="ariaLabelledby()"
99
- [aria-describedby]="ariaDescribedby()"
100
- (changed)="_handleChange()"
101
- (touched)="_onTouched?.()"
102
- >
103
- @if (checked()) {
104
- <span class="flex items-center justify-center text-current transition-none">
105
- <ng-icon hlm size="14px" name="lucideCheck" />
106
- </span>
107
- }
108
- </brn-checkbox>
109
- `,
110
- host: {
111
- class: 'contents peer',
112
- '[attr.id]': 'null',
113
- '[attr.aria-label]': 'null',
114
- '[attr.aria-labelledby]': 'null',
115
- '[attr.aria-describedby]': 'null',
116
- '[attr.data-disabled]': '_state().disabled() ? "" : null',
117
- },
118
- providers: [HLM_CHECKBOX_VALUE_ACCESSOR],
119
- viewProviders: [provideIcons({ lucideCheck })],
120
- changeDetection: ChangeDetectionStrategy.OnPush,
121
- }]
122
- }] });
123
-
124
- /*
125
- * Public API Surface of checkbox
126
- */
127
- const HlmCheckboxImports = [HlmCheckbox];
128
- class HlmCheckboxModule {
129
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
130
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HlmCheckboxModule, imports: [HlmCheckbox], exports: [HlmCheckbox] });
131
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCheckboxModule, imports: [HlmCheckboxImports] });
132
- }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmCheckboxModule, decorators: [{
134
- type: NgModule,
135
- args: [{
136
- imports: [...HlmCheckboxImports],
137
- exports: [...HlmCheckboxImports],
138
- }]
139
- }] });
140
-
141
- /**
142
- * Generated bundle index. Do not edit.
143
- */
144
-
145
- export { HLM_CHECKBOX_VALUE_ACCESSOR, HlmCheckbox, HlmCheckboxImports, HlmCheckboxModule };
146
- //# sourceMappingURL=checkbox.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox.mjs","sources":["../../../projects/checkbox/src/lib/checkbox.ts","../../../projects/checkbox/src/public-api.ts","../../../projects/checkbox/src/checkbox.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n forwardRef,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { BrnCheckbox } from '@spartan-ng/brain/checkbox';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\nexport const HLM_CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmCheckbox),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-checkbox',\n imports: [BrnCheckbox, NgIcon, HlmIcon],\n template: `\n <brn-checkbox\n [id]=\"id()\"\n [name]=\"name()\"\n [class]=\"_computedClass()\"\n [checked]=\"checked()\"\n [disabled]=\"_state().disabled()\"\n [required]=\"required()\"\n [aria-label]=\"ariaLabel()\"\n [aria-labelledby]=\"ariaLabelledby()\"\n [aria-describedby]=\"ariaDescribedby()\"\n (changed)=\"_handleChange()\"\n (touched)=\"_onTouched?.()\"\n >\n @if (checked()) {\n <span class=\"tw:flex tw:items-center tw:justify-center tw:text-current tw:transition-none\">\n <ng-icon hlm size=\"14px\" name=\"lucideCheck\" />\n </span>\n }\n </brn-checkbox>\n `,\n host: {\n class: 'contents peer',\n '[attr.id]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n '[attr.data-disabled]': '_state().disabled() ? \"\" : null',\n },\n providers: [HLM_CHECKBOX_VALUE_ACCESSOR],\n viewProviders: [provideIcons({ lucideCheck })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmCheckbox implements ControlValueAccessor {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:border-input tw:dark:bg-input/30 tw:data-[state=checked]:bg-primary tw:data-[state=checked]:text-primary-foreground tw:dark:data-[state=checked]:bg-primary tw:data-[state=checked]:border-primary tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:aria-invalid:ring-destructive/20 tw:dark:aria-invalid:ring-destructive/40 tw:aria-invalid:border-destructive tw:shadow-xs tw:peer tw:size-4 tw:shrink-0 tw:cursor-default tw:rounded-[4px] tw:border tw:outline-none tw:transition-shadow tw:focus-visible:ring-[3px] tw:disabled:cursor-not-allowed tw:disabled:opacity-50',\n this.userClass(),\n this._state().disabled() ? 'tw:cursor-not-allowed tw:opacity-50' : '',\n ),\n );\n\n /** Used to set the id on the underlying brn element. */\n public readonly id = input<string | null>(null);\n\n /** Used to set the aria-label attribute on the underlying brn element. */\n public readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n /** Used to set the aria-labelledby attribute on the underlying brn element. */\n public readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\n /** Used to set the aria-describedby attribute on the underlying brn element. */\n public readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n /** The checked state of the checkbox. */\n public readonly checked = model<CheckboxValue>(false);\n\n /** The name attribute of the checkbox. */\n public readonly name = input<string | null>(null);\n\n /** Whether the checkbox is required. */\n public readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether the checkbox is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly _state = computed(() => ({\n disabled: signal(this.disabled()),\n }));\n\n public readonly changed = output<boolean>();\n\n protected _onChange?: ChangeFn<CheckboxValue>;\n protected _onTouched?: TouchFn;\n\n protected _handleChange(): void {\n if (this._state().disabled()) return;\n\n const previousChecked = this.checked();\n this.checked.set(previousChecked === 'indeterminate' ? true : !previousChecked);\n this._onChange?.(!previousChecked);\n this.changed.emit(!previousChecked);\n }\n\n /** CONTROL VALUE ACCESSOR */\n writeValue(value: CheckboxValue): void {\n this.checked.set(!!value);\n }\n\n registerOnChange(fn: ChangeFn<CheckboxValue>): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._state().disabled.set(isDisabled);\n }\n}\n\ntype CheckboxValue = boolean | 'indeterminate';\n","/*\n * Public API Surface of checkbox\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmCheckbox } from './lib/checkbox';\n\nexport * from './lib/checkbox';\n\nexport const HlmCheckboxImports = [HlmCheckbox] as const;\n@NgModule({\n imports: [...HlmCheckboxImports],\n exports: [...HlmCheckboxImports],\n})\nexport class HlmCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { BooleanInput } from '@angular/cdk/coercion';
3
- import { ControlValueAccessor } from '@angular/forms';
4
- import { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
5
- import { ClassValue } from 'clsx';
6
-
7
- declare const HLM_CHECKBOX_VALUE_ACCESSOR: {
8
- provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
9
- useExisting: _angular_core.Type<any>;
10
- multi: boolean;
11
- };
12
- declare class HlmCheckbox implements ControlValueAccessor {
13
- readonly userClass: _angular_core.InputSignal<ClassValue>;
14
- protected readonly _computedClass: _angular_core.Signal<string>;
15
- /** Used to set the id on the underlying brn element. */
16
- readonly id: _angular_core.InputSignal<string | null>;
17
- /** Used to set the aria-label attribute on the underlying brn element. */
18
- readonly ariaLabel: _angular_core.InputSignal<string | null>;
19
- /** Used to set the aria-labelledby attribute on the underlying brn element. */
20
- readonly ariaLabelledby: _angular_core.InputSignal<string | null>;
21
- /** Used to set the aria-describedby attribute on the underlying brn element. */
22
- readonly ariaDescribedby: _angular_core.InputSignal<string | null>;
23
- /** The checked state of the checkbox. */
24
- readonly checked: _angular_core.ModelSignal<CheckboxValue>;
25
- /** The name attribute of the checkbox. */
26
- readonly name: _angular_core.InputSignal<string | null>;
27
- /** Whether the checkbox is required. */
28
- readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
29
- /** Whether the checkbox is disabled. */
30
- readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
31
- protected readonly _state: _angular_core.Signal<{
32
- disabled: _angular_core.WritableSignal<boolean>;
33
- }>;
34
- readonly changed: _angular_core.OutputEmitterRef<boolean>;
35
- protected _onChange?: ChangeFn<CheckboxValue>;
36
- protected _onTouched?: TouchFn;
37
- protected _handleChange(): void;
38
- /** CONTROL VALUE ACCESSOR */
39
- writeValue(value: CheckboxValue): void;
40
- registerOnChange(fn: ChangeFn<CheckboxValue>): void;
41
- registerOnTouched(fn: TouchFn): void;
42
- setDisabledState(isDisabled: boolean): void;
43
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmCheckbox, never>;
44
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmCheckbox, "hlm-checkbox", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
45
- }
46
- type CheckboxValue = boolean | 'indeterminate';
47
-
48
- declare const HlmCheckboxImports: readonly [typeof HlmCheckbox];
49
- declare class HlmCheckboxModule {
50
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmCheckboxModule, never>;
51
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HlmCheckboxModule, never, [typeof HlmCheckbox], [typeof HlmCheckbox]>;
52
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<HlmCheckboxModule>;
53
- }
54
-
55
- export { HLM_CHECKBOX_VALUE_ACCESSOR, HlmCheckbox, HlmCheckboxImports, HlmCheckboxModule };
@@ -1,64 +0,0 @@
1
- # ConfirmationDialog
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 confirmation-dialog
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/confirmation-dialog
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.
@@ -1,93 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, Component, Injectable } from '@angular/core';
3
- import { HlmButton } from '@egose/shadcn-theme-ng/button';
4
- import * as i1 from '@egose/shadcn-theme-ng/dialog';
5
- import { HlmDialogDescription, HlmDialogHeader, HlmDialogFooter, HlmDialogTitle } from '@egose/shadcn-theme-ng/dialog';
6
- import { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';
7
- import { HlmIcon } from '@egose/shadcn-theme-ng/icon';
8
- import { NgIcon, provideIcons } from '@ng-icons/core';
9
- import { lucideTriangleAlert } from '@ng-icons/lucide';
10
-
11
- class EgConfirmationDiaglog {
12
- _dialogRef = inject(BrnDialogRef);
13
- _dialogContext = injectBrnDialogContext();
14
- _title = this._dialogContext.title || 'Are you absolutely sure?';
15
- _description = this._dialogContext.description || 'This action cannot be undone.';
16
- close(confirm) {
17
- this._dialogRef.close(confirm);
18
- }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDiaglog, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: EgConfirmationDiaglog, isStandalone: true, selector: "ng-component", host: { classAttribute: "w-full p-1" }, providers: [provideIcons({ lucideTriangleAlert })], ngImport: i0, template: `
21
- <hlm-dialog-header>
22
- <div class="flex items-center gap-1">
23
- <ng-icon hlm hlmAlertIcon name="lucideTriangleAlert" size="base" />
24
- <h3 hlmDialogTitle class="text-xl">{{ _title }}</h3>
25
- </div>
26
- <p hlmDialogDescription class="text-base text-gray-700">{{ _description }}</p>
27
- </hlm-dialog-header>
28
-
29
- <hlm-dialog-footer class="mt-4">
30
- <button hlmButton variant="secondary" appearance="outline" (click)="close(false)">Cancel</button>
31
- <button hlmButton variant="danger" (click)="close(true)">Confirm</button>
32
- </hlm-dialog-footer>
33
- `, isInline: true, dependencies: [{ kind: "component", type: HlmButton, selector: "button[hlmButton], a[hlmButton]", inputs: ["variant", "size", "appearance", "loading", "icon", "iconPosition", "class", "spinnerUserClass", "disabled", "type"] }, { kind: "directive", type: HlmDialogDescription, selector: "[hlmDialogDescription]", inputs: ["class"] }, { kind: "component", type: HlmDialogHeader, selector: "hlm-dialog-header", inputs: ["class"] }, { kind: "component", type: HlmDialogFooter, selector: "hlm-dialog-footer", inputs: ["class"] }, { kind: "directive", type: HlmDialogTitle, selector: "[hlmDialogTitle]", inputs: ["class"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }] });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDiaglog, decorators: [{
36
- type: Component,
37
- args: [{
38
- imports: [HlmButton, HlmDialogDescription, HlmDialogHeader, HlmDialogFooter, HlmDialogTitle, NgIcon, HlmIcon],
39
- standalone: true,
40
- providers: [provideIcons({ lucideTriangleAlert })],
41
- template: `
42
- <hlm-dialog-header>
43
- <div class="flex items-center gap-1">
44
- <ng-icon hlm hlmAlertIcon name="lucideTriangleAlert" size="base" />
45
- <h3 hlmDialogTitle class="text-xl">{{ _title }}</h3>
46
- </div>
47
- <p hlmDialogDescription class="text-base text-gray-700">{{ _description }}</p>
48
- </hlm-dialog-header>
49
-
50
- <hlm-dialog-footer class="mt-4">
51
- <button hlmButton variant="secondary" appearance="outline" (click)="close(false)">Cancel</button>
52
- <button hlmButton variant="danger" (click)="close(true)">Confirm</button>
53
- </hlm-dialog-footer>
54
- `,
55
- host: {
56
- class: 'w-full p-1',
57
- },
58
- }]
59
- }] });
60
- class EgConfirmationDialogService {
61
- hlmDialogService;
62
- constructor(hlmDialogService) {
63
- this.hlmDialogService = hlmDialogService;
64
- }
65
- showConfirmationDialog({ title, description }) {
66
- return new Promise((resolve) => {
67
- const dialogRef = this.hlmDialogService.open(EgConfirmationDiaglog, {
68
- context: { title, description },
69
- contentClass: '',
70
- });
71
- dialogRef.closed$.subscribe((confirm) => {
72
- resolve(confirm ?? false);
73
- });
74
- });
75
- }
76
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDialogService, deps: [{ token: i1.HlmDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
77
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDialogService, providedIn: 'root' });
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgConfirmationDialogService, decorators: [{
80
- type: Injectable,
81
- args: [{ providedIn: 'root' }]
82
- }], ctorParameters: () => [{ type: i1.HlmDialogService }] });
83
-
84
- /*
85
- * Public API Surface of confirmation-dialog
86
- */
87
-
88
- /**
89
- * Generated bundle index. Do not edit.
90
- */
91
-
92
- export { EgConfirmationDiaglog, EgConfirmationDialogService };
93
- //# sourceMappingURL=confirmation-dialog.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirmation-dialog.mjs","sources":["../../../projects/confirmation-dialog/src/lib/confirmation-dialog.ts","../../../projects/confirmation-dialog/src/public-api.ts","../../../projects/confirmation-dialog/src/confirmation-dialog.ts"],"sourcesContent":["import { Component, inject, Injectable } from '@angular/core';\nimport { HlmButton } from '@egose/shadcn-theme-ng/button';\n\nimport {\n HlmDialog,\n HlmDialogDescription,\n HlmDialogContent,\n HlmDialogHeader,\n HlmDialogFooter,\n HlmDialogService,\n HlmDialogTitle,\n} from '@egose/shadcn-theme-ng/dialog';\nimport { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideTriangleAlert } from '@ng-icons/lucide';\n\n@Component({\n imports: [HlmButton, HlmDialogDescription, HlmDialogHeader, HlmDialogFooter, HlmDialogTitle, NgIcon, HlmIcon],\n standalone: true,\n providers: [provideIcons({ lucideTriangleAlert })],\n template: `\n <hlm-dialog-header>\n <div class=\"tw:flex tw:items-center tw:gap-1\">\n <ng-icon hlm hlmAlertIcon name=\"lucideTriangleAlert\" size=\"base\" />\n <h3 hlmDialogTitle class=\"tw:text-xl\">{{ _title }}</h3>\n </div>\n <p hlmDialogDescription class=\"tw:text-base tw:text-gray-700\">{{ _description }}</p>\n </hlm-dialog-header>\n\n <hlm-dialog-footer class=\"tw:mt-4\">\n <button hlmButton variant=\"secondary\" appearance=\"outline\" (click)=\"close(false)\">Cancel</button>\n <button hlmButton variant=\"danger\" (click)=\"close(true)\">Confirm</button>\n </hlm-dialog-footer>\n `,\n host: {\n class: 'tw:w-full tw:p-1',\n },\n})\nexport class EgConfirmationDiaglog {\n private readonly _dialogRef = inject<BrnDialogRef<boolean>>(BrnDialogRef);\n private readonly _dialogContext = injectBrnDialogContext<{ title: string; description: string }>();\n\n protected readonly _title = this._dialogContext.title || 'Are you absolutely sure?';\n protected readonly _description = this._dialogContext.description || 'This action cannot be undone.';\n\n public close(confirm: boolean) {\n this._dialogRef.close(confirm);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EgConfirmationDialogService {\n constructor(private hlmDialogService: HlmDialogService) {}\n\n showConfirmationDialog({ title, description }: { title: string; description: string }) {\n return new Promise<boolean>((resolve) => {\n const dialogRef = this.hlmDialogService.open(EgConfirmationDiaglog, {\n context: { title, description },\n contentClass: '',\n });\n\n dialogRef.closed$.subscribe((confirm) => {\n resolve(confirm ?? false);\n });\n });\n }\n}\n","/*\n * Public API Surface of confirmation-dialog\n */\n\nexport * from './lib/confirmation-dialog';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}