igniteui-webcomponents 7.2.4 → 7.3.0-beta.1

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 (1012) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/animations/player.d.ts +7 -2
  3. package/animations/player.js +2 -3
  4. package/animations/player.js.map +1 -1
  5. package/animations/view-transition.js +1 -1
  6. package/animations/view-transition.js.map +1 -1
  7. package/components/accordion/accordion.d.ts +1 -1
  8. package/components/accordion/accordion.js +11 -22
  9. package/components/accordion/accordion.js.map +1 -1
  10. package/components/avatar/avatar.d.ts +0 -1
  11. package/components/avatar/avatar.js +8 -12
  12. package/components/avatar/avatar.js.map +1 -1
  13. package/components/avatar/themes/themes.d.ts +1 -1
  14. package/components/avatar/themes/themes.js.map +1 -1
  15. package/components/badge/badge.d.ts +2 -4
  16. package/components/badge/badge.js +9 -13
  17. package/components/badge/badge.js.map +1 -1
  18. package/components/badge/themes/themes.d.ts +1 -1
  19. package/components/badge/themes/themes.js.map +1 -1
  20. package/components/banner/banner.d.ts +8 -7
  21. package/components/banner/banner.js +27 -25
  22. package/components/banner/banner.js.map +1 -1
  23. package/components/banner/themes/themes.d.ts +1 -1
  24. package/components/banner/themes/themes.js.map +1 -1
  25. package/components/button/button-base.d.ts +3 -3
  26. package/components/button/button-base.js +9 -8
  27. package/components/button/button-base.js.map +1 -1
  28. package/components/button/button.d.ts +3 -3
  29. package/components/button/button.js +2 -2
  30. package/components/button/button.js.map +1 -1
  31. package/components/button/icon-button.js +3 -3
  32. package/components/button/icon-button.js.map +1 -1
  33. package/components/button/themes/button/themes.d.ts +1 -1
  34. package/components/button/themes/button/themes.js.map +1 -1
  35. package/components/button/themes/icon-button/themes.d.ts +1 -1
  36. package/components/button/themes/icon-button/themes.js.map +1 -1
  37. package/components/button-group/button-group.d.ts +41 -21
  38. package/components/button-group/button-group.js +95 -105
  39. package/components/button-group/button-group.js.map +1 -1
  40. package/components/button-group/themes/button.d.ts +1 -1
  41. package/components/button-group/themes/button.js.map +1 -1
  42. package/components/button-group/themes/group.d.ts +1 -1
  43. package/components/button-group/themes/group.js.map +1 -1
  44. package/components/button-group/toggle-button.d.ts +17 -10
  45. package/components/button-group/toggle-button.js +28 -13
  46. package/components/button-group/toggle-button.js.map +1 -1
  47. package/components/calendar/base.d.ts +28 -19
  48. package/components/calendar/base.js +20 -44
  49. package/components/calendar/base.js.map +1 -1
  50. package/components/calendar/calendar.d.ts +38 -7
  51. package/components/calendar/calendar.js +96 -85
  52. package/components/calendar/calendar.js.map +1 -1
  53. package/components/calendar/days-view/days-view.d.ts +49 -22
  54. package/components/calendar/days-view/days-view.js +102 -163
  55. package/components/calendar/days-view/days-view.js.map +1 -1
  56. package/components/calendar/helpers.d.ts +3 -62
  57. package/components/calendar/helpers.js +6 -110
  58. package/components/calendar/helpers.js.map +1 -1
  59. package/components/calendar/months-view/months-view.d.ts +8 -22
  60. package/components/calendar/months-view/months-view.js +30 -83
  61. package/components/calendar/months-view/months-view.js.map +1 -1
  62. package/components/calendar/selection.d.ts +21 -0
  63. package/components/calendar/selection.js +42 -0
  64. package/components/calendar/selection.js.map +1 -0
  65. package/components/calendar/themes/calendar.d.ts +1 -1
  66. package/components/calendar/themes/calendar.js.map +1 -1
  67. package/components/calendar/themes/days.d.ts +1 -1
  68. package/components/calendar/themes/days.js.map +1 -1
  69. package/components/calendar/themes/year-month.d.ts +1 -1
  70. package/components/calendar/themes/year-month.js.map +1 -1
  71. package/components/calendar/types.d.ts +18 -0
  72. package/components/calendar/types.js.map +1 -1
  73. package/components/calendar/year-month-view.base.d.ts +44 -0
  74. package/components/calendar/year-month-view.base.js +89 -0
  75. package/components/calendar/year-month-view.base.js.map +1 -0
  76. package/components/calendar/years-view/years-view.d.ts +7 -20
  77. package/components/calendar/years-view/years-view.js +25 -79
  78. package/components/calendar/years-view/years-view.js.map +1 -1
  79. package/components/card/card.actions.js +2 -2
  80. package/components/card/card.actions.js.map +1 -1
  81. package/components/card/card.content.d.ts +1 -1
  82. package/components/card/card.content.js +2 -2
  83. package/components/card/card.content.js.map +1 -1
  84. package/components/card/card.d.ts +1 -1
  85. package/components/card/card.header.js +2 -2
  86. package/components/card/card.header.js.map +1 -1
  87. package/components/card/card.js +2 -2
  88. package/components/card/card.js.map +1 -1
  89. package/components/card/card.media.d.ts +1 -1
  90. package/components/card/card.media.js +1 -1
  91. package/components/card/card.media.js.map +1 -1
  92. package/components/card/themes/actions.d.ts +1 -1
  93. package/components/card/themes/actions.js.map +1 -1
  94. package/components/card/themes/container.d.ts +1 -1
  95. package/components/card/themes/container.js.map +1 -1
  96. package/components/card/themes/content.d.ts +1 -1
  97. package/components/card/themes/content.js.map +1 -1
  98. package/components/card/themes/header.d.ts +1 -1
  99. package/components/card/themes/header.js.map +1 -1
  100. package/components/carousel/animations.d.ts +1 -1
  101. package/components/carousel/animations.js +2 -2
  102. package/components/carousel/animations.js.map +1 -1
  103. package/components/carousel/carousel-indicator-container.js +4 -4
  104. package/components/carousel/carousel-indicator-container.js.map +1 -1
  105. package/components/carousel/carousel-indicator.d.ts +2 -2
  106. package/components/carousel/carousel-indicator.js +17 -17
  107. package/components/carousel/carousel-indicator.js.map +1 -1
  108. package/components/carousel/carousel-slide.d.ts +1 -3
  109. package/components/carousel/carousel-slide.js +16 -18
  110. package/components/carousel/carousel-slide.js.map +1 -1
  111. package/components/carousel/carousel.d.ts +58 -41
  112. package/components/carousel/carousel.js +170 -145
  113. package/components/carousel/carousel.js.map +1 -1
  114. package/components/carousel/themes/carousel.base.css.js +1 -1
  115. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  116. package/components/carousel/themes/container.d.ts +1 -1
  117. package/components/carousel/themes/container.js.map +1 -1
  118. package/components/carousel/themes/indicator-container.d.ts +1 -1
  119. package/components/carousel/themes/indicator-container.js.map +1 -1
  120. package/components/chat/chat-input.d.ts +4 -4
  121. package/components/chat/chat-input.js +28 -27
  122. package/components/chat/chat-input.js.map +1 -1
  123. package/components/chat/chat-message.d.ts +1 -1
  124. package/components/chat/chat-message.js +7 -6
  125. package/components/chat/chat-message.js.map +1 -1
  126. package/components/chat/chat-state.d.ts +2 -2
  127. package/components/chat/chat-state.js +2 -1
  128. package/components/chat/chat-state.js.map +1 -1
  129. package/components/chat/chat.d.ts +4 -6
  130. package/components/chat/chat.js +13 -19
  131. package/components/chat/chat.js.map +1 -1
  132. package/components/chat/message-attachments.js +5 -5
  133. package/components/chat/message-attachments.js.map +1 -1
  134. package/components/chat/themes/attachments.d.ts +1 -1
  135. package/components/chat/themes/attachments.js.map +1 -1
  136. package/components/chat/themes/input.d.ts +1 -1
  137. package/components/chat/themes/input.js.map +1 -1
  138. package/components/chat/themes/message.d.ts +1 -1
  139. package/components/chat/themes/message.js.map +1 -1
  140. package/components/chat/themes/themes.d.ts +1 -1
  141. package/components/chat/themes/themes.js.map +1 -1
  142. package/components/chat/types.d.ts +2 -2
  143. package/components/chat/types.js.map +1 -1
  144. package/components/chat/utils.d.ts +1 -1
  145. package/components/chat/utils.js +3 -3
  146. package/components/chat/utils.js.map +1 -1
  147. package/components/checkbox/checkbox-base.d.ts +7 -7
  148. package/components/checkbox/checkbox-base.js +7 -7
  149. package/components/checkbox/checkbox-base.js.map +1 -1
  150. package/components/checkbox/checkbox.d.ts +3 -5
  151. package/components/checkbox/checkbox.js +40 -50
  152. package/components/checkbox/checkbox.js.map +1 -1
  153. package/components/checkbox/switch.d.ts +1 -1
  154. package/components/checkbox/switch.js +30 -40
  155. package/components/checkbox/switch.js.map +1 -1
  156. package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
  157. package/components/checkbox/themes/checkbox-themes.js.map +1 -1
  158. package/components/checkbox/themes/switch-themes.d.ts +1 -1
  159. package/components/checkbox/themes/switch-themes.js.map +1 -1
  160. package/components/checkbox/validators.d.ts +1 -1
  161. package/components/checkbox/validators.js +1 -1
  162. package/components/checkbox/validators.js.map +1 -1
  163. package/components/chip/chip.d.ts +9 -16
  164. package/components/chip/chip.js +21 -38
  165. package/components/chip/chip.js.map +1 -1
  166. package/components/chip/themes/chip.base.css.js +1 -1
  167. package/components/chip/themes/chip.base.css.js.map +1 -1
  168. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  169. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  170. package/components/chip/themes/dark/chip.fluent.css.js +1 -1
  171. package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
  172. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  173. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  174. package/components/chip/themes/dark/chip.material.css.js +1 -1
  175. package/components/chip/themes/dark/chip.material.css.js.map +1 -1
  176. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  177. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  178. package/components/chip/themes/light/chip.fluent.css.js +1 -1
  179. package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
  180. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  181. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  182. package/components/chip/themes/light/chip.material.css.js +1 -1
  183. package/components/chip/themes/light/chip.material.css.js.map +1 -1
  184. package/components/chip/themes/light/chip.shared.css.js +1 -1
  185. package/components/chip/themes/light/chip.shared.css.js.map +1 -1
  186. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  187. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  188. package/components/chip/themes/shared/chip.common.css.js +1 -1
  189. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  190. package/components/chip/themes/shared/chip.fluent.css.js +1 -1
  191. package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
  192. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  193. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  194. package/components/chip/themes/themes.d.ts +1 -1
  195. package/components/chip/themes/themes.js.map +1 -1
  196. package/components/combo/combo-header.js +2 -2
  197. package/components/combo/combo-header.js.map +1 -1
  198. package/components/combo/combo-item.d.ts +1 -5
  199. package/components/combo/combo-item.js +8 -18
  200. package/components/combo/combo-item.js.map +1 -1
  201. package/components/combo/combo.d.ts +89 -45
  202. package/components/combo/combo.js +244 -229
  203. package/components/combo/combo.js.map +1 -1
  204. package/components/combo/controllers/data.d.ts +30 -3
  205. package/components/combo/controllers/data.js +34 -9
  206. package/components/combo/controllers/data.js.map +1 -1
  207. package/components/combo/controllers/navigation.d.ts +8 -2
  208. package/components/combo/controllers/navigation.js +11 -12
  209. package/components/combo/controllers/navigation.js.map +1 -1
  210. package/components/combo/operations/filter.d.ts +17 -1
  211. package/components/combo/operations/filter.js +29 -9
  212. package/components/combo/operations/filter.js.map +1 -1
  213. package/components/combo/operations/group.js +1 -1
  214. package/components/combo/operations/group.js.map +1 -1
  215. package/components/combo/themes/combo.base.css.js +1 -1
  216. package/components/combo/themes/combo.base.css.js.map +1 -1
  217. package/components/combo/themes/themes.d.ts +1 -1
  218. package/components/combo/themes/themes.js.map +1 -1
  219. package/components/combo/types.d.ts +8 -4
  220. package/components/combo/types.js.map +1 -1
  221. package/components/combo/validators.d.ts +1 -1
  222. package/components/combo/validators.js.map +1 -1
  223. package/components/date-picker/date-picker.base.d.ts +297 -0
  224. package/components/date-picker/date-picker.base.js +473 -0
  225. package/components/date-picker/date-picker.base.js.map +1 -0
  226. package/components/date-picker/date-picker.d.ts +53 -174
  227. package/components/date-picker/date-picker.js +90 -403
  228. package/components/date-picker/date-picker.js.map +1 -1
  229. package/components/date-picker/themes/themes.d.ts +1 -1
  230. package/components/date-picker/themes/themes.js.map +1 -1
  231. package/components/date-picker/validators.d.ts +1 -1
  232. package/components/date-picker/validators.js +2 -2
  233. package/components/date-picker/validators.js.map +1 -1
  234. package/components/date-range-picker/date-range-input.d.ts +14 -18
  235. package/components/date-range-picker/date-range-input.js +39 -126
  236. package/components/date-range-picker/date-range-input.js.map +1 -1
  237. package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
  238. package/components/date-range-picker/date-range-mask-parser.js +38 -69
  239. package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
  240. package/components/date-range-picker/date-range-picker.d.ts +93 -190
  241. package/components/date-range-picker/date-range-picker.js +208 -543
  242. package/components/date-range-picker/date-range-picker.js.map +1 -1
  243. package/components/date-range-picker/predefined-ranges-area.d.ts +4 -4
  244. package/components/date-range-picker/predefined-ranges-area.js +8 -10
  245. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  246. package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
  247. package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
  248. package/components/date-range-picker/themes/themes.d.ts +1 -1
  249. package/components/date-range-picker/themes/themes.js.map +1 -1
  250. package/components/date-range-picker/validators.d.ts +1 -1
  251. package/components/date-range-picker/validators.js +10 -30
  252. package/components/date-range-picker/validators.js.map +1 -1
  253. package/components/date-time-input/date-part.d.ts +20 -2
  254. package/components/date-time-input/date-part.js +48 -75
  255. package/components/date-time-input/date-part.js.map +1 -1
  256. package/components/date-time-input/date-time-input.base.d.ts +101 -35
  257. package/components/date-time-input/date-time-input.base.js +142 -46
  258. package/components/date-time-input/date-time-input.base.js.map +1 -1
  259. package/components/date-time-input/date-time-input.d.ts +14 -26
  260. package/components/date-time-input/date-time-input.js +37 -90
  261. package/components/date-time-input/date-time-input.js.map +1 -1
  262. package/components/date-time-input/datetime-mask-parser.d.ts +53 -109
  263. package/components/date-time-input/datetime-mask-parser.js +93 -144
  264. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  265. package/components/date-time-input/validators.d.ts +1 -1
  266. package/components/date-time-input/validators.js +3 -14
  267. package/components/date-time-input/validators.js.map +1 -1
  268. package/components/dialog/dialog.d.ts +8 -9
  269. package/components/dialog/dialog.js +38 -44
  270. package/components/dialog/dialog.js.map +1 -1
  271. package/components/dialog/themes/themes.d.ts +1 -1
  272. package/components/dialog/themes/themes.js.map +1 -1
  273. package/components/divider/divider.d.ts +3 -5
  274. package/components/divider/divider.js +11 -20
  275. package/components/divider/divider.js.map +1 -1
  276. package/components/divider/themes/themes.d.ts +1 -1
  277. package/components/divider/themes/themes.js.map +1 -1
  278. package/components/dropdown/dropdown-group.d.ts +10 -3
  279. package/components/dropdown/dropdown-group.js +16 -5
  280. package/components/dropdown/dropdown-group.js.map +1 -1
  281. package/components/dropdown/dropdown-header.d.ts +2 -2
  282. package/components/dropdown/dropdown-header.js +7 -2
  283. package/components/dropdown/dropdown-header.js.map +1 -1
  284. package/components/dropdown/dropdown-item.d.ts +4 -4
  285. package/components/dropdown/dropdown-item.js +3 -3
  286. package/components/dropdown/dropdown-item.js.map +1 -1
  287. package/components/dropdown/dropdown.d.ts +75 -32
  288. package/components/dropdown/dropdown.js +189 -110
  289. package/components/dropdown/dropdown.js.map +1 -1
  290. package/components/dropdown/themes/container.d.ts +1 -1
  291. package/components/dropdown/themes/container.js.map +1 -1
  292. package/components/dropdown/themes/group.d.ts +1 -1
  293. package/components/dropdown/themes/group.js.map +1 -1
  294. package/components/dropdown/themes/header.d.ts +1 -1
  295. package/components/dropdown/themes/header.js.map +1 -1
  296. package/components/dropdown/themes/item.d.ts +1 -1
  297. package/components/dropdown/themes/item.js.map +1 -1
  298. package/components/expansion-panel/expansion-panel.d.ts +27 -8
  299. package/components/expansion-panel/expansion-panel.js +33 -43
  300. package/components/expansion-panel/expansion-panel.js.map +1 -1
  301. package/components/expansion-panel/themes/themes.d.ts +1 -1
  302. package/components/expansion-panel/themes/themes.js.map +1 -1
  303. package/components/file-input/file-input.d.ts +19 -23
  304. package/components/file-input/file-input.js +21 -34
  305. package/components/file-input/file-input.js.map +1 -1
  306. package/components/file-input/themes/themes.d.ts +1 -1
  307. package/components/file-input/themes/themes.js.map +1 -1
  308. package/components/file-input/validators.d.ts +1 -1
  309. package/components/file-input/validators.js +1 -1
  310. package/components/file-input/validators.js.map +1 -1
  311. package/components/focus-trap/focus-trap.js +3 -2
  312. package/components/focus-trap/focus-trap.js.map +1 -1
  313. package/components/highlight/highlight.d.ts +6 -8
  314. package/components/highlight/highlight.js +14 -22
  315. package/components/highlight/highlight.js.map +1 -1
  316. package/components/highlight/service.d.ts +4 -1
  317. package/components/highlight/service.js +23 -7
  318. package/components/highlight/service.js.map +1 -1
  319. package/components/highlight/themes/themes.d.ts +1 -1
  320. package/components/highlight/themes/themes.js.map +1 -1
  321. package/components/icon/icon-references.d.ts +3 -2
  322. package/components/icon/icon-references.js +103 -491
  323. package/components/icon/icon-references.js.map +1 -1
  324. package/components/icon/icon-state.broadcast.d.ts +14 -17
  325. package/components/icon/icon-state.broadcast.js +19 -20
  326. package/components/icon/icon-state.broadcast.js.map +1 -1
  327. package/components/icon/icon.d.ts +11 -23
  328. package/components/icon/icon.js +36 -28
  329. package/components/icon/icon.js.map +1 -1
  330. package/components/icon/icon.registry.d.ts +69 -131
  331. package/components/icon/icon.registry.js +51 -53
  332. package/components/icon/icon.registry.js.map +1 -1
  333. package/components/icon/internal-icons-lib.js +2 -2
  334. package/components/icon/internal-icons-lib.js.map +1 -1
  335. package/components/icon/registry/parser.d.ts +15 -3
  336. package/components/icon/registry/parser.js +36 -11
  337. package/components/icon/registry/parser.js.map +1 -1
  338. package/components/icon/registry/types.d.ts +55 -11
  339. package/components/icon/registry/types.js.map +1 -1
  340. package/components/icon/themes/icon.base.css.js +1 -1
  341. package/components/icon/themes/icon.base.css.js.map +1 -1
  342. package/components/icon/themes/shared/icon.common.css.js +1 -1
  343. package/components/icon/themes/shared/icon.common.css.js.map +1 -1
  344. package/components/icon/themes/themes.d.ts +1 -1
  345. package/components/icon/themes/themes.js.map +1 -1
  346. package/components/input/input-base.d.ts +10 -25
  347. package/components/input/input-base.js +14 -23
  348. package/components/input/input-base.js.map +1 -1
  349. package/components/input/input.d.ts +23 -30
  350. package/components/input/input.js +38 -69
  351. package/components/input/input.js.map +1 -1
  352. package/components/input/themes/input.base.css.js +1 -1
  353. package/components/input/themes/input.base.css.js.map +1 -1
  354. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  355. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  356. package/components/input/themes/shared/input.common.css.js +1 -1
  357. package/components/input/themes/shared/input.common.css.js.map +1 -1
  358. package/components/input/themes/shared/input.fluent.css.js +1 -1
  359. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  360. package/components/input/themes/shared/input.indigo.css.js +1 -1
  361. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  362. package/components/input/themes/shared/input.material.css.js +1 -1
  363. package/components/input/themes/shared/input.material.css.js.map +1 -1
  364. package/components/input/themes/themes.d.ts +1 -1
  365. package/components/input/themes/themes.js.map +1 -1
  366. package/components/input/validators.d.ts +1 -1
  367. package/components/input/validators.js +1 -1
  368. package/components/input/validators.js.map +1 -1
  369. package/components/list/list-header.js +3 -3
  370. package/components/list/list-header.js.map +1 -1
  371. package/components/list/list-item.js +3 -3
  372. package/components/list/list-item.js.map +1 -1
  373. package/components/list/list.js +3 -3
  374. package/components/list/list.js.map +1 -1
  375. package/components/list/themes/container.d.ts +1 -1
  376. package/components/list/themes/container.js.map +1 -1
  377. package/components/list/themes/header.d.ts +1 -1
  378. package/components/list/themes/header.js.map +1 -1
  379. package/components/list/themes/item.d.ts +1 -1
  380. package/components/list/themes/item.js.map +1 -1
  381. package/components/mask-input/mask-history.d.ts +99 -0
  382. package/components/mask-input/mask-history.js +95 -0
  383. package/components/mask-input/mask-history.js.map +1 -0
  384. package/components/mask-input/mask-input.d.ts +14 -9
  385. package/components/mask-input/mask-input.js +20 -26
  386. package/components/mask-input/mask-input.js.map +1 -1
  387. package/components/mask-input/mask-parser.d.ts +20 -2
  388. package/components/mask-input/mask-parser.js +21 -13
  389. package/components/mask-input/mask-parser.js.map +1 -1
  390. package/components/mask-input/validators.d.ts +1 -1
  391. package/components/mask-input/validators.js +1 -1
  392. package/components/mask-input/validators.js.map +1 -1
  393. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
  394. package/components/nav-drawer/nav-drawer-header-item.js +2 -2
  395. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  396. package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
  397. package/components/nav-drawer/nav-drawer-item.js +4 -4
  398. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  399. package/components/nav-drawer/nav-drawer.d.ts +10 -10
  400. package/components/nav-drawer/nav-drawer.js +23 -37
  401. package/components/nav-drawer/nav-drawer.js.map +1 -1
  402. package/components/nav-drawer/themes/container.base.css.js +1 -1
  403. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  404. package/components/nav-drawer/themes/container.d.ts +1 -1
  405. package/components/nav-drawer/themes/container.js +2 -3
  406. package/components/nav-drawer/themes/container.js.map +1 -1
  407. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  408. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  409. package/components/nav-drawer/themes/header-item.d.ts +1 -1
  410. package/components/nav-drawer/themes/header-item.js.map +1 -1
  411. package/components/nav-drawer/themes/item.d.ts +1 -1
  412. package/components/nav-drawer/themes/item.js.map +1 -1
  413. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  414. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  415. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  416. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  417. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  418. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  419. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  420. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  421. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  422. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  423. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  424. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  425. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  426. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  427. package/components/navbar/navbar.js +2 -2
  428. package/components/navbar/navbar.js.map +1 -1
  429. package/components/navbar/themes/themes.d.ts +1 -1
  430. package/components/navbar/themes/themes.js.map +1 -1
  431. package/components/popover/popover.d.ts +10 -3
  432. package/components/popover/popover.js +114 -99
  433. package/components/popover/popover.js.map +1 -1
  434. package/components/progress/base.d.ts +5 -8
  435. package/components/progress/base.js +25 -48
  436. package/components/progress/base.js.map +1 -1
  437. package/components/progress/circular-gradient.d.ts +2 -2
  438. package/components/progress/circular-gradient.js +1 -1
  439. package/components/progress/circular-gradient.js.map +1 -1
  440. package/components/progress/circular-progress.d.ts +15 -15
  441. package/components/progress/circular-progress.js +7 -6
  442. package/components/progress/circular-progress.js.map +1 -1
  443. package/components/progress/linear-progress.d.ts +12 -12
  444. package/components/progress/linear-progress.js +4 -4
  445. package/components/progress/linear-progress.js.map +1 -1
  446. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  447. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  448. package/components/progress/themes/circular/themes.d.ts +1 -1
  449. package/components/progress/themes/circular/themes.js.map +1 -1
  450. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  451. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  452. package/components/progress/themes/linear/themes.d.ts +1 -1
  453. package/components/progress/themes/linear/themes.js.map +1 -1
  454. package/components/qr-code/model/encode.d.ts +20 -0
  455. package/components/qr-code/model/encode.js +166 -0
  456. package/components/qr-code/model/encode.js.map +1 -0
  457. package/components/qr-code/model/error-correction.d.ts +15 -0
  458. package/components/qr-code/model/error-correction.js +1114 -0
  459. package/components/qr-code/model/error-correction.js.map +1 -0
  460. package/components/qr-code/model/mask.d.ts +11 -0
  461. package/components/qr-code/model/mask.js +161 -0
  462. package/components/qr-code/model/mask.js.map +1 -0
  463. package/components/qr-code/model/matrix.d.ts +15 -0
  464. package/components/qr-code/model/matrix.js +277 -0
  465. package/components/qr-code/model/matrix.js.map +1 -0
  466. package/components/qr-code/qr-code.d.ts +134 -0
  467. package/components/qr-code/qr-code.js +222 -0
  468. package/components/qr-code/qr-code.js.map +1 -0
  469. package/components/qr-code/renderer/constants.d.ts +26 -0
  470. package/components/qr-code/renderer/constants.js +5 -0
  471. package/components/qr-code/renderer/constants.js.map +1 -0
  472. package/components/qr-code/renderer/corner.d.ts +23 -0
  473. package/components/qr-code/renderer/corner.js +25 -0
  474. package/components/qr-code/renderer/corner.js.map +1 -0
  475. package/components/qr-code/renderer/dots.d.ts +14 -0
  476. package/components/qr-code/renderer/dots.js +7 -0
  477. package/components/qr-code/renderer/dots.js.map +1 -0
  478. package/components/qr-code/renderer/helpers.d.ts +18 -0
  479. package/components/qr-code/renderer/helpers.js +158 -0
  480. package/components/qr-code/renderer/helpers.js.map +1 -0
  481. package/components/qr-code/renderer/image.d.ts +23 -0
  482. package/components/qr-code/renderer/image.js +29 -0
  483. package/components/qr-code/renderer/image.js.map +1 -0
  484. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
  485. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
  486. package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
  487. package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
  488. package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
  489. package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
  490. package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
  491. package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
  492. package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
  493. package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
  494. package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
  495. package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
  496. package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
  497. package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
  498. package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
  499. package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
  500. package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
  501. package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
  502. package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
  503. package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
  504. package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
  505. package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
  506. package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
  507. package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
  508. package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
  509. package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
  510. package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
  511. package/components/qr-code/themes/qr-code.base.css.js +3 -0
  512. package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
  513. package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
  514. package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
  515. package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
  516. package/components/qr-code/themes/themes.d.ts +2 -0
  517. package/components/qr-code/themes/themes.js +46 -0
  518. package/components/qr-code/themes/themes.js.map +1 -0
  519. package/components/qr-code/types.d.ts +16 -0
  520. package/components/qr-code/types.js +2 -0
  521. package/components/qr-code/types.js.map +1 -0
  522. package/components/radio/controller.d.ts +7 -0
  523. package/components/radio/controller.js +14 -0
  524. package/components/radio/controller.js.map +1 -0
  525. package/components/radio/radio.d.ts +30 -18
  526. package/components/radio/radio.js +90 -89
  527. package/components/radio/radio.js.map +1 -1
  528. package/components/radio/themes/themes.d.ts +1 -1
  529. package/components/radio/themes/themes.js.map +1 -1
  530. package/components/radio/validators.d.ts +1 -1
  531. package/components/radio/validators.js +5 -3
  532. package/components/radio/validators.js.map +1 -1
  533. package/components/radio-group/radio-group.d.ts +17 -9
  534. package/components/radio-group/radio-group.js +46 -44
  535. package/components/radio-group/radio-group.js.map +1 -1
  536. package/components/radio-group/themes/themes.d.ts +1 -1
  537. package/components/radio-group/themes/themes.js.map +1 -1
  538. package/components/rating/rating-symbol.d.ts +1 -1
  539. package/components/rating/rating-symbol.js +1 -1
  540. package/components/rating/rating-symbol.js.map +1 -1
  541. package/components/rating/rating.d.ts +30 -18
  542. package/components/rating/rating.js +90 -81
  543. package/components/rating/rating.js.map +1 -1
  544. package/components/rating/themes/themes.d.ts +1 -1
  545. package/components/rating/themes/themes.js.map +1 -1
  546. package/components/resize-container/default-ghost.js +4 -3
  547. package/components/resize-container/default-ghost.js.map +1 -1
  548. package/components/resize-container/resize-container.d.ts +3 -3
  549. package/components/resize-container/resize-container.js +9 -7
  550. package/components/resize-container/resize-container.js.map +1 -1
  551. package/components/resize-container/resize-controller.js +6 -5
  552. package/components/resize-container/resize-controller.js.map +1 -1
  553. package/components/resize-container/themes/themes.d.ts +1 -1
  554. package/components/resize-container/themes/themes.js.map +1 -1
  555. package/components/ripple/ripple.d.ts +1 -1
  556. package/components/ripple/ripple.js +3 -2
  557. package/components/ripple/ripple.js.map +1 -1
  558. package/components/select/select-group.d.ts +11 -3
  559. package/components/select/select-group.js +21 -9
  560. package/components/select/select-group.js.map +1 -1
  561. package/components/select/select-header.d.ts +1 -1
  562. package/components/select/select-header.js +7 -2
  563. package/components/select/select-header.js.map +1 -1
  564. package/components/select/select-item.d.ts +4 -4
  565. package/components/select/select-item.js +3 -3
  566. package/components/select/select-item.js.map +1 -1
  567. package/components/select/select.d.ts +48 -28
  568. package/components/select/select.js +143 -94
  569. package/components/select/select.js.map +1 -1
  570. package/components/select/themes/select.base.css.js +1 -1
  571. package/components/select/themes/select.base.css.js.map +1 -1
  572. package/components/select/themes/themes.d.ts +1 -1
  573. package/components/select/themes/themes.js.map +1 -1
  574. package/components/select/validators.d.ts +1 -1
  575. package/components/select/validators.js +1 -1
  576. package/components/select/validators.js.map +1 -1
  577. package/components/slider/range-slider.d.ts +5 -4
  578. package/components/slider/range-slider.js +25 -73
  579. package/components/slider/range-slider.js.map +1 -1
  580. package/components/slider/slider-base.d.ts +9 -6
  581. package/components/slider/slider-base.js +35 -32
  582. package/components/slider/slider-base.js.map +1 -1
  583. package/components/slider/slider-label.js +1 -1
  584. package/components/slider/slider-label.js.map +1 -1
  585. package/components/slider/slider.d.ts +3 -3
  586. package/components/slider/slider.js +15 -11
  587. package/components/slider/slider.js.map +1 -1
  588. package/components/slider/themes/themes.d.ts +1 -1
  589. package/components/slider/themes/themes.js.map +1 -1
  590. package/components/snackbar/snackbar.d.ts +3 -3
  591. package/components/snackbar/snackbar.js +4 -4
  592. package/components/snackbar/snackbar.js.map +1 -1
  593. package/components/snackbar/themes/themes.d.ts +1 -1
  594. package/components/snackbar/themes/themes.js.map +1 -1
  595. package/components/splitter/splitter.d.ts +107 -24
  596. package/components/splitter/splitter.js +234 -147
  597. package/components/splitter/splitter.js.map +1 -1
  598. package/components/splitter/themes/themes.d.ts +1 -1
  599. package/components/splitter/themes/themes.js.map +1 -1
  600. package/components/splitter/types.d.ts +14 -3
  601. package/components/splitter/types.js.map +1 -1
  602. package/components/stepper/common/animations.d.ts +1 -1
  603. package/components/stepper/common/animations.js +2 -2
  604. package/components/stepper/common/animations.js.map +1 -1
  605. package/components/stepper/step.d.ts +4 -1
  606. package/components/stepper/step.js +16 -12
  607. package/components/stepper/step.js.map +1 -1
  608. package/components/stepper/stepper.d.ts +5 -16
  609. package/components/stepper/stepper.js +27 -89
  610. package/components/stepper/stepper.js.map +1 -1
  611. package/components/stepper/themes/step/themes.d.ts +1 -1
  612. package/components/stepper/themes/step/themes.js.map +1 -1
  613. package/components/tabs/tab-dom.d.ts +31 -28
  614. package/components/tabs/tab-dom.js +84 -34
  615. package/components/tabs/tab-dom.js.map +1 -1
  616. package/components/tabs/tab.d.ts +24 -6
  617. package/components/tabs/tab.js +36 -14
  618. package/components/tabs/tab.js.map +1 -1
  619. package/components/tabs/tabs.d.ts +37 -27
  620. package/components/tabs/tabs.js +118 -129
  621. package/components/tabs/tabs.js.map +1 -1
  622. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
  623. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
  624. package/components/tabs/themes/tab-themes.d.ts +1 -1
  625. package/components/tabs/themes/tab-themes.js.map +1 -1
  626. package/components/tabs/themes/tabs-themes.d.ts +1 -1
  627. package/components/tabs/themes/tabs-themes.js.map +1 -1
  628. package/components/tabs/themes/tabs.base.css.js +1 -1
  629. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  630. package/components/textarea/textarea.d.ts +24 -20
  631. package/components/textarea/textarea.js +25 -27
  632. package/components/textarea/textarea.js.map +1 -1
  633. package/components/textarea/themes/themes.d.ts +1 -1
  634. package/components/textarea/themes/themes.js.map +1 -1
  635. package/components/textarea/validators.d.ts +1 -1
  636. package/components/textarea/validators.js +1 -1
  637. package/components/textarea/validators.js.map +1 -1
  638. package/components/theme-provider/theme-provider.d.ts +3 -5
  639. package/components/theme-provider/theme-provider.js +13 -23
  640. package/components/theme-provider/theme-provider.js.map +1 -1
  641. package/components/tile-manager/position.d.ts +1 -1
  642. package/components/tile-manager/position.js +2 -2
  643. package/components/tile-manager/position.js.map +1 -1
  644. package/components/tile-manager/resize-state.js +4 -3
  645. package/components/tile-manager/resize-state.js.map +1 -1
  646. package/components/tile-manager/themes/container.d.ts +1 -1
  647. package/components/tile-manager/themes/container.js.map +1 -1
  648. package/components/tile-manager/themes/tile.d.ts +1 -1
  649. package/components/tile-manager/themes/tile.js.map +1 -1
  650. package/components/tile-manager/tile-ghost-util.js +1 -1
  651. package/components/tile-manager/tile-ghost-util.js.map +1 -1
  652. package/components/tile-manager/tile-manager.d.ts +11 -22
  653. package/components/tile-manager/tile-manager.js +50 -81
  654. package/components/tile-manager/tile-manager.js.map +1 -1
  655. package/components/tile-manager/tile.d.ts +14 -22
  656. package/components/tile-manager/tile.js +66 -80
  657. package/components/tile-manager/tile.js.map +1 -1
  658. package/components/toast/themes/themes.d.ts +1 -1
  659. package/components/toast/themes/themes.js.map +1 -1
  660. package/components/toast/toast.d.ts +1 -1
  661. package/components/toast/toast.js +3 -3
  662. package/components/toast/toast.js.map +1 -1
  663. package/components/tooltip/controller.d.ts +18 -16
  664. package/components/tooltip/controller.js +62 -41
  665. package/components/tooltip/controller.js.map +1 -1
  666. package/components/tooltip/service.d.ts +2 -1
  667. package/components/tooltip/service.js +10 -15
  668. package/components/tooltip/service.js.map +1 -1
  669. package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
  670. package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
  671. package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
  672. package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
  673. package/components/tooltip/themes/themes.d.ts +1 -1
  674. package/components/tooltip/themes/themes.js.map +1 -1
  675. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  676. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  677. package/components/tooltip/tooltip.d.ts +68 -25
  678. package/components/tooltip/tooltip.js +130 -88
  679. package/components/tooltip/tooltip.js.map +1 -1
  680. package/components/tree/themes/container.base.css.js +1 -1
  681. package/components/tree/themes/container.base.css.js.map +1 -1
  682. package/components/tree/themes/container.d.ts +1 -1
  683. package/components/tree/themes/container.js.map +1 -1
  684. package/components/tree/themes/item.base.css.js +1 -1
  685. package/components/tree/themes/item.base.css.js.map +1 -1
  686. package/components/tree/themes/item.d.ts +1 -1
  687. package/components/tree/themes/item.js.map +1 -1
  688. package/components/tree/tree-item.d.ts +62 -36
  689. package/components/tree/tree-item.js +198 -208
  690. package/components/tree/tree-item.js.map +1 -1
  691. package/components/tree/tree.common.d.ts +16 -1
  692. package/components/tree/tree.common.js +40 -1
  693. package/components/tree/tree.common.js.map +1 -1
  694. package/components/tree/tree.d.ts +17 -23
  695. package/components/tree/tree.js +68 -94
  696. package/components/tree/tree.js.map +1 -1
  697. package/components/tree/tree.navigation.d.ts +39 -29
  698. package/components/tree/tree.navigation.js +140 -192
  699. package/components/tree/tree.navigation.js.map +1 -1
  700. package/components/tree/tree.selection.d.ts +32 -31
  701. package/components/tree/tree.selection.js +184 -178
  702. package/components/tree/tree.selection.js.map +1 -1
  703. package/components/types.js.map +1 -1
  704. package/components/validation-container/validation-container.d.ts +2 -3
  705. package/components/validation-container/validation-container.js +7 -6
  706. package/components/validation-container/validation-container.js.map +1 -1
  707. package/components/virtualization/engine.d.ts +94 -0
  708. package/components/virtualization/engine.js +217 -0
  709. package/components/virtualization/engine.js.map +1 -0
  710. package/components/virtualization/types.d.ts +54 -0
  711. package/components/virtualization/types.js +14 -0
  712. package/components/virtualization/types.js.map +1 -0
  713. package/components/virtualization/virtualization.d.ts +249 -0
  714. package/components/virtualization/virtualization.js +482 -0
  715. package/components/virtualization/virtualization.js.map +1 -0
  716. package/components/visually-hidden/visually-hidden.js +1 -1
  717. package/components/visually-hidden/visually-hidden.js.map +1 -1
  718. package/custom-elements.json +50649 -38832
  719. package/extras/chat-markdown-renderer.d.ts +1 -1
  720. package/extras/chat-markdown-renderer.js.map +1 -1
  721. package/igniteui-webcomponents.css-data.json +2 -2
  722. package/igniteui-webcomponents.html-data.json +1 -1
  723. package/index.d.ts +17 -12
  724. package/index.js +11 -9
  725. package/index.js.map +1 -1
  726. package/internals/abort-handler.js.map +1 -0
  727. package/internals/context.d.ts +39 -0
  728. package/{components/common → internals}/context.js +2 -1
  729. package/internals/context.js.map +1 -0
  730. package/internals/controllers/adopt-styles.d.ts +76 -0
  731. package/internals/controllers/adopt-styles.js +173 -0
  732. package/internals/controllers/adopt-styles.js.map +1 -0
  733. package/internals/controllers/aria-projection.d.ts +144 -0
  734. package/internals/controllers/aria-projection.js +138 -0
  735. package/internals/controllers/aria-projection.js.map +1 -0
  736. package/{components/common → internals}/controllers/async-consumer.js +8 -7
  737. package/internals/controllers/async-consumer.js.map +1 -0
  738. package/internals/controllers/command.js.map +1 -0
  739. package/internals/controllers/context-provider.d.ts +48 -0
  740. package/internals/controllers/context-provider.js +29 -0
  741. package/internals/controllers/context-provider.js.map +1 -0
  742. package/{components/common → internals}/controllers/drag.js +8 -7
  743. package/internals/controllers/drag.js.map +1 -0
  744. package/{components/common → internals}/controllers/focus-ring.js +5 -2
  745. package/internals/controllers/focus-ring.js.map +1 -0
  746. package/{components/common → internals}/controllers/fullscreen.js +6 -3
  747. package/internals/controllers/fullscreen.js.map +1 -0
  748. package/{components/common → internals}/controllers/gestures.d.ts +1 -1
  749. package/{components/common → internals}/controllers/gestures.js +7 -4
  750. package/internals/controllers/gestures.js.map +1 -0
  751. package/internals/controllers/group.d.ts +64 -0
  752. package/internals/controllers/group.js +104 -0
  753. package/internals/controllers/group.js.map +1 -0
  754. package/{components/common → internals}/controllers/id-resolver.js +15 -21
  755. package/internals/controllers/id-resolver.js.map +1 -0
  756. package/{components/common → internals}/controllers/internals.d.ts +52 -3
  757. package/{components/common → internals}/controllers/internals.js +35 -0
  758. package/internals/controllers/internals.js.map +1 -0
  759. package/{components/common → internals}/controllers/key-bindings.d.ts +8 -5
  760. package/{components/common → internals}/controllers/key-bindings.js +46 -29
  761. package/internals/controllers/key-bindings.js.map +1 -0
  762. package/{components/common → internals}/controllers/mutation-observer.d.ts +3 -2
  763. package/{components/common → internals}/controllers/mutation-observer.js +24 -22
  764. package/internals/controllers/mutation-observer.js.map +1 -0
  765. package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
  766. package/{components/common → internals}/controllers/resize-observer.js +13 -2
  767. package/internals/controllers/resize-observer.js.map +1 -0
  768. package/{components/common → internals}/controllers/root-click.js +8 -13
  769. package/internals/controllers/root-click.js.map +1 -0
  770. package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
  771. package/internals/controllers/root-scroll.js +71 -0
  772. package/internals/controllers/root-scroll.js.map +1 -0
  773. package/internals/controllers/roving-focus.d.ts +72 -0
  774. package/internals/controllers/roving-focus.js +61 -0
  775. package/internals/controllers/roving-focus.js.map +1 -0
  776. package/{components/common → internals}/controllers/slot.d.ts +25 -1
  777. package/{components/common → internals}/controllers/slot.js +22 -6
  778. package/internals/controllers/slot.js.map +1 -0
  779. package/internals/controllers/toggle.d.ts +96 -0
  780. package/internals/controllers/toggle.js +65 -0
  781. package/internals/controllers/toggle.js.map +1 -0
  782. package/internals/date/compare.d.ts +2 -0
  783. package/internals/date/compare.js +23 -0
  784. package/internals/date/compare.js.map +1 -0
  785. package/internals/date/converters.d.ts +18 -0
  786. package/internals/date/converters.js +70 -0
  787. package/internals/date/converters.js.map +1 -0
  788. package/{components/calendar → internals/date}/model.d.ts +10 -3
  789. package/{components/calendar → internals/date}/model.js +29 -0
  790. package/internals/date/model.js.map +1 -0
  791. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
  792. package/internals/decorators/blazorDeepImport.js.map +1 -0
  793. package/internals/decorators/blazorInclude.js.map +1 -0
  794. package/internals/decorators/blazorIndirectRender.js.map +1 -0
  795. package/internals/decorators/blazorSuppressComponent.js.map +1 -0
  796. package/internals/decorators/coerced-property.d.ts +47 -0
  797. package/internals/decorators/coerced-property.js +36 -0
  798. package/internals/decorators/coerced-property.js.map +1 -0
  799. package/internals/decorators/shadow-options.js.map +1 -0
  800. package/internals/definitions/defineAllComponents.js +153 -0
  801. package/internals/definitions/defineAllComponents.js.map +1 -0
  802. package/internals/definitions/defineComponents.js.map +1 -0
  803. package/internals/definitions/register.js.map +1 -0
  804. package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
  805. package/internals/i18n/EN/calendar.resources.js.map +1 -0
  806. package/internals/i18n/EN/chat.resources.js.map +1 -0
  807. package/internals/i18n/EN/date-picker.resources.js.map +1 -0
  808. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
  809. package/{components/common → internals}/i18n/i18n-controller.d.ts +22 -3
  810. package/{components/common → internals}/i18n/i18n-controller.js +28 -6
  811. package/internals/i18n/i18n-controller.js.map +1 -0
  812. package/{components/common → internals}/i18n/utils.js +1 -1
  813. package/internals/i18n/utils.js.map +1 -0
  814. package/{components/common → internals}/mixins/alert.d.ts +3 -3
  815. package/{components/common → internals}/mixins/alert.js +8 -6
  816. package/internals/mixins/alert.js.map +1 -0
  817. package/{components/common → internals}/mixins/combo-box.d.ts +13 -14
  818. package/{components/common → internals}/mixins/combo-box.js +15 -36
  819. package/internals/mixins/combo-box.js.map +1 -0
  820. package/internals/mixins/constructor.js.map +1 -0
  821. package/internals/mixins/event-emitter.js.map +1 -0
  822. package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
  823. package/internals/mixins/forms/associated-required.js.map +1 -0
  824. package/{components/common → internals}/mixins/forms/associated.js +63 -38
  825. package/internals/mixins/forms/associated.js.map +1 -0
  826. package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
  827. package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
  828. package/internals/mixins/forms/form-transformers.js.map +1 -0
  829. package/internals/mixins/forms/form-value.js.map +1 -0
  830. package/{components/common → internals}/mixins/forms/types.d.ts +25 -7
  831. package/internals/mixins/forms/types.js.map +1 -0
  832. package/internals/mixins/i18n.d.ts +31 -0
  833. package/internals/mixins/i18n.js +36 -0
  834. package/internals/mixins/i18n.js.map +1 -0
  835. package/{components/common → internals}/mixins/mask-behavior.d.ts +17 -8
  836. package/{components/common → internals}/mixins/mask-behavior.js +118 -31
  837. package/internals/mixins/mask-behavior.js.map +1 -0
  838. package/{components/common → internals}/mixins/option.d.ts +0 -2
  839. package/{components/common → internals}/mixins/option.js +5 -6
  840. package/internals/mixins/option.js.map +1 -0
  841. package/internals/part-map.js.map +1 -0
  842. package/{components/common → internals}/templates/input-shell.d.ts +8 -1
  843. package/{components/common → internals}/templates/input-shell.js +14 -4
  844. package/internals/templates/input-shell.js.map +1 -0
  845. package/{components/common → internals}/templates/masked-input.d.ts +8 -4
  846. package/{components/common → internals}/templates/masked-input.js +4 -3
  847. package/internals/templates/masked-input.js.map +1 -0
  848. package/internals/templates/slotted-icon.d.ts +32 -0
  849. package/internals/templates/slotted-icon.js +19 -0
  850. package/internals/templates/slotted-icon.js.map +1 -0
  851. package/internals/templates/toggle-shell.d.ts +46 -0
  852. package/internals/templates/toggle-shell.js +38 -0
  853. package/internals/templates/toggle-shell.js.map +1 -0
  854. package/internals/timing.d.ts +32 -0
  855. package/internals/timing.js +20 -0
  856. package/internals/timing.js.map +1 -0
  857. package/internals/utils/arrays.d.ts +53 -0
  858. package/internals/utils/arrays.js +31 -0
  859. package/internals/utils/arrays.js.map +1 -0
  860. package/internals/utils/dom.d.ts +114 -0
  861. package/internals/utils/dom.js +157 -0
  862. package/internals/utils/dom.js.map +1 -0
  863. package/internals/utils/events.d.ts +41 -0
  864. package/internals/utils/events.js +37 -0
  865. package/internals/utils/events.js.map +1 -0
  866. package/internals/utils/lit.d.ts +8 -0
  867. package/internals/utils/lit.js +15 -0
  868. package/internals/utils/lit.js.map +1 -0
  869. package/internals/utils/math.d.ts +50 -0
  870. package/internals/utils/math.js +38 -0
  871. package/internals/utils/math.js.map +1 -0
  872. package/internals/utils/objects.d.ts +25 -0
  873. package/internals/utils/objects.js +125 -0
  874. package/internals/utils/objects.js.map +1 -0
  875. package/internals/utils/strings.d.ts +44 -0
  876. package/internals/utils/strings.js +46 -0
  877. package/internals/utils/strings.js.map +1 -0
  878. package/internals/utils/types.d.ts +13 -0
  879. package/internals/utils/types.js +31 -0
  880. package/internals/utils/types.js.map +1 -0
  881. package/{components/common → internals}/validators.d.ts +24 -1
  882. package/{components/common → internals}/validators.js +25 -2
  883. package/internals/validators.js.map +1 -0
  884. package/package.json +15 -7
  885. package/themes/dark/bootstrap.css +1 -1
  886. package/themes/dark/fluent.css +1 -1
  887. package/themes/dark/indigo.css +1 -1
  888. package/themes/dark/material.css +1 -1
  889. package/themes/light/bootstrap.css +1 -1
  890. package/themes/light/fluent.css +1 -1
  891. package/themes/light/indigo.css +1 -1
  892. package/themes/light/material.css +1 -1
  893. package/theming/theming-controller.d.ts +5 -5
  894. package/theming/theming-controller.js.map +1 -1
  895. package/web-types.json +3 -3
  896. package/components/calendar/model.js.map +0 -1
  897. package/components/combo/combo-list.d.ts +0 -11
  898. package/components/combo/combo-list.js +0 -13
  899. package/components/combo/combo-list.js.map +0 -1
  900. package/components/common/abort-handler.js.map +0 -1
  901. package/components/common/context.d.ts +0 -25
  902. package/components/common/context.js.map +0 -1
  903. package/components/common/controllers/adopt-styles.d.ts +0 -124
  904. package/components/common/controllers/adopt-styles.js +0 -75
  905. package/components/common/controllers/adopt-styles.js.map +0 -1
  906. package/components/common/controllers/async-consumer.js.map +0 -1
  907. package/components/common/controllers/command.js.map +0 -1
  908. package/components/common/controllers/drag.js.map +0 -1
  909. package/components/common/controllers/focus-ring.js.map +0 -1
  910. package/components/common/controllers/fullscreen.js.map +0 -1
  911. package/components/common/controllers/gestures.js.map +0 -1
  912. package/components/common/controllers/id-resolver.js.map +0 -1
  913. package/components/common/controllers/internals.js.map +0 -1
  914. package/components/common/controllers/key-bindings.js.map +0 -1
  915. package/components/common/controllers/mutation-observer.js.map +0 -1
  916. package/components/common/controllers/resize-observer.js.map +0 -1
  917. package/components/common/controllers/root-click.js.map +0 -1
  918. package/components/common/controllers/root-scroll.js +0 -63
  919. package/components/common/controllers/root-scroll.js.map +0 -1
  920. package/components/common/controllers/slot.js.map +0 -1
  921. package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
  922. package/components/common/decorators/blazorDeepImport.js.map +0 -1
  923. package/components/common/decorators/blazorInclude.js.map +0 -1
  924. package/components/common/decorators/blazorIndirectRender.js.map +0 -1
  925. package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
  926. package/components/common/decorators/shadow-options.js.map +0 -1
  927. package/components/common/decorators/watch.d.ts +0 -5
  928. package/components/common/decorators/watch.js +0 -19
  929. package/components/common/decorators/watch.js.map +0 -1
  930. package/components/common/definitions/defineAllComponents.js +0 -151
  931. package/components/common/definitions/defineAllComponents.js.map +0 -1
  932. package/components/common/definitions/defineComponents.js.map +0 -1
  933. package/components/common/definitions/register.js.map +0 -1
  934. package/components/common/i18n/EN/calendar.resources.js.map +0 -1
  935. package/components/common/i18n/EN/chat.resources.js.map +0 -1
  936. package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
  937. package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
  938. package/components/common/i18n/i18n-controller.js.map +0 -1
  939. package/components/common/i18n/utils.js.map +0 -1
  940. package/components/common/mixins/alert.js.map +0 -1
  941. package/components/common/mixins/combo-box.js.map +0 -1
  942. package/components/common/mixins/constructor.js.map +0 -1
  943. package/components/common/mixins/event-emitter.js.map +0 -1
  944. package/components/common/mixins/forms/associated-required.js.map +0 -1
  945. package/components/common/mixins/forms/associated.js.map +0 -1
  946. package/components/common/mixins/forms/form-transformers.js.map +0 -1
  947. package/components/common/mixins/forms/form-value.js.map +0 -1
  948. package/components/common/mixins/forms/types.js.map +0 -1
  949. package/components/common/mixins/mask-behavior.js.map +0 -1
  950. package/components/common/mixins/option.js.map +0 -1
  951. package/components/common/part-map.js.map +0 -1
  952. package/components/common/templates/input-shell.js.map +0 -1
  953. package/components/common/templates/masked-input.js.map +0 -1
  954. package/components/common/util.d.ts +0 -196
  955. package/components/common/util.js +0 -390
  956. package/components/common/util.js.map +0 -1
  957. package/components/common/validators.js.map +0 -1
  958. package/components/icon/registry/default-map.d.ts +0 -107
  959. package/components/icon/registry/default-map.js +0 -25
  960. package/components/icon/registry/default-map.js.map +0 -1
  961. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
  962. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
  963. package/components/radio/utils.d.ts +0 -13
  964. package/components/radio/utils.js +0 -37
  965. package/components/radio/utils.js.map +0 -1
  966. /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
  967. /package/{components/common → internals}/abort-handler.d.ts +0 -0
  968. /package/{components/common → internals}/abort-handler.js +0 -0
  969. /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
  970. /package/{components/common → internals}/controllers/command.d.ts +0 -0
  971. /package/{components/common → internals}/controllers/command.js +0 -0
  972. /package/{components/common → internals}/controllers/drag.d.ts +0 -0
  973. /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
  974. /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
  975. /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
  976. /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
  977. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
  978. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
  979. /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
  980. /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
  981. /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
  982. /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
  983. /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
  984. /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
  985. /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
  986. /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
  987. /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
  988. /package/{components/common → internals}/decorators/shadow-options.js +0 -0
  989. /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
  990. /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
  991. /package/{components/common → internals}/definitions/defineComponents.js +0 -0
  992. /package/{components/common → internals}/definitions/register.d.ts +0 -0
  993. /package/{components/common → internals}/definitions/register.js +0 -0
  994. /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
  995. /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
  996. /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
  997. /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
  998. /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
  999. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
  1000. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
  1001. /package/{components/common → internals}/i18n/utils.d.ts +0 -0
  1002. /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
  1003. /package/{components/common → internals}/mixins/constructor.js +0 -0
  1004. /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
  1005. /package/{components/common → internals}/mixins/event-emitter.js +0 -0
  1006. /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
  1007. /package/{components/common → internals}/mixins/forms/associated.d.ts +0 -0
  1008. /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
  1009. /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
  1010. /package/{components/common → internals}/mixins/forms/types.js +0 -0
  1011. /package/{components/common → internals}/part-map.d.ts +0 -0
  1012. /package/{components/common → internals}/part-map.js +0 -0
@@ -7,25 +7,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { arrow, autoUpdate, computePosition, flip, inline, limitShift, offset, shift, size, } from '@floating-ui/dom';
8
8
  import { html, LitElement } from 'lit';
9
9
  import { property, query } from 'lit/decorators.js';
10
- import { addSlotController, setSlots, } from '../common/controllers/slot.js';
11
- import { registerComponent } from '../common/definitions/register.js';
12
- import { first, getElementByIdFromRoot, getRoot, isString, roundByDPR, setStyles, } from '../common/util.js';
10
+ import { addSlotController, setSlots, } from '#internals/controllers/slot.js';
11
+ import { registerComponent } from '#internals/definitions/register.js';
12
+ import { firstOf } from '#internals/utils/arrays.js';
13
+ import { getElementByIdFromRoot, hasStickyAncestor, isPopoverOpen, roundByDPR, setStyles, } from '#internals/utils/dom.js';
14
+ import { isString } from '#internals/utils/types.js';
13
15
  import { styles } from './themes/light/popover.base.css.js';
14
- function hasStickyAncestor(element) {
15
- let node = element;
16
- while (node) {
17
- if (getComputedStyle(node).position === 'sticky') {
18
- return true;
19
- }
20
- const root = getRoot(node);
21
- node =
22
- node.parentElement ?? (root instanceof ShadowRoot ? root.host : null);
23
- }
24
- return false;
25
- }
16
+ const OPPOSITE_SIDE = {
17
+ top: 'bottom',
18
+ right: 'left',
19
+ bottom: 'top',
20
+ left: 'right',
21
+ };
22
+ const SIDES = Object.keys(OPPOSITE_SIDE);
26
23
  export default class IgcPopoverComponent extends LitElement {
27
24
  constructor() {
28
25
  super(...arguments);
26
+ this._positionId = 0;
29
27
  this._strategy = 'absolute';
30
28
  this._slots = addSlotController(this, {
31
29
  slots: setSlots('anchor'),
@@ -44,123 +42,126 @@ export default class IgcPopoverComponent extends LitElement {
44
42
  }
45
43
  static { this.tagName = 'igc-popover'; }
46
44
  static { this.styles = styles; }
47
- static { this._oppositeArrowSide = new Map(Object.entries({
48
- top: 'bottom',
49
- right: 'left',
50
- bottom: 'top',
51
- left: 'right',
52
- })); }
53
45
  static register() {
54
46
  registerComponent(IgcPopoverComponent);
55
47
  }
56
48
  update(properties) {
57
- let targetChanged = false;
58
- if (properties.has('anchor')) {
59
- const target = isString(this.anchor)
60
- ? getElementByIdFromRoot(this, this.anchor)
61
- : this.anchor;
62
- if (target) {
63
- this._target = target;
64
- targetChanged = true;
49
+ if (this.hasUpdated) {
50
+ this._middleware = undefined;
51
+ if (properties.has('sameWidth') && !this.sameWidth) {
52
+ setStyles(this._container, { width: '' });
53
+ }
54
+ if (properties.has('open') || properties.has('anchor')) {
55
+ this._setOpenState(this.open);
56
+ }
57
+ else if (this.open) {
58
+ this._updatePosition();
65
59
  }
66
- }
67
- if (this.hasUpdated && properties.has('open')) {
68
- this._setOpenState(this.open);
69
- }
70
- else if (this.hasUpdated && this.open) {
71
- targetChanged ? this._resetAutoUpdate() : this._updatePosition();
72
60
  }
73
61
  super.update(properties);
74
62
  }
63
+ firstUpdated() {
64
+ this._setOpenState(this.open);
65
+ }
75
66
  connectedCallback() {
76
67
  super.connectedCallback();
77
- this.updateComplete.then(() => {
68
+ if (this.hasUpdated) {
78
69
  this._setOpenState(this.open);
79
- });
70
+ }
80
71
  }
81
72
  disconnectedCallback() {
82
73
  super.disconnectedCallback();
83
74
  this._setOpenState(false);
84
75
  }
85
76
  _handleSlotChange({ isDefault, }) {
86
- if (isDefault) {
77
+ if (isDefault || this.anchor) {
87
78
  return;
88
79
  }
89
- const possibleTarget = first(this._slots.getAssignedElements('anchor', { flatten: true }));
90
- if (this.anchor || !possibleTarget) {
91
- return;
80
+ this._setOpenState(this.open);
81
+ }
82
+ _handleToggle() {
83
+ if (!isPopoverOpen(this._container)) {
84
+ this._clearDispose();
92
85
  }
93
- this._target = possibleTarget;
94
- if (this.open) {
95
- this._resetAutoUpdate();
86
+ }
87
+ _resolveTarget() {
88
+ if (isString(this.anchor)) {
89
+ return getElementByIdFromRoot(this, this.anchor) ?? this._target;
96
90
  }
91
+ return (this.anchor ??
92
+ firstOf(this._slots.getAssignedElements('anchor', { flatten: true })));
97
93
  }
98
94
  _setOpenState(state) {
99
- state ? this._setDispose() : this._clearDispose();
95
+ this._clearDispose();
96
+ if (state) {
97
+ this._target = this._resolveTarget();
98
+ if (this._target) {
99
+ this._strategy = hasStickyAncestor(this._target) ? 'fixed' : 'absolute';
100
+ this._dispose = autoUpdate(this._target, this._container, this._updatePosition.bind(this));
101
+ }
102
+ }
100
103
  this._setPopoverState(state);
101
104
  }
102
- _setPopoverState(open) {
103
- if (!this._target) {
105
+ _setPopoverState(state) {
106
+ const container = this._container;
107
+ if (!container) {
104
108
  return;
105
109
  }
106
- open ? this._container?.showPopover() : this._container?.hidePopover();
107
- }
108
- _setDispose() {
109
- if (!this._target) {
110
- return;
110
+ const shouldOpen = state && this._target != null;
111
+ if (shouldOpen !== isPopoverOpen(container)) {
112
+ shouldOpen ? container.showPopover() : container.hidePopover();
111
113
  }
112
- this._strategy = hasStickyAncestor(this._target) ? 'fixed' : 'absolute';
113
- this._dispose = autoUpdate(this._target, this._container, this._updatePosition.bind(this));
114
114
  }
115
115
  _clearDispose() {
116
116
  this._dispose?.();
117
117
  this._dispose = undefined;
118
118
  }
119
- _resetAutoUpdate() {
120
- this._clearDispose();
121
- this._setDispose();
119
+ get _placement() {
120
+ return this.placement ?? 'bottom-start';
122
121
  }
123
122
  _createMiddleware() {
124
- const middleware = [];
125
- const container = this._container;
126
- if (this.offset) {
127
- middleware.push(offset(this.offset));
128
- }
129
- if (this.inline) {
130
- middleware.push(inline());
131
- }
132
- if (this.shift) {
133
- middleware.push(shift({
134
- padding: this.shiftPadding,
135
- limiter: limitShift(),
136
- }));
137
- }
138
- if (this.arrow) {
139
- middleware.push(arrow({ element: this.arrow }));
140
- }
141
- if (this.flip) {
142
- middleware.push(flip());
143
- }
144
- if (this.sameWidth) {
145
- middleware.push(size({
146
- apply: ({ rects }) => setStyles(container, { width: `${rects.reference.width}px` }),
147
- }));
148
- }
149
- else {
150
- setStyles(container, { width: '' });
151
- }
152
- return middleware;
123
+ const shiftMiddleware = this.shift
124
+ ? shift({ padding: this.shiftPadding, limiter: limitShift() })
125
+ : null;
126
+ const flipMiddleware = this.flip ? flip() : null;
127
+ const positioners = this._placement.includes('-')
128
+ ? [flipMiddleware, shiftMiddleware]
129
+ : [shiftMiddleware, flipMiddleware];
130
+ const chain = [
131
+ this.offset !== 0 ? offset(this.offset) : null,
132
+ this.inline ? inline() : null,
133
+ ...positioners,
134
+ this.sameWidth
135
+ ? size({
136
+ apply: ({ rects }) => setStyles(this._container, {
137
+ width: `${rects.reference.width}px`,
138
+ }),
139
+ })
140
+ : null,
141
+ this.arrow ? arrow({ element: this.arrow }) : null,
142
+ ];
143
+ return chain.filter((entry) => entry !== null);
153
144
  }
154
145
  async _updatePosition() {
155
- if (!(this.open && this._target)) {
146
+ if (!this.open) {
156
147
  return;
157
148
  }
149
+ if (!this._target?.isConnected) {
150
+ this._target = undefined;
151
+ this._clearDispose();
152
+ this._setPopoverState(false);
153
+ return;
154
+ }
155
+ const positionId = ++this._positionId;
158
156
  const strategy = this._strategy;
159
157
  const { x, y, middlewareData, placement } = await computePosition(this._target, this._container, {
160
- placement: this.placement ?? 'bottom-start',
161
- middleware: this._createMiddleware(),
158
+ placement: this._placement,
159
+ middleware: (this._middleware ??= this._createMiddleware()),
162
160
  strategy,
163
161
  });
162
+ if (positionId !== this._positionId || !this.open) {
163
+ return;
164
+ }
164
165
  setStyles(this._container, {
165
166
  position: strategy,
166
167
  left: '0',
@@ -170,25 +171,39 @@ export default class IgcPopoverComponent extends LitElement {
170
171
  this._updateArrowPosition(placement, middlewareData);
171
172
  }
172
173
  _updateArrowPosition(placement, data) {
173
- if (!(data.arrow && this.arrow)) {
174
+ const element = this.arrow;
175
+ if (!(data.arrow && element)) {
174
176
  return;
175
177
  }
176
178
  const { x, y } = data.arrow;
177
- const arrow = this.arrow;
178
179
  const offset = this.arrowOffset;
179
- const currentPlacement = first(placement.split('-'));
180
- const staticSide = IgcPopoverComponent._oppositeArrowSide.get(currentPlacement);
181
- arrow.part = currentPlacement;
182
- setStyles(arrow, {
183
- left: x != null ? `${roundByDPR(x + offset)}px` : '',
180
+ const [side] = placement.split('-');
181
+ const staticSide = OPPOSITE_SIDE[side];
182
+ if (!element.part.contains(side)) {
183
+ element.part.remove(...SIDES);
184
+ element.part.add(side);
185
+ }
186
+ const inset = staticSide === 'top' || staticSide === 'bottom'
187
+ ? element.offsetHeight
188
+ : element.offsetWidth;
189
+ const styles = {
184
190
  top: y != null ? `${roundByDPR(y + offset)}px` : '',
185
- [staticSide]: '-4px',
186
- });
191
+ right: '',
192
+ bottom: '',
193
+ left: x != null ? `${roundByDPR(x + offset)}px` : '',
194
+ };
195
+ styles[staticSide] = `${-inset}px`;
196
+ setStyles(element, styles);
187
197
  }
188
198
  render() {
189
199
  return html `
190
200
  <slot name="anchor"></slot>
191
- <div id="container" part="container" popover="manual">
201
+ <div
202
+ id="container"
203
+ part="container"
204
+ popover="manual"
205
+ @toggle=${this._handleToggle}
206
+ >
192
207
  <slot></slot>
193
208
  </div>
194
209
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/components/popover/popover.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n inline,\n limitShift,\n type Middleware,\n type MiddlewareData,\n offset,\n type Placement,\n shift,\n size,\n} from '@floating-ui/dom';\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport {\n addSlotController,\n type SlotChangeCallbackParameters,\n setSlots,\n} from '../common/controllers/slot.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n first,\n getElementByIdFromRoot,\n getRoot,\n isString,\n roundByDPR,\n setStyles,\n} from '../common/util.js';\nimport { styles } from './themes/light/popover.base.css.js';\n\n/**\n * Describes the preferred placement of a toggle component.\n */\nexport type PopoverPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end';\n\n/**\n * Walks up the DOM tree of the given element, crossing shadow boundaries, and\n * returns whether any ancestor is positioned as `sticky`.\n */\nfunction hasStickyAncestor(element: Element): boolean {\n let node: Element | null = element;\n\n while (node) {\n if (getComputedStyle(node).position === 'sticky') {\n return true;\n }\n\n const root = getRoot(node);\n node =\n node.parentElement ?? (root instanceof ShadowRoot ? root.host : null);\n }\n\n return false;\n}\n\n/* blazorSuppress */\n/**\n * @element igc-popover\n *\n * @slot - Content of the popover.\n * @slot anchor - The element the popover will be anchored to.\n *\n * @csspart container - The container wrapping the slotted content in the popover.\n */\nexport default class IgcPopoverComponent extends LitElement {\n public static readonly tagName = 'igc-popover';\n public static override styles = styles;\n\n private static _oppositeArrowSide = new Map(\n Object.entries({\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n })\n );\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcPopoverComponent);\n }\n\n //#region Internal properties and state\n\n private _dispose?: ReturnType<typeof autoUpdate>;\n private _target?: Element;\n\n /**\n * The positioning strategy resolved when the popover is opened. The `fixed`\n * strategy is used when the anchor has a `position: sticky` ancestor, otherwise\n * the default `absolute` strategy is used. Cached here to avoid repeated DOM\n * traversals and style reflows on every scroll/resize reposition.\n *\n * Also, time to migrate to CSS Anchor positioning!!!\n */\n private _strategy: 'absolute' | 'fixed' = 'absolute';\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('anchor'),\n onChange: this._handleSlotChange,\n });\n\n @query('#container', true)\n private readonly _container!: HTMLElement;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Pass an IDREF or an DOM element reference to use as the\n * anchor target for the floating element.\n */\n @property()\n public anchor?: Element | string;\n\n /**\n * Element to render as an \"arrow\" element for the current popover.\n */\n @property({ attribute: false })\n public arrow: HTMLElement | null = null;\n\n /** Additional offset to apply to the arrow element if enabled. */\n @property({ type: Number, attribute: 'arrow-offset' })\n public arrowOffset = 0;\n\n /**\n * Improves positioning for inline reference elements that span over multiple lines.\n * Useful for tooltips or similar components.\n */\n @property({ type: Boolean, reflect: true })\n public inline = false;\n\n /**\n * When enabled this changes the placement of the floating element in order to keep it\n * in view along the main axis.\n */\n @property({ type: Boolean, reflect: true })\n public flip = false;\n\n /**\n * Placement modifier which translates the floating element along the main axis.\n */\n @property({ type: Number })\n public offset = 0;\n\n /**\n * The visibility state of the popover component.\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Where to place the floating element relative to the parent anchor element.\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * When enabled the floating element will match the width of its parent anchor element.\n */\n @property({ type: Boolean, reflect: true, attribute: 'same-width' })\n public sameWidth = false;\n\n /**\n * When enabled this tries to shift the floating element along the main axis\n * keeping it in view, preventing overflow while maintaining the desired placement.\n */\n @property({ type: Boolean, reflect: true })\n public shift = false;\n\n /**\n * Virtual padding for the resolved overflow detection offsets in pixels.\n */\n @property({ type: Number, attribute: 'shift-padding' })\n public shiftPadding = 0;\n\n //#endregion\n\n //#region Life-cycle hooks\n\n protected override update(properties: PropertyValues<this>): void {\n let targetChanged = false;\n\n if (properties.has('anchor')) {\n const target = isString(this.anchor)\n ? getElementByIdFromRoot(this, this.anchor)\n : this.anchor;\n\n if (target) {\n this._target = target;\n targetChanged = true;\n }\n }\n\n if (this.hasUpdated && properties.has('open')) {\n this._setOpenState(this.open);\n } else if (this.hasUpdated && this.open) {\n targetChanged ? this._resetAutoUpdate() : this._updatePosition();\n }\n\n super.update(properties);\n }\n\n /** @internal */\n public override connectedCallback(): void {\n super.connectedCallback();\n this.updateComplete.then(() => {\n this._setOpenState(this.open);\n });\n }\n\n /** @internal */\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._setOpenState(false);\n }\n\n //#endregion\n\n private _handleSlotChange({\n isDefault,\n }: SlotChangeCallbackParameters<unknown>): void {\n if (isDefault) {\n return;\n }\n\n const possibleTarget = first(\n this._slots.getAssignedElements('anchor', { flatten: true })\n );\n\n if (this.anchor || !possibleTarget) {\n return;\n }\n\n this._target = possibleTarget;\n\n if (this.open) {\n this._resetAutoUpdate();\n }\n }\n\n //#region Internal open state API\n private _setOpenState(state: boolean): void {\n state ? this._setDispose() : this._clearDispose();\n this._setPopoverState(state);\n }\n\n private _setPopoverState(open: boolean): void {\n if (!this._target) {\n return;\n }\n open ? this._container?.showPopover() : this._container?.hidePopover();\n }\n\n private _setDispose(): void {\n if (!this._target) {\n return;\n }\n\n this._strategy = hasStickyAncestor(this._target) ? 'fixed' : 'absolute';\n\n this._dispose = autoUpdate(\n this._target,\n this._container,\n this._updatePosition.bind(this)\n );\n }\n\n private _clearDispose(): void {\n this._dispose?.();\n this._dispose = undefined;\n }\n\n private _resetAutoUpdate(): void {\n this._clearDispose();\n this._setDispose();\n }\n //#endregion\n\n //#region Internal position API\n\n private _createMiddleware(): Middleware[] {\n const middleware: Middleware[] = [];\n const container = this._container;\n\n if (this.offset) {\n middleware.push(offset(this.offset));\n }\n\n if (this.inline) {\n middleware.push(inline());\n }\n\n if (this.shift) {\n middleware.push(\n shift({\n padding: this.shiftPadding,\n limiter: limitShift(),\n })\n );\n }\n\n if (this.arrow) {\n middleware.push(arrow({ element: this.arrow }));\n }\n\n if (this.flip) {\n middleware.push(flip());\n }\n\n if (this.sameWidth) {\n middleware.push(\n size({\n apply: ({ rects }) =>\n setStyles(container, { width: `${rects.reference.width}px` }),\n })\n );\n } else {\n setStyles(container, { width: '' });\n }\n\n return middleware;\n }\n\n private async _updatePosition(): Promise<void> {\n if (!(this.open && this._target)) {\n return;\n }\n\n const strategy = this._strategy;\n\n const { x, y, middlewareData, placement } = await computePosition(\n this._target,\n this._container,\n {\n placement: this.placement ?? 'bottom-start',\n middleware: this._createMiddleware(),\n strategy,\n }\n );\n\n setStyles(this._container, {\n position: strategy,\n left: '0',\n top: '0',\n transform: `translate(${roundByDPR(x)}px,${roundByDPR(y)}px)`,\n });\n\n this._updateArrowPosition(placement, middlewareData);\n }\n\n private _updateArrowPosition(placement: Placement, data: MiddlewareData) {\n if (!(data.arrow && this.arrow)) {\n return;\n }\n\n const { x, y } = data.arrow;\n const arrow = this.arrow;\n const offset = this.arrowOffset;\n\n // The current placement of the popover along the x/y axis\n const currentPlacement = first(placement.split('-'));\n\n // The opposite side where the arrow element should render based on the `currentPlacement`\n const staticSide =\n IgcPopoverComponent._oppositeArrowSide.get(currentPlacement)!;\n\n arrow.part = currentPlacement;\n\n setStyles(arrow, {\n left: x != null ? `${roundByDPR(x + offset)}px` : '',\n top: y != null ? `${roundByDPR(y + offset)}px` : '',\n [staticSide]: '-4px',\n });\n }\n\n //#endregion\n\n protected override render() {\n return html`\n <slot name=\"anchor\"></slot>\n <div id=\"container\" part=\"container\" popover=\"manual\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-popover': IgcPopoverComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/components/popover/popover.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n inline,\n limitShift,\n type Middleware,\n type MiddlewareData,\n offset,\n type Placement,\n shift,\n size,\n} from '@floating-ui/dom';\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport {\n addSlotController,\n type SlotChangeCallbackParameters,\n setSlots,\n} from '#internals/controllers/slot.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { firstOf } from '#internals/utils/arrays.js';\nimport {\n getElementByIdFromRoot,\n hasStickyAncestor,\n isPopoverOpen,\n roundByDPR,\n setStyles,\n} from '#internals/utils/dom.js';\nimport { isString } from '#internals/utils/types.js';\nimport { styles } from './themes/light/popover.base.css.js';\n\n/**\n * Describes the preferred placement of a toggle component.\n */\nexport type PopoverPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end';\n\nconst OPPOSITE_SIDE = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n} as const;\n\ntype PopoverSide = keyof typeof OPPOSITE_SIDE;\n\nconst SIDES = Object.keys(OPPOSITE_SIDE) as PopoverSide[];\n\n/* blazorSuppress */\n/**\n * @element igc-popover\n *\n * @slot - Content of the popover.\n * @slot anchor - The element the popover will be anchored to.\n *\n * @csspart container - The container wrapping the slotted content in the popover.\n */\nexport default class IgcPopoverComponent extends LitElement {\n public static readonly tagName = 'igc-popover';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcPopoverComponent);\n }\n\n //#region Internal properties and state\n\n private _dispose?: ReturnType<typeof autoUpdate>;\n private _target?: Element;\n private _middleware?: Middleware[];\n private _positionId = 0;\n\n /**\n * The positioning strategy resolved when the popover is opened. The `fixed`\n * strategy is used when the anchor has a `position: sticky` ancestor, otherwise\n * the default `absolute` strategy is used. Cached here to avoid repeated DOM\n * traversals and style reflows on every scroll/resize reposition.\n *\n * Also, time to migrate to CSS Anchor positioning!!!\n */\n private _strategy: 'absolute' | 'fixed' = 'absolute';\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('anchor'),\n onChange: this._handleSlotChange,\n });\n\n @query('#container', true)\n private readonly _container!: HTMLElement;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Pass an IDREF or an DOM element reference to use as the\n * anchor target for the floating element.\n */\n @property()\n public anchor?: Element | string;\n\n /**\n * Element to render as an \"arrow\" element for the current popover.\n */\n @property({ attribute: false })\n public arrow: HTMLElement | null = null;\n\n /** Additional offset to apply to the arrow element if enabled. */\n @property({ type: Number, attribute: 'arrow-offset' })\n public arrowOffset = 0;\n\n /**\n * Improves positioning for inline reference elements that span over multiple lines.\n * Useful for tooltips or similar components.\n */\n @property({ type: Boolean, reflect: true })\n public inline = false;\n\n /**\n * When enabled this changes the placement of the floating element in order to keep it\n * in view along the main axis.\n */\n @property({ type: Boolean, reflect: true })\n public flip = false;\n\n /**\n * Placement modifier which translates the floating element along the main axis.\n */\n @property({ type: Number })\n public offset = 0;\n\n /**\n * The visibility state of the popover component.\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Where to place the floating element relative to the parent anchor element.\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * When enabled the floating element will match the width of its parent anchor element.\n */\n @property({ type: Boolean, reflect: true, attribute: 'same-width' })\n public sameWidth = false;\n\n /**\n * When enabled this tries to shift the floating element along the main axis\n * keeping it in view, preventing overflow while maintaining the desired placement.\n */\n @property({ type: Boolean, reflect: true })\n public shift = false;\n\n /**\n * Virtual padding for the resolved overflow detection offsets in pixels.\n */\n @property({ type: Number, attribute: 'shift-padding' })\n public shiftPadding = 0;\n\n //#endregion\n\n //#region Life-cycle hooks\n\n protected override update(properties: PropertyValues<this>): void {\n if (this.hasUpdated) {\n this._middleware = undefined;\n\n if (properties.has('sameWidth') && !this.sameWidth) {\n setStyles(this._container, { width: '' });\n }\n\n if (properties.has('open') || properties.has('anchor')) {\n this._setOpenState(this.open);\n } else if (this.open) {\n this._updatePosition();\n }\n }\n\n super.update(properties);\n }\n\n protected override firstUpdated(): void {\n this._setOpenState(this.open);\n }\n\n /** @internal */\n public override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasUpdated) {\n this._setOpenState(this.open);\n }\n }\n\n /** @internal */\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._setOpenState(false);\n }\n\n //#endregion\n\n private _handleSlotChange({\n isDefault,\n }: SlotChangeCallbackParameters<unknown>): void {\n if (isDefault || this.anchor) {\n return;\n }\n\n this._setOpenState(this.open);\n }\n\n private _handleToggle(): void {\n if (!isPopoverOpen(this._container)) {\n this._clearDispose();\n }\n }\n\n //#region Internal open state API\n\n /**\n * An unresolved IDREF keeps the current target, so that an anchor rendered\n * after this popover is picked up the next time it opens.\n */\n private _resolveTarget(): Element | undefined {\n if (isString(this.anchor)) {\n return getElementByIdFromRoot(this, this.anchor) ?? this._target;\n }\n\n return (\n this.anchor ??\n firstOf(this._slots.getAssignedElements('anchor', { flatten: true }))\n );\n }\n\n private _setOpenState(state: boolean): void {\n this._clearDispose();\n\n if (state) {\n this._target = this._resolveTarget();\n\n if (this._target) {\n this._strategy = hasStickyAncestor(this._target) ? 'fixed' : 'absolute';\n this._dispose = autoUpdate(\n this._target,\n this._container,\n this._updatePosition.bind(this)\n );\n }\n }\n\n this._setPopoverState(state);\n }\n\n private _setPopoverState(state: boolean): void {\n const container = this._container;\n\n if (!container) {\n return;\n }\n\n const shouldOpen = state && this._target != null;\n\n if (shouldOpen !== isPopoverOpen(container)) {\n shouldOpen ? container.showPopover() : container.hidePopover();\n }\n }\n\n private _clearDispose(): void {\n this._dispose?.();\n this._dispose = undefined;\n }\n\n //#endregion\n\n //#region Internal position API\n\n private get _placement(): PopoverPlacement {\n return this.placement ?? 'bottom-start';\n }\n\n private _createMiddleware(): Middleware[] {\n const shiftMiddleware = this.shift\n ? shift({ padding: this.shiftPadding, limiter: limitShift() })\n : null;\n const flipMiddleware = this.flip ? flip() : null;\n\n // Aligned placements flip before shifting, base placements shift first.\n // See https://floating-ui.com/docs/flip\n const positioners = this._placement.includes('-')\n ? [flipMiddleware, shiftMiddleware]\n : [shiftMiddleware, flipMiddleware];\n\n const chain = [\n this.offset !== 0 ? offset(this.offset) : null,\n this.inline ? inline() : null,\n ...positioners,\n this.sameWidth\n ? size({\n apply: ({ rects }) =>\n setStyles(this._container, {\n width: `${rects.reference.width}px`,\n }),\n })\n : null,\n this.arrow ? arrow({ element: this.arrow }) : null,\n ];\n\n return chain.filter((entry): entry is Middleware => entry !== null);\n }\n\n private async _updatePosition(): Promise<void> {\n if (!this.open) {\n return;\n }\n\n if (!this._target?.isConnected) {\n this._target = undefined;\n this._clearDispose();\n this._setPopoverState(false);\n return;\n }\n\n const positionId = ++this._positionId;\n const strategy = this._strategy;\n\n const { x, y, middlewareData, placement } = await computePosition(\n this._target,\n this._container,\n {\n placement: this._placement,\n middleware: (this._middleware ??= this._createMiddleware()),\n strategy,\n }\n );\n\n if (positionId !== this._positionId || !this.open) {\n return;\n }\n\n setStyles(this._container, {\n position: strategy,\n left: '0',\n top: '0',\n transform: `translate(${roundByDPR(x)}px,${roundByDPR(y)}px)`,\n });\n\n this._updateArrowPosition(placement, middlewareData);\n }\n\n private _updateArrowPosition(\n placement: Placement,\n data: MiddlewareData\n ): void {\n const element = this.arrow;\n\n if (!(data.arrow && element)) {\n return;\n }\n\n const { x, y } = data.arrow;\n const offset = this.arrowOffset;\n const [side] = placement.split('-') as [PopoverSide];\n const staticSide = OPPOSITE_SIDE[side];\n\n if (!element.part.contains(side)) {\n element.part.remove(...SIDES);\n element.part.add(side);\n }\n\n // Measured after the part switch, since it is what gives the arrow its size.\n const inset =\n staticSide === 'top' || staticSide === 'bottom'\n ? element.offsetHeight\n : element.offsetWidth;\n\n // Every side is reset, otherwise the inset of the previous placement is left\n // behind and over-constrains the arrow.\n const styles: Partial<CSSStyleDeclaration> = {\n top: y != null ? `${roundByDPR(y + offset)}px` : '',\n right: '',\n bottom: '',\n left: x != null ? `${roundByDPR(x + offset)}px` : '',\n };\n\n styles[staticSide] = `${-inset}px`;\n\n setStyles(element, styles);\n }\n\n //#endregion\n\n protected override render() {\n return html`\n <slot name=\"anchor\"></slot>\n <div\n id=\"container\"\n part=\"container\"\n popover=\"manual\"\n @toggle=${this._handleToggle}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-popover': IgcPopoverComponent;\n }\n}\n"]}
@@ -1,9 +1,8 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, type PropertyValues } from 'lit';
2
2
  import type { StyleInfo } from 'lit/directives/style-map.js';
3
- import type { SlotController } from '../common/controllers/slot.js';
3
+ import type { SlotController } from '#internals/controllers/slot.js';
4
4
  import type { StyleVariant } from '../types.js';
5
5
  export declare abstract class IgcProgressBaseComponent extends LitElement {
6
- private readonly _internals;
7
6
  protected abstract _slots: SlotController<any>;
8
7
  protected _base: HTMLElement;
9
8
  protected _percentage: number;
@@ -48,11 +47,9 @@ export declare abstract class IgcProgressBaseComponent extends LitElement {
48
47
  * @attr label-format
49
48
  */
50
49
  labelFormat: string;
51
- protected _indeterminateChange(): void;
52
- protected _maxChange(): void;
53
- protected _valueChange(): void;
54
- protected updated(): void;
55
- private _updateARIA;
50
+ constructor();
51
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
52
+ private get _labelText();
56
53
  private _updateProgress;
57
54
  protected _renderLabel(): import("lit-html").TemplateResult<1>;
58
55
  protected _renderLabelFormat(): string;
@@ -6,20 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { html, LitElement, nothing } from 'lit';
8
8
  import { property, query, state } from 'lit/decorators.js';
9
- import { addInternalsController } from '../common/controllers/internals.js';
10
- import { watch } from '../common/decorators/watch.js';
11
- import { partMap } from '../common/part-map.js';
12
- import { asPercent, clamp, formatString } from '../common/util.js';
9
+ import { addInternalsController } from '#internals/controllers/internals.js';
10
+ import { partMap } from '#internals/part-map.js';
11
+ import { asPercent, clamp } from '#internals/utils/math.js';
12
+ import { formatString } from '#internals/utils/strings.js';
13
13
  export class IgcProgressBaseComponent extends LitElement {
14
14
  constructor() {
15
- super(...arguments);
16
- this._internals = addInternalsController(this, {
17
- initialARIA: {
18
- role: 'progressbar',
19
- ariaValueMin: '0',
20
- ariaValueNow: '0',
21
- },
22
- });
15
+ super();
23
16
  this._percentage = 0;
24
17
  this._progress = 0;
25
18
  this._hasFraction = false;
@@ -35,39 +28,32 @@ export class IgcProgressBaseComponent extends LitElement {
35
28
  this.animationDuration = 500;
36
29
  this.indeterminate = false;
37
30
  this.hideLabel = false;
31
+ addInternalsController(this, {
32
+ initialARIA: {
33
+ role: 'progressbar',
34
+ ariaValueMin: '0',
35
+ ariaValueNow: '0',
36
+ },
37
+ aria: () => ({
38
+ ariaValueMax: this.max.toString(),
39
+ ariaValueNow: this.indeterminate ? null : this.value.toString(),
40
+ ariaValueText: this.indeterminate ? null : this._labelText,
41
+ }),
42
+ });
38
43
  }
39
- _indeterminateChange() {
40
- if (!this.indeterminate) {
41
- this._updateProgress();
42
- }
43
- }
44
- _maxChange() {
44
+ willUpdate(changedProperties) {
45
+ const progressChanged = changedProperties.has('animationDuration') ||
46
+ changedProperties.has('indeterminate') ||
47
+ changedProperties.has('max') ||
48
+ changedProperties.has('value');
45
49
  this.max = Math.max(0, this.max);
46
- if (this.value > this.max) {
47
- this.value = this.max;
48
- }
49
- if (!this.indeterminate) {
50
- this._updateProgress();
51
- }
52
- }
53
- _valueChange() {
54
50
  this.value = clamp(this.value, 0, this.max);
55
- if (!this.indeterminate) {
51
+ if (progressChanged && !this.indeterminate) {
56
52
  this._updateProgress();
57
53
  }
58
54
  }
59
- updated() {
60
- this._updateARIA();
61
- }
62
- _updateARIA() {
63
- const text = this.labelFormat
64
- ? this._renderLabelFormat()
65
- : `${this.value}%`;
66
- this._internals.setARIA({
67
- ariaValueMax: this.max.toString(),
68
- ariaValueNow: this.indeterminate ? null : this.value.toString(),
69
- ariaValueText: this.indeterminate ? null : text,
70
- });
55
+ get _labelText() {
56
+ return this.labelFormat ? this._renderLabelFormat() : `${this.value}%`;
71
57
  }
72
58
  _updateProgress() {
73
59
  const percentage = asPercent(this.value, Math.max(1, this.max));
@@ -139,13 +125,4 @@ __decorate([
139
125
  __decorate([
140
126
  property({ attribute: 'label-format' })
141
127
  ], IgcProgressBaseComponent.prototype, "labelFormat", void 0);
142
- __decorate([
143
- watch('indeterminate')
144
- ], IgcProgressBaseComponent.prototype, "_indeterminateChange", null);
145
- __decorate([
146
- watch('max')
147
- ], IgcProgressBaseComponent.prototype, "_maxChange", null);
148
- __decorate([
149
- watch('value')
150
- ], IgcProgressBaseComponent.prototype, "_valueChange", null);
151
128
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/components/progress/base.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport type { StyleInfo } from 'lit/directives/style-map.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport type { SlotController } from '../common/controllers/slot.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { partMap } from '../common/part-map.js';\nimport { asPercent, clamp, formatString } from '../common/util.js';\nimport type { StyleVariant } from '../types.js';\n\nexport abstract class IgcProgressBaseComponent extends LitElement {\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'progressbar',\n ariaValueMin: '0',\n ariaValueNow: '0',\n },\n });\n\n protected abstract _slots: SlotController<any>;\n\n @query('[part=\"base\"]', true)\n protected _base!: HTMLElement;\n\n @state()\n protected _percentage = 0;\n\n @state()\n protected _progress = 0;\n\n @state()\n protected _hasFraction = false;\n\n @state()\n protected _styleInfo: StyleInfo = {\n '--_progress-whole': '0.00',\n '--_progress-integer': '0',\n '--_progress-fraction': '0',\n '--_transition-duration': '0ms',\n };\n\n /**\n * Maximum value of the control.\n * @attr\n */\n @property({ type: Number })\n public max = 100;\n\n /**\n * The value of the control.\n * @attr\n */\n @property({ type: Number })\n public value = 0;\n\n /**\n * The variant of the control.\n * @attr\n */\n @property({ reflect: true })\n public variant: StyleVariant = 'primary';\n\n /**\n * Animation duration in milliseconds.\n * @attr animation-duration\n */\n @property({ type: Number, attribute: 'animation-duration' })\n public animationDuration = 500;\n\n /**\n * The indeterminate state of the control.\n * @attr\n */\n @property({ type: Boolean, reflect: false })\n public indeterminate = false;\n\n /**\n * Shows/hides the label of the control.\n * @attr hide-label\n */\n @property({ type: Boolean, attribute: 'hide-label', reflect: false })\n public hideLabel = false;\n\n /**\n * Format string for the default label of the control.\n * Placeholders:\n * {0} - current value of the control.\n * {1} - max value of the control.\n * @attr label-format\n */\n @property({ attribute: 'label-format' })\n public labelFormat!: string;\n\n @watch('indeterminate')\n protected _indeterminateChange(): void {\n if (!this.indeterminate) {\n this._updateProgress();\n }\n }\n\n @watch('max')\n protected _maxChange(): void {\n this.max = Math.max(0, this.max);\n if (this.value > this.max) {\n this.value = this.max;\n }\n\n if (!this.indeterminate) {\n this._updateProgress();\n }\n }\n\n @watch('value')\n protected _valueChange(): void {\n this.value = clamp(this.value, 0, this.max);\n\n if (!this.indeterminate) {\n this._updateProgress();\n }\n }\n\n protected override updated(): void {\n this._updateARIA();\n }\n\n private _updateARIA(): void {\n const text = this.labelFormat\n ? this._renderLabelFormat()\n : `${this.value}%`;\n\n this._internals.setARIA({\n ariaValueMax: this.max.toString(),\n ariaValueNow: this.indeterminate ? null : this.value.toString(),\n ariaValueText: this.indeterminate ? null : text,\n });\n }\n\n private _updateProgress(): void {\n const percentage = asPercent(this.value, Math.max(1, this.max));\n const fractionValue = Math.round((percentage % 1) * 100);\n this._hasFraction = fractionValue > 0;\n\n this._styleInfo = {\n '--_progress-whole': percentage.toFixed(2),\n '--_progress-integer': Math.floor(percentage),\n '--_progress-fraction': fractionValue,\n '--_transition-duration': `${this.animationDuration}ms`,\n };\n }\n\n protected _renderLabel() {\n const parts = {\n label: true,\n value: true,\n fraction: this._hasFraction,\n };\n\n return this.labelFormat\n ? html`<span part=${partMap(parts)}>${this._renderLabelFormat()}</span>`\n : html`<span part=${partMap({ ...parts, counter: true })}></span>`;\n }\n\n protected _renderLabelFormat(): string {\n return formatString(this.labelFormat, this.value, this.max);\n }\n\n protected _renderDefaultSlot() {\n const hideDefaultLabel =\n this.indeterminate ||\n this.hideLabel ||\n this._slots.hasAssignedElements('[default]');\n\n return html`\n <slot part=\"label\"></slot>\n ${hideDefaultLabel ? nothing : this._renderLabel()}\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/components/progress/base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D,MAAM,OAAgB,wBAAyB,SAAQ,UAAU;IA2E/D;QACE,KAAK,EAAE,CAAC;QArEA,gBAAW,GAAG,CAAC,CAAC;QAGhB,cAAS,GAAG,CAAC,CAAC;QAGd,iBAAY,GAAG,KAAK,CAAC;QAGrB,eAAU,GAAc;YAChC,mBAAmB,EAAE,MAAM;YAC3B,qBAAqB,EAAE,GAAG;YAC1B,sBAAsB,EAAE,GAAG;YAC3B,wBAAwB,EAAE,KAAK;SAChC,CAAC;QAOK,QAAG,GAAG,GAAG,CAAC;QAOV,UAAK,GAAG,CAAC,CAAC;QAOV,YAAO,GAAiB,SAAS,CAAC;QAOlC,sBAAiB,GAAG,GAAG,CAAC;QAOxB,kBAAa,GAAG,KAAK,CAAC;QAOtB,cAAS,GAAG,KAAK,CAAC;QAevB,sBAAsB,CAAC,IAAI,EAAE;YAC3B,WAAW,EAAE;gBACX,IAAI,EAAE,aAAa;gBACnB,YAAY,EAAE,GAAG;gBACjB,YAAY,EAAE,GAAG;aAClB;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACX,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACjC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC/D,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;aAC3D,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAEkB,UAAU,CAAC,iBAAuC;QACnE,MAAM,eAAe,GACnB,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC1C,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC;YACtC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAIjC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;IACzE,CAAC;IAEO,eAAe;QACrB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,aAAa,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,GAAG;YAChB,mBAAmB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7C,sBAAsB,EAAE,aAAa;YACrC,wBAAwB,EAAE,GAAG,IAAI,CAAC,iBAAiB,IAAI;SACxD,CAAC;IACJ,CAAC;IAES,YAAY;QACpB,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI,CAAC,YAAY;SAC5B,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW;YACrB,CAAC,CAAC,IAAI,CAAA,cAAc,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,SAAS;YACxE,CAAC,CAAC,IAAI,CAAA,cAAc,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC;IACvE,CAAC;IAES,kBAAkB;QAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IAES,kBAAkB;QAC1B,MAAM,gBAAgB,GACpB,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAA;;QAEP,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;KACnD,CAAC;IACJ,CAAC;CACF;AArJW;IADT,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;uDACC;AAGpB;IADT,KAAK,EAAE;6DACkB;AAGhB;IADT,KAAK,EAAE;2DACgB;AAGd;IADT,KAAK,EAAE;8DACuB;AAGrB;IADT,KAAK,EAAE;4DAMN;AAOK;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACV;AAOV;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACV;AAOV;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDACa;AAOlC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;mEAC7B;AAOxB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;+DACf;AAOtB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;2DAC5C;AAUlB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;6DACZ","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport type { StyleInfo } from 'lit/directives/style-map.js';\nimport { addInternalsController } from '#internals/controllers/internals.js';\nimport type { SlotController } from '#internals/controllers/slot.js';\nimport { partMap } from '#internals/part-map.js';\nimport { asPercent, clamp } from '#internals/utils/math.js';\nimport { formatString } from '#internals/utils/strings.js';\nimport type { StyleVariant } from '../types.js';\n\n/* omitModule */\nexport abstract class IgcProgressBaseComponent extends LitElement {\n protected abstract _slots: SlotController<any>;\n\n @query('[part=\"base\"]', true)\n protected _base!: HTMLElement;\n\n @state()\n protected _percentage = 0;\n\n @state()\n protected _progress = 0;\n\n @state()\n protected _hasFraction = false;\n\n @state()\n protected _styleInfo: StyleInfo = {\n '--_progress-whole': '0.00',\n '--_progress-integer': '0',\n '--_progress-fraction': '0',\n '--_transition-duration': '0ms',\n };\n\n /**\n * Maximum value of the control.\n * @attr\n */\n @property({ type: Number })\n public max = 100;\n\n /**\n * The value of the control.\n * @attr\n */\n @property({ type: Number })\n public value = 0;\n\n /**\n * The variant of the control.\n * @attr\n */\n @property({ reflect: true })\n public variant: StyleVariant = 'primary';\n\n /**\n * Animation duration in milliseconds.\n * @attr animation-duration\n */\n @property({ type: Number, attribute: 'animation-duration' })\n public animationDuration = 500;\n\n /**\n * The indeterminate state of the control.\n * @attr\n */\n @property({ type: Boolean, reflect: false })\n public indeterminate = false;\n\n /**\n * Shows/hides the label of the control.\n * @attr hide-label\n */\n @property({ type: Boolean, attribute: 'hide-label', reflect: false })\n public hideLabel = false;\n\n /**\n * Format string for the default label of the control.\n * Placeholders:\n * {0} - current value of the control.\n * {1} - max value of the control.\n * @attr label-format\n */\n @property({ attribute: 'label-format' })\n public labelFormat!: string;\n\n constructor() {\n super();\n\n addInternalsController(this, {\n initialARIA: {\n role: 'progressbar',\n ariaValueMin: '0',\n ariaValueNow: '0',\n },\n aria: () => ({\n ariaValueMax: this.max.toString(),\n ariaValueNow: this.indeterminate ? null : this.value.toString(),\n ariaValueText: this.indeterminate ? null : this._labelText,\n }),\n });\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n const progressChanged =\n changedProperties.has('animationDuration') ||\n changedProperties.has('indeterminate') ||\n changedProperties.has('max') ||\n changedProperties.has('value');\n\n // Both writes are idempotent, so they are applied unconditionally. A clamp\n // that does change a value lands it in `changedProperties` for this pass.\n this.max = Math.max(0, this.max);\n this.value = clamp(this.value, 0, this.max);\n\n if (progressChanged && !this.indeterminate) {\n this._updateProgress();\n }\n }\n\n private get _labelText(): string {\n return this.labelFormat ? this._renderLabelFormat() : `${this.value}%`;\n }\n\n private _updateProgress(): void {\n const percentage = asPercent(this.value, Math.max(1, this.max));\n const fractionValue = Math.round((percentage % 1) * 100);\n this._hasFraction = fractionValue > 0;\n\n this._styleInfo = {\n '--_progress-whole': percentage.toFixed(2),\n '--_progress-integer': Math.floor(percentage),\n '--_progress-fraction': fractionValue,\n '--_transition-duration': `${this.animationDuration}ms`,\n };\n }\n\n protected _renderLabel() {\n const parts = {\n label: true,\n value: true,\n fraction: this._hasFraction,\n };\n\n return this.labelFormat\n ? html`<span part=${partMap(parts)}>${this._renderLabelFormat()}</span>`\n : html`<span part=${partMap({ ...parts, counter: true })}></span>`;\n }\n\n protected _renderLabelFormat(): string {\n return formatString(this.labelFormat, this.value, this.max);\n }\n\n protected _renderDefaultSlot() {\n const hideDefaultLabel =\n this.indeterminate ||\n this.hideLabel ||\n this._slots.hasAssignedElements('[default]');\n\n return html`\n <slot part=\"label\"></slot>\n ${hideDefaultLabel ? nothing : this._renderLabel()}\n `;\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  /**
3
- * Used for defining gradient stops in the igc-circular-progress.
4
- * For each `igc-circular-gradient` defined as `gradient` slot of `igc-circular-progress` element would be created a SVG stop element.
3
+ * Used for defining gradient stops in the circular progress component.
4
+ * For each circular gradient, defined as `gradient` slot of the circular progress, would be created a SVG stop element.
5
5
  * The values passed as `color`, `offset` and `opacity` would be set as
6
6
  * `stop-color`, `offset` and `stop-opacity` of the SVG element without further validations.
7
7
  *
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { LitElement, nothing } from 'lit';
8
8
  import { property } from 'lit/decorators.js';
9
- import { registerComponent } from '../common/definitions/register.js';
9
+ import { registerComponent } from '#internals/definitions/register.js';
10
10
  export default class IgcCircularGradientComponent extends LitElement {
11
11
  constructor() {
12
12
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"circular-gradient.js","sourceRoot":"","sources":["../../../src/components/progress/circular-gradient.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAWtE,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,UAAU;IAApE;;QAaS,WAAM,GAAG,IAAI,CAAC;QAOd,UAAK,GAAG,OAAO,CAAC;QAOhB,YAAO,GAAG,CAAC,CAAC;IAKrB,CAAC;aA/BwB,YAAO,GAAG,uBAAuB,AAA1B,CAA2B;IAGlD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAuBkB,MAAM;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;;AAlBM;IADN,QAAQ,EAAE;4DACU;AAOd;IADN,QAAQ,EAAE;2DACY;AAOhB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DACR","sourcesContent":["import { LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { registerComponent } from '../common/definitions/register.js';\n\n/**\n * Used for defining gradient stops in the igc-circular-progress.\n * For each `igc-circular-gradient` defined as `gradient` slot of `igc-circular-progress` element would be created a SVG stop element.\n * The values passed as `color`, `offset` and `opacity` would be set as\n * `stop-color`, `offset` and `stop-opacity` of the SVG element without further validations.\n *\n * @element igc-circular-gradient\n *\n */\nexport default class IgcCircularGradientComponent extends LitElement {\n public static readonly tagName = 'igc-circular-gradient';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcCircularGradientComponent);\n }\n\n /**\n * Defines where the gradient stop is placed along the gradient vector\n * @attr\n */\n @property()\n public offset = '0%';\n\n /**\n * Defines the color of the gradient stop\n * @attr\n */\n @property()\n public color = 'black';\n\n /**\n * Defines the opacity of the gradient stop\n * @attr\n */\n @property({ type: Number })\n public opacity = 1;\n\n protected override render() {\n return nothing;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-circular-gradient': IgcCircularGradientComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"circular-gradient.js","sourceRoot":"","sources":["../../../src/components/progress/circular-gradient.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAWvE,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,UAAU;IAApE;;QAaS,WAAM,GAAG,IAAI,CAAC;QAOd,UAAK,GAAG,OAAO,CAAC;QAOhB,YAAO,GAAG,CAAC,CAAC;IAKrB,CAAC;aA/BwB,YAAO,GAAG,uBAAuB,AAA1B,CAA2B;IAGlD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAuBkB,MAAM;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;;AAlBM;IADN,QAAQ,EAAE;4DACU;AAOd;IADN,QAAQ,EAAE;2DACY;AAOhB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DACR","sourcesContent":["import { LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { registerComponent } from '#internals/definitions/register.js';\n\n/**\n * Used for defining gradient stops in the circular progress component.\n * For each circular gradient, defined as `gradient` slot of the circular progress, would be created a SVG stop element.\n * The values passed as `color`, `offset` and `opacity` would be set as\n * `stop-color`, `offset` and `stop-opacity` of the SVG element without further validations.\n *\n * @element igc-circular-gradient\n *\n */\nexport default class IgcCircularGradientComponent extends LitElement {\n public static readonly tagName = 'igc-circular-gradient';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcCircularGradientComponent);\n }\n\n /**\n * Defines where the gradient stop is placed along the gradient vector\n * @attr\n */\n @property()\n public offset = '0%';\n\n /**\n * Defines the color of the gradient stop\n * @attr\n */\n @property()\n public color = 'black';\n\n /**\n * Defines the opacity of the gradient stop\n * @attr\n */\n @property({ type: Number })\n public opacity = 1;\n\n protected override render() {\n return nothing;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-circular-gradient': IgcCircularGradientComponent;\n }\n}\n"]}