igniteui-webcomponents 4.6.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/animations/player.js.map +1 -1
  3. package/components/accordion/accordion.js.map +1 -1
  4. package/components/avatar/avatar.d.ts +4 -3
  5. package/components/avatar/avatar.js +20 -24
  6. package/components/avatar/avatar.js.map +1 -1
  7. package/components/avatar/themes/themes.js +8 -9
  8. package/components/avatar/themes/themes.js.map +1 -1
  9. package/components/badge/badge.d.ts +4 -1
  10. package/components/badge/badge.js +15 -5
  11. package/components/badge/badge.js.map +1 -1
  12. package/components/badge/themes/themes.js +8 -9
  13. package/components/badge/themes/themes.js.map +1 -1
  14. package/components/button/button-base.d.ts +5 -6
  15. package/components/button/button-base.js +13 -26
  16. package/components/button/button-base.js.map +1 -1
  17. package/components/button/button.d.ts +2 -8
  18. package/components/button/button.js +6 -14
  19. package/components/button/button.js.map +1 -1
  20. package/components/button/icon-button.d.ts +1 -1
  21. package/components/button/icon-button.js +2 -1
  22. package/components/button/icon-button.js.map +1 -1
  23. package/components/button/themes/button/themes.js +8 -9
  24. package/components/button/themes/button/themes.js.map +1 -1
  25. package/components/button/themes/icon-button/themes.js +8 -9
  26. package/components/button/themes/icon-button/themes.js.map +1 -1
  27. package/components/button-group/button-group.d.ts +1 -1
  28. package/components/button-group/button-group.js +2 -1
  29. package/components/button-group/button-group.js.map +1 -1
  30. package/components/button-group/themes/button.js +6 -13
  31. package/components/button-group/themes/button.js.map +1 -1
  32. package/components/button-group/themes/group.js +8 -9
  33. package/components/button-group/themes/group.js.map +1 -1
  34. package/components/button-group/toggle-button.d.ts +2 -2
  35. package/components/button-group/toggle-button.js +7 -13
  36. package/components/button-group/toggle-button.js.map +1 -1
  37. package/components/calendar/calendar.d.ts +1 -1
  38. package/components/calendar/calendar.js +2 -1
  39. package/components/calendar/calendar.js.map +1 -1
  40. package/components/calendar/common/calendar-base.js.map +1 -1
  41. package/components/calendar/common/calendar.model.js.map +1 -1
  42. package/components/calendar/common/utils.js.map +1 -1
  43. package/components/calendar/days-view/days-view.js.map +1 -1
  44. package/components/calendar/months-view/months-view.js.map +1 -1
  45. package/components/calendar/themes/calendar.js +8 -9
  46. package/components/calendar/themes/calendar.js.map +1 -1
  47. package/components/calendar/years-view/years-view.js.map +1 -1
  48. package/components/card/card.content.d.ts +1 -1
  49. package/components/card/card.content.js +2 -1
  50. package/components/card/card.content.js.map +1 -1
  51. package/components/card/card.d.ts +1 -1
  52. package/components/card/card.header.d.ts +1 -1
  53. package/components/card/card.header.js +2 -1
  54. package/components/card/card.header.js.map +1 -1
  55. package/components/card/card.js +2 -1
  56. package/components/card/card.js.map +1 -1
  57. package/components/card/themes/container.js +8 -9
  58. package/components/card/themes/container.js.map +1 -1
  59. package/components/card/themes/content.js +8 -9
  60. package/components/card/themes/content.js.map +1 -1
  61. package/components/card/themes/header.js +8 -9
  62. package/components/card/themes/header.js.map +1 -1
  63. package/components/checkbox/checkbox-base.js.map +1 -1
  64. package/components/chip/chip.d.ts +1 -1
  65. package/components/chip/chip.js +2 -1
  66. package/components/chip/chip.js.map +1 -1
  67. package/components/chip/themes/themes.js +8 -9
  68. package/components/chip/themes/themes.js.map +1 -1
  69. package/components/combo/combo-item.d.ts +2 -0
  70. package/components/combo/combo-item.js +10 -11
  71. package/components/combo/combo-item.js.map +1 -1
  72. package/components/combo/combo-list.d.ts +0 -1
  73. package/components/combo/combo-list.js +0 -6
  74. package/components/combo/combo-list.js.map +1 -1
  75. package/components/combo/combo.d.ts +4 -5
  76. package/components/combo/combo.js +51 -39
  77. package/components/combo/combo.js.map +1 -1
  78. package/components/combo/controllers/navigation.js.map +1 -1
  79. package/components/combo/controllers/selection.js.map +1 -1
  80. package/components/combo/operations/group.d.ts +2 -2
  81. package/components/combo/operations/group.js +13 -26
  82. package/components/combo/operations/group.js.map +1 -1
  83. package/components/combo/themes/dark/combo.bootstrap.css.js +1 -1
  84. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -1
  85. package/components/combo/themes/dark/combo.fluent.css.js +1 -1
  86. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -1
  87. package/components/combo/themes/light/combo.bootstrap.css.js +1 -1
  88. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  89. package/components/combo/themes/light/combo.fluent.css.js +1 -1
  90. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  91. package/components/common/controllers/key-bindings.js.map +1 -1
  92. package/components/common/controllers/root-click.d.ts +1 -1
  93. package/components/common/controllers/root-click.js.map +1 -1
  94. package/components/common/controllers/root-scroll.js.map +1 -1
  95. package/components/common/decorators/watch.js.map +1 -1
  96. package/components/common/definitions/defineComponents.js.map +1 -1
  97. package/components/common/definitions/register.js.map +1 -1
  98. package/components/common/mixins/alert.js.map +1 -1
  99. package/components/common/mixins/combo-box.js.map +1 -1
  100. package/components/common/mixins/form-associated.js.map +1 -1
  101. package/components/common/util.js.map +1 -1
  102. package/components/date-time-input/date-time-input.js.map +1 -1
  103. package/components/date-time-input/date-util.js.map +1 -1
  104. package/components/dialog/dialog.js +2 -1
  105. package/components/dialog/dialog.js.map +1 -1
  106. package/components/dialog/themes/themes.js +8 -9
  107. package/components/dialog/themes/themes.js.map +1 -1
  108. package/components/dropdown/dropdown.js.map +1 -1
  109. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  110. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  111. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  112. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  113. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  114. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  115. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  116. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  117. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js +1 -1
  118. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js.map +1 -1
  119. package/components/expansion-panel/expansion-panel.d.ts +1 -1
  120. package/components/expansion-panel/expansion-panel.js +2 -1
  121. package/components/expansion-panel/expansion-panel.js.map +1 -1
  122. package/components/expansion-panel/themes/themes.js +8 -9
  123. package/components/expansion-panel/themes/themes.js.map +1 -1
  124. package/components/form/form.js.map +1 -1
  125. package/components/icon/icon.d.ts +2 -2
  126. package/components/icon/icon.js +6 -7
  127. package/components/icon/icon.js.map +1 -1
  128. package/components/icon/icon.registry.js.map +1 -1
  129. package/components/icon/themes/themes.js +8 -9
  130. package/components/icon/themes/themes.js.map +1 -1
  131. package/components/input/input-base.js +0 -4
  132. package/components/input/input-base.js.map +1 -1
  133. package/components/list/list-header.d.ts +1 -1
  134. package/components/list/list-header.js +2 -1
  135. package/components/list/list-header.js.map +1 -1
  136. package/components/list/list-item.d.ts +1 -1
  137. package/components/list/list-item.js +2 -1
  138. package/components/list/list-item.js.map +1 -1
  139. package/components/list/themes/header.js +8 -9
  140. package/components/list/themes/header.js.map +1 -1
  141. package/components/list/themes/item.js +8 -9
  142. package/components/list/themes/item.js.map +1 -1
  143. package/components/mask-input/mask-input-base.js.map +1 -1
  144. package/components/mask-input/mask-input.js.map +1 -1
  145. package/components/mask-input/mask-parser.js.map +1 -1
  146. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
  147. package/components/nav-drawer/nav-drawer-header-item.js +2 -1
  148. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  149. package/components/nav-drawer/nav-drawer-item.d.ts +1 -1
  150. package/components/nav-drawer/nav-drawer-item.js +2 -1
  151. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  152. package/components/nav-drawer/nav-drawer.d.ts +1 -1
  153. package/components/nav-drawer/nav-drawer.js +2 -1
  154. package/components/nav-drawer/nav-drawer.js.map +1 -1
  155. package/components/nav-drawer/themes/container.base.css.js +1 -1
  156. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  157. package/components/nav-drawer/themes/container.js +8 -9
  158. package/components/nav-drawer/themes/container.js.map +1 -1
  159. package/components/nav-drawer/themes/header-item.js +2 -21
  160. package/components/nav-drawer/themes/header-item.js.map +1 -1
  161. package/components/nav-drawer/themes/item.js +4 -17
  162. package/components/nav-drawer/themes/item.js.map +1 -1
  163. package/components/navbar/navbar.d.ts +1 -1
  164. package/components/navbar/navbar.js +2 -1
  165. package/components/navbar/navbar.js.map +1 -1
  166. package/components/navbar/themes/themes.js +8 -9
  167. package/components/navbar/themes/themes.js.map +1 -1
  168. package/components/popover/popover.js.map +1 -1
  169. package/components/progress/base.js.map +1 -1
  170. package/components/progress/circular-progress.d.ts +1 -1
  171. package/components/progress/circular-progress.js +2 -1
  172. package/components/progress/circular-progress.js.map +1 -1
  173. package/components/progress/linear-progress.d.ts +1 -1
  174. package/components/progress/linear-progress.js +2 -1
  175. package/components/progress/linear-progress.js.map +1 -1
  176. package/components/progress/themes/circular/themes.js +8 -9
  177. package/components/progress/themes/circular/themes.js.map +1 -1
  178. package/components/progress/themes/linear/themes.js +8 -9
  179. package/components/progress/themes/linear/themes.js.map +1 -1
  180. package/components/radio/radio.js.map +1 -1
  181. package/components/radio/utils.js.map +1 -1
  182. package/components/rating/rating.d.ts +5 -0
  183. package/components/rating/rating.js +13 -2
  184. package/components/rating/rating.js.map +1 -1
  185. package/components/rating/themes/themes.js +8 -9
  186. package/components/rating/themes/themes.js.map +1 -1
  187. package/components/select/select-group.js.map +1 -1
  188. package/components/select/select-item.js.map +1 -1
  189. package/components/select/select.js.map +1 -1
  190. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  191. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  192. package/components/select/themes/dark/select.fluent.css.js +1 -1
  193. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  194. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  195. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  196. package/components/select/themes/light/select.fluent.css.js +1 -1
  197. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  198. package/components/slider/range-slider.js.map +1 -1
  199. package/components/slider/slider-base.js.map +1 -1
  200. package/components/slider/slider.js.map +1 -1
  201. package/components/snackbar/snackbar.d.ts +1 -1
  202. package/components/snackbar/snackbar.js +2 -1
  203. package/components/snackbar/snackbar.js.map +1 -1
  204. package/components/snackbar/themes/themes.js +8 -9
  205. package/components/snackbar/themes/themes.js.map +1 -1
  206. package/components/stepper/step.d.ts +1 -1
  207. package/components/stepper/step.js +2 -1
  208. package/components/stepper/step.js.map +1 -1
  209. package/components/stepper/stepper.js.map +1 -1
  210. package/components/stepper/themes/step/themes.js +8 -9
  211. package/components/stepper/themes/step/themes.js.map +1 -1
  212. package/components/tabs/tab.d.ts +1 -1
  213. package/components/tabs/tab.js +2 -1
  214. package/components/tabs/tab.js.map +1 -1
  215. package/components/tabs/tabs.d.ts +1 -1
  216. package/components/tabs/tabs.js +2 -1
  217. package/components/tabs/tabs.js.map +1 -1
  218. package/components/tabs/themes/tab-themes.js +4 -17
  219. package/components/tabs/themes/tab-themes.js.map +1 -1
  220. package/components/tabs/themes/tabs-themes.js +8 -9
  221. package/components/tabs/themes/tabs-themes.js.map +1 -1
  222. package/components/textarea/textarea.js.map +1 -1
  223. package/components/toast/themes/themes.js +8 -9
  224. package/components/toast/themes/themes.js.map +1 -1
  225. package/components/toast/toast.js +2 -1
  226. package/components/toast/toast.js.map +1 -1
  227. package/components/tree/tree-item.d.ts +1 -1
  228. package/components/tree/tree-item.js +20 -4
  229. package/components/tree/tree-item.js.map +1 -1
  230. package/components/tree/tree.d.ts +5 -0
  231. package/components/tree/tree.js +4 -0
  232. package/components/tree/tree.js.map +1 -1
  233. package/components/tree/tree.navigation.js.map +1 -1
  234. package/components/tree/tree.selection.js.map +1 -1
  235. package/custom-elements.json +190 -378
  236. package/package.json +1 -1
  237. package/theming/config.js.map +1 -1
  238. package/theming/theming-controller.js.map +1 -1
  239. package/theming/utils.js.map +1 -1
  240. package/components/toggle/toggle.controller.d.ts +0 -52
  241. package/components/toggle/toggle.controller.js +0 -92
  242. package/components/toggle/toggle.controller.js.map +0 -1
  243. package/components/toggle/toggle.directive.d.ts +0 -20
  244. package/components/toggle/toggle.directive.js +0 -94
  245. package/components/toggle/toggle.directive.js.map +0 -1
  246. package/components/toggle/types.d.ts +0 -51
  247. package/components/toggle/types.js +0 -2
  248. package/components/toggle/types.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## [4.7.0] - 2024-01-05
8
+ ### Added
9
+ - Tree - Added **`toggleNodeOnClick`** property that determines whether clicking over a node will change its expanded state or not. Defaults to `false`. [#1003](https://github.com/IgniteUI/igniteui-webcomponents/pull/1003).
10
+ - Rating - **`allowReset`** added. When enabled selecting the same value will reset the component [#1014](https://github.com/IgniteUI/igniteui-webcomponents/issues/1014).
11
+ **Behavioral change**
12
+
13
+ In previous releases this was the default behavior of the rating component. Make sure to set `allowReset` if you need to keep this behavior in your application.
14
+
15
+ ### Changed
16
+ - Improved WAI-ARIA compliance for Avatar, Badge and Combo components [#1007](https://github.com/IgniteUI/igniteui-webcomponents/pull/1007)
17
+
18
+ ### Fixed
19
+ - Active item visual styles for Dropdown, Select and Combo components [#1002](https://github.com/IgniteUI/igniteui-webcomponents/pull/1002)
20
+ - Navigation drawer - mini variant broken visual style [#1011](https://github.com/IgniteUI/igniteui-webcomponents/pull/1011)
21
+
7
22
  ## [4.6.0] - 2023-12-05
8
23
  ### Added
9
24
  - **`action`** slot added to Snackbar [#974](https://github.com/IgniteUI/igniteui-webcomponents/issues/974)
@@ -384,6 +399,7 @@ Initial release of Ignite UI Web Components
384
399
  - Ripple component
385
400
  - Switch component
386
401
 
402
+ [4.7.0]: https://github.com/IgniteUI/igniteui-webcomponents/compare/4.6.0...4.7.0
387
403
  [4.6.0]: https://github.com/IgniteUI/igniteui-webcomponents/compare/4.5.0...4.6.0
388
404
  [4.5.0]: https://github.com/IgniteUI/igniteui-webcomponents/compare/4.4.0...4.5.0
389
405
  [4.4.0]: https://github.com/IgniteUI/igniteui-webcomponents/compare/4.3.1...4.4.0
@@ -1 +1 @@
1
- {"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/animations/player.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IAG1B,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,oBAAoB;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAEO,cAAc,CAAC,SAAqB;QAC1C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC;YAEtC,OAAO;gBACL,GAAG,QAAQ;gBACX,MAAM,EACJ,QAAQ,CAAC,MAAM,KAAK,MAAM;oBACxB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI;oBACjC,CAAC,CAAC,QAAQ,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,SAAqC;QACrD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAErC,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,EAAE;YACrD,IAAI,OAAO,EAAE,QAAQ,KAAK,QAAQ,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;aAC7D;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gBACrD,GAAG,OAAO;gBACV,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,QAAQ;aAC9D,CAAC,CAAC;YAEH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,OAAO;QACZ,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAElE,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;oBACzD,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;oBACzD,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { AnimationReferenceMetadata } from './types.js';\n\nexport class AnimationPlayer {\n private target!: HTMLElement;\n\n constructor(target: HTMLElement) {\n this.target = target;\n }\n\n private prefersReducedMotion() {\n const query = window.matchMedia('(prefers-reduced-motion: reduce)');\n return query.matches;\n }\n\n private parseKeyframes(keyframes: Keyframe[]) {\n return keyframes.map((keyframe) => {\n if (!keyframe.height) return keyframe;\n\n return {\n ...keyframe,\n height:\n keyframe.height === 'auto'\n ? `${this.target.scrollHeight}px`\n : keyframe.height,\n };\n });\n }\n\n public async play(animation: AnimationReferenceMetadata) {\n const { steps, options } = animation;\n\n return new Promise<AnimationPlaybackEvent>((resolve) => {\n if (options?.duration === Infinity) {\n throw new Error('Promise-based animations must be finite.');\n }\n\n const parsedKeyframes = this.parseKeyframes(steps);\n const animation = this.target.animate(parsedKeyframes, {\n ...options,\n duration: this.prefersReducedMotion() ? 0 : options!.duration,\n });\n\n animation.addEventListener('cancel', resolve, { once: true });\n animation.addEventListener('finish', resolve, { once: true });\n });\n }\n\n public stopAll() {\n return Promise.all(\n this.target.getAnimations().map((animation) => {\n return new Promise((resolve) => {\n const handleAnimationEvent = () => requestAnimationFrame(resolve);\n\n animation.addEventListener('cancel', handleAnimationEvent, {\n once: true,\n });\n animation.addEventListener('finish', handleAnimationEvent, {\n once: true,\n });\n animation.cancel();\n });\n })\n );\n }\n}\n"]}
1
+ {"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/animations/player.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IAG1B,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,oBAAoB;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAEO,cAAc,CAAC,SAAqB;QAC1C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC;YAEtC,OAAO;gBACL,GAAG,QAAQ;gBACX,MAAM,EACJ,QAAQ,CAAC,MAAM,KAAK,MAAM;oBACxB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI;oBACjC,CAAC,CAAC,QAAQ,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,SAAqC;QACrD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAErC,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,EAAE;YACrD,IAAI,OAAO,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gBACrD,GAAG,OAAO;gBACV,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,QAAQ;aAC9D,CAAC,CAAC;YAEH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,OAAO;QACZ,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAElE,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;oBACzD,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;oBACzD,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { AnimationReferenceMetadata } from './types.js';\n\nexport class AnimationPlayer {\n private target!: HTMLElement;\n\n constructor(target: HTMLElement) {\n this.target = target;\n }\n\n private prefersReducedMotion() {\n const query = window.matchMedia('(prefers-reduced-motion: reduce)');\n return query.matches;\n }\n\n private parseKeyframes(keyframes: Keyframe[]) {\n return keyframes.map((keyframe) => {\n if (!keyframe.height) return keyframe;\n\n return {\n ...keyframe,\n height:\n keyframe.height === 'auto'\n ? `${this.target.scrollHeight}px`\n : keyframe.height,\n };\n });\n }\n\n public async play(animation: AnimationReferenceMetadata) {\n const { steps, options } = animation;\n\n return new Promise<AnimationPlaybackEvent>((resolve) => {\n if (options?.duration === Infinity) {\n throw new Error('Promise-based animations must be finite.');\n }\n\n const parsedKeyframes = this.parseKeyframes(steps);\n const animation = this.target.animate(parsedKeyframes, {\n ...options,\n duration: this.prefersReducedMotion() ? 0 : options!.duration,\n });\n\n animation.addEventListener('cancel', resolve, { once: true });\n animation.addEventListener('finish', resolve, { once: true });\n });\n }\n\n public stopAll() {\n return Promise.all(\n this.target.getAnimations().map((animation) => {\n return new Promise((resolve) => {\n const handleAnimationEvent = () => requestAnimationFrame(resolve);\n\n animation.addEventListener('cancel', handleAnimationEvent, {\n once: true,\n });\n animation.addEventListener('finish', handleAnimationEvent, {\n once: true,\n });\n animation.cancel();\n });\n })\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport { styles } from './themes/accordion.base.css.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n public static register() {\n registerComponent(this, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({ selector: 'igc-expansion-panel:not([disabled])' })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n private get firstEnabled() {\n return this.enabledPanels[0];\n }\n\n private get lastEnabled() {\n return this.enabledPanels[this.enabledPanels.length - 1];\n }\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: 'igc-expansion-panel' })\n @blazorSuppress()\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n this.addEventListener('igcOpening', this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () => this.getPanelHeader(this.firstEnabled).focus())\n .set(endKey, () => this.getPanelHeader(this.lastEnabled).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (event.altKey || next.isSameNode(current)) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (event.altKey || next.isSameNode(current)) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private collapseAll() {\n const panels = this.enabledPanels;\n for (const panel of panels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const panels = this.enabledPanels;\n\n if (this.singleExpand) {\n for (const panel of panels) {\n current.isSameNode(panel)\n ? this.openPanel(panel)\n : this.closePanel(panel);\n }\n } else {\n for (const panel of panels) {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const panel = event.target as IgcExpansionPanelComponent;\n if (!this.singleExpand || !this.panels.includes(panel)) {\n return;\n }\n this.enabledPanels.forEach((p) => {\n if (p.open && p !== panel) {\n this.closePanel(p);\n }\n });\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.shadowRoot?.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (!panel.open) {\n return;\n }\n if (!panel.emitEvent('igcClosing', { cancelable: true, detail: panel })) {\n return;\n }\n panel.hide();\n await panel.updateComplete;\n\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (panel.open) {\n return;\n }\n if (!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {\n return;\n }\n\n panel.show();\n await panel.updateComplete;\n\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public hideAll() {\n this.panels.forEach((p) => p.hide());\n }\n\n /** Shows all of the child expansion panels' contents. */\n public showAll() {\n this.panels.forEach((p) => p.show());\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport { styles } from './themes/accordion.base.css.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n public static register() {\n registerComponent(this, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({ selector: 'igc-expansion-panel:not([disabled])' })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n private get firstEnabled() {\n return this.enabledPanels[0];\n }\n\n private get lastEnabled() {\n return this.enabledPanels[this.enabledPanels.length - 1];\n }\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: 'igc-expansion-panel' })\n @blazorSuppress()\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n this.addEventListener('igcOpening', this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () => this.getPanelHeader(this.firstEnabled).focus())\n .set(endKey, () => this.getPanelHeader(this.lastEnabled).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (event.altKey || next.isSameNode(current)) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (event.altKey || next.isSameNode(current)) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private collapseAll() {\n const panels = this.enabledPanels;\n for (const panel of panels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const panels = this.enabledPanels;\n\n if (this.singleExpand) {\n for (const panel of panels) {\n current.isSameNode(panel)\n ? this.openPanel(panel)\n : this.closePanel(panel);\n }\n } else {\n for (const panel of panels) {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const panel = event.target as IgcExpansionPanelComponent;\n if (!this.singleExpand || !this.panels.includes(panel)) {\n return;\n }\n this.enabledPanels.forEach((p) => {\n if (p.open && p !== panel) {\n this.closePanel(p);\n }\n });\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.shadowRoot?.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (!panel.open) {\n return;\n }\n if (!panel.emitEvent('igcClosing', { cancelable: true, detail: panel })) {\n return;\n }\n panel.hide();\n await panel.updateComplete;\n\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (panel.open) {\n return;\n }\n if (!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {\n return;\n }\n\n panel.show();\n await panel.updateComplete;\n\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public hideAll() {\n this.panels.forEach((p) => p.hide());\n }\n\n /** Shows all of the child expansion panels' contents. */\n public showAll() {\n this.panels.forEach((p) => p.show());\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
@@ -15,14 +15,15 @@ declare const IgcAvatarComponent_base: import("../common/mixins/constructor.js")
15
15
  */
16
16
  export default class IgcAvatarComponent extends IgcAvatarComponent_base {
17
17
  static readonly tagName = "igc-avatar";
18
- static styles: import("lit").CSSResult;
18
+ static styles: import("lit").CSSResult[];
19
19
  static register(): void;
20
+ private __internals;
21
+ private hasError;
20
22
  /**
21
23
  * The image source to use.
22
24
  * @attr
23
25
  */
24
26
  src: string;
25
- private hasError;
26
27
  /**
27
28
  * Alternative text for the image.
28
29
  * @attr
@@ -38,8 +39,8 @@ export default class IgcAvatarComponent extends IgcAvatarComponent_base {
38
39
  * @attr
39
40
  */
40
41
  shape: 'circle' | 'rounded' | 'square';
41
- private get classes();
42
42
  constructor();
43
+ protected roleDescriptionChange(): void;
43
44
  protected handleErrorState(): void;
44
45
  protected render(): import("lit-html").TemplateResult<1>;
45
46
  }
@@ -4,11 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { LitElement, html } from 'lit';
7
+ import { LitElement, html, nothing } from 'lit';
8
8
  import { property, state } from 'lit/decorators.js';
9
- import { classMap } from 'lit/directives/class-map.js';
10
9
  import { ifDefined } from 'lit/directives/if-defined.js';
11
10
  import { styles } from './themes/avatar.base.css.js';
11
+ import { styles as shared } from './themes/shared/avatar.common.css.js';
12
12
  import { all } from './themes/themes.js';
13
13
  import { themes } from '../../theming/theming-decorator.js';
14
14
  import { watch } from '../common/decorators/watch.js';
@@ -18,57 +18,49 @@ let IgcAvatarComponent = class IgcAvatarComponent extends SizableMixin(LitElemen
18
18
  static register() {
19
19
  registerComponent(this);
20
20
  }
21
- get classes() {
22
- const { shape } = this;
23
- return {
24
- circle: shape === 'circle',
25
- rounded: shape === 'rounded',
26
- square: shape === 'square',
27
- };
28
- }
29
21
  constructor() {
30
22
  super();
31
23
  this.hasError = false;
32
24
  this.shape = 'square';
25
+ this.__internals = this.attachInternals();
26
+ this.__internals.role = 'img';
27
+ this.__internals.ariaLabel = 'avatar';
33
28
  this.size = 'small';
34
29
  }
30
+ roleDescriptionChange() {
31
+ this.__internals.ariaRoleDescription = this.alt ?? this.initials;
32
+ }
35
33
  handleErrorState() {
36
34
  this.hasError = false;
37
35
  }
38
36
  render() {
39
37
  return html `
40
- <div
41
- part="base"
42
- role="img"
43
- aria-label="avatar"
44
- aria-roledescription=${this.shape}
45
- class=${classMap(this.classes)}
46
- >
38
+ <div part="base">
47
39
  ${this.initials
48
40
  ? html `<span part="initials">${this.initials}</span>`
49
- : html ` <slot></slot> `}
41
+ : html `<slot></slot>`}
50
42
  ${this.src && !this.hasError
51
43
  ? html `
52
44
  <img
53
45
  part="image"
54
46
  alt=${ifDefined(this.alt)}
55
47
  src=${ifDefined(this.src)}
56
- @error="${() => (this.hasError = true)}"
48
+ @error=${() => (this.hasError = true)}
57
49
  />
58
50
  `
59
- : ''}
51
+ : nothing}
60
52
  </div>
61
53
  `;
62
54
  }
63
55
  };
64
56
  IgcAvatarComponent.tagName = 'igc-avatar';
65
- IgcAvatarComponent.styles = styles;
66
- __decorate([
67
- property()
68
- ], IgcAvatarComponent.prototype, "src", void 0);
57
+ IgcAvatarComponent.styles = [styles, shared];
69
58
  __decorate([
70
59
  state()
71
60
  ], IgcAvatarComponent.prototype, "hasError", void 0);
61
+ __decorate([
62
+ property()
63
+ ], IgcAvatarComponent.prototype, "src", void 0);
72
64
  __decorate([
73
65
  property()
74
66
  ], IgcAvatarComponent.prototype, "alt", void 0);
@@ -78,6 +70,10 @@ __decorate([
78
70
  __decorate([
79
71
  property({ reflect: true })
80
72
  ], IgcAvatarComponent.prototype, "shape", void 0);
73
+ __decorate([
74
+ watch('initials'),
75
+ watch('alt')
76
+ ], IgcAvatarComponent.prototype, "roleDescriptionChange", null);
81
77
  __decorate([
82
78
  watch('src')
83
79
  ], IgcAvatarComponent.prototype, "handleErrorState", null);
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAgB5C,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,YAAY,CAAC,UAAU,CAAC;IAI/D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAiCD,IAAY,OAAO;QACjB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,OAAO;YACL,MAAM,EAAE,KAAK,KAAK,QAAQ;YAC1B,OAAO,EAAE,KAAK,KAAK,SAAS;YAC5B,MAAM,EAAE,KAAK,KAAK,QAAQ;SAC3B,CAAC;IACJ,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAlCF,aAAQ,GAAG,KAAK,CAAC;QAqBlB,UAAK,GAAoC,QAAQ,CAAC;QAcvD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,CAAC;IAGS,gBAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;+BAKgB,IAAI,CAAC,KAAK;gBACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;UAE5B,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,SAAS;YACrD,CAAC,CAAC,IAAI,CAAA,iBAAiB;UACvB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC1B,CAAC,CAAC,IAAI,CAAA;;;sBAGM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;sBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;0BACf,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;aAEzC;YACH,CAAC,CAAC,EAAE;;KAET,CAAC;IACJ,CAAC;;AAlFsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AACvB,yBAAM,GAAG,MAAM,AAAT,CAAU;AAWhC;IADN,QAAQ,EAAE;+CACS;AAGZ;IADP,KAAK,EAAE;oDACiB;AAOlB;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;oDACc;AAOlB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAC6B;AAkB/C;IADT,KAAK,CAAC,KAAK,CAAC;0DAGZ;AAzDkB,kBAAkB;IADtC,MAAM,CAAC,GAAG,CAAC;GACS,kBAAkB,CAoFtC;eApFoB,kBAAkB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { styles } from './themes/avatar.base.css.js';\nimport { all } from './themes/themes.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\n\n/**\n * An avatar component is used as a representation of a user identity\n * typically in a user profile.\n *\n * @element igc-avatar\n *\n * @slot - Renders an icon inside the default slot.\n *\n * @csspart base - The base wrapper of the avatar.\n * @csspart initials - The initials wrapper of the avatar.\n * @csspart image - The image wrapper of the avatar.\n * @csspart icon - The icon wrapper of the avatar.\n */\n@themes(all)\nexport default class IgcAvatarComponent extends SizableMixin(LitElement) {\n public static readonly tagName = 'igc-avatar';\n public static override styles = styles;\n\n public static register() {\n registerComponent(this);\n }\n\n /**\n * The image source to use.\n * @attr\n */\n @property()\n public src!: string;\n\n @state()\n private hasError = false;\n\n /**\n * Alternative text for the image.\n * @attr\n */\n @property()\n public alt!: string;\n\n /**\n * Initials to use as a fallback when no image is available.\n * @attr\n */\n @property()\n public initials!: string;\n\n /**\n * The shape of the avatar.\n * @attr\n */\n @property({ reflect: true })\n public shape: 'circle' | 'rounded' | 'square' = 'square';\n\n private get classes() {\n const { shape } = this;\n\n return {\n circle: shape === 'circle',\n rounded: shape === 'rounded',\n square: shape === 'square',\n };\n }\n\n constructor() {\n super();\n this.size = 'small';\n }\n\n @watch('src')\n protected handleErrorState() {\n this.hasError = false;\n }\n\n protected override render() {\n return html`\n <div\n part=\"base\"\n role=\"img\"\n aria-label=\"avatar\"\n aria-roledescription=${this.shape}\n class=${classMap(this.classes)}\n >\n ${this.initials\n ? html`<span part=\"initials\">${this.initials}</span>`\n : html` <slot></slot> `}\n ${this.src && !this.hasError\n ? html`\n <img\n part=\"image\"\n alt=${ifDefined(this.alt)}\n src=${ifDefined(this.src)}\n @error=\"${() => (this.hasError = true)}\"\n />\n `\n : ''}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-avatar': IgcAvatarComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAgB5C,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,YAAY,CAAC,UAAU,CAAC;IAI/D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAmCD;QACE,KAAK,EAAE,CAAC;QA/BF,aAAQ,GAAG,KAAK,CAAC;QA4BlB,UAAK,GAAoC,QAAQ,CAAC;QAKvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,CAAC;IAIS,qBAAqB;QAC7B,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;IACnE,CAAC;IAGS,gBAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,SAAS;YACrD,CAAC,CAAC,IAAI,CAAA,eAAe;UACrB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC1B,CAAC,CAAC,IAAI,CAAA;;;sBAGM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;sBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;yBAChB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;aAExC;YACH,CAAC,CAAC,OAAO;;KAEd,CAAC;IACJ,CAAC;;AA/EsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AACvB,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AASzC;IADP,KAAK,EAAE;oDACiB;AAOlB;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;oDACc;AAOlB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAC6B;AAc/C;IAFT,KAAK,CAAC,UAAU,CAAC;IACjB,KAAK,CAAC,KAAK,CAAC;+DAGZ;AAGS;IADT,KAAK,CAAC,KAAK,CAAC;0DAGZ;AA5DkB,kBAAkB;IADtC,MAAM,CAAC,GAAG,CAAC;GACS,kBAAkB,CAiFtC;eAjFoB,kBAAkB","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { styles } from './themes/avatar.base.css.js';\nimport { styles as shared } from './themes/shared/avatar.common.css.js';\nimport { all } from './themes/themes.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\n\n/**\n * An avatar component is used as a representation of a user identity\n * typically in a user profile.\n *\n * @element igc-avatar\n *\n * @slot - Renders an icon inside the default slot.\n *\n * @csspart base - The base wrapper of the avatar.\n * @csspart initials - The initials wrapper of the avatar.\n * @csspart image - The image wrapper of the avatar.\n * @csspart icon - The icon wrapper of the avatar.\n */\n@themes(all)\nexport default class IgcAvatarComponent extends SizableMixin(LitElement) {\n public static readonly tagName = 'igc-avatar';\n public static override styles = [styles, shared];\n\n public static register() {\n registerComponent(this);\n }\n\n private __internals: ElementInternals;\n\n @state()\n private hasError = false;\n\n /**\n * The image source to use.\n * @attr\n */\n @property()\n public src!: string;\n\n /**\n * Alternative text for the image.\n * @attr\n */\n @property()\n public alt!: string;\n\n /**\n * Initials to use as a fallback when no image is available.\n * @attr\n */\n @property()\n public initials!: string;\n\n /**\n * The shape of the avatar.\n * @attr\n */\n @property({ reflect: true })\n public shape: 'circle' | 'rounded' | 'square' = 'square';\n\n constructor() {\n super();\n\n this.__internals = this.attachInternals();\n this.__internals.role = 'img';\n this.__internals.ariaLabel = 'avatar';\n\n this.size = 'small';\n }\n\n @watch('initials')\n @watch('alt')\n protected roleDescriptionChange() {\n this.__internals.ariaRoleDescription = this.alt ?? this.initials;\n }\n\n @watch('src')\n protected handleErrorState() {\n this.hasError = false;\n }\n\n protected override render() {\n return html`\n <div part=\"base\">\n ${this.initials\n ? html`<span part=\"initials\">${this.initials}</span>`\n : html`<slot></slot>`}\n ${this.src && !this.hasError\n ? html`\n <img\n part=\"image\"\n alt=${ifDefined(this.alt)}\n src=${ifDefined(this.src)}\n @error=${() => (this.hasError = true)}\n />\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-avatar': IgcAvatarComponent;\n }\n}\n"]}
@@ -8,35 +8,34 @@ import { styles as fluentLight } from './light/avatar.fluent.css.js';
8
8
  import { styles as indigoLight } from './light/avatar.indigo.css.js';
9
9
  import { styles as materialLight } from './light/avatar.material.css.js';
10
10
  import { styles as bootstrap } from './shared/avatar.bootstrap.css.js';
11
- import { styles as shared } from './shared/avatar.common.css.js';
12
11
  import { styles as fluent } from './shared/avatar.fluent.css.js';
13
12
  import { styles as indigo } from './shared/avatar.indigo.css.js';
14
13
  const light = {
15
14
  bootstrap: css `
16
- ${shared} ${bootstrap} ${bootstrapLight}
15
+ ${bootstrap} ${bootstrapLight}
17
16
  `,
18
17
  material: css `
19
- ${shared} ${materialLight}
18
+ ${materialLight}
20
19
  `,
21
20
  fluent: css `
22
- ${shared} ${fluent} ${fluentLight}
21
+ ${fluent} ${fluentLight}
23
22
  `,
24
23
  indigo: css `
25
- ${shared} ${indigo} ${indigoLight}
24
+ ${indigo} ${indigoLight}
26
25
  `,
27
26
  };
28
27
  const dark = {
29
28
  bootstrap: css `
30
- ${shared} ${bootstrap} ${bootstrapDark}
29
+ ${bootstrap} ${bootstrapDark}
31
30
  `,
32
31
  material: css `
33
- ${shared} ${materialDark}
32
+ ${materialDark}
34
33
  `,
35
34
  fluent: css `
36
- ${shared} ${fluent} ${fluentDark}
35
+ ${fluent} ${fluentDark}
37
36
  `,
38
37
  indigo: css `
39
- ${shared} ${indigo} ${indigoDark}
38
+ ${indigo} ${indigoDark}
40
39
  `,
41
40
  };
42
41
  export const all = { light, dark };
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/avatar/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGjE,MAAM,KAAK,GAAG;IACZ,SAAS,EAAE,GAAG,CAAA;MACV,MAAM,IAAI,SAAS,IAAI,cAAc;GACxC;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,MAAM,IAAI,aAAa;GAC1B;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,MAAM,IAAI,WAAW;GAClC;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,MAAM,IAAI,WAAW;GAClC;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,GAAG,CAAA;MACV,MAAM,IAAI,SAAS,IAAI,aAAa;GACvC;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,MAAM,IAAI,YAAY;GACzB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,MAAM,IAAI,UAAU;GACjC;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,MAAM,IAAI,UAAU;GACjC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/avatar.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/avatar.fluent.css.js';\nimport { styles as indigoDark } from './dark/avatar.indigo.css.js';\nimport { styles as materialDark } from './dark/avatar.material.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/avatar.bootstrap.css.js';\nimport { styles as fluentLight } from './light/avatar.fluent.css.js';\nimport { styles as indigoLight } from './light/avatar.indigo.css.js';\nimport { styles as materialLight } from './light/avatar.material.css.js';\n// Shared Styles\nimport { styles as bootstrap } from './shared/avatar.bootstrap.css.js';\nimport { styles as shared } from './shared/avatar.common.css.js';\nimport { styles as fluent } from './shared/avatar.fluent.css.js';\nimport { styles as indigo } from './shared/avatar.indigo.css.js';\nimport type { Themes } from '../../../theming/types.js';\n\nconst light = {\n bootstrap: css`\n ${shared} ${bootstrap} ${bootstrapLight}\n `,\n material: css`\n ${shared} ${materialLight}\n `,\n fluent: css`\n ${shared} ${fluent} ${fluentLight}\n `,\n indigo: css`\n ${shared} ${indigo} ${indigoLight}\n `,\n};\n\nconst dark = {\n bootstrap: css`\n ${shared} ${bootstrap} ${bootstrapDark}\n `,\n material: css`\n ${shared} ${materialDark}\n `,\n fluent: css`\n ${shared} ${fluent} ${fluentDark}\n `,\n indigo: css`\n ${shared} ${indigo} ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/avatar/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGjE,MAAM,KAAK,GAAG;IACZ,SAAS,EAAE,GAAG,CAAA;MACV,SAAS,IAAI,cAAc;GAC9B;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,aAAa;GAChB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,WAAW;GACxB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,WAAW;GACxB;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,GAAG,CAAA;MACV,SAAS,IAAI,aAAa;GAC7B;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,YAAY;GACf;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,UAAU;GACvB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,UAAU;GACvB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/avatar.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/avatar.fluent.css.js';\nimport { styles as indigoDark } from './dark/avatar.indigo.css.js';\nimport { styles as materialDark } from './dark/avatar.material.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/avatar.bootstrap.css.js';\nimport { styles as fluentLight } from './light/avatar.fluent.css.js';\nimport { styles as indigoLight } from './light/avatar.indigo.css.js';\nimport { styles as materialLight } from './light/avatar.material.css.js';\n// Shared Styles\nimport { styles as bootstrap } from './shared/avatar.bootstrap.css.js';\nimport { styles as fluent } from './shared/avatar.fluent.css.js';\nimport { styles as indigo } from './shared/avatar.indigo.css.js';\nimport type { Themes } from '../../../theming/types.js';\n\nconst light = {\n bootstrap: css`\n ${bootstrap} ${bootstrapLight}\n `,\n material: css`\n ${materialLight}\n `,\n fluent: css`\n ${fluent} ${fluentLight}\n `,\n indigo: css`\n ${indigo} ${indigoLight}\n `,\n};\n\nconst dark = {\n bootstrap: css`\n ${bootstrap} ${bootstrapDark}\n `,\n material: css`\n ${materialDark}\n `,\n fluent: css`\n ${fluent} ${fluentDark}\n `,\n indigo: css`\n ${indigo} ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
@@ -11,8 +11,9 @@ import { LitElement } from 'lit';
11
11
  */
12
12
  export default class IgcBadgeComponent extends LitElement {
13
13
  static readonly tagName = "igc-badge";
14
- static styles: import("lit").CSSResult;
14
+ static styles: import("lit").CSSResult[];
15
15
  static register(): void;
16
+ private __internals;
16
17
  /**
17
18
  * The type of badge.
18
19
  * @attr
@@ -28,6 +29,8 @@ export default class IgcBadgeComponent extends LitElement {
28
29
  * @attr
29
30
  */
30
31
  shape: 'rounded' | 'square';
32
+ constructor();
33
+ protected variantChange(): void;
31
34
  protected render(): import("lit-html").TemplateResult<1>;
32
35
  }
33
36
  declare global {
@@ -7,29 +7,36 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { LitElement, html } from 'lit';
8
8
  import { property } from 'lit/decorators.js';
9
9
  import { styles } from './themes/badge.base.css.js';
10
+ import { styles as shared } from './themes/shared/badge.common.css.js';
10
11
  import { all } from './themes/themes.js';
11
12
  import { themes } from '../../theming/theming-decorator.js';
13
+ import { watch } from '../common/decorators/watch.js';
12
14
  import { registerComponent } from '../common/definitions/register.js';
13
15
  let IgcBadgeComponent = class IgcBadgeComponent extends LitElement {
16
+ static register() {
17
+ registerComponent(this);
18
+ }
14
19
  constructor() {
15
- super(...arguments);
20
+ super();
16
21
  this.variant = 'primary';
17
22
  this.outlined = false;
18
23
  this.shape = 'rounded';
24
+ this.__internals = this.attachInternals();
25
+ this.__internals.role = 'status';
19
26
  }
20
- static register() {
21
- registerComponent(this);
27
+ variantChange() {
28
+ this.__internals.ariaRoleDescription = `badge ${this.variant}`;
22
29
  }
23
30
  render() {
24
31
  return html `
25
- <span part="base" role="img" aria-label="badge">
32
+ <span part="base">
26
33
  <slot></slot>
27
34
  </span>
28
35
  `;
29
36
  }
30
37
  };
31
38
  IgcBadgeComponent.tagName = 'igc-badge';
32
- IgcBadgeComponent.styles = styles;
39
+ IgcBadgeComponent.styles = [styles, shared];
33
40
  __decorate([
34
41
  property({ reflect: true })
35
42
  ], IgcBadgeComponent.prototype, "variant", void 0);
@@ -39,6 +46,9 @@ __decorate([
39
46
  __decorate([
40
47
  property({ reflect: true })
41
48
  ], IgcBadgeComponent.prototype, "shape", void 0);
49
+ __decorate([
50
+ watch('variant')
51
+ ], IgcBadgeComponent.prototype, "variantChange", null);
42
52
  IgcBadgeComponent = __decorate([
43
53
  themes(all)
44
54
  ], IgcBadgeComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAavD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAaN,YAAO,GACZ,SAAS,CAAC;QAOL,aAAQ,GAAG,KAAK,CAAC;QAOjB,UAAK,GAAyB,SAAS,CAAC;IASjD,CAAC;IAjCQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAwBkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAnCsB,yBAAO,GAAG,WAAW,AAAd,CAAe;AACtB,wBAAM,GAAG,MAAM,AAAT,CAAU;AAWhC;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAEhB;AAOL;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACmB;AA5B5B,iBAAiB;IADrC,MAAM,CAAC,GAAG,CAAC;GACS,iBAAiB,CAqCrC;eArCoB,iBAAiB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { styles } from './themes/badge.base.css.js';\nimport { all } from './themes/themes.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\n\n/**\n * The badge is a component indicating a status on a related item or an area\n * where some active indication is required.\n *\n * @element igc-badge\n *\n * @slot - Default slot for the badge.\n *\n * @csspart base - The base wrapper of the badge.\n */\n@themes(all)\nexport default class IgcBadgeComponent extends LitElement {\n public static readonly tagName = 'igc-badge';\n public static override styles = styles;\n\n public static register() {\n registerComponent(this);\n }\n\n /**\n * The type of badge.\n * @attr\n */\n @property({ reflect: true })\n public variant: 'primary' | 'info' | 'success' | 'warning' | 'danger' =\n 'primary';\n\n /**\n * Sets whether to draw an outlined version of the badge.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The shape of the badge.\n * @attr\n */\n @property({ reflect: true })\n public shape: 'rounded' | 'square' = 'rounded';\n\n protected override render() {\n return html`\n <span part=\"base\" role=\"img\" aria-label=\"badge\">\n <slot></slot>\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-badge': IgcBadgeComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAavD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAIhD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IA0BD;QACE,KAAK,EAAE,CAAC;QAlBH,YAAO,GACZ,SAAS,CAAC;QAOL,aAAQ,GAAG,KAAK,CAAC;QAOjB,UAAK,GAAyB,SAAS,CAAC;QAI7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;IACnC,CAAC;IAGS,aAAa;QACrB,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;IACjE,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAhDsB,yBAAO,GAAG,WAAW,AAAd,CAAe;AACtB,wBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAa1C;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAEhB;AAOL;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACmB;AASrC;IADT,KAAK,CAAC,SAAS,CAAC;sDAGhB;AAzCkB,iBAAiB;IADrC,MAAM,CAAC,GAAG,CAAC;GACS,iBAAiB,CAkDrC;eAlDoB,iBAAiB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { styles } from './themes/badge.base.css.js';\nimport { styles as shared } from './themes/shared/badge.common.css.js';\nimport { all } from './themes/themes.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\n\n/**\n * The badge is a component indicating a status on a related item or an area\n * where some active indication is required.\n *\n * @element igc-badge\n *\n * @slot - Default slot for the badge.\n *\n * @csspart base - The base wrapper of the badge.\n */\n@themes(all)\nexport default class IgcBadgeComponent extends LitElement {\n public static readonly tagName = 'igc-badge';\n public static override styles = [styles, shared];\n\n public static register() {\n registerComponent(this);\n }\n\n private __internals: ElementInternals;\n\n /**\n * The type of badge.\n * @attr\n */\n @property({ reflect: true })\n public variant: 'primary' | 'info' | 'success' | 'warning' | 'danger' =\n 'primary';\n\n /**\n * Sets whether to draw an outlined version of the badge.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The shape of the badge.\n * @attr\n */\n @property({ reflect: true })\n public shape: 'rounded' | 'square' = 'rounded';\n\n constructor() {\n super();\n this.__internals = this.attachInternals();\n this.__internals.role = 'status';\n }\n\n @watch('variant')\n protected variantChange() {\n this.__internals.ariaRoleDescription = `badge ${this.variant}`;\n }\n\n protected override render() {\n return html`\n <span part=\"base\">\n <slot></slot>\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-badge': IgcBadgeComponent;\n }\n}\n"]}
@@ -8,33 +8,32 @@ import { styles as fluentLight } from './light/badge.fluent.css.js';
8
8
  import { styles as indigoLight } from './light/badge.indigo.css.js';
9
9
  import { styles as materialLight } from './light/badge.material.css.js';
10
10
  import { styles as bootstrap } from './shared/badge.bootstrap.css.js';
11
- import { styles as shared } from './shared/badge.common.css.js';
12
11
  const light = {
13
12
  bootstrap: css `
14
- ${shared} ${bootstrap} ${bootstrapLight}
13
+ ${bootstrap} ${bootstrapLight}
15
14
  `,
16
15
  material: css `
17
- ${shared} ${materialLight}
16
+ ${materialLight}
18
17
  `,
19
18
  fluent: css `
20
- ${shared} ${fluentLight}
19
+ ${fluentLight}
21
20
  `,
22
21
  indigo: css `
23
- ${shared} ${indigoLight}
22
+ ${indigoLight}
24
23
  `,
25
24
  };
26
25
  const dark = {
27
26
  bootstrap: css `
28
- ${shared} ${bootstrap} ${bootstrapDark}
27
+ ${bootstrap} ${bootstrapDark}
29
28
  `,
30
29
  material: css `
31
- ${shared} ${materialDark}
30
+ ${materialDark}
32
31
  `,
33
32
  fluent: css `
34
- ${shared} ${fluentDark}
33
+ ${fluentDark}
35
34
  `,
36
35
  indigo: css `
37
- ${shared} ${indigoDark}
36
+ ${indigoDark}
38
37
  `,
39
38
  };
40
39
  export const all = { light, dark };
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/badge/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,KAAK,GAAG;IACZ,SAAS,EAAE,GAAG,CAAA;MACV,MAAM,IAAI,SAAS,IAAI,cAAc;GACxC;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,MAAM,IAAI,aAAa;GAC1B;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,WAAW;GACxB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,WAAW;GACxB;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,GAAG,CAAA;MACV,MAAM,IAAI,SAAS,IAAI,aAAa;GACvC;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,MAAM,IAAI,YAAY;GACzB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,UAAU;GACvB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM,IAAI,UAAU;GACvB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/badge.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/badge.fluent.css.js';\nimport { styles as indigoDark } from './dark/badge.indigo.css.js';\nimport { styles as materialDark } from './dark/badge.material.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/badge.bootstrap.css.js';\nimport { styles as fluentLight } from './light/badge.fluent.css.js';\nimport { styles as indigoLight } from './light/badge.indigo.css.js';\nimport { styles as materialLight } from './light/badge.material.css.js';\n// Shared Styles\nimport { styles as bootstrap } from './shared/badge.bootstrap.css.js';\nimport { styles as shared } from './shared/badge.common.css.js';\nimport { Themes } from '../../../theming/types.js';\n\nconst light = {\n bootstrap: css`\n ${shared} ${bootstrap} ${bootstrapLight}\n `,\n material: css`\n ${shared} ${materialLight}\n `,\n fluent: css`\n ${shared} ${fluentLight}\n `,\n indigo: css`\n ${shared} ${indigoLight}\n `,\n};\n\nconst dark = {\n bootstrap: css`\n ${shared} ${bootstrap} ${bootstrapDark}\n `,\n material: css`\n ${shared} ${materialDark}\n `,\n fluent: css`\n ${shared} ${fluentDark}\n `,\n indigo: css`\n ${shared} ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/badge/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtE,MAAM,KAAK,GAAG;IACZ,SAAS,EAAE,GAAG,CAAA;MACV,SAAS,IAAI,cAAc;GAC9B;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,aAAa;GAChB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,GAAG,CAAA;MACV,SAAS,IAAI,aAAa;GAC7B;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,YAAY;GACf;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/badge.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/badge.fluent.css.js';\nimport { styles as indigoDark } from './dark/badge.indigo.css.js';\nimport { styles as materialDark } from './dark/badge.material.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/badge.bootstrap.css.js';\nimport { styles as fluentLight } from './light/badge.fluent.css.js';\nimport { styles as indigoLight } from './light/badge.indigo.css.js';\nimport { styles as materialLight } from './light/badge.material.css.js';\n// Shared Styles\nimport { styles as bootstrap } from './shared/badge.bootstrap.css.js';\nimport { Themes } from '../../../theming/types.js';\n\nconst light = {\n bootstrap: css`\n ${bootstrap} ${bootstrapLight}\n `,\n material: css`\n ${materialLight}\n `,\n fluent: css`\n ${fluentLight}\n `,\n indigo: css`\n ${indigoLight}\n `,\n};\n\nconst dark = {\n bootstrap: css`\n ${bootstrap} ${bootstrapDark}\n `,\n material: css`\n ${materialDark}\n `,\n fluent: css`\n ${fluentDark}\n `,\n indigo: css`\n ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
@@ -1,5 +1,5 @@
1
1
  import { LitElement, TemplateResult } from 'lit';
2
- import { Constructor } from '../common/mixins/constructor.js';
2
+ import type { Constructor } from '../common/mixins/constructor.js';
3
3
  export interface IgcButtonEventMap {
4
4
  igcFocus: CustomEvent<void>;
5
5
  igcBlur: CustomEvent<void>;
@@ -12,11 +12,11 @@ export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseCompon
12
12
  mode: ShadowRootMode;
13
13
  slotAssignment?: SlotAssignmentMode | undefined;
14
14
  };
15
- private __internals;
16
- private nativeElement;
15
+ protected __internals: ElementInternals;
17
16
  protected _disabled: boolean;
17
+ private _nativeButton;
18
18
  /**
19
- * The type of the button. Defaults to undefined.
19
+ * The type of the button. Defaults to `button`.
20
20
  * @attr
21
21
  */
22
22
  type: 'button' | 'reset' | 'submit';
@@ -34,7 +34,7 @@ export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseCompon
34
34
  * Where to display the linked URL, as the name for a browsing context.
35
35
  * @attr
36
36
  */
37
- target: '_blank' | '_parent' | '_self' | '_top' | undefined;
37
+ target?: '_blank' | '_parent' | '_self' | '_top';
38
38
  /**
39
39
  * The relationship of the linked URL.
40
40
  * See https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types
@@ -58,7 +58,6 @@ export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseCompon
58
58
  blur(): void;
59
59
  protected handleFocus(): void;
60
60
  protected handleBlur(): void;
61
- protected get classes(): {};
62
61
  protected handleClick(): void;
63
62
  protected formDisabledCallback(state: boolean): void;
64
63
  private renderButton;
@@ -4,12 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { LitElement, html } from 'lit';
7
+ import { LitElement, html, nothing } from 'lit';
8
8
  import { property, query } from 'lit/decorators.js';
9
- import { classMap } from 'lit/directives/class-map.js';
10
9
  import { ifDefined } from 'lit/directives/if-defined.js';
11
10
  import { EventEmitterMixin } from '../common//mixins/event-emitter.js';
12
- import { alternateName } from '../common/decorators/alternateName.js';
13
11
  import { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';
14
12
  import { SizableMixin } from '../common/mixins/sizable.js';
15
13
  let IgcButtonBaseComponent = class IgcButtonBaseComponent extends SizableMixin(EventEmitterMixin(LitElement)) {
@@ -28,17 +26,18 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends SizableMixin(E
28
26
  constructor() {
29
27
  super();
30
28
  this._disabled = false;
29
+ this.type = 'button';
31
30
  this.__internals = this.attachInternals();
32
31
  this.size = 'medium';
33
32
  }
34
33
  focus(options) {
35
- this.nativeElement.focus(options);
34
+ this._nativeButton.focus(options);
36
35
  }
37
36
  click() {
38
- this.nativeElement.click();
37
+ this._nativeButton.click();
39
38
  }
40
39
  blur() {
41
- this.nativeElement.blur();
40
+ this._nativeButton.blur();
42
41
  }
43
42
  handleFocus() {
44
43
  this.emitEvent('igcFocus');
@@ -46,9 +45,6 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends SizableMixin(E
46
45
  handleBlur() {
47
46
  this.emitEvent('igcBlur');
48
47
  }
49
- get classes() {
50
- return {};
51
- }
52
48
  handleClick() {
53
49
  switch (this.type) {
54
50
  case 'submit':
@@ -67,9 +63,8 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends SizableMixin(E
67
63
  return html `
68
64
  <button
69
65
  part="base"
70
- .ariaLabel=${this.ariaLabel}
71
- .disabled=${this.disabled}
72
- class=${classMap(this.classes)}
66
+ aria-label=${ifDefined(this.ariaLabel ?? nothing)}
67
+ ?disabled=${this.disabled}
73
68
  type=${ifDefined(this.type)}
74
69
  @click=${this.handleClick}
75
70
  @focus=${this.handleFocus}
@@ -84,15 +79,14 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends SizableMixin(E
84
79
  <a
85
80
  part="base"
86
81
  role="button"
82
+ aria-label=${ifDefined(this.ariaLabel ?? nothing)}
83
+ aria-disabled=${this.disabled ? 'true' : 'false'}
87
84
  href=${ifDefined(this.href)}
88
85
  target=${ifDefined(this.target)}
89
86
  download=${ifDefined(this.download)}
90
87
  rel=${ifDefined(this.rel)}
91
- aria-disabled=${this.disabled ? 'true' : 'false'}
92
- .ariaLabel=${this.ariaLabel}
93
- class=${classMap(this.classes)}
94
- @focus=${!this.disabled && this.handleFocus}
95
- @blur=${!this.disabled && this.handleBlur}
88
+ @focus=${this.disabled ? nothing : this.handleFocus}
89
+ @blur=${this.disabled ? nothing : this.handleBlur}
96
90
  >
97
91
  ${this.renderContent()}
98
92
  </a>
@@ -110,10 +104,9 @@ IgcButtonBaseComponent.shadowRootOptions = {
110
104
  };
111
105
  __decorate([
112
106
  query('[part="base"]', true)
113
- ], IgcButtonBaseComponent.prototype, "nativeElement", void 0);
107
+ ], IgcButtonBaseComponent.prototype, "_nativeButton", void 0);
114
108
  __decorate([
115
- alternateName('displayType'),
116
- property()
109
+ property({ reflect: true })
117
110
  ], IgcButtonBaseComponent.prototype, "type", void 0);
118
111
  __decorate([
119
112
  property()
@@ -130,12 +123,6 @@ __decorate([
130
123
  __decorate([
131
124
  property({ type: Boolean, reflect: true })
132
125
  ], IgcButtonBaseComponent.prototype, "disabled", null);
133
- __decorate([
134
- alternateName('focusComponent')
135
- ], IgcButtonBaseComponent.prototype, "focus", null);
136
- __decorate([
137
- alternateName('blurComponent')
138
- ], IgcButtonBaseComponent.prototype, "blur", null);
139
126
  IgcButtonBaseComponent = __decorate([
140
127
  blazorDeepImport
141
128
  ], IgcButtonBaseComponent);