@lucca-front/ng 16.4.3 → 16.5.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.
Files changed (105) hide show
  1. package/button/button.component.d.ts +20 -0
  2. package/button/index.d.ts +5 -0
  3. package/button/public-api.d.ts +1 -0
  4. package/callout/{callout.component.d.ts → callout/callout.component.d.ts} +8 -16
  5. package/callout/callout-disclosure/callout-disclosure.component.d.ts +13 -0
  6. package/callout/callout-feedback-item/callout-feedback-item.component.d.ts +5 -0
  7. package/callout/callout-feedback-list/callout-feedback-list.component.d.ts +12 -0
  8. package/callout/callout-popover/callout-popover.component.d.ts +50 -0
  9. package/callout/callout-state.d.ts +7 -0
  10. package/callout/public-api.d.ts +5 -1
  11. package/core/portal/index.d.ts +2 -0
  12. package/core/portal/portal-content.d.ts +2 -0
  13. package/core/portal/portal.directive.d.ts +13 -0
  14. package/core/public-api.d.ts +1 -0
  15. package/dockerRegistry-c4c72252-360b-4df7-8b16-dcbd6f477e82.env +1 -0
  16. package/esm2022/api/select/input/api-select-input.component.mjs +3 -3
  17. package/esm2022/button/button.component.mjs +60 -0
  18. package/esm2022/button/lucca-front-ng-button.mjs +5 -0
  19. package/esm2022/button/public-api.mjs +2 -0
  20. package/esm2022/callout/callout/callout.component.mjs +82 -0
  21. package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +41 -0
  22. package/esm2022/callout/callout-feedback-item/callout-feedback-item.component.mjs +14 -0
  23. package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +24 -0
  24. package/esm2022/callout/callout-popover/callout-popover.component.mjs +164 -0
  25. package/esm2022/callout/callout-state.mjs +15 -0
  26. package/esm2022/callout/public-api.mjs +6 -2
  27. package/esm2022/core/date/native/native-date.adapter.mjs +7 -4
  28. package/esm2022/core/portal/index.mjs +3 -0
  29. package/esm2022/core/portal/portal-content.mjs +2 -0
  30. package/esm2022/core/portal/portal.directive.mjs +43 -0
  31. package/esm2022/core/public-api.mjs +2 -1
  32. package/esm2022/core-select/input/select-input.component.mjs +2 -1
  33. package/esm2022/date/select/date-select-input.component.mjs +3 -3
  34. package/esm2022/department/select/input/department-select-input.component.mjs +3 -3
  35. package/esm2022/establishment/select/input/establishment-select-input.component.mjs +3 -3
  36. package/esm2022/form-field/form-field.component.mjs +4 -4
  37. package/esm2022/forms/checkboxfield/checkboxfield.component.mjs +3 -4
  38. package/esm2022/forms/switchfield/switchfield.component.mjs +3 -4
  39. package/esm2022/forms/textfield/textfield.component.mjs +1 -2
  40. package/esm2022/icon/icon.component.mjs +4 -6
  41. package/esm2022/inline-message/inline-message.component.mjs +5 -9
  42. package/esm2022/input/clearer/clearer.component.mjs +3 -3
  43. package/esm2022/multi-select/displayer/default-displayer.component.mjs +3 -3
  44. package/esm2022/multi-select/input/select-input.component.mjs +5 -4
  45. package/esm2022/new-badge/new-badge.component.mjs +10 -4
  46. package/esm2022/numeric-badge/numeric-badge.component.mjs +43 -0
  47. package/esm2022/numeric-badge/public-api.mjs +2 -2
  48. package/esm2022/qualification/select/input/qualification-select-input.component.mjs +3 -3
  49. package/esm2022/select/input/select-input.component.mjs +2 -2
  50. package/esm2022/simple-select/api/api-v3.directive.mjs +8 -3
  51. package/esm2022/simple-select/api/api-v4.directive.mjs +10 -4
  52. package/esm2022/simple-select/input/select-input.component.mjs +5 -4
  53. package/esm2022/user/picture/user-picture.component.mjs +16 -12
  54. package/esm2022/user/select/input/user-select-input.component.mjs +3 -3
  55. package/fesm2022/lucca-front-ng-api.mjs +2 -2
  56. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-button.mjs +66 -0
  58. package/fesm2022/lucca-front-ng-button.mjs.map +1 -0
  59. package/fesm2022/lucca-front-ng-callout.mjs +261 -21
  60. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-core-select.mjs +1 -0
  62. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-core.mjs +48 -5
  64. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-date.mjs +2 -2
  66. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-department.mjs +2 -2
  68. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-establishment.mjs +2 -2
  70. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-form-field.mjs +3 -3
  72. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-forms.mjs +4 -7
  74. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-icon.mjs +3 -5
  76. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-inline-message.mjs +4 -8
  78. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-input.mjs +2 -2
  80. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-multi-select.mjs +6 -5
  82. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-new-badge.mjs +9 -3
  84. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-numeric-badge.mjs +12 -6
  86. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-qualification.mjs +2 -2
  88. package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-select.mjs +2 -2
  90. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-simple-select-api.mjs +16 -5
  92. package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
  93. package/fesm2022/lucca-front-ng-simple-select.mjs +4 -3
  94. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  95. package/fesm2022/lucca-front-ng-user.mjs +15 -11
  96. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  97. package/icon/icon.component.d.ts +1 -1
  98. package/new-badge/new-badge.component.d.ts +1 -0
  99. package/numeric-badge/{numeric-badge/numeric-badge.component.d.ts → numeric-badge.component.d.ts} +6 -2
  100. package/numeric-badge/public-api.d.ts +1 -1
  101. package/package.json +32 -26
  102. package/src/definitions/select/_select-input.scss +11 -9
  103. package/user/picture/user-picture.component.d.ts +6 -4
  104. package/esm2022/callout/callout.component.mjs +0 -79
  105. package/esm2022/numeric-badge/numeric-badge/numeric-badge.component.mjs +0 -37
@@ -1,8 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, Output, ViewEncapsulation, inject, ViewContainerRef, ElementRef, numberAttribute, ViewChild } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import { getIntl } from '@lucca-front/ng/core';
4
+ import { NgIf, CommonModule } from '@angular/common';
5
+ import * as i1$1 from '@lucca-front/ng/core';
6
+ import { getIntl, PortalDirective, NgClazz } from '@lucca-front/ng/core';
7
+ import { IconComponent } from '@lucca-front/ng/icon';
8
+ import { Overlay } from '@angular/cdk/overlay';
9
+ import { TemplatePortal } from '@angular/cdk/portal';
10
+ import { trigger, state, style, transition, animate } from '@angular/animations';
11
+ import { ButtonComponent } from '@lucca-front/ng/button';
6
12
 
7
13
  const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {
8
14
  factory: () => luCalloutTranslations,
@@ -19,21 +25,47 @@ const luCalloutTranslations = {
19
25
  },
20
26
  };
21
27
 
28
+ const CalloutStateMap = {
29
+ success: {
30
+ icon: 'signSuccess',
31
+ palette: 'success',
32
+ },
33
+ warning: {
34
+ icon: 'signWarning',
35
+ palette: 'warning',
36
+ },
37
+ error: {
38
+ icon: 'signError',
39
+ palette: 'error',
40
+ },
41
+ };
42
+
22
43
  class CalloutComponent {
23
44
  constructor() {
24
45
  this.palette = 'none';
25
- this.size = 'M';
26
46
  this.removable = false;
27
47
  this.removed = false;
28
48
  this.removedChange = new EventEmitter();
29
49
  this.intl = getIntl(LU_CALLOUT_TRANSLATIONS);
30
50
  }
51
+ set state(state) {
52
+ const { icon, palette } = CalloutStateMap[state];
53
+ if (this.palette === 'none') {
54
+ this.palette = palette;
55
+ }
56
+ if (!this.icon) {
57
+ this.icon = icon;
58
+ }
59
+ }
60
+ get hiddenAttr() {
61
+ return this.removed ? 'hidden' : null;
62
+ }
31
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutComponent, isStandalone: true, selector: "lu-callout", inputs: { heading: "heading", palette: "palette", size: "size", removable: "removable", icon: "icon", tiny: "tiny", removed: ["removed", "removed", booleanAttribute] }, outputs: { removedChange: "removedChange" }, ngImport: i0, template: "<div class=\"callout palette-{{palette}} mod-{{size}}\" [class.mod-tiny]=\"tiny\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">{{heading}}</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n", styles: [".callout{align-items:flex-start;border-radius:var(--commons-borderRadius-M);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);display:flex;border-color:var(--palettes-100, var(--palettes-grey-100));border-style:solid;border-width:var(--commons-divider-width);gap:.75rem;padding:var(--spacings-XS) .75rem;position:relative}.callout a,.callout .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.callout-content{flex:1;display:flex;flex-direction:column;gap:var(--spacings-XXS)}.callout-content-title{font-weight:600}.callout-icon{color:var(--palettes-700, var(--palettes-grey-700))}.callout-icon .lucca-icon{font-size:var(--sizes-M-lineHeight)}.callout-kill{padding:0;border:0;width:100%;background-color:transparent;color:inherit;text-align:left;display:block;font:inherit;cursor:pointer;color:currentColor;transition-duration:var(--commons-animations-durations-fast);transition-property:background-color;width:auto}.callout-kill:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-M)}.callout-kill:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;font-size:var(--sizes-S-lineHeight)}@supports (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"}}.callout.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);gap:.75rem}.callout.mod-S .callout-icon{line-height:var(--sizes-S-lineHeight)}.callout.mod-S .callout-icon .lucca-icon{font-size:var(--sizes-S-lineHeight)}.callout.mod-tiny{display:inline-flex;gap:.375rem;padding:var(--spacings-XS)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutComponent, isStandalone: true, selector: "lu-callout", inputs: { heading: "heading", palette: "palette", size: "size", removable: ["removable", "removable", booleanAttribute], icon: "icon", state: "state", removed: ["removed", "removed", booleanAttribute] }, outputs: { removedChange: "removedChange" }, host: { properties: { "attr.hidden": "this.hiddenAttr" } }, ngImport: i0, template: "<div class=\"callout palette-{{palette}} mod-{{size}}\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n", styles: [".callout{align-items:flex-start;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);gap:.75rem;padding:var(--spacings-XS) .75rem;position:relative}.callout:not([hidden]){display:flex}.callout a,.callout .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.callout-content{flex:1;display:flex;flex-direction:column;gap:var(--spacings-XXS)}.callout-content-title{font-weight:600}.callout-icon{display:inline-flex;color:var(--palettes-700, var(--palettes-grey-700))}.callout-icon .lucca-icon{font-size:var(--sizes-M-lineHeight)}.callout-kill{padding:0;border:0;width:100%;background-color:transparent;color:inherit;text-align:left;display:block;font:inherit;cursor:pointer;color:currentColor;transition-duration:var(--commons-animations-durations-fast);transition-property:background-color;width:auto}.callout-kill:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-M)}.callout-kill:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;font-size:var(--sizes-S-lineHeight)}@supports (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"}}.callout.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);gap:.75rem}.callout.mod-S .callout-icon{line-height:var(--sizes-S-lineHeight)}.callout.mod-S .callout-icon .lucca-icon{font-size:var(--sizes-S-lineHeight)}.callout.mod-tiny{display:inline-flex;gap:.375rem;padding:var(--spacings-XS)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
65
  }
34
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutComponent, decorators: [{
35
67
  type: Component,
36
- args: [{ selector: 'lu-callout', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"callout palette-{{palette}} mod-{{size}}\" [class.mod-tiny]=\"tiny\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">{{heading}}</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n", styles: [".callout{align-items:flex-start;border-radius:var(--commons-borderRadius-M);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);display:flex;border-color:var(--palettes-100, var(--palettes-grey-100));border-style:solid;border-width:var(--commons-divider-width);gap:.75rem;padding:var(--spacings-XS) .75rem;position:relative}.callout a,.callout .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.callout-content{flex:1;display:flex;flex-direction:column;gap:var(--spacings-XXS)}.callout-content-title{font-weight:600}.callout-icon{color:var(--palettes-700, var(--palettes-grey-700))}.callout-icon .lucca-icon{font-size:var(--sizes-M-lineHeight)}.callout-kill{padding:0;border:0;width:100%;background-color:transparent;color:inherit;text-align:left;display:block;font:inherit;cursor:pointer;color:currentColor;transition-duration:var(--commons-animations-durations-fast);transition-property:background-color;width:auto}.callout-kill:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-M)}.callout-kill:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;font-size:var(--sizes-S-lineHeight)}@supports (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"}}.callout.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);gap:.75rem}.callout.mod-S .callout-icon{line-height:var(--sizes-S-lineHeight)}.callout.mod-S .callout-icon .lucca-icon{font-size:var(--sizes-S-lineHeight)}.callout.mod-tiny{display:inline-flex;gap:.375rem;padding:var(--spacings-XS)}\n"] }]
68
+ args: [{ selector: 'lu-callout', standalone: true, imports: [NgIf, PortalDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"callout palette-{{palette}} mod-{{size}}\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n", styles: [".callout{align-items:flex-start;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);gap:.75rem;padding:var(--spacings-XS) .75rem;position:relative}.callout:not([hidden]){display:flex}.callout a,.callout .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.callout-content{flex:1;display:flex;flex-direction:column;gap:var(--spacings-XXS)}.callout-content-title{font-weight:600}.callout-icon{display:inline-flex;color:var(--palettes-700, var(--palettes-grey-700))}.callout-icon .lucca-icon{font-size:var(--sizes-M-lineHeight)}.callout-kill{padding:0;border:0;width:100%;background-color:transparent;color:inherit;text-align:left;display:block;font:inherit;cursor:pointer;color:currentColor;transition-duration:var(--commons-animations-durations-fast);transition-property:background-color;width:auto}.callout-kill:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-M)}.callout-kill:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;font-size:var(--sizes-S-lineHeight)}@supports (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"}}.callout.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);gap:.75rem}.callout.mod-S .callout-icon{line-height:var(--sizes-S-lineHeight)}.callout.mod-S .callout-icon .lucca-icon{font-size:var(--sizes-S-lineHeight)}.callout.mod-tiny{display:inline-flex;gap:.375rem;padding:var(--spacings-XS)}\n"] }]
37
69
  }], propDecorators: {
38
70
  /**
39
71
  * The title of the callout
@@ -56,13 +88,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
56
88
  }],
57
89
  /**
58
90
  * Should we display the remove icon?
59
- *
60
- * IMPORTANT: the callout won't hide itself, you're responsible for removing
61
- * it using *ngIf as you might want to store the information that it has been
62
- * hidden. Hook on the `hidden` event emitter for that.
63
91
  */
64
92
  removable: [{
65
- type: Input
93
+ type: Input,
94
+ args: [{ transform: booleanAttribute }]
66
95
  }],
67
96
  /**
68
97
  * Which icon should we display in the callout if any?
@@ -70,30 +99,241 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
70
99
  */
71
100
  icon: [{
72
101
  type: Input
73
- }],
74
- /**
75
- * Should we use tiny mode?
76
- * WARNING: tiny mode should only be used without a title, there's no runtime
77
- * check for this for performance reasons but make sure to never have both title
78
- * and tiny.
79
- */
80
- tiny: [{
102
+ }], state: [{
81
103
  type: Input
82
104
  }],
83
105
  /**
84
106
  * Is the callout removed? Works with two way binding too.
85
- *
86
107
  */
87
108
  removed: [{
88
109
  type: Input,
89
110
  args: [{ transform: booleanAttribute }]
111
+ }], hiddenAttr: [{
112
+ type: HostBinding,
113
+ args: ['attr.hidden']
90
114
  }], removedChange: [{
91
115
  type: Output
92
116
  }] } });
93
117
 
118
+ class CalloutDisclosureComponent {
119
+ constructor() {
120
+ this.palette = 'none';
121
+ this.size = 'M';
122
+ }
123
+ set state(state) {
124
+ const { icon, palette } = CalloutStateMap[state];
125
+ if (this.palette === 'none') {
126
+ this.palette = palette;
127
+ }
128
+ if (!this.icon) {
129
+ this.icon = icon;
130
+ }
131
+ }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutDisclosureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutDisclosureComponent, isStandalone: true, selector: "lu-callout-disclosure", inputs: { icon: "icon", heading: "heading", palette: "palette", size: "size", state: "state" }, ngImport: i0, template: "<details class=\"calloutDisclosure palette-{{palette}} mod-{{size}}\" [class.mod-iconless]=\"!icon\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" *ngIf=\"icon\" [icon]=\"icon\"></lu-icon>\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: .75rem;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width)}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.calloutDisclosure-summary{display:flex;gap:.75rem;padding:var(--spacings-XS) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{--icon-size: 1.5rem;color:var(--palettes-grey-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--spacings-XS) 0 var(--spacings-S);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-grey-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutDisclosure.mod-S .calloutFeedbackList .button .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)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}:host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
134
+ }
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutDisclosureComponent, decorators: [{
136
+ type: Component,
137
+ args: [{ selector: 'lu-callout-disclosure', standalone: true, imports: [CommonModule, IconComponent, PortalDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<details class=\"calloutDisclosure palette-{{palette}} mod-{{size}}\" [class.mod-iconless]=\"!icon\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" *ngIf=\"icon\" [icon]=\"icon\"></lu-icon>\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: .75rem;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width)}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.calloutDisclosure-summary{display:flex;gap:.75rem;padding:var(--spacings-XS) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{--icon-size: 1.5rem;color:var(--palettes-grey-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--spacings-XS) 0 var(--spacings-S);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-grey-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutDisclosure.mod-S .calloutFeedbackList .button .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)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}:host{display:block}\n"] }]
138
+ }], propDecorators: { icon: [{
139
+ type: Input
140
+ }], heading: [{
141
+ type: Input,
142
+ args: [{ required: true }]
143
+ }], palette: [{
144
+ type: Input
145
+ }], size: [{
146
+ type: Input
147
+ }], state: [{
148
+ type: Input
149
+ }] } });
150
+
151
+ class CalloutPopoverComponent {
152
+ constructor() {
153
+ this.#overlay = inject(Overlay);
154
+ this.#viewContainerRef = inject(ViewContainerRef);
155
+ this.#elementRef = inject(ElementRef);
156
+ /**
157
+ * Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)
158
+ */
159
+ this.openDelay = 50;
160
+ /**
161
+ * Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)
162
+ */
163
+ this.closeDelay = 500;
164
+ /**
165
+ * Palette for both the button and the popover content
166
+ */
167
+ this.palette = 'none';
168
+ }
169
+ #overlay;
170
+ #viewContainerRef;
171
+ #elementRef;
172
+ #overlayRef;
173
+ set state(state) {
174
+ const { icon, palette } = CalloutStateMap[state];
175
+ if (this.palette === 'none') {
176
+ this.palette = palette;
177
+ }
178
+ if (!this.icon) {
179
+ this.icon = icon;
180
+ }
181
+ }
182
+ get contentSize() {
183
+ if (this.size === 'XS') {
184
+ return 'S';
185
+ }
186
+ return this.size;
187
+ }
188
+ showContent() {
189
+ clearTimeout(this._hideDelayId);
190
+ // Don't open if we still have one opened
191
+ if (this._showDelayId) {
192
+ return;
193
+ }
194
+ this._showDelayId = setTimeout(() => {
195
+ this.createPanelContent();
196
+ delete this._hideDelayId;
197
+ }, this.openDelay);
198
+ }
199
+ createPanelContent() {
200
+ const positionStrategy = this.#overlay
201
+ .position()
202
+ .flexibleConnectedTo(this.overlayOrigin)
203
+ .withPositions([
204
+ {
205
+ originX: 'center',
206
+ originY: 'top',
207
+ overlayX: 'center',
208
+ overlayY: 'bottom',
209
+ },
210
+ {
211
+ originX: 'center',
212
+ originY: 'bottom',
213
+ overlayX: 'center',
214
+ overlayY: 'top',
215
+ },
216
+ ]);
217
+ this.#overlayRef = this.#overlay.create({
218
+ positionStrategy,
219
+ });
220
+ const portal = new TemplatePortal(this.overlayContent, this.#viewContainerRef);
221
+ this.#overlayRef.attach(portal);
222
+ }
223
+ hideContent(event) {
224
+ clearTimeout(this._showDelayId);
225
+ this._hideDelayId = setTimeout(() => {
226
+ const newTarget = event?.relatedTarget;
227
+ // This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger
228
+ if (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {
229
+ // Remove the tooltip if needed.
230
+ if (this.#overlayRef) {
231
+ this.#overlayRef.dispose();
232
+ delete this._showDelayId;
233
+ delete this._hideDelayId;
234
+ }
235
+ }
236
+ }, this.closeDelay);
237
+ }
238
+ ngOnDestroy() {
239
+ this.hideContent(null);
240
+ }
241
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutPopoverComponent, isStandalone: true, selector: "lu-callout-popover", inputs: { openDelay: ["openDelay", "openDelay", numberAttribute], closeDelay: ["closeDelay", "closeDelay", numberAttribute], buttonLabel: "buttonLabel", palette: "palette", size: "size", icon: "icon", state: "state", heading: "heading" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOriginRef"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContentRef"], descendants: true }], ngImport: i0, template: "<button\n\ttype=\"button\"\n\tclass=\"calloutPopover palette-{{palette}} mod-{{size}}\"\n\t#overlayOriginRef\n\t(mouseenter)=\"showContent()\"\n\t(focus)=\"showContent()\"\n\t(mouseleave)=\"hideContent($event)\"\n\t(blur)=\"hideContent(null)\"\n>\n\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"icon\"></lu-icon>\n\t{{buttonLabel}}\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay mod-{{contentSize}}\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t<lu-icon class=\"calloutPopover-overlay-head-icon palette-{{palette}}\" [icon]=\"icon\"></lu-icon>\n\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t\t</strong>\n\t\t</div>\n\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n", styles: [".calloutPopover{display:inline-flex;gap:.375rem;align-items:center;padding:var(--spacings-XS);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);cursor:pointer}:root{--components-calloutPopover-width: 30rem;--components-calloutPopover-content-margin: 2rem}.calloutPopover:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutPopover:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.calloutPopover-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay{width:var(--components-calloutPopover-width);max-width:100vw}.calloutPopover-overlay-head{display:flex;gap:var(--spacings-XS)}.calloutPopover-overlay-head-title{margin-top:0;color:var(--palettes-grey-900);margin-bottom:var(--spacings-S);text-rendering:geometricPrecision;text-wrap:balance;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);padding-top:var(--sizes-verticalPadding);padding-bottom:var(--sizes-verticalPadding);--sizes-verticalPadding: var(--sizes-M-verticalPadding);--sizes-fontSize: var(--sizes-M-fontSize);--sizes-lineHeight: var(--sizes-M-lineHeight);--components-title-weight: 600;margin:0;padding:0}.calloutPopover-overlay-head-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay-content{margin:var(--spacings-XS) .75rem var(--spacings-XS) var(--components-calloutPopover-content-margin);padding-top:var(--spacings-XS);border-top:var(--commons-divider-width) solid var(--palettes-grey-200)}.calloutPopover.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);padding:.375rem}.calloutPopover.mod-S .calloutPopover-icon{--icon-size: 1.25rem}.calloutPopover.mod-XS{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);padding:.125rem var(--spacings-XXS);gap:var(--spacings-XXS)}.calloutPopover.mod-XS .calloutPopover-icon{--icon-size: .75rem}.calloutPopover-overlay.mod-S{--components-calloutPopover-width: 20rem;--components-calloutPopover-content-margin: 1.75rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-icon{--icon-size: 1.25rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-title{--sizes-verticalPadding: var(--sizes-S-verticalPadding);--sizes-fontSize: var(--sizes-S-fontSize);--sizes-lineHeight: var(--sizes-S-lineHeight);--components-title-weight: 600}.calloutPopover-overlay.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutPopover-overlay.mod-S .calloutFeedbackList .button .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)}.calloutPopover-overlay.mod-iconless{--components-calloutPopover-content-margin: 0}.calloutPopover-overlay.mod-iconless .calloutPopover-overlay-head-icon{display:none}:host{display:inline-flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal"] }], animations: [
243
+ trigger('tooltip', [
244
+ state('enter', style({
245
+ opacity: 1,
246
+ transform: `scale(1)`,
247
+ })),
248
+ transition('void => *', [
249
+ style({
250
+ opacity: 0,
251
+ transform: `scale(0)`,
252
+ }),
253
+ animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
254
+ ]),
255
+ transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
256
+ ]),
257
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
258
+ }
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutPopoverComponent, decorators: [{
260
+ type: Component,
261
+ args: [{ selector: 'lu-callout-popover', standalone: true, imports: [CommonModule, IconComponent, ButtonComponent, PortalDirective], animations: [
262
+ trigger('tooltip', [
263
+ state('enter', style({
264
+ opacity: 1,
265
+ transform: `scale(1)`,
266
+ })),
267
+ transition('void => *', [
268
+ style({
269
+ opacity: 0,
270
+ transform: `scale(0)`,
271
+ }),
272
+ animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
273
+ ]),
274
+ transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
275
+ ]),
276
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n\ttype=\"button\"\n\tclass=\"calloutPopover palette-{{palette}} mod-{{size}}\"\n\t#overlayOriginRef\n\t(mouseenter)=\"showContent()\"\n\t(focus)=\"showContent()\"\n\t(mouseleave)=\"hideContent($event)\"\n\t(blur)=\"hideContent(null)\"\n>\n\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"icon\"></lu-icon>\n\t{{buttonLabel}}\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay mod-{{contentSize}}\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t<lu-icon class=\"calloutPopover-overlay-head-icon palette-{{palette}}\" [icon]=\"icon\"></lu-icon>\n\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t\t</strong>\n\t\t</div>\n\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n", styles: [".calloutPopover{display:inline-flex;gap:.375rem;align-items:center;padding:var(--spacings-XS);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);cursor:pointer}:root{--components-calloutPopover-width: 30rem;--components-calloutPopover-content-margin: 2rem}.calloutPopover:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutPopover:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.calloutPopover-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay{width:var(--components-calloutPopover-width);max-width:100vw}.calloutPopover-overlay-head{display:flex;gap:var(--spacings-XS)}.calloutPopover-overlay-head-title{margin-top:0;color:var(--palettes-grey-900);margin-bottom:var(--spacings-S);text-rendering:geometricPrecision;text-wrap:balance;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);padding-top:var(--sizes-verticalPadding);padding-bottom:var(--sizes-verticalPadding);--sizes-verticalPadding: var(--sizes-M-verticalPadding);--sizes-fontSize: var(--sizes-M-fontSize);--sizes-lineHeight: var(--sizes-M-lineHeight);--components-title-weight: 600;margin:0;padding:0}.calloutPopover-overlay-head-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay-content{margin:var(--spacings-XS) .75rem var(--spacings-XS) var(--components-calloutPopover-content-margin);padding-top:var(--spacings-XS);border-top:var(--commons-divider-width) solid var(--palettes-grey-200)}.calloutPopover.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);padding:.375rem}.calloutPopover.mod-S .calloutPopover-icon{--icon-size: 1.25rem}.calloutPopover.mod-XS{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);padding:.125rem var(--spacings-XXS);gap:var(--spacings-XXS)}.calloutPopover.mod-XS .calloutPopover-icon{--icon-size: .75rem}.calloutPopover-overlay.mod-S{--components-calloutPopover-width: 20rem;--components-calloutPopover-content-margin: 1.75rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-icon{--icon-size: 1.25rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-title{--sizes-verticalPadding: var(--sizes-S-verticalPadding);--sizes-fontSize: var(--sizes-S-fontSize);--sizes-lineHeight: var(--sizes-S-lineHeight);--components-title-weight: 600}.calloutPopover-overlay.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutPopover-overlay.mod-S .calloutFeedbackList .button .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)}.calloutPopover-overlay.mod-iconless{--components-calloutPopover-content-margin: 0}.calloutPopover-overlay.mod-iconless .calloutPopover-overlay-head-icon{display:none}:host{display:inline-flex}\n"] }]
277
+ }], propDecorators: { overlayOrigin: [{
278
+ type: ViewChild,
279
+ args: ['overlayOriginRef']
280
+ }], overlayContent: [{
281
+ type: ViewChild,
282
+ args: ['overlayContentRef']
283
+ }], openDelay: [{
284
+ type: Input,
285
+ args: [{ transform: numberAttribute }]
286
+ }], closeDelay: [{
287
+ type: Input,
288
+ args: [{ transform: numberAttribute }]
289
+ }], buttonLabel: [{
290
+ type: Input
291
+ }], palette: [{
292
+ type: Input
293
+ }], size: [{
294
+ type: Input
295
+ }], icon: [{
296
+ type: Input
297
+ }], state: [{
298
+ type: Input
299
+ }], heading: [{
300
+ type: Input,
301
+ args: [{ required: true }]
302
+ }] } });
303
+
304
+ class CalloutFeedbackItemComponent {
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutFeedbackItemComponent, isStandalone: true, selector: "li[lu-callout-feedback-item]", host: { classAttribute: "calloutFeedbackList-item" }, ngImport: i0, template: "<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\"></ng-content>\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\"></ng-content>\n</div>\n", styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .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)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
307
+ }
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackItemComponent, decorators: [{
309
+ type: Component,
310
+ args: [{ selector: 'li[lu-callout-feedback-item]', standalone: true, imports: [], host: {
311
+ class: 'calloutFeedbackList-item',
312
+ }, encapsulation: ViewEncapsulation.None, template: "<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\"></ng-content>\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\"></ng-content>\n</div>\n", styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .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)}\n"] }]
313
+ }] });
314
+
315
+ class CalloutFeedbackListComponent {
316
+ #ngClass = inject(NgClazz);
317
+ ngOnChanges() {
318
+ this.#ngClass.ngClass = [`palette-${this.palette}`, `mod-${this.size}`];
319
+ }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutFeedbackListComponent, isStandalone: true, selector: "ul[lu-callout-feedback-list]", inputs: { palette: "palette", size: "size" }, host: { classAttribute: "calloutFeedbackList" }, usesOnChanges: true, hostDirectives: [{ directive: i1$1.NgClazz }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .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)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
322
+ }
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackListComponent, decorators: [{
324
+ type: Component,
325
+ args: [{ selector: 'ul[lu-callout-feedback-list]', standalone: true, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, host: {
326
+ class: 'calloutFeedbackList',
327
+ }, hostDirectives: [NgClazz], encapsulation: ViewEncapsulation.None, styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .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)}\n"] }]
328
+ }], propDecorators: { palette: [{
329
+ type: Input
330
+ }], size: [{
331
+ type: Input
332
+ }] } });
333
+
94
334
  /**
95
335
  * Generated bundle index. Do not edit.
96
336
  */
97
337
 
98
- export { CalloutComponent, LU_CALLOUT_TRANSLATIONS, luCalloutTranslations };
338
+ export { CalloutComponent, CalloutDisclosureComponent, CalloutFeedbackItemComponent, CalloutFeedbackListComponent, CalloutPopoverComponent, LU_CALLOUT_TRANSLATIONS, luCalloutTranslations };
99
339
  //# sourceMappingURL=lucca-front-ng-callout.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-callout.mjs","sources":["../../../packages/ng/callout/callout.translate.ts","../../../packages/ng/callout/callout.component.ts","../../../packages/ng/callout/callout.component.html","../../../packages/ng/callout/lucca-front-ng-callout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {\n\tfactory: () => luCalloutTranslations,\n});\n\nexport interface LuCalloutLabel {\n\tclose: string;\n}\n\nexport const luCalloutTranslations: ILuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n};\n","import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { getIntl, Palette } from '@lucca-front/ng/core';\nimport { LU_CALLOUT_TRANSLATIONS } from './callout.translate';\nimport { LuccaIcon } from '@lucca-front/icons';\n\n@Component({\n\tselector: 'lu-callout',\n\tstandalone: true,\n\timports: [CommonModule],\n\ttemplateUrl: './callout.component.html',\n\tstyleUrls: ['./callout.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutComponent {\n\t@Input()\n\t/**\n\t * The title of the callout\n\t */\n\theading: string;\n\n\t@Input()\n\t/**\n\t * Which palette should be used for the entire callout.\n\t * Defaults to none (inherits parent palette)\n\t */\n\tpalette: Palette = 'none';\n\n\t@Input()\n\t/**\n\t * Which size should the callout be? Defaults to medium\n\t */\n\tsize: 'M' | 'S' = 'M';\n\n\t@Input()\n\t/**\n\t * Should we display the remove icon?\n\t *\n\t * IMPORTANT: the callout won't hide itself, you're responsible for removing\n\t * it using *ngIf as you might want to store the information that it has been\n\t * hidden. Hook on the `hidden` event emitter for that.\n\t */\n\tremovable = false;\n\n\t@Input()\n\t/**\n\t * Which icon should we display in the callout if any?\n\t * Defaults to no icon.\n\t */\n\ticon: LuccaIcon;\n\n\t@Input()\n\t/**\n\t * Should we use tiny mode?\n\t * WARNING: tiny mode should only be used without a title, there's no runtime\n\t * check for this for performance reasons but make sure to never have both title\n\t * and tiny.\n\t */\n\ttiny: boolean;\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Is the callout removed? Works with two way binding too.\n\t *\n\t */\n\tremoved = false;\n\n\t@Output()\n\tremovedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\tpublic intl = getIntl(LU_CALLOUT_TRANSLATIONS);\n}\n","<div class=\"callout palette-{{palette}} mod-{{size}}\" [class.mod-tiny]=\"tiny\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">{{heading}}</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAGa,uBAAuB,GAAG,IAAI,cAAc,CAAC,uBAAuB,EAAE;AAClF,IAAA,OAAO,EAAE,MAAM,qBAAqB;AACpC,CAAA,EAAE;AAMU,MAAA,qBAAqB,GAAmC;AACpE,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,OAAO;AACd,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;;;ACdF,MAQa,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;QAoBC,IAAO,CAAA,OAAA,GAAY,MAAM,CAAC;QAM1B,IAAI,CAAA,IAAA,GAAc,GAAG,CAAC;QAUtB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAuBlB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAGhB,QAAA,IAAA,CAAA,aAAa,GAA0B,IAAI,YAAY,EAAW,CAAC;AAE5D,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC/C,KAAA;8GAzDY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EA8CR,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CC5DrC,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ipBAcA,0yDDLW,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;+BACC,YAAY,EAAA,UAAA,EACV,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ipBAAA,EAAA,MAAA,EAAA,CAAA,mvDAAA,CAAA,EAAA,CAAA;;AAI/C;;AAEG;QACH,OAAO,EAAA,CAAA;sBAJN,KAAK;;AAON;;;AAGG;QACH,OAAO,EAAA,CAAA;sBALN,KAAK;;AAQN;;AAEG;QACH,IAAI,EAAA,CAAA;sBAJH,KAAK;;AAON;;;;;;AAMG;QACH,SAAS,EAAA,CAAA;sBARR,KAAK;;AAWN;;;AAGG;QACH,IAAI,EAAA,CAAA;sBALH,KAAK;;AAQN;;;;;AAKG;QACH,IAAI,EAAA,CAAA;sBAPH,KAAK;;AAUN;;;AAGG;QACH,OAAO,EAAA,CAAA;sBALN,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQtC,aAAa,EAAA,CAAA;sBADZ,MAAM;;;AEnER;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-callout.mjs","sources":["../../../packages/ng/callout/callout.translate.ts","../../../packages/ng/callout/callout-state.ts","../../../packages/ng/callout/callout/callout.component.ts","../../../packages/ng/callout/callout/callout.component.html","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.ts","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.html","../../../packages/ng/callout/callout-popover/callout-popover.component.ts","../../../packages/ng/callout/callout-popover/callout-popover.component.html","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.ts","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.html","../../../packages/ng/callout/callout-feedback-list/callout-feedback-list.component.ts","../../../packages/ng/callout/lucca-front-ng-callout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {\n\tfactory: () => luCalloutTranslations,\n});\n\nexport interface LuCalloutLabel {\n\tclose: string;\n}\n\nexport const luCalloutTranslations: ILuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n};\n","import { Palette } from '@lucca-front/ng/core';\nimport { LuccaIcon } from '@lucca-front/icons';\n\nexport type CalloutState = 'success' | 'warning' | 'error';\n\nexport const CalloutStateMap: Record<CalloutState, { icon: LuccaIcon; palette: Palette }> = {\n\tsuccess: {\n\t\ticon: 'signSuccess',\n\t\tpalette: 'success',\n\t},\n\twarning: {\n\t\ticon: 'signWarning',\n\t\tpalette: 'warning',\n\t},\n\terror: {\n\t\ticon: 'signError',\n\t\tpalette: 'error',\n\t},\n};\n","import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { getIntl, Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LU_CALLOUT_TRANSLATIONS } from '../callout.translate';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { CalloutState, CalloutStateMap } from '../callout-state';\n\n@Component({\n\tselector: 'lu-callout',\n\tstandalone: true,\n\timports: [NgIf, PortalDirective],\n\ttemplateUrl: './callout.component.html',\n\tstyleUrls: ['./callout.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutComponent {\n\t@Input()\n\t/**\n\t * The title of the callout\n\t */\n\theading: PortalContent;\n\n\t@Input()\n\t/**\n\t * Which palette should be used for the entire callout.\n\t * Defaults to none (inherits parent palette)\n\t */\n\tpalette: Palette = 'none';\n\n\t@Input()\n\t/**\n\t * Which size should the callout be? Defaults to medium\n\t */\n\tsize: 'M' | 'S';\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Should we display the remove icon?\n\t */\n\tremovable = false;\n\n\t@Input()\n\t/**\n\t * Which icon should we display in the callout if any?\n\t * Defaults to no icon.\n\t */\n\ticon: LuccaIcon;\n\n\t@Input()\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\tset state(state: CalloutState) {\n\t\tconst { icon, palette } = CalloutStateMap[state];\n\t\tif (this.palette === 'none') {\n\t\t\tthis.palette = palette;\n\t\t}\n\t\tif (!this.icon) {\n\t\t\tthis.icon = icon;\n\t\t}\n\t}\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Is the callout removed? Works with two way binding too.\n\t */\n\tremoved = false;\n\n\t@HostBinding('attr.hidden')\n\tget hiddenAttr(): 'hidden' | null {\n\t\treturn this.removed ? 'hidden' : null;\n\t}\n\n\t@Output()\n\tremovedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\tpublic intl = getIntl(LU_CALLOUT_TRANSLATIONS);\n}\n","<div class=\"callout palette-{{palette}} mod-{{size}}\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { CalloutState, CalloutStateMap } from '../callout-state';\n\n@Component({\n\tselector: 'lu-callout-disclosure',\n\tstandalone: true,\n\timports: [CommonModule, IconComponent, PortalDirective],\n\ttemplateUrl: './callout-disclosure.component.html',\n\tstyleUrls: ['./callout-disclosure.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutDisclosureComponent {\n\t@Input()\n\ticon: LuccaIcon;\n\n\t@Input({ required: true })\n\theading: PortalContent;\n\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t@Input()\n\tsize: 'M' | 'S' = 'M';\n\n\t@Input()\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\tset state(state: CalloutState) {\n\t\tconst { icon, palette } = CalloutStateMap[state];\n\t\tif (this.palette === 'none') {\n\t\t\tthis.palette = palette;\n\t\t}\n\t\tif (!this.icon) {\n\t\t\tthis.icon = icon;\n\t\t}\n\t}\n}\n","<details class=\"calloutDisclosure palette-{{palette}} mod-{{size}}\" [class.mod-iconless]=\"!icon\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" *ngIf=\"icon\" [icon]=\"icon\"></lu-icon>\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, numberAttribute, OnDestroy, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { CalloutState, CalloutStateMap } from '../callout-state';\n\n@Component({\n\tselector: 'lu-callout-popover',\n\tstandalone: true,\n\timports: [CommonModule, IconComponent, ButtonComponent, PortalDirective],\n\tanimations: [\n\t\ttrigger('tooltip', [\n\t\t\tstate(\n\t\t\t\t'enter',\n\t\t\t\tstyle({\n\t\t\t\t\topacity: 1,\n\t\t\t\t\ttransform: `scale(1)`,\n\t\t\t\t}),\n\t\t\t),\n\t\t\ttransition('void => *', [\n\t\t\t\tstyle({\n\t\t\t\t\topacity: 0,\n\t\t\t\t\ttransform: `scale(0)`,\n\t\t\t\t}),\n\t\t\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t\t\t]),\n\t\t\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n\t\t]),\n\t],\n\ttemplateUrl: './callout-popover.component.html',\n\tstyleUrls: ['./callout-popover.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutPopoverComponent implements OnDestroy {\n\t#overlay = inject(Overlay);\n\t#viewContainerRef = inject(ViewContainerRef);\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t@ViewChild('overlayOriginRef')\n\toverlayOrigin: ElementRef;\n\n\t@ViewChild('overlayContentRef')\n\toverlayContent: TemplateRef<unknown>;\n\n\t#overlayRef: OverlayRef;\n\n\t// Using unknown here because it's using Node types for whatever reason but it's a number\n\tprivate _hideDelayId: unknown | undefined;\n\n\t// Using unknown here because it's using Node types for whatever reason but it's a number\n\tprivate _showDelayId: unknown | undefined;\n\n\t/**\n\t * Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)\n\t */\n\t@Input({ transform: numberAttribute })\n\treadonly openDelay = 50;\n\n\t/**\n\t * Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)\n\t */\n\t@Input({ transform: numberAttribute })\n\treadonly closeDelay = 500;\n\n\t/**\n\t * Label to put inside the button, often used to show just a number\n\t */\n\t@Input()\n\tbuttonLabel: string;\n\n\t/**\n\t * Palette for both the button and the popover content\n\t */\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t/**\n\t * Size for both button and popover content\n\t */\n\t@Input()\n\tsize?: 'M' | 'S' | 'XS';\n\n\t/**\n\t * Icon shows in button and next to popover's title\n\t */\n\t@Input()\n\ticon: LuccaIcon;\n\n\t@Input()\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\tset state(state: CalloutState) {\n\t\tconst { icon, palette } = CalloutStateMap[state];\n\t\tif (this.palette === 'none') {\n\t\t\tthis.palette = palette;\n\t\t}\n\t\tif (!this.icon) {\n\t\t\tthis.icon = icon;\n\t\t}\n\t}\n\n\t/**\n\t * Heading for the details popover\n\t */\n\t@Input({ required: true })\n\theading: PortalContent;\n\n\tget contentSize(): 'S' | 'M' | undefined {\n\t\tif (this.size === 'XS') {\n\t\t\treturn 'S';\n\t\t}\n\t\treturn this.size;\n\t}\n\n\tpublic showContent() {\n\t\tclearTimeout(this._hideDelayId as number);\n\t\t// Don't open if we still have one opened\n\t\tif (this._showDelayId) {\n\t\t\treturn;\n\t\t}\n\t\tthis._showDelayId = setTimeout(() => {\n\t\t\tthis.createPanelContent();\n\t\t\tdelete this._hideDelayId;\n\t\t}, this.openDelay);\n\t}\n\n\tprivate createPanelContent() {\n\t\tconst positionStrategy = this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.overlayOrigin)\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: 'center',\n\t\t\t\t\toriginY: 'top',\n\t\t\t\t\toverlayX: 'center',\n\t\t\t\t\toverlayY: 'bottom',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: 'center',\n\t\t\t\t\toriginY: 'bottom',\n\t\t\t\t\toverlayX: 'center',\n\t\t\t\t\toverlayY: 'top',\n\t\t\t\t},\n\t\t\t]);\n\n\t\tthis.#overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy,\n\t\t});\n\n\t\tconst portal = new TemplatePortal(this.overlayContent, this.#viewContainerRef);\n\n\t\tthis.#overlayRef.attach(portal);\n\t}\n\n\tpublic hideContent(event: MouseEvent | null) {\n\t\tclearTimeout(this._showDelayId as number);\n\t\tthis._hideDelayId = setTimeout(() => {\n\t\t\tconst newTarget = event?.relatedTarget as Node | null;\n\t\t\t// This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger\n\t\t\tif (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {\n\t\t\t\t// Remove the tooltip if needed.\n\t\t\t\tif (this.#overlayRef) {\n\t\t\t\t\tthis.#overlayRef.dispose();\n\t\t\t\t\tdelete this._showDelayId;\n\t\t\t\t\tdelete this._hideDelayId;\n\t\t\t\t}\n\t\t\t}\n\t\t}, this.closeDelay);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.hideContent(null);\n\t}\n}\n","<button\n\ttype=\"button\"\n\tclass=\"calloutPopover palette-{{palette}} mod-{{size}}\"\n\t#overlayOriginRef\n\t(mouseenter)=\"showContent()\"\n\t(focus)=\"showContent()\"\n\t(mouseleave)=\"hideContent($event)\"\n\t(blur)=\"hideContent(null)\"\n>\n\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"icon\"></lu-icon>\n\t{{buttonLabel}}\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay mod-{{contentSize}}\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t<lu-icon class=\"calloutPopover-overlay-head-icon palette-{{palette}}\" [icon]=\"icon\"></lu-icon>\n\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t\t</strong>\n\t\t</div>\n\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'li[lu-callout-feedback-item]',\n\tstandalone: true,\n\timports: [],\n\ttemplateUrl: './callout-feedback-item.component.html',\n\tstyleUrls: ['./callout-feedback-item.component.scss'],\n\t// eslint-disable-next-line @angular-eslint/no-host-metadata-property\n\thost: {\n\t\tclass: 'calloutFeedbackList-item',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutFeedbackItemComponent {}\n","<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\"></ng-content>\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\"></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { NgClazz, Palette } from '@lucca-front/ng/core';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'ul[lu-callout-feedback-list]',\n\tstandalone: true,\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrls: ['./callout-feedback-list.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'calloutFeedbackList',\n\t},\n\thostDirectives: [NgClazz],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutFeedbackListComponent implements OnChanges {\n\t#ngClass = inject(NgClazz);\n\n\t@Input()\n\tpalette: Palette;\n\n\t@Input()\n\tsize: 'M' | 'S';\n\n\tngOnChanges(): void {\n\t\tthis.#ngClass.ngClass = [`palette-${this.palette}`, `mod-${this.size}`];\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -371,6 +371,7 @@ class ALuSelectInputComponent {
371
371
  if (!this.isPanelOpen) {
372
372
  return;
373
373
  }
374
+ this.onTouched?.();
374
375
  this.isPanelOpen$.next(false);
375
376
  this.panelRef.close();
376
377
  this._panelRef = undefined;