@ukic/canary-web-components 2.0.0-canary.10 → 2.0.0-canary.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/helpers-7a069459.js.map +1 -1
  3. package/dist/cjs/helpers-f75cf7cf.js.map +1 -1
  4. package/dist/cjs/ic-badge.cjs.entry.js +15 -7
  5. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-date-input.cjs.entry.js +24 -8
  7. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-date-picker.cjs.entry.js +3 -3
  9. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-dialog.cjs.entry.js +2 -1
  11. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/collection/components/ic-date-input/ic-date-input.js +52 -8
  14. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  15. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +0 -17
  16. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -1
  17. package/dist/collection/components/ic-date-picker/ic-date-picker.js +3 -3
  18. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  19. package/dist/collection/components/ic-date-picker/story-data.js +1 -0
  20. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  21. package/dist/collection/utils/helpers.js +14 -0
  22. package/dist/collection/utils/helpers.js.map +1 -1
  23. package/dist/components/helpers.js.map +1 -1
  24. package/dist/components/helpers2.js.map +1 -1
  25. package/dist/components/ic-badge.js +16 -8
  26. package/dist/components/ic-badge.js.map +1 -1
  27. package/dist/components/ic-date-input2.js +26 -9
  28. package/dist/components/ic-date-input2.js.map +1 -1
  29. package/dist/components/ic-date-picker.js +3 -3
  30. package/dist/components/ic-date-picker.js.map +1 -1
  31. package/dist/components/ic-dialog.js +2 -1
  32. package/dist/components/ic-dialog.js.map +1 -1
  33. package/dist/core/core.esm.js +1 -1
  34. package/dist/core/core.esm.js.map +1 -1
  35. package/dist/core/{p-ca8cbd6a.entry.js → p-0080bbce.entry.js} +2 -2
  36. package/dist/core/{p-6690bc04.entry.js → p-02d0ecd2.entry.js} +2 -2
  37. package/dist/core/{p-a0f9b259.entry.js → p-0388b484.entry.js} +2 -2
  38. package/dist/core/{p-982a6e88.entry.js → p-06aef486.entry.js} +2 -2
  39. package/dist/core/{p-1ce75941.entry.js → p-0b32ba5b.entry.js} +2 -2
  40. package/dist/core/{p-d4fdd8c1.entry.js → p-170f6408.entry.js} +2 -2
  41. package/dist/core/{p-2c1fecb9.entry.js → p-1857e9a7.entry.js} +2 -2
  42. package/dist/core/{p-a42c2f37.entry.js → p-1f1b4b8b.entry.js} +2 -2
  43. package/dist/core/{p-2e2e0099.entry.js → p-21da96a9.entry.js} +2 -2
  44. package/dist/core/{p-b306cbc8.entry.js → p-221d03e1.entry.js} +2 -2
  45. package/dist/core/{p-7cecf5d5.entry.js → p-23a13636.entry.js} +2 -2
  46. package/dist/core/{p-86012178.entry.js → p-25a458bf.entry.js} +2 -2
  47. package/dist/core/{p-d35c7c18.js → p-2c3cdfa3.js} +2 -2
  48. package/dist/core/{p-d35c7c18.js.map → p-2c3cdfa3.js.map} +1 -1
  49. package/dist/core/{p-5fe96107.entry.js → p-2f31bb92.entry.js} +2 -2
  50. package/dist/core/{p-8c90110a.entry.js → p-31fdb740.entry.js} +2 -2
  51. package/dist/core/p-40ba5a51.entry.js +2 -0
  52. package/dist/core/p-40ba5a51.entry.js.map +1 -0
  53. package/dist/core/p-4f0178a7.entry.js +2 -0
  54. package/dist/core/{p-d5c99ec3.entry.js.map → p-4f0178a7.entry.js.map} +1 -1
  55. package/dist/core/{p-9d540656.entry.js → p-56d01bdb.entry.js} +2 -2
  56. package/dist/core/p-5d6750ea.entry.js +2 -0
  57. package/dist/core/p-5d6750ea.entry.js.map +1 -0
  58. package/dist/core/{p-776671cf.entry.js → p-655df7fe.entry.js} +2 -2
  59. package/dist/core/{p-1b7d426b.entry.js → p-65a8c1d6.entry.js} +2 -2
  60. package/dist/core/{p-a6447b13.entry.js → p-6e32683c.entry.js} +2 -2
  61. package/dist/core/{p-5e2e6c3b.entry.js → p-70b48a14.entry.js} +2 -2
  62. package/dist/core/{p-76d26018.entry.js → p-7373beb0.entry.js} +2 -2
  63. package/dist/core/{p-1832f4b5.entry.js → p-75a2cdac.entry.js} +2 -2
  64. package/dist/core/{p-8ab12a15.entry.js → p-7c0f24b6.entry.js} +2 -2
  65. package/dist/core/{p-98448bdb.entry.js → p-8f1aa87d.entry.js} +2 -2
  66. package/dist/core/{p-e74f1d09.entry.js → p-95374ba1.entry.js} +2 -2
  67. package/dist/core/{p-06ae5bec.entry.js → p-98c8d46a.entry.js} +2 -2
  68. package/dist/core/{p-f55ad6ae.entry.js → p-9f9b3151.entry.js} +2 -2
  69. package/dist/core/{p-4f1ffa39.entry.js → p-a16c6ff3.entry.js} +2 -2
  70. package/dist/core/{p-5392bca0.entry.js → p-a22fd338.entry.js} +2 -2
  71. package/dist/core/{p-85609bdd.entry.js → p-a6e9a8e7.entry.js} +2 -2
  72. package/dist/core/p-b1e3f20a.entry.js +2 -0
  73. package/dist/core/{p-8ea47d42.entry.js.map → p-b1e3f20a.entry.js.map} +1 -1
  74. package/dist/core/{p-5759d771.entry.js → p-b1e646e4.entry.js} +2 -2
  75. package/dist/core/{p-d3856ed3.entry.js → p-b3ce9fe4.entry.js} +2 -2
  76. package/dist/core/{p-33679c06.entry.js → p-c680c7f9.entry.js} +2 -2
  77. package/dist/core/p-cd799087.js.map +1 -1
  78. package/dist/core/{p-0939ce92.entry.js → p-ce898d90.entry.js} +2 -2
  79. package/dist/core/p-d184d9e2.entry.js +2 -0
  80. package/dist/core/p-d184d9e2.entry.js.map +1 -0
  81. package/dist/core/{p-16f67397.entry.js → p-df5d7aa4.entry.js} +2 -2
  82. package/dist/core/{p-9d01a7ad.entry.js → p-df63896a.entry.js} +2 -2
  83. package/dist/core/{p-62e22508.entry.js → p-e21083c8.entry.js} +2 -2
  84. package/dist/core/{p-47ac6838.entry.js → p-e2155d7f.entry.js} +2 -2
  85. package/dist/core/{p-caf857de.entry.js → p-e33bdca9.entry.js} +2 -2
  86. package/dist/core/{p-3745da83.entry.js → p-e9e7a7f9.entry.js} +2 -2
  87. package/dist/core/{p-c7820c23.entry.js → p-ee09f1b3.entry.js} +2 -2
  88. package/dist/core/{p-f91527a0.entry.js → p-eeacd610.entry.js} +2 -2
  89. package/dist/core/{p-6c0e2ceb.entry.js → p-f24c9356.entry.js} +2 -2
  90. package/dist/core/p-f5d5f0be.entry.js +2 -0
  91. package/dist/core/p-f5d5f0be.entry.js.map +1 -0
  92. package/dist/core/{p-d32692e2.entry.js → p-f62cd6d2.entry.js} +2 -2
  93. package/dist/core/{p-ae422058.entry.js → p-fb58d1d1.entry.js} +2 -2
  94. package/dist/esm/core.js +1 -1
  95. package/dist/esm/{helpers-7aa21b0a.js → helpers-b5f64263.js} +2 -2
  96. package/dist/esm/{helpers-7aa21b0a.js.map → helpers-b5f64263.js.map} +1 -1
  97. package/dist/esm/helpers-f328a7b6.js.map +1 -1
  98. package/dist/esm/ic-accordion.entry.js +1 -1
  99. package/dist/esm/ic-alert.entry.js +1 -1
  100. package/dist/esm/ic-back-to-top.entry.js +1 -1
  101. package/dist/esm/ic-badge.entry.js +16 -8
  102. package/dist/esm/ic-badge.entry.js.map +1 -1
  103. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  104. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  105. package/dist/esm/ic-button_3.entry.js +1 -1
  106. package/dist/esm/ic-card.entry.js +1 -1
  107. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  108. package/dist/esm/ic-checkbox.entry.js +1 -1
  109. package/dist/esm/ic-chip.entry.js +1 -1
  110. package/dist/esm/ic-data-row.entry.js +1 -1
  111. package/dist/esm/ic-date-input.entry.js +24 -8
  112. package/dist/esm/ic-date-input.entry.js.map +1 -1
  113. package/dist/esm/ic-date-picker.entry.js +3 -3
  114. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  115. package/dist/esm/ic-dialog.entry.js +3 -2
  116. package/dist/esm/ic-dialog.entry.js.map +1 -1
  117. package/dist/esm/ic-divider.entry.js +1 -1
  118. package/dist/esm/ic-empty-state.entry.js +1 -1
  119. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  120. package/dist/esm/ic-footer-link.entry.js +1 -1
  121. package/dist/esm/ic-footer.entry.js +1 -1
  122. package/dist/esm/ic-hero.entry.js +1 -1
  123. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  124. package/dist/esm/ic-input-component-container_4.entry.js +1 -1
  125. package/dist/esm/ic-link.entry.js +1 -1
  126. package/dist/esm/ic-menu-group.entry.js +1 -1
  127. package/dist/esm/ic-menu-item.entry.js +1 -1
  128. package/dist/esm/ic-menu.entry.js +1 -1
  129. package/dist/esm/ic-navigation-button.entry.js +1 -1
  130. package/dist/esm/ic-navigation-group.entry.js +1 -1
  131. package/dist/esm/ic-navigation-item.entry.js +1 -1
  132. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  133. package/dist/esm/ic-page-header.entry.js +1 -1
  134. package/dist/esm/ic-pagination_4.entry.js +1 -1
  135. package/dist/esm/ic-popover-menu.entry.js +1 -1
  136. package/dist/esm/ic-radio-group.entry.js +1 -1
  137. package/dist/esm/ic-radio-option.entry.js +1 -1
  138. package/dist/esm/ic-search-bar.entry.js +1 -1
  139. package/dist/esm/ic-side-navigation.entry.js +1 -1
  140. package/dist/esm/ic-status-tag.entry.js +1 -1
  141. package/dist/esm/ic-step.entry.js +1 -1
  142. package/dist/esm/ic-stepper.entry.js +1 -1
  143. package/dist/esm/ic-switch.entry.js +1 -1
  144. package/dist/esm/ic-tab-group.entry.js +1 -1
  145. package/dist/esm/ic-tab-panel.entry.js +1 -1
  146. package/dist/esm/ic-tab.entry.js +1 -1
  147. package/dist/esm/ic-theme.entry.js +1 -1
  148. package/dist/esm/ic-toast.entry.js +1 -1
  149. package/dist/esm/ic-toggle-button.entry.js +1 -1
  150. package/dist/esm/ic-top-navigation.entry.js +1 -1
  151. package/dist/esm/ic-typography.entry.js +1 -1
  152. package/dist/esm/loader.js +1 -1
  153. package/dist/types/components/ic-date-input/ic-date-input.d.ts +6 -0
  154. package/dist/types/components.d.ts +1 -0
  155. package/dist/types/utils/helpers.d.ts +1 -0
  156. package/hydrate/index.js +46 -20
  157. package/package.json +3 -3
  158. package/dist/core/p-36508aad.entry.js +0 -2
  159. package/dist/core/p-36508aad.entry.js.map +0 -1
  160. package/dist/core/p-550a5674.entry.js +0 -2
  161. package/dist/core/p-550a5674.entry.js.map +0 -1
  162. package/dist/core/p-8ea47d42.entry.js +0 -2
  163. package/dist/core/p-d5c99ec3.entry.js +0 -2
  164. package/dist/core/p-e5d76564.entry.js +0 -2
  165. package/dist/core/p-e5d76564.entry.js.map +0 -1
  166. package/dist/core/p-e84b0310.entry.js +0 -2
  167. package/dist/core/p-e84b0310.entry.js.map +0 -1
  168. /package/dist/core/{p-ca8cbd6a.entry.js.map → p-0080bbce.entry.js.map} +0 -0
  169. /package/dist/core/{p-6690bc04.entry.js.map → p-02d0ecd2.entry.js.map} +0 -0
  170. /package/dist/core/{p-a0f9b259.entry.js.map → p-0388b484.entry.js.map} +0 -0
  171. /package/dist/core/{p-982a6e88.entry.js.map → p-06aef486.entry.js.map} +0 -0
  172. /package/dist/core/{p-1ce75941.entry.js.map → p-0b32ba5b.entry.js.map} +0 -0
  173. /package/dist/core/{p-d4fdd8c1.entry.js.map → p-170f6408.entry.js.map} +0 -0
  174. /package/dist/core/{p-2c1fecb9.entry.js.map → p-1857e9a7.entry.js.map} +0 -0
  175. /package/dist/core/{p-a42c2f37.entry.js.map → p-1f1b4b8b.entry.js.map} +0 -0
  176. /package/dist/core/{p-2e2e0099.entry.js.map → p-21da96a9.entry.js.map} +0 -0
  177. /package/dist/core/{p-b306cbc8.entry.js.map → p-221d03e1.entry.js.map} +0 -0
  178. /package/dist/core/{p-7cecf5d5.entry.js.map → p-23a13636.entry.js.map} +0 -0
  179. /package/dist/core/{p-86012178.entry.js.map → p-25a458bf.entry.js.map} +0 -0
  180. /package/dist/core/{p-5fe96107.entry.js.map → p-2f31bb92.entry.js.map} +0 -0
  181. /package/dist/core/{p-8c90110a.entry.js.map → p-31fdb740.entry.js.map} +0 -0
  182. /package/dist/core/{p-9d540656.entry.js.map → p-56d01bdb.entry.js.map} +0 -0
  183. /package/dist/core/{p-776671cf.entry.js.map → p-655df7fe.entry.js.map} +0 -0
  184. /package/dist/core/{p-1b7d426b.entry.js.map → p-65a8c1d6.entry.js.map} +0 -0
  185. /package/dist/core/{p-a6447b13.entry.js.map → p-6e32683c.entry.js.map} +0 -0
  186. /package/dist/core/{p-5e2e6c3b.entry.js.map → p-70b48a14.entry.js.map} +0 -0
  187. /package/dist/core/{p-76d26018.entry.js.map → p-7373beb0.entry.js.map} +0 -0
  188. /package/dist/core/{p-1832f4b5.entry.js.map → p-75a2cdac.entry.js.map} +0 -0
  189. /package/dist/core/{p-8ab12a15.entry.js.map → p-7c0f24b6.entry.js.map} +0 -0
  190. /package/dist/core/{p-98448bdb.entry.js.map → p-8f1aa87d.entry.js.map} +0 -0
  191. /package/dist/core/{p-e74f1d09.entry.js.map → p-95374ba1.entry.js.map} +0 -0
  192. /package/dist/core/{p-06ae5bec.entry.js.map → p-98c8d46a.entry.js.map} +0 -0
  193. /package/dist/core/{p-f55ad6ae.entry.js.map → p-9f9b3151.entry.js.map} +0 -0
  194. /package/dist/core/{p-4f1ffa39.entry.js.map → p-a16c6ff3.entry.js.map} +0 -0
  195. /package/dist/core/{p-5392bca0.entry.js.map → p-a22fd338.entry.js.map} +0 -0
  196. /package/dist/core/{p-85609bdd.entry.js.map → p-a6e9a8e7.entry.js.map} +0 -0
  197. /package/dist/core/{p-5759d771.entry.js.map → p-b1e646e4.entry.js.map} +0 -0
  198. /package/dist/core/{p-d3856ed3.entry.js.map → p-b3ce9fe4.entry.js.map} +0 -0
  199. /package/dist/core/{p-33679c06.entry.js.map → p-c680c7f9.entry.js.map} +0 -0
  200. /package/dist/core/{p-0939ce92.entry.js.map → p-ce898d90.entry.js.map} +0 -0
  201. /package/dist/core/{p-16f67397.entry.js.map → p-df5d7aa4.entry.js.map} +0 -0
  202. /package/dist/core/{p-9d01a7ad.entry.js.map → p-df63896a.entry.js.map} +0 -0
  203. /package/dist/core/{p-62e22508.entry.js.map → p-e21083c8.entry.js.map} +0 -0
  204. /package/dist/core/{p-47ac6838.entry.js.map → p-e2155d7f.entry.js.map} +0 -0
  205. /package/dist/core/{p-caf857de.entry.js.map → p-e33bdca9.entry.js.map} +0 -0
  206. /package/dist/core/{p-3745da83.entry.js.map → p-e9e7a7f9.entry.js.map} +0 -0
  207. /package/dist/core/{p-c7820c23.entry.js.map → p-ee09f1b3.entry.js.map} +0 -0
  208. /package/dist/core/{p-f91527a0.entry.js.map → p-eeacd610.entry.js.map} +0 -0
  209. /package/dist/core/{p-6c0e2ceb.entry.js.map → p-f24c9356.entry.js.map} +0 -0
  210. /package/dist/core/{p-d32692e2.entry.js.map → p-f62cd6d2.entry.js.map} +0 -0
  211. /package/dist/core/{p-ae422058.entry.js.map → p-fb58d1d1.entry.js.map} +0 -0
@@ -11,6 +11,7 @@ const icBadgeCss = "@media (prefers-reduced-motion: no-preference){:host(.show){
11
11
  const Badge = class {
12
12
  constructor(hostRef) {
13
13
  index.registerInstance(this, hostRef);
14
+ this.ariaLabel = null;
14
15
  this.setBadgeColour = () => {
15
16
  let colorRGBA = null;
16
17
  if (this.customColor !== null) {
@@ -93,13 +94,22 @@ const Badge = class {
93
94
  }
94
95
  return label;
95
96
  };
97
+ // Set aria-label on badge and / or parent element
98
+ // Aria-describedby seems to not work, probably due to shadow DOM
96
99
  this.setAccessibleLabel = () => {
100
+ const parentElType = helpers.getParentElementType(this.el);
101
+ const parentElAriaLabel = helpers.getParentElement(this.el).ariaLabel;
102
+ const defaultAriaLabel = this.isAccessibleLabelDefined()
103
+ ? this.accessibleLabel
104
+ : this.textLabel || "with badge being displayed";
97
105
  if (helpers.getParentElement(this.el) !== null) {
98
- if (helpers.getParentElementType(this.el) === "IC-TAB") {
99
- helpers.getParentElement(this.el).setAttribute("aria-describedby", "badge");
106
+ if (parentElType !== "IC-CARD" &&
107
+ (parentElType !== "IC-TAB" ||
108
+ (parentElType === "IC-TAB" && parentElAriaLabel))) {
109
+ helpers.getParentElement(this.el).ariaLabel = `${parentElAriaLabel ? `${parentElAriaLabel} ,` : ""} ${defaultAriaLabel}`;
100
110
  }
101
111
  else {
102
- helpers.getParentElement(this.el).ariaLabel = `badge displaying ${this.accessibleLabel}`;
112
+ this.ariaLabel = `, ${defaultAriaLabel}`;
103
113
  }
104
114
  }
105
115
  };
@@ -119,7 +129,7 @@ const Badge = class {
119
129
  componentWillLoad() {
120
130
  this.variant === "custom" && this.setBadgeColour();
121
131
  this.getBadgeForeground();
122
- this.isAccessibleLabelDefined() && this.setAccessibleLabel();
132
+ this.setAccessibleLabel();
123
133
  }
124
134
  componentDidLoad() {
125
135
  this.type === "text" &&
@@ -147,9 +157,7 @@ const Badge = class {
147
157
  [`foreground-${foregroundColour}`]: foregroundColour !== null,
148
158
  ["show"]: visible,
149
159
  ["hide"]: !visible,
150
- }, id: this.el.id || null, "aria-label": this.isAccessibleLabelDefined()
151
- ? `badge displaying ${this.accessibleLabel}`
152
- : "badge being displayed", role: "status" }, type === "icon" && index.h("slot", { name: "badge-icon" }), type === "text" && (index.h("ic-typography", { variant: size === "small" ? "badge-small" : "badge" }, this.getTextLabel()))));
160
+ }, id: this.el.id || null, "aria-label": this.ariaLabel, role: "status" }, type === "icon" && index.h("slot", { name: "badge-icon" }), type === "text" && (index.h("ic-typography", { variant: size === "small" ? "badge-small" : "badge" }, this.getTextLabel()))));
153
161
  }
154
162
  static get delegatesFocus() { return true; }
155
163
  get el() { return index.getElement(this); }
@@ -1 +1 @@
1
- {"file":"ic-badge.entry.cjs.js","mappings":"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","names":["hexToRgba","rgbaStrToObj","getCssProperty","IcThemeForegroundEnum","getParentElement","getParentElementType","isPropDefined","onComponentRequiredPropUndefined","h","Host"],"sources":["../web-components/dist/collection/components/ic-badge/ic-badge.css?tag=ic-badge&encapsulation=shadow","../web-components/dist/collection/components/ic-badge/ic-badge.js"],"sourcesContent":["@media (prefers-reduced-motion: no-preference) {\n :host(.show) {\n animation: expand var(--ic-transition-duration-slow);\n }\n\n :host(.hide) {\n animation: shrink var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n display: flex;\n height: var(--ic-space-md);\n min-width: var(--ic-space-md);\n width: -moz-fit-content;\n width: fit-content;\n border-radius: calc(2 * var(--ic-space-xxl));\n position: absolute;\n}\n\n:host(.neutral) {\n background-color: var(--ic-architectural-500);\n}\n\n:host(.light) {\n background-color: var(--ic-architectural-40);\n}\n\n:host(.info) {\n background-color: var(--ic-status-info);\n}\n\n:host(.warning) {\n background-color: var(--ic-status-warning-mid);\n}\n\n:host(.error) {\n background-color: var(--ic-status-error);\n}\n\n:host(.success) {\n background-color: var(--ic-status-success);\n}\n\n:host(.small) {\n height: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.large) {\n height: calc(var(--ic-space-md) + var(--ic-space-xxs));\n min-width: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n:host(.dot.default) {\n height: var(--ic-space-xs);\n width: var(--ic-space-xs);\n min-width: var(--ic-space-xs);\n}\n\n:host(.dot.small) {\n height: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n min-width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.dot.large) {\n height: var(--ic-space-sm);\n width: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.foreground-dark) ::slotted(*) {\n fill: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ::slotted(*) {\n fill: white;\n}\n\n:host(.foreground-dark) ic-typography {\n color: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ic-typography {\n color: white;\n}\n\n:host(.text) ic-typography {\n align-self: center;\n padding: 0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.text.small) ic-typography {\n padding: 0 0.2132rem;\n}\n\n:host(.text.large) ic-typography {\n padding: 0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.icon) ::slotted(svg) {\n width: var(--ic-space-sm);\n height: var(--ic-space-sm);\n padding: var(--ic-space-xxxs);\n}\n\n:host(.icon.small) ::slotted(svg) {\n width: var(--ic-space-xs);\n height: var(--ic-space-xs);\n}\n\n:host(.icon.large) ::slotted(svg) {\n width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n height: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n}\n\n:host(.far) {\n top: calc(-1 * var(--ic-space-xs));\n right: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.far.small),\n:host(.dot.far.large) {\n top: calc(-1 * var(--ic-space-xxs));\n right: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.dot.far),\n:host(.dot.far.small) {\n top: calc(-1 * var(--ic-space-xxxs));\n right: calc(-1 * var(--ic-space-xxxs));\n}\n\n:host(.near) {\n top: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n right: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n}\n\n:host(.dot.near) {\n top: calc(-1 * var(--ic-space-1px));\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.inline) {\n position: static;\n}\n\n:host(.hide) {\n visibility: hidden !important;\n transition: visibility var(--ic-transition-duration-slow);\n}\n\n@keyframes expand {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes shrink {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0);\n }\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcThemeForegroundEnum, } from \"../../utils/types\";\nimport { getCssProperty, getParentElement, getParentElementType, hexToRgba, isPropDefined, onComponentRequiredPropUndefined, rgbaStrToObj, } from \"../../utils/helpers\";\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\nexport class Badge {\n constructor() {\n this.setBadgeColour = () => {\n let colorRGBA = null;\n if (this.customColor !== null) {\n const firstChar = this.customColor.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGBA = hexToRgba(this.customColor);\n }\n else if (firstChar.toLowerCase() === \"r\") {\n colorRGBA = rgbaStrToObj(this.customColor);\n }\n this.customColorRGBA = colorRGBA;\n this.el.style.backgroundColor = `rgba(${colorRGBA.r.toString()}, ${colorRGBA.g.toString()}, ${colorRGBA.b.toString()}, ${colorRGBA.a.toString()})`;\n }\n };\n this.getBadgeForeground = () => {\n let red;\n let green;\n let blue;\n switch (this.variant) {\n case \"custom\":\n red = this.customColorRGBA.r;\n green = this.customColorRGBA.g;\n blue = this.customColorRGBA.b;\n break;\n case \"error\":\n red = parseInt(getCssProperty(\"--ic-status-error-r\"));\n green = parseInt(getCssProperty(\"--ic-status-error-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-error-b\"));\n break;\n case \"success\":\n red = parseInt(getCssProperty(\"--ic-status-success-r\"));\n green = parseInt(getCssProperty(\"--ic-status-success-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-success-b\"));\n break;\n case \"warning\":\n red = parseInt(getCssProperty(\"--ic-status-warning-r\"));\n green = parseInt(getCssProperty(\"--ic-status-warning-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-warning-b\"));\n break;\n case \"info\": {\n const info = hexToRgba(getCssProperty(\"--ic-status-info\"));\n red = info.r;\n green = info.g;\n blue = info.b;\n break;\n }\n case \"neutral\": {\n const neutral = hexToRgba(getCssProperty(\"--ic-architectural-500\"));\n red = neutral.r;\n green = neutral.g;\n blue = neutral.b;\n break;\n }\n case \"light\": {\n const light = hexToRgba(getCssProperty(\"--ic-architectural-40\"));\n red = light.r;\n green = light.g;\n blue = light.b;\n break;\n }\n }\n const brightness = (red * 299 + green * 587 + blue * 114) / 1000;\n this.foregroundColour =\n brightness > 133.3505\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n };\n this.getTextLabel = () => {\n let label;\n if (this.textLabel !== null) {\n if (this.maxNumber !== null) {\n label =\n Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n }\n else {\n label = this.textLabel;\n }\n }\n return label;\n };\n this.setAccessibleLabel = () => {\n if (getParentElement(this.el) !== null) {\n if (getParentElementType(this.el) === \"IC-TAB\") {\n getParentElement(this.el).setAttribute(\"aria-describedby\", \"badge\");\n }\n else {\n getParentElement(this.el).ariaLabel = `badge displaying ${this.accessibleLabel}`;\n }\n }\n };\n this.isAccessibleLabelDefined = () => {\n return isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n };\n this.accessibleLabel = undefined;\n this.customColor = null;\n this.maxNumber = undefined;\n this.position = \"far\";\n this.size = \"default\";\n this.textLabel = undefined;\n this.type = \"text\";\n this.variant = \"neutral\";\n this.visible = true;\n }\n componentWillLoad() {\n this.variant === \"custom\" && this.setBadgeColour();\n this.getBadgeForeground();\n this.isAccessibleLabelDefined() && this.setAccessibleLabel();\n }\n componentDidLoad() {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined([{ prop: this.textLabel, propName: \"text-label\" }], \"Badge\");\n }\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n async showBadge() {\n this.visible = true;\n }\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n async hideBadge() {\n this.visible = false;\n }\n render() {\n const { position, size, type, variant, foregroundColour, visible } = this;\n return (h(Host, { class: {\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [\"show\"]: visible,\n [\"hide\"]: !visible,\n }, id: this.el.id || null, \"aria-label\": this.isAccessibleLabelDefined()\n ? `badge displaying ${this.accessibleLabel}`\n : \"badge being displayed\", role: \"status\" }, type === \"icon\" && h(\"slot\", { name: \"badge-icon\" }), type === \"text\" && (h(\"ic-typography\", { variant: size === \"small\" ? \"badge-small\" : \"badge\" }, this.getTextLabel()))));\n }\n static get is() { return \"ic-badge\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-badge.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-badge.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The accessible label of the badge component to provide context for screen reader users.\"\n },\n \"attribute\": \"accessible-label\",\n \"reflect\": false\n },\n \"customColor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcColor\",\n \"resolved\": \"`#${string}` | `rgb(${string})` | `rgba(${string})`\",\n \"references\": {\n \"IcColor\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcColor\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The custom badge colour. This will only style the badge component if variant=\\\"custom\\\".\\nCan be a hex value e.g. \\\"#ff0000\\\", RGB e.g. \\\"rgb(255, 0, 0)\\\", or RGBA e.g. \\\"rgba(255, 0, 0, 1)\\\".\"\n },\n \"attribute\": \"custom-color\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n },\n \"maxNumber\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The maximum number shown on the badge appended with a +.\\nThis will only be displayed if type=\\\"text\\\" and textLabel is not empty.\"\n },\n \"attribute\": \"max-number\",\n \"reflect\": false\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBadgePositions\",\n \"resolved\": \"\\\"far\\\" | \\\"inline\\\" | \\\"near\\\"\",\n \"references\": {\n \"IcBadgePositions\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcBadgePositions\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The positioning of the badge in reference to the parent element.\"\n },\n \"attribute\": \"position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"far\\\"\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the badge to be displayed.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"textLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text displayed in the badge. This will only be displayed if type=\\\"text\\\".\"\n },\n \"attribute\": \"text-label\",\n \"reflect\": false\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBadgeTypes\",\n \"resolved\": \"\\\"dot\\\" | \\\"icon\\\" | \\\"text\\\"\",\n \"references\": {\n \"IcBadgeTypes\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcBadgeTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of badge to be displayed.\"\n },\n \"attribute\": \"type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"text\\\"\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBadgeVariants\",\n \"resolved\": \"\\\"custom\\\" | \\\"error\\\" | \\\"info\\\" | \\\"light\\\" | \\\"neutral\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcBadgeVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcBadgeVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the badge to be displayed.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"neutral\\\"\"\n },\n \"visible\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the badge will be displayed.\"\n },\n \"attribute\": \"visible\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n }\n };\n }\n static get methods() {\n return {\n \"showBadge\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This method should not be used anymore. Use visible prop to set badge visibility.\"\n }]\n }\n },\n \"hideBadge\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This method should not be used anymore. Use visible prop to set badge visibility.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-badge.js.map\n"],"version":3}
1
+ {"file":"ic-badge.entry.cjs.js","mappings":"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","names":["hexToRgba","rgbaStrToObj","getCssProperty","IcThemeForegroundEnum","getParentElementType","getParentElement","isPropDefined","onComponentRequiredPropUndefined","h","Host"],"sources":["../web-components/dist/collection/components/ic-badge/ic-badge.css?tag=ic-badge&encapsulation=shadow","../web-components/dist/collection/components/ic-badge/ic-badge.js"],"sourcesContent":["@media (prefers-reduced-motion: no-preference) {\n :host(.show) {\n animation: expand var(--ic-transition-duration-slow);\n }\n\n :host(.hide) {\n animation: shrink var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n display: flex;\n height: var(--ic-space-md);\n min-width: var(--ic-space-md);\n width: -moz-fit-content;\n width: fit-content;\n border-radius: calc(2 * var(--ic-space-xxl));\n position: absolute;\n}\n\n:host(.neutral) {\n background-color: var(--ic-architectural-500);\n}\n\n:host(.light) {\n background-color: var(--ic-architectural-40);\n}\n\n:host(.info) {\n background-color: var(--ic-status-info);\n}\n\n:host(.warning) {\n background-color: var(--ic-status-warning-mid);\n}\n\n:host(.error) {\n background-color: var(--ic-status-error);\n}\n\n:host(.success) {\n background-color: var(--ic-status-success);\n}\n\n:host(.small) {\n height: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.large) {\n height: calc(var(--ic-space-md) + var(--ic-space-xxs));\n min-width: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n:host(.dot.default) {\n height: var(--ic-space-xs);\n width: var(--ic-space-xs);\n min-width: var(--ic-space-xs);\n}\n\n:host(.dot.small) {\n height: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n min-width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.dot.large) {\n height: var(--ic-space-sm);\n width: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.foreground-dark) ::slotted(*) {\n fill: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ::slotted(*) {\n fill: white;\n}\n\n:host(.foreground-dark) ic-typography {\n color: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ic-typography {\n color: white;\n}\n\n:host(.text) ic-typography {\n align-self: center;\n padding: 0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.text.small) ic-typography {\n padding: 0 0.2132rem;\n}\n\n:host(.text.large) ic-typography {\n padding: 0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.icon) ::slotted(svg) {\n width: var(--ic-space-sm);\n height: var(--ic-space-sm);\n padding: var(--ic-space-xxxs);\n}\n\n:host(.icon.small) ::slotted(svg) {\n width: var(--ic-space-xs);\n height: var(--ic-space-xs);\n}\n\n:host(.icon.large) ::slotted(svg) {\n width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n height: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n}\n\n:host(.far) {\n top: calc(-1 * var(--ic-space-xs));\n right: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.far.small),\n:host(.dot.far.large) {\n top: calc(-1 * var(--ic-space-xxs));\n right: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.dot.far),\n:host(.dot.far.small) {\n top: calc(-1 * var(--ic-space-xxxs));\n right: calc(-1 * var(--ic-space-xxxs));\n}\n\n:host(.near) {\n top: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n right: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n}\n\n:host(.dot.near) {\n top: calc(-1 * var(--ic-space-1px));\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.inline) {\n position: static;\n}\n\n:host(.hide) {\n visibility: hidden !important;\n transition: visibility var(--ic-transition-duration-slow);\n}\n\n@keyframes expand {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes shrink {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0);\n }\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcThemeForegroundEnum, } from \"../../utils/types\";\nimport { getCssProperty, getParentElement, getParentElementType, hexToRgba, isPropDefined, onComponentRequiredPropUndefined, rgbaStrToObj, } from \"../../utils/helpers\";\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\nexport class Badge {\n constructor() {\n this.ariaLabel = null;\n this.setBadgeColour = () => {\n let colorRGBA = null;\n if (this.customColor !== null) {\n const firstChar = this.customColor.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGBA = hexToRgba(this.customColor);\n }\n else if (firstChar.toLowerCase() === \"r\") {\n colorRGBA = rgbaStrToObj(this.customColor);\n }\n this.customColorRGBA = colorRGBA;\n this.el.style.backgroundColor = `rgba(${colorRGBA.r.toString()}, ${colorRGBA.g.toString()}, ${colorRGBA.b.toString()}, ${colorRGBA.a.toString()})`;\n }\n };\n this.getBadgeForeground = () => {\n let red;\n let green;\n let blue;\n switch (this.variant) {\n case \"custom\":\n red = this.customColorRGBA.r;\n green = this.customColorRGBA.g;\n blue = this.customColorRGBA.b;\n break;\n case \"error\":\n red = parseInt(getCssProperty(\"--ic-status-error-r\"));\n green = parseInt(getCssProperty(\"--ic-status-error-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-error-b\"));\n break;\n case \"success\":\n red = parseInt(getCssProperty(\"--ic-status-success-r\"));\n green = parseInt(getCssProperty(\"--ic-status-success-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-success-b\"));\n break;\n case \"warning\":\n red = parseInt(getCssProperty(\"--ic-status-warning-r\"));\n green = parseInt(getCssProperty(\"--ic-status-warning-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-warning-b\"));\n break;\n case \"info\": {\n const info = hexToRgba(getCssProperty(\"--ic-status-info\"));\n red = info.r;\n green = info.g;\n blue = info.b;\n break;\n }\n case \"neutral\": {\n const neutral = hexToRgba(getCssProperty(\"--ic-architectural-500\"));\n red = neutral.r;\n green = neutral.g;\n blue = neutral.b;\n break;\n }\n case \"light\": {\n const light = hexToRgba(getCssProperty(\"--ic-architectural-40\"));\n red = light.r;\n green = light.g;\n blue = light.b;\n break;\n }\n }\n const brightness = (red * 299 + green * 587 + blue * 114) / 1000;\n this.foregroundColour =\n brightness > 133.3505\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n };\n this.getTextLabel = () => {\n let label;\n if (this.textLabel !== null) {\n if (this.maxNumber !== null) {\n label =\n Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n }\n else {\n label = this.textLabel;\n }\n }\n return label;\n };\n // Set aria-label on badge and / or parent element\n // Aria-describedby seems to not work, probably due to shadow DOM\n this.setAccessibleLabel = () => {\n const parentElType = getParentElementType(this.el);\n const parentElAriaLabel = getParentElement(this.el).ariaLabel;\n const defaultAriaLabel = this.isAccessibleLabelDefined()\n ? this.accessibleLabel\n : this.textLabel || \"with badge being displayed\";\n if (getParentElement(this.el) !== null) {\n if (parentElType !== \"IC-CARD\" &&\n (parentElType !== \"IC-TAB\" ||\n (parentElType === \"IC-TAB\" && parentElAriaLabel))) {\n getParentElement(this.el).ariaLabel = `${parentElAriaLabel ? `${parentElAriaLabel} ,` : \"\"} ${defaultAriaLabel}`;\n }\n else {\n this.ariaLabel = `, ${defaultAriaLabel}`;\n }\n }\n };\n this.isAccessibleLabelDefined = () => {\n return isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n };\n this.accessibleLabel = undefined;\n this.customColor = null;\n this.maxNumber = undefined;\n this.position = \"far\";\n this.size = \"default\";\n this.textLabel = undefined;\n this.type = \"text\";\n this.variant = \"neutral\";\n this.visible = true;\n }\n componentWillLoad() {\n this.variant === \"custom\" && this.setBadgeColour();\n this.getBadgeForeground();\n this.setAccessibleLabel();\n }\n componentDidLoad() {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined([{ prop: this.textLabel, propName: \"text-label\" }], \"Badge\");\n }\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n async showBadge() {\n this.visible = true;\n }\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n async hideBadge() {\n this.visible = false;\n }\n render() {\n const { position, size, type, variant, foregroundColour, visible } = this;\n return (h(Host, { class: {\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [\"show\"]: visible,\n [\"hide\"]: !visible,\n }, id: this.el.id || null, \"aria-label\": this.ariaLabel, role: \"status\" }, type === \"icon\" && h(\"slot\", { name: \"badge-icon\" }), type === \"text\" && (h(\"ic-typography\", { variant: size === \"small\" ? \"badge-small\" : \"badge\" }, this.getTextLabel()))));\n }\n static get is() { return \"ic-badge\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-badge.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-badge.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The accessible label of the badge component to provide context for screen reader users.\"\n },\n \"attribute\": \"accessible-label\",\n \"reflect\": false\n },\n \"customColor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcColor\",\n \"resolved\": \"`#${string}` | `rgb(${string})` | `rgba(${string})`\",\n \"references\": {\n \"IcColor\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcColor\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The custom badge colour. This will only style the badge component if variant=\\\"custom\\\".\\nCan be a hex value e.g. \\\"#ff0000\\\", RGB e.g. \\\"rgb(255, 0, 0)\\\", or RGBA e.g. \\\"rgba(255, 0, 0, 1)\\\".\"\n },\n \"attribute\": \"custom-color\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n },\n \"maxNumber\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The maximum number shown on the badge appended with a +.\\nThis will only be displayed if type=\\\"text\\\" and textLabel is not empty.\"\n },\n \"attribute\": \"max-number\",\n \"reflect\": false\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBadgePositions\",\n \"resolved\": \"\\\"far\\\" | \\\"inline\\\" | \\\"near\\\"\",\n \"references\": {\n \"IcBadgePositions\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcBadgePositions\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The positioning of the badge in reference to the parent element.\"\n },\n \"attribute\": \"position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"far\\\"\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the badge to be displayed.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"textLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text displayed in the badge. This will only be displayed if type=\\\"text\\\".\"\n },\n \"attribute\": \"text-label\",\n \"reflect\": false\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBadgeTypes\",\n \"resolved\": \"\\\"dot\\\" | \\\"icon\\\" | \\\"text\\\"\",\n \"references\": {\n \"IcBadgeTypes\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcBadgeTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of badge to be displayed.\"\n },\n \"attribute\": \"type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"text\\\"\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBadgeVariants\",\n \"resolved\": \"\\\"custom\\\" | \\\"error\\\" | \\\"info\\\" | \\\"light\\\" | \\\"neutral\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcBadgeVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-badge.types\",\n \"id\": \"src/components/ic-badge/ic-badge.types.ts::IcBadgeVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the badge to be displayed.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"neutral\\\"\"\n },\n \"visible\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the badge will be displayed.\"\n },\n \"attribute\": \"visible\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n }\n };\n }\n static get methods() {\n return {\n \"showBadge\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This method should not be used anymore. Use visible prop to set badge visibility.\"\n }]\n }\n },\n \"hideBadge\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This method should not be used anymore. Use visible prop to set badge visibility.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-badge.js.map\n"],"version":3}
@@ -44,6 +44,7 @@ const DateInput = class {
44
44
  this.KEYBOARD_EVENT_OBJECT_STRING = "[object KeyboardEvent]";
45
45
  this.MAX_DAY = 31;
46
46
  this.MAX_MONTH = 12;
47
+ this.previousEmittedDate = undefined;
47
48
  this.previousSelectedDate = null;
48
49
  this.selectedDate = null;
49
50
  this.setInputPasteValue = (input, pastedValue) => {
@@ -670,7 +671,8 @@ const DateInput = class {
670
671
  this.icBlur.emit({ value: this.selectedDate });
671
672
  };
672
673
  this.handleHostFocus = () => {
673
- if (this.el.shadowRoot.activeElement.id.match(/(day|month|year)-input$/)) {
674
+ var _a;
675
+ if ((_a = this.el.shadowRoot.activeElement) === null || _a === void 0 ? void 0 : _a.id.match(/(day|month|year)-input$/)) {
674
676
  this.removeLabelledBy = false;
675
677
  }
676
678
  else {
@@ -768,19 +770,16 @@ const DateInput = class {
768
770
  this.inputsInOrder[0].focus();
769
771
  };
770
772
  this.handleCalendarOpen = (ev) => {
773
+ var _a, _b;
771
774
  ev.stopImmediatePropagation();
772
- this.calendarButtonEl.shadowRoot
773
- .querySelector("ic-tooltip")
774
- .displayTooltip(false);
775
+ (_a = this.calendarButtonEl) === null || _a === void 0 ? void 0 : _a.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);
775
776
  this.calendarButtonClicked.emit({ value: this.selectedDate });
776
- this.calendarButtonEl.shadowRoot
777
- .querySelector("ic-tooltip")
778
- .displayTooltip(false);
777
+ (_b = this.calendarButtonEl) === null || _b === void 0 ? void 0 : _b.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);
779
778
  this.isDateSetFromKeyboardEvent = false;
780
779
  };
781
780
  this.setValueAndEmitChange = (value) => {
782
781
  if (!dateHelpers.dateMatches(new Date(this.value), value)) {
783
- this.icChange.emit({ value: value });
782
+ this.emitIcChange(value);
784
783
  this.value = value;
785
784
  }
786
785
  };
@@ -803,6 +802,13 @@ const DateInput = class {
803
802
  }
804
803
  this.removeLabelledBy = true;
805
804
  };
805
+ this.emitIcChange = (d) => {
806
+ if (!(d === null && this.previousEmittedDate === null) &&
807
+ !dateHelpers.dateMatches(d, this.previousEmittedDate)) {
808
+ this.previousEmittedDate = d;
809
+ this.icChange.emit({ value: d });
810
+ }
811
+ };
806
812
  this.day = "";
807
813
  this.invalidDateText = undefined;
808
814
  this.maxDate = undefined;
@@ -862,6 +868,10 @@ const DateInput = class {
862
868
  this.watchMaxHandler();
863
869
  if (this.value) {
864
870
  this.setDate(this.value);
871
+ this.previousEmittedDate = this.selectedDate;
872
+ }
873
+ else {
874
+ this.previousEmittedDate = null;
865
875
  }
866
876
  this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;
867
877
  this.assistiveHintId = `${this.inputId}-assistive-hint`;
@@ -932,6 +942,12 @@ const DateInput = class {
932
942
  async setDisableDays(days) {
933
943
  this.disableDays = days;
934
944
  }
945
+ /**
946
+ * @internal Used to enable other components to invoke an IcChange event from the input.
947
+ */
948
+ async triggerIcChange(d) {
949
+ this.emitIcChange(d);
950
+ }
935
951
  removeAriaLabelledBy() {
936
952
  this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);
937
953
  }