igniteui-webcomponents 7.2.4 → 7.3.0-beta.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 (976) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/animations/player.js +1 -1
  3. package/animations/player.js.map +1 -1
  4. package/animations/view-transition.js +1 -1
  5. package/animations/view-transition.js.map +1 -1
  6. package/components/accordion/accordion.d.ts +1 -1
  7. package/components/accordion/accordion.js +7 -6
  8. package/components/accordion/accordion.js.map +1 -1
  9. package/components/avatar/avatar.js +3 -3
  10. package/components/avatar/avatar.js.map +1 -1
  11. package/components/avatar/themes/themes.d.ts +1 -1
  12. package/components/avatar/themes/themes.js.map +1 -1
  13. package/components/badge/badge.d.ts +1 -1
  14. package/components/badge/badge.js +5 -5
  15. package/components/badge/badge.js.map +1 -1
  16. package/components/badge/themes/themes.d.ts +1 -1
  17. package/components/badge/themes/themes.js.map +1 -1
  18. package/components/banner/banner.d.ts +2 -2
  19. package/components/banner/banner.js +8 -8
  20. package/components/banner/banner.js.map +1 -1
  21. package/components/banner/themes/themes.d.ts +1 -1
  22. package/components/banner/themes/themes.js.map +1 -1
  23. package/components/button/button-base.d.ts +2 -2
  24. package/components/button/button-base.js +9 -8
  25. package/components/button/button-base.js.map +1 -1
  26. package/components/button/button.d.ts +3 -3
  27. package/components/button/button.js +2 -2
  28. package/components/button/button.js.map +1 -1
  29. package/components/button/icon-button.js +3 -3
  30. package/components/button/icon-button.js.map +1 -1
  31. package/components/button/themes/button/themes.d.ts +1 -1
  32. package/components/button/themes/button/themes.js.map +1 -1
  33. package/components/button/themes/icon-button/themes.d.ts +1 -1
  34. package/components/button/themes/icon-button/themes.js.map +1 -1
  35. package/components/button-group/button-group.d.ts +42 -21
  36. package/components/button-group/button-group.js +101 -106
  37. package/components/button-group/button-group.js.map +1 -1
  38. package/components/button-group/themes/button.d.ts +1 -1
  39. package/components/button-group/themes/button.js.map +1 -1
  40. package/components/button-group/themes/group.d.ts +1 -1
  41. package/components/button-group/themes/group.js.map +1 -1
  42. package/components/button-group/toggle-button.d.ts +17 -10
  43. package/components/button-group/toggle-button.js +28 -13
  44. package/components/button-group/toggle-button.js.map +1 -1
  45. package/components/calendar/base.d.ts +29 -10
  46. package/components/calendar/base.js +12 -15
  47. package/components/calendar/base.js.map +1 -1
  48. package/components/calendar/calendar.d.ts +39 -8
  49. package/components/calendar/calendar.js +96 -85
  50. package/components/calendar/calendar.js.map +1 -1
  51. package/components/calendar/days-view/days-view.d.ts +49 -22
  52. package/components/calendar/days-view/days-view.js +102 -163
  53. package/components/calendar/days-view/days-view.js.map +1 -1
  54. package/components/calendar/helpers.d.ts +3 -62
  55. package/components/calendar/helpers.js +6 -110
  56. package/components/calendar/helpers.js.map +1 -1
  57. package/components/calendar/months-view/months-view.d.ts +7 -21
  58. package/components/calendar/months-view/months-view.js +30 -83
  59. package/components/calendar/months-view/months-view.js.map +1 -1
  60. package/components/calendar/selection.d.ts +21 -0
  61. package/components/calendar/selection.js +42 -0
  62. package/components/calendar/selection.js.map +1 -0
  63. package/components/calendar/themes/calendar.d.ts +1 -1
  64. package/components/calendar/themes/calendar.js.map +1 -1
  65. package/components/calendar/themes/days.d.ts +1 -1
  66. package/components/calendar/themes/days.js.map +1 -1
  67. package/components/calendar/themes/year-month.d.ts +1 -1
  68. package/components/calendar/themes/year-month.js.map +1 -1
  69. package/components/calendar/types.d.ts +18 -0
  70. package/components/calendar/types.js.map +1 -1
  71. package/components/calendar/year-month-view.base.d.ts +44 -0
  72. package/components/calendar/year-month-view.base.js +89 -0
  73. package/components/calendar/year-month-view.base.js.map +1 -0
  74. package/components/calendar/years-view/years-view.d.ts +7 -20
  75. package/components/calendar/years-view/years-view.js +25 -79
  76. package/components/calendar/years-view/years-view.js.map +1 -1
  77. package/components/card/card.actions.js +2 -2
  78. package/components/card/card.actions.js.map +1 -1
  79. package/components/card/card.content.d.ts +1 -1
  80. package/components/card/card.content.js +2 -2
  81. package/components/card/card.content.js.map +1 -1
  82. package/components/card/card.d.ts +1 -1
  83. package/components/card/card.header.js +2 -2
  84. package/components/card/card.header.js.map +1 -1
  85. package/components/card/card.js +2 -2
  86. package/components/card/card.js.map +1 -1
  87. package/components/card/card.media.d.ts +1 -1
  88. package/components/card/card.media.js +1 -1
  89. package/components/card/card.media.js.map +1 -1
  90. package/components/card/themes/actions.d.ts +1 -1
  91. package/components/card/themes/actions.js.map +1 -1
  92. package/components/card/themes/container.d.ts +1 -1
  93. package/components/card/themes/container.js.map +1 -1
  94. package/components/card/themes/content.d.ts +1 -1
  95. package/components/card/themes/content.js.map +1 -1
  96. package/components/card/themes/header.d.ts +1 -1
  97. package/components/card/themes/header.js.map +1 -1
  98. package/components/carousel/animations.d.ts +1 -1
  99. package/components/carousel/animations.js +2 -2
  100. package/components/carousel/animations.js.map +1 -1
  101. package/components/carousel/carousel-indicator-container.js +4 -4
  102. package/components/carousel/carousel-indicator-container.js.map +1 -1
  103. package/components/carousel/carousel-indicator.d.ts +1 -1
  104. package/components/carousel/carousel-indicator.js +5 -5
  105. package/components/carousel/carousel-indicator.js.map +1 -1
  106. package/components/carousel/carousel-slide.d.ts +1 -1
  107. package/components/carousel/carousel-slide.js +9 -9
  108. package/components/carousel/carousel-slide.js.map +1 -1
  109. package/components/carousel/carousel.d.ts +7 -7
  110. package/components/carousel/carousel.js +39 -28
  111. package/components/carousel/carousel.js.map +1 -1
  112. package/components/carousel/themes/container.d.ts +1 -1
  113. package/components/carousel/themes/container.js.map +1 -1
  114. package/components/carousel/themes/indicator-container.d.ts +1 -1
  115. package/components/carousel/themes/indicator-container.js.map +1 -1
  116. package/components/chat/chat-input.d.ts +4 -4
  117. package/components/chat/chat-input.js +9 -8
  118. package/components/chat/chat-input.js.map +1 -1
  119. package/components/chat/chat-message.d.ts +1 -1
  120. package/components/chat/chat-message.js +7 -6
  121. package/components/chat/chat-message.js.map +1 -1
  122. package/components/chat/chat-state.d.ts +2 -2
  123. package/components/chat/chat-state.js +2 -1
  124. package/components/chat/chat-state.js.map +1 -1
  125. package/components/chat/chat.d.ts +4 -4
  126. package/components/chat/chat.js +7 -7
  127. package/components/chat/chat.js.map +1 -1
  128. package/components/chat/message-attachments.js +5 -5
  129. package/components/chat/message-attachments.js.map +1 -1
  130. package/components/chat/themes/attachments.d.ts +1 -1
  131. package/components/chat/themes/attachments.js.map +1 -1
  132. package/components/chat/themes/input.d.ts +1 -1
  133. package/components/chat/themes/input.js.map +1 -1
  134. package/components/chat/themes/message.d.ts +1 -1
  135. package/components/chat/themes/message.js.map +1 -1
  136. package/components/chat/themes/themes.d.ts +1 -1
  137. package/components/chat/themes/themes.js.map +1 -1
  138. package/components/chat/types.d.ts +2 -2
  139. package/components/chat/types.js.map +1 -1
  140. package/components/chat/utils.d.ts +1 -1
  141. package/components/chat/utils.js +3 -3
  142. package/components/chat/utils.js.map +1 -1
  143. package/components/checkbox/checkbox-base.d.ts +7 -7
  144. package/components/checkbox/checkbox-base.js +7 -7
  145. package/components/checkbox/checkbox-base.js.map +1 -1
  146. package/components/checkbox/checkbox.js +7 -6
  147. package/components/checkbox/checkbox.js.map +1 -1
  148. package/components/checkbox/switch.js +7 -6
  149. package/components/checkbox/switch.js.map +1 -1
  150. package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
  151. package/components/checkbox/themes/checkbox-themes.js.map +1 -1
  152. package/components/checkbox/themes/switch-themes.d.ts +1 -1
  153. package/components/checkbox/themes/switch-themes.js.map +1 -1
  154. package/components/checkbox/validators.d.ts +1 -1
  155. package/components/checkbox/validators.js +1 -1
  156. package/components/checkbox/validators.js.map +1 -1
  157. package/components/chip/chip.d.ts +9 -3
  158. package/components/chip/chip.js +10 -6
  159. package/components/chip/chip.js.map +1 -1
  160. package/components/chip/themes/chip.base.css.js +1 -1
  161. package/components/chip/themes/chip.base.css.js.map +1 -1
  162. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  163. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  164. package/components/chip/themes/dark/chip.fluent.css.js +1 -1
  165. package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
  166. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  167. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  168. package/components/chip/themes/dark/chip.material.css.js +1 -1
  169. package/components/chip/themes/dark/chip.material.css.js.map +1 -1
  170. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  171. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  172. package/components/chip/themes/light/chip.fluent.css.js +1 -1
  173. package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
  174. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  175. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  176. package/components/chip/themes/light/chip.material.css.js +1 -1
  177. package/components/chip/themes/light/chip.material.css.js.map +1 -1
  178. package/components/chip/themes/light/chip.shared.css.js +1 -1
  179. package/components/chip/themes/light/chip.shared.css.js.map +1 -1
  180. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  181. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  182. package/components/chip/themes/shared/chip.common.css.js +1 -1
  183. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  184. package/components/chip/themes/shared/chip.fluent.css.js +1 -1
  185. package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
  186. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  187. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  188. package/components/chip/themes/themes.d.ts +1 -1
  189. package/components/chip/themes/themes.js.map +1 -1
  190. package/components/combo/combo-header.js +2 -2
  191. package/components/combo/combo-header.js.map +1 -1
  192. package/components/combo/combo-item.d.ts +0 -2
  193. package/components/combo/combo-item.js +4 -7
  194. package/components/combo/combo-item.js.map +1 -1
  195. package/components/combo/combo.d.ts +84 -27
  196. package/components/combo/combo.js +194 -157
  197. package/components/combo/combo.js.map +1 -1
  198. package/components/combo/controllers/data.d.ts +30 -3
  199. package/components/combo/controllers/data.js +34 -9
  200. package/components/combo/controllers/data.js.map +1 -1
  201. package/components/combo/controllers/navigation.d.ts +8 -2
  202. package/components/combo/controllers/navigation.js +11 -12
  203. package/components/combo/controllers/navigation.js.map +1 -1
  204. package/components/combo/operations/filter.d.ts +17 -1
  205. package/components/combo/operations/filter.js +29 -9
  206. package/components/combo/operations/filter.js.map +1 -1
  207. package/components/combo/operations/group.js +1 -1
  208. package/components/combo/operations/group.js.map +1 -1
  209. package/components/combo/themes/combo.base.css.js +1 -1
  210. package/components/combo/themes/combo.base.css.js.map +1 -1
  211. package/components/combo/themes/themes.d.ts +1 -1
  212. package/components/combo/themes/themes.js.map +1 -1
  213. package/components/combo/types.d.ts +8 -4
  214. package/components/combo/types.js.map +1 -1
  215. package/components/combo/validators.d.ts +1 -1
  216. package/components/combo/validators.js.map +1 -1
  217. package/components/date-picker/date-picker.base.d.ts +294 -0
  218. package/components/date-picker/date-picker.base.js +480 -0
  219. package/components/date-picker/date-picker.base.js.map +1 -0
  220. package/components/date-picker/date-picker.d.ts +53 -174
  221. package/components/date-picker/date-picker.js +88 -399
  222. package/components/date-picker/date-picker.js.map +1 -1
  223. package/components/date-picker/themes/themes.d.ts +1 -1
  224. package/components/date-picker/themes/themes.js.map +1 -1
  225. package/components/date-picker/validators.d.ts +1 -1
  226. package/components/date-picker/validators.js +2 -2
  227. package/components/date-picker/validators.js.map +1 -1
  228. package/components/date-range-picker/date-range-input.d.ts +12 -14
  229. package/components/date-range-picker/date-range-input.js +42 -98
  230. package/components/date-range-picker/date-range-input.js.map +1 -1
  231. package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
  232. package/components/date-range-picker/date-range-mask-parser.js +38 -69
  233. package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
  234. package/components/date-range-picker/date-range-picker.d.ts +97 -191
  235. package/components/date-range-picker/date-range-picker.js +210 -532
  236. package/components/date-range-picker/date-range-picker.js.map +1 -1
  237. package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
  238. package/components/date-range-picker/predefined-ranges-area.js +5 -5
  239. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  240. package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
  241. package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
  242. package/components/date-range-picker/themes/themes.d.ts +1 -1
  243. package/components/date-range-picker/themes/themes.js.map +1 -1
  244. package/components/date-range-picker/validators.d.ts +1 -1
  245. package/components/date-range-picker/validators.js +15 -22
  246. package/components/date-range-picker/validators.js.map +1 -1
  247. package/components/date-time-input/date-part.d.ts +18 -1
  248. package/components/date-time-input/date-part.js +10 -0
  249. package/components/date-time-input/date-part.js.map +1 -1
  250. package/components/date-time-input/date-time-input.base.d.ts +72 -25
  251. package/components/date-time-input/date-time-input.base.js +100 -36
  252. package/components/date-time-input/date-time-input.base.js.map +1 -1
  253. package/components/date-time-input/date-time-input.d.ts +13 -23
  254. package/components/date-time-input/date-time-input.js +45 -65
  255. package/components/date-time-input/date-time-input.js.map +1 -1
  256. package/components/date-time-input/datetime-mask-parser.d.ts +45 -109
  257. package/components/date-time-input/datetime-mask-parser.js +88 -139
  258. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  259. package/components/date-time-input/validators.d.ts +1 -1
  260. package/components/date-time-input/validators.js +2 -2
  261. package/components/date-time-input/validators.js.map +1 -1
  262. package/components/dialog/dialog.d.ts +2 -2
  263. package/components/dialog/dialog.js +17 -18
  264. package/components/dialog/dialog.js.map +1 -1
  265. package/components/dialog/themes/themes.d.ts +1 -1
  266. package/components/dialog/themes/themes.js.map +1 -1
  267. package/components/divider/divider.d.ts +2 -1
  268. package/components/divider/divider.js +3 -3
  269. package/components/divider/divider.js.map +1 -1
  270. package/components/divider/themes/themes.d.ts +1 -1
  271. package/components/divider/themes/themes.js.map +1 -1
  272. package/components/dropdown/dropdown-group.d.ts +10 -3
  273. package/components/dropdown/dropdown-group.js +21 -5
  274. package/components/dropdown/dropdown-group.js.map +1 -1
  275. package/components/dropdown/dropdown-header.d.ts +2 -2
  276. package/components/dropdown/dropdown-header.js +7 -2
  277. package/components/dropdown/dropdown-header.js.map +1 -1
  278. package/components/dropdown/dropdown-item.d.ts +4 -4
  279. package/components/dropdown/dropdown-item.js +3 -3
  280. package/components/dropdown/dropdown-item.js.map +1 -1
  281. package/components/dropdown/dropdown.d.ts +75 -32
  282. package/components/dropdown/dropdown.js +189 -110
  283. package/components/dropdown/dropdown.js.map +1 -1
  284. package/components/dropdown/themes/container.d.ts +1 -1
  285. package/components/dropdown/themes/container.js.map +1 -1
  286. package/components/dropdown/themes/group.d.ts +1 -1
  287. package/components/dropdown/themes/group.js.map +1 -1
  288. package/components/dropdown/themes/header.d.ts +1 -1
  289. package/components/dropdown/themes/header.js.map +1 -1
  290. package/components/dropdown/themes/item.d.ts +1 -1
  291. package/components/dropdown/themes/item.js.map +1 -1
  292. package/components/expansion-panel/expansion-panel.d.ts +14 -5
  293. package/components/expansion-panel/expansion-panel.js +10 -9
  294. package/components/expansion-panel/expansion-panel.js.map +1 -1
  295. package/components/expansion-panel/themes/themes.d.ts +1 -1
  296. package/components/expansion-panel/themes/themes.js.map +1 -1
  297. package/components/file-input/file-input.d.ts +20 -12
  298. package/components/file-input/file-input.js +17 -12
  299. package/components/file-input/file-input.js.map +1 -1
  300. package/components/file-input/themes/themes.d.ts +1 -1
  301. package/components/file-input/themes/themes.js.map +1 -1
  302. package/components/file-input/validators.d.ts +1 -1
  303. package/components/file-input/validators.js +1 -1
  304. package/components/file-input/validators.js.map +1 -1
  305. package/components/focus-trap/focus-trap.js +3 -2
  306. package/components/focus-trap/focus-trap.js.map +1 -1
  307. package/components/highlight/highlight.js +2 -2
  308. package/components/highlight/highlight.js.map +1 -1
  309. package/components/highlight/service.d.ts +4 -1
  310. package/components/highlight/service.js +23 -7
  311. package/components/highlight/service.js.map +1 -1
  312. package/components/highlight/themes/themes.d.ts +1 -1
  313. package/components/highlight/themes/themes.js.map +1 -1
  314. package/components/icon/icon-references.d.ts +3 -2
  315. package/components/icon/icon-references.js +103 -491
  316. package/components/icon/icon-references.js.map +1 -1
  317. package/components/icon/icon-state.broadcast.d.ts +14 -17
  318. package/components/icon/icon-state.broadcast.js +19 -20
  319. package/components/icon/icon-state.broadcast.js.map +1 -1
  320. package/components/icon/icon.d.ts +12 -24
  321. package/components/icon/icon.js +36 -28
  322. package/components/icon/icon.js.map +1 -1
  323. package/components/icon/icon.registry.d.ts +69 -131
  324. package/components/icon/icon.registry.js +51 -53
  325. package/components/icon/icon.registry.js.map +1 -1
  326. package/components/icon/internal-icons-lib.js +2 -2
  327. package/components/icon/internal-icons-lib.js.map +1 -1
  328. package/components/icon/registry/parser.d.ts +15 -3
  329. package/components/icon/registry/parser.js +36 -11
  330. package/components/icon/registry/parser.js.map +1 -1
  331. package/components/icon/registry/types.d.ts +55 -11
  332. package/components/icon/registry/types.js.map +1 -1
  333. package/components/icon/themes/icon.base.css.js +1 -1
  334. package/components/icon/themes/icon.base.css.js.map +1 -1
  335. package/components/icon/themes/shared/icon.common.css.js +1 -1
  336. package/components/icon/themes/shared/icon.common.css.js.map +1 -1
  337. package/components/icon/themes/themes.d.ts +1 -1
  338. package/components/icon/themes/themes.js.map +1 -1
  339. package/components/input/input-base.d.ts +10 -25
  340. package/components/input/input-base.js +14 -23
  341. package/components/input/input-base.js.map +1 -1
  342. package/components/input/input.d.ts +15 -12
  343. package/components/input/input.js +8 -9
  344. package/components/input/input.js.map +1 -1
  345. package/components/input/themes/input.base.css.js +1 -1
  346. package/components/input/themes/input.base.css.js.map +1 -1
  347. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  348. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  349. package/components/input/themes/shared/input.common.css.js +1 -1
  350. package/components/input/themes/shared/input.common.css.js.map +1 -1
  351. package/components/input/themes/shared/input.fluent.css.js +1 -1
  352. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  353. package/components/input/themes/shared/input.indigo.css.js +1 -1
  354. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  355. package/components/input/themes/shared/input.material.css.js +1 -1
  356. package/components/input/themes/shared/input.material.css.js.map +1 -1
  357. package/components/input/themes/themes.d.ts +1 -1
  358. package/components/input/themes/themes.js.map +1 -1
  359. package/components/input/validators.d.ts +1 -1
  360. package/components/input/validators.js +1 -1
  361. package/components/input/validators.js.map +1 -1
  362. package/components/list/list-header.js +3 -3
  363. package/components/list/list-header.js.map +1 -1
  364. package/components/list/list-item.js +3 -3
  365. package/components/list/list-item.js.map +1 -1
  366. package/components/list/list.js +3 -3
  367. package/components/list/list.js.map +1 -1
  368. package/components/list/themes/container.d.ts +1 -1
  369. package/components/list/themes/container.js.map +1 -1
  370. package/components/list/themes/header.d.ts +1 -1
  371. package/components/list/themes/header.js.map +1 -1
  372. package/components/list/themes/item.d.ts +1 -1
  373. package/components/list/themes/item.js.map +1 -1
  374. package/components/mask-input/mask-history.d.ts +99 -0
  375. package/components/mask-input/mask-history.js +95 -0
  376. package/components/mask-input/mask-history.js.map +1 -0
  377. package/components/mask-input/mask-input.d.ts +14 -9
  378. package/components/mask-input/mask-input.js +20 -24
  379. package/components/mask-input/mask-input.js.map +1 -1
  380. package/components/mask-input/mask-parser.d.ts +20 -2
  381. package/components/mask-input/mask-parser.js +21 -13
  382. package/components/mask-input/mask-parser.js.map +1 -1
  383. package/components/mask-input/validators.d.ts +1 -1
  384. package/components/mask-input/validators.js +1 -1
  385. package/components/mask-input/validators.js.map +1 -1
  386. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
  387. package/components/nav-drawer/nav-drawer-header-item.js +2 -2
  388. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  389. package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
  390. package/components/nav-drawer/nav-drawer-item.js +4 -4
  391. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  392. package/components/nav-drawer/nav-drawer.d.ts +3 -3
  393. package/components/nav-drawer/nav-drawer.js +11 -14
  394. package/components/nav-drawer/nav-drawer.js.map +1 -1
  395. package/components/nav-drawer/themes/container.base.css.js +1 -1
  396. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  397. package/components/nav-drawer/themes/container.d.ts +1 -1
  398. package/components/nav-drawer/themes/container.js +2 -3
  399. package/components/nav-drawer/themes/container.js.map +1 -1
  400. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  401. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  402. package/components/nav-drawer/themes/header-item.d.ts +1 -1
  403. package/components/nav-drawer/themes/header-item.js.map +1 -1
  404. package/components/nav-drawer/themes/item.d.ts +1 -1
  405. package/components/nav-drawer/themes/item.js.map +1 -1
  406. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  407. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  408. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  409. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  410. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  411. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  412. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  413. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  414. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  415. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  416. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  417. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  418. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  419. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  420. package/components/navbar/navbar.js +2 -2
  421. package/components/navbar/navbar.js.map +1 -1
  422. package/components/navbar/themes/themes.d.ts +1 -1
  423. package/components/navbar/themes/themes.js.map +1 -1
  424. package/components/popover/popover.d.ts +10 -3
  425. package/components/popover/popover.js +114 -99
  426. package/components/popover/popover.js.map +1 -1
  427. package/components/progress/base.d.ts +1 -1
  428. package/components/progress/base.js +5 -4
  429. package/components/progress/base.js.map +1 -1
  430. package/components/progress/circular-gradient.d.ts +2 -2
  431. package/components/progress/circular-gradient.js +1 -1
  432. package/components/progress/circular-gradient.js.map +1 -1
  433. package/components/progress/circular-progress.d.ts +15 -15
  434. package/components/progress/circular-progress.js +7 -6
  435. package/components/progress/circular-progress.js.map +1 -1
  436. package/components/progress/linear-progress.d.ts +12 -12
  437. package/components/progress/linear-progress.js +4 -4
  438. package/components/progress/linear-progress.js.map +1 -1
  439. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  440. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  441. package/components/progress/themes/circular/themes.d.ts +1 -1
  442. package/components/progress/themes/circular/themes.js.map +1 -1
  443. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  444. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  445. package/components/progress/themes/linear/themes.d.ts +1 -1
  446. package/components/progress/themes/linear/themes.js.map +1 -1
  447. package/components/qr-code/model/encode.d.ts +20 -0
  448. package/components/qr-code/model/encode.js +166 -0
  449. package/components/qr-code/model/encode.js.map +1 -0
  450. package/components/qr-code/model/error-correction.d.ts +15 -0
  451. package/components/qr-code/model/error-correction.js +1114 -0
  452. package/components/qr-code/model/error-correction.js.map +1 -0
  453. package/components/qr-code/model/mask.d.ts +11 -0
  454. package/components/qr-code/model/mask.js +161 -0
  455. package/components/qr-code/model/mask.js.map +1 -0
  456. package/components/qr-code/model/matrix.d.ts +15 -0
  457. package/components/qr-code/model/matrix.js +277 -0
  458. package/components/qr-code/model/matrix.js.map +1 -0
  459. package/components/qr-code/qr-code.d.ts +134 -0
  460. package/components/qr-code/qr-code.js +221 -0
  461. package/components/qr-code/qr-code.js.map +1 -0
  462. package/components/qr-code/renderer/constants.d.ts +26 -0
  463. package/components/qr-code/renderer/constants.js +5 -0
  464. package/components/qr-code/renderer/constants.js.map +1 -0
  465. package/components/qr-code/renderer/corner.d.ts +23 -0
  466. package/components/qr-code/renderer/corner.js +25 -0
  467. package/components/qr-code/renderer/corner.js.map +1 -0
  468. package/components/qr-code/renderer/dots.d.ts +14 -0
  469. package/components/qr-code/renderer/dots.js +7 -0
  470. package/components/qr-code/renderer/dots.js.map +1 -0
  471. package/components/qr-code/renderer/helpers.d.ts +18 -0
  472. package/components/qr-code/renderer/helpers.js +158 -0
  473. package/components/qr-code/renderer/helpers.js.map +1 -0
  474. package/components/qr-code/renderer/image.d.ts +23 -0
  475. package/components/qr-code/renderer/image.js +29 -0
  476. package/components/qr-code/renderer/image.js.map +1 -0
  477. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
  478. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
  479. package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
  480. package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
  481. package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
  482. package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
  483. package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
  484. package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
  485. package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
  486. package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
  487. package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
  488. package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
  489. package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
  490. package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
  491. package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
  492. package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
  493. package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
  494. package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
  495. package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
  496. package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
  497. package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
  498. package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
  499. package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
  500. package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
  501. package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
  502. package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
  503. package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
  504. package/components/qr-code/themes/qr-code.base.css.js +3 -0
  505. package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
  506. package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
  507. package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
  508. package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
  509. package/components/qr-code/themes/themes.d.ts +2 -0
  510. package/components/qr-code/themes/themes.js +46 -0
  511. package/components/qr-code/themes/themes.js.map +1 -0
  512. package/components/qr-code/types.d.ts +16 -0
  513. package/components/qr-code/types.js +2 -0
  514. package/components/qr-code/types.js.map +1 -0
  515. package/components/radio/controller.d.ts +35 -0
  516. package/components/radio/controller.js +100 -0
  517. package/components/radio/controller.js.map +1 -0
  518. package/components/radio/radio.d.ts +26 -14
  519. package/components/radio/radio.js +47 -36
  520. package/components/radio/radio.js.map +1 -1
  521. package/components/radio/themes/themes.d.ts +1 -1
  522. package/components/radio/themes/themes.js.map +1 -1
  523. package/components/radio/validators.d.ts +1 -1
  524. package/components/radio/validators.js +5 -3
  525. package/components/radio/validators.js.map +1 -1
  526. package/components/radio-group/radio-group.d.ts +19 -10
  527. package/components/radio-group/radio-group.js +50 -41
  528. package/components/radio-group/radio-group.js.map +1 -1
  529. package/components/radio-group/themes/themes.d.ts +1 -1
  530. package/components/radio-group/themes/themes.js.map +1 -1
  531. package/components/rating/rating-symbol.d.ts +1 -1
  532. package/components/rating/rating-symbol.js +1 -1
  533. package/components/rating/rating-symbol.js.map +1 -1
  534. package/components/rating/rating.d.ts +6 -6
  535. package/components/rating/rating.js +12 -9
  536. package/components/rating/rating.js.map +1 -1
  537. package/components/rating/themes/themes.d.ts +1 -1
  538. package/components/rating/themes/themes.js.map +1 -1
  539. package/components/resize-container/resize-container.d.ts +4 -4
  540. package/components/resize-container/resize-container.js +4 -4
  541. package/components/resize-container/resize-container.js.map +1 -1
  542. package/components/resize-container/resize-controller.js +2 -2
  543. package/components/resize-container/resize-controller.js.map +1 -1
  544. package/components/resize-container/themes/themes.d.ts +1 -1
  545. package/components/resize-container/themes/themes.js.map +1 -1
  546. package/components/ripple/ripple.d.ts +1 -1
  547. package/components/ripple/ripple.js +3 -2
  548. package/components/ripple/ripple.js.map +1 -1
  549. package/components/select/select-group.d.ts +9 -2
  550. package/components/select/select-group.js +21 -5
  551. package/components/select/select-group.js.map +1 -1
  552. package/components/select/select-header.d.ts +1 -1
  553. package/components/select/select-header.js +7 -2
  554. package/components/select/select-header.js.map +1 -1
  555. package/components/select/select-item.d.ts +4 -4
  556. package/components/select/select-item.js +3 -3
  557. package/components/select/select-item.js.map +1 -1
  558. package/components/select/select.d.ts +48 -27
  559. package/components/select/select.js +128 -74
  560. package/components/select/select.js.map +1 -1
  561. package/components/select/themes/select.base.css.js +1 -1
  562. package/components/select/themes/select.base.css.js.map +1 -1
  563. package/components/select/themes/themes.d.ts +1 -1
  564. package/components/select/themes/themes.js.map +1 -1
  565. package/components/select/validators.d.ts +1 -1
  566. package/components/select/validators.js +1 -1
  567. package/components/select/validators.js.map +1 -1
  568. package/components/slider/range-slider.d.ts +2 -2
  569. package/components/slider/range-slider.js +3 -3
  570. package/components/slider/range-slider.js.map +1 -1
  571. package/components/slider/slider-base.js +9 -5
  572. package/components/slider/slider-base.js.map +1 -1
  573. package/components/slider/slider-label.js +1 -1
  574. package/components/slider/slider-label.js.map +1 -1
  575. package/components/slider/slider.d.ts +3 -3
  576. package/components/slider/slider.js +6 -6
  577. package/components/slider/slider.js.map +1 -1
  578. package/components/slider/themes/themes.d.ts +1 -1
  579. package/components/slider/themes/themes.js.map +1 -1
  580. package/components/snackbar/snackbar.d.ts +3 -3
  581. package/components/snackbar/snackbar.js +4 -4
  582. package/components/snackbar/snackbar.js.map +1 -1
  583. package/components/snackbar/themes/themes.d.ts +1 -1
  584. package/components/snackbar/themes/themes.js.map +1 -1
  585. package/components/splitter/splitter.d.ts +106 -23
  586. package/components/splitter/splitter.js +234 -147
  587. package/components/splitter/splitter.js.map +1 -1
  588. package/components/splitter/themes/themes.d.ts +1 -1
  589. package/components/splitter/themes/themes.js.map +1 -1
  590. package/components/splitter/types.d.ts +14 -3
  591. package/components/splitter/types.js.map +1 -1
  592. package/components/stepper/common/animations.d.ts +1 -1
  593. package/components/stepper/common/animations.js +2 -2
  594. package/components/stepper/common/animations.js.map +1 -1
  595. package/components/stepper/step.d.ts +1 -1
  596. package/components/stepper/step.js +7 -7
  597. package/components/stepper/step.js.map +1 -1
  598. package/components/stepper/stepper.d.ts +5 -5
  599. package/components/stepper/stepper.js +12 -9
  600. package/components/stepper/stepper.js.map +1 -1
  601. package/components/stepper/themes/step/themes.d.ts +1 -1
  602. package/components/stepper/themes/step/themes.js.map +1 -1
  603. package/components/tabs/tab-dom.d.ts +31 -28
  604. package/components/tabs/tab-dom.js +84 -34
  605. package/components/tabs/tab-dom.js.map +1 -1
  606. package/components/tabs/tab.d.ts +24 -6
  607. package/components/tabs/tab.js +34 -13
  608. package/components/tabs/tab.js.map +1 -1
  609. package/components/tabs/tabs.d.ts +36 -22
  610. package/components/tabs/tabs.js +113 -102
  611. package/components/tabs/tabs.js.map +1 -1
  612. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
  613. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
  614. package/components/tabs/themes/tab-themes.d.ts +1 -1
  615. package/components/tabs/themes/tab-themes.js.map +1 -1
  616. package/components/tabs/themes/tabs-themes.d.ts +1 -1
  617. package/components/tabs/themes/tabs-themes.js.map +1 -1
  618. package/components/tabs/themes/tabs.base.css.js +1 -1
  619. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  620. package/components/textarea/textarea.d.ts +19 -14
  621. package/components/textarea/textarea.js +22 -17
  622. package/components/textarea/textarea.js.map +1 -1
  623. package/components/textarea/themes/themes.d.ts +1 -1
  624. package/components/textarea/themes/themes.js.map +1 -1
  625. package/components/textarea/validators.d.ts +1 -1
  626. package/components/textarea/validators.js +1 -1
  627. package/components/textarea/validators.js.map +1 -1
  628. package/components/theme-provider/theme-provider.d.ts +1 -1
  629. package/components/theme-provider/theme-provider.js +2 -2
  630. package/components/theme-provider/theme-provider.js.map +1 -1
  631. package/components/tile-manager/position.d.ts +1 -1
  632. package/components/tile-manager/position.js +2 -2
  633. package/components/tile-manager/position.js.map +1 -1
  634. package/components/tile-manager/resize-state.js +4 -3
  635. package/components/tile-manager/resize-state.js.map +1 -1
  636. package/components/tile-manager/themes/container.d.ts +1 -1
  637. package/components/tile-manager/themes/container.js.map +1 -1
  638. package/components/tile-manager/themes/tile.d.ts +1 -1
  639. package/components/tile-manager/themes/tile.js.map +1 -1
  640. package/components/tile-manager/tile-ghost-util.js +1 -1
  641. package/components/tile-manager/tile-ghost-util.js.map +1 -1
  642. package/components/tile-manager/tile-manager.d.ts +1 -1
  643. package/components/tile-manager/tile-manager.js +7 -7
  644. package/components/tile-manager/tile-manager.js.map +1 -1
  645. package/components/tile-manager/tile.d.ts +4 -4
  646. package/components/tile-manager/tile.js +16 -13
  647. package/components/tile-manager/tile.js.map +1 -1
  648. package/components/toast/themes/themes.d.ts +1 -1
  649. package/components/toast/themes/themes.js.map +1 -1
  650. package/components/toast/toast.d.ts +1 -1
  651. package/components/toast/toast.js +3 -3
  652. package/components/toast/toast.js.map +1 -1
  653. package/components/tooltip/controller.d.ts +18 -16
  654. package/components/tooltip/controller.js +62 -41
  655. package/components/tooltip/controller.js.map +1 -1
  656. package/components/tooltip/service.d.ts +2 -1
  657. package/components/tooltip/service.js +10 -15
  658. package/components/tooltip/service.js.map +1 -1
  659. package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
  660. package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
  661. package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
  662. package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
  663. package/components/tooltip/themes/themes.d.ts +1 -1
  664. package/components/tooltip/themes/themes.js.map +1 -1
  665. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  666. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  667. package/components/tooltip/tooltip.d.ts +64 -18
  668. package/components/tooltip/tooltip.js +110 -60
  669. package/components/tooltip/tooltip.js.map +1 -1
  670. package/components/tree/themes/container.base.css.js +1 -1
  671. package/components/tree/themes/container.base.css.js.map +1 -1
  672. package/components/tree/themes/container.d.ts +1 -1
  673. package/components/tree/themes/container.js.map +1 -1
  674. package/components/tree/themes/item.base.css.js +1 -1
  675. package/components/tree/themes/item.base.css.js.map +1 -1
  676. package/components/tree/themes/item.d.ts +1 -1
  677. package/components/tree/themes/item.js.map +1 -1
  678. package/components/tree/tree-item.d.ts +62 -36
  679. package/components/tree/tree-item.js +198 -208
  680. package/components/tree/tree-item.js.map +1 -1
  681. package/components/tree/tree.common.d.ts +16 -1
  682. package/components/tree/tree.common.js +40 -1
  683. package/components/tree/tree.common.js.map +1 -1
  684. package/components/tree/tree.d.ts +21 -14
  685. package/components/tree/tree.js +64 -72
  686. package/components/tree/tree.js.map +1 -1
  687. package/components/tree/tree.navigation.d.ts +39 -29
  688. package/components/tree/tree.navigation.js +140 -192
  689. package/components/tree/tree.navigation.js.map +1 -1
  690. package/components/tree/tree.selection.d.ts +32 -31
  691. package/components/tree/tree.selection.js +184 -178
  692. package/components/tree/tree.selection.js.map +1 -1
  693. package/components/types.js.map +1 -1
  694. package/components/validation-container/validation-container.d.ts +1 -1
  695. package/components/validation-container/validation-container.js +7 -6
  696. package/components/validation-container/validation-container.js.map +1 -1
  697. package/components/virtualization/engine.d.ts +92 -0
  698. package/components/virtualization/engine.js +217 -0
  699. package/components/virtualization/engine.js.map +1 -0
  700. package/components/virtualization/types.d.ts +53 -0
  701. package/components/virtualization/types.js +14 -0
  702. package/components/virtualization/types.js.map +1 -0
  703. package/components/virtualization/virtualization.d.ts +235 -0
  704. package/components/virtualization/virtualization.js +474 -0
  705. package/components/virtualization/virtualization.js.map +1 -0
  706. package/components/visually-hidden/visually-hidden.js +1 -1
  707. package/components/visually-hidden/visually-hidden.js.map +1 -1
  708. package/custom-elements.json +57745 -48130
  709. package/extras/chat-markdown-renderer.d.ts +1 -1
  710. package/extras/chat-markdown-renderer.js.map +1 -1
  711. package/igniteui-webcomponents.css-data.json +2 -2
  712. package/igniteui-webcomponents.html-data.json +1 -1
  713. package/index.d.ts +17 -12
  714. package/index.js +11 -9
  715. package/index.js.map +1 -1
  716. package/internals/abort-handler.js.map +1 -0
  717. package/internals/context.d.ts +39 -0
  718. package/{components/common → internals}/context.js +2 -1
  719. package/internals/context.js.map +1 -0
  720. package/internals/controllers/adopt-styles.d.ts +76 -0
  721. package/internals/controllers/adopt-styles.js +173 -0
  722. package/internals/controllers/adopt-styles.js.map +1 -0
  723. package/internals/controllers/aria-projection.d.ts +144 -0
  724. package/internals/controllers/aria-projection.js +138 -0
  725. package/internals/controllers/aria-projection.js.map +1 -0
  726. package/{components/common → internals}/controllers/async-consumer.js +8 -7
  727. package/internals/controllers/async-consumer.js.map +1 -0
  728. package/internals/controllers/command.js.map +1 -0
  729. package/{components/common → internals}/controllers/drag.js +3 -2
  730. package/internals/controllers/drag.js.map +1 -0
  731. package/{components/common → internals}/controllers/focus-ring.js +5 -2
  732. package/internals/controllers/focus-ring.js.map +1 -0
  733. package/{components/common → internals}/controllers/fullscreen.js +6 -3
  734. package/internals/controllers/fullscreen.js.map +1 -0
  735. package/{components/common → internals}/controllers/gestures.d.ts +1 -1
  736. package/{components/common → internals}/controllers/gestures.js +4 -4
  737. package/internals/controllers/gestures.js.map +1 -0
  738. package/{components/common → internals}/controllers/id-resolver.js +15 -21
  739. package/internals/controllers/id-resolver.js.map +1 -0
  740. package/{components/common → internals}/controllers/internals.d.ts +39 -3
  741. package/{components/common → internals}/controllers/internals.js +28 -0
  742. package/internals/controllers/internals.js.map +1 -0
  743. package/{components/common → internals}/controllers/key-bindings.d.ts +3 -6
  744. package/{components/common → internals}/controllers/key-bindings.js +43 -29
  745. package/internals/controllers/key-bindings.js.map +1 -0
  746. package/{components/common → internals}/controllers/mutation-observer.d.ts +3 -2
  747. package/{components/common → internals}/controllers/mutation-observer.js +24 -22
  748. package/internals/controllers/mutation-observer.js.map +1 -0
  749. package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
  750. package/{components/common → internals}/controllers/resize-observer.js +13 -2
  751. package/internals/controllers/resize-observer.js.map +1 -0
  752. package/{components/common → internals}/controllers/root-click.js +8 -13
  753. package/internals/controllers/root-click.js.map +1 -0
  754. package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
  755. package/internals/controllers/root-scroll.js +71 -0
  756. package/internals/controllers/root-scroll.js.map +1 -0
  757. package/{components/common → internals}/controllers/slot.d.ts +17 -1
  758. package/{components/common → internals}/controllers/slot.js +18 -6
  759. package/internals/controllers/slot.js.map +1 -0
  760. package/internals/date/compare.d.ts +2 -0
  761. package/internals/date/compare.js +23 -0
  762. package/internals/date/compare.js.map +1 -0
  763. package/internals/date/converters.d.ts +18 -0
  764. package/internals/date/converters.js +73 -0
  765. package/internals/date/converters.js.map +1 -0
  766. package/{components/calendar → internals/date}/model.d.ts +6 -3
  767. package/{components/calendar → internals/date}/model.js +23 -0
  768. package/internals/date/model.js.map +1 -0
  769. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
  770. package/internals/decorators/blazorDeepImport.js.map +1 -0
  771. package/internals/decorators/blazorInclude.js.map +1 -0
  772. package/internals/decorators/blazorIndirectRender.js.map +1 -0
  773. package/internals/decorators/blazorSuppressComponent.js.map +1 -0
  774. package/internals/decorators/shadow-options.js.map +1 -0
  775. package/internals/decorators/watch.js.map +1 -0
  776. package/internals/definitions/defineAllComponents.js +153 -0
  777. package/internals/definitions/defineAllComponents.js.map +1 -0
  778. package/internals/definitions/defineComponents.js.map +1 -0
  779. package/internals/definitions/register.js.map +1 -0
  780. package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
  781. package/internals/i18n/EN/calendar.resources.js.map +1 -0
  782. package/internals/i18n/EN/chat.resources.js.map +1 -0
  783. package/internals/i18n/EN/date-picker.resources.js.map +1 -0
  784. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
  785. package/internals/i18n/i18n-controller.js.map +1 -0
  786. package/{components/common → internals}/i18n/utils.js +1 -1
  787. package/internals/i18n/utils.js.map +1 -0
  788. package/{components/common → internals}/mixins/alert.d.ts +2 -2
  789. package/{components/common → internals}/mixins/alert.js +3 -3
  790. package/internals/mixins/alert.js.map +1 -0
  791. package/{components/common → internals}/mixins/combo-box.d.ts +10 -2
  792. package/{components/common → internals}/mixins/combo-box.js +9 -4
  793. package/internals/mixins/combo-box.js.map +1 -0
  794. package/internals/mixins/constructor.js.map +1 -0
  795. package/internals/mixins/event-emitter.js.map +1 -0
  796. package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
  797. package/internals/mixins/forms/associated-required.js.map +1 -0
  798. package/{components/common → internals}/mixins/forms/associated.js +45 -38
  799. package/internals/mixins/forms/associated.js.map +1 -0
  800. package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
  801. package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
  802. package/internals/mixins/forms/form-transformers.js.map +1 -0
  803. package/internals/mixins/forms/form-value.js.map +1 -0
  804. package/{components/common → internals}/mixins/forms/types.d.ts +5 -6
  805. package/internals/mixins/forms/types.js.map +1 -0
  806. package/{components/common → internals}/mixins/mask-behavior.d.ts +11 -3
  807. package/{components/common → internals}/mixins/mask-behavior.js +117 -29
  808. package/internals/mixins/mask-behavior.js.map +1 -0
  809. package/{components/common → internals}/mixins/option.d.ts +0 -2
  810. package/{components/common → internals}/mixins/option.js +1 -4
  811. package/internals/mixins/option.js.map +1 -0
  812. package/internals/part-map.js.map +1 -0
  813. package/{components/common → internals}/templates/input-shell.d.ts +8 -1
  814. package/{components/common → internals}/templates/input-shell.js +14 -4
  815. package/internals/templates/input-shell.js.map +1 -0
  816. package/{components/common → internals}/templates/masked-input.d.ts +8 -4
  817. package/{components/common → internals}/templates/masked-input.js +4 -3
  818. package/internals/templates/masked-input.js.map +1 -0
  819. package/internals/utils/arrays.d.ts +53 -0
  820. package/internals/utils/arrays.js +31 -0
  821. package/internals/utils/arrays.js.map +1 -0
  822. package/internals/utils/dom.d.ts +92 -0
  823. package/internals/utils/dom.js +143 -0
  824. package/internals/utils/dom.js.map +1 -0
  825. package/internals/utils/events.d.ts +41 -0
  826. package/internals/utils/events.js +37 -0
  827. package/internals/utils/events.js.map +1 -0
  828. package/internals/utils/lit.d.ts +8 -0
  829. package/internals/utils/lit.js +15 -0
  830. package/internals/utils/lit.js.map +1 -0
  831. package/internals/utils/math.d.ts +50 -0
  832. package/internals/utils/math.js +38 -0
  833. package/internals/utils/math.js.map +1 -0
  834. package/internals/utils/objects.d.ts +25 -0
  835. package/internals/utils/objects.js +125 -0
  836. package/internals/utils/objects.js.map +1 -0
  837. package/internals/utils/strings.d.ts +44 -0
  838. package/internals/utils/strings.js +46 -0
  839. package/internals/utils/strings.js.map +1 -0
  840. package/internals/utils/types.d.ts +13 -0
  841. package/internals/utils/types.js +31 -0
  842. package/internals/utils/types.js.map +1 -0
  843. package/{components/common → internals}/validators.d.ts +1 -1
  844. package/{components/common → internals}/validators.js +4 -2
  845. package/internals/validators.js.map +1 -0
  846. package/package.json +15 -7
  847. package/themes/dark/bootstrap.css +1 -1
  848. package/themes/dark/fluent.css +1 -1
  849. package/themes/dark/indigo.css +1 -1
  850. package/themes/dark/material.css +1 -1
  851. package/themes/light/bootstrap.css +1 -1
  852. package/themes/light/fluent.css +1 -1
  853. package/themes/light/indigo.css +1 -1
  854. package/themes/light/material.css +1 -1
  855. package/theming/theming-controller.d.ts +2 -2
  856. package/theming/theming-controller.js.map +1 -1
  857. package/web-types.json +3 -3
  858. package/components/calendar/model.js.map +0 -1
  859. package/components/combo/combo-list.d.ts +0 -11
  860. package/components/combo/combo-list.js +0 -13
  861. package/components/combo/combo-list.js.map +0 -1
  862. package/components/common/abort-handler.js.map +0 -1
  863. package/components/common/context.d.ts +0 -25
  864. package/components/common/context.js.map +0 -1
  865. package/components/common/controllers/adopt-styles.d.ts +0 -124
  866. package/components/common/controllers/adopt-styles.js +0 -75
  867. package/components/common/controllers/adopt-styles.js.map +0 -1
  868. package/components/common/controllers/async-consumer.js.map +0 -1
  869. package/components/common/controllers/command.js.map +0 -1
  870. package/components/common/controllers/drag.js.map +0 -1
  871. package/components/common/controllers/focus-ring.js.map +0 -1
  872. package/components/common/controllers/fullscreen.js.map +0 -1
  873. package/components/common/controllers/gestures.js.map +0 -1
  874. package/components/common/controllers/id-resolver.js.map +0 -1
  875. package/components/common/controllers/internals.js.map +0 -1
  876. package/components/common/controllers/key-bindings.js.map +0 -1
  877. package/components/common/controllers/mutation-observer.js.map +0 -1
  878. package/components/common/controllers/resize-observer.js.map +0 -1
  879. package/components/common/controllers/root-click.js.map +0 -1
  880. package/components/common/controllers/root-scroll.js +0 -63
  881. package/components/common/controllers/root-scroll.js.map +0 -1
  882. package/components/common/controllers/slot.js.map +0 -1
  883. package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
  884. package/components/common/decorators/blazorDeepImport.js.map +0 -1
  885. package/components/common/decorators/blazorInclude.js.map +0 -1
  886. package/components/common/decorators/blazorIndirectRender.js.map +0 -1
  887. package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
  888. package/components/common/decorators/shadow-options.js.map +0 -1
  889. package/components/common/decorators/watch.js.map +0 -1
  890. package/components/common/definitions/defineAllComponents.js +0 -151
  891. package/components/common/definitions/defineAllComponents.js.map +0 -1
  892. package/components/common/definitions/defineComponents.js.map +0 -1
  893. package/components/common/definitions/register.js.map +0 -1
  894. package/components/common/i18n/EN/calendar.resources.js.map +0 -1
  895. package/components/common/i18n/EN/chat.resources.js.map +0 -1
  896. package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
  897. package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
  898. package/components/common/i18n/i18n-controller.js.map +0 -1
  899. package/components/common/i18n/utils.js.map +0 -1
  900. package/components/common/mixins/alert.js.map +0 -1
  901. package/components/common/mixins/combo-box.js.map +0 -1
  902. package/components/common/mixins/constructor.js.map +0 -1
  903. package/components/common/mixins/event-emitter.js.map +0 -1
  904. package/components/common/mixins/forms/associated-required.js.map +0 -1
  905. package/components/common/mixins/forms/associated.js.map +0 -1
  906. package/components/common/mixins/forms/form-transformers.js.map +0 -1
  907. package/components/common/mixins/forms/form-value.js.map +0 -1
  908. package/components/common/mixins/forms/types.js.map +0 -1
  909. package/components/common/mixins/mask-behavior.js.map +0 -1
  910. package/components/common/mixins/option.js.map +0 -1
  911. package/components/common/part-map.js.map +0 -1
  912. package/components/common/templates/input-shell.js.map +0 -1
  913. package/components/common/templates/masked-input.js.map +0 -1
  914. package/components/common/util.d.ts +0 -196
  915. package/components/common/util.js +0 -390
  916. package/components/common/util.js.map +0 -1
  917. package/components/common/validators.js.map +0 -1
  918. package/components/icon/registry/default-map.d.ts +0 -107
  919. package/components/icon/registry/default-map.js +0 -25
  920. package/components/icon/registry/default-map.js.map +0 -1
  921. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
  922. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
  923. package/components/radio/utils.d.ts +0 -13
  924. package/components/radio/utils.js +0 -37
  925. package/components/radio/utils.js.map +0 -1
  926. /package/components/{nav-drawer/themes/shared/container/nav-drawer.fluent.css.d.ts → qr-code/themes/dark/qr-code.bootstrap.css.d.ts} +0 -0
  927. /package/{components/common → internals}/abort-handler.d.ts +0 -0
  928. /package/{components/common → internals}/abort-handler.js +0 -0
  929. /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
  930. /package/{components/common → internals}/controllers/command.d.ts +0 -0
  931. /package/{components/common → internals}/controllers/command.js +0 -0
  932. /package/{components/common → internals}/controllers/drag.d.ts +0 -0
  933. /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
  934. /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
  935. /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
  936. /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
  937. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
  938. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
  939. /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
  940. /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
  941. /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
  942. /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
  943. /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
  944. /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
  945. /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
  946. /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
  947. /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
  948. /package/{components/common → internals}/decorators/shadow-options.js +0 -0
  949. /package/{components/common → internals}/decorators/watch.d.ts +0 -0
  950. /package/{components/common → internals}/decorators/watch.js +0 -0
  951. /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
  952. /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
  953. /package/{components/common → internals}/definitions/defineComponents.js +0 -0
  954. /package/{components/common → internals}/definitions/register.d.ts +0 -0
  955. /package/{components/common → internals}/definitions/register.js +0 -0
  956. /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
  957. /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
  958. /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
  959. /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
  960. /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
  961. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
  962. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
  963. /package/{components/common → internals}/i18n/i18n-controller.d.ts +0 -0
  964. /package/{components/common → internals}/i18n/i18n-controller.js +0 -0
  965. /package/{components/common → internals}/i18n/utils.d.ts +0 -0
  966. /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
  967. /package/{components/common → internals}/mixins/constructor.js +0 -0
  968. /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
  969. /package/{components/common → internals}/mixins/event-emitter.js +0 -0
  970. /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
  971. /package/{components/common → internals}/mixins/forms/associated.d.ts +0 -0
  972. /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
  973. /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
  974. /package/{components/common → internals}/mixins/forms/types.js +0 -0
  975. /package/{components/common → internals}/part-map.d.ts +0 -0
  976. /package/{components/common → internals}/part-map.js +0 -0
@@ -1,38 +1,35 @@
1
1
  import type { BroadcastIconsChangeMessage, IconMeta, IconsCollection, SvgIcon } from './registry/types.js';
2
2
  type IconBroadcastEvent = MessageEvent<BroadcastIconsChangeMessage> | PageTransitionEvent;
3
3
  /**
4
- * Manages cross-context synchronization of icon state using the BroadcastChannel API.
4
+ * Publishes icon registry state to other browsing contexts of the same origin
5
+ * using the BroadcastChannel API.
5
6
  *
6
7
  * @remarks
7
- * This class enables icon registry state to be shared between different browsing contexts
8
- * (e.g., iframes, tabs) within the same origin. It specifically handles synchronization
9
- * with Angular elements that may be running in separate contexts.
8
+ * The traffic is one-way by design: this side broadcasts its own registrations
9
+ * and reference updates, and answers a peer's `SyncState` request with the
10
+ * user-set part of the registry. It never applies inbound state and never
11
+ * requests a sync itself - the Ignite UI for Angular icon service is the peer
12
+ * that consumes these messages.
10
13
  *
11
- * The broadcast channel is automatically created on page show and disposed on page hide
12
- * to properly handle bfcache (back/forward cache) scenarios.
14
+ * The channel is created on page show and disposed on page hide, so a page
15
+ * restored from the bfcache gets a working one. Under SSR the instance is inert.
13
16
  */
14
17
  export declare class IconsStateBroadcast {
15
18
  private static readonly _origin;
16
19
  private readonly _iconsCollection;
17
20
  private readonly _iconReferences;
18
21
  private _channel;
19
- /**
20
- * Creates an instance of IconsStateBroadcast.
21
- *
22
- * @param iconsCollection - The collection of registered SVG icons.
23
- * @param iconReferences - The collection of icon references/aliases.
24
- */
25
22
  constructor(iconsCollection: IconsCollection<SvgIcon>, iconReferences: IconsCollection<IconMeta>);
26
- /**
27
- * Sends a message to other browsing contexts via the broadcast channel.
28
- */
23
+ /** Posts a message to the other browsing contexts of this origin. */
29
24
  send(data: BroadcastIconsChangeMessage): void;
30
25
  /** @internal */
31
26
  handleEvent(event: IconBroadcastEvent): void;
32
27
  private _syncState;
33
28
  private _create;
34
29
  private _dispose;
35
- private _getUserRefsCollection;
36
- private _getUserSetCollection;
30
+ /** The user-set references, skipping collections that have none. */
31
+ private _userReferences;
32
+ /** Every registered collection except the built-in `internal` one. */
33
+ private _userIcons;
37
34
  }
38
35
  export {};
@@ -1,4 +1,4 @@
1
- import { createIconDefaultMap } from './registry/default-map.js';
1
+ import { isServer } from 'lit';
2
2
  import { ActionType } from './registry/types.js';
3
3
  export class IconsStateBroadcast {
4
4
  static { this._origin = 'igniteui-webcomponents'; }
@@ -6,6 +6,9 @@ export class IconsStateBroadcast {
6
6
  this._channel = null;
7
7
  this._iconsCollection = iconsCollection;
8
8
  this._iconReferences = iconReferences;
9
+ if (isServer) {
10
+ return;
11
+ }
9
12
  globalThis.addEventListener('pageshow', this);
10
13
  globalThis.addEventListener('pagehide', this);
11
14
  this._create();
@@ -33,8 +36,8 @@ export class IconsStateBroadcast {
33
36
  }
34
37
  this.send({
35
38
  actionType: ActionType.SyncState,
36
- collections: this._getUserSetCollection(this._iconsCollection).toPlainMap(),
37
- references: this._getUserRefsCollection(this._iconReferences).toPlainMap(),
39
+ collections: this._userIcons(),
40
+ references: this._userReferences(),
38
41
  origin: IconsStateBroadcast._origin,
39
42
  });
40
43
  }
@@ -49,28 +52,24 @@ export class IconsStateBroadcast {
49
52
  this._channel?.close();
50
53
  this._channel = null;
51
54
  }
52
- _getUserRefsCollection(collections) {
53
- const userSetIcons = createIconDefaultMap();
54
- for (const [collectionKey, collection] of collections.entries()) {
55
- for (const [iconKey, icon] of collection.entries()) {
56
- if (icon.external) {
57
- userSetIcons.getOrCreate(collectionKey).set(iconKey, icon);
58
- }
55
+ _userReferences() {
56
+ const result = new Map();
57
+ for (const [name, references] of this._iconReferences) {
58
+ const external = new Map([...references].filter(([, ref]) => ref.external));
59
+ if (external.size > 0) {
60
+ result.set(name, external);
59
61
  }
60
62
  }
61
- return userSetIcons;
63
+ return result;
62
64
  }
63
- _getUserSetCollection(collections) {
64
- const userSetIcons = createIconDefaultMap();
65
- for (const [collectionKey, collection] of collections.entries()) {
66
- if (collectionKey === 'internal') {
67
- continue;
68
- }
69
- for (const [iconKey, icon] of collection.entries()) {
70
- userSetIcons.getOrCreate(collectionKey).set(iconKey, icon);
65
+ _userIcons() {
66
+ const result = new Map();
67
+ for (const [name, icons] of this._iconsCollection) {
68
+ if (name !== 'internal') {
69
+ result.set(name, new Map(icons));
71
70
  }
72
71
  }
73
- return userSetIcons;
72
+ return result;
74
73
  }
75
74
  }
76
75
  //# sourceMappingURL=icon-state.broadcast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-state.broadcast.js","sourceRoot":"","sources":["../../../src/components/icon/icon-state.broadcast.ts"],"names":[],"mappings":"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","sourcesContent":["import { createIconDefaultMap } from './registry/default-map.js';\nimport type {\n BroadcastIconsChangeMessage,\n IconMeta,\n IconsCollection,\n SvgIcon,\n} from './registry/types.js';\nimport { ActionType } from './registry/types.js';\n\ntype IconBroadcastEvent =\n MessageEvent<BroadcastIconsChangeMessage> | PageTransitionEvent;\n\n/**\n * Manages cross-context synchronization of icon state using the BroadcastChannel API.\n *\n * @remarks\n * This class enables icon registry state to be shared between different browsing contexts\n * (e.g., iframes, tabs) within the same origin. It specifically handles synchronization\n * with Angular elements that may be running in separate contexts.\n *\n * The broadcast channel is automatically created on page show and disposed on page hide\n * to properly handle bfcache (back/forward cache) scenarios.\n */\nexport class IconsStateBroadcast {\n private static readonly _origin = 'igniteui-webcomponents';\n\n private readonly _iconsCollection: IconsCollection<SvgIcon>;\n private readonly _iconReferences: IconsCollection<IconMeta>;\n\n private _channel: BroadcastChannel | null = null;\n\n /**\n * Creates an instance of IconsStateBroadcast.\n *\n * @param iconsCollection - The collection of registered SVG icons.\n * @param iconReferences - The collection of icon references/aliases.\n */\n constructor(\n iconsCollection: IconsCollection<SvgIcon>,\n iconReferences: IconsCollection<IconMeta>\n ) {\n this._iconsCollection = iconsCollection;\n this._iconReferences = iconReferences;\n\n globalThis.addEventListener('pageshow', this);\n globalThis.addEventListener('pagehide', this);\n\n this._create();\n }\n\n /**\n * Sends a message to other browsing contexts via the broadcast channel.\n */\n public send(data: BroadcastIconsChangeMessage): void {\n this._channel?.postMessage(data);\n }\n\n /** @internal */\n public handleEvent(event: IconBroadcastEvent): void {\n switch (event.type) {\n case 'message':\n this._syncState(event as MessageEvent<BroadcastIconsChangeMessage>);\n break;\n case 'pageshow':\n this._create();\n break;\n case 'pagehide':\n this._dispose();\n break;\n }\n }\n\n private _syncState({\n data: { actionType, origin },\n }: MessageEvent<BroadcastIconsChangeMessage>): void {\n // no need to sync with other wc icon services, just with angular elements\n if (\n actionType !== ActionType.SyncState ||\n origin === IconsStateBroadcast._origin\n ) {\n return;\n }\n\n this.send({\n actionType: ActionType.SyncState,\n collections: this._getUserSetCollection(\n this._iconsCollection\n ).toPlainMap(),\n references: this._getUserRefsCollection(\n this._iconReferences\n ).toPlainMap(),\n origin: IconsStateBroadcast._origin,\n });\n }\n\n private _create(): void {\n if (!this._channel) {\n this._channel = new BroadcastChannel('ignite-ui-icon-channel');\n this._channel.addEventListener('message', this);\n }\n }\n\n private _dispose(): void {\n this._channel?.removeEventListener('message', this);\n this._channel?.close();\n this._channel = null;\n }\n\n private _getUserRefsCollection(\n collections: IconsCollection<IconMeta>\n ): IconsCollection<IconMeta> {\n const userSetIcons = createIconDefaultMap<string, IconMeta>();\n\n for (const [collectionKey, collection] of collections.entries()) {\n for (const [iconKey, icon] of collection.entries()) {\n if (icon.external) {\n userSetIcons.getOrCreate(collectionKey).set(iconKey, icon);\n }\n }\n }\n\n return userSetIcons;\n }\n\n private _getUserSetCollection(\n collections: IconsCollection<SvgIcon>\n ): IconsCollection<SvgIcon> {\n const userSetIcons = createIconDefaultMap<string, SvgIcon>();\n\n for (const [collectionKey, collection] of collections.entries()) {\n if (collectionKey === 'internal') {\n continue;\n }\n for (const [iconKey, icon] of collection.entries()) {\n userSetIcons.getOrCreate(collectionKey).set(iconKey, icon);\n }\n }\n\n return userSetIcons;\n }\n}\n"]}
1
+ {"version":3,"file":"icon-state.broadcast.js","sourceRoot":"","sources":["../../../src/components/icon/icon-state.broadcast.ts"],"names":[],"mappings":"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","sourcesContent":["import { isServer } from 'lit';\n\nimport type {\n BroadcastIconsChangeMessage,\n IconMeta,\n IconsCollection,\n SvgIcon,\n} from './registry/types.js';\nimport { ActionType } from './registry/types.js';\n\ntype IconBroadcastEvent =\n | MessageEvent<BroadcastIconsChangeMessage>\n | PageTransitionEvent;\n\n/**\n * Publishes icon registry state to other browsing contexts of the same origin\n * using the BroadcastChannel API.\n *\n * @remarks\n * The traffic is one-way by design: this side broadcasts its own registrations\n * and reference updates, and answers a peer's `SyncState` request with the\n * user-set part of the registry. It never applies inbound state and never\n * requests a sync itself - the Ignite UI for Angular icon service is the peer\n * that consumes these messages.\n *\n * The channel is created on page show and disposed on page hide, so a page\n * restored from the bfcache gets a working one. Under SSR the instance is inert.\n */\nexport class IconsStateBroadcast {\n private static readonly _origin = 'igniteui-webcomponents';\n\n private readonly _iconsCollection: IconsCollection<SvgIcon>;\n private readonly _iconReferences: IconsCollection<IconMeta>;\n\n private _channel: BroadcastChannel | null = null;\n\n constructor(\n iconsCollection: IconsCollection<SvgIcon>,\n iconReferences: IconsCollection<IconMeta>\n ) {\n this._iconsCollection = iconsCollection;\n this._iconReferences = iconReferences;\n\n if (isServer) {\n return;\n }\n\n globalThis.addEventListener('pageshow', this);\n globalThis.addEventListener('pagehide', this);\n\n this._create();\n }\n\n /** Posts a message to the other browsing contexts of this origin. */\n public send(data: BroadcastIconsChangeMessage): void {\n this._channel?.postMessage(data);\n }\n\n /** @internal */\n public handleEvent(event: IconBroadcastEvent): void {\n switch (event.type) {\n case 'message':\n this._syncState(event as MessageEvent<BroadcastIconsChangeMessage>);\n break;\n case 'pageshow':\n this._create();\n break;\n case 'pagehide':\n this._dispose();\n break;\n }\n }\n\n private _syncState({\n data: { actionType, origin },\n }: MessageEvent<BroadcastIconsChangeMessage>): void {\n // no need to sync with other wc icon services, just with angular elements\n if (\n actionType !== ActionType.SyncState ||\n origin === IconsStateBroadcast._origin\n ) {\n return;\n }\n\n this.send({\n actionType: ActionType.SyncState,\n collections: this._userIcons(),\n references: this._userReferences(),\n origin: IconsStateBroadcast._origin,\n });\n }\n\n private _create(): void {\n if (!this._channel) {\n this._channel = new BroadcastChannel('ignite-ui-icon-channel');\n this._channel.addEventListener('message', this);\n }\n }\n\n private _dispose(): void {\n this._channel?.removeEventListener('message', this);\n this._channel?.close();\n this._channel = null;\n }\n\n /** The user-set references, skipping collections that have none. */\n private _userReferences(): IconsCollection<IconMeta> {\n const result: IconsCollection<IconMeta> = new Map();\n\n for (const [name, references] of this._iconReferences) {\n const external = new Map(\n [...references].filter(([, ref]) => ref.external)\n );\n\n if (external.size > 0) {\n result.set(name, external);\n }\n }\n\n return result;\n }\n\n /** Every registered collection except the built-in `internal` one. */\n private _userIcons(): IconsCollection<SvgIcon> {\n const result: IconsCollection<SvgIcon> = new Map();\n\n for (const [name, icons] of this._iconsCollection) {\n if (name !== 'internal') {\n result.set(name, new Map(icons));\n }\n }\n\n return result;\n }\n}\n"]}
@@ -11,7 +11,7 @@ import type { IconMeta } from './registry/types.js';
11
11
  * - Registered dynamically using `registerIcon` or `registerIconFromText`
12
12
  * - Referenced by aliases that resolve differently based on the active theme
13
13
  *
14
- * Icons automatically adapt to the current theme when used within an `igc-theme-provider`.
14
+ * Icons automatically adapt to the current theme when used within a theme provider.
15
15
  * The component subscribes to the icon registry and updates automatically when icons
16
16
  * are registered or references are updated.
17
17
  *
@@ -42,7 +42,12 @@ export default class IgcIconComponent extends LitElement {
42
42
  static register(): void;
43
43
  private readonly _internals;
44
44
  private readonly _theming;
45
- private _boundIconLoaded?;
45
+ private readonly _onRegistryChange;
46
+ /**
47
+ * Set while a server-rendered host is hydrating, during which `render()`
48
+ * withholds the SVG so both renders match.
49
+ */
50
+ private _hydrating;
46
51
  private _svg;
47
52
  /**
48
53
  * The name of the icon glyph to draw.
@@ -86,31 +91,14 @@ export default class IgcIconComponent extends LitElement {
86
91
  connectedCallback(): void;
87
92
  /** @internal */
88
93
  disconnectedCallback(): void;
94
+ /** @internal */
95
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
89
96
  protected update(props: PropertyValues<this>): void;
90
97
  protected firstUpdated(): void;
91
- /**
92
- * Callback invoked when an icon is registered or updated in the registry.
93
- * Re-fetches the icon if it matches this component's name and collection.
94
- *
95
- * @param name - The name of the registered icon
96
- * @param collection - The collection of the registered icon
97
- */
98
- private _iconLoaded;
99
- /**
100
- * Fetches and updates the icon from the registry.
101
- *
102
- * @remarks
103
- * This method:
104
- * 1. Resolves the icon reference based on the current theme
105
- * 2. Retrieves the SVG content from the registry
106
- * 3. Updates the component's rendered SVG
107
- * 4. Sets the appropriate ARIA label from the icon's title
108
- *
109
- */
110
98
  private _getIcon;
111
- protected render(): typeof nothing | import("lit-html").TemplateResult<1>;
112
- protected registerIcon(name: string, url: string, collection?: string): Promise<void>;
113
- protected registerIconFromText(name: string, iconText: string, collection?: string): void;
99
+ protected render(): import("lit-html").TemplateResult<1> | typeof nothing;
100
+ protected registerIcon(name: string, url: string, collection?: string, stripMeta?: boolean): Promise<void>;
101
+ protected registerIconFromText(name: string, iconText: string, collection?: string, stripMeta?: boolean): void;
114
102
  protected setIconRef(name: string, collection: string, icon: IconMeta): void;
115
103
  }
116
104
  declare global {
@@ -4,13 +4,13 @@ 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 { html, LitElement, nothing } from 'lit';
7
+ import { html, isServer, LitElement, nothing } from 'lit';
8
8
  import { property, state } from 'lit/decorators.js';
9
9
  import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
10
- import { addThemingController } from '../../theming/theming-controller.js';
11
- import { addInternalsController } from '../common/controllers/internals.js';
12
- import { blazorInclude } from '../common/decorators/blazorInclude.js';
13
- import { registerComponent } from '../common/definitions/register.js';
10
+ import { addInternalsController } from '#internals/controllers/internals.js';
11
+ import { blazorInclude } from '#internals/decorators/blazorInclude.js';
12
+ import { registerComponent } from '#internals/definitions/register.js';
13
+ import { addThemingController } from '#theming/theming-controller.js';
14
14
  import { getIconRegistry, registerIcon as registerIcon_impl, registerIconFromText as registerIconFromText_impl, setIconRef as setIconRef_impl, } from './icon.registry.js';
15
15
  import { styles } from './themes/icon.base.css.js';
16
16
  import { styles as shared } from './themes/shared/icon.common.css.js';
@@ -18,12 +18,12 @@ import { all } from './themes/themes.js';
18
18
  export default class IgcIconComponent extends LitElement {
19
19
  constructor() {
20
20
  super(...arguments);
21
- this._internals = addInternalsController(this, {
22
- initialARIA: { role: 'img' },
23
- });
21
+ this._internals = addInternalsController(this);
24
22
  this._theming = addThemingController(this, all, {
25
23
  themeChange: this._getIcon,
26
24
  });
25
+ this._onRegistryChange = () => this._getIcon();
26
+ this._hydrating = false;
27
27
  this._svg = '';
28
28
  this.name = '';
29
29
  this.collection = 'default';
@@ -36,15 +36,16 @@ export default class IgcIconComponent extends LitElement {
36
36
  }
37
37
  connectedCallback() {
38
38
  super.connectedCallback();
39
- this._boundIconLoaded = this._iconLoaded.bind(this);
40
- getIconRegistry().subscribe(this._boundIconLoaded);
39
+ getIconRegistry().subscribe(this._onRegistryChange);
41
40
  }
42
41
  disconnectedCallback() {
43
- if (this._boundIconLoaded) {
44
- getIconRegistry().unsubscribe(this._boundIconLoaded);
45
- }
42
+ getIconRegistry().unsubscribe(this._onRegistryChange);
46
43
  super.disconnectedCallback();
47
44
  }
45
+ createRenderRoot() {
46
+ this._hydrating = this.shadowRoot !== null;
47
+ return super.createRenderRoot();
48
+ }
48
49
  update(props) {
49
50
  if (props.has('name') || props.has('collection')) {
50
51
  this._getIcon();
@@ -52,29 +53,36 @@ export default class IgcIconComponent extends LitElement {
52
53
  super.update(props);
53
54
  }
54
55
  firstUpdated() {
55
- if (this._svg) {
56
- queueMicrotask(() => this.requestUpdate());
57
- }
58
- }
59
- _iconLoaded(name, collection) {
60
- if (this.name === name && this.collection === collection) {
61
- this._getIcon();
56
+ if (this._hydrating) {
57
+ this._hydrating = false;
58
+ if (this._svg) {
59
+ queueMicrotask(() => this.requestUpdate());
60
+ }
62
61
  }
63
62
  }
64
63
  _getIcon() {
65
- const { name, collection } = getIconRegistry().getIconRef(this.name, this.collection, this._theming.theme);
66
- const { svg = '', title = null } = getIconRegistry().get(name, collection) ?? {};
64
+ const registry = getIconRegistry();
65
+ const { name, collection } = registry.getIconRef(this.name, this.collection, this._theming.theme);
66
+ const { svg = '', title } = registry.get(name, collection) ?? {};
67
+ const labelled = Boolean(title) ||
68
+ this.hasAttribute('aria-label') ||
69
+ this.hasAttribute('aria-labelledby');
67
70
  this._svg = svg;
68
- this._internals.setARIA({ ariaLabel: title });
71
+ this._internals.setARIA({
72
+ role: labelled ? 'img' : null,
73
+ ariaLabel: title ?? null,
74
+ });
69
75
  }
70
76
  render() {
71
- return this.hasUpdated ? html `${unsafeSVG(this._svg)}` : nothing;
77
+ return isServer || this._hydrating
78
+ ? nothing
79
+ : html `${unsafeSVG(this._svg)}`;
72
80
  }
73
- async registerIcon(name, url, collection = 'default') {
74
- await registerIcon_impl(name, url, collection);
81
+ async registerIcon(name, url, collection = 'default', stripMeta = false) {
82
+ await registerIcon_impl(name, url, { collection, stripMeta });
75
83
  }
76
- registerIconFromText(name, iconText, collection = 'default') {
77
- registerIconFromText_impl(name, iconText, collection);
84
+ registerIconFromText(name, iconText, collection = 'default', stripMeta = false) {
85
+ registerIconFromText_impl(name, iconText, { collection, stripMeta });
78
86
  }
79
87
  setIconRef(name, collection, icon) {
80
88
  setIconRef_impl(name, collection, icon);
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { blazorInclude } from '../common/decorators/blazorInclude.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n getIconRegistry,\n registerIcon as registerIcon_impl,\n registerIconFromText as registerIconFromText_impl,\n setIconRef as setIconRef_impl,\n} from './icon.registry.js';\nimport type { IconCallback, IconMeta } from './registry/types.js';\nimport { styles } from './themes/icon.base.css.js';\nimport { styles as shared } from './themes/shared/icon.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The icon component allows visualizing collections of pre-registered SVG icons.\n *\n * @element igc-icon\n *\n * @remarks\n * The icon component renders SVG icons from registered icon collections. Icons can be:\n * - Loaded from the internal collection (built-in icons)\n * - Registered dynamically using `registerIcon` or `registerIconFromText`\n * - Referenced by aliases that resolve differently based on the active theme\n *\n * Icons automatically adapt to the current theme when used within an `igc-theme-provider`.\n * The component subscribes to the icon registry and updates automatically when icons\n * are registered or references are updated.\n *\n * @example\n * ```html\n * <!-- Use a built-in icon -->\n * <igc-icon name=\"star\"></igc-icon>\n *\n * <!-- Use an icon from a specific collection -->\n * <igc-icon name=\"search\" collection=\"material\"></igc-icon>\n *\n * <!-- Mirror the icon for RTL layouts -->\n * <igc-icon name=\"arrow-forward\" mirrored></igc-icon>\n * ```\n *\n * @example\n * ```typescript\n * // Register a custom icon\n * import { registerIconFromText } from 'igniteui-webcomponents';\n *\n * const customIconSvg = '<svg viewBox=\"0 0 24 24\">...</svg>';\n * registerIconFromText('custom-icon', customIconSvg, 'my-collection');\n * ```\n */\nexport default class IgcIconComponent extends LitElement {\n public static readonly tagName = 'igc-icon';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcIconComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: { role: 'img' },\n });\n\n private readonly _theming = addThemingController(this, all, {\n themeChange: this._getIcon,\n });\n\n private _boundIconLoaded?: IconCallback;\n\n @state()\n private _svg = '';\n\n /* alternateName: iconName */\n /**\n * The name of the icon glyph to draw.\n *\n * @attr name\n *\n * @remarks\n * The icon name can be:\n * - A direct reference to a registered icon in the specified collection\n * - An alias that resolves to different icons based on the current theme\n *\n * When the icon name or collection changes, the component automatically\n * fetches and renders the new icon.\n */\n @property()\n public name = '';\n\n /**\n * The name of the registered collection for look up of icons.\n *\n * @attr collection\n * @default \"default\"\n *\n * @remarks\n * Collections allow organizing icons into logical groups. The \"default\"\n * collection is used for most icons.\n * Custom collections can be created by registering icons with a specific collection name.\n */\n @property()\n public collection = 'default';\n\n /**\n * Whether to flip the icon horizontally. Useful for RTL (right-to-left) layouts.\n *\n * @attr mirrored\n * @default false\n *\n * @remarks\n * When true, the icon is flipped horizontally using CSS transform.\n * This is particularly useful for directional icons (arrows, chevrons)\n * in right-to-left language contexts.\n */\n @property({ type: Boolean, reflect: true })\n public mirrored = false;\n\n /** @internal */\n public override connectedCallback(): void {\n super.connectedCallback();\n this._boundIconLoaded = this._iconLoaded.bind(this);\n getIconRegistry().subscribe(this._boundIconLoaded);\n }\n\n /** @internal */\n public override disconnectedCallback(): void {\n if (this._boundIconLoaded) {\n getIconRegistry().unsubscribe(this._boundIconLoaded);\n }\n super.disconnectedCallback();\n }\n\n protected override update(props: PropertyValues<this>): void {\n if (props.has('name') || props.has('collection')) {\n this._getIcon();\n }\n\n super.update(props);\n }\n\n protected override firstUpdated(): void {\n // During SSR and the client's first (hydrating) render `hasUpdated` is\n // `false`, so the SVG is withheld and both renders match. Once hydration\n // has settled, reconcile so the icon content is projected. Deferring via\n // `queueMicrotask` keeps it off the current update cycle (avoids Lit's\n // change-in-update warning).\n if (this._svg) {\n queueMicrotask(() => this.requestUpdate());\n }\n }\n\n /**\n * Callback invoked when an icon is registered or updated in the registry.\n * Re-fetches the icon if it matches this component's name and collection.\n *\n * @param name - The name of the registered icon\n * @param collection - The collection of the registered icon\n */\n private _iconLoaded(name: string, collection: string): void {\n if (this.name === name && this.collection === collection) {\n this._getIcon();\n }\n }\n\n /**\n * Fetches and updates the icon from the registry.\n *\n * @remarks\n * This method:\n * 1. Resolves the icon reference based on the current theme\n * 2. Retrieves the SVG content from the registry\n * 3. Updates the component's rendered SVG\n * 4. Sets the appropriate ARIA label from the icon's title\n *\n */\n private _getIcon(): void {\n const { name, collection } = getIconRegistry().getIconRef(\n this.name,\n this.collection,\n this._theming.theme\n );\n const { svg = '', title = null } =\n getIconRegistry().get(name, collection) ?? {};\n\n this._svg = svg;\n this._internals.setARIA({ ariaLabel: title });\n }\n\n protected override render() {\n // Withhold the SVG until after hydration so the server render and the\n // client's first hydrating render are structurally identical. See\n // `firstUpdated` for the post-hydration reconcile.\n return this.hasUpdated ? html`${unsafeSVG(this._svg)}` : nothing;\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected async registerIcon(\n name: string,\n url: string,\n collection = 'default'\n ) {\n await registerIcon_impl(name, url, collection);\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected registerIconFromText(\n name: string,\n iconText: string,\n collection = 'default'\n ) {\n registerIconFromText_impl(name, iconText, collection);\n }\n\n /* c8 ignore next 4 */\n @blazorInclude()\n protected setIconRef(name: string, collection: string, icon: IconMeta) {\n setIconRef_impl(name, collection, icon);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-icon': IgcIconComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, isServer, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { addInternalsController } from '#internals/controllers/internals.js';\nimport { blazorInclude } from '#internals/decorators/blazorInclude.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport {\n getIconRegistry,\n registerIcon as registerIcon_impl,\n registerIconFromText as registerIconFromText_impl,\n setIconRef as setIconRef_impl,\n} from './icon.registry.js';\nimport type { IconMeta } from './registry/types.js';\nimport { styles } from './themes/icon.base.css.js';\nimport { styles as shared } from './themes/shared/icon.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The icon component allows visualizing collections of pre-registered SVG icons.\n *\n * @element igc-icon\n *\n * @remarks\n * The icon component renders SVG icons from registered icon collections. Icons can be:\n * - Loaded from the internal collection (built-in icons)\n * - Registered dynamically using `registerIcon` or `registerIconFromText`\n * - Referenced by aliases that resolve differently based on the active theme\n *\n * Icons automatically adapt to the current theme when used within a theme provider.\n * The component subscribes to the icon registry and updates automatically when icons\n * are registered or references are updated.\n *\n * @example\n * ```html\n * <!-- Use a built-in icon -->\n * <igc-icon name=\"star\"></igc-icon>\n *\n * <!-- Use an icon from a specific collection -->\n * <igc-icon name=\"search\" collection=\"material\"></igc-icon>\n *\n * <!-- Mirror the icon for RTL layouts -->\n * <igc-icon name=\"arrow-forward\" mirrored></igc-icon>\n * ```\n *\n * @example\n * ```typescript\n * // Register a custom icon\n * import { registerIconFromText } from 'igniteui-webcomponents';\n *\n * const customIconSvg = '<svg viewBox=\"0 0 24 24\">...</svg>';\n * registerIconFromText('custom-icon', customIconSvg, 'my-collection');\n * ```\n */\nexport default class IgcIconComponent extends LitElement {\n public static readonly tagName = 'igc-icon';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcIconComponent);\n }\n\n private readonly _internals = addInternalsController(this);\n\n private readonly _theming = addThemingController(this, all, {\n themeChange: this._getIcon,\n });\n\n private readonly _onRegistryChange = (): void => this._getIcon();\n\n /**\n * Set while a server-rendered host is hydrating, during which `render()`\n * withholds the SVG so both renders match.\n */\n private _hydrating = false;\n\n @state()\n private _svg = '';\n\n /* alternateName: iconName */\n /**\n * The name of the icon glyph to draw.\n *\n * @attr name\n *\n * @remarks\n * The icon name can be:\n * - A direct reference to a registered icon in the specified collection\n * - An alias that resolves to different icons based on the current theme\n *\n * When the icon name or collection changes, the component automatically\n * fetches and renders the new icon.\n */\n @property()\n public name = '';\n\n /**\n * The name of the registered collection for look up of icons.\n *\n * @attr collection\n * @default \"default\"\n *\n * @remarks\n * Collections allow organizing icons into logical groups. The \"default\"\n * collection is used for most icons.\n * Custom collections can be created by registering icons with a specific collection name.\n */\n @property()\n public collection = 'default';\n\n /**\n * Whether to flip the icon horizontally. Useful for RTL (right-to-left) layouts.\n *\n * @attr mirrored\n * @default false\n *\n * @remarks\n * When true, the icon is flipped horizontally using CSS transform.\n * This is particularly useful for directional icons (arrows, chevrons)\n * in right-to-left language contexts.\n */\n @property({ type: Boolean, reflect: true })\n public mirrored = false;\n\n /** @internal */\n public override connectedCallback(): void {\n super.connectedCallback();\n getIconRegistry().subscribe(this._onRegistryChange);\n }\n\n /** @internal */\n public override disconnectedCallback(): void {\n getIconRegistry().unsubscribe(this._onRegistryChange);\n super.disconnectedCallback();\n }\n\n /** @internal */\n protected override createRenderRoot(): HTMLElement | DocumentFragment {\n this._hydrating = this.shadowRoot !== null;\n return super.createRenderRoot();\n }\n\n protected override update(props: PropertyValues<this>): void {\n if (props.has('name') || props.has('collection')) {\n this._getIcon();\n }\n\n super.update(props);\n }\n\n protected override firstUpdated(): void {\n if (this._hydrating) {\n this._hydrating = false;\n\n // Off the current update cycle - avoids Lit's change-in-update warning.\n if (this._svg) {\n queueMicrotask(() => this.requestUpdate());\n }\n }\n }\n\n private _getIcon(): void {\n const registry = getIconRegistry();\n const { name, collection } = registry.getIconRef(\n this.name,\n this.collection,\n this._theming.theme\n );\n const { svg = '', title } = registry.get(name, collection) ?? {};\n\n // An unnamed icon is decorative, and an unnamed `img` is only noise.\n const labelled =\n Boolean(title) ||\n this.hasAttribute('aria-label') ||\n this.hasAttribute('aria-labelledby');\n\n this._svg = svg;\n this._internals.setARIA({\n role: labelled ? 'img' : null,\n ariaLabel: title ?? null,\n });\n }\n\n protected override render() {\n return isServer || this._hydrating\n ? nothing\n : html`${unsafeSVG(this._svg)}`;\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected async registerIcon(\n name: string,\n url: string,\n collection = 'default',\n stripMeta = false\n ) {\n await registerIcon_impl(name, url, { collection, stripMeta });\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected registerIconFromText(\n name: string,\n iconText: string,\n collection = 'default',\n stripMeta = false\n ) {\n registerIconFromText_impl(name, iconText, { collection, stripMeta });\n }\n\n /* c8 ignore next 4 */\n @blazorInclude()\n protected setIconRef(name: string, collection: string, icon: IconMeta) {\n setIconRef_impl(name, collection, icon);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-icon': IgcIconComponent;\n }\n}\n"]}