igniteui-webcomponents 2.2.0 → 3.2.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 (272) hide show
  1. package/CHANGELOG.md +40 -5
  2. package/README.md +6 -1
  3. package/components/avatar/avatar.js +2 -2
  4. package/components/avatar/avatar.js.map +1 -1
  5. package/components/badge/badge.js +3 -3
  6. package/components/badge/badge.js.map +1 -1
  7. package/components/button/button-base.d.ts +5 -0
  8. package/components/button/button-base.js +5 -1
  9. package/components/button/button-base.js.map +1 -1
  10. package/components/button/button.js +6 -6
  11. package/components/button/button.js.map +1 -1
  12. package/components/button/icon-button.d.ts +1 -1
  13. package/components/button/icon-button.js +19 -16
  14. package/components/button/icon-button.js.map +1 -1
  15. package/components/button/themes/button/light/button.base.css.js +1 -1
  16. package/components/button/themes/button/light/button.base.css.js.map +1 -1
  17. package/components/button/themes/button/light/button.indigo.css.js +1 -1
  18. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  19. package/components/button/themes/button/light/button.material.css.js +1 -1
  20. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  21. package/components/button/themes/icon-button/light/icon-button.base.css.js +1 -1
  22. package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
  23. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
  24. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  25. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
  26. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  27. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
  28. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  29. package/components/button/themes/icon-button/light/icon-button.material.css.js +1 -1
  30. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  31. package/components/calendar/calendar.d.ts +8 -8
  32. package/components/calendar/calendar.js +16 -16
  33. package/components/calendar/calendar.js.map +1 -1
  34. package/components/calendar/common/calendar-base.d.ts +1 -1
  35. package/components/calendar/common/calendar-base.js +21 -15
  36. package/components/calendar/common/calendar-base.js.map +1 -1
  37. package/components/calendar/common/utils.d.ts +1 -1
  38. package/components/calendar/common/utils.js.map +1 -1
  39. package/components/calendar/days-view/days-view.d.ts +5 -5
  40. package/components/calendar/days-view/days-view.js +13 -11
  41. package/components/calendar/days-view/days-view.js.map +1 -1
  42. package/components/calendar/months-view/months-view.d.ts +3 -3
  43. package/components/calendar/months-view/months-view.js +12 -10
  44. package/components/calendar/months-view/months-view.js.map +1 -1
  45. package/components/calendar/years-view/years-view.d.ts +3 -3
  46. package/components/calendar/years-view/years-view.js +11 -9
  47. package/components/calendar/years-view/years-view.js.map +1 -1
  48. package/components/card/card.actions.js +3 -3
  49. package/components/card/card.actions.js.map +1 -1
  50. package/components/card/card.content.js +3 -3
  51. package/components/card/card.content.js.map +1 -1
  52. package/components/card/card.header.js +4 -4
  53. package/components/card/card.header.js.map +1 -1
  54. package/components/card/card.js +4 -4
  55. package/components/card/card.js.map +1 -1
  56. package/components/card/card.media.js +1 -1
  57. package/components/card/card.media.js.map +1 -1
  58. package/components/checkbox/checkbox-base.js +2 -1
  59. package/components/checkbox/checkbox-base.js.map +1 -1
  60. package/components/checkbox/checkbox.js +6 -7
  61. package/components/checkbox/checkbox.js.map +1 -1
  62. package/components/checkbox/switch.js +6 -7
  63. package/components/checkbox/switch.js.map +1 -1
  64. package/components/checkbox/themes/light/switch.base.css.js +1 -1
  65. package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
  66. package/components/chip/chip.d.ts +1 -0
  67. package/components/chip/chip.js +20 -9
  68. package/components/chip/chip.js.map +1 -1
  69. package/components/chip/themes/chip.base.css.js +1 -1
  70. package/components/chip/themes/chip.base.css.js.map +1 -1
  71. package/components/chip/themes/chip.bootstrap.css.js +1 -1
  72. package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
  73. package/components/chip/themes/chip.fluent.css.js +1 -1
  74. package/components/chip/themes/chip.fluent.css.js.map +1 -1
  75. package/components/chip/themes/chip.indigo.css.js +1 -1
  76. package/components/chip/themes/chip.indigo.css.js.map +1 -1
  77. package/components/chip/themes/chip.material.css.js +1 -1
  78. package/components/chip/themes/chip.material.css.js.map +1 -1
  79. package/components/common/definitions/defineAllComponents.js +53 -45
  80. package/components/common/definitions/defineAllComponents.js.map +1 -1
  81. package/components/dropdown/dropdown-group.d.ts +4 -4
  82. package/components/dropdown/dropdown-group.js +11 -11
  83. package/components/dropdown/dropdown-group.js.map +1 -1
  84. package/components/dropdown/dropdown-header.d.ts +3 -3
  85. package/components/dropdown/dropdown-header.js +9 -9
  86. package/components/dropdown/dropdown-header.js.map +1 -1
  87. package/components/dropdown/dropdown-item.d.ts +2 -2
  88. package/components/dropdown/dropdown-item.js +18 -18
  89. package/components/dropdown/dropdown-item.js.map +1 -1
  90. package/components/dropdown/dropdown.d.ts +16 -16
  91. package/components/dropdown/dropdown.js +51 -56
  92. package/components/dropdown/dropdown.js.map +1 -1
  93. package/components/expansion-panel/expansion-panel.d.ts +72 -0
  94. package/components/expansion-panel/expansion-panel.js +167 -0
  95. package/components/expansion-panel/expansion-panel.js.map +1 -0
  96. package/components/expansion-panel/themes/light/expansion-panel.base.css.d.ts +1 -0
  97. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +3 -0
  98. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -0
  99. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.d.ts +1 -0
  100. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +3 -0
  101. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -0
  102. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.d.ts +1 -0
  103. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +3 -0
  104. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -0
  105. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.d.ts +1 -0
  106. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +3 -0
  107. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -0
  108. package/components/form/form.d.ts +2 -2
  109. package/components/form/form.js +13 -4
  110. package/components/form/form.js.map +1 -1
  111. package/components/icon/icon.d.ts +1 -1
  112. package/components/icon/icon.js +3 -2
  113. package/components/icon/icon.js.map +1 -1
  114. package/components/icon/icon.registry.js +5 -0
  115. package/components/icon/icon.registry.js.map +1 -1
  116. package/components/input/input-base.d.ts +2 -1
  117. package/components/input/input-base.js +11 -6
  118. package/components/input/input-base.js.map +1 -1
  119. package/components/input/input.d.ts +1 -1
  120. package/components/input/input.js +6 -5
  121. package/components/input/input.js.map +1 -1
  122. package/components/input/themes/light/input.base.css.js +1 -1
  123. package/components/input/themes/light/input.base.css.js.map +1 -1
  124. package/components/input/themes/light/input.material.css.js +1 -1
  125. package/components/input/themes/light/input.material.css.js.map +1 -1
  126. package/components/list/list-header.js +3 -3
  127. package/components/list/list-header.js.map +1 -1
  128. package/components/list/list-item.js +5 -5
  129. package/components/list/list-item.js.map +1 -1
  130. package/components/list/list.d.ts +1 -1
  131. package/components/list/list.js +4 -4
  132. package/components/list/list.js.map +1 -1
  133. package/components/list/themes/light/list.base.css.js +1 -1
  134. package/components/list/themes/light/list.base.css.js.map +1 -1
  135. package/components/mask-input/mask-input.d.ts +102 -0
  136. package/components/mask-input/mask-input.js +260 -0
  137. package/components/mask-input/mask-input.js.map +1 -0
  138. package/components/mask-input/mask-parser.d.ts +30 -0
  139. package/components/mask-input/mask-parser.js +167 -0
  140. package/components/mask-input/mask-parser.js.map +1 -0
  141. package/components/nav-drawer/nav-drawer-header-item.js +3 -3
  142. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  143. package/components/nav-drawer/nav-drawer-item.d.ts +1 -0
  144. package/components/nav-drawer/nav-drawer-item.js +9 -6
  145. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  146. package/components/nav-drawer/nav-drawer.d.ts +1 -1
  147. package/components/nav-drawer/nav-drawer.js +14 -11
  148. package/components/nav-drawer/nav-drawer.js.map +1 -1
  149. package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js +1 -1
  150. package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js.map +1 -1
  151. package/components/nav-drawer/styles/nav-drawer-item.base.css.js +1 -1
  152. package/components/nav-drawer/styles/nav-drawer-item.base.css.js.map +1 -1
  153. package/components/nav-drawer/styles/nav-drawer.base.css.js +1 -1
  154. package/components/nav-drawer/styles/nav-drawer.base.css.js.map +1 -1
  155. package/components/navbar/navbar.js +6 -5
  156. package/components/navbar/navbar.js.map +1 -1
  157. package/components/navbar/themes/light/navbar.base.css.js +1 -1
  158. package/components/navbar/themes/light/navbar.base.css.js.map +1 -1
  159. package/components/navbar/themes/light/navbar.bootstrap.css.js +1 -1
  160. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  161. package/components/navbar/themes/light/navbar.fluent.css.d.ts +1 -0
  162. package/components/navbar/themes/light/navbar.fluent.css.js +3 -0
  163. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -0
  164. package/components/progress/base.js +2 -2
  165. package/components/progress/base.js.map +1 -1
  166. package/components/progress/circular-progress.d.ts +2 -2
  167. package/components/progress/circular-progress.js +6 -6
  168. package/components/progress/circular-progress.js.map +1 -1
  169. package/components/progress/linear-progress.d.ts +1 -1
  170. package/components/progress/linear-progress.js +7 -7
  171. package/components/progress/linear-progress.js.map +1 -1
  172. package/components/radio/radio.js +9 -9
  173. package/components/radio/radio.js.map +1 -1
  174. package/components/radio-group/radio-group.js +1 -1
  175. package/components/radio-group/radio-group.js.map +1 -1
  176. package/components/rating/rating.base.css.js +1 -1
  177. package/components/rating/rating.base.css.js.map +1 -1
  178. package/components/rating/rating.d.ts +2 -2
  179. package/components/rating/rating.fluent.css.js +1 -1
  180. package/components/rating/rating.fluent.css.js.map +1 -1
  181. package/components/rating/rating.js +10 -10
  182. package/components/rating/rating.js.map +1 -1
  183. package/components/ripple/ripple.js +1 -1
  184. package/components/ripple/ripple.js.map +1 -1
  185. package/components/slider/range-slider.d.ts +3 -3
  186. package/components/slider/range-slider.js +2 -2
  187. package/components/slider/range-slider.js.map +1 -1
  188. package/components/slider/slider-base.js +8 -7
  189. package/components/slider/slider-base.js.map +1 -1
  190. package/components/slider/slider.d.ts +3 -3
  191. package/components/slider/slider.js +2 -2
  192. package/components/slider/slider.js.map +1 -1
  193. package/components/snackbar/snackbar.d.ts +2 -0
  194. package/components/snackbar/snackbar.js +8 -5
  195. package/components/snackbar/snackbar.js.map +1 -1
  196. package/components/toast/toast.js +5 -5
  197. package/components/toast/toast.js.map +1 -1
  198. package/components/toggle/toggle.controller.d.ts +3 -3
  199. package/components/toggle/toggle.controller.js +1 -1
  200. package/components/toggle/toggle.controller.js.map +1 -1
  201. package/components/toggle/toggle.directive.d.ts +1 -1
  202. package/components/toggle/toggle.directive.js +5 -4
  203. package/components/toggle/toggle.directive.js.map +1 -1
  204. package/components/toggle/{utilities.d.ts → types.d.ts} +0 -0
  205. package/components/toggle/types.js +2 -0
  206. package/components/toggle/types.js.map +1 -0
  207. package/components/tree/themes/dark/tree-item.bootstrap.css.d.ts +1 -0
  208. package/components/tree/themes/dark/tree-item.bootstrap.css.js +3 -0
  209. package/components/tree/themes/dark/tree-item.bootstrap.css.js.map +1 -0
  210. package/components/tree/themes/dark/tree-item.fluent.css.d.ts +1 -0
  211. package/components/tree/themes/dark/tree-item.fluent.css.js +3 -0
  212. package/components/tree/themes/dark/tree-item.fluent.css.js.map +1 -0
  213. package/components/tree/themes/dark/tree-item.indigo.css.d.ts +1 -0
  214. package/components/tree/themes/dark/tree-item.indigo.css.js +3 -0
  215. package/components/tree/themes/dark/tree-item.indigo.css.js.map +1 -0
  216. package/components/tree/themes/light/tree-item.base.css.d.ts +1 -0
  217. package/components/tree/themes/light/tree-item.base.css.js +3 -0
  218. package/components/tree/themes/light/tree-item.base.css.js.map +1 -0
  219. package/components/tree/themes/light/tree-item.bootstrap.css.d.ts +1 -0
  220. package/components/tree/themes/light/tree-item.bootstrap.css.js +3 -0
  221. package/components/tree/themes/light/tree-item.bootstrap.css.js.map +1 -0
  222. package/components/tree/themes/light/tree-item.fluent.css.d.ts +1 -0
  223. package/components/tree/themes/light/tree-item.fluent.css.js +3 -0
  224. package/components/tree/themes/light/tree-item.fluent.css.js.map +1 -0
  225. package/components/tree/themes/light/tree-item.indigo.css.d.ts +1 -0
  226. package/components/tree/themes/light/tree-item.indigo.css.js +3 -0
  227. package/components/tree/themes/light/tree-item.indigo.css.js.map +1 -0
  228. package/components/tree/themes/light/tree.base.css.d.ts +1 -0
  229. package/components/tree/themes/light/tree.base.css.js +3 -0
  230. package/components/tree/themes/light/tree.base.css.js.map +1 -0
  231. package/components/tree/tree-item.d.ts +116 -0
  232. package/components/tree/tree-item.js +447 -0
  233. package/components/tree/tree-item.js.map +1 -0
  234. package/components/tree/tree.common.d.ts +17 -0
  235. package/components/tree/tree.common.js +2 -0
  236. package/components/tree/tree.common.js.map +1 -0
  237. package/components/tree/tree.d.ts +71 -0
  238. package/components/tree/tree.js +139 -0
  239. package/components/tree/tree.js.map +1 -0
  240. package/components/tree/tree.navigation.d.ts +41 -0
  241. package/components/tree/tree.navigation.js +260 -0
  242. package/components/tree/tree.navigation.js.map +1 -0
  243. package/components/tree/tree.selection.d.ts +55 -0
  244. package/components/tree/tree.selection.js +265 -0
  245. package/components/tree/tree.selection.js.map +1 -0
  246. package/custom-elements.json +635 -5
  247. package/index.d.ts +57 -52
  248. package/index.js +55 -51
  249. package/index.js.map +1 -1
  250. package/package.json +2 -2
  251. package/themes/dark/bootstrap.css +1 -1
  252. package/themes/dark/fluent.css +1 -1
  253. package/themes/dark/indigo.css +1 -1
  254. package/themes/light/bootstrap.css +1 -1
  255. package/themes/light/fluent.css +1 -1
  256. package/theming/config.d.ts +1 -1
  257. package/theming/config.js +2 -2
  258. package/theming/config.js.map +1 -1
  259. package/theming/index.d.ts +3 -3
  260. package/theming/index.js +3 -3
  261. package/theming/index.js.map +1 -1
  262. package/theming/{theming-controlller.d.ts → theming-controller.d.ts} +1 -1
  263. package/theming/{theming-controlller.js → theming-controller.js} +3 -3
  264. package/theming/theming-controller.js.map +1 -0
  265. package/theming/theming-decorator.js +1 -1
  266. package/theming/theming-decorator.js.map +1 -1
  267. package/theming/theming-event.d.ts +1 -1
  268. package/theming/theming-event.js.map +1 -1
  269. package/vscode-html-custom-data.json +317 -46
  270. package/components/toggle/utilities.js +0 -2
  271. package/components/toggle/utilities.js.map +0 -1
  272. package/theming/theming-controlller.js.map +0 -1
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utilities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../src/components/toggle/utilities.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Common events interface for toggle components\n */\nexport interface IgcToggleEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n/**\n * Interface describing the options for toggle components' configuration.\n */\nexport interface IgcToggleOptions {\n /**\n * Whether the toggle is open.\n */\n open: boolean;\n /**\n * The preferred placement of the toggle element around the target element. */\n placement?: IgcPlacement;\n /**\n * The positioning strategy to use.\n * Use the `fixed` strategy when the target element is in a fixed container, otherwise - use `absolute`.\n */\n positionStrategy?: 'absolute' | 'fixed';\n /**\n * Whether the element should be flipped to the opposite side once it's about to overflow the visible area.\n * Once enough space is detected on its preferred side, it will flip back.\n */\n flip?: boolean;\n /**\n * Whether to prevent the element from being cut off by moving it so it stays visible within its boundary area.\n */\n distance?: number;\n /**\n * Whether to make the toggle the same width as the target.\n */\n sameWidth?: boolean;\n}\n\nexport interface IgcToggleComponent extends IgcToggleOptions {\n scrollStrategy?: 'scroll' | 'block' | 'close';\n keepOpenOnOutsideClick?: boolean;\n\n hide(): void;\n show(): void;\n toggle(): void;\n}\n\n/**\n * Describes the preferred placement of a toggle component.\n */\nexport type IgcPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theming-controlller.js","sourceRoot":"","sources":["../../src/theming/theming-controlller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,GAAG,GAKJ,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,iBAAiB;IAKrB,YAAY,IAA8C,EAAE,MAAc;QAKzD,0BAAqB,GAAG,GAAG,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC,CAAC;QAPA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAOM,aAAa;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IAEM,gBAAgB;QACrB,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAgC,CAAC;QACxD,MAAM,2BAA2B,GAC/B,MAAM,CAAC,UAAU;YACjB,oBAAoB,IAAI,QAAQ,CAAC,SAAS;YAC1C,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC;QAEvC,IAAI,UAAU,GAAG,GAAG,CAAA,EAAE,CAAC;QAEvB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAChC,CAAC;QAEF,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;YAC7B,UAAU,GAAG,SAAS,CAAC;SACxB;QAOD,IAAI,CAAC,2BAA2B,EAAE;YAChC,CAAC,GAAG,IAAI,CAAC,IAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;iBACjD,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;SACnC;QAED,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAwB,EAAE;YAC9C,GAAG,IAAI,CAAC,aAAa;YACrB,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,uBAAuB,GAAG,CAC9B,IAA8C,EAC9C,MAAc,EACd,EAAE;IACF,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAE/B,uBAAuB,CAAC","sourcesContent":["import {\n adoptStyles,\n css,\n LitElement,\n ReactiveController,\n ReactiveControllerHost,\n ReactiveElement,\n} from 'lit';\nimport { getTheme } from './config';\nimport { CHANGE_THEME_EVENT } from './theming-event';\nimport { Theme, ThemeController, Themes } from './types';\n\nclass ThemingController implements ReactiveController, ThemeController {\n private themes: Themes;\n private host: ReactiveControllerHost & ReactiveElement;\n public theme!: Theme;\n\n constructor(host: ReactiveControllerHost & ReactiveElement, themes: Themes) {\n this.host = host;\n this.themes = themes;\n }\n\n private readonly __themingEventHandler = () => {\n this.adoptStyles();\n this.host.requestUpdate();\n };\n\n public hostConnected() {\n this.adoptStyles();\n window.addEventListener(CHANGE_THEME_EVENT, this.__themingEventHandler);\n }\n\n public hostDisconnected() {\n window.removeEventListener(CHANGE_THEME_EVENT, this.__themingEventHandler);\n }\n\n protected adoptStyles() {\n this.theme = getTheme();\n const ctor = this.host.constructor as typeof LitElement;\n const supportsAdoptingStyleSheets =\n window.ShadowRoot &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n let styleSheet = css``;\n\n const [theme] = Object.entries(this.themes).filter(\n ([name]) => name === this.theme\n );\n\n if (theme) {\n const [_, cssResult] = theme;\n styleSheet = cssResult;\n }\n\n // Firefox and Safari don't support the adoptedStyleSheets API yet,\n // and the lit framework appends the resolved stylesheets indiscriminately\n // when using the adoptStyles API below. Hence, we need to remove all previously\n // defined style tags in the shadow root as changing the themes at runtime just\n // keeps stacking the resolved styles one over the other, resulting in broken themes.\n if (!supportsAdoptingStyleSheets) {\n [...this.host!.renderRoot.querySelectorAll('style')]\n .slice(1)\n .forEach((tag) => tag.remove());\n }\n\n adoptStyles(this.host.shadowRoot as ShadowRoot, [\n ...ctor.elementStyles,\n styleSheet,\n ]);\n }\n}\n\nconst _updateWhenThemeChanges = (\n host: ReactiveControllerHost & ReactiveElement,\n themes: Themes\n) => {\n const controller = new ThemingController(host, themes);\n host.addController(controller);\n return controller;\n};\n\nexport const updateWhenThemeChanges: typeof _updateWhenThemeChanges & {\n _THEMING_CONTROLLER_FN_?: never;\n} = _updateWhenThemeChanges;\n"]}