@eui/eds 22.0.0-alpha.21 → 22.0.0-alpha.23

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 (200) hide show
  1. package/docs/changelog.html +61 -0
  2. package/docs/components/EdsButton.html +77 -203
  3. package/docs/components/EdsCalendarDay.html +1 -1
  4. package/docs/components/EdsCalendarHeader.html +1 -1
  5. package/docs/components/EdsDatepicker.html +1 -1
  6. package/docs/components/EdsDialogContainer.html +1 -1
  7. package/docs/components/EdsFeedbackMessage.html +35 -73
  8. package/docs/components/EdsFileUpload.html +1 -1
  9. package/docs/components/EdsFlexLayout.html +1 -1
  10. package/docs/components/EdsGridLayout.html +1 -1
  11. package/docs/components/EdsGridLayoutCell.html +1 -1
  12. package/docs/components/EdsGridLayoutRow.html +1 -1
  13. package/docs/components/EdsIconState.html +38 -3
  14. package/docs/components/EdsInputButton.html +0 -57
  15. package/docs/components/EdsInputCheckbox.html +0 -62
  16. package/docs/components/EdsInputIcon.html +0 -53
  17. package/docs/components/EdsInputNumber.html +0 -60
  18. package/docs/components/EdsInputRadio.html +0 -62
  19. package/docs/components/EdsInputText.html +0 -62
  20. package/docs/components/EdsLabel.html +1 -1
  21. package/docs/components/EdsLanguageSelectorDialog.html +3 -5
  22. package/docs/components/EdsLink.html +1 -1
  23. package/docs/components/EdsLoadingIndicator.html +1 -1
  24. package/docs/components/EdsPaginator.html +1 -1
  25. package/docs/components/EdsRating.html +66 -57
  26. package/docs/components/EdsSelect.html +0 -45
  27. package/docs/components/EdsSnc.html +2 -2
  28. package/docs/components/EdsTab.html +8 -133
  29. package/docs/components/EdsTabBody.html +21 -41
  30. package/docs/components/EdsTabHeader.html +13 -25
  31. package/docs/components/EdsTabHeaderLabel.html +4 -126
  32. package/docs/components/EdsTabHeaderLeftContent.html +4 -126
  33. package/docs/components/EdsTabHeaderRightContent.html +4 -126
  34. package/docs/components/EdsTabHeaderSublabel.html +4 -126
  35. package/docs/components/EdsTabs.html +113 -140
  36. package/docs/components/EdsTextarea.html +0 -62
  37. package/docs/components/EdsTreeListToolbar.html +1 -1
  38. package/docs/components/EdsTrend.html +1 -1
  39. package/docs/directives/EdsColorDirective.html +0 -9
  40. package/docs/directives/EdsFlexColDirective.html +1 -1
  41. package/docs/directives/EdsFlexGrowDirective.html +1 -1
  42. package/docs/directives/EdsFlexNoShrinkDirective.html +1 -1
  43. package/docs/directives/EdsSizeDirective.html +0 -3
  44. package/docs/directives/EdsTooltip.html +45 -281
  45. package/docs/js/search/search_index.js +2 -2
  46. package/docs/json/EdsButton.md +15 -24
  47. package/docs/json/EdsFeedbackMessage.md +4 -10
  48. package/docs/json/EdsIconState.md +2 -1
  49. package/docs/json/EdsRating.md +2 -0
  50. package/docs/json/EdsTab.md +1 -1
  51. package/docs/json/EdsTabs.md +7 -8
  52. package/docs/json/EdsTooltip.md +3 -3
  53. package/docs/json/documentation.json +1803 -2031
  54. package/docs/llms.txt +72 -109
  55. package/docs/miscellaneous/typealiases.html +179 -16
  56. package/docs/miscellaneous/variables.html +16 -16
  57. package/docs/properties.html +1 -1
  58. package/eds-flex-layout/package.json +4 -0
  59. package/eds-grid-layout/package.json +4 -0
  60. package/eds-icon-state/package.json +4 -0
  61. package/eds-label/package.json +4 -0
  62. package/eds-link/package.json +4 -0
  63. package/eds-loading-indicator/package.json +4 -0
  64. package/eds-snc/package.json +4 -0
  65. package/eds-trend/package.json +4 -0
  66. package/fesm2022/eui-eds-eds-alert.mjs +3 -3
  67. package/fesm2022/eui-eds-eds-alert.mjs.map +1 -1
  68. package/fesm2022/eui-eds-eds-button.mjs +53 -85
  69. package/fesm2022/eui-eds-eds-button.mjs.map +1 -1
  70. package/fesm2022/eui-eds-eds-calendar.mjs +4 -4
  71. package/fesm2022/eui-eds-eds-calendar.mjs.map +1 -1
  72. package/fesm2022/eui-eds-eds-datepicker.mjs +2 -2
  73. package/fesm2022/eui-eds-eds-datepicker.mjs.map +1 -1
  74. package/fesm2022/eui-eds-eds-dialog.mjs +4 -4
  75. package/fesm2022/eui-eds-eds-dialog.mjs.map +1 -1
  76. package/fesm2022/eui-eds-eds-discussion-thread.mjs +3 -3
  77. package/fesm2022/eui-eds-eds-discussion-thread.mjs.map +1 -1
  78. package/fesm2022/eui-eds-eds-feedback-message.mjs +28 -42
  79. package/fesm2022/eui-eds-eds-feedback-message.mjs.map +1 -1
  80. package/fesm2022/eui-eds-eds-file-upload.mjs +2 -2
  81. package/fesm2022/eui-eds-eds-file-upload.mjs.map +1 -1
  82. package/fesm2022/{eui-eds-utilities-eds-flex-layout.mjs → eui-eds-eds-flex-layout.mjs} +1 -1
  83. package/fesm2022/eui-eds-eds-flex-layout.mjs.map +1 -0
  84. package/fesm2022/{eui-eds-utilities-eds-grid-layout.mjs → eui-eds-eds-grid-layout.mjs} +1 -1
  85. package/fesm2022/eui-eds-eds-grid-layout.mjs.map +1 -0
  86. package/fesm2022/eui-eds-eds-growl.mjs +3 -3
  87. package/fesm2022/eui-eds-eds-growl.mjs.map +1 -1
  88. package/fesm2022/eui-eds-eds-icon-state.mjs +56 -0
  89. package/fesm2022/eui-eds-eds-icon-state.mjs.map +1 -0
  90. package/fesm2022/eui-eds-eds-input-button.mjs +10 -13
  91. package/fesm2022/eui-eds-eds-input-button.mjs.map +1 -1
  92. package/fesm2022/eui-eds-eds-input-checkbox.mjs +6 -17
  93. package/fesm2022/eui-eds-eds-input-checkbox.mjs.map +1 -1
  94. package/fesm2022/eui-eds-eds-input-icon.mjs +10 -9
  95. package/fesm2022/eui-eds-eds-input-icon.mjs.map +1 -1
  96. package/fesm2022/eui-eds-eds-input-number.mjs +5 -14
  97. package/fesm2022/eui-eds-eds-input-number.mjs.map +1 -1
  98. package/fesm2022/eui-eds-eds-input-radio.mjs +6 -17
  99. package/fesm2022/eui-eds-eds-input-radio.mjs.map +1 -1
  100. package/fesm2022/eui-eds-eds-input-text.mjs +5 -16
  101. package/fesm2022/eui-eds-eds-input-text.mjs.map +1 -1
  102. package/fesm2022/{eui-eds-utilities-eds-label.mjs → eui-eds-eds-label.mjs} +1 -1
  103. package/fesm2022/eui-eds-eds-label.mjs.map +1 -0
  104. package/fesm2022/eui-eds-eds-language-selector.mjs +5 -9
  105. package/fesm2022/eui-eds-eds-language-selector.mjs.map +1 -1
  106. package/fesm2022/{eui-eds-utilities-eds-link.mjs → eui-eds-eds-link.mjs} +1 -1
  107. package/fesm2022/eui-eds-eds-link.mjs.map +1 -0
  108. package/fesm2022/{eui-eds-utilities-eds-loading-indicator.mjs → eui-eds-eds-loading-indicator.mjs} +1 -1
  109. package/fesm2022/eui-eds-eds-loading-indicator.mjs.map +1 -0
  110. package/fesm2022/eui-eds-eds-paginator.mjs +2 -2
  111. package/fesm2022/eui-eds-eds-paginator.mjs.map +1 -1
  112. package/fesm2022/eui-eds-eds-progress-bar.mjs +3 -3
  113. package/fesm2022/eui-eds-eds-progress-bar.mjs.map +1 -1
  114. package/fesm2022/eui-eds-eds-rating.mjs +30 -16
  115. package/fesm2022/eui-eds-eds-rating.mjs.map +1 -1
  116. package/fesm2022/eui-eds-eds-select.mjs +10 -33
  117. package/fesm2022/eui-eds-eds-select.mjs.map +1 -1
  118. package/fesm2022/{eui-eds-utilities-eds-snc.mjs → eui-eds-eds-snc.mjs} +3 -3
  119. package/fesm2022/eui-eds-eds-snc.mjs.map +1 -0
  120. package/fesm2022/eui-eds-eds-tabs.mjs +192 -259
  121. package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
  122. package/fesm2022/eui-eds-eds-textarea.mjs +5 -16
  123. package/fesm2022/eui-eds-eds-textarea.mjs.map +1 -1
  124. package/fesm2022/eui-eds-eds-tooltip.mjs +71 -86
  125. package/fesm2022/eui-eds-eds-tooltip.mjs.map +1 -1
  126. package/fesm2022/eui-eds-eds-tree-list.mjs +2 -2
  127. package/fesm2022/eui-eds-eds-tree-list.mjs.map +1 -1
  128. package/fesm2022/eui-eds-eds-tree.mjs +2 -2
  129. package/fesm2022/eui-eds-eds-tree.mjs.map +1 -1
  130. package/fesm2022/{eui-eds-utilities-eds-trend.mjs → eui-eds-eds-trend.mjs} +1 -1
  131. package/fesm2022/eui-eds-eds-trend.mjs.map +1 -0
  132. package/package.json +33 -33
  133. package/types/eui-eds-eds-button.d.ts +47 -33
  134. package/types/eui-eds-eds-button.d.ts.map +1 -1
  135. package/types/eui-eds-eds-feedback-message.d.ts +20 -10
  136. package/types/eui-eds-eds-feedback-message.d.ts.map +1 -1
  137. package/types/{eui-eds-utilities-eds-flex-layout.d.ts → eui-eds-eds-flex-layout.d.ts} +1 -1
  138. package/types/eui-eds-eds-flex-layout.d.ts.map +1 -0
  139. package/types/{eui-eds-utilities-eds-grid-layout.d.ts → eui-eds-eds-grid-layout.d.ts} +1 -1
  140. package/types/eui-eds-eds-grid-layout.d.ts.map +1 -0
  141. package/types/{eui-eds-utilities-eds-icon-state.d.ts → eui-eds-eds-icon-state.d.ts} +8 -3
  142. package/types/eui-eds-eds-icon-state.d.ts.map +1 -0
  143. package/types/eui-eds-eds-input-button.d.ts +5 -1
  144. package/types/eui-eds-eds-input-button.d.ts.map +1 -1
  145. package/types/eui-eds-eds-input-checkbox.d.ts +0 -4
  146. package/types/eui-eds-eds-input-checkbox.d.ts.map +1 -1
  147. package/types/eui-eds-eds-input-icon.d.ts +5 -1
  148. package/types/eui-eds-eds-input-icon.d.ts.map +1 -1
  149. package/types/eui-eds-eds-input-number.d.ts +1 -5
  150. package/types/eui-eds-eds-input-number.d.ts.map +1 -1
  151. package/types/eui-eds-eds-input-radio.d.ts +0 -4
  152. package/types/eui-eds-eds-input-radio.d.ts.map +1 -1
  153. package/types/eui-eds-eds-input-text.d.ts +1 -5
  154. package/types/eui-eds-eds-input-text.d.ts.map +1 -1
  155. package/types/{eui-eds-utilities-eds-label.d.ts → eui-eds-eds-label.d.ts} +1 -1
  156. package/types/eui-eds-eds-label.d.ts.map +1 -0
  157. package/types/eui-eds-eds-language-selector.d.ts.map +1 -1
  158. package/types/{eui-eds-utilities-eds-link.d.ts → eui-eds-eds-link.d.ts} +1 -1
  159. package/types/eui-eds-eds-link.d.ts.map +1 -0
  160. package/types/{eui-eds-utilities-eds-loading-indicator.d.ts → eui-eds-eds-loading-indicator.d.ts} +1 -1
  161. package/types/eui-eds-eds-loading-indicator.d.ts.map +1 -0
  162. package/types/eui-eds-eds-rating.d.ts +19 -2
  163. package/types/eui-eds-eds-rating.d.ts.map +1 -1
  164. package/types/eui-eds-eds-select.d.ts +1 -5
  165. package/types/eui-eds-eds-select.d.ts.map +1 -1
  166. package/types/{eui-eds-utilities-eds-snc.d.ts → eui-eds-eds-snc.d.ts} +1 -1
  167. package/types/eui-eds-eds-snc.d.ts.map +1 -0
  168. package/types/eui-eds-eds-tabs.d.ts +87 -100
  169. package/types/eui-eds-eds-tabs.d.ts.map +1 -1
  170. package/types/eui-eds-eds-textarea.d.ts +1 -5
  171. package/types/eui-eds-eds-textarea.d.ts.map +1 -1
  172. package/types/eui-eds-eds-tooltip.d.ts +27 -25
  173. package/types/eui-eds-eds-tooltip.d.ts.map +1 -1
  174. package/types/{eui-eds-utilities-eds-trend.d.ts → eui-eds-eds-trend.d.ts} +1 -1
  175. package/types/eui-eds-eds-trend.d.ts.map +1 -0
  176. package/fesm2022/eui-eds-utilities-eds-flex-layout.mjs.map +0 -1
  177. package/fesm2022/eui-eds-utilities-eds-grid-layout.mjs.map +0 -1
  178. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs +0 -49
  179. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs.map +0 -1
  180. package/fesm2022/eui-eds-utilities-eds-label.mjs.map +0 -1
  181. package/fesm2022/eui-eds-utilities-eds-link.mjs.map +0 -1
  182. package/fesm2022/eui-eds-utilities-eds-loading-indicator.mjs.map +0 -1
  183. package/fesm2022/eui-eds-utilities-eds-snc.mjs.map +0 -1
  184. package/fesm2022/eui-eds-utilities-eds-trend.mjs.map +0 -1
  185. package/types/eui-eds-utilities-eds-flex-layout.d.ts.map +0 -1
  186. package/types/eui-eds-utilities-eds-grid-layout.d.ts.map +0 -1
  187. package/types/eui-eds-utilities-eds-icon-state.d.ts.map +0 -1
  188. package/types/eui-eds-utilities-eds-label.d.ts.map +0 -1
  189. package/types/eui-eds-utilities-eds-link.d.ts.map +0 -1
  190. package/types/eui-eds-utilities-eds-loading-indicator.d.ts.map +0 -1
  191. package/types/eui-eds-utilities-eds-snc.d.ts.map +0 -1
  192. package/types/eui-eds-utilities-eds-trend.d.ts.map +0 -1
  193. package/utilities/eds-flex-layout/package.json +0 -4
  194. package/utilities/eds-grid-layout/package.json +0 -4
  195. package/utilities/eds-icon-state/package.json +0 -4
  196. package/utilities/eds-label/package.json +0 -4
  197. package/utilities/eds-link/package.json +0 -4
  198. package/utilities/eds-loading-indicator/package.json +0 -4
  199. package/utilities/eds-snc/package.json +0 -4
  200. package/utilities/eds-trend/package.json +0 -4
@@ -1,31 +1,35 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import * as i1 from '@eui/eds/shared';
4
- import { EdsColorDirective } from '@eui/eds/shared';
5
- import * as i2 from '@eui/eds/utilities/eds-icon-state';
6
- import { EDS_ICON_STATE } from '@eui/eds/utilities/eds-icon-state';
2
+ import { input, booleanAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from '@eui/eds/eds-icon-state';
4
+ import { EDS_ICON_STATE } from '@eui/eds/eds-icon-state';
7
5
 
8
6
  /**
9
7
  * A feedback message component that displays contextual feedback to users.
10
- * Supports different color variants (info, success, warning, critical) and a muted mode.
8
+ * Supports different color variants (primary, neutral, info, success, warning, critical) and a muted mode.
11
9
  *
12
10
  * @usageNotes
13
11
  * ### Basic feedback message
14
12
  * ```html
15
- * <eds-feedback-message edsSuccess>
13
+ * <eds-feedback-message color="success">
16
14
  * Operation completed successfully
17
15
  * </eds-feedback-message>
18
16
  * ```
19
17
  *
20
18
  * ### Muted variant (no icon)
21
19
  * ```html
22
- * <eds-feedback-message edsWarning isMuted>
20
+ * <eds-feedback-message color="warning" isMuted>
23
21
  * This is a subtle warning message
24
22
  * </eds-feedback-message>
25
23
  * ```
26
24
  */
27
25
  class EdsFeedbackMessage {
28
26
  constructor() {
27
+ /**
28
+ * Semantic color of the feedback message.
29
+ * @default 'info'
30
+ */
31
+ this.color = input('info', /* @ts-ignore */
32
+ ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
29
33
  /**
30
34
  * Controls whether the feedback message is displayed in a muted state.
31
35
  * When true, the status icon is hidden and the message has reduced visual prominence.
@@ -35,47 +39,29 @@ class EdsFeedbackMessage {
35
39
  /** Data attribute value for end-to-end testing identification. */
36
40
  this.e2eAttr = input('eds-feedback-message', /* @ts-ignore */
37
41
  ...(ngDevMode ? [{ debugName: "e2eAttr" }] : /* istanbul ignore next */ []));
38
- this.colorDirective = inject(EdsColorDirective);
39
- /** Resolved color variant name for passing to eds-icon-state. */
40
- this.iconVariant = computed(() => this.colorDirective.resolvedColor() || 'info', /* @ts-ignore */
41
- ...(ngDevMode ? [{ debugName: "iconVariant" }] : /* istanbul ignore next */ []));
42
- this.hostClasses = computed(() => {
43
- const colorClass = this.colorDirective.getCssClass('eds-feedback-message');
44
- return [
45
- 'eds-feedback-message',
46
- colorClass || 'eds-feedback-message--info',
47
- this.isMuted() ? 'eds-feedback-message--muted' : '',
48
- ]
49
- .join(' ')
50
- .trim();
42
+ /**
43
+ * Resolved color variant passed to eds-icon-state. The icon set only supports
44
+ * info / success / warning / critical, so primary and neutral fall back to info.
45
+ */
46
+ this.iconVariant = computed(() => {
47
+ const color = this.color();
48
+ return color === 'success' || color === 'warning' || color === 'critical' ? color : 'info';
51
49
  }, /* @ts-ignore */
52
- ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
50
+ ...(ngDevMode ? [{ debugName: "iconVariant" }] : /* istanbul ignore next */ []));
53
51
  }
54
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsFeedbackMessage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsFeedbackMessage, isStandalone: true, selector: "eds-feedback-message", inputs: { isMuted: { classPropertyName: "isMuted", publicName: "isMuted", isSignal: true, isRequired: false, transformFunction: null }, e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "\"status\"", "attr.aria-live": "\"polite\"", "attr.data-e2e": "e2eAttr()" } }, hostDirectives: [{ directive: i1.EdsColorDirective, inputs: ["edsPrimary", "edsPrimary", "edsNeutral", "edsNeutral", "edsInfo", "edsInfo", "edsWarning", "edsWarning", "edsSuccess", "edsSuccess", "edsCritical", "edsCritical", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "@if (!isMuted()) {\n <eds-icon-state [color]=\"$any(iconVariant())\" size=\"s\" [ariaLabel]=\"iconVariant()\"/>\n}\n<div class=\"content\">\n <ng-content />\n</div>\n", styles: [".eui-21 :host{--_color: var(--eds-c-foreground-info);align-items:center;display:flex;gap:var(--eds-sp-3xs);position:relative}.eui-21 :host .content{color:var(--_color);display:block;position:relative;font:var(--eds-f-paragraph-s)}.eui-21 :host.eds-feedback-message--primary{--_color: var(--eds-c-foreground-primary)}.eui-21 :host.eds-feedback-message--neutral{--_color: var(--eds-c-foreground-neutral)}.eui-21 :host.eds-feedback-message--info{--_color: var(--eds-c-foreground-info)}.eui-21 :host.eds-feedback-message--success{--_color: var(--eds-c-foreground-success)}.eui-21 :host.eds-feedback-message--warning{--_color: var(--eds-c-foreground-warning)}.eui-21 :host.eds-feedback-message--critical{--_color: var(--eds-c-foreground-critical)}\n"], dependencies: [{ kind: "component", type: i2.EdsIconState, selector: "eds-icon-state", inputs: ["color", "size", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsFeedbackMessage, isStandalone: true, selector: "eds-feedback-message", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, isMuted: { classPropertyName: "isMuted", publicName: "isMuted", isSignal: true, isRequired: false, transformFunction: null }, e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "attr.color": "color()", "attr.muted": "isMuted() || null", "attr.data-e2e": "e2eAttr()" } }, ngImport: i0, template: "@if (!isMuted()) {\n <eds-icon-state [color]=\"iconVariant()\" size=\"s\" [ariaLabel]=\"iconVariant()\"/>\n}\n<div class=\"content\">\n <ng-content />\n</div>\n", styles: [":host{--_eds-feedback-message-color: var(--eds-c-foreground-info);align-items:center;display:flex;gap:var(--eds-sp-3xs);position:relative}:host .content{color:var(--_eds-feedback-message-color);display:block;position:relative;font:var(--eds-f-paragraph-s)}:host([color=primary]){--_eds-feedback-message-color: var(--eds-c-foreground-primary)}:host([color=neutral]){--_eds-feedback-message-color: var(--eds-c-foreground)}:host([color=info]){--_eds-feedback-message-color: var(--eds-c-foreground-info)}:host([color=success]){--_eds-feedback-message-color: var(--eds-c-foreground-success)}:host([color=warning]){--_eds-feedback-message-color: var(--eds-c-foreground-warning)}:host([color=critical]){--_eds-feedback-message-color: var(--eds-c-foreground-critical)}\n"], dependencies: [{ kind: "component", type: i1.EdsIconState, selector: "eds-icon-state", inputs: ["color", "size", "ariaLabel", "e2eAttr"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
54
  }
57
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsFeedbackMessage, decorators: [{
58
56
  type: Component,
59
- args: [{ selector: 'eds-feedback-message', changeDetection: ChangeDetectionStrategy.OnPush, imports: [...EDS_ICON_STATE], hostDirectives: [
60
- {
61
- directive: EdsColorDirective,
62
- inputs: [
63
- 'edsPrimary',
64
- 'edsNeutral',
65
- 'edsInfo',
66
- 'edsWarning',
67
- 'edsSuccess',
68
- 'edsCritical',
69
- 'edsColorVariant',
70
- ],
71
- },
72
- ], host: {
73
- '[class]': 'hostClasses()',
74
- '[attr.role]': '"status"',
75
- '[attr.aria-live]': '"polite"',
57
+ args: [{ selector: 'eds-feedback-message', changeDetection: ChangeDetectionStrategy.OnPush, imports: [...EDS_ICON_STATE], host: {
58
+ '[attr.color]': 'color()',
59
+ '[attr.muted]': 'isMuted() || null',
60
+ role: 'status',
61
+ 'aria-live': 'polite',
76
62
  '[attr.data-e2e]': 'e2eAttr()',
77
- }, template: "@if (!isMuted()) {\n <eds-icon-state [color]=\"$any(iconVariant())\" size=\"s\" [ariaLabel]=\"iconVariant()\"/>\n}\n<div class=\"content\">\n <ng-content />\n</div>\n", styles: [".eui-21 :host{--_color: var(--eds-c-foreground-info);align-items:center;display:flex;gap:var(--eds-sp-3xs);position:relative}.eui-21 :host .content{color:var(--_color);display:block;position:relative;font:var(--eds-f-paragraph-s)}.eui-21 :host.eds-feedback-message--primary{--_color: var(--eds-c-foreground-primary)}.eui-21 :host.eds-feedback-message--neutral{--_color: var(--eds-c-foreground-neutral)}.eui-21 :host.eds-feedback-message--info{--_color: var(--eds-c-foreground-info)}.eui-21 :host.eds-feedback-message--success{--_color: var(--eds-c-foreground-success)}.eui-21 :host.eds-feedback-message--warning{--_color: var(--eds-c-foreground-warning)}.eui-21 :host.eds-feedback-message--critical{--_color: var(--eds-c-foreground-critical)}\n"] }]
78
- }], propDecorators: { isMuted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMuted", required: false }] }], e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }] } });
63
+ }, template: "@if (!isMuted()) {\n <eds-icon-state [color]=\"iconVariant()\" size=\"s\" [ariaLabel]=\"iconVariant()\"/>\n}\n<div class=\"content\">\n <ng-content />\n</div>\n", styles: [":host{--_eds-feedback-message-color: var(--eds-c-foreground-info);align-items:center;display:flex;gap:var(--eds-sp-3xs);position:relative}:host .content{color:var(--_eds-feedback-message-color);display:block;position:relative;font:var(--eds-f-paragraph-s)}:host([color=primary]){--_eds-feedback-message-color: var(--eds-c-foreground-primary)}:host([color=neutral]){--_eds-feedback-message-color: var(--eds-c-foreground)}:host([color=info]){--_eds-feedback-message-color: var(--eds-c-foreground-info)}:host([color=success]){--_eds-feedback-message-color: var(--eds-c-foreground-success)}:host([color=warning]){--_eds-feedback-message-color: var(--eds-c-foreground-warning)}:host([color=critical]){--_eds-feedback-message-color: var(--eds-c-foreground-critical)}\n"] }]
64
+ }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], isMuted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMuted", required: false }] }], e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }] } });
79
65
 
80
66
  /** Convenience array for importing all eds-feedback-message components. */
81
67
  const EDS_FEEDBACK_MESSAGE = [
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-feedback-message.mjs","sources":["../../eds-feedback-message/eds-feedback-message.ts","../../eds-feedback-message/eds-feedback-message.html","../../eds-feedback-message/index.ts","../../eds-feedback-message/eui-eds-eds-feedback-message.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, booleanAttribute, computed, inject, input } from '@angular/core';\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EDS_ICON_STATE } from '@eui/eds/utilities/eds-icon-state';\n\n/**\n * A feedback message component that displays contextual feedback to users.\n * Supports different color variants (info, success, warning, critical) and a muted mode.\n *\n * @usageNotes\n * ### Basic feedback message\n * ```html\n * <eds-feedback-message edsSuccess>\n * Operation completed successfully\n * </eds-feedback-message>\n * ```\n *\n * ### Muted variant (no icon)\n * ```html\n * <eds-feedback-message edsWarning isMuted>\n * This is a subtle warning message\n * </eds-feedback-message>\n * ```\n */\n@Component({\n selector: 'eds-feedback-message',\n templateUrl: './eds-feedback-message.html',\n styleUrl: './eds-feedback-message.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON_STATE],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsPrimary',\n 'edsNeutral',\n 'edsInfo',\n 'edsWarning',\n 'edsSuccess',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.role]': '\"status\"',\n '[attr.aria-live]': '\"polite\"',\n '[attr.data-e2e]': 'e2eAttr()',\n },\n})\nexport class EdsFeedbackMessage {\n /**\n * Controls whether the feedback message is displayed in a muted state.\n * When true, the status icon is hidden and the message has reduced visual prominence.\n * @default false\n */\n readonly isMuted = input(false, { transform: booleanAttribute });\n\n /** Data attribute value for end-to-end testing identification. */\n readonly e2eAttr = input('eds-feedback-message');\n\n protected colorDirective = inject(EdsColorDirective);\n\n /** Resolved color variant name for passing to eds-icon-state. */\n protected iconVariant = computed(() => this.colorDirective.resolvedColor() || 'info');\n\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-feedback-message');\n return [\n 'eds-feedback-message',\n colorClass || 'eds-feedback-message--info',\n this.isMuted() ? 'eds-feedback-message--muted' : '',\n ]\n .join(' ')\n .trim();\n });\n}\n","@if (!isMuted()) {\n <eds-icon-state [color]=\"$any(iconVariant())\" size=\"s\" [ariaLabel]=\"iconVariant()\"/>\n}\n<div class=\"content\">\n <ng-content />\n</div>\n","import { EdsFeedbackMessage } from './eds-feedback-message';\n\nexport { EdsFeedbackMessage };\n\n/** Convenience array for importing all eds-feedback-message components. */\nexport const EDS_FEEDBACK_MESSAGE = [\n EdsFeedbackMessage,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAIA;;;;;;;;;;;;;;;;;;AAkBG;MA4BU,kBAAkB,CAAA;AA3B/B,IAAA,WAAA,GAAA;AA4BI;;;;AAIG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,sBAAsB;oFAAC;AAEtC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAG1C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,MAAM;wFAAC;AAErF,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,sBAAsB,CAAC;YAC1E,OAAO;gBACH,sBAAsB;AACtB,gBAAA,UAAU,IAAI,4BAA4B;gBAC1C,IAAI,CAAC,OAAO,EAAE,GAAG,6BAA6B,GAAG,EAAE;AACtD;iBACI,IAAI,CAAC,GAAG;AACR,iBAAA,IAAI,EAAE;QACf,CAAC;wFAAC;AACL,IAAA;8GA1BY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,gvBClD/B,8KAMA,EAAA,MAAA,EAAA,CAAA,0uBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FD4Ca,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA3B9B,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,WACtC,CAAC,GAAG,cAAc,CAAC,EAAA,cAAA,EACZ;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,iBAAiB;AAC5B,4BAAA,MAAM,EAAE;gCACJ,YAAY;gCACZ,YAAY;gCACZ,SAAS;gCACT,YAAY;gCACZ,YAAY;gCACZ,aAAa;gCACb,iBAAiB;AACpB,6BAAA;AACJ,yBAAA;qBACJ,EAAA,IAAA,EACK;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,aAAa,EAAE,UAAU;AACzB,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,iBAAiB,EAAE,WAAW;AACjC,qBAAA,EAAA,QAAA,EAAA,8KAAA,EAAA,MAAA,EAAA,CAAA,0uBAAA,CAAA,EAAA;;;AE5CL;AACO,MAAM,oBAAoB,GAAG;IAChC,kBAAkB;;;ACNtB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-eds-eds-feedback-message.mjs","sources":["../../eds-feedback-message/eds-feedback-message.ts","../../eds-feedback-message/eds-feedback-message.html","../../eds-feedback-message/index.ts","../../eds-feedback-message/eui-eds-eds-feedback-message.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input } from '@angular/core';\nimport { EDS_ICON_STATE, EdsIconStateColor } from '@eui/eds/eds-icon-state';\n\n/**\n * Local narrowed color union — the feedback message's variant contract. No shared-token import.\n */\nexport type EdsFeedbackMessageColor = 'primary' | 'neutral' | 'info' | 'success' | 'warning' | 'critical';\n\n/**\n * A feedback message component that displays contextual feedback to users.\n * Supports different color variants (primary, neutral, info, success, warning, critical) and a muted mode.\n *\n * @usageNotes\n * ### Basic feedback message\n * ```html\n * <eds-feedback-message color=\"success\">\n * Operation completed successfully\n * </eds-feedback-message>\n * ```\n *\n * ### Muted variant (no icon)\n * ```html\n * <eds-feedback-message color=\"warning\" isMuted>\n * This is a subtle warning message\n * </eds-feedback-message>\n * ```\n */\n@Component({\n selector: 'eds-feedback-message',\n templateUrl: './eds-feedback-message.html',\n styleUrl: './eds-feedback-message.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON_STATE],\n host: {\n '[attr.color]': 'color()',\n '[attr.muted]': 'isMuted() || null',\n role: 'status',\n 'aria-live': 'polite',\n '[attr.data-e2e]': 'e2eAttr()',\n },\n})\nexport class EdsFeedbackMessage {\n /**\n * Semantic color of the feedback message.\n * @default 'info'\n */\n readonly color = input<EdsFeedbackMessageColor>('info');\n\n /**\n * Controls whether the feedback message is displayed in a muted state.\n * When true, the status icon is hidden and the message has reduced visual prominence.\n * @default false\n */\n readonly isMuted = input(false, { transform: booleanAttribute });\n\n /** Data attribute value for end-to-end testing identification. */\n readonly e2eAttr = input('eds-feedback-message');\n\n /**\n * Resolved color variant passed to eds-icon-state. The icon set only supports\n * info / success / warning / critical, so primary and neutral fall back to info.\n */\n protected readonly iconVariant = computed<EdsIconStateColor>(() => {\n const color = this.color();\n return color === 'success' || color === 'warning' || color === 'critical' ? color : 'info';\n });\n}\n","@if (!isMuted()) {\n <eds-icon-state [color]=\"iconVariant()\" size=\"s\" [ariaLabel]=\"iconVariant()\"/>\n}\n<div class=\"content\">\n <ng-content />\n</div>\n","import { EdsFeedbackMessage, EdsFeedbackMessageColor } from './eds-feedback-message';\n\nexport { EdsFeedbackMessage, EdsFeedbackMessageColor };\n\n/** Convenience array for importing all eds-feedback-message components. */\nexport const EDS_FEEDBACK_MESSAGE = [\n EdsFeedbackMessage,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAQA;;;;;;;;;;;;;;;;;;AAkBG;MAeU,kBAAkB,CAAA;AAd/B,IAAA,WAAA,GAAA;AAeI;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAA0B,MAAM;kFAAC;AAEvD;;;;AAIG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGvD,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,sBAAsB;oFAAC;AAEhD;;;AAGG;AACgB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAoB,MAAK;AAC9D,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM;QAC9F,CAAC;wFAAC;AACL,IAAA;8GAzBY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6nBCzC/B,wKAMA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDmCa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,WACtC,CAAC,GAAG,cAAc,CAAC,EAAA,IAAA,EACtB;AACF,wBAAA,cAAc,EAAE,SAAS;AACzB,wBAAA,cAAc,EAAE,mBAAmB;AACnC,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,WAAW,EAAE,QAAQ;AACrB,wBAAA,iBAAiB,EAAE,WAAW;AACjC,qBAAA,EAAA,QAAA,EAAA,wKAAA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA;;;AEnCL;AACO,MAAM,oBAAoB,GAAG;IAChC,kBAAkB;;;ACNtB;;AAEG;;;;"}
@@ -478,7 +478,7 @@ class EdsFileUpload {
478
478
  useExisting: EdsFileUpload,
479
479
  multi: true,
480
480
  },
481
- ], viewQueries: [{ propertyName: "fileInputs", predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (hasDragArea()) {\n <div\n class=\"eds-file-upload__drop-area\"\n [class.eds-file-upload__drop-area--active]=\"dragEntered()\"\n [class.eds-file-upload__drop-area--disabled]=\"isDropAreaDisabled()\">\n <button edsButton edsButtonSecondary edsSizeS type=\"button\" class=\"eds-file-upload__browse-btn\">{{ browseLabel() }}</button>\n <span class=\"eds-file-upload__drag-hint\">{{ dragLabel() }}</span>\n <input\n #input\n class=\"eds-file-upload__file-input\"\n [attr.aria-label]=\"browseLabel() + ' ' + dragLabel()\"\n type=\"file\"\n [accept]=\"accept()\"\n [attr.disabled]=\"isDropAreaDisabled() ? 'disabled' : null\"\n [multiple]=\"isMultiple()\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n </div>\n} @else {\n <div class=\"eds-file-upload__simple-input\">\n <label [attr.for]=\"'eds-file-' + randomNumberId\">\n <button edsButton edsButtonSecondary edsSizeS type=\"button\" (click)=\"openBrowseWindow()\">{{ browseLabel() }}</button>\n </label>\n @if (isMultiple()) {\n <input\n #input\n [attr.aria-label]=\"'Choose multiple files'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\"\n multiple />\n } @else {\n <input\n #input\n [attr.aria-label]=\"'Choose a single file'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\" />\n }\n </div>\n}\n\n@if (hasProgressBar() && internalProgress() > 0) {\n <eds-progress-bar\n class=\"eds-file-upload__progress\"\n [progress]=\"internalProgress()\"\n [label]=\"internalProgress() + '%'\" />\n}\n\n@if (rejectedFileMessage()) {\n <eds-feedback-message edsCritical class=\"eds-file-upload__error\">\n {{ rejectedFileLabel() }}: {{ rejectedFileMessage() }}\n </eds-feedback-message>\n}\n\n@for (uploadedFile of internalUploadedFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromUploadedList($event)\" />\n}\n\n@for (file of internalFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n isFileObject\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\" />\n}\n\n@if (filesTotalSize() && hasTotalSizeDisplayed()) {\n <div class=\"eds-file-upload__total-size\">\n {{ filesTotalSize() | edsFilesize }} {{ totalSizeLabel() }}\n </div>\n}\n\n<div class=\"eds-u-flex eds-u-flex-gap-s\">\n <ng-content />\n \n @if (showResetBtn()) {\n <button edsButton edsButtonSecondary edsSizeS type=\"button\" (click)=\"resetList()\">\n {{ resetLabel() }}\n </button>\n }\n</div>\n\n", styles: [".eui-21 :host{display:block}.eui-21 :host .eds-file-upload__drop-area{outline:1px dashed var(--eds-c-border-primary);border-radius:var(--eds-br-m);padding:var(--eds-sp-xl);position:relative;transition:background-color .2s ease,outline-width .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__drop-area--active{background-color:var(--eds-c-surface-elevation);outline-width:3px}.eui-21 :host .eds-file-upload__drop-area--disabled{opacity:.5;cursor:not-allowed}.eui-21 :host .eds-file-upload__drop-area--disabled .eds-file-upload__file-input{cursor:default}.eui-21 :host .eds-file-upload__drag-hint{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-file-upload__file-input{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.eui-21 :host .eds-file-upload__file-input:not(:disabled){cursor:pointer}.eui-21 :host .eds-file-upload__simple-input{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__simple-input .eds-file-upload__hidden-input{display:none}.eui-21 :host .eds-file-upload__progress{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__error{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__total-size{margin-top:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs);font:var(--eds-f-label-m-semibold)}.eui-21 :host .eds-file-upload__reset-btn{margin-top:var(--eds-sp-xs)}\n"], dependencies: [{ kind: "component", type: i1$1.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "edsDisabled", "edsBlockButton", "edsIconButton", "edsAvatarButton", "edsLineWrap", "edsButtonPrimary", "edsButtonSecondary", "edsButtonTertiary", "edsButtonRounded", "edsTypeVariant", "isChecked"] }, { kind: "component", type: i2$1.EdsFeedbackMessage, selector: "eds-feedback-message", inputs: ["isMuted", "e2eAttr"] }, { kind: "component", type: i3.EdsProgressBar, selector: "eds-progress-bar", inputs: ["label", "valueText", "progress", "isIndeterminate", "hasStatusIcon", "color"] }, { kind: "component", type: EdsFileUploadPreview, selector: "eds-file-upload-preview", inputs: ["file", "index", "uploadedFileTemplate", "hasPreview", "hasPreviewAsImage", "hasPreviewAsIcon", "isItemsClickable", "isFileObject", "isFilenameDisplayed", "isFilesizeDisplayed", "isFiletypeDisplayed"], outputs: ["removeFromList", "itemClick"] }, { kind: "pipe", type: EdsFilesizePipe, name: "edsFilesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
481
+ ], viewQueries: [{ propertyName: "fileInputs", predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (hasDragArea()) {\n <div\n class=\"eds-file-upload__drop-area\"\n [class.eds-file-upload__drop-area--active]=\"dragEntered()\"\n [class.eds-file-upload__drop-area--disabled]=\"isDropAreaDisabled()\">\n <button edsButton variant=\"secondary\" size=\"s\" type=\"button\" class=\"eds-file-upload__browse-btn\">{{ browseLabel() }}</button>\n <span class=\"eds-file-upload__drag-hint\">{{ dragLabel() }}</span>\n <input\n #input\n class=\"eds-file-upload__file-input\"\n [attr.aria-label]=\"browseLabel() + ' ' + dragLabel()\"\n type=\"file\"\n [accept]=\"accept()\"\n [attr.disabled]=\"isDropAreaDisabled() ? 'disabled' : null\"\n [multiple]=\"isMultiple()\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n </div>\n} @else {\n <div class=\"eds-file-upload__simple-input\">\n <label [attr.for]=\"'eds-file-' + randomNumberId\">\n <button edsButton variant=\"secondary\" size=\"s\" type=\"button\" (click)=\"openBrowseWindow()\">{{ browseLabel() }}</button>\n </label>\n @if (isMultiple()) {\n <input\n #input\n [attr.aria-label]=\"'Choose multiple files'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\"\n multiple />\n } @else {\n <input\n #input\n [attr.aria-label]=\"'Choose a single file'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\" />\n }\n </div>\n}\n\n@if (hasProgressBar() && internalProgress() > 0) {\n <eds-progress-bar\n class=\"eds-file-upload__progress\"\n [progress]=\"internalProgress()\"\n [label]=\"internalProgress() + '%'\" />\n}\n\n@if (rejectedFileMessage()) {\n <eds-feedback-message edsCritical class=\"eds-file-upload__error\">\n {{ rejectedFileLabel() }}: {{ rejectedFileMessage() }}\n </eds-feedback-message>\n}\n\n@for (uploadedFile of internalUploadedFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromUploadedList($event)\" />\n}\n\n@for (file of internalFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n isFileObject\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\" />\n}\n\n@if (filesTotalSize() && hasTotalSizeDisplayed()) {\n <div class=\"eds-file-upload__total-size\">\n {{ filesTotalSize() | edsFilesize }} {{ totalSizeLabel() }}\n </div>\n}\n\n<div class=\"eds-u-flex eds-u-flex-gap-s\">\n <ng-content />\n \n @if (showResetBtn()) {\n <button edsButton variant=\"secondary\" size=\"s\" type=\"button\" (click)=\"resetList()\">\n {{ resetLabel() }}\n </button>\n }\n</div>\n\n", styles: [".eui-21 :host{display:block}.eui-21 :host .eds-file-upload__drop-area{outline:1px dashed var(--eds-c-border-primary);border-radius:var(--eds-br-m);padding:var(--eds-sp-xl);position:relative;transition:background-color .2s ease,outline-width .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__drop-area--active{background-color:var(--eds-c-surface-elevation);outline-width:3px}.eui-21 :host .eds-file-upload__drop-area--disabled{opacity:.5;cursor:not-allowed}.eui-21 :host .eds-file-upload__drop-area--disabled .eds-file-upload__file-input{cursor:default}.eui-21 :host .eds-file-upload__drag-hint{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-file-upload__file-input{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.eui-21 :host .eds-file-upload__file-input:not(:disabled){cursor:pointer}.eui-21 :host .eds-file-upload__simple-input{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__simple-input .eds-file-upload__hidden-input{display:none}.eui-21 :host .eds-file-upload__progress{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__error{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__total-size{margin-top:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs);font:var(--eds-f-label-m-semibold)}.eui-21 :host .eds-file-upload__reset-btn{margin-top:var(--eds-sp-xs)}\n"], dependencies: [{ kind: "component", type: i1$1.EdsButton, selector: "button[edsButton]", inputs: ["e2eAttr", "id", "variant", "color", "size", "disabled", "block", "iconButton", "avatarButton", "lineWrap", "rounded", "isChecked"] }, { kind: "component", type: i2$1.EdsFeedbackMessage, selector: "eds-feedback-message", inputs: ["color", "isMuted", "e2eAttr"] }, { kind: "component", type: i3.EdsProgressBar, selector: "eds-progress-bar", inputs: ["label", "valueText", "progress", "isIndeterminate", "hasStatusIcon", "color"] }, { kind: "component", type: EdsFileUploadPreview, selector: "eds-file-upload-preview", inputs: ["file", "index", "uploadedFileTemplate", "hasPreview", "hasPreviewAsImage", "hasPreviewAsIcon", "isItemsClickable", "isFileObject", "isFilenameDisplayed", "isFilesizeDisplayed", "isFiletypeDisplayed"], outputs: ["removeFromList", "itemClick"] }, { kind: "pipe", type: EdsFilesizePipe, name: "edsFilesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
482
482
  }
483
483
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsFileUpload, decorators: [{
484
484
  type: Component,
@@ -498,7 +498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
498
498
  ], host: {
499
499
  '[class]': 'hostClasses()',
500
500
  '[attr.data-e2e]': 'e2eAttr()',
501
- }, template: "@if (hasDragArea()) {\n <div\n class=\"eds-file-upload__drop-area\"\n [class.eds-file-upload__drop-area--active]=\"dragEntered()\"\n [class.eds-file-upload__drop-area--disabled]=\"isDropAreaDisabled()\">\n <button edsButton edsButtonSecondary edsSizeS type=\"button\" class=\"eds-file-upload__browse-btn\">{{ browseLabel() }}</button>\n <span class=\"eds-file-upload__drag-hint\">{{ dragLabel() }}</span>\n <input\n #input\n class=\"eds-file-upload__file-input\"\n [attr.aria-label]=\"browseLabel() + ' ' + dragLabel()\"\n type=\"file\"\n [accept]=\"accept()\"\n [attr.disabled]=\"isDropAreaDisabled() ? 'disabled' : null\"\n [multiple]=\"isMultiple()\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n </div>\n} @else {\n <div class=\"eds-file-upload__simple-input\">\n <label [attr.for]=\"'eds-file-' + randomNumberId\">\n <button edsButton edsButtonSecondary edsSizeS type=\"button\" (click)=\"openBrowseWindow()\">{{ browseLabel() }}</button>\n </label>\n @if (isMultiple()) {\n <input\n #input\n [attr.aria-label]=\"'Choose multiple files'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\"\n multiple />\n } @else {\n <input\n #input\n [attr.aria-label]=\"'Choose a single file'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\" />\n }\n </div>\n}\n\n@if (hasProgressBar() && internalProgress() > 0) {\n <eds-progress-bar\n class=\"eds-file-upload__progress\"\n [progress]=\"internalProgress()\"\n [label]=\"internalProgress() + '%'\" />\n}\n\n@if (rejectedFileMessage()) {\n <eds-feedback-message edsCritical class=\"eds-file-upload__error\">\n {{ rejectedFileLabel() }}: {{ rejectedFileMessage() }}\n </eds-feedback-message>\n}\n\n@for (uploadedFile of internalUploadedFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromUploadedList($event)\" />\n}\n\n@for (file of internalFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n isFileObject\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\" />\n}\n\n@if (filesTotalSize() && hasTotalSizeDisplayed()) {\n <div class=\"eds-file-upload__total-size\">\n {{ filesTotalSize() | edsFilesize }} {{ totalSizeLabel() }}\n </div>\n}\n\n<div class=\"eds-u-flex eds-u-flex-gap-s\">\n <ng-content />\n \n @if (showResetBtn()) {\n <button edsButton edsButtonSecondary edsSizeS type=\"button\" (click)=\"resetList()\">\n {{ resetLabel() }}\n </button>\n }\n</div>\n\n", styles: [".eui-21 :host{display:block}.eui-21 :host .eds-file-upload__drop-area{outline:1px dashed var(--eds-c-border-primary);border-radius:var(--eds-br-m);padding:var(--eds-sp-xl);position:relative;transition:background-color .2s ease,outline-width .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__drop-area--active{background-color:var(--eds-c-surface-elevation);outline-width:3px}.eui-21 :host .eds-file-upload__drop-area--disabled{opacity:.5;cursor:not-allowed}.eui-21 :host .eds-file-upload__drop-area--disabled .eds-file-upload__file-input{cursor:default}.eui-21 :host .eds-file-upload__drag-hint{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-file-upload__file-input{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.eui-21 :host .eds-file-upload__file-input:not(:disabled){cursor:pointer}.eui-21 :host .eds-file-upload__simple-input{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__simple-input .eds-file-upload__hidden-input{display:none}.eui-21 :host .eds-file-upload__progress{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__error{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__total-size{margin-top:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs);font:var(--eds-f-label-m-semibold)}.eui-21 :host .eds-file-upload__reset-btn{margin-top:var(--eds-sp-xs)}\n"] }]
501
+ }, template: "@if (hasDragArea()) {\n <div\n class=\"eds-file-upload__drop-area\"\n [class.eds-file-upload__drop-area--active]=\"dragEntered()\"\n [class.eds-file-upload__drop-area--disabled]=\"isDropAreaDisabled()\">\n <button edsButton variant=\"secondary\" size=\"s\" type=\"button\" class=\"eds-file-upload__browse-btn\">{{ browseLabel() }}</button>\n <span class=\"eds-file-upload__drag-hint\">{{ dragLabel() }}</span>\n <input\n #input\n class=\"eds-file-upload__file-input\"\n [attr.aria-label]=\"browseLabel() + ' ' + dragLabel()\"\n type=\"file\"\n [accept]=\"accept()\"\n [attr.disabled]=\"isDropAreaDisabled() ? 'disabled' : null\"\n [multiple]=\"isMultiple()\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n </div>\n} @else {\n <div class=\"eds-file-upload__simple-input\">\n <label [attr.for]=\"'eds-file-' + randomNumberId\">\n <button edsButton variant=\"secondary\" size=\"s\" type=\"button\" (click)=\"openBrowseWindow()\">{{ browseLabel() }}</button>\n </label>\n @if (isMultiple()) {\n <input\n #input\n [attr.aria-label]=\"'Choose multiple files'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\"\n multiple />\n } @else {\n <input\n #input\n [attr.aria-label]=\"'Choose a single file'\"\n class=\"eds-file-upload__hidden-input\"\n [id]=\"'eds-file-' + randomNumberId\"\n type=\"file\"\n [accept]=\"accept()\" />\n }\n </div>\n}\n\n@if (hasProgressBar() && internalProgress() > 0) {\n <eds-progress-bar\n class=\"eds-file-upload__progress\"\n [progress]=\"internalProgress()\"\n [label]=\"internalProgress() + '%'\" />\n}\n\n@if (rejectedFileMessage()) {\n <eds-feedback-message edsCritical class=\"eds-file-upload__error\">\n {{ rejectedFileLabel() }}: {{ rejectedFileMessage() }}\n </eds-feedback-message>\n}\n\n@for (uploadedFile of internalUploadedFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromUploadedList($event)\" />\n}\n\n@for (file of internalFiles(); let i = $index; track i) {\n <eds-file-upload-preview\n isFileObject\n [isItemsClickable]=\"isItemsClickable()\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview()\"\n [hasPreviewAsImage]=\"effectiveHasPreviewAsImage()\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon()\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\" />\n}\n\n@if (filesTotalSize() && hasTotalSizeDisplayed()) {\n <div class=\"eds-file-upload__total-size\">\n {{ filesTotalSize() | edsFilesize }} {{ totalSizeLabel() }}\n </div>\n}\n\n<div class=\"eds-u-flex eds-u-flex-gap-s\">\n <ng-content />\n \n @if (showResetBtn()) {\n <button edsButton variant=\"secondary\" size=\"s\" type=\"button\" (click)=\"resetList()\">\n {{ resetLabel() }}\n </button>\n }\n</div>\n\n", styles: [".eui-21 :host{display:block}.eui-21 :host .eds-file-upload__drop-area{outline:1px dashed var(--eds-c-border-primary);border-radius:var(--eds-br-m);padding:var(--eds-sp-xl);position:relative;transition:background-color .2s ease,outline-width .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__drop-area--active{background-color:var(--eds-c-surface-elevation);outline-width:3px}.eui-21 :host .eds-file-upload__drop-area--disabled{opacity:.5;cursor:not-allowed}.eui-21 :host .eds-file-upload__drop-area--disabled .eds-file-upload__file-input{cursor:default}.eui-21 :host .eds-file-upload__drag-hint{font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-file-upload__file-input{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.eui-21 :host .eds-file-upload__file-input:not(:disabled){cursor:pointer}.eui-21 :host .eds-file-upload__simple-input{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__simple-input .eds-file-upload__hidden-input{display:none}.eui-21 :host .eds-file-upload__progress{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__error{margin-bottom:var(--eds-sp-xs)}.eui-21 :host .eds-file-upload__total-size{margin-top:var(--eds-sp-xs);margin-bottom:var(--eds-sp-xs);font:var(--eds-f-label-m-semibold)}.eui-21 :host .eds-file-upload__reset-btn{margin-top:var(--eds-sp-xs)}\n"] }]
502
502
  }], ctorParameters: () => [], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], maxFiles: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxFiles", required: false }] }], isMultiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMultiple", required: false }] }], hasProgressBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasProgressBar", required: false }] }], hasPreview: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasPreview", required: false }] }], hasPreviewAsImage: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasPreviewAsImage", required: false }] }], hasPreviewAsIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasPreviewAsIcon", required: false }] }], hasTotalSizeDisplayed: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTotalSizeDisplayed", required: false }] }], hasResetButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasResetButton", required: false }] }], hasDragArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDragArea", required: false }] }], isItemsClickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isItemsClickable", required: false }] }], browseLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "browseLabel", required: false }] }], dragLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragLabel", required: false }] }], resetLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "resetLabel", required: false }] }], totalSizeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalSizeLabel", required: false }] }], rejectedFileLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rejectedFileLabel", required: false }] }], fileDrop: [{ type: i0.Output, args: ["fileDrop"] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], fileInputs: [{ type: i0.ViewChildren, args: ['input', { isSignal: true }] }], emitFiles: [{
503
503
  type: HostListener,
504
504
  args: ['change', ['$any($event.target).files']]