asktech-ui 0.0.0-stage → 0.0.1

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.
package/README.md CHANGED
@@ -1,3 +1,64 @@
1
- # Temporary Holding Version
1
+ # AsktechUi
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.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 asktech-ui
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/asktech-ui
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,372 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Output, Input, Component, forwardRef } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@angular/forms';
6
+ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
+
8
+ class ButtonComponent {
9
+ variant = 'primary';
10
+ size = 'md';
11
+ disabled = false;
12
+ type = 'button';
13
+ onClick = new EventEmitter();
14
+ handleClick(event) {
15
+ if (!this.disabled) {
16
+ this.onClick.emit(event);
17
+ }
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ButtonComponent, isStandalone: true, selector: "ask-button", inputs: { variant: "variant", size: "size", disabled: "disabled", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"['ask-btn', 'ask-btn--' + variant, 'ask-btn--' + size]\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".ask-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-md);border:1px solid transparent;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease}.ask-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #00aeef40;border-color:var(--ask-brand-primary)}.ask-btn:disabled{opacity:.6;cursor:not-allowed}.ask-btn--sm{padding:var(--ask-space-1) var(--ask-space-3);font-size:var(--ask-font-size-sm)}.ask-btn--md{padding:var(--ask-space-2) var(--ask-space-4);font-size:var(--ask-font-size-md)}.ask-btn--lg{padding:var(--ask-space-3) var(--ask-space-6);font-size:var(--ask-font-size-lg)}.ask-btn--primary{background-color:var(--ask-brand-primary);color:var(--ask-neutral-0)}.ask-btn--primary:hover:not(:disabled){background-color:var(--ask-brand-primary-hover)}.ask-btn--secondary{background-color:var(--ask-neutral-100);color:var(--ask-neutral-800)}.ask-btn--secondary:hover:not(:disabled){background-color:var(--ask-neutral-200)}.ask-btn--outline{background-color:transparent;border-color:var(--ask-neutral-300);color:var(--ask-neutral-800)}.ask-btn--outline:hover:not(:disabled){background-color:var(--ask-neutral-50);border-color:var(--ask-neutral-600)}.ask-btn--danger{background-color:var(--ask-error);color:var(--ask-neutral-0)}.ask-btn--danger:hover:not(:disabled){filter:brightness(.9)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ButtonComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'ask-button', standalone: true, imports: [CommonModule], template: "<button\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"['ask-btn', 'ask-btn--' + variant, 'ask-btn--' + size]\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".ask-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-md);border:1px solid transparent;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease}.ask-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #00aeef40;border-color:var(--ask-brand-primary)}.ask-btn:disabled{opacity:.6;cursor:not-allowed}.ask-btn--sm{padding:var(--ask-space-1) var(--ask-space-3);font-size:var(--ask-font-size-sm)}.ask-btn--md{padding:var(--ask-space-2) var(--ask-space-4);font-size:var(--ask-font-size-md)}.ask-btn--lg{padding:var(--ask-space-3) var(--ask-space-6);font-size:var(--ask-font-size-lg)}.ask-btn--primary{background-color:var(--ask-brand-primary);color:var(--ask-neutral-0)}.ask-btn--primary:hover:not(:disabled){background-color:var(--ask-brand-primary-hover)}.ask-btn--secondary{background-color:var(--ask-neutral-100);color:var(--ask-neutral-800)}.ask-btn--secondary:hover:not(:disabled){background-color:var(--ask-neutral-200)}.ask-btn--outline{background-color:transparent;border-color:var(--ask-neutral-300);color:var(--ask-neutral-800)}.ask-btn--outline:hover:not(:disabled){background-color:var(--ask-neutral-50);border-color:var(--ask-neutral-600)}.ask-btn--danger{background-color:var(--ask-error);color:var(--ask-neutral-0)}.ask-btn--danger:hover:not(:disabled){filter:brightness(.9)}\n"] }]
25
+ }], propDecorators: { variant: [{
26
+ type: Input
27
+ }], size: [{
28
+ type: Input
29
+ }], disabled: [{
30
+ type: Input
31
+ }], type: [{
32
+ type: Input
33
+ }], onClick: [{
34
+ type: Output
35
+ }] } });
36
+
37
+ class InputComponent {
38
+ label = '';
39
+ placeholder = '';
40
+ type = 'text';
41
+ disabled = false;
42
+ error = '';
43
+ helperText = '';
44
+ inputId = 'ask-input-' + Math.random().toString(36).substring(2, 9);
45
+ value = '';
46
+ onChange = () => { };
47
+ onTouched = () => { };
48
+ writeValue(value) {
49
+ this.value = value !== undefined ? value : '';
50
+ }
51
+ registerOnChange(fn) {
52
+ this.onChange = fn;
53
+ }
54
+ registerOnTouched(fn) {
55
+ this.onTouched = fn;
56
+ }
57
+ setDisabledState(isDisabled) {
58
+ this.disabled = isDisabled;
59
+ }
60
+ onInput(event) {
61
+ const val = event.target.value;
62
+ this.value = val;
63
+ this.onChange(val);
64
+ this.onTouched();
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: InputComponent, isStandalone: true, selector: "ask-input", inputs: { label: "label", placeholder: "placeholder", type: "type", disabled: "disabled", error: "error", helperText: "helperText", inputId: "inputId" }, providers: [
68
+ {
69
+ provide: NG_VALUE_ACCESSOR,
70
+ useExisting: forwardRef(() => InputComponent),
71
+ multi: true
72
+ }
73
+ ], ngImport: i0, template: "<div class=\"ask-input-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"inputId\" class=\"ask-input-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-input-container\">\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-input-field\"\r\n />\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-input-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-input-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-input-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-input-wrapper .ask-input-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-input-wrapper .ask-input-container{position:relative;display:flex;align-items:center}.ask-input-wrapper .ask-input-container .ask-input-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.ask-input-wrapper .ask-input-container .ask-input-field::placeholder{color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-input-wrapper .ask-input-container .ask-input-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-input-wrapper.has-error .ask-input-field{border-color:var(--ask-error)}.ask-input-wrapper.has-error .ask-input-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-input-wrapper.has-error .ask-input-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-input-wrapper .ask-input-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: InputComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'ask-input', standalone: true, imports: [CommonModule, FormsModule], providers: [
78
+ {
79
+ provide: NG_VALUE_ACCESSOR,
80
+ useExisting: forwardRef(() => InputComponent),
81
+ multi: true
82
+ }
83
+ ], template: "<div class=\"ask-input-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"inputId\" class=\"ask-input-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-input-container\">\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-input-field\"\r\n />\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-input-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-input-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-input-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-input-wrapper .ask-input-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-input-wrapper .ask-input-container{position:relative;display:flex;align-items:center}.ask-input-wrapper .ask-input-container .ask-input-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.ask-input-wrapper .ask-input-container .ask-input-field::placeholder{color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-input-wrapper .ask-input-container .ask-input-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-input-wrapper.has-error .ask-input-field{border-color:var(--ask-error)}.ask-input-wrapper.has-error .ask-input-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-input-wrapper.has-error .ask-input-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-input-wrapper .ask-input-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"] }]
84
+ }], propDecorators: { label: [{
85
+ type: Input
86
+ }], placeholder: [{
87
+ type: Input
88
+ }], type: [{
89
+ type: Input
90
+ }], disabled: [{
91
+ type: Input
92
+ }], error: [{
93
+ type: Input
94
+ }], helperText: [{
95
+ type: Input
96
+ }], inputId: [{
97
+ type: Input
98
+ }] } });
99
+
100
+ class CardComponent {
101
+ title = '';
102
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: CardComponent, isStandalone: true, selector: "ask-card", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"ask-card\">\r\n <div class=\"ask-card__header\" *ngIf=\"title\">\r\n <h3 class=\"ask-card__title\">{{ title }}</h3>\r\n </div>\r\n <div class=\"ask-card__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".ask-card{background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);box-shadow:var(--ask-shadow-sm);overflow:hidden;font-family:var(--ask-font-family)}.ask-card__header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50)}.ask-card__header .ask-card__title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-800)}.ask-card__body{padding:var(--ask-space-5)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CardComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'ask-card', standalone: true, imports: [CommonModule], template: "<div class=\"ask-card\">\r\n <div class=\"ask-card__header\" *ngIf=\"title\">\r\n <h3 class=\"ask-card__title\">{{ title }}</h3>\r\n </div>\r\n <div class=\"ask-card__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".ask-card{background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);box-shadow:var(--ask-shadow-sm);overflow:hidden;font-family:var(--ask-font-family)}.ask-card__header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50)}.ask-card__header .ask-card__title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-800)}.ask-card__body{padding:var(--ask-space-5)}\n"] }]
108
+ }], propDecorators: { title: [{
109
+ type: Input
110
+ }] } });
111
+
112
+ class SelectComponent {
113
+ label = '';
114
+ options = [];
115
+ placeholder = 'Sélectionner une option';
116
+ disabled = false;
117
+ error = '';
118
+ helperText = '';
119
+ selectId = 'ask-select-' + Math.random().toString(36).substring(2, 9);
120
+ value = '';
121
+ onChange = () => { };
122
+ onTouched = () => { };
123
+ writeValue(value) {
124
+ this.value = value !== undefined ? value : '';
125
+ }
126
+ registerOnChange(fn) {
127
+ this.onChange = fn;
128
+ }
129
+ registerOnTouched(fn) {
130
+ this.onTouched = fn;
131
+ }
132
+ setDisabledState(isDisabled) {
133
+ this.disabled = isDisabled;
134
+ }
135
+ onSelectionChange(event) {
136
+ const val = event.target.value;
137
+ this.value = val;
138
+ this.onChange(val);
139
+ this.onTouched();
140
+ }
141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
142
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: SelectComponent, isStandalone: true, selector: "ask-select", inputs: { label: "label", options: "options", placeholder: "placeholder", disabled: "disabled", error: "error", helperText: "helperText", selectId: "selectId" }, providers: [
143
+ {
144
+ provide: NG_VALUE_ACCESSOR,
145
+ useExisting: forwardRef(() => SelectComponent),
146
+ multi: true
147
+ }
148
+ ], ngImport: i0, template: "<div class=\"ask-select-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"selectId\" class=\"ask-select-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-select-container\">\r\n <select\r\n [id]=\"selectId\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (change)=\"onSelectionChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-select-field\">\r\n <option value=\"\" disabled selected>{{ placeholder }}</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-select-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-select-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-select-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-select-wrapper .ask-select-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-select-wrapper .ask-select-container{position:relative;display:flex;align-items:center}.ask-select-wrapper .ask-select-container .ask-select-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;appearance:none;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:2.5rem}.ask-select-wrapper .ask-select-container .ask-select-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-select-wrapper .ask-select-container .ask-select-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-select-wrapper .ask-select-container .ask-select-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-select-wrapper.has-error .ask-select-field{border-color:var(--ask-error)}.ask-select-wrapper.has-error .ask-select-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-select-wrapper.has-error .ask-select-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-select-wrapper .ask-select-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SelectComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'ask-select', standalone: true, imports: [CommonModule, FormsModule], providers: [
153
+ {
154
+ provide: NG_VALUE_ACCESSOR,
155
+ useExisting: forwardRef(() => SelectComponent),
156
+ multi: true
157
+ }
158
+ ], template: "<div class=\"ask-select-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"selectId\" class=\"ask-select-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-select-container\">\r\n <select\r\n [id]=\"selectId\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (change)=\"onSelectionChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-select-field\">\r\n <option value=\"\" disabled selected>{{ placeholder }}</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-select-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-select-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-select-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-select-wrapper .ask-select-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-select-wrapper .ask-select-container{position:relative;display:flex;align-items:center}.ask-select-wrapper .ask-select-container .ask-select-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;appearance:none;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:2.5rem}.ask-select-wrapper .ask-select-container .ask-select-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-select-wrapper .ask-select-container .ask-select-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-select-wrapper .ask-select-container .ask-select-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-select-wrapper.has-error .ask-select-field{border-color:var(--ask-error)}.ask-select-wrapper.has-error .ask-select-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-select-wrapper.has-error .ask-select-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-select-wrapper .ask-select-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"] }]
159
+ }], propDecorators: { label: [{
160
+ type: Input
161
+ }], options: [{
162
+ type: Input
163
+ }], placeholder: [{
164
+ type: Input
165
+ }], disabled: [{
166
+ type: Input
167
+ }], error: [{
168
+ type: Input
169
+ }], helperText: [{
170
+ type: Input
171
+ }], selectId: [{
172
+ type: Input
173
+ }] } });
174
+
175
+ class DataTableComponent {
176
+ columns = [];
177
+ data = [];
178
+ rowClassFn;
179
+ rowClick = new EventEmitter();
180
+ onRowClick(row) {
181
+ this.rowClick.emit(row);
182
+ }
183
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
184
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: DataTableComponent, isStandalone: true, selector: "ask-data-table", inputs: { columns: "columns", data: "data", rowClassFn: "rowClassFn" }, outputs: { rowClick: "rowClick" }, ngImport: i0, template: "<div class=\"ask-table-container\">\r\n <table class=\"ask-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [style.width]=\"col.width\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ col.header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of data\" (click)=\"onRowClick(row)\" [ngClass]=\"rowClassFn ? rowClassFn(row) : ''\">\r\n <td *ngFor=\"let col of columns\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\" class=\"ask-table-empty\">\r\n Aucune donn\u00E9e disponible\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n", styles: [".ask-table-container{width:100%;overflow-x:auto;border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);background-color:var(--ask-neutral-0);box-shadow:var(--ask-shadow-sm);font-family:var(--ask-font-family)}.ask-table-container .ask-table{width:100%;border-collapse:collapse;text-align:left}.ask-table-container .ask-table th,.ask-table-container .ask-table td{padding:var(--ask-space-3) var(--ask-space-4);font-size:var(--ask-font-size-sm)}.ask-table-container .ask-table th{background-color:var(--ask-neutral-50);color:var(--ask-neutral-700);font-weight:var(--ask-font-weight-semibold);border-bottom:1px solid var(--ask-neutral-200);white-space:nowrap}.ask-table-container .ask-table td{color:var(--ask-neutral-800);border-bottom:1px solid var(--ask-neutral-100)}.ask-table-container .ask-table tbody tr{transition:background-color .15s ease;cursor:pointer}.ask-table-container .ask-table tbody tr:hover{background-color:var(--ask-neutral-50)}.ask-table-container .ask-table tbody tr:last-child td{border-bottom:none}.ask-table-container .ask-table .ask-table-empty{text-align:center;color:var(--ask-neutral-500);padding:var(--ask-space-6)}.ask-table-container .ask-table .text-center{text-align:center}.ask-table-container .ask-table .text-right{text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
185
+ }
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: DataTableComponent, decorators: [{
187
+ type: Component,
188
+ args: [{ selector: 'ask-data-table', standalone: true, imports: [CommonModule], template: "<div class=\"ask-table-container\">\r\n <table class=\"ask-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [style.width]=\"col.width\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ col.header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of data\" (click)=\"onRowClick(row)\" [ngClass]=\"rowClassFn ? rowClassFn(row) : ''\">\r\n <td *ngFor=\"let col of columns\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\" class=\"ask-table-empty\">\r\n Aucune donn\u00E9e disponible\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n", styles: [".ask-table-container{width:100%;overflow-x:auto;border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);background-color:var(--ask-neutral-0);box-shadow:var(--ask-shadow-sm);font-family:var(--ask-font-family)}.ask-table-container .ask-table{width:100%;border-collapse:collapse;text-align:left}.ask-table-container .ask-table th,.ask-table-container .ask-table td{padding:var(--ask-space-3) var(--ask-space-4);font-size:var(--ask-font-size-sm)}.ask-table-container .ask-table th{background-color:var(--ask-neutral-50);color:var(--ask-neutral-700);font-weight:var(--ask-font-weight-semibold);border-bottom:1px solid var(--ask-neutral-200);white-space:nowrap}.ask-table-container .ask-table td{color:var(--ask-neutral-800);border-bottom:1px solid var(--ask-neutral-100)}.ask-table-container .ask-table tbody tr{transition:background-color .15s ease;cursor:pointer}.ask-table-container .ask-table tbody tr:hover{background-color:var(--ask-neutral-50)}.ask-table-container .ask-table tbody tr:last-child td{border-bottom:none}.ask-table-container .ask-table .ask-table-empty{text-align:center;color:var(--ask-neutral-500);padding:var(--ask-space-6)}.ask-table-container .ask-table .text-center{text-align:center}.ask-table-container .ask-table .text-right{text-align:right}\n"] }]
189
+ }], propDecorators: { columns: [{
190
+ type: Input
191
+ }], data: [{
192
+ type: Input
193
+ }], rowClassFn: [{
194
+ type: Input
195
+ }], rowClick: [{
196
+ type: Output
197
+ }] } });
198
+
199
+ class BadgeComponent {
200
+ variant = 'neutral';
201
+ size = 'md';
202
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: BadgeComponent, isStandalone: true, selector: "ask-badge", inputs: { variant: "variant", size: "size" }, ngImport: i0, template: "<span [ngClass]=\"['ask-badge', 'ask-badge--' + variant, 'ask-badge--' + size]\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [".ask-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-full);white-space:nowrap}.ask-badge--sm{padding:.125rem .5rem;font-size:var(--ask-font-size-xs)}.ask-badge--md{padding:.25rem .75rem;font-size:var(--ask-font-size-sm)}.ask-badge--neutral{background-color:var(--ask-neutral-100);color:var(--ask-neutral-700)}.ask-badge--success{background-color:var(--ask-success-soft);color:var(--ask-success)}.ask-badge--warning{background-color:var(--ask-warning-soft);color:var(--ask-warning)}.ask-badge--error{background-color:var(--ask-error-soft);color:var(--ask-error)}.ask-badge--info{background-color:var(--ask-brand-primary-soft);color:var(--ask-brand-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: BadgeComponent, decorators: [{
206
+ type: Component,
207
+ args: [{ selector: 'ask-badge', standalone: true, imports: [CommonModule], template: "<span [ngClass]=\"['ask-badge', 'ask-badge--' + variant, 'ask-badge--' + size]\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [".ask-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-full);white-space:nowrap}.ask-badge--sm{padding:.125rem .5rem;font-size:var(--ask-font-size-xs)}.ask-badge--md{padding:.25rem .75rem;font-size:var(--ask-font-size-sm)}.ask-badge--neutral{background-color:var(--ask-neutral-100);color:var(--ask-neutral-700)}.ask-badge--success{background-color:var(--ask-success-soft);color:var(--ask-success)}.ask-badge--warning{background-color:var(--ask-warning-soft);color:var(--ask-warning)}.ask-badge--error{background-color:var(--ask-error-soft);color:var(--ask-error)}.ask-badge--info{background-color:var(--ask-brand-primary-soft);color:var(--ask-brand-primary)}\n"] }]
208
+ }], propDecorators: { variant: [{
209
+ type: Input
210
+ }], size: [{
211
+ type: Input
212
+ }] } });
213
+
214
+ class ModalComponent {
215
+ isOpen = false;
216
+ title = '';
217
+ size = 'md';
218
+ showFooter = true;
219
+ onClose = new EventEmitter();
220
+ close() {
221
+ this.onClose.emit();
222
+ }
223
+ onBackdropClick(event) {
224
+ if (event.target.classList.contains('ask-modal-backdrop')) {
225
+ this.close();
226
+ }
227
+ }
228
+ onKeydown(event) {
229
+ if (event.key === 'Escape') {
230
+ this.close();
231
+ }
232
+ }
233
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
234
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ModalComponent, isStandalone: true, selector: "ask-modal", inputs: { isOpen: "isOpen", title: "title", size: "size", showFooter: "showFooter" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"ask-modal-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\" (keydown)=\"onKeydown($event)\" tabindex=\"0\" role=\"dialog\" aria-modal=\"true\">\r\n <div [ngClass]=\"['ask-modal-container', 'ask-modal--' + size]\">\r\n <div class=\"ask-modal-header\">\r\n <h3 class=\"ask-modal-title\">{{ title }}</h3>\r\n <button type=\"button\" class=\"ask-modal-close\" (click)=\"close()\" aria-label=\"Fermer\">&times;</button>\r\n </div>\r\n\r\n <div class=\"ask-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"ask-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ask-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;font-family:var(--ask-font-family)}.ask-modal-backdrop .ask-modal-container{background-color:var(--ask-neutral-0);border-radius:var(--ask-radius-xl);box-shadow:var(--ask-shadow-lg);width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modalScaleIn .2s ease-in-out}.ask-modal-backdrop .ask-modal-container--sm{max-width:400px}.ask-modal-backdrop .ask-modal-container--md{max-width:550px}.ask-modal-backdrop .ask-modal-container--lg{max-width:800px}.ask-modal-backdrop .ask-modal-container .ask-modal-header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);display:flex;align-items:center;justify-content:space-between}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--ask-neutral-500);transition:color .2s ease}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close:hover{color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-body{padding:var(--ask-space-5);overflow-y:auto;flex-grow:1}.ask-modal-backdrop .ask-modal-container .ask-modal-footer{padding:var(--ask-space-4) var(--ask-space-5);border-top:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50);display:flex;justify-content:flex-end;gap:var(--ask-space-2)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
235
+ }
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ModalComponent, decorators: [{
237
+ type: Component,
238
+ args: [{ selector: 'ask-modal', standalone: true, imports: [CommonModule], template: "<div class=\"ask-modal-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\" (keydown)=\"onKeydown($event)\" tabindex=\"0\" role=\"dialog\" aria-modal=\"true\">\r\n <div [ngClass]=\"['ask-modal-container', 'ask-modal--' + size]\">\r\n <div class=\"ask-modal-header\">\r\n <h3 class=\"ask-modal-title\">{{ title }}</h3>\r\n <button type=\"button\" class=\"ask-modal-close\" (click)=\"close()\" aria-label=\"Fermer\">&times;</button>\r\n </div>\r\n\r\n <div class=\"ask-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"ask-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ask-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;font-family:var(--ask-font-family)}.ask-modal-backdrop .ask-modal-container{background-color:var(--ask-neutral-0);border-radius:var(--ask-radius-xl);box-shadow:var(--ask-shadow-lg);width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modalScaleIn .2s ease-in-out}.ask-modal-backdrop .ask-modal-container--sm{max-width:400px}.ask-modal-backdrop .ask-modal-container--md{max-width:550px}.ask-modal-backdrop .ask-modal-container--lg{max-width:800px}.ask-modal-backdrop .ask-modal-container .ask-modal-header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);display:flex;align-items:center;justify-content:space-between}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--ask-neutral-500);transition:color .2s ease}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close:hover{color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-body{padding:var(--ask-space-5);overflow-y:auto;flex-grow:1}.ask-modal-backdrop .ask-modal-container .ask-modal-footer{padding:var(--ask-space-4) var(--ask-space-5);border-top:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50);display:flex;justify-content:flex-end;gap:var(--ask-space-2)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n"] }]
239
+ }], propDecorators: { isOpen: [{
240
+ type: Input
241
+ }], title: [{
242
+ type: Input
243
+ }], size: [{
244
+ type: Input
245
+ }], showFooter: [{
246
+ type: Input
247
+ }], onClose: [{
248
+ type: Output
249
+ }] } });
250
+
251
+ class CheckboxComponent {
252
+ label = '';
253
+ disabled = false;
254
+ checkboxId = 'ask-checkbox-' + Math.random().toString(36).substring(2, 9);
255
+ checked = false;
256
+ onChange = () => { };
257
+ onTouched = () => { };
258
+ writeValue(value) {
259
+ this.checked = !!value;
260
+ }
261
+ registerOnChange(fn) {
262
+ this.onChange = fn;
263
+ }
264
+ registerOnTouched(fn) {
265
+ this.onTouched = fn;
266
+ }
267
+ setDisabledState(isDisabled) {
268
+ this.disabled = isDisabled;
269
+ }
270
+ onModelChange(event) {
271
+ const isChecked = event.target.checked;
272
+ this.checked = isChecked;
273
+ this.onChange(isChecked);
274
+ this.onTouched();
275
+ }
276
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
277
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: CheckboxComponent, isStandalone: true, selector: "ask-checkbox", inputs: { label: "label", disabled: "disabled", checkboxId: "checkboxId" }, providers: [
278
+ {
279
+ provide: NG_VALUE_ACCESSOR,
280
+ useExisting: forwardRef(() => CheckboxComponent),
281
+ multi: true
282
+ }
283
+ ], ngImport: i0, template: "<label [attr.for]=\"checkboxId\" class=\"ask-checkbox-wrapper\" [class.is-disabled]=\"disabled\">\r\n <input\r\n type=\"checkbox\"\r\n [id]=\"checkboxId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onModelChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-checkbox-input\"\r\n />\r\n <span class=\"ask-checkbox-custom\"></span>\r\n <span *ngIf=\"label\" class=\"ask-checkbox-label\">{{ label }}</span>\r\n</label>\r\n", styles: [".ask-checkbox-wrapper{display:inline-flex;align-items:center;gap:var(--ask-space-2);cursor:pointer;font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);color:var(--ask-neutral-800);-webkit-user-select:none;user-select:none}.ask-checkbox-wrapper .ask-checkbox-input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.ask-checkbox-wrapper .ask-checkbox-input:checked~.ask-checkbox-custom{background-color:var(--ask-brand-primary);border-color:var(--ask-brand-primary);background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:center;background-size:.75rem}.ask-checkbox-wrapper .ask-checkbox-input:focus-visible~.ask-checkbox-custom{box-shadow:0 0 0 3px #00aeef40}.ask-checkbox-wrapper .ask-checkbox-custom{width:1.125rem;height:1.125rem;background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-sm);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;display:inline-block}.ask-checkbox-wrapper.is-disabled{opacity:.6;cursor:not-allowed}.ask-checkbox-wrapper.is-disabled .ask-checkbox-custom{background-color:var(--ask-neutral-100)}.ask-checkbox-wrapper:hover:not(.is-disabled) .ask-checkbox-custom{border-color:var(--ask-brand-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
284
+ }
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CheckboxComponent, decorators: [{
286
+ type: Component,
287
+ args: [{ selector: 'ask-checkbox', standalone: true, imports: [CommonModule, FormsModule], providers: [
288
+ {
289
+ provide: NG_VALUE_ACCESSOR,
290
+ useExisting: forwardRef(() => CheckboxComponent),
291
+ multi: true
292
+ }
293
+ ], template: "<label [attr.for]=\"checkboxId\" class=\"ask-checkbox-wrapper\" [class.is-disabled]=\"disabled\">\r\n <input\r\n type=\"checkbox\"\r\n [id]=\"checkboxId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onModelChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-checkbox-input\"\r\n />\r\n <span class=\"ask-checkbox-custom\"></span>\r\n <span *ngIf=\"label\" class=\"ask-checkbox-label\">{{ label }}</span>\r\n</label>\r\n", styles: [".ask-checkbox-wrapper{display:inline-flex;align-items:center;gap:var(--ask-space-2);cursor:pointer;font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);color:var(--ask-neutral-800);-webkit-user-select:none;user-select:none}.ask-checkbox-wrapper .ask-checkbox-input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.ask-checkbox-wrapper .ask-checkbox-input:checked~.ask-checkbox-custom{background-color:var(--ask-brand-primary);border-color:var(--ask-brand-primary);background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:center;background-size:.75rem}.ask-checkbox-wrapper .ask-checkbox-input:focus-visible~.ask-checkbox-custom{box-shadow:0 0 0 3px #00aeef40}.ask-checkbox-wrapper .ask-checkbox-custom{width:1.125rem;height:1.125rem;background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-sm);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;display:inline-block}.ask-checkbox-wrapper.is-disabled{opacity:.6;cursor:not-allowed}.ask-checkbox-wrapper.is-disabled .ask-checkbox-custom{background-color:var(--ask-neutral-100)}.ask-checkbox-wrapper:hover:not(.is-disabled) .ask-checkbox-custom{border-color:var(--ask-brand-primary)}\n"] }]
294
+ }], propDecorators: { label: [{
295
+ type: Input
296
+ }], disabled: [{
297
+ type: Input
298
+ }], checkboxId: [{
299
+ type: Input
300
+ }] } });
301
+
302
+ class TooltipComponent {
303
+ text = '';
304
+ position = 'top';
305
+ isVisible = false;
306
+ show() {
307
+ this.isVisible = true;
308
+ }
309
+ hide() {
310
+ this.isVisible = false;
311
+ }
312
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
313
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: TooltipComponent, isStandalone: true, selector: "ask-tooltip", inputs: { text: "text", position: "position" }, ngImport: i0, template: "<div class=\"ask-tooltip-wrapper\" (mouseenter)=\"show()\" (mouseleave)=\"hide()\" (focusin)=\"show()\" (focusout)=\"hide()\">\r\n <ng-content></ng-content>\r\n <div *ngIf=\"isVisible && text\" [ngClass]=\"['ask-tooltip-bubble', 'ask-tooltip--' + position]\" role=\"tooltip\">\r\n {{ text }}\r\n </div>\r\n</div>\r\n", styles: [".ask-tooltip-wrapper{position:relative;display:inline-flex}.ask-tooltip-wrapper .ask-tooltip-bubble{position:absolute;z-index:1070;padding:var(--ask-space-1) var(--ask-space-2);font-size:var(--ask-font-size-xs);font-family:var(--ask-font-family);color:var(--ask-neutral-0);background-color:var(--ask-neutral-900);border-radius:var(--ask-radius-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--ask-shadow-sm);animation:fadeIn .15s ease-in-out}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--top{bottom:100%;left:50%;transform:translate(-50%) translateY(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--bottom{top:100%;left:50%;transform:translate(-50%) translateY(6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--left{right:100%;top:50%;transform:translateY(-50%) translate(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--right{left:100%;top:50%;transform:translateY(-50%) translate(6px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
314
+ }
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TooltipComponent, decorators: [{
316
+ type: Component,
317
+ args: [{ selector: 'ask-tooltip', standalone: true, imports: [CommonModule], template: "<div class=\"ask-tooltip-wrapper\" (mouseenter)=\"show()\" (mouseleave)=\"hide()\" (focusin)=\"show()\" (focusout)=\"hide()\">\r\n <ng-content></ng-content>\r\n <div *ngIf=\"isVisible && text\" [ngClass]=\"['ask-tooltip-bubble', 'ask-tooltip--' + position]\" role=\"tooltip\">\r\n {{ text }}\r\n </div>\r\n</div>\r\n", styles: [".ask-tooltip-wrapper{position:relative;display:inline-flex}.ask-tooltip-wrapper .ask-tooltip-bubble{position:absolute;z-index:1070;padding:var(--ask-space-1) var(--ask-space-2);font-size:var(--ask-font-size-xs);font-family:var(--ask-font-family);color:var(--ask-neutral-0);background-color:var(--ask-neutral-900);border-radius:var(--ask-radius-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--ask-shadow-sm);animation:fadeIn .15s ease-in-out}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--top{bottom:100%;left:50%;transform:translate(-50%) translateY(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--bottom{top:100%;left:50%;transform:translate(-50%) translateY(6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--left{right:100%;top:50%;transform:translateY(-50%) translate(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--right{left:100%;top:50%;transform:translateY(-50%) translate(6px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
318
+ }], propDecorators: { text: [{
319
+ type: Input
320
+ }], position: [{
321
+ type: Input
322
+ }] } });
323
+
324
+ class LabelComponent {
325
+ forId = '';
326
+ required = false;
327
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
328
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: LabelComponent, isStandalone: true, selector: "ask-label", inputs: { forId: "forId", required: "required" }, ngImport: i0, template: "<label [attr.for]=\"forId\" class=\"ask-label\">\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required\" class=\"ask-label__required\" aria-hidden=\"true\">*</span>\r\n</label>\r\n", styles: [".ask-label{display:inline-flex;align-items:center;gap:var(--ask-space-1);font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-label__required{color:var(--ask-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
329
+ }
330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LabelComponent, decorators: [{
331
+ type: Component,
332
+ args: [{ selector: 'ask-label', standalone: true, imports: [CommonModule], template: "<label [attr.for]=\"forId\" class=\"ask-label\">\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required\" class=\"ask-label__required\" aria-hidden=\"true\">*</span>\r\n</label>\r\n", styles: [".ask-label{display:inline-flex;align-items:center;gap:var(--ask-space-1);font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-label__required{color:var(--ask-error)}\n"] }]
333
+ }], propDecorators: { forId: [{
334
+ type: Input
335
+ }], required: [{
336
+ type: Input
337
+ }] } });
338
+
339
+ class TitleComponent {
340
+ level = 2;
341
+ size = 'lg';
342
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
343
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: TitleComponent, isStandalone: true, selector: "ask-title", inputs: { level: "level", size: "size" }, ngImport: i0, template: "<h1 *ngIf=\"level === 1\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h1>\r\n<h2 *ngIf=\"level === 2\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h2>\r\n<h3 *ngIf=\"level === 3\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h3>\r\n<h4 *ngIf=\"level === 4\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h4>\r\n<h5 *ngIf=\"level === 5\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h5>\r\n<h6 *ngIf=\"level === 6\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h6>\r\n", styles: [".ask-title{margin:0;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-title--xs{font-size:var(--ask-font-size-xs)}.ask-title--sm{font-size:var(--ask-font-size-sm)}.ask-title--md{font-size:var(--ask-font-size-md)}.ask-title--lg{font-size:var(--ask-font-size-lg)}.ask-title--xl{font-size:var(--ask-font-size-xl)}.ask-title--2xl{font-size:var(--ask-font-size-2xl)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
344
+ }
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TitleComponent, decorators: [{
346
+ type: Component,
347
+ args: [{ selector: 'ask-title', standalone: true, imports: [CommonModule], template: "<h1 *ngIf=\"level === 1\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h1>\r\n<h2 *ngIf=\"level === 2\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h2>\r\n<h3 *ngIf=\"level === 3\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h3>\r\n<h4 *ngIf=\"level === 4\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h4>\r\n<h5 *ngIf=\"level === 5\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h5>\r\n<h6 *ngIf=\"level === 6\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h6>\r\n", styles: [".ask-title{margin:0;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-title--xs{font-size:var(--ask-font-size-xs)}.ask-title--sm{font-size:var(--ask-font-size-sm)}.ask-title--md{font-size:var(--ask-font-size-md)}.ask-title--lg{font-size:var(--ask-font-size-lg)}.ask-title--xl{font-size:var(--ask-font-size-xl)}.ask-title--2xl{font-size:var(--ask-font-size-2xl)}\n"] }]
348
+ }], propDecorators: { level: [{
349
+ type: Input
350
+ }], size: [{
351
+ type: Input
352
+ }] } });
353
+
354
+ class AsktechUi {
355
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AsktechUi, deps: [], target: i0.ɵɵFactoryTarget.Component });
356
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: AsktechUi, isStandalone: true, selector: "lib-asktech-ui", ngImport: i0, template: ` <p>asktech-ui works!</p> `, isInline: true, styles: [""] });
357
+ }
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AsktechUi, decorators: [{
359
+ type: Component,
360
+ args: [{ selector: 'lib-asktech-ui', imports: [], template: ` <p>asktech-ui works!</p> ` }]
361
+ }] });
362
+
363
+ /*
364
+ * Public API Surface of asktech-ui
365
+ */
366
+
367
+ /**
368
+ * Generated bundle index. Do not edit.
369
+ */
370
+
371
+ export { AsktechUi, BadgeComponent, ButtonComponent, CardComponent, CheckboxComponent, DataTableComponent, InputComponent, LabelComponent, ModalComponent, SelectComponent, TitleComponent, TooltipComponent };
372
+ //# sourceMappingURL=asktech-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asktech-ui.mjs","sources":["../../../projects/asktech-ui/src/lib/button/button.component.ts","../../../projects/asktech-ui/src/lib/button/button.component.html","../../../projects/asktech-ui/src/lib/input/input.component.ts","../../../projects/asktech-ui/src/lib/input/input.component.html","../../../projects/asktech-ui/src/lib/card/card.component.ts","../../../projects/asktech-ui/src/lib/card/card.component.html","../../../projects/asktech-ui/src/lib/select/select.component.ts","../../../projects/asktech-ui/src/lib/select/select.component.html","../../../projects/asktech-ui/src/lib/table/data-table.component.ts","../../../projects/asktech-ui/src/lib/table/data-table.component.html","../../../projects/asktech-ui/src/lib/badge/badge.component.ts","../../../projects/asktech-ui/src/lib/badge/badge.component.html","../../../projects/asktech-ui/src/lib/modal/modal.component.ts","../../../projects/asktech-ui/src/lib/modal/modal.component.html","../../../projects/asktech-ui/src/lib/checkbox/checkbox.component.ts","../../../projects/asktech-ui/src/lib/checkbox/checkbox.component.html","../../../projects/asktech-ui/src/lib/tooltip/tooltip.component.ts","../../../projects/asktech-ui/src/lib/tooltip/tooltip.component.html","../../../projects/asktech-ui/src/lib/label/label.component.ts","../../../projects/asktech-ui/src/lib/label/label.component.html","../../../projects/asktech-ui/src/lib/title/title.component.ts","../../../projects/asktech-ui/src/lib/title/title.component.html","../../../projects/asktech-ui/src/lib/asktech-ui.ts","../../../projects/asktech-ui/src/public-api.ts","../../../projects/asktech-ui/src/asktech-ui.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-button',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent {\r\n @Input() variant: 'primary' | 'secondary' | 'outline' | 'danger' = 'primary';\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n @Input() disabled: boolean = false;\r\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\r\n\r\n @Output() onClick = new EventEmitter<MouseEvent>();\r\n\r\n handleClick(event: MouseEvent): void {\r\n if (!this.disabled) {\r\n this.onClick.emit(event);\r\n }\r\n }\r\n}\r\n","<button\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"['ask-btn', 'ask-btn--' + variant, 'ask-btn--' + size]\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content></ng-content>\r\n</button>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ask-input',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InputComponent implements ControlValueAccessor {\r\n @Input() label: string = '';\r\n @Input() placeholder: string = '';\r\n @Input() type: string = 'text';\r\n @Input() disabled: boolean = false;\r\n @Input() error: string = '';\r\n @Input() helperText: string = '';\r\n @Input() inputId: string = 'ask-input-' + Math.random().toString(36).substring(2, 9);\r\n\r\n value: any = '';\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value !== undefined ? value : '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onInput(event: Event): void {\r\n const val = (event.target as HTMLInputElement).value;\r\n this.value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"ask-input-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"inputId\" class=\"ask-input-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-input-container\">\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-input-field\"\r\n />\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-input-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-input-helper\">{{ helperText }}</span>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-card',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class CardComponent {\r\n @Input() title: string = '';\r\n}\r\n","<div class=\"ask-card\">\r\n <div class=\"ask-card__header\" *ngIf=\"title\">\r\n <h3 class=\"ask-card__title\">{{ title }}</h3>\r\n </div>\r\n <div class=\"ask-card__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\nexport interface SelectOption {\r\n label: string;\r\n value: any;\r\n disabled?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ask-select',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent implements ControlValueAccessor {\r\n @Input() label: string = '';\r\n @Input() options: SelectOption[] = [];\r\n @Input() placeholder: string = 'Sélectionner une option';\r\n @Input() disabled: boolean = false;\r\n @Input() error: string = '';\r\n @Input() helperText: string = '';\r\n @Input() selectId: string = 'ask-select-' + Math.random().toString(36).substring(2, 9);\r\n\r\n value: any = '';\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value !== undefined ? value : '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onSelectionChange(event: Event): void {\r\n const val = (event.target as HTMLSelectElement).value;\r\n this.value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"ask-select-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"selectId\" class=\"ask-select-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-select-container\">\r\n <select\r\n [id]=\"selectId\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (change)=\"onSelectionChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-select-field\">\r\n <option value=\"\" disabled selected>{{ placeholder }}</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-select-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-select-helper\">{{ helperText }}</span>\r\n</div>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport interface TableColumn {\r\n key: string;\r\n header: string;\r\n width?: string;\r\n align?: 'left' | 'center' | 'right';\r\n}\r\n\r\n@Component({\r\n selector: 'ask-data-table',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './data-table.component.html',\r\n styleUrls: ['./data-table.component.scss']\r\n})\r\nexport class DataTableComponent {\r\n @Input() columns: TableColumn[] = [];\r\n @Input() data: any[] = [];\r\n @Input() rowClassFn?: (row: any) => string;\r\n\r\n @Output() rowClick = new EventEmitter<any>();\r\n\r\n onRowClick(row: any): void {\r\n this.rowClick.emit(row);\r\n }\r\n}\r\n","<div class=\"ask-table-container\">\r\n <table class=\"ask-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [style.width]=\"col.width\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ col.header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of data\" (click)=\"onRowClick(row)\" [ngClass]=\"rowClassFn ? rowClassFn(row) : ''\">\r\n <td *ngFor=\"let col of columns\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\" class=\"ask-table-empty\">\r\n Aucune donnée disponible\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-badge',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss']\r\n})\r\nexport class BadgeComponent {\r\n @Input() variant: 'success' | 'warning' | 'error' | 'info' | 'neutral' = 'neutral';\r\n @Input() size: 'sm' | 'md' = 'md';\r\n}\r\n","<span [ngClass]=\"['ask-badge', 'ask-badge--' + variant, 'ask-badge--' + size]\">\r\n <ng-content></ng-content>\r\n</span>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-modal',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss']\r\n})\r\nexport class ModalComponent {\r\n @Input() isOpen: boolean = false;\r\n @Input() title: string = '';\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n @Input() showFooter: boolean = true;\r\n\r\n @Output() onClose = new EventEmitter<void>();\r\n\r\n close(): void {\r\n this.onClose.emit();\r\n }\r\n\r\n onBackdropClick(event: MouseEvent): void {\r\n if ((event.target as HTMLElement).classList.contains('ask-modal-backdrop')) {\r\n this.close();\r\n }\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","<div class=\"ask-modal-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\" (keydown)=\"onKeydown($event)\" tabindex=\"0\" role=\"dialog\" aria-modal=\"true\">\r\n <div [ngClass]=\"['ask-modal-container', 'ask-modal--' + size]\">\r\n <div class=\"ask-modal-header\">\r\n <h3 class=\"ask-modal-title\">{{ title }}</h3>\r\n <button type=\"button\" class=\"ask-modal-close\" (click)=\"close()\" aria-label=\"Fermer\">&times;</button>\r\n </div>\r\n\r\n <div class=\"ask-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"ask-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ask-checkbox',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CheckboxComponent implements ControlValueAccessor {\r\n @Input() label: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() checkboxId: string = 'ask-checkbox-' + Math.random().toString(36).substring(2, 9);\r\n\r\n checked: boolean = false;\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(value: boolean): void {\r\n this.checked = !!value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onModelChange(event: any): void {\r\n const isChecked = event.target.checked;\r\n this.checked = isChecked;\r\n this.onChange(isChecked);\r\n this.onTouched();\r\n }\r\n}\r\n","<label [attr.for]=\"checkboxId\" class=\"ask-checkbox-wrapper\" [class.is-disabled]=\"disabled\">\r\n <input\r\n type=\"checkbox\"\r\n [id]=\"checkboxId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onModelChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-checkbox-input\"\r\n />\r\n <span class=\"ask-checkbox-custom\"></span>\r\n <span *ngIf=\"label\" class=\"ask-checkbox-label\">{{ label }}</span>\r\n</label>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-tooltip',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.scss']\r\n})\r\nexport class TooltipComponent {\r\n @Input() text: string = '';\r\n @Input() position: 'top' | 'bottom' | 'left' | 'right' = 'top';\r\n\r\n isVisible: boolean = false;\r\n\r\n show(): void {\r\n this.isVisible = true;\r\n }\r\n\r\n hide(): void {\r\n this.isVisible = false;\r\n }\r\n}\r\n","<div class=\"ask-tooltip-wrapper\" (mouseenter)=\"show()\" (mouseleave)=\"hide()\" (focusin)=\"show()\" (focusout)=\"hide()\">\r\n <ng-content></ng-content>\r\n <div *ngIf=\"isVisible && text\" [ngClass]=\"['ask-tooltip-bubble', 'ask-tooltip--' + position]\" role=\"tooltip\">\r\n {{ text }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-label',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.scss']\r\n})\r\nexport class LabelComponent {\r\n @Input() forId: string = '';\r\n @Input() required: boolean = false;\r\n}\r\n","<label [attr.for]=\"forId\" class=\"ask-label\">\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required\" class=\"ask-label__required\" aria-hidden=\"true\">*</span>\r\n</label>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-title',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './title.component.html',\r\n styleUrls: ['./title.component.scss']\r\n})\r\nexport class TitleComponent {\r\n @Input() level: 1 | 2 | 3 | 4 | 5 | 6 = 2;\r\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'lg';\r\n}\r\n","<h1 *ngIf=\"level === 1\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h1>\r\n<h2 *ngIf=\"level === 2\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h2>\r\n<h3 *ngIf=\"level === 3\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h3>\r\n<h4 *ngIf=\"level === 4\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h4>\r\n<h5 *ngIf=\"level === 5\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h5>\r\n<h6 *ngIf=\"level === 6\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h6>\r\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-asktech-ui',\n imports: [],\n template: ` <p>asktech-ui works!</p> `,\n styles: ``,\n})\nexport class AsktechUi {}\n","/*\n * Public API Surface of asktech-ui\n */\nexport * from './lib/button/button.component';\nexport * from './lib/input/input.component';\nexport * from './lib/card/card.component';\nexport * from './lib/select/select.component';\nexport * from './lib/table/data-table.component';\nexport * from './lib/badge/badge.component';\nexport * from './lib/modal/modal.component';\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/tooltip/tooltip.component';\nexport * from './lib/label/label.component';\nexport * from './lib/title/title.component';\nexport * from './lib/asktech-ui';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,24 @@
1
1
  {
2
2
  "name": "asktech-ui",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^21.2.0",
6
+ "@angular/core": "^21.2.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/asktech-ui.mjs",
13
+ "typings": "types/asktech-ui.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./types/asktech-ui.d.ts",
20
+ "default": "./fesm2022/asktech-ui.mjs"
21
+ }
22
+ },
23
+ "type": "module"
6
24
  }
@@ -0,0 +1,149 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+
5
+ declare class ButtonComponent {
6
+ variant: 'primary' | 'secondary' | 'outline' | 'danger';
7
+ size: 'sm' | 'md' | 'lg';
8
+ disabled: boolean;
9
+ type: 'button' | 'submit' | 'reset';
10
+ onClick: EventEmitter<MouseEvent>;
11
+ handleClick(event: MouseEvent): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ask-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
14
+ }
15
+
16
+ declare class InputComponent implements ControlValueAccessor {
17
+ label: string;
18
+ placeholder: string;
19
+ type: string;
20
+ disabled: boolean;
21
+ error: string;
22
+ helperText: string;
23
+ inputId: string;
24
+ value: any;
25
+ onChange: any;
26
+ onTouched: any;
27
+ writeValue(value: any): void;
28
+ registerOnChange(fn: any): void;
29
+ registerOnTouched(fn: any): void;
30
+ setDisabledState?(isDisabled: boolean): void;
31
+ onInput(event: Event): void;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ask-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "error": { "alias": "error"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; }, {}, never, never, true, never>;
34
+ }
35
+
36
+ declare class CardComponent {
37
+ title: string;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ask-card", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], true, never>;
40
+ }
41
+
42
+ interface SelectOption {
43
+ label: string;
44
+ value: any;
45
+ disabled?: boolean;
46
+ }
47
+ declare class SelectComponent implements ControlValueAccessor {
48
+ label: string;
49
+ options: SelectOption[];
50
+ placeholder: string;
51
+ disabled: boolean;
52
+ error: string;
53
+ helperText: string;
54
+ selectId: string;
55
+ value: any;
56
+ onChange: any;
57
+ onTouched: any;
58
+ writeValue(value: any): void;
59
+ registerOnChange(fn: any): void;
60
+ registerOnTouched(fn: any): void;
61
+ setDisabledState?(isDisabled: boolean): void;
62
+ onSelectionChange(event: Event): void;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "ask-select", never, { "label": { "alias": "label"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "error": { "alias": "error"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "selectId": { "alias": "selectId"; "required": false; }; }, {}, never, never, true, never>;
65
+ }
66
+
67
+ interface TableColumn {
68
+ key: string;
69
+ header: string;
70
+ width?: string;
71
+ align?: 'left' | 'center' | 'right';
72
+ }
73
+ declare class DataTableComponent {
74
+ columns: TableColumn[];
75
+ data: any[];
76
+ rowClassFn?: (row: any) => string;
77
+ rowClick: EventEmitter<any>;
78
+ onRowClick(row: any): void;
79
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent, never>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "ask-data-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "rowClassFn": { "alias": "rowClassFn"; "required": false; }; }, { "rowClick": "rowClick"; }, never, never, true, never>;
81
+ }
82
+
83
+ declare class BadgeComponent {
84
+ variant: 'success' | 'warning' | 'error' | 'info' | 'neutral';
85
+ size: 'sm' | 'md';
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "ask-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
88
+ }
89
+
90
+ declare class ModalComponent {
91
+ isOpen: boolean;
92
+ title: string;
93
+ size: 'sm' | 'md' | 'lg';
94
+ showFooter: boolean;
95
+ onClose: EventEmitter<void>;
96
+ close(): void;
97
+ onBackdropClick(event: MouseEvent): void;
98
+ onKeydown(event: KeyboardEvent): void;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
100
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "ask-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "title": { "alias": "title"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; }, { "onClose": "onClose"; }, never, ["*", "[modal-footer]"], true, never>;
101
+ }
102
+
103
+ declare class CheckboxComponent implements ControlValueAccessor {
104
+ label: string;
105
+ disabled: boolean;
106
+ checkboxId: string;
107
+ checked: boolean;
108
+ onChange: any;
109
+ onTouched: any;
110
+ writeValue(value: boolean): void;
111
+ registerOnChange(fn: any): void;
112
+ registerOnTouched(fn: any): void;
113
+ setDisabledState?(isDisabled: boolean): void;
114
+ onModelChange(event: any): void;
115
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "ask-checkbox", never, { "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "checkboxId": { "alias": "checkboxId"; "required": false; }; }, {}, never, never, true, never>;
117
+ }
118
+
119
+ declare class TooltipComponent {
120
+ text: string;
121
+ position: 'top' | 'bottom' | 'left' | 'right';
122
+ isVisible: boolean;
123
+ show(): void;
124
+ hide(): void;
125
+ static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
126
+ static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "ask-tooltip", never, { "text": { "alias": "text"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, {}, never, ["*"], true, never>;
127
+ }
128
+
129
+ declare class LabelComponent {
130
+ forId: string;
131
+ required: boolean;
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<LabelComponent, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<LabelComponent, "ask-label", never, { "forId": { "alias": "forId"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, {}, never, ["*"], true, never>;
134
+ }
135
+
136
+ declare class TitleComponent {
137
+ level: 1 | 2 | 3 | 4 | 5 | 6;
138
+ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
139
+ static ɵfac: i0.ɵɵFactoryDeclaration<TitleComponent, never>;
140
+ static ɵcmp: i0.ɵɵComponentDeclaration<TitleComponent, "ask-title", never, { "level": { "alias": "level"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*", "*"], true, never>;
141
+ }
142
+
143
+ declare class AsktechUi {
144
+ static ɵfac: i0.ɵɵFactoryDeclaration<AsktechUi, never>;
145
+ static ɵcmp: i0.ɵɵComponentDeclaration<AsktechUi, "lib-asktech-ui", never, {}, {}, never, never, true, never>;
146
+ }
147
+
148
+ export { AsktechUi, BadgeComponent, ButtonComponent, CardComponent, CheckboxComponent, DataTableComponent, InputComponent, LabelComponent, ModalComponent, SelectComponent, TitleComponent, TooltipComponent };
149
+ export type { SelectOption, TableColumn };