@lucca-front/ng 19.0.0 → 19.1.0
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/core/portal/portal.directive.d.ts +1 -0
- package/date2/abstract-date-component.d.ts +36 -0
- package/date2/calendar2/calendar-cell-info.d.ts +19 -12
- package/date2/calendar2/calendar2.component.d.ts +5 -2
- package/date2/date-format.d.ts +1 -0
- package/date2/date-input/date-input.component.d.ts +5 -27
- package/date2/date-range-input/calendar-shortcut.d.ts +6 -0
- package/date2/date-range-input/date-range-input.component.d.ts +63 -0
- package/date2/public-api.d.ts +2 -0
- package/date2/utils.d.ts +1 -0
- package/divider/divider.component.d.ts +17 -0
- package/divider/index.d.ts +5 -0
- package/divider/public-api.d.ts +1 -0
- package/fancy-box/fancy-box.component.d.ts +11 -0
- package/fancy-box/index.d.ts +5 -0
- package/fancy-box/public-api.d.ts +1 -0
- package/fesm2022/lucca-front-ng-button.mjs +2 -2
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +6 -6
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +19 -4
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +3 -0
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +767 -141
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-divider.mjs +57 -0
- package/fesm2022/lucca-front-ng-divider.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-dropdown.mjs +4 -1
- package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +46 -0
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-form-field.mjs +82 -155
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +6 -6
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +143 -0
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-modal.mjs +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +17 -7
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +15 -3
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +12 -5
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +4 -4
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +72 -11
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-statusBadge.mjs +37 -0
- package/fesm2022/lucca-front-ng-statusBadge.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-time.mjs +4 -4
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +2 -2
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/form-field/form-field.component.d.ts +28 -32
- package/link/index.d.ts +5 -0
- package/link/link.component.d.ts +23 -0
- package/link/link.translate.d.ts +7 -0
- package/link/public-api.d.ts +1 -0
- package/link/translations.d.ts +23 -0
- package/multi-select/public-api.d.ts +1 -0
- package/multi-select/select.validators.d.ts +5 -0
- package/numeric-badge/numeric-badge.component.d.ts +3 -1
- package/package.json +34 -18
- package/popover2/popover.directive.d.ts +8 -2
- package/skeleton/public-api.d.ts +4 -1
- package/skeleton/skeleton-data-table/skeleton-data-table.component.d.ts +12 -0
- package/skeleton/skeleton-index-table/skeleton-index-table.component.d.ts +12 -0
- package/skeleton/skeleton-table/skeleton-table.component.d.ts +12 -0
- package/src/components/_dropdown.scss +6 -0
- package/statusBadge/index.d.ts +5 -0
- package/statusBadge/public-api.d.ts +1 -0
- package/statusBadge/statusBadge.component.d.ts +12 -0
|
@@ -21,6 +21,7 @@ export declare class PortalDirective<T = unknown> implements OnChanges, OnDestro
|
|
|
21
21
|
* @see https://github.com/angular/angular/pull/51887
|
|
22
22
|
*/
|
|
23
23
|
private updateEmbeddedViewContext;
|
|
24
|
+
static ngTemplateContextGuard<T>(_dir: PortalDirective<T>, ctx: unknown): ctx is void;
|
|
24
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<PortalDirective<any>, never>;
|
|
25
26
|
static ɵdir: i0.ɵɵDirectiveDeclaration<PortalDirective<any>, "[luPortal]", never, { "luPortal": { "alias": "luPortal"; "required": true; }; "luPortalContext": { "alias": "luPortalContext"; "required": false; }; }, {}, never, never, true, never>;
|
|
26
27
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CalendarMode } from './calendar2/calendar-mode';
|
|
2
|
+
import { CellStatus } from './calendar2/cell-status';
|
|
3
|
+
import { DateRange } from './calendar2/date-range';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare abstract class AbstractDateComponent {
|
|
6
|
+
protected locale: string;
|
|
7
|
+
protected dateFormat: string;
|
|
8
|
+
intlDateTimeFormat: Intl.DateTimeFormat;
|
|
9
|
+
intlDateTimeFormatMonth: Intl.DateTimeFormat;
|
|
10
|
+
intlDateTimeFormatYear: Intl.DateTimeFormat;
|
|
11
|
+
intl: import("./date2.translate").Date2Translate;
|
|
12
|
+
onTouched?: () => void;
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
ranges: import("@angular/core").InputSignal<DateRange[]>;
|
|
15
|
+
hideToday: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
16
|
+
hasTodayButton: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
17
|
+
clearable: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
18
|
+
mode: import("@angular/core").InputSignal<CalendarMode>;
|
|
19
|
+
hideWeekend: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
20
|
+
getCellInfo: import("@angular/core").InputSignal<(day: Date, mode: CalendarMode) => CellStatus>;
|
|
21
|
+
min: import("@angular/core").InputSignal<Date>;
|
|
22
|
+
max: import("@angular/core").InputSignal<Date>;
|
|
23
|
+
calendarMode: import("@angular/core").WritableSignal<CalendarMode>;
|
|
24
|
+
dateFormatLocalized: import("@angular/core").Signal<string>;
|
|
25
|
+
protected currentDate: import("@angular/core").WritableSignal<Date>;
|
|
26
|
+
protected tabbableDate: import("@angular/core").WritableSignal<Date>;
|
|
27
|
+
isInMinMax(date: Date, mode: CalendarMode): boolean;
|
|
28
|
+
isValidDate(date: Date): boolean;
|
|
29
|
+
prev(mode: CalendarMode): void;
|
|
30
|
+
next(mode: CalendarMode): void;
|
|
31
|
+
registerOnTouched(fn: () => void): void;
|
|
32
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
33
|
+
move(direction: 1 | -1, mode: CalendarMode): void;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDateComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AbstractDateComponent, "ng-component", never, { "ranges": { "alias": "ranges"; "required": false; "isSignal": true; }; "hideToday": { "alias": "hideToday"; "required": false; "isSignal": true; }; "hasTodayButton": { "alias": "hasTodayButton"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "hideWeekend": { "alias": "hideWeekend"; "required": false; "isSignal": true; }; "getCellInfo": { "alias": "getCellInfo"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
36
|
+
}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import { DateRange } from './date-range';
|
|
2
1
|
import { CellStatus } from './cell-status';
|
|
2
|
+
import { DateRange } from './date-range';
|
|
3
|
+
export interface RangeInfo {
|
|
4
|
+
range?: DateRange;
|
|
5
|
+
isStart: boolean;
|
|
6
|
+
isEnd: boolean;
|
|
7
|
+
label?: string;
|
|
8
|
+
}
|
|
3
9
|
export interface CalendarCellInfo {
|
|
4
10
|
day: number;
|
|
5
|
-
isWeekend: boolean;
|
|
6
|
-
isOverflow: boolean;
|
|
7
11
|
date: Date;
|
|
8
12
|
status: CellStatus;
|
|
9
|
-
isCurrent: boolean;
|
|
10
|
-
classes: string[];
|
|
11
13
|
disabled: boolean;
|
|
14
|
+
isWeekend: boolean;
|
|
15
|
+
isCurrent: boolean;
|
|
16
|
+
isOverflow: boolean;
|
|
17
|
+
isSelected: boolean;
|
|
18
|
+
noButton: boolean;
|
|
12
19
|
label?: string;
|
|
13
|
-
rangeInfo:
|
|
14
|
-
|
|
15
|
-
isStart: boolean;
|
|
16
|
-
isEnd: boolean;
|
|
17
|
-
label?: string;
|
|
18
|
-
};
|
|
20
|
+
rangeInfo: RangeInfo;
|
|
21
|
+
ngClasses: Record<string, boolean>;
|
|
19
22
|
}
|
|
20
23
|
export interface CalendarMonthInfo {
|
|
21
24
|
date: Date;
|
|
@@ -23,10 +26,14 @@ export interface CalendarMonthInfo {
|
|
|
23
26
|
long: string;
|
|
24
27
|
isCurrent: boolean;
|
|
25
28
|
status: CellStatus;
|
|
29
|
+
rangeInfo: RangeInfo;
|
|
30
|
+
ngClasses: Record<string, boolean>;
|
|
26
31
|
}
|
|
27
32
|
export interface CalendarYearInfo {
|
|
28
33
|
date: Date;
|
|
29
|
-
|
|
34
|
+
name: string;
|
|
30
35
|
isCurrent: boolean;
|
|
31
36
|
status: CellStatus;
|
|
37
|
+
rangeInfo: RangeInfo;
|
|
38
|
+
ngClasses: Record<string, boolean>;
|
|
32
39
|
}
|
|
@@ -11,9 +11,11 @@ export declare class Calendar2Component implements OnInit {
|
|
|
11
11
|
intl: import("../date2.translate").Date2Translate;
|
|
12
12
|
showOverflow: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
13
13
|
enableOverflow: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
14
|
+
removeYearOverflow: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
14
15
|
hideToday: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
15
16
|
hasTodayButton: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
16
17
|
hideWeekend: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
18
|
+
disableModeChange: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
17
19
|
date: import("@angular/core").ModelSignal<Date>;
|
|
18
20
|
tabbableDate: import("@angular/core").ModelSignal<Date>;
|
|
19
21
|
mode: import("@angular/core").ModelSignal<CalendarMode>;
|
|
@@ -28,6 +30,7 @@ export declare class Calendar2Component implements OnInit {
|
|
|
28
30
|
nextPage: import("@angular/core").OutputEmitterRef<void>;
|
|
29
31
|
previousPage: import("@angular/core").OutputEmitterRef<void>;
|
|
30
32
|
dateClicked: import("@angular/core").OutputEmitterRef<Date>;
|
|
33
|
+
dateHovered: import("@angular/core").ModelSignal<Date>;
|
|
31
34
|
todayLabel: string;
|
|
32
35
|
thisMonthLabel: string;
|
|
33
36
|
thisYearLabel: string;
|
|
@@ -49,7 +52,7 @@ export declare class Calendar2Component implements OnInit {
|
|
|
49
52
|
ngOnInit(): void;
|
|
50
53
|
onCellClicked(date: Date): void;
|
|
51
54
|
dateToCellInfo(date: Date, isOverflow?: boolean): CalendarCellInfo;
|
|
52
|
-
getRangeInfo(date: Date, scope: CalendarMode): {
|
|
55
|
+
getRangeInfo(date: Date, scope: CalendarMode, isOverflow?: boolean): {
|
|
53
56
|
range: DateRange;
|
|
54
57
|
isStart: boolean;
|
|
55
58
|
isEnd: boolean;
|
|
@@ -57,5 +60,5 @@ export declare class Calendar2Component implements OnInit {
|
|
|
57
60
|
class: string;
|
|
58
61
|
};
|
|
59
62
|
static ɵfac: i0.ɵɵFactoryDeclaration<Calendar2Component, never>;
|
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Calendar2Component, "lu-calendar2", never, { "showOverflow": { "alias": "showOverflow"; "required": false; "isSignal": true; }; "enableOverflow": { "alias": "enableOverflow"; "required": false; "isSignal": true; }; "hideToday": { "alias": "hideToday"; "required": false; "isSignal": true; }; "hasTodayButton": { "alias": "hasTodayButton"; "required": false; "isSignal": true; }; "hideWeekend": { "alias": "hideWeekend"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "tabbableDate": { "alias": "tabbableDate"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "ranges": { "alias": "ranges"; "required": false; "isSignal": true; }; "getCellInfo": { "alias": "getCellInfo"; "required": false; "isSignal": true; }; }, { "date": "dateChange"; "tabbableDate": "tabbableDateChange"; "mode": "modeChange"; "displayMode": "displayModeChange"; "nextPage": "nextPage"; "previousPage": "previousPage"; "dateClicked": "dateClicked"; }, never, never, true, never>;
|
|
63
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Calendar2Component, "lu-calendar2", never, { "showOverflow": { "alias": "showOverflow"; "required": false; "isSignal": true; }; "enableOverflow": { "alias": "enableOverflow"; "required": false; "isSignal": true; }; "removeYearOverflow": { "alias": "removeYearOverflow"; "required": false; "isSignal": true; }; "hideToday": { "alias": "hideToday"; "required": false; "isSignal": true; }; "hasTodayButton": { "alias": "hasTodayButton"; "required": false; "isSignal": true; }; "hideWeekend": { "alias": "hideWeekend"; "required": false; "isSignal": true; }; "disableModeChange": { "alias": "disableModeChange"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "tabbableDate": { "alias": "tabbableDate"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "ranges": { "alias": "ranges"; "required": false; "isSignal": true; }; "getCellInfo": { "alias": "getCellInfo"; "required": false; "isSignal": true; }; "dateHovered": { "alias": "dateHovered"; "required": false; "isSignal": true; }; }, { "date": "dateChange"; "tabbableDate": "tabbableDateChange"; "mode": "modeChange"; "displayMode": "displayModeChange"; "nextPage": "nextPage"; "previousPage": "previousPage"; "dateClicked": "dateClicked"; "dateHovered": "dateHoveredChange"; }, never, never, true, never>;
|
|
61
64
|
}
|
package/date2/date-format.d.ts
CHANGED
|
@@ -2,33 +2,18 @@ import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
|
2
2
|
import { ElementRef } from '@angular/core';
|
|
3
3
|
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
|
|
4
4
|
import { PopoverDirective } from '@lucca-front/ng/popover2';
|
|
5
|
+
import { AbstractDateComponent } from '../abstract-date-component';
|
|
5
6
|
import { CalendarMode } from '../calendar2/calendar-mode';
|
|
6
7
|
import { Calendar2Component } from '../calendar2/calendar2.component';
|
|
7
8
|
import { CellStatus } from '../calendar2/cell-status';
|
|
8
|
-
import { DateRange } from '../calendar2/date-range';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
export declare class DateInputComponent implements ControlValueAccessor, Validator {
|
|
10
|
+
export declare class DateInputComponent extends AbstractDateComponent implements ControlValueAccessor, Validator {
|
|
11
11
|
#private;
|
|
12
|
-
intl: import("../date2.translate").Date2Translate;
|
|
13
|
-
onTouched?: () => void;
|
|
14
|
-
disabled: boolean;
|
|
15
|
-
min: import("@angular/core").InputSignal<Date>;
|
|
16
|
-
max: import("@angular/core").InputSignal<Date>;
|
|
17
|
-
ranges: import("@angular/core").InputSignal<DateRange[]>;
|
|
18
|
-
disableOverflow: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
19
|
-
hideOverflow: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
20
|
-
hideToday: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
21
|
-
hasTodayButton: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
22
|
-
clearable: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
23
12
|
placeholder: import("@angular/core").InputSignal<string>;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
getCellInfo: import("@angular/core").InputSignal<(day: Date, mode: CalendarMode) => CellStatus>;
|
|
13
|
+
disableOverflow: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
14
|
+
hideOverflow: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
27
15
|
popoverPositions: ConnectionPositionPair[];
|
|
28
|
-
calendarMode: import("@angular/core").WritableSignal<CalendarMode>;
|
|
29
16
|
inputFocused: import("@angular/core").WritableSignal<boolean>;
|
|
30
|
-
protected currentDate: import("@angular/core").WritableSignal<Date>;
|
|
31
|
-
protected tabbableDate: import("@angular/core").WritableSignal<Date>;
|
|
32
17
|
selectedDate: import("@angular/core").WritableSignal<Date>;
|
|
33
18
|
dateFromWriteValue: import("@angular/core").WritableSignal<Date>;
|
|
34
19
|
calendar: import("@angular/core").Signal<Calendar2Component>;
|
|
@@ -42,17 +27,10 @@ export declare class DateInputComponent implements ControlValueAccessor, Validat
|
|
|
42
27
|
openPopover(ref: PopoverDirective): void;
|
|
43
28
|
arrowDown(popoverRef: PopoverDirective): void;
|
|
44
29
|
validate(control: AbstractControl<Date, Date>): ValidationErrors;
|
|
45
|
-
isValidDate(date: Date): boolean;
|
|
46
|
-
isInMinMax(date: Date, mode: CalendarMode): boolean;
|
|
47
30
|
writeValue(date: Date): void;
|
|
48
31
|
registerOnChange(fn: (value: Date) => void): void;
|
|
49
|
-
registerOnTouched(fn: () => void): void;
|
|
50
|
-
setDisabledState?(isDisabled: boolean): void;
|
|
51
|
-
prev(): void;
|
|
52
|
-
next(): void;
|
|
53
32
|
clear(input: HTMLInputElement): void;
|
|
54
33
|
currentDateChangeFromCalendar(date: Date): void;
|
|
55
|
-
move(direction: 1 | -1): void;
|
|
56
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateInputComponent, never>;
|
|
57
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent, "lu-date-input", never, { "
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent, "lu-date-input", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disableOverflow": { "alias": "disableOverflow"; "required": false; "isSignal": true; }; "hideOverflow": { "alias": "hideOverflow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
58
36
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
2
|
+
import { ElementRef, Signal } from '@angular/core';
|
|
3
|
+
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
|
|
4
|
+
import { PortalContent } from '@lucca-front/ng/core';
|
|
5
|
+
import { PopoverDirective } from '@lucca-front/ng/popover2';
|
|
6
|
+
import { AbstractDateComponent } from '../abstract-date-component';
|
|
7
|
+
import { CalendarMode } from '../calendar2/calendar-mode';
|
|
8
|
+
import { Calendar2Component } from '../calendar2/calendar2.component';
|
|
9
|
+
import { CellStatus } from '../calendar2/cell-status';
|
|
10
|
+
import { DateRange } from '../calendar2/date-range';
|
|
11
|
+
import { CalendarShortcut } from './calendar-shortcut';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export declare class DateRangeInputComponent extends AbstractDateComponent implements ControlValueAccessor, Validator {
|
|
14
|
+
#private;
|
|
15
|
+
hasTwoCalendars: Signal<boolean>;
|
|
16
|
+
idSuffix: number;
|
|
17
|
+
startTextInputRef: Signal<ElementRef<HTMLInputElement>>;
|
|
18
|
+
endTextInputRef: Signal<ElementRef<HTMLInputElement>>;
|
|
19
|
+
selectedRange: import("@angular/core").WritableSignal<DateRange>;
|
|
20
|
+
dateHovered: import("@angular/core").WritableSignal<Date>;
|
|
21
|
+
placeholder: import("@angular/core").InputSignal<string>;
|
|
22
|
+
label: PortalContent;
|
|
23
|
+
popoverPositions: ConnectionPositionPair[];
|
|
24
|
+
inputFocused: import("@angular/core").WritableSignal<boolean>;
|
|
25
|
+
editedField: import("@angular/core").WritableSignal<0 | 1 | -1>;
|
|
26
|
+
highlightedField: import("@angular/core").WritableSignal<0 | 1 | -1>;
|
|
27
|
+
shortcuts: import("@angular/core").InputSignal<CalendarShortcut[]>;
|
|
28
|
+
autocomplete: string;
|
|
29
|
+
protected currentRightDate: Signal<Date>;
|
|
30
|
+
protected currentStartDisplayDate: Signal<Date>;
|
|
31
|
+
protected currentEndDisplayDate: Signal<Date>;
|
|
32
|
+
calendars: Signal<readonly Calendar2Component[]>;
|
|
33
|
+
combinedGetCellInfo: (date: Date, mode: CalendarMode) => CellStatus;
|
|
34
|
+
calendarRanges: Signal<DateRange[]>;
|
|
35
|
+
startLabel: Signal<string>;
|
|
36
|
+
startTextInput: import("@angular/core").WritableSignal<string>;
|
|
37
|
+
endLabel: Signal<string>;
|
|
38
|
+
endTextInput: import("@angular/core").WritableSignal<string>;
|
|
39
|
+
previousButton: Signal<ElementRef<Element>>;
|
|
40
|
+
nextButton: Signal<ElementRef<Element>>;
|
|
41
|
+
focusedCalendarIndex: import("@angular/core").WritableSignal<number>;
|
|
42
|
+
focusedCalendar: Signal<Calendar2Component>;
|
|
43
|
+
get isNavigationButtonFocused(): boolean;
|
|
44
|
+
constructor();
|
|
45
|
+
getNextCalendarDate(date: Date): Date;
|
|
46
|
+
popoverClosed(): void;
|
|
47
|
+
setupInputEffect(inputSignal: Signal<string | null>, rangeProperty: 'start' | 'end'): void;
|
|
48
|
+
inputBlur(): void;
|
|
49
|
+
fixOrderIfNeeded(): void;
|
|
50
|
+
tabbableDateChange(date: Date, calendarIndex: number): void;
|
|
51
|
+
openPopover(ref: PopoverDirective, propertyToFocus?: 'start' | 'end', focusTabbableDate?: boolean): void;
|
|
52
|
+
dateClicked(date: Date, popoverRef: PopoverDirective): void;
|
|
53
|
+
arrowDown(popoverRef: PopoverDirective, fieldToFocus: 'start' | 'end'): void;
|
|
54
|
+
validate(control: AbstractControl<DateRange, DateRange>): ValidationErrors;
|
|
55
|
+
writeValue(value: DateRange): void;
|
|
56
|
+
registerOnChange(fn: (value: DateRange) => void): void;
|
|
57
|
+
clear(start: HTMLInputElement, end: HTMLInputElement): void;
|
|
58
|
+
currentDateChangeFromCalendar(date: Date): void;
|
|
59
|
+
getDateLabelForInput(date: Date): string;
|
|
60
|
+
selectShortcut(shortcut: CalendarShortcut, popover: PopoverDirective): void;
|
|
61
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeInputComponent, never>;
|
|
62
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeInputComponent, "lu-date-range-input", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "shortcuts": { "alias": "shortcuts"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, true, never>;
|
|
63
|
+
}
|
package/date2/public-api.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './calendar2/calendar2.component';
|
|
2
2
|
export * from './calendar2/cell-status';
|
|
3
3
|
export * from './date-input/date-input.component';
|
|
4
|
+
export * from './date-range-input/date-range-input.component';
|
|
5
|
+
export * from './date-range-input/calendar-shortcut';
|
|
4
6
|
export * from './date-format';
|
package/date2/utils.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ import { CalendarMode } from './calendar2/calendar-mode';
|
|
|
4
4
|
export declare function getIntlWeekDay(date: Date): CalendarWeekDay;
|
|
5
5
|
export declare function getJSFirstDayOfWeek(weekInfo: CalendarWeekInfo): Day;
|
|
6
6
|
export declare function comparePeriods(mode: CalendarMode, a: Date, b: Date): boolean;
|
|
7
|
+
export declare function compareCalendarPeriods(mode: CalendarMode, a: Date, b: Date): boolean;
|
|
7
8
|
export declare function startOfPeriod(mode: CalendarMode, date: Date): Date;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ElementRef, OnChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DividerComponent implements OnChanges {
|
|
4
|
+
#private;
|
|
5
|
+
content: ElementRef;
|
|
6
|
+
divider: boolean;
|
|
7
|
+
withRole: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
|
|
8
|
+
role: import("@angular/core").Signal<string>;
|
|
9
|
+
get attrRole(): string;
|
|
10
|
+
vertical: false;
|
|
11
|
+
size: 'M' | 'S';
|
|
12
|
+
ngOnChanges(): void;
|
|
13
|
+
updateClasses(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DividerComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DividerComponent, "lu-divider", never, { "withRole": { "alias": "withRole"; "required": false; "isSignal": true; }; "vertical": { "alias": "vertical"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
16
|
+
static ngAcceptInputType_vertical: unknown;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './divider.component';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class FancyBoxComponent {
|
|
3
|
+
foreground?: string;
|
|
4
|
+
get foregroundStyle(): string;
|
|
5
|
+
backgroundLeft: string;
|
|
6
|
+
get backgroundLeftStyle(): string;
|
|
7
|
+
backgroundRight: string;
|
|
8
|
+
get backgroundRightStyle(): string;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FancyBoxComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FancyBoxComponent, "lu-fancy-box", never, { "foreground": { "alias": "foreground"; "required": false; }; "backgroundLeft": { "alias": "backgroundLeft"; "required": true; }; "backgroundRight": { "alias": "backgroundRight"; "required": true; }; }, {}, never, ["*"], true, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fancy-box.component';
|
|
@@ -54,13 +54,13 @@ class ButtonComponent {
|
|
|
54
54
|
this.#luClass.setState(ngClassConfig);
|
|
55
55
|
}
|
|
56
56
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.3", type: ButtonComponent, isStandalone: true, selector: "button[luButton],a[luButton]", inputs: { size: "size", block: ["block", "block", booleanAttribute], delete: ["delete", "delete", booleanAttribute], palette: "palette", state: "state", luButton: "luButton" }, host: { classAttribute: "button" }, providers: [LuClass], queries: [{ propertyName: "iconComponentRef", first: true, predicate: IconComponent, descendants: true, read: (ElementRef) }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@charset \"UTF-8\";.button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: none;--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;border:0}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-700))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-button-gap: var(--pr-t-spacings-75)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-withIcon,.button.mod-icon{--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-S,.button.mod-icon.mod-S{--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-XS,.button.mod-icon.mod-XS{--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none;height:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-opacity: .4;--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{--icon-content: \"\\e9bf\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.3", type: ButtonComponent, isStandalone: true, selector: "button[luButton],a[luButton]", inputs: { size: "size", block: ["block", "block", booleanAttribute], delete: ["delete", "delete", booleanAttribute], palette: "palette", state: "state", luButton: "luButton" }, host: { classAttribute: "button" }, providers: [LuClass], queries: [{ propertyName: "iconComponentRef", first: true, predicate: IconComponent, descendants: true, read: (ElementRef) }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@charset \"UTF-8\";.button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: none;--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;border:0}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-700))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-button-gap: var(--pr-t-spacings-75)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-withIcon{--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none;height:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-opacity: .4;--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{--icon-content: \"\\e9bf\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
58
58
|
}
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
61
|
args: [{ selector: 'button[luButton],a[luButton]', standalone: true, providers: [LuClass], template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
62
62
|
class: 'button',
|
|
63
|
-
}, styles: ["@charset \"UTF-8\";.button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: none;--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;border:0}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-700))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-button-gap: var(--pr-t-spacings-75)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-withIcon,.button.mod-icon{--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-S,.button.mod-icon.mod-S{--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-XS,.button.mod-icon.mod-XS{--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none;height:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-opacity: .4;--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{--icon-content: \"\\e9bf\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"] }]
|
|
63
|
+
}, styles: ["@charset \"UTF-8\";.button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: none;--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;border:0}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-700))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-button-gap: var(--pr-t-spacings-75)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--commons-disabled-placeholder);--components-button-color: var(--palettes-neutral-500)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-withIcon{--components-button-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150)}.button.mod-withIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none;height:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-opacity: .4;--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{--icon-content: \"\\e9bf\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-0: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content);-webkit-font-smoothing:antialiased;text-transform:none}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"] }]
|
|
64
64
|
}], propDecorators: { size: [{
|
|
65
65
|
type: Input
|
|
66
66
|
}], block: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-button.mjs","sources":["../../../packages/ng/button/button.component.ts","../../../packages/ng/button/lucca-front-ng-button.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ElementRef, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[luButton],a[luButton]',\n\tstandalone: true,\n\tproviders: [LuClass],\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrls: ['./button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'button',\n\t},\n})\nexport class ButtonComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\t#elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\n\t@Input()\n\tsize: 'M' | 'S' | 'XS';\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tblock = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tdelete = false;\n\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t@Input()\n\tstate: 'default' | 'loading' | 'error' | 'success' = 'default';\n\n\t@Input()\n\t/**\n\t * '' is the default value when you just set the `luButton` directive without a value attached to it.\n\t * We just make this explicit here.\n\t */\n\tluButton: '' | 'outlined' | 'text' | 'text-invert' = '';\n\n\t#iconComponentRef?: ElementRef<HTMLElement>;\n\n\t@ContentChild(IconComponent, { read: ElementRef<HTMLElement> })\n\tset iconComponentRef(ref: ElementRef<HTMLElement>) {\n\t\tthis.#iconComponentRef = ref;\n\t\tthis.updateClasses();\n\t}\n\n\tprivate get iconOnly(): boolean {\n\t\tconst childNodes = Array.from(this.#elementRef?.nativeElement?.childNodes || []);\n\t\tconst noText = childNodes.every(({ nodeName }) => nodeName !== '#text');\n\t\t// ignore icon and comment\n\t\tconst noSpan =\n\t\t\tchildNodes.filter((node: HTMLElement) => {\n\t\t\t\treturn node.nodeName !== '#comment' && node.nodeName.toLowerCase() !== 'lu-icon' && !node?.className?.includes('u-mask');\n\t\t\t}).length == 0;\n\t\treturn !!this.#iconComponentRef && noSpan && noText;\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.updateClasses();\n\t}\n\n\tupdateClasses(): void {\n\t\tconst ngClassConfig = {\n\t\t\t[`mod-${this.size}`]: !!this.size,\n\t\t\t[`mod-block`]: this.block,\n\t\t\t[`palette-${this.palette}`]: !!this.palette,\n\t\t\t[`is-${this.state}`]: !!this.state,\n\t\t\t['mod-onlyIcon']: this.iconOnly,\n\t\t\t['mod-withIcon']: this.#iconComponentRef !== undefined,\n\t\t\t['mod-delete']: this.delete,\n\t\t};\n\n\t\tif (this.luButton !== '') {\n\t\t\tif (this.luButton === 'text-invert') {\n\t\t\t\tngClassConfig['mod-text'] = true;\n\t\t\t\tngClassConfig['mod-invert'] = true;\n\t\t\t} else {\n\t\t\t\tngClassConfig[`mod-${this.luButton}`] = true;\n\t\t\t}\n\t\t}\n\t\tthis.#luClass.setState(ngClassConfig);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-button.mjs","sources":["../../../packages/ng/button/button.component.ts","../../../packages/ng/button/lucca-front-ng-button.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ElementRef, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[luButton],a[luButton]',\n\tstandalone: true,\n\tproviders: [LuClass],\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrls: ['./button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'button',\n\t},\n})\nexport class ButtonComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\t#elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\n\t@Input()\n\tsize: 'M' | 'S' | 'XS';\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tblock = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tdelete = false;\n\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t@Input()\n\tstate: 'default' | 'loading' | 'error' | 'success' = 'default';\n\n\t@Input()\n\t/**\n\t * '' is the default value when you just set the `luButton` directive without a value attached to it.\n\t * We just make this explicit here.\n\t */\n\tluButton: '' | 'outlined' | 'text' | 'text-invert' = '';\n\n\t#iconComponentRef?: ElementRef<HTMLElement>;\n\n\t@ContentChild(IconComponent, { read: ElementRef<HTMLElement> })\n\tset iconComponentRef(ref: ElementRef<HTMLElement>) {\n\t\tthis.#iconComponentRef = ref;\n\t\tthis.updateClasses();\n\t}\n\n\tprivate get iconOnly(): boolean {\n\t\tconst childNodes = Array.from(this.#elementRef?.nativeElement?.childNodes || []);\n\t\tconst noText = childNodes.every(({ nodeName }) => nodeName !== '#text');\n\t\t// ignore icon and comment\n\t\tconst noSpan =\n\t\t\tchildNodes.filter((node: HTMLElement) => {\n\t\t\t\treturn node.nodeName !== '#comment' && node.nodeName.toLowerCase() !== 'lu-icon' && !node?.className?.includes('u-mask');\n\t\t\t}).length == 0;\n\t\treturn !!this.#iconComponentRef && noSpan && noText;\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.updateClasses();\n\t}\n\n\tupdateClasses(): void {\n\t\tconst ngClassConfig = {\n\t\t\t[`mod-${this.size}`]: !!this.size,\n\t\t\t[`mod-block`]: this.block,\n\t\t\t[`palette-${this.palette}`]: !!this.palette,\n\t\t\t[`is-${this.state}`]: !!this.state,\n\t\t\t['mod-onlyIcon']: this.iconOnly,\n\t\t\t['mod-withIcon']: this.#iconComponentRef !== undefined,\n\t\t\t['mod-delete']: this.delete,\n\t\t};\n\n\t\tif (this.luButton !== '') {\n\t\t\tif (this.luButton === 'text-invert') {\n\t\t\t\tngClassConfig['mod-text'] = true;\n\t\t\t\tngClassConfig['mod-invert'] = true;\n\t\t\t} else {\n\t\t\t\tngClassConfig[`mod-${this.luButton}`] = true;\n\t\t\t}\n\t\t}\n\t\tthis.#luClass.setState(ngClassConfig);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|