igniteui-webcomponents 5.0.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1254) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +3 -3
  3. package/components/accordion/accordion.d.ts +0 -2
  4. package/components/accordion/accordion.js +7 -14
  5. package/components/accordion/accordion.js.map +1 -1
  6. package/components/accordion/themes/accordion.base.css.js +1 -1
  7. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  8. package/components/avatar/themes/avatar.base.css.js +1 -1
  9. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  10. package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
  11. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
  12. package/components/avatar/themes/dark/avatar.indigo.css.js +1 -1
  13. package/components/avatar/themes/dark/avatar.indigo.css.js.map +1 -1
  14. package/components/avatar/themes/light/avatar.bootstrap.css.js +1 -1
  15. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
  16. package/components/avatar/themes/light/avatar.indigo.css.js +1 -1
  17. package/components/avatar/themes/light/avatar.indigo.css.js.map +1 -1
  18. package/components/avatar/themes/light/avatar.shared.css.js +1 -1
  19. package/components/avatar/themes/light/avatar.shared.css.js.map +1 -1
  20. package/components/badge/themes/badge.base.css.js +1 -1
  21. package/components/badge/themes/badge.base.css.js.map +1 -1
  22. package/components/badge/themes/dark/badge.bootstrap.css.js +1 -1
  23. package/components/badge/themes/dark/badge.bootstrap.css.js.map +1 -1
  24. package/components/badge/themes/dark/badge.indigo.css.js +1 -1
  25. package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
  26. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  27. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  28. package/components/badge/themes/light/badge.indigo.css.js +1 -1
  29. package/components/badge/themes/light/badge.indigo.css.js.map +1 -1
  30. package/components/badge/themes/light/badge.shared.css.js +1 -1
  31. package/components/badge/themes/light/badge.shared.css.js.map +1 -1
  32. package/components/badge/themes/shared/badge.bootstrap.css.js +1 -1
  33. package/components/badge/themes/shared/badge.bootstrap.css.js.map +1 -1
  34. package/components/badge/themes/shared/badge.common.css.js +1 -1
  35. package/components/badge/themes/shared/badge.common.css.js.map +1 -1
  36. package/components/banner/themes/banner.base.css.js +1 -1
  37. package/components/banner/themes/banner.base.css.js.map +1 -1
  38. package/components/banner/themes/dark/banner.bootstrap.css.js +1 -1
  39. package/components/banner/themes/dark/banner.bootstrap.css.js.map +1 -1
  40. package/components/banner/themes/dark/banner.fluent.css.js +1 -1
  41. package/components/banner/themes/dark/banner.fluent.css.js.map +1 -1
  42. package/components/banner/themes/dark/banner.indigo.css.js +1 -1
  43. package/components/banner/themes/dark/banner.indigo.css.js.map +1 -1
  44. package/components/banner/themes/dark/banner.material.css.js +1 -1
  45. package/components/banner/themes/dark/banner.material.css.js.map +1 -1
  46. package/components/banner/themes/light/banner.bootstrap.css.js +1 -1
  47. package/components/banner/themes/light/banner.bootstrap.css.js.map +1 -1
  48. package/components/banner/themes/light/banner.fluent.css.js +1 -1
  49. package/components/banner/themes/light/banner.fluent.css.js.map +1 -1
  50. package/components/banner/themes/light/banner.indigo.css.js +1 -1
  51. package/components/banner/themes/light/banner.indigo.css.js.map +1 -1
  52. package/components/banner/themes/light/banner.material.css.js +1 -1
  53. package/components/banner/themes/light/banner.material.css.js.map +1 -1
  54. package/components/banner/themes/shared/banner.bootstrap.css.js +1 -1
  55. package/components/banner/themes/shared/banner.bootstrap.css.js.map +1 -1
  56. package/components/banner/themes/shared/banner.fluent.css.js +1 -1
  57. package/components/banner/themes/shared/banner.fluent.css.js.map +1 -1
  58. package/components/banner/themes/shared/banner.indigo.css.js +1 -1
  59. package/components/banner/themes/shared/banner.indigo.css.js.map +1 -1
  60. package/components/banner/themes/shared/banner.material.css.js +1 -1
  61. package/components/banner/themes/shared/banner.material.css.js.map +1 -1
  62. package/components/button/themes/button/button.base.css.js +1 -1
  63. package/components/button/themes/button/button.base.css.js.map +1 -1
  64. package/components/button/themes/button/dark/button.bootstrap.css.js +1 -1
  65. package/components/button/themes/button/dark/button.bootstrap.css.js.map +1 -1
  66. package/components/button/themes/button/dark/button.fluent.css.js +1 -1
  67. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  68. package/components/button/themes/button/dark/button.indigo.css.js +1 -1
  69. package/components/button/themes/button/dark/button.indigo.css.js.map +1 -1
  70. package/components/button/themes/button/dark/button.material.css.js +1 -1
  71. package/components/button/themes/button/dark/button.material.css.js.map +1 -1
  72. package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
  73. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  74. package/components/button/themes/button/light/button.fluent.css.js +1 -1
  75. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  76. package/components/button/themes/button/light/button.indigo.css.js +1 -1
  77. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  78. package/components/button/themes/button/light/button.material.css.js +1 -1
  79. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  80. package/components/button/themes/button/light/button.shared.css.js +1 -1
  81. package/components/button/themes/button/light/button.shared.css.js.map +1 -1
  82. package/components/button/themes/button/shared/button.bootstrap.css.js +1 -1
  83. package/components/button/themes/button/shared/button.bootstrap.css.js.map +1 -1
  84. package/components/button/themes/button/shared/button.common.css.js +1 -1
  85. package/components/button/themes/button/shared/button.common.css.js.map +1 -1
  86. package/components/button/themes/button/shared/button.fluent.css.js +1 -1
  87. package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
  88. package/components/button/themes/button/shared/button.indigo.css.js +1 -1
  89. package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
  90. package/components/button/themes/button/shared/button.material.css.js +1 -1
  91. package/components/button/themes/button/shared/button.material.css.js.map +1 -1
  92. package/components/button/themes/icon-button/dark/icon-button.bootstrap.css.js +1 -1
  93. package/components/button/themes/icon-button/dark/icon-button.bootstrap.css.js.map +1 -1
  94. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
  95. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
  96. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js +1 -1
  97. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js.map +1 -1
  98. package/components/button/themes/icon-button/dark/icon-button.material.css.js +1 -1
  99. package/components/button/themes/icon-button/dark/icon-button.material.css.js.map +1 -1
  100. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  101. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  102. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
  103. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  104. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
  105. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  106. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
  107. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  108. package/components/button/themes/icon-button/light/icon-button.material.css.js +1 -1
  109. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  110. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
  111. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
  112. package/components/button/themes/icon-button/shared/icon-button.common.css.js +1 -1
  113. package/components/button/themes/icon-button/shared/icon-button.common.css.js.map +1 -1
  114. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
  115. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
  116. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
  117. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
  118. package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
  119. package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
  120. package/components/button-group/themes/button.base.css.js +1 -1
  121. package/components/button-group/themes/button.base.css.js.map +1 -1
  122. package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
  123. package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
  124. package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
  125. package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
  126. package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
  127. package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
  128. package/components/button-group/themes/dark/button-group.material.css.js +1 -1
  129. package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
  130. package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
  131. package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
  132. package/components/button-group/themes/group.base.css.js +1 -1
  133. package/components/button-group/themes/group.base.css.js.map +1 -1
  134. package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
  135. package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
  136. package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
  137. package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
  138. package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
  139. package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
  140. package/components/button-group/themes/light/button-group.material.css.js +1 -1
  141. package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
  142. package/components/button-group/themes/light/button-group.shared.css.js +1 -1
  143. package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
  144. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  145. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  146. package/components/button-group/themes/shared/button/button.fluent.css.js +1 -1
  147. package/components/button-group/themes/shared/button/button.fluent.css.js.map +1 -1
  148. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  149. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  150. package/components/button-group/themes/shared/group/group.common.css.js +1 -1
  151. package/components/button-group/themes/shared/group/group.common.css.js.map +1 -1
  152. package/components/calendar/calendar.d.ts +5 -4
  153. package/components/calendar/calendar.js +10 -9
  154. package/components/calendar/calendar.js.map +1 -1
  155. package/components/calendar/days-view/days-view.d.ts +2 -2
  156. package/components/calendar/days-view/days-view.js +1 -1
  157. package/components/calendar/days-view/days-view.js.map +1 -1
  158. package/components/calendar/months-view/months-view.d.ts +2 -2
  159. package/components/calendar/months-view/months-view.js +1 -1
  160. package/components/calendar/months-view/months-view.js.map +1 -1
  161. package/components/calendar/themes/calendar.base.css.js +1 -1
  162. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  163. package/components/calendar/themes/dark/calendar.bootstrap.css.js +1 -1
  164. package/components/calendar/themes/dark/calendar.bootstrap.css.js.map +1 -1
  165. package/components/calendar/themes/dark/calendar.fluent.css.js +1 -1
  166. package/components/calendar/themes/dark/calendar.fluent.css.js.map +1 -1
  167. package/components/calendar/themes/dark/calendar.indigo.css.js +1 -1
  168. package/components/calendar/themes/dark/calendar.indigo.css.js.map +1 -1
  169. package/components/calendar/themes/dark/calendar.material.css.js +1 -1
  170. package/components/calendar/themes/dark/calendar.material.css.js.map +1 -1
  171. package/components/calendar/themes/days-view.base.css.js +1 -1
  172. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  173. package/components/calendar/themes/light/calendar.bootstrap.css.js +1 -1
  174. package/components/calendar/themes/light/calendar.bootstrap.css.js.map +1 -1
  175. package/components/calendar/themes/light/calendar.fluent.css.js +1 -1
  176. package/components/calendar/themes/light/calendar.fluent.css.js.map +1 -1
  177. package/components/calendar/themes/light/calendar.indigo.css.js +1 -1
  178. package/components/calendar/themes/light/calendar.indigo.css.js.map +1 -1
  179. package/components/calendar/themes/light/calendar.material.css.js +1 -1
  180. package/components/calendar/themes/light/calendar.material.css.js.map +1 -1
  181. package/components/calendar/themes/light/calendar.shared.css.js +1 -1
  182. package/components/calendar/themes/light/calendar.shared.css.js.map +1 -1
  183. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
  184. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
  185. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  186. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  187. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js +1 -1
  188. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  189. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js +1 -1
  190. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js.map +1 -1
  191. package/components/calendar/themes/shared/fluent/days-view.fluent.css.js +1 -1
  192. package/components/calendar/themes/shared/fluent/days-view.fluent.css.js.map +1 -1
  193. package/components/calendar/themes/shared/fluent/year-month-view.fluent.css.js +1 -1
  194. package/components/calendar/themes/shared/fluent/year-month-view.fluent.css.js.map +1 -1
  195. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
  196. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
  197. package/components/calendar/themes/shared/indigo/days-view.indigo.css.js +1 -1
  198. package/components/calendar/themes/shared/indigo/days-view.indigo.css.js.map +1 -1
  199. package/components/calendar/themes/shared/indigo/year-month-view.indigo.css.js +1 -1
  200. package/components/calendar/themes/shared/indigo/year-month-view.indigo.css.js.map +1 -1
  201. package/components/calendar/themes/shared/material/calendar.material.css.js +1 -1
  202. package/components/calendar/themes/shared/material/calendar.material.css.js.map +1 -1
  203. package/components/calendar/themes/shared/material/days-view.material.css.js +1 -1
  204. package/components/calendar/themes/shared/material/days-view.material.css.js.map +1 -1
  205. package/components/calendar/themes/shared/material/year-month-view.material.css.js +1 -1
  206. package/components/calendar/themes/shared/material/year-month-view.material.css.js.map +1 -1
  207. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  208. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  209. package/components/calendar/types.d.ts +1 -1
  210. package/components/calendar/types.js.map +1 -1
  211. package/components/calendar/years-view/years-view.d.ts +2 -2
  212. package/components/calendar/years-view/years-view.js +1 -1
  213. package/components/calendar/years-view/years-view.js.map +1 -1
  214. package/components/card/themes/card.actions.base.css.js +1 -1
  215. package/components/card/themes/card.actions.base.css.js.map +1 -1
  216. package/components/card/themes/card.content.base.css.js +1 -1
  217. package/components/card/themes/card.content.base.css.js.map +1 -1
  218. package/components/card/themes/card.header.base.css.js +1 -1
  219. package/components/card/themes/card.header.base.css.js.map +1 -1
  220. package/components/card/themes/card.media.base.css.js +1 -1
  221. package/components/card/themes/card.media.base.css.js.map +1 -1
  222. package/components/card/themes/container.base.css.js +1 -1
  223. package/components/card/themes/container.base.css.js.map +1 -1
  224. package/components/card/themes/dark/card.bootstrap.css.js +1 -1
  225. package/components/card/themes/dark/card.bootstrap.css.js.map +1 -1
  226. package/components/card/themes/dark/card.fluent.css.js +1 -1
  227. package/components/card/themes/dark/card.fluent.css.js.map +1 -1
  228. package/components/card/themes/dark/card.indigo.css.js +1 -1
  229. package/components/card/themes/dark/card.indigo.css.js.map +1 -1
  230. package/components/card/themes/dark/card.material.css.js +1 -1
  231. package/components/card/themes/dark/card.material.css.js.map +1 -1
  232. package/components/card/themes/dark/card.shared.css.js +1 -1
  233. package/components/card/themes/dark/card.shared.css.js.map +1 -1
  234. package/components/card/themes/light/container/card.bootstrap.css.js +1 -1
  235. package/components/card/themes/light/container/card.bootstrap.css.js.map +1 -1
  236. package/components/card/themes/light/container/card.fluent.css.js +1 -1
  237. package/components/card/themes/light/container/card.fluent.css.js.map +1 -1
  238. package/components/card/themes/light/container/card.indigo.css.js +1 -1
  239. package/components/card/themes/light/container/card.indigo.css.js.map +1 -1
  240. package/components/card/themes/light/container/card.material.css.js +1 -1
  241. package/components/card/themes/light/container/card.material.css.js.map +1 -1
  242. package/components/card/themes/light/container/card.shared.css.js +1 -1
  243. package/components/card/themes/light/container/card.shared.css.js.map +1 -1
  244. package/components/card/themes/shared/container/card.common.css.js +1 -1
  245. package/components/card/themes/shared/container/card.common.css.js.map +1 -1
  246. package/components/card/themes/shared/container/card.fluent.css.js +1 -1
  247. package/components/card/themes/shared/container/card.fluent.css.js.map +1 -1
  248. package/components/card/themes/shared/container/card.indigo.css.js +1 -1
  249. package/components/card/themes/shared/container/card.indigo.css.js.map +1 -1
  250. package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
  251. package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
  252. package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
  253. package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
  254. package/components/card/themes/shared/header/card.header.indigo.css.js +1 -1
  255. package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -1
  256. package/components/carousel/animations.d.ts +1 -0
  257. package/components/carousel/animations.js +26 -0
  258. package/components/carousel/animations.js.map +1 -0
  259. package/components/carousel/carousel-indicator-container.d.ts +21 -0
  260. package/components/carousel/carousel-indicator-container.js +52 -0
  261. package/components/carousel/carousel-indicator-container.js.map +1 -0
  262. package/components/carousel/carousel-indicator.d.ts +34 -0
  263. package/components/carousel/carousel-indicator.js +73 -0
  264. package/components/carousel/carousel-indicator.js.map +1 -0
  265. package/components/carousel/carousel-slide.d.ts +40 -0
  266. package/components/carousel/carousel-slide.js +95 -0
  267. package/components/carousel/carousel-slide.js.map +1 -0
  268. package/components/carousel/carousel.d.ts +195 -0
  269. package/components/carousel/carousel.js +547 -0
  270. package/components/carousel/carousel.js.map +1 -0
  271. package/components/carousel/context.d.ts +4 -0
  272. package/components/carousel/context.js +3 -0
  273. package/components/carousel/context.js.map +1 -0
  274. package/components/carousel/themes/carousel-indicator-container.base.css.js +3 -0
  275. package/components/carousel/themes/carousel-indicator-container.base.css.js.map +1 -0
  276. package/components/carousel/themes/carousel-indicator.base.css.d.ts +1 -0
  277. package/components/carousel/themes/carousel-indicator.base.css.js +3 -0
  278. package/components/carousel/themes/carousel-indicator.base.css.js.map +1 -0
  279. package/components/carousel/themes/carousel-slide.base.css.d.ts +1 -0
  280. package/components/carousel/themes/carousel-slide.base.css.js +3 -0
  281. package/components/carousel/themes/carousel-slide.base.css.js.map +1 -0
  282. package/components/carousel/themes/carousel.base.css.d.ts +1 -0
  283. package/components/carousel/themes/carousel.base.css.js +3 -0
  284. package/components/carousel/themes/carousel.base.css.js.map +1 -0
  285. package/components/carousel/themes/container.d.ts +2 -0
  286. package/components/carousel/themes/container.js +50 -0
  287. package/components/carousel/themes/container.js.map +1 -0
  288. package/components/carousel/themes/dark/carousel.bootstrap.css.d.ts +1 -0
  289. package/components/carousel/themes/dark/carousel.bootstrap.css.js +3 -0
  290. package/components/carousel/themes/dark/carousel.bootstrap.css.js.map +1 -0
  291. package/components/carousel/themes/dark/carousel.fluent.css.d.ts +1 -0
  292. package/components/carousel/themes/dark/carousel.fluent.css.js +3 -0
  293. package/components/carousel/themes/dark/carousel.fluent.css.js.map +1 -0
  294. package/components/carousel/themes/dark/carousel.indigo.css.d.ts +1 -0
  295. package/components/carousel/themes/dark/carousel.indigo.css.js +3 -0
  296. package/components/carousel/themes/dark/carousel.indigo.css.js.map +1 -0
  297. package/components/carousel/themes/dark/carousel.material.css.d.ts +1 -0
  298. package/components/carousel/themes/dark/carousel.material.css.js +3 -0
  299. package/components/carousel/themes/dark/carousel.material.css.js.map +1 -0
  300. package/components/carousel/themes/dark/carousel.shared.css.d.ts +1 -0
  301. package/components/carousel/themes/dark/carousel.shared.css.js +3 -0
  302. package/components/carousel/themes/dark/carousel.shared.css.js.map +1 -0
  303. package/components/carousel/themes/indicator-container.d.ts +2 -0
  304. package/components/carousel/themes/indicator-container.js +28 -0
  305. package/components/carousel/themes/indicator-container.js.map +1 -0
  306. package/components/carousel/themes/light/carousel.bootstrap.css.d.ts +1 -0
  307. package/components/carousel/themes/light/carousel.bootstrap.css.js +3 -0
  308. package/components/carousel/themes/light/carousel.bootstrap.css.js.map +1 -0
  309. package/components/carousel/themes/light/carousel.fluent.css.d.ts +1 -0
  310. package/components/carousel/themes/light/carousel.fluent.css.js +3 -0
  311. package/components/carousel/themes/light/carousel.fluent.css.js.map +1 -0
  312. package/components/carousel/themes/light/carousel.indigo.css.d.ts +1 -0
  313. package/components/carousel/themes/light/carousel.indigo.css.js +3 -0
  314. package/components/carousel/themes/light/carousel.indigo.css.js.map +1 -0
  315. package/components/carousel/themes/light/carousel.material.css.d.ts +1 -0
  316. package/components/carousel/themes/light/carousel.material.css.js +3 -0
  317. package/components/carousel/themes/light/carousel.material.css.js.map +1 -0
  318. package/components/carousel/themes/light/carousel.shared.css.d.ts +1 -0
  319. package/components/carousel/themes/light/carousel.shared.css.js +3 -0
  320. package/components/carousel/themes/light/carousel.shared.css.js.map +1 -0
  321. package/components/carousel/themes/shared/carousel.bootstrap.css.d.ts +1 -0
  322. package/components/carousel/themes/shared/carousel.bootstrap.css.js +3 -0
  323. package/components/carousel/themes/shared/carousel.bootstrap.css.js.map +1 -0
  324. package/components/carousel/themes/shared/carousel.common.css.d.ts +1 -0
  325. package/components/carousel/themes/shared/carousel.common.css.js +3 -0
  326. package/components/carousel/themes/shared/carousel.common.css.js.map +1 -0
  327. package/components/carousel/themes/shared/carousel.fluent.css.d.ts +1 -0
  328. package/components/carousel/themes/shared/carousel.fluent.css.js +3 -0
  329. package/components/carousel/themes/shared/carousel.fluent.css.js.map +1 -0
  330. package/components/carousel/themes/shared/carousel.indigo.css.d.ts +1 -0
  331. package/components/carousel/themes/shared/carousel.indigo.css.js +3 -0
  332. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -0
  333. package/components/carousel/themes/shared/indicator-container/indicator-container.bootstrap.css.d.ts +1 -0
  334. package/components/carousel/themes/shared/indicator-container/indicator-container.bootstrap.css.js +3 -0
  335. package/components/carousel/themes/shared/indicator-container/indicator-container.bootstrap.css.js.map +1 -0
  336. package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.d.ts +1 -0
  337. package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.js +3 -0
  338. package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.js.map +1 -0
  339. package/components/carousel/themes/shared/indicator-container/indicator-container.fluent.css.d.ts +1 -0
  340. package/components/carousel/themes/shared/indicator-container/indicator-container.fluent.css.js +3 -0
  341. package/components/carousel/themes/shared/indicator-container/indicator-container.fluent.css.js.map +1 -0
  342. package/components/carousel/themes/shared/indicator-container/indicator-container.indigo.css.d.ts +1 -0
  343. package/components/carousel/themes/shared/indicator-container/indicator-container.indigo.css.js +3 -0
  344. package/components/carousel/themes/shared/indicator-container/indicator-container.indigo.css.js.map +1 -0
  345. package/components/checkbox/checkbox-base.d.ts +3 -4
  346. package/components/checkbox/checkbox-base.js +9 -12
  347. package/components/checkbox/checkbox-base.js.map +1 -1
  348. package/components/checkbox/checkbox.d.ts +10 -4
  349. package/components/checkbox/checkbox.js +15 -11
  350. package/components/checkbox/checkbox.js.map +1 -1
  351. package/components/checkbox/switch.js +7 -8
  352. package/components/checkbox/switch.js.map +1 -1
  353. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  354. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  355. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  356. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  357. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
  358. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
  359. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  360. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  361. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js +1 -1
  362. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js.map +1 -1
  363. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js +1 -1
  364. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js.map +1 -1
  365. package/components/checkbox/themes/dark/switch/switch.fluent.css.js +1 -1
  366. package/components/checkbox/themes/dark/switch/switch.fluent.css.js.map +1 -1
  367. package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
  368. package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
  369. package/components/checkbox/themes/dark/switch/switch.material.css.js +1 -1
  370. package/components/checkbox/themes/dark/switch/switch.material.css.js.map +1 -1
  371. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  372. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  373. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js +1 -1
  374. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
  375. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  376. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  377. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js +1 -1
  378. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js.map +1 -1
  379. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  380. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  381. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js +1 -1
  382. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js.map +1 -1
  383. package/components/checkbox/themes/light/switch/switch.fluent.css.js +1 -1
  384. package/components/checkbox/themes/light/switch/switch.fluent.css.js.map +1 -1
  385. package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
  386. package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
  387. package/components/checkbox/themes/light/switch/switch.material.css.js +1 -1
  388. package/components/checkbox/themes/light/switch/switch.material.css.js.map +1 -1
  389. package/components/checkbox/themes/light/switch/switch.shared.css.js +1 -1
  390. package/components/checkbox/themes/light/switch/switch.shared.css.js.map +1 -1
  391. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  392. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  393. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  394. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  395. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  396. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  397. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  398. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  399. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  400. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  401. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  402. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  403. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  404. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  405. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  406. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  407. package/components/checkbox/themes/shared/switch/switch.material.css.js +1 -1
  408. package/components/checkbox/themes/shared/switch/switch.material.css.js.map +1 -1
  409. package/components/checkbox/themes/switch.base.css.js +1 -1
  410. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  411. package/components/chip/chip.d.ts +2 -2
  412. package/components/chip/chip.js.map +1 -1
  413. package/components/chip/themes/chip.base.css.js +1 -1
  414. package/components/chip/themes/chip.base.css.js.map +1 -1
  415. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  416. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  417. package/components/chip/themes/dark/chip.fluent.css.js +1 -1
  418. package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
  419. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  420. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  421. package/components/chip/themes/dark/chip.material.css.js +1 -1
  422. package/components/chip/themes/dark/chip.material.css.js.map +1 -1
  423. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  424. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  425. package/components/chip/themes/light/chip.fluent.css.js +1 -1
  426. package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
  427. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  428. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  429. package/components/chip/themes/light/chip.material.css.js +1 -1
  430. package/components/chip/themes/light/chip.material.css.js.map +1 -1
  431. package/components/chip/themes/light/chip.shared.css.js +1 -1
  432. package/components/chip/themes/light/chip.shared.css.js.map +1 -1
  433. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  434. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  435. package/components/chip/themes/shared/chip.common.css.js +1 -1
  436. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  437. package/components/chip/themes/shared/chip.fluent.css.js +1 -1
  438. package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
  439. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  440. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  441. package/components/combo/combo.d.ts +7 -6
  442. package/components/combo/combo.js +25 -42
  443. package/components/combo/combo.js.map +1 -1
  444. package/components/combo/controllers/selection.js +7 -6
  445. package/components/combo/controllers/selection.js.map +1 -1
  446. package/components/combo/themes/combo-header.base.css.js +1 -1
  447. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  448. package/components/combo/themes/combo-item.base.css.js +1 -1
  449. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  450. package/components/combo/themes/combo.base.css.js +1 -1
  451. package/components/combo/themes/combo.base.css.js.map +1 -1
  452. package/components/combo/themes/dark/combo.bootstrap.css.js +1 -1
  453. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -1
  454. package/components/combo/themes/dark/combo.fluent.css.js +1 -1
  455. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -1
  456. package/components/combo/themes/dark/combo.indigo.css.js +1 -1
  457. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
  458. package/components/combo/themes/dark/combo.material.css.js +1 -1
  459. package/components/combo/themes/dark/combo.material.css.js.map +1 -1
  460. package/components/combo/themes/light/combo.bootstrap.css.js +1 -1
  461. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  462. package/components/combo/themes/light/combo.fluent.css.js +1 -1
  463. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  464. package/components/combo/themes/light/combo.indigo.css.js +1 -1
  465. package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
  466. package/components/combo/themes/light/combo.material.css.js +1 -1
  467. package/components/combo/themes/light/combo.material.css.js.map +1 -1
  468. package/components/combo/themes/light/combo.shared.css.js +1 -1
  469. package/components/combo/themes/light/combo.shared.css.js.map +1 -1
  470. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  471. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  472. package/components/combo/themes/shared/combo.common.css.js +1 -1
  473. package/components/combo/themes/shared/combo.common.css.js.map +1 -1
  474. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  475. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  476. package/components/combo/themes/shared/combo.indigo.css.js +1 -1
  477. package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
  478. package/components/combo/themes/shared/combo.material.css.js +1 -1
  479. package/components/combo/themes/shared/combo.material.css.js.map +1 -1
  480. package/components/combo/types.d.ts +1 -1
  481. package/components/combo/types.js.map +1 -1
  482. package/components/common/controllers/gestures.d.ts +76 -0
  483. package/components/common/controllers/gestures.js +154 -0
  484. package/components/common/controllers/gestures.js.map +1 -0
  485. package/components/common/controllers/key-bindings.d.ts +3 -3
  486. package/components/common/controllers/key-bindings.js +48 -49
  487. package/components/common/controllers/key-bindings.js.map +1 -1
  488. package/components/common/definitions/defineAllComponents.js +6 -0
  489. package/components/common/definitions/defineAllComponents.js.map +1 -1
  490. package/components/common/mixins/combo-box.d.ts +2 -2
  491. package/components/common/mixins/forms/associated-required.d.ts +13 -0
  492. package/components/common/mixins/forms/associated-required.js +47 -0
  493. package/components/common/mixins/forms/associated-required.js.map +1 -0
  494. package/components/common/mixins/forms/associated.d.ts +11 -0
  495. package/components/common/mixins/forms/associated.js +201 -0
  496. package/components/common/mixins/forms/associated.js.map +1 -0
  497. package/components/common/mixins/forms/types.d.ts +127 -0
  498. package/components/common/mixins/forms/types.js +2 -0
  499. package/components/common/mixins/forms/types.js.map +1 -0
  500. package/components/common/util.d.ts +8 -0
  501. package/components/common/util.js +21 -2
  502. package/components/common/util.js.map +1 -1
  503. package/components/common/validators.d.ts +0 -4
  504. package/components/common/validators.js +0 -5
  505. package/components/common/validators.js.map +1 -1
  506. package/components/date-picker/date-picker.d.ts +17 -8
  507. package/components/date-picker/date-picker.js +32 -30
  508. package/components/date-picker/date-picker.js.map +1 -1
  509. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
  510. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
  511. package/components/date-picker/themes/dark/date-picker.fluent.css.js +1 -1
  512. package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -1
  513. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  514. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  515. package/components/date-picker/themes/dark/date-picker.material.css.js +1 -1
  516. package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -1
  517. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  518. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  519. package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
  520. package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -1
  521. package/components/date-picker/themes/light/date-picker.fluent.css.js +1 -1
  522. package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -1
  523. package/components/date-picker/themes/light/date-picker.indigo.css.js +1 -1
  524. package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -1
  525. package/components/date-picker/themes/light/date-picker.material.css.js +1 -1
  526. package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -1
  527. package/components/date-picker/themes/light/date-picker.shared.css.js +1 -1
  528. package/components/date-picker/themes/light/date-picker.shared.css.js.map +1 -1
  529. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  530. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  531. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  532. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  533. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  534. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  535. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  536. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  537. package/components/date-time-input/date-time-input.d.ts +8 -3
  538. package/components/date-time-input/date-time-input.js +7 -7
  539. package/components/date-time-input/date-time-input.js.map +1 -1
  540. package/components/dialog/dialog.d.ts +2 -2
  541. package/components/dialog/dialog.js.map +1 -1
  542. package/components/dialog/themes/dark/dialog.bootstrap.css.js +1 -1
  543. package/components/dialog/themes/dark/dialog.bootstrap.css.js.map +1 -1
  544. package/components/dialog/themes/dark/dialog.fluent.css.js +1 -1
  545. package/components/dialog/themes/dark/dialog.fluent.css.js.map +1 -1
  546. package/components/dialog/themes/dark/dialog.indigo.css.js +1 -1
  547. package/components/dialog/themes/dark/dialog.indigo.css.js.map +1 -1
  548. package/components/dialog/themes/dark/dialog.material.css.js +1 -1
  549. package/components/dialog/themes/dark/dialog.material.css.js.map +1 -1
  550. package/components/dialog/themes/dark/dialog.shared.css.js +1 -1
  551. package/components/dialog/themes/dark/dialog.shared.css.js.map +1 -1
  552. package/components/dialog/themes/dialog.base.css.js +1 -1
  553. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  554. package/components/dialog/themes/light/dialog.bootstrap.css.js +1 -1
  555. package/components/dialog/themes/light/dialog.bootstrap.css.js.map +1 -1
  556. package/components/dialog/themes/light/dialog.fluent.css.js +1 -1
  557. package/components/dialog/themes/light/dialog.fluent.css.js.map +1 -1
  558. package/components/dialog/themes/light/dialog.indigo.css.js +1 -1
  559. package/components/dialog/themes/light/dialog.indigo.css.js.map +1 -1
  560. package/components/dialog/themes/light/dialog.shared.css.js +1 -1
  561. package/components/dialog/themes/light/dialog.shared.css.js.map +1 -1
  562. package/components/dialog/themes/shared/dialog.bootstrap.css.js +1 -1
  563. package/components/dialog/themes/shared/dialog.bootstrap.css.js.map +1 -1
  564. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  565. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  566. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  567. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  568. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  569. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  570. package/components/divider/themes/dark/divider.indigo.css.js +1 -1
  571. package/components/divider/themes/dark/divider.indigo.css.js.map +1 -1
  572. package/components/divider/themes/divider.base.css.js +1 -1
  573. package/components/divider/themes/divider.base.css.js.map +1 -1
  574. package/components/divider/themes/light/divider.shared.css.js +1 -1
  575. package/components/divider/themes/light/divider.shared.css.js.map +1 -1
  576. package/components/dropdown/dropdown.d.ts +2 -2
  577. package/components/dropdown/dropdown.js +4 -4
  578. package/components/dropdown/dropdown.js.map +1 -1
  579. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  580. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  581. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  582. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  583. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  584. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  585. package/components/dropdown/themes/dark/dropdown.material.css.js +1 -1
  586. package/components/dropdown/themes/dark/dropdown.material.css.js.map +1 -1
  587. package/components/dropdown/themes/dark/dropdown.shared.css.js +1 -1
  588. package/components/dropdown/themes/dark/dropdown.shared.css.js.map +1 -1
  589. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  590. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  591. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  592. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  593. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  594. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  595. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  596. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  597. package/components/dropdown/themes/header.js +0 -7
  598. package/components/dropdown/themes/header.js.map +1 -1
  599. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  600. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  601. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  602. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  603. package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
  604. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  605. package/components/dropdown/themes/light/dropdown.material.css.js +1 -1
  606. package/components/dropdown/themes/light/dropdown.material.css.js.map +1 -1
  607. package/components/dropdown/themes/light/dropdown.shared.css.js +1 -1
  608. package/components/dropdown/themes/light/dropdown.shared.css.js.map +1 -1
  609. package/components/dropdown/themes/shared/dropdown.common.css.js +1 -1
  610. package/components/dropdown/themes/shared/dropdown.common.css.js.map +1 -1
  611. package/components/dropdown/themes/shared/dropdown.fluent.css.js +1 -1
  612. package/components/dropdown/themes/shared/dropdown.fluent.css.js.map +1 -1
  613. package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
  614. package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
  615. package/components/dropdown/themes/shared/dropdown.material.css.js +1 -1
  616. package/components/dropdown/themes/shared/dropdown.material.css.js.map +1 -1
  617. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js +1 -1
  618. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js.map +1 -1
  619. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +1 -1
  620. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -1
  621. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js +1 -1
  622. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js.map +1 -1
  623. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js +1 -1
  624. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js.map +1 -1
  625. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  626. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  627. package/components/expansion-panel/expansion-panel.js +2 -2
  628. package/components/expansion-panel/expansion-panel.js.map +1 -1
  629. package/components/expansion-panel/themes/dark/expansion-panel.bootstrap.css.js +1 -1
  630. package/components/expansion-panel/themes/dark/expansion-panel.bootstrap.css.js.map +1 -1
  631. package/components/expansion-panel/themes/dark/expansion-panel.fluent.css.js +1 -1
  632. package/components/expansion-panel/themes/dark/expansion-panel.fluent.css.js.map +1 -1
  633. package/components/expansion-panel/themes/dark/expansion-panel.material.css.js +1 -1
  634. package/components/expansion-panel/themes/dark/expansion-panel.material.css.js.map +1 -1
  635. package/components/expansion-panel/themes/dark/expansion-panel.shared.css.js +1 -1
  636. package/components/expansion-panel/themes/dark/expansion-panel.shared.css.js.map +1 -1
  637. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  638. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  639. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +1 -1
  640. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -1
  641. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +1 -1
  642. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
  643. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +1 -1
  644. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
  645. package/components/expansion-panel/themes/light/expansion-panel.shared.css.js +1 -1
  646. package/components/expansion-panel/themes/light/expansion-panel.shared.css.js.map +1 -1
  647. package/components/expansion-panel/themes/shared/expansion-panel.bootstrap.css.js +1 -1
  648. package/components/expansion-panel/themes/shared/expansion-panel.bootstrap.css.js.map +1 -1
  649. package/components/expansion-panel/themes/shared/expansion-panel.common.css.js +1 -1
  650. package/components/expansion-panel/themes/shared/expansion-panel.common.css.js.map +1 -1
  651. package/components/expansion-panel/themes/shared/expansion-panel.fluent.css.js +1 -1
  652. package/components/expansion-panel/themes/shared/expansion-panel.fluent.css.js.map +1 -1
  653. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
  654. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
  655. package/components/icon/icon-references.js +56 -8
  656. package/components/icon/icon-references.js.map +1 -1
  657. package/components/icon/icon-state.broadcast.d.ts +3 -1
  658. package/components/icon/icon-state.broadcast.js +19 -3
  659. package/components/icon/icon-state.broadcast.js.map +1 -1
  660. package/components/icon/internal-icons-lib.js +69 -0
  661. package/components/icon/internal-icons-lib.js.map +1 -1
  662. package/components/icon/registry/default-map.d.ts +1 -1
  663. package/components/icon/themes/dark/icon.fluent.css.js +1 -1
  664. package/components/icon/themes/dark/icon.fluent.css.js.map +1 -1
  665. package/components/icon/themes/dark/icon.indigo.css.js +1 -1
  666. package/components/icon/themes/dark/icon.indigo.css.js.map +1 -1
  667. package/components/icon/themes/icon.base.css.js +1 -1
  668. package/components/icon/themes/icon.base.css.js.map +1 -1
  669. package/components/icon/themes/light/icon.indigo.css.js +1 -1
  670. package/components/icon/themes/light/icon.indigo.css.js.map +1 -1
  671. package/components/input/input-base.d.ts +4 -3
  672. package/components/input/input-base.js +14 -14
  673. package/components/input/input-base.js.map +1 -1
  674. package/components/input/input.d.ts +10 -2
  675. package/components/input/input.js +9 -13
  676. package/components/input/input.js.map +1 -1
  677. package/components/input/themes/dark/input.bootstrap.css.js +1 -1
  678. package/components/input/themes/dark/input.bootstrap.css.js.map +1 -1
  679. package/components/input/themes/dark/input.fluent.css.js +1 -1
  680. package/components/input/themes/dark/input.fluent.css.js.map +1 -1
  681. package/components/input/themes/dark/input.indigo.css.js +1 -1
  682. package/components/input/themes/dark/input.indigo.css.js.map +1 -1
  683. package/components/input/themes/dark/input.material.css.js +1 -1
  684. package/components/input/themes/dark/input.material.css.js.map +1 -1
  685. package/components/input/themes/input.base.css.js +1 -1
  686. package/components/input/themes/input.base.css.js.map +1 -1
  687. package/components/input/themes/light/input.bootstrap.css.js +1 -1
  688. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  689. package/components/input/themes/light/input.fluent.css.js +1 -1
  690. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  691. package/components/input/themes/light/input.indigo.css.js +1 -1
  692. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  693. package/components/input/themes/light/input.material.css.js +1 -1
  694. package/components/input/themes/light/input.material.css.js.map +1 -1
  695. package/components/input/themes/light/input.shared.css.js +1 -1
  696. package/components/input/themes/light/input.shared.css.js.map +1 -1
  697. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  698. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  699. package/components/input/themes/shared/input.common.css.js +1 -1
  700. package/components/input/themes/shared/input.common.css.js.map +1 -1
  701. package/components/input/themes/shared/input.fluent.css.js +1 -1
  702. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  703. package/components/input/themes/shared/input.indigo.css.js +1 -1
  704. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  705. package/components/input/themes/shared/input.material.css.js +1 -1
  706. package/components/input/themes/shared/input.material.css.js.map +1 -1
  707. package/components/input/validators.js +2 -2
  708. package/components/input/validators.js.map +1 -1
  709. package/components/list/themes/container.base.css.js +1 -1
  710. package/components/list/themes/container.base.css.js.map +1 -1
  711. package/components/list/themes/dark/container/list.bootstrap.css.js +1 -1
  712. package/components/list/themes/dark/container/list.bootstrap.css.js.map +1 -1
  713. package/components/list/themes/dark/container/list.fluent.css.js +1 -1
  714. package/components/list/themes/dark/container/list.fluent.css.js.map +1 -1
  715. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  716. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  717. package/components/list/themes/dark/container/list.material.css.js +1 -1
  718. package/components/list/themes/dark/container/list.material.css.js.map +1 -1
  719. package/components/list/themes/dark/container/list.shared.css.js +1 -1
  720. package/components/list/themes/dark/container/list.shared.css.js.map +1 -1
  721. package/components/list/themes/dark/header/list-header.bootstrap.css.js +1 -1
  722. package/components/list/themes/dark/header/list-header.bootstrap.css.js.map +1 -1
  723. package/components/list/themes/dark/header/list-header.fluent.css.js +1 -1
  724. package/components/list/themes/dark/header/list-header.fluent.css.js.map +1 -1
  725. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  726. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  727. package/components/list/themes/dark/header/list-header.material.css.js +1 -1
  728. package/components/list/themes/dark/header/list-header.material.css.js.map +1 -1
  729. package/components/list/themes/dark/item/list-item.bootstrap.css.js +1 -1
  730. package/components/list/themes/dark/item/list-item.bootstrap.css.js.map +1 -1
  731. package/components/list/themes/dark/item/list-item.fluent.css.js +1 -1
  732. package/components/list/themes/dark/item/list-item.fluent.css.js.map +1 -1
  733. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  734. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  735. package/components/list/themes/dark/item/list-item.material.css.js +1 -1
  736. package/components/list/themes/dark/item/list-item.material.css.js.map +1 -1
  737. package/components/list/themes/header.base.css.js +1 -1
  738. package/components/list/themes/header.base.css.js.map +1 -1
  739. package/components/list/themes/item.base.css.js +1 -1
  740. package/components/list/themes/item.base.css.js.map +1 -1
  741. package/components/list/themes/light/container/list.bootstrap.css.js +1 -1
  742. package/components/list/themes/light/container/list.bootstrap.css.js.map +1 -1
  743. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  744. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  745. package/components/list/themes/light/container/list.shared.css.js +1 -1
  746. package/components/list/themes/light/container/list.shared.css.js.map +1 -1
  747. package/components/list/themes/light/header/list-header.bootstrap.css.js +1 -1
  748. package/components/list/themes/light/header/list-header.bootstrap.css.js.map +1 -1
  749. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  750. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  751. package/components/list/themes/light/item/list-item.bootstrap.css.js +1 -1
  752. package/components/list/themes/light/item/list-item.bootstrap.css.js.map +1 -1
  753. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  754. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  755. package/components/list/themes/shared/item/list-item.common.css.js +1 -1
  756. package/components/list/themes/shared/item/list-item.common.css.js.map +1 -1
  757. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  758. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  759. package/components/mask-input/mask-input.d.ts +5 -2
  760. package/components/mask-input/mask-input.js +10 -13
  761. package/components/mask-input/mask-input.js.map +1 -1
  762. package/components/nav-drawer/nav-drawer.js +2 -2
  763. package/components/nav-drawer/nav-drawer.js.map +1 -1
  764. package/components/nav-drawer/themes/container.base.css.js +1 -1
  765. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  766. package/components/nav-drawer/themes/dark/container/nav-drawer.bootstrap.css.js +1 -1
  767. package/components/nav-drawer/themes/dark/container/nav-drawer.bootstrap.css.js.map +1 -1
  768. package/components/nav-drawer/themes/dark/container/nav-drawer.fluent.css.js +1 -1
  769. package/components/nav-drawer/themes/dark/container/nav-drawer.fluent.css.js.map +1 -1
  770. package/components/nav-drawer/themes/dark/container/nav-drawer.indigo.css.js +1 -1
  771. package/components/nav-drawer/themes/dark/container/nav-drawer.indigo.css.js.map +1 -1
  772. package/components/nav-drawer/themes/dark/container/nav-drawer.material.css.js +1 -1
  773. package/components/nav-drawer/themes/dark/container/nav-drawer.material.css.js.map +1 -1
  774. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  775. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  776. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  777. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  778. package/components/nav-drawer/themes/item.base.css.js +1 -1
  779. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  780. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  781. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  782. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  783. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  784. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  785. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  786. package/components/nav-drawer/themes/light/container/nav-drawer.material.css.js +1 -1
  787. package/components/nav-drawer/themes/light/container/nav-drawer.material.css.js.map +1 -1
  788. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  789. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  790. package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js +1 -1
  791. package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js.map +1 -1
  792. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js +1 -1
  793. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js.map +1 -1
  794. package/components/nav-drawer/themes/shared/item/item.indigo.css.js +1 -1
  795. package/components/nav-drawer/themes/shared/item/item.indigo.css.js.map +1 -1
  796. package/components/navbar/themes/dark/navbar.bootstrap.css.js +1 -1
  797. package/components/navbar/themes/dark/navbar.bootstrap.css.js.map +1 -1
  798. package/components/navbar/themes/dark/navbar.fluent.css.js +1 -1
  799. package/components/navbar/themes/dark/navbar.fluent.css.js.map +1 -1
  800. package/components/navbar/themes/dark/navbar.indigo.css.js +1 -1
  801. package/components/navbar/themes/dark/navbar.indigo.css.js.map +1 -1
  802. package/components/navbar/themes/dark/navbar.material.css.js +1 -1
  803. package/components/navbar/themes/dark/navbar.material.css.js.map +1 -1
  804. package/components/navbar/themes/light/navbar.bootstrap.css.js +1 -1
  805. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  806. package/components/navbar/themes/light/navbar.fluent.css.js +1 -1
  807. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  808. package/components/navbar/themes/light/navbar.indigo.css.js +1 -1
  809. package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
  810. package/components/navbar/themes/light/navbar.shared.css.js +1 -1
  811. package/components/navbar/themes/light/navbar.shared.css.js.map +1 -1
  812. package/components/navbar/themes/navbar.base.css.js +1 -1
  813. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  814. package/components/navbar/themes/shared/navbar.bootstrap.css.js +1 -1
  815. package/components/navbar/themes/shared/navbar.bootstrap.css.js.map +1 -1
  816. package/components/navbar/themes/shared/navbar.common.css.js +1 -1
  817. package/components/navbar/themes/shared/navbar.common.css.js.map +1 -1
  818. package/components/navbar/themes/shared/navbar.indigo.css.js +1 -1
  819. package/components/navbar/themes/shared/navbar.indigo.css.js.map +1 -1
  820. package/components/popover/popover.js +3 -3
  821. package/components/popover/popover.js.map +1 -1
  822. package/components/popover/themes/light/popover.base.css.js +1 -1
  823. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  824. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  825. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  826. package/components/progress/themes/circular/dark/circular.progress.bootstrap.css.js +1 -1
  827. package/components/progress/themes/circular/dark/circular.progress.bootstrap.css.js.map +1 -1
  828. package/components/progress/themes/circular/dark/circular.progress.fluent.css.js +1 -1
  829. package/components/progress/themes/circular/dark/circular.progress.fluent.css.js.map +1 -1
  830. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js +1 -1
  831. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js.map +1 -1
  832. package/components/progress/themes/circular/dark/circular.progress.material.css.js +1 -1
  833. package/components/progress/themes/circular/dark/circular.progress.material.css.js.map +1 -1
  834. package/components/progress/themes/circular/dark/circular.progress.shared.css.js +1 -1
  835. package/components/progress/themes/circular/dark/circular.progress.shared.css.js.map +1 -1
  836. package/components/progress/themes/circular/light/circular.progress.indigo.css.js +1 -1
  837. package/components/progress/themes/circular/light/circular.progress.indigo.css.js.map +1 -1
  838. package/components/progress/themes/circular/light/circular.progress.shared.css.js +1 -1
  839. package/components/progress/themes/circular/light/circular.progress.shared.css.js.map +1 -1
  840. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js +1 -1
  841. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js.map +1 -1
  842. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  843. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  844. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js +1 -1
  845. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js.map +1 -1
  846. package/components/progress/themes/linear/dark/linear.progress.fluent.css.js +1 -1
  847. package/components/progress/themes/linear/dark/linear.progress.fluent.css.js.map +1 -1
  848. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js +1 -1
  849. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js.map +1 -1
  850. package/components/progress/themes/linear/dark/linear.progress.material.css.js +1 -1
  851. package/components/progress/themes/linear/dark/linear.progress.material.css.js.map +1 -1
  852. package/components/progress/themes/linear/dark/linear.progress.shared.css.js +1 -1
  853. package/components/progress/themes/linear/dark/linear.progress.shared.css.js.map +1 -1
  854. package/components/progress/themes/linear/light/linear.progress.bootstrap.css.js +1 -1
  855. package/components/progress/themes/linear/light/linear.progress.bootstrap.css.js.map +1 -1
  856. package/components/progress/themes/linear/light/linear.progress.indigo.css.js +1 -1
  857. package/components/progress/themes/linear/light/linear.progress.indigo.css.js.map +1 -1
  858. package/components/progress/themes/linear/light/linear.progress.shared.css.js +1 -1
  859. package/components/progress/themes/linear/light/linear.progress.shared.css.js.map +1 -1
  860. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  861. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  862. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js +1 -1
  863. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js.map +1 -1
  864. package/components/progress/themes/linear/shared/linear.progress.common.css.js +1 -1
  865. package/components/progress/themes/linear/shared/linear.progress.common.css.js.map +1 -1
  866. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  867. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  868. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  869. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  870. package/components/radio/radio.d.ts +12 -8
  871. package/components/radio/radio.js +38 -44
  872. package/components/radio/radio.js.map +1 -1
  873. package/components/radio/themes/dark/radio.bootstrap.css.js +1 -1
  874. package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -1
  875. package/components/radio/themes/dark/radio.fluent.css.js +1 -1
  876. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  877. package/components/radio/themes/dark/radio.indigo.css.js +1 -1
  878. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  879. package/components/radio/themes/dark/radio.material.css.js +1 -1
  880. package/components/radio/themes/dark/radio.material.css.js.map +1 -1
  881. package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
  882. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  883. package/components/radio/themes/light/radio.fluent.css.js +1 -1
  884. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  885. package/components/radio/themes/light/radio.indigo.css.js +1 -1
  886. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  887. package/components/radio/themes/light/radio.material.css.js +1 -1
  888. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  889. package/components/radio/themes/light/radio.shared.css.js +1 -1
  890. package/components/radio/themes/light/radio.shared.css.js.map +1 -1
  891. package/components/radio/themes/radio.base.css.js +1 -1
  892. package/components/radio/themes/radio.base.css.js.map +1 -1
  893. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  894. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  895. package/components/radio/themes/shared/radio.fluent.css.js +1 -1
  896. package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
  897. package/components/radio/themes/shared/radio.indigo.css.js +1 -1
  898. package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
  899. package/components/radio/themes/shared/radio.material.css.js +1 -1
  900. package/components/radio/themes/shared/radio.material.css.js.map +1 -1
  901. package/components/radio-group/radio-group.base.css.js +1 -1
  902. package/components/radio-group/radio-group.base.css.js.map +1 -1
  903. package/components/radio-group/radio-group.d.ts +2 -0
  904. package/components/radio-group/radio-group.fluent.css.js +1 -1
  905. package/components/radio-group/radio-group.fluent.css.js.map +1 -1
  906. package/components/radio-group/radio-group.indigo.css.js +1 -1
  907. package/components/radio-group/radio-group.indigo.css.js.map +1 -1
  908. package/components/radio-group/radio-group.js +12 -1
  909. package/components/radio-group/radio-group.js.map +1 -1
  910. package/components/radio-group/radio-group.material.css.js +1 -1
  911. package/components/radio-group/radio-group.material.css.js.map +1 -1
  912. package/components/rating/rating.d.ts +5 -4
  913. package/components/rating/rating.js +28 -27
  914. package/components/rating/rating.js.map +1 -1
  915. package/components/rating/themes/dark/rating.fluent.css.js +1 -1
  916. package/components/rating/themes/dark/rating.fluent.css.js.map +1 -1
  917. package/components/rating/themes/dark/rating.indigo.css.js +1 -1
  918. package/components/rating/themes/dark/rating.indigo.css.js.map +1 -1
  919. package/components/rating/themes/dark/rating.material.css.js +1 -1
  920. package/components/rating/themes/dark/rating.material.css.js.map +1 -1
  921. package/components/rating/themes/light/rating.fluent.css.js +1 -1
  922. package/components/rating/themes/light/rating.fluent.css.js.map +1 -1
  923. package/components/rating/themes/light/rating.indigo.css.js +1 -1
  924. package/components/rating/themes/light/rating.indigo.css.js.map +1 -1
  925. package/components/rating/themes/light/rating.material.css.js +1 -1
  926. package/components/rating/themes/light/rating.material.css.js.map +1 -1
  927. package/components/rating/themes/light/rating.shared.css.js +1 -1
  928. package/components/rating/themes/light/rating.shared.css.js.map +1 -1
  929. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  930. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  931. package/components/rating/themes/rating.base.css.js +1 -1
  932. package/components/rating/themes/rating.base.css.js.map +1 -1
  933. package/components/rating/themes/shared/rating.indigo.css.js +1 -1
  934. package/components/rating/themes/shared/rating.indigo.css.js.map +1 -1
  935. package/components/ripple/ripple.js +1 -1
  936. package/components/ripple/ripple.js.map +1 -1
  937. package/components/ripple/ripple.material.css.js +1 -1
  938. package/components/ripple/ripple.material.css.js.map +1 -1
  939. package/components/select/select.d.ts +12 -10
  940. package/components/select/select.js +14 -25
  941. package/components/select/select.js.map +1 -1
  942. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  943. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  944. package/components/select/themes/dark/select.fluent.css.js +1 -1
  945. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  946. package/components/select/themes/dark/select.indigo.css.js +1 -1
  947. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  948. package/components/select/themes/dark/select.material.css.js +1 -1
  949. package/components/select/themes/dark/select.material.css.js.map +1 -1
  950. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  951. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  952. package/components/select/themes/light/select.fluent.css.js +1 -1
  953. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  954. package/components/select/themes/light/select.indigo.css.js +1 -1
  955. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  956. package/components/select/themes/light/select.material.css.js +1 -1
  957. package/components/select/themes/light/select.material.css.js.map +1 -1
  958. package/components/select/themes/light/select.shared.css.js +1 -1
  959. package/components/select/themes/light/select.shared.css.js.map +1 -1
  960. package/components/select/themes/select.base.css.js +1 -1
  961. package/components/select/themes/select.base.css.js.map +1 -1
  962. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  963. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  964. package/components/select/themes/shared/select.common.css.js +1 -1
  965. package/components/select/themes/shared/select.common.css.js.map +1 -1
  966. package/components/select/themes/shared/select.fluent.css.js +1 -1
  967. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  968. package/components/select/themes/shared/select.indigo.css.js +1 -1
  969. package/components/select/themes/shared/select.indigo.css.js.map +1 -1
  970. package/components/select/themes/shared/select.material.css.js +1 -1
  971. package/components/select/themes/shared/select.material.css.js.map +1 -1
  972. package/components/slider/range-slider.d.ts +2 -2
  973. package/components/slider/range-slider.js.map +1 -1
  974. package/components/slider/slider.d.ts +3 -2
  975. package/components/slider/slider.js +5 -2
  976. package/components/slider/slider.js.map +1 -1
  977. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  978. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  979. package/components/slider/themes/dark/slider.fluent.css.js +1 -1
  980. package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
  981. package/components/slider/themes/dark/slider.indigo.css.js +1 -1
  982. package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
  983. package/components/slider/themes/dark/slider.material.css.js +1 -1
  984. package/components/slider/themes/dark/slider.material.css.js.map +1 -1
  985. package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
  986. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  987. package/components/slider/themes/light/slider.fluent.css.js +1 -1
  988. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  989. package/components/slider/themes/light/slider.indigo.css.js +1 -1
  990. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  991. package/components/slider/themes/light/slider.material.css.js +1 -1
  992. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  993. package/components/slider/themes/light/slider.shared.css.js +1 -1
  994. package/components/slider/themes/light/slider.shared.css.js.map +1 -1
  995. package/components/slider/themes/shared/slider.bootstrap.css.js +1 -1
  996. package/components/slider/themes/shared/slider.bootstrap.css.js.map +1 -1
  997. package/components/slider/themes/shared/slider.fluent.css.js +1 -1
  998. package/components/slider/themes/shared/slider.fluent.css.js.map +1 -1
  999. package/components/slider/themes/shared/slider.indigo.css.js +1 -1
  1000. package/components/slider/themes/shared/slider.indigo.css.js.map +1 -1
  1001. package/components/slider/themes/shared/slider.material.css.js +1 -1
  1002. package/components/slider/themes/shared/slider.material.css.js.map +1 -1
  1003. package/components/slider/themes/slider.base.css.js +1 -1
  1004. package/components/slider/themes/slider.base.css.js.map +1 -1
  1005. package/components/snackbar/snackbar.d.ts +2 -2
  1006. package/components/snackbar/snackbar.js.map +1 -1
  1007. package/components/snackbar/themes/dark/snackbar.bootstrap.css.js +1 -1
  1008. package/components/snackbar/themes/dark/snackbar.bootstrap.css.js.map +1 -1
  1009. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  1010. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  1011. package/components/snackbar/themes/light/snackbar.bootstrap.css.js +1 -1
  1012. package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -1
  1013. package/components/snackbar/themes/light/snackbar.indigo.css.js +1 -1
  1014. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
  1015. package/components/snackbar/themes/light/snackbar.shared.css.js +1 -1
  1016. package/components/snackbar/themes/light/snackbar.shared.css.js.map +1 -1
  1017. package/components/snackbar/themes/shared/snackbar.common.css.js +1 -1
  1018. package/components/snackbar/themes/shared/snackbar.common.css.js.map +1 -1
  1019. package/components/snackbar/themes/shared/snackbar.indigo.css.js +1 -1
  1020. package/components/snackbar/themes/shared/snackbar.indigo.css.js.map +1 -1
  1021. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  1022. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  1023. package/components/stepper/stepper.common.d.ts +1 -1
  1024. package/components/stepper/stepper.common.js.map +1 -1
  1025. package/components/stepper/stepper.d.ts +2 -2
  1026. package/components/stepper/stepper.js.map +1 -1
  1027. package/components/stepper/themes/step/dark/step.bootstrap.css.js +1 -1
  1028. package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -1
  1029. package/components/stepper/themes/step/dark/step.fluent.css.js +1 -1
  1030. package/components/stepper/themes/step/dark/step.fluent.css.js.map +1 -1
  1031. package/components/stepper/themes/step/dark/step.indigo.css.js +1 -1
  1032. package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -1
  1033. package/components/stepper/themes/step/dark/step.material.css.js +1 -1
  1034. package/components/stepper/themes/step/dark/step.material.css.js.map +1 -1
  1035. package/components/stepper/themes/step/dark/step.shared.css.js +1 -1
  1036. package/components/stepper/themes/step/dark/step.shared.css.js.map +1 -1
  1037. package/components/stepper/themes/step/light/step.bootstrap.css.js +1 -1
  1038. package/components/stepper/themes/step/light/step.bootstrap.css.js.map +1 -1
  1039. package/components/stepper/themes/step/light/step.fluent.css.js +1 -1
  1040. package/components/stepper/themes/step/light/step.fluent.css.js.map +1 -1
  1041. package/components/stepper/themes/step/light/step.indigo.css.js +1 -1
  1042. package/components/stepper/themes/step/light/step.indigo.css.js.map +1 -1
  1043. package/components/stepper/themes/step/light/step.material.css.js +1 -1
  1044. package/components/stepper/themes/step/light/step.material.css.js.map +1 -1
  1045. package/components/stepper/themes/step/light/step.shared.css.js +1 -1
  1046. package/components/stepper/themes/step/light/step.shared.css.js.map +1 -1
  1047. package/components/stepper/themes/step/shared/step.bootstrap.css.js +1 -1
  1048. package/components/stepper/themes/step/shared/step.bootstrap.css.js.map +1 -1
  1049. package/components/stepper/themes/step/shared/step.common.css.js +1 -1
  1050. package/components/stepper/themes/step/shared/step.common.css.js.map +1 -1
  1051. package/components/stepper/themes/step/shared/step.fluent.css.js +1 -1
  1052. package/components/stepper/themes/step/shared/step.fluent.css.js.map +1 -1
  1053. package/components/stepper/themes/step/shared/step.indigo.css.js +1 -1
  1054. package/components/stepper/themes/step/shared/step.indigo.css.js.map +1 -1
  1055. package/components/stepper/themes/step/step.base.css.js +1 -1
  1056. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  1057. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  1058. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  1059. package/components/tabs/tabs.d.ts +2 -2
  1060. package/components/tabs/tabs.js +1 -0
  1061. package/components/tabs/tabs.js.map +1 -1
  1062. package/components/tabs/themes/dark/tab.bootstrap.css.js +1 -1
  1063. package/components/tabs/themes/dark/tab.bootstrap.css.js.map +1 -1
  1064. package/components/tabs/themes/dark/tab.fluent.css.js +1 -1
  1065. package/components/tabs/themes/dark/tab.fluent.css.js.map +1 -1
  1066. package/components/tabs/themes/dark/tab.indigo.css.js +1 -1
  1067. package/components/tabs/themes/dark/tab.indigo.css.js.map +1 -1
  1068. package/components/tabs/themes/dark/tab.material.css.js +1 -1
  1069. package/components/tabs/themes/dark/tab.material.css.js.map +1 -1
  1070. package/components/tabs/themes/dark/tab.shared.css.js +1 -1
  1071. package/components/tabs/themes/dark/tab.shared.css.js.map +1 -1
  1072. package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
  1073. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  1074. package/components/tabs/themes/light/tab.fluent.css.js +1 -1
  1075. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  1076. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  1077. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  1078. package/components/tabs/themes/light/tab.material.css.js +1 -1
  1079. package/components/tabs/themes/light/tab.material.css.js.map +1 -1
  1080. package/components/tabs/themes/light/tab.shared.css.js +1 -1
  1081. package/components/tabs/themes/light/tab.shared.css.js.map +1 -1
  1082. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js +1 -1
  1083. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js.map +1 -1
  1084. package/components/tabs/themes/shared/tab/tab.indigo.css.d.ts +1 -0
  1085. package/components/tabs/themes/shared/tab/tab.indigo.css.js +3 -0
  1086. package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -0
  1087. package/components/tabs/themes/shared/tabs/tabs.indigo.css.d.ts +1 -0
  1088. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +3 -0
  1089. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -0
  1090. package/components/tabs/themes/tab-panel.base.css.js +1 -1
  1091. package/components/tabs/themes/tab-panel.base.css.js.map +1 -1
  1092. package/components/tabs/themes/tab-themes.js +7 -0
  1093. package/components/tabs/themes/tab-themes.js.map +1 -1
  1094. package/components/tabs/themes/tab.base.css.js +1 -1
  1095. package/components/tabs/themes/tab.base.css.js.map +1 -1
  1096. package/components/tabs/themes/tabs-themes.js +3 -2
  1097. package/components/tabs/themes/tabs-themes.js.map +1 -1
  1098. package/components/tabs/themes/tabs.base.css.js +1 -1
  1099. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  1100. package/components/textarea/textarea.d.ts +23 -19
  1101. package/components/textarea/textarea.js +63 -76
  1102. package/components/textarea/textarea.js.map +1 -1
  1103. package/components/textarea/themes/dark/textarea.bootstrap.css.js +1 -1
  1104. package/components/textarea/themes/dark/textarea.bootstrap.css.js.map +1 -1
  1105. package/components/textarea/themes/dark/textarea.fluent.css.js +1 -1
  1106. package/components/textarea/themes/dark/textarea.fluent.css.js.map +1 -1
  1107. package/components/textarea/themes/dark/textarea.indigo.css.js +1 -1
  1108. package/components/textarea/themes/dark/textarea.indigo.css.js.map +1 -1
  1109. package/components/textarea/themes/dark/textarea.material.css.js +1 -1
  1110. package/components/textarea/themes/dark/textarea.material.css.js.map +1 -1
  1111. package/components/textarea/themes/light/textarea.bootstrap.css.js +1 -1
  1112. package/components/textarea/themes/light/textarea.bootstrap.css.js.map +1 -1
  1113. package/components/textarea/themes/light/textarea.fluent.css.js +1 -1
  1114. package/components/textarea/themes/light/textarea.fluent.css.js.map +1 -1
  1115. package/components/textarea/themes/light/textarea.indigo.css.js +1 -1
  1116. package/components/textarea/themes/light/textarea.indigo.css.js.map +1 -1
  1117. package/components/textarea/themes/light/textarea.material.css.js +1 -1
  1118. package/components/textarea/themes/light/textarea.material.css.js.map +1 -1
  1119. package/components/textarea/themes/light/textarea.shared.css.js +1 -1
  1120. package/components/textarea/themes/light/textarea.shared.css.js.map +1 -1
  1121. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  1122. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  1123. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  1124. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  1125. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  1126. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  1127. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  1128. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  1129. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  1130. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  1131. package/components/textarea/themes/textarea.base.css.js +1 -1
  1132. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  1133. package/components/toast/themes/dark/toast.bootstrap.css.js +1 -1
  1134. package/components/toast/themes/dark/toast.bootstrap.css.js.map +1 -1
  1135. package/components/toast/themes/dark/toast.indigo.css.js +1 -1
  1136. package/components/toast/themes/dark/toast.indigo.css.js.map +1 -1
  1137. package/components/toast/themes/dark/toast.shared.css.js +1 -1
  1138. package/components/toast/themes/dark/toast.shared.css.js.map +1 -1
  1139. package/components/toast/themes/light/toast.bootstrap.css.js +1 -1
  1140. package/components/toast/themes/light/toast.bootstrap.css.js.map +1 -1
  1141. package/components/toast/themes/light/toast.indigo.css.js +1 -1
  1142. package/components/toast/themes/light/toast.indigo.css.js.map +1 -1
  1143. package/components/toast/themes/light/toast.shared.css.js +1 -1
  1144. package/components/toast/themes/light/toast.shared.css.js.map +1 -1
  1145. package/components/toast/themes/shared/toast.common.css.js +1 -1
  1146. package/components/toast/themes/shared/toast.common.css.js.map +1 -1
  1147. package/components/toast/themes/toast.base.css.js +1 -1
  1148. package/components/toast/themes/toast.base.css.js.map +1 -1
  1149. package/components/tree/themes/container.base.css.js +1 -1
  1150. package/components/tree/themes/container.base.css.js.map +1 -1
  1151. package/components/tree/themes/dark/container.bootstrap.css.js +1 -1
  1152. package/components/tree/themes/dark/container.bootstrap.css.js.map +1 -1
  1153. package/components/tree/themes/dark/container.fluent.css.js +1 -1
  1154. package/components/tree/themes/dark/container.fluent.css.js.map +1 -1
  1155. package/components/tree/themes/dark/container.indigo.css.js +1 -1
  1156. package/components/tree/themes/dark/container.indigo.css.js.map +1 -1
  1157. package/components/tree/themes/dark/container.material.css.js +1 -1
  1158. package/components/tree/themes/dark/container.material.css.js.map +1 -1
  1159. package/components/tree/themes/dark/container.shared.css.js +1 -1
  1160. package/components/tree/themes/dark/container.shared.css.js.map +1 -1
  1161. package/components/tree/themes/item.base.css.js +1 -1
  1162. package/components/tree/themes/item.base.css.js.map +1 -1
  1163. package/components/tree/themes/light/container.bootstrap.css.js +1 -1
  1164. package/components/tree/themes/light/container.bootstrap.css.js.map +1 -1
  1165. package/components/tree/themes/light/container.fluent.css.js +1 -1
  1166. package/components/tree/themes/light/container.fluent.css.js.map +1 -1
  1167. package/components/tree/themes/light/container.indigo.css.js +1 -1
  1168. package/components/tree/themes/light/container.indigo.css.js.map +1 -1
  1169. package/components/tree/themes/light/container.material.css.js +1 -1
  1170. package/components/tree/themes/light/container.material.css.js.map +1 -1
  1171. package/components/tree/themes/light/container.shared.css.js +1 -1
  1172. package/components/tree/themes/light/container.shared.css.js.map +1 -1
  1173. package/components/tree/themes/shared/item.common.css.js +1 -1
  1174. package/components/tree/themes/shared/item.common.css.js.map +1 -1
  1175. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  1176. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  1177. package/components/tree/themes/shared/item.material.css.js +1 -1
  1178. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  1179. package/components/tree/tree.common.d.ts +1 -1
  1180. package/components/tree/tree.common.js.map +1 -1
  1181. package/components/tree/tree.d.ts +3 -3
  1182. package/components/tree/tree.js.map +1 -1
  1183. package/components/tree/tree.selection.js +4 -5
  1184. package/components/tree/tree.selection.js.map +1 -1
  1185. package/components/validation-container/themes/dark/validator.bootstrap.css.d.ts +1 -0
  1186. package/components/validation-container/themes/dark/validator.bootstrap.css.js +3 -0
  1187. package/components/validation-container/themes/dark/validator.bootstrap.css.js.map +1 -0
  1188. package/components/validation-container/themes/dark/validator.fluent.css.d.ts +1 -0
  1189. package/components/validation-container/themes/dark/validator.fluent.css.js +3 -0
  1190. package/components/validation-container/themes/dark/validator.fluent.css.js.map +1 -0
  1191. package/components/validation-container/themes/dark/validator.indigo.css.d.ts +1 -0
  1192. package/components/validation-container/themes/dark/validator.indigo.css.js +3 -0
  1193. package/components/validation-container/themes/dark/validator.indigo.css.js.map +1 -0
  1194. package/components/validation-container/themes/dark/validator.material.css.d.ts +1 -0
  1195. package/components/validation-container/themes/dark/validator.material.css.js +3 -0
  1196. package/components/validation-container/themes/dark/validator.material.css.js.map +1 -0
  1197. package/components/validation-container/themes/light/validator.bootstrap.css.d.ts +1 -0
  1198. package/components/validation-container/themes/light/validator.bootstrap.css.js +3 -0
  1199. package/components/validation-container/themes/light/validator.bootstrap.css.js.map +1 -0
  1200. package/components/validation-container/themes/light/validator.fluent.css.d.ts +1 -0
  1201. package/components/validation-container/themes/light/validator.fluent.css.js +3 -0
  1202. package/components/validation-container/themes/light/validator.fluent.css.js.map +1 -0
  1203. package/components/validation-container/themes/light/validator.indigo.css.d.ts +1 -0
  1204. package/components/validation-container/themes/light/validator.indigo.css.js +3 -0
  1205. package/components/validation-container/themes/light/validator.indigo.css.js.map +1 -0
  1206. package/components/validation-container/themes/light/validator.material.css.d.ts +1 -0
  1207. package/components/validation-container/themes/light/validator.material.css.js +3 -0
  1208. package/components/validation-container/themes/light/validator.material.css.js.map +1 -0
  1209. package/components/validation-container/themes/light/validator.shared.css.d.ts +1 -0
  1210. package/components/validation-container/themes/light/validator.shared.css.js +3 -0
  1211. package/components/validation-container/themes/light/validator.shared.css.js.map +1 -0
  1212. package/components/validation-container/themes/shared/validator.common.css.d.ts +1 -0
  1213. package/components/validation-container/themes/shared/validator.common.css.js +3 -0
  1214. package/components/validation-container/themes/shared/validator.common.css.js.map +1 -0
  1215. package/components/validation-container/themes/themes.d.ts +2 -0
  1216. package/components/validation-container/themes/themes.js +46 -0
  1217. package/components/validation-container/themes/themes.js.map +1 -0
  1218. package/components/validation-container/themes/validator.base.css.d.ts +1 -0
  1219. package/components/validation-container/themes/validator.base.css.js +3 -0
  1220. package/components/validation-container/themes/validator.base.css.js.map +1 -0
  1221. package/components/validation-container/validation-container.d.ts +42 -0
  1222. package/components/validation-container/validation-container.js +160 -0
  1223. package/components/validation-container/validation-container.js.map +1 -0
  1224. package/custom-elements.json +9641 -3411
  1225. package/igniteui-webcomponents.css-data.json +1 -1
  1226. package/igniteui-webcomponents.html-data.json +1 -1
  1227. package/index.d.ts +29 -1
  1228. package/index.js +3 -0
  1229. package/index.js.map +1 -1
  1230. package/package.json +14 -8
  1231. package/themes/dark/bootstrap.css +1 -1
  1232. package/themes/dark/fluent.css +1 -1
  1233. package/themes/dark/indigo.css +1 -1
  1234. package/themes/dark/material.css +1 -1
  1235. package/themes/light/bootstrap.css +1 -1
  1236. package/themes/light/fluent.css +1 -1
  1237. package/themes/light/indigo.css +1 -1
  1238. package/themes/light/material.css +1 -1
  1239. package/theming/theming-controller.d.ts +1 -0
  1240. package/theming/theming-controller.js +11 -29
  1241. package/theming/theming-controller.js.map +1 -1
  1242. package/theming/theming-event.d.ts +7 -0
  1243. package/theming/theming-event.js +14 -0
  1244. package/theming/theming-event.js.map +1 -1
  1245. package/web-types.json +2 -2
  1246. package/components/common/mixins/form-associated-required.d.ts +0 -16
  1247. package/components/common/mixins/form-associated-required.js +0 -29
  1248. package/components/common/mixins/form-associated-required.js.map +0 -1
  1249. package/components/common/mixins/form-associated.d.ts +0 -92
  1250. package/components/common/mixins/form-associated.js +0 -135
  1251. package/components/common/mixins/form-associated.js.map +0 -1
  1252. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js +0 -3
  1253. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js.map +0 -1
  1254. /package/components/{dropdown/themes/shared/header/dropdown-header.fluent.css.d.ts → carousel/themes/carousel-indicator-container.base.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"combo.material.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/shared/combo.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,krIAAkrI,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--component-size: var(--ig-size, var(--default-size));--combo-size: var(--component-size)}:host [part=helper-text]{margin-top:.3125rem;padding-inline:max(var(--is-large, 1)*max(1.125rem, -1 * 1.125rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)),var(--is-medium, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)),var(--is-small, 1)*max(0.875rem, -1 * 0.875rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)))}:host ::slotted([slot=helper-text]){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);color:var(--helper-text-color);line-height:1}:host ::slotted([slot=prefix]),:host ::slotted([slot=suffix]){color:inherit}:host(:not([single-select]))>igc-input::part(input)::-moz-selection{background:rgba(0,0,0,0)}:host(:not([single-select]))>igc-input::part(input)::selection{background:rgba(0,0,0,0)}[part=list-wrapper]{border-radius:var(--border-radius)}[part=list-wrapper] igc-input::part(container){background:rgba(0,0,0,0);border-inline-end-color:rgba(0,0,0,0)}[part=list-wrapper] igc-input::part(input){border-inline-end-color:rgba(0,0,0,0)}[part=list-wrapper] igc-input::part(input)::-moz-selection{background:hsla(var(--ig-primary-100), var(--ig-primary-a))}[part=list-wrapper] igc-input::part(input)::selection{background:hsla(var(--ig-primary-100), var(--ig-primary-a))}[part=list-wrapper] [part=case-icon]{color:hsla(var(--ig-gray-600), var(--ig-gray-a))}[part=list-wrapper] [part=\"case-icon active\"]{color:hsla(var(--ig-primary-500), var(--ig-primary-a))}[part=\"toggle-icon filled\"]{color:var(--toggle-button-foreground-filled)}:host(:focus-within) [part~=toggle-icon]{background:var(--toggle-button-background-focus)}:host(:not([outlined]):focus-within)>igc-input::part(container){background:var(--box-background-focus)}:host([outlined]:focus-within) [part~=toggle-icon]{background:var(--toggle-button-background-focus--border)}:host([invalid]) ::slotted([slot=helper-text]){color:var(--error-secondary-color)}:host(:disabled) igc-input::part(input)::-webkit-input-placeholder, :host([disabled]) igc-input::part(input)::-webkit-input-placeholder{color:var(--disabled-text-color)}:host(:disabled) igc-input::part(input)::-moz-placeholder, :host([disabled]) igc-input::part(input)::-moz-placeholder{color:var(--disabled-text-color)}:host(:disabled) igc-input::part(input):-ms-input-placeholder, :host([disabled]) igc-input::part(input):-ms-input-placeholder{color:var(--disabled-text-color)}:host(:disabled) igc-input::part(input)::-ms-input-placeholder, :host([disabled]) igc-input::part(input)::-ms-input-placeholder{color:var(--disabled-text-color)}:host(:disabled) ::slotted([slot=prefix]),:host(:disabled) ::slotted([slot=suffix]),:host(:disabled) igc-input::part(label),:host(:disabled) igc-input::part(input)::placeholder,:host(:disabled) ::slotted([slot=helper-text]),:host([disabled]) ::slotted([slot=prefix]),:host([disabled]) ::slotted([slot=suffix]),:host([disabled]) igc-input::part(label),:host([disabled]) igc-input::part(input)::placeholder,:host([disabled]) ::slotted([slot=helper-text]){color:var(--disabled-text-color)}:host(:disabled) [part~=clear-icon],:host([disabled]) [part~=clear-icon]{background:inherit;color:var(--disabled-text-color)}:host(:disabled) [part~=clear-icon] igc-icon,:host([disabled]) [part~=clear-icon] igc-icon{color:inherit}:host(:disabled) [part~=toggle-icon],:host([disabled]) [part~=toggle-icon]{background:var(--toggle-button-background-disabled);color:var(--toggle-button-foreground-disabled)}:host(:disabled) [part~=toggle-icon] igc-icon,:host([disabled]) [part~=toggle-icon] igc-icon{color:inherit}:host(:disabled[outlined]) igc-input::part(filled)+igc-input::part(notch),:host([outlined][disabled]) igc-input::part(filled)+igc-input::part(notch),:host([outlined][invalid]) igc-input::part(filled)+igc-input::part(notch){border-top-color:rgba(0,0,0,0)}`;\n"]}
1
+ {"version":3,"file":"combo.material.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/shared/combo.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+uHAA+uH,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--component-size: var(--ig-size, var(--default-size));--combo-size: var(--component-size)}:host ::part(helper-text){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);margin-block-start:.25rem;grid-auto-rows:minmax(1.125rem, auto);padding-inline-start:max(var(--is-large, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)),var(--is-medium, 1)*max(0.875rem, -1 * 0.875rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)),var(--is-small, 1)*max(0.75rem, -1 * 0.75rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)))}:host ::slotted([slot=prefix]),:host ::slotted([slot=suffix]){color:inherit}:host(:not([single-select]))>igc-input::part(input)::-moz-selection{background:rgba(0,0,0,0)}:host(:not([single-select]))>igc-input::part(input)::selection{background:rgba(0,0,0,0)}[part=list-wrapper]{background:var(--background-color);border-radius:var(--border-radius)}[part=list-wrapper] igc-input::part(container){background:rgba(0,0,0,0);border-inline-start:0;border-inline-end-color:rgba(0,0,0,0);border-block-start:0;border-radius:0}[part=list-wrapper] igc-input::part(start){display:none}[part=list-wrapper] igc-input::part(input){border-radius:0;padding:0;border-inline-start:0;border-inline-end-color:rgba(0,0,0,0);border-block-start:0;box-shadow:none}[part=list-wrapper] igc-input::part(input)::-moz-selection{background:hsl(from var(--ig-primary-100) h s l/1)}[part=list-wrapper] igc-input::part(input)::selection{background:hsl(from var(--ig-primary-100) h s l/1)}[part=list-wrapper] [part=case-icon]{color:hsl(from var(--ig-gray-600) h s l/1)}[part=list-wrapper] [part=\"case-icon active\"]{color:hsl(from var(--ig-primary-500) h s l/1)}[part=\"toggle-icon filled\"]{color:var(--toggle-button-foreground-filled)}:host(:focus-within) [part~=toggle-icon]{color:var(--toggle-button-foreground-filled);background:var(--toggle-button-background-focus)}:host(:not([outlined]):focus-within)>igc-input::part(container){background:var(--box-background-focus)}:host([outlined]:focus-within) [part~=toggle-icon]{background:var(--toggle-button-background-focus--border)}:host(:disabled) igc-input::part(input)::-moz-placeholder, :host([disabled]) igc-input::part(input)::-moz-placeholder{color:var(--disabled-text-color)}:host(:disabled) ::slotted([slot=prefix]),:host(:disabled) ::slotted([slot=suffix]),:host(:disabled) igc-input::part(label),:host(:disabled) igc-input::part(input)::placeholder,:host([disabled]) ::slotted([slot=prefix]),:host([disabled]) ::slotted([slot=suffix]),:host([disabled]) igc-input::part(label),:host([disabled]) igc-input::part(input)::placeholder{color:var(--disabled-text-color)}:host(:disabled) [part~=clear-icon],:host([disabled]) [part~=clear-icon]{background:inherit;color:var(--disabled-text-color)}:host(:disabled) [part~=clear-icon] igc-icon,:host([disabled]) [part~=clear-icon] igc-icon{color:inherit}:host(:disabled) [part~=toggle-icon],:host([disabled]) [part~=toggle-icon]{background:var(--toggle-button-background-disabled);color:var(--toggle-button-foreground-disabled)}:host(:disabled) [part~=toggle-icon] igc-icon,:host([disabled]) [part~=toggle-icon] igc-icon{color:inherit}:host(:disabled[outlined]) igc-input::part(filled)+igc-input::part(notch),:host([outlined][disabled]) igc-input::part(filled)+igc-input::part(notch),:host([outlined][invalid]) igc-input::part(filled)+igc-input::part(notch){border-top-color:rgba(0,0,0,0)}`;\n"]}
@@ -30,7 +30,7 @@ export interface IgcComboChangeEventArgs<T extends object = any> {
30
30
  items: T[];
31
31
  type: ComboChangeType;
32
32
  }
33
- export interface IgcComboEventMap {
33
+ export interface IgcComboComponentEventMap {
34
34
  igcChange: CustomEvent<IgcComboChangeEventArgs>;
35
35
  focus: FocusEvent;
36
36
  blur: FocusEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/combo/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js';\nimport type { ReactiveControllerHost, TemplateResult } from 'lit';\n\nimport type IgcComboComponent from './combo.js';\n\nexport type Keys<T> = keyof T;\nexport type Values<T> = T[keyof T];\nexport type Item<T extends object> = T | Values<T>;\n\nexport type ComboRecord<T extends object> = {\n value: T;\n header: boolean;\n dataIndex: number;\n};\n\nexport type ComboHost<T extends object> = ReactiveControllerHost &\n IgcComboComponent<T>;\n\nexport type GroupingDirection = 'asc' | 'desc' | 'none';\nexport type ComboChangeType = 'selection' | 'deselection' | 'addition';\nexport type ComboRenderFunction<T extends object> = RenderItemFunction<\n ComboRecord<T>\n>;\nexport type ComboValue<T> = T | Values<T>;\n\nexport interface FilteringOptions<T extends object> {\n filterKey: Keys<T> | undefined;\n caseSensitive?: boolean;\n matchDiacritics?: boolean;\n}\n\nexport interface GroupingOptions<T extends object> {\n groupKey?: Keys<T>;\n valueKey?: Keys<T>;\n displayKey?: Keys<T>;\n direction: GroupingDirection;\n}\n\n/* marshalByValue */\nexport interface IgcComboChangeEventArgs<T extends object = any> {\n newValue: ComboValue<T>[];\n /* primitiveValue */\n items: T[];\n /* blazorAlternateName: changeType */\n type: ComboChangeType;\n}\n\nexport interface IgcComboEventMap {\n igcChange: CustomEvent<IgcComboChangeEventArgs>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nexport type ComboItemTemplate<T extends object> = (\n props: ComboTemplateProps<T>\n) => TemplateResult;\nexport interface ComboTemplateProps<T extends object> {\n item: T;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/combo/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js';\nimport type { ReactiveControllerHost, TemplateResult } from 'lit';\n\nimport type IgcComboComponent from './combo.js';\n\nexport type Keys<T> = keyof T;\nexport type Values<T> = T[keyof T];\nexport type Item<T extends object> = T | Values<T>;\n\nexport type ComboRecord<T extends object> = {\n value: T;\n header: boolean;\n dataIndex: number;\n};\n\nexport type ComboHost<T extends object> = ReactiveControllerHost &\n IgcComboComponent<T>;\n\nexport type GroupingDirection = 'asc' | 'desc' | 'none';\nexport type ComboChangeType = 'selection' | 'deselection' | 'addition';\nexport type ComboRenderFunction<T extends object> = RenderItemFunction<\n ComboRecord<T>\n>;\nexport type ComboValue<T> = T | Values<T>;\n\nexport interface FilteringOptions<T extends object> {\n filterKey: Keys<T> | undefined;\n caseSensitive?: boolean;\n matchDiacritics?: boolean;\n}\n\nexport interface GroupingOptions<T extends object> {\n groupKey?: Keys<T>;\n valueKey?: Keys<T>;\n displayKey?: Keys<T>;\n direction: GroupingDirection;\n}\n\n/* marshalByValue */\nexport interface IgcComboChangeEventArgs<T extends object = any> {\n newValue: ComboValue<T>[];\n /* primitiveValue */\n items: T[];\n /* blazorAlternateName: changeType */\n type: ComboChangeType;\n}\n\nexport interface IgcComboComponentEventMap {\n igcChange: CustomEvent<IgcComboChangeEventArgs>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nexport type ComboItemTemplate<T extends object> = (\n props: ComboTemplateProps<T>\n) => TemplateResult;\nexport interface ComboTemplateProps<T extends object> {\n item: T;\n}\n"]}
@@ -0,0 +1,76 @@
1
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import type { Ref } from 'lit/directives/ref.js';
3
+ /**
4
+ * Configuration object for a {@link GesturesController} instance.
5
+ */
6
+ export interface GesturesOptions {
7
+ /**
8
+ * By default, the controller listens for pointer/touch events in the context of the host element.
9
+ * If you pass a `ref`, you can limit the observation to a certain DOM part of the host scope.
10
+ */
11
+ ref?: Ref<HTMLElement>;
12
+ /**
13
+ * The maximum amount of milliseconds between the start and end of a gesture combination
14
+ * before it is recognized as such.
15
+ */
16
+ thresholdTime?: number;
17
+ /**
18
+ * The minimum amount a "pointer" should travel in pixels, before being recognized as a
19
+ * gesture.
20
+ */
21
+ thresholdDistance?: number;
22
+ /**
23
+ * When enabled, the controller will skip events generated by a mouse device.
24
+ */
25
+ touchOnly?: boolean;
26
+ }
27
+ type GestureDirection = 'left' | 'up' | 'right' | 'down';
28
+ type SwipeEvents = 'swipe' | 'swipe-left' | 'swipe-up' | 'swipe-right' | 'swipe-down';
29
+ export type GestureData = {
30
+ direction: GestureDirection;
31
+ type: string;
32
+ xStart: number;
33
+ xEnd: number;
34
+ yStart: number;
35
+ yEnd: number;
36
+ };
37
+ export declare class SwipeEvent extends Event {
38
+ readonly data: GestureData;
39
+ readonly name: string;
40
+ constructor(name: string, data: GestureData, initOptions?: EventInit);
41
+ }
42
+ declare class GesturesController extends EventTarget implements ReactiveController {
43
+ private readonly _host;
44
+ private _ref?;
45
+ private _options;
46
+ private _pointerState;
47
+ protected get _element(): HTMLElement;
48
+ /** Get the current configuration object */
49
+ get options(): GesturesOptions;
50
+ constructor(host: ReactiveControllerHost & HTMLElement, options?: GesturesOptions);
51
+ /**
52
+ * Add an event listener for a given swipe event.
53
+ */
54
+ set(type: SwipeEvents, callback: (event: SwipeEvent) => void, options?: AddEventListenerOptions): this;
55
+ handleEvent(event: PointerEvent): void;
56
+ hostConnected(): Promise<void>;
57
+ hostDisconnected(): void;
58
+ /** Updates the configuration of the controller */
59
+ updateOptions(options: Omit<GesturesOptions, 'ref'>): void;
60
+ private _getGestureState;
61
+ private _setTouchActionState;
62
+ private _resetState;
63
+ private _setPointerCaptureState;
64
+ private _handlePointerDown;
65
+ private _handlePointerMove;
66
+ private _emit;
67
+ private _createEventArgs;
68
+ protected _recognize(): GestureDirection | false;
69
+ private _handleLostPointerCapture;
70
+ }
71
+ /**
72
+ * Adds a {@link GesturesController} responsible for managing gesture behaviors
73
+ * for the given host element.
74
+ */
75
+ export declare function addGesturesController(host: ReactiveControllerHost & HTMLElement, options?: GesturesOptions): GesturesController;
76
+ export {};
@@ -0,0 +1,154 @@
1
+ const Events = [
2
+ 'pointerdown',
3
+ 'pointermove',
4
+ 'lostpointercapture',
5
+ 'pointercancel',
6
+ ];
7
+ const defaultState = Object.freeze({ x: 0, y: 0, time: 0 });
8
+ export class SwipeEvent extends Event {
9
+ constructor(name, data, initOptions) {
10
+ super(name, initOptions);
11
+ this.name = name;
12
+ this.data = data;
13
+ }
14
+ }
15
+ class GesturesController extends EventTarget {
16
+ get _element() {
17
+ return this._ref ? this._ref.value : this._host;
18
+ }
19
+ get options() {
20
+ return this._options;
21
+ }
22
+ constructor(host, options) {
23
+ super();
24
+ this._options = {
25
+ thresholdDistance: 100,
26
+ thresholdTime: 500,
27
+ touchOnly: false,
28
+ };
29
+ this._pointerState = {
30
+ captured: false,
31
+ start: defaultState,
32
+ current: defaultState,
33
+ };
34
+ Object.assign(this._options, options);
35
+ this._ref = this._options.ref;
36
+ this._host = host;
37
+ this._host.addController(this);
38
+ }
39
+ set(type, callback, options) {
40
+ const bound = callback.bind(this._host);
41
+ this.addEventListener(type, bound, options);
42
+ return this;
43
+ }
44
+ handleEvent(event) {
45
+ if (this._options.touchOnly && event.pointerType === 'mouse') {
46
+ return;
47
+ }
48
+ switch (event.type) {
49
+ case 'pointerdown':
50
+ return this._handlePointerDown(event);
51
+ case 'pointermove':
52
+ return this._handlePointerMove(event);
53
+ case 'lostpointercapture':
54
+ case 'pointercancel':
55
+ return this._handleLostPointerCapture(event);
56
+ }
57
+ }
58
+ async hostConnected() {
59
+ await this._host.updateComplete;
60
+ for (const event of Events) {
61
+ this._element.addEventListener(event, this, { passive: true });
62
+ }
63
+ }
64
+ hostDisconnected() {
65
+ for (const event of Events) {
66
+ this._element.removeEventListener(event, this);
67
+ }
68
+ }
69
+ updateOptions(options) {
70
+ Object.assign(this._options, options);
71
+ }
72
+ _getGestureState({ clientX: x, clientY: y, }) {
73
+ return { x, y, time: Date.now() };
74
+ }
75
+ _setTouchActionState(disabled) {
76
+ Object.assign(this._element.style, {
77
+ touchAction: disabled ? 'none' : undefined,
78
+ });
79
+ }
80
+ _resetState() {
81
+ this._pointerState.start = defaultState;
82
+ this._pointerState.current = defaultState;
83
+ }
84
+ _setPointerCaptureState(event, state) {
85
+ this._pointerState.captured = state;
86
+ state
87
+ ? this._element.setPointerCapture(event.pointerId)
88
+ : this._element.releasePointerCapture(event.pointerId);
89
+ }
90
+ _handlePointerDown(event) {
91
+ this._setTouchActionState(true);
92
+ this._pointerState.start = this._getGestureState(event);
93
+ this._setPointerCaptureState(event, true);
94
+ }
95
+ _handlePointerMove(event) {
96
+ if (this._pointerState.captured) {
97
+ this._pointerState.current = this._getGestureState(event);
98
+ }
99
+ }
100
+ _emit(name, data) {
101
+ return this.dispatchEvent(new SwipeEvent(name, data));
102
+ }
103
+ _createEventArgs() {
104
+ const { start, current } = this._pointerState;
105
+ return {
106
+ xStart: start.x,
107
+ xEnd: current.x,
108
+ yStart: start.y,
109
+ yEnd: current.y,
110
+ };
111
+ }
112
+ _recognize() {
113
+ const { start, current } = this._pointerState;
114
+ const dt = current.time - start.time;
115
+ const dx = current.x - start.x;
116
+ const dy = current.y - start.y;
117
+ const time = this._options.thresholdTime ?? 500;
118
+ const distance = this._options.thresholdDistance ?? 100;
119
+ if (dt > time) {
120
+ return false;
121
+ }
122
+ if (dx > distance && Math.abs(dy) < distance) {
123
+ return 'right';
124
+ }
125
+ if (-dx > distance && Math.abs(dy) < distance) {
126
+ return 'left';
127
+ }
128
+ if (dy > distance && Math.abs(dx) < distance) {
129
+ return 'down';
130
+ }
131
+ if (-dy > distance && Math.abs(dx) < distance) {
132
+ return 'up';
133
+ }
134
+ return false;
135
+ }
136
+ _handleLostPointerCapture(event) {
137
+ this._setPointerCaptureState(event, false);
138
+ const state = this._recognize();
139
+ if (state) {
140
+ const args = Object.assign(this._createEventArgs(), {
141
+ type: event.pointerType,
142
+ direction: state,
143
+ });
144
+ this._emit('swipe', args);
145
+ this._emit(`swipe-${state}`, args);
146
+ }
147
+ this._resetState();
148
+ this._setTouchActionState(false);
149
+ }
150
+ }
151
+ export function addGesturesController(host, options) {
152
+ return new GesturesController(host, options);
153
+ }
154
+ //# sourceMappingURL=gestures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/gestures.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\n\nconst Events = [\n 'pointerdown',\n 'pointermove',\n 'lostpointercapture',\n 'pointercancel',\n] as const;\nconst defaultState: GestureState = Object.freeze({ x: 0, y: 0, time: 0 });\n\n/**\n * Configuration object for a {@link GesturesController} instance.\n */\nexport interface GesturesOptions {\n /**\n * By default, the controller listens for pointer/touch events in the context of the host element.\n * If you pass a `ref`, you can limit the observation to a certain DOM part of the host scope.\n */\n ref?: Ref<HTMLElement>;\n /**\n * The maximum amount of milliseconds between the start and end of a gesture combination\n * before it is recognized as such.\n */\n thresholdTime?: number;\n /**\n * The minimum amount a \"pointer\" should travel in pixels, before being recognized as a\n * gesture.\n */\n thresholdDistance?: number;\n /**\n * When enabled, the controller will skip events generated by a mouse device.\n */\n touchOnly?: boolean;\n}\n\ntype GestureState = {\n x: number;\n y: number;\n time: number;\n};\n\ntype GestureDirection = 'left' | 'up' | 'right' | 'down';\ntype SwipeEvents =\n | 'swipe'\n | 'swipe-left'\n | 'swipe-up'\n | 'swipe-right'\n | 'swipe-down';\n\nexport type GestureData = {\n direction: GestureDirection;\n type: string;\n xStart: number;\n xEnd: number;\n yStart: number;\n yEnd: number;\n};\n\n/* blazorSuppress */\nexport class SwipeEvent extends Event {\n public readonly data: GestureData;\n public readonly name: string;\n\n constructor(name: string, data: GestureData, initOptions?: EventInit) {\n super(name, initOptions);\n this.name = name;\n this.data = data;\n }\n}\n\nclass GesturesController extends EventTarget implements ReactiveController {\n private readonly _host: ReactiveControllerHost & HTMLElement;\n private _ref?: Ref<HTMLElement>;\n private _options: GesturesOptions = {\n thresholdDistance: 100,\n thresholdTime: 500,\n touchOnly: false,\n };\n\n private _pointerState = {\n captured: false,\n start: defaultState,\n current: defaultState,\n };\n\n protected get _element() {\n return this._ref ? this._ref.value! : this._host;\n }\n\n /** Get the current configuration object */\n public get options() {\n return this._options;\n }\n\n constructor(\n host: ReactiveControllerHost & HTMLElement,\n options?: GesturesOptions\n ) {\n super();\n\n Object.assign(this._options, options);\n this._ref = this._options.ref;\n\n this._host = host;\n this._host.addController(this);\n }\n\n /**\n * Add an event listener for a given swipe event.\n */\n public set(\n type: SwipeEvents,\n callback: (event: SwipeEvent) => void,\n options?: AddEventListenerOptions\n ) {\n const bound = callback.bind(this._host) as EventListener;\n\n this.addEventListener(type, bound, options);\n return this;\n }\n\n public handleEvent(event: PointerEvent) {\n if (this._options.touchOnly && event.pointerType === 'mouse') {\n return;\n }\n switch (event.type) {\n case 'pointerdown':\n return this._handlePointerDown(event);\n case 'pointermove':\n return this._handlePointerMove(event);\n case 'lostpointercapture':\n case 'pointercancel':\n return this._handleLostPointerCapture(event);\n }\n }\n\n public async hostConnected() {\n await this._host.updateComplete;\n\n for (const event of Events) {\n this._element.addEventListener(event, this, { passive: true });\n }\n }\n\n public hostDisconnected() {\n for (const event of Events) {\n this._element.removeEventListener(event, this);\n }\n }\n\n /** Updates the configuration of the controller */\n public updateOptions(options: Omit<GesturesOptions, 'ref'>) {\n Object.assign(this._options, options);\n }\n\n private _getGestureState({\n clientX: x,\n clientY: y,\n }: PointerEvent): GestureState {\n return { x, y, time: Date.now() };\n }\n\n private _setTouchActionState(disabled: boolean) {\n Object.assign(this._element.style, {\n touchAction: disabled ? 'none' : undefined,\n });\n }\n\n private _resetState() {\n this._pointerState.start = defaultState;\n this._pointerState.current = defaultState;\n }\n\n private _setPointerCaptureState(event: PointerEvent, state: boolean) {\n this._pointerState.captured = state;\n state\n ? this._element.setPointerCapture(event.pointerId)\n : this._element.releasePointerCapture(event.pointerId);\n }\n\n private _handlePointerDown(event: PointerEvent) {\n this._setTouchActionState(true);\n this._pointerState.start = this._getGestureState(event);\n this._setPointerCaptureState(event, true);\n }\n\n private _handlePointerMove(event: PointerEvent) {\n if (this._pointerState.captured) {\n this._pointerState.current = this._getGestureState(event);\n }\n }\n\n private _emit(name: SwipeEvents, data: GestureData) {\n return this.dispatchEvent(new SwipeEvent(name, data));\n }\n\n private _createEventArgs() {\n const { start, current } = this._pointerState;\n\n return {\n xStart: start.x,\n xEnd: current.x,\n yStart: start.y,\n yEnd: current.y,\n };\n }\n\n protected _recognize(): GestureDirection | false {\n const { start, current } = this._pointerState;\n\n const dt = current.time - start.time;\n const dx = current.x - start.x;\n const dy = current.y - start.y;\n\n const time = this._options.thresholdTime ?? 500;\n const distance = this._options.thresholdDistance ?? 100;\n\n if (dt > time) {\n return false;\n }\n\n if (dx > distance && Math.abs(dy) < distance) {\n return 'right';\n }\n\n if (-dx > distance && Math.abs(dy) < distance) {\n return 'left';\n }\n\n if (dy > distance && Math.abs(dx) < distance) {\n return 'down';\n }\n\n if (-dy > distance && Math.abs(dx) < distance) {\n return 'up';\n }\n\n return false;\n }\n\n private _handleLostPointerCapture(event: PointerEvent) {\n this._setPointerCaptureState(event, false);\n const state = this._recognize();\n\n if (state) {\n const args: GestureData = Object.assign(this._createEventArgs(), {\n type: event.pointerType,\n direction: state,\n });\n\n this._emit('swipe', args);\n this._emit(`swipe-${state}`, args);\n }\n\n this._resetState();\n this._setTouchActionState(false);\n }\n}\n\n/**\n * Adds a {@link GesturesController} responsible for managing gesture behaviors\n * for the given host element.\n */\nexport function addGesturesController(\n host: ReactiveControllerHost & HTMLElement,\n options?: GesturesOptions\n) {\n return new GesturesController(host, options);\n}\n"]}
@@ -125,20 +125,20 @@ declare class KeyBindingController implements ReactiveController {
125
125
  * Checks and executes any event modifiers that are present in the matched binding.
126
126
  */
127
127
  private eventModifiersMatch;
128
- private keysMatch;
129
128
  private bindingMatches;
129
+ private shouldSkip;
130
130
  handleEvent(event: KeyboardEvent): void;
131
131
  /**
132
132
  * Registers a keybinding handler.
133
133
  */
134
- set(key: string | string[], fn: KeyBindingHandler, options?: KeyBindingOptions): this;
134
+ set(key: string | string[], handler: KeyBindingHandler, options?: KeyBindingOptions): this;
135
135
  /**
136
136
  * Register a handler function which is called when the target receives a key
137
137
  * which "activates" it.
138
138
  *
139
139
  * In the browser context this is usually either an Enter and/or Space keypress.
140
140
  */
141
- setActivateHandler(fn: KeyBindingHandler, options?: KeyBindingOptions): this;
141
+ setActivateHandler(handler: KeyBindingHandler, options?: KeyBindingOptions): this;
142
142
  hostConnected(): void;
143
143
  hostDisconnected(): void;
144
144
  }
@@ -1,4 +1,4 @@
1
- import { isElement } from '../util.js';
1
+ import { findElementFromEventPath } from '../util.js';
2
2
  export const arrowLeft = 'ArrowLeft';
3
3
  export const arrowRight = 'ArrowRight';
4
4
  export const arrowUp = 'ArrowUp';
@@ -15,16 +15,16 @@ export const altKey = 'Alt';
15
15
  export const ctrlKey = 'Ctrl';
16
16
  export const metaKey = 'Meta';
17
17
  export const shiftKey = 'Shift';
18
- const __modifiers = new Set([altKey, ctrlKey, metaKey, shiftKey].map((key) => key.toLowerCase()));
18
+ const Modifiers = new Map([altKey, ctrlKey, metaKey, shiftKey].map((key) => {
19
+ const mod = key.toLowerCase();
20
+ return key === ctrlKey ? ['control', mod] : [mod, mod];
21
+ }));
19
22
  const defaultOptions = {
20
23
  skip: ['input', 'textarea', 'select'],
21
24
  };
22
25
  function normalizeKeys(keys) {
23
26
  return (Array.isArray(keys) ? keys : [keys]).map((key) => key.toLowerCase());
24
27
  }
25
- function isModifier(key) {
26
- return __modifiers.has(key);
27
- }
28
28
  function isKeydown(event) {
29
29
  return event.type === 'keydown';
30
30
  }
@@ -45,10 +45,16 @@ function isKeydownRepeatTrigger(triggers) {
45
45
  export function parseKeys(keys) {
46
46
  const parsed = normalizeKeys(keys);
47
47
  return {
48
- keys: parsed.filter((key) => !isModifier(key)),
49
- modifiers: parsed.filter((key) => isModifier(key)),
48
+ keys: parsed.filter((key) => !Modifiers.has(key)),
49
+ modifiers: parsed.filter((key) => Modifiers.has(key)),
50
50
  };
51
51
  }
52
+ function createCombinationKey(keys, modifiers) {
53
+ return Array.from(Modifiers.values())
54
+ .filter((mod) => modifiers.includes(mod))
55
+ .concat(keys)
56
+ .join('+');
57
+ }
52
58
  class KeyBindingController {
53
59
  get _element() {
54
60
  if (this._observedElement) {
@@ -69,7 +75,7 @@ class KeyBindingController {
69
75
  };
70
76
  }
71
77
  constructor(host, options) {
72
- this.bindings = new Set();
78
+ this.bindings = new Map();
73
79
  this.pressedKeys = new Set();
74
80
  this._host = host;
75
81
  this._ref = options?.ref;
@@ -84,16 +90,8 @@ class KeyBindingController {
84
90
  event.stopPropagation();
85
91
  }
86
92
  }
87
- keysMatch(binding, event) {
88
- const modifiers = binding.modifiers ?? [];
89
- return (binding.keys.every((key) => this.pressedKeys.has(key)) &&
90
- modifiers.every((mod) => !!event[`${mod}Key`]));
91
- }
92
93
  bindingMatches(binding, event) {
93
94
  const triggers = binding.options?.triggers ?? ['keydown'];
94
- if (!this.keysMatch(binding, event)) {
95
- return false;
96
- }
97
95
  if (isKeydown(event) && isKeydownTrigger(triggers)) {
98
96
  return true;
99
97
  }
@@ -102,52 +100,53 @@ class KeyBindingController {
102
100
  }
103
101
  return false;
104
102
  }
105
- handleEvent(event) {
106
- const key = event.key.toLowerCase();
107
- const path = event.composedPath();
103
+ shouldSkip(event) {
108
104
  const skip = this._options?.skip;
109
- if (!this._element || !path.includes(this._element)) {
110
- return;
111
- }
112
- if (skip) {
113
- const shouldSkip = Array.isArray(skip)
114
- ? path.some((target) => isElement(target) &&
115
- skip.some((selector) => target.matches(selector)))
116
- : skip.call(this._host, event.target, event);
117
- if (shouldSkip) {
118
- return;
119
- }
105
+ if (!findElementFromEventPath((e) => e === this._element, event)) {
106
+ return true;
120
107
  }
121
- if (isModifier(key)) {
122
- this.pressedKeys.clear();
108
+ if (!skip) {
109
+ return false;
123
110
  }
124
- if (isKeydown(event) && !isModifier(key)) {
125
- this.pressedKeys.add(key);
111
+ return Array.isArray(skip)
112
+ ? findElementFromEventPath(skip.join(), event)
113
+ : skip.call(this._host, event.target, event);
114
+ }
115
+ handleEvent(event) {
116
+ if (this.shouldSkip(event)) {
117
+ return;
126
118
  }
127
- for (const binding of this.bindings) {
128
- if (this.bindingMatches(binding, event)) {
129
- this.eventModifiersMatch(binding, event);
130
- binding.handler.call(this._host, event);
131
- if (isKeydownRepeatTrigger(binding.options?.triggers)) {
132
- this.pressedKeys.delete(key);
133
- }
119
+ const key = event.key.toLowerCase();
120
+ Modifiers.has(key) ? this.pressedKeys.clear() : this.pressedKeys.add(key);
121
+ const pendingKeys = Array.from(this.pressedKeys);
122
+ const modifiers = Array.from(Modifiers.values()).filter((mod) => event[`${mod}Key`]);
123
+ const binding = this.bindings.get(createCombinationKey(pendingKeys, modifiers));
124
+ if (binding && this.bindingMatches(binding, event)) {
125
+ this.eventModifiersMatch(binding, event);
126
+ binding.handler.call(this._host, event);
127
+ if (isKeydownRepeatTrigger(binding.options?.triggers)) {
128
+ this.pressedKeys.delete(key);
134
129
  }
135
130
  }
136
- if (isKeyup(event) && !isModifier(key)) {
131
+ if (isKeyup(event) && !Modifiers.has(key)) {
137
132
  this.pressedKeys.delete(key);
138
133
  }
139
134
  }
140
- set(key, fn, options) {
141
- this.bindings.add({
142
- ...parseKeys(key),
143
- handler: fn,
144
- options: { ...this._options?.bindingDefaults, ...options },
135
+ set(key, handler, options) {
136
+ const { keys, modifiers } = parseKeys(key);
137
+ const combination = createCombinationKey(keys, modifiers);
138
+ const _options = { ...this._options?.bindingDefaults, ...options };
139
+ this.bindings.set(combination, {
140
+ keys,
141
+ handler,
142
+ options: _options,
143
+ modifiers,
145
144
  });
146
145
  return this;
147
146
  }
148
- setActivateHandler(fn, options) {
147
+ setActivateHandler(handler, options) {
149
148
  for (const key of [enterKey, spaceBar]) {
150
- this.set(key, fn, options);
149
+ this.set(key, handler, options);
151
150
  }
152
151
  return this;
153
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"key-bindings.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/key-bindings.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { isElement } from '../util.js';\n\n/* Common keys */\nexport const arrowLeft = 'ArrowLeft' as const;\nexport const arrowRight = 'ArrowRight' as const;\nexport const arrowUp = 'ArrowUp' as const;\nexport const arrowDown = 'ArrowDown' as const;\nexport const enterKey = 'Enter' as const;\nexport const spaceBar = ' ' as const;\nexport const escapeKey = 'Escape' as const;\nexport const homeKey = 'Home' as const;\nexport const endKey = 'End' as const;\nexport const pageUpKey = 'PageUp' as const;\nexport const pageDownKey = 'PageDown' as const;\nexport const tabKey = 'Tab' as const;\n\n/* Modifiers */\nexport const altKey = 'Alt' as const;\nexport const ctrlKey = 'Ctrl' as const;\nexport const metaKey = 'Meta' as const;\nexport const shiftKey = 'Shift' as const;\n\n/* Types */\nexport type KeyBindingHandler = (event: KeyboardEvent) => void;\nexport type KeyBindingObserverCleanup = { unsubscribe: () => void };\n\n/**\n * Whether the current event should be ignored by the controller.\n *\n * @param node - The event target\n * @param event - The event object\n *\n * When `true` is returned, the current event is ignored.\n */\nexport type KeyBindingSkipCallback = (\n node: Element,\n event: KeyboardEvent\n) => boolean;\n\n/**\n * The event type which will trigger the bound handler.\n *\n * @remarks\n * `keydownRepeat` is similar to `keydown` with the exception\n * that after the handler is invoked the pressed state of the key is reset\n * in the controller.\n */\nexport type KeyBindingTrigger = 'keydown' | 'keyup' | 'keydownRepeat';\n\n/**\n * Configuration object for the controller.\n * @ignore\n */\nexport interface KeyBindingControllerOptions {\n /**\n * By default, the controller listens for keypress events in the context of the host element.\n * If you pass a `ref`, you can limit the observation to a certain DOM part of the host scope.\n */\n ref?: Ref;\n /**\n * Option to ignore key press events.\n *\n * If passed an array of CSS selectors, it will ignore key presses originating from elements in the event composed path\n * that match one of the selectors.\n * Otherwise you can pass a {@link KeyBindingSkipCallback} function.\n *\n * Defaults to `['input', 'textarea', 'select']`.\n *\n * @example\n * ```ts\n * {\n * // Skip events originating from elements with `readonly` attribute\n * skip: ['[readonly]']\n * }\n * ...\n * {\n * // Same as above but with a callback\n * skip: (node: Element) => node.hasAttribute('readonly')\n * }\n * ```\n */\n skip?: string[] | KeyBindingSkipCallback;\n /**\n * A set of KeyBindingOptions configuration which is applied to every handler\n * that is added to the controller.\n *\n * Any additional KeyBindingOptions values passed when `set` is called\n * will be merged with `bindingDefaults`.\n */\n bindingDefaults?: KeyBindingOptions;\n}\n\n/**\n * Configuration object for customizing the behavior of\n * the registered handler.\n */\nexport interface KeyBindingOptions {\n /**\n * The event type(s) on which the handler will be invoked.\n *\n * Defaults to `keydown` if not set.\n */\n triggers?: KeyBindingTrigger[];\n /**\n * Whether to call `preventDefault` on the target event before the handler is invoked.\n */\n preventDefault?: boolean;\n /**\n * Whether to call `stopPropagation` on the target event before the handler is invoked.\n */\n stopPropagation?: boolean;\n}\n\ninterface KeyBinding {\n keys: string[];\n handler: KeyBindingHandler;\n options?: KeyBindingOptions;\n modifiers?: string[];\n}\n\nconst __modifiers = new Set<string>(\n [altKey, ctrlKey, metaKey, shiftKey].map((key) => key.toLowerCase())\n);\n\nconst defaultOptions: KeyBindingControllerOptions = {\n skip: ['input', 'textarea', 'select'],\n};\n\nfunction normalizeKeys(keys: string | string[]) {\n return (Array.isArray(keys) ? keys : [keys]).map((key) => key.toLowerCase());\n}\n\nfunction isModifier(key: string) {\n return __modifiers.has(key);\n}\n\nfunction isKeydown(event: Event) {\n return event.type === 'keydown';\n}\n\nfunction isKeyup(event: Event) {\n return event.type === 'keyup';\n}\n\nfunction isKeydownTrigger(triggers?: KeyBindingTrigger[]) {\n return triggers\n ? triggers.includes('keydown') || isKeydownRepeatTrigger(triggers)\n : false;\n}\n\nfunction isKeyupTrigger(triggers?: KeyBindingTrigger[]) {\n return triggers ? triggers.includes('keyup') : false;\n}\n\nfunction isKeydownRepeatTrigger(triggers?: KeyBindingTrigger[]) {\n return triggers ? triggers.includes('keydownRepeat') : false;\n}\n\nexport function parseKeys(keys: string | string[]) {\n const parsed = normalizeKeys(keys);\n return {\n keys: parsed.filter((key) => !isModifier(key)),\n modifiers: parsed.filter((key) => isModifier(key)),\n };\n}\n\nclass KeyBindingController implements ReactiveController {\n protected _host: ReactiveControllerHost & Element;\n protected _ref?: Ref;\n protected _observedElement?: Element;\n protected _options?: KeyBindingControllerOptions;\n private bindings = new Set<KeyBinding>();\n private pressedKeys = new Set<string>();\n\n protected get _element() {\n if (this._observedElement) {\n return this._observedElement;\n }\n return this._ref ? this._ref.value : this._host;\n }\n\n /**\n * Sets the controller to listen for keyboard events on an arbitrary `element` in the page context.\n * All the configuration and event handlers are applied as well.\n *\n * Returns an object with an `unsubscribe` function which should be called when the observing of keyboard\n * events on the `element` should cease.\n */\n public observeElement(element: Element): KeyBindingObserverCleanup {\n element.addEventListener('keydown', this);\n element.addEventListener('keyup', this);\n this._observedElement = element;\n\n return {\n unsubscribe: () => {\n this._observedElement?.removeEventListener('keydown', this);\n this._observedElement?.removeEventListener('keyup', this);\n this._observedElement = undefined;\n },\n };\n }\n\n constructor(\n host: ReactiveControllerHost & Element,\n options?: KeyBindingControllerOptions\n ) {\n this._host = host;\n this._ref = options?.ref;\n this._options = { ...defaultOptions, ...options };\n host.addController(this);\n }\n\n /**\n * Checks and executes any event modifiers that are present in the matched binding.\n */\n private eventModifiersMatch(binding: KeyBinding, event: KeyboardEvent) {\n if (binding.options?.preventDefault) {\n event.preventDefault();\n }\n\n if (binding.options?.stopPropagation) {\n event.stopPropagation();\n }\n }\n\n private keysMatch(binding: KeyBinding, event: KeyboardEvent) {\n const modifiers = binding.modifiers ?? [];\n return (\n binding.keys.every((key) => this.pressedKeys.has(key)) &&\n modifiers.every((mod) => !!event[`${mod}Key` as keyof KeyboardEvent])\n );\n }\n\n private bindingMatches(binding: KeyBinding, event: KeyboardEvent) {\n const triggers = binding.options?.triggers ?? ['keydown'];\n\n if (!this.keysMatch(binding, event)) {\n return false;\n }\n\n if (isKeydown(event) && isKeydownTrigger(triggers)) {\n return true;\n }\n\n if (isKeyup(event) && isKeyupTrigger(triggers)) {\n return true;\n }\n\n return false;\n }\n\n public handleEvent(event: KeyboardEvent) {\n const key = event.key.toLowerCase();\n const path = event.composedPath();\n const skip = this._options?.skip;\n\n if (!this._element || !path.includes(this._element)) {\n return;\n }\n\n if (skip) {\n const shouldSkip = Array.isArray(skip)\n ? path.some(\n (target) =>\n isElement(target) &&\n skip.some((selector) => target.matches(selector))\n )\n : skip.call(this._host, event.target as Element, event);\n\n if (shouldSkip) {\n return;\n }\n }\n\n if (isModifier(key)) {\n this.pressedKeys.clear();\n }\n\n if (isKeydown(event) && !isModifier(key)) {\n this.pressedKeys.add(key);\n }\n\n for (const binding of this.bindings) {\n if (this.bindingMatches(binding, event)) {\n this.eventModifiersMatch(binding, event);\n\n binding.handler.call(this._host, event);\n\n if (isKeydownRepeatTrigger(binding.options?.triggers)) {\n this.pressedKeys.delete(key);\n }\n }\n }\n\n if (isKeyup(event) && !isModifier(key)) {\n this.pressedKeys.delete(key);\n }\n }\n\n /**\n * Registers a keybinding handler.\n */\n public set(\n key: string | string[],\n fn: KeyBindingHandler,\n options?: KeyBindingOptions\n ) {\n this.bindings.add({\n ...parseKeys(key),\n handler: fn,\n options: { ...this._options?.bindingDefaults, ...options },\n });\n\n return this;\n }\n\n /**\n * Register a handler function which is called when the target receives a key\n * which \"activates\" it.\n *\n * In the browser context this is usually either an Enter and/or Space keypress.\n */\n public setActivateHandler(\n fn: KeyBindingHandler,\n options?: KeyBindingOptions\n ) {\n for (const key of [enterKey, spaceBar]) {\n this.set(key, fn, options);\n }\n\n return this;\n }\n\n public hostConnected(): void {\n this._host.addEventListener('keyup', this);\n this._host.addEventListener('keydown', this);\n }\n\n public hostDisconnected(): void {\n this._host.removeEventListener('keyup', this);\n this._host.removeEventListener('keydown', this);\n }\n}\n\n/**\n * Creates a keybinding controller and adds to it to the passed `element`\n * with the provided `options`.\n */\nexport function addKeybindings(\n element: ReactiveControllerHost & Element,\n options?: KeyBindingControllerOptions\n) {\n return new KeyBindingController(element, options);\n}\n"]}
1
+ {"version":3,"file":"key-bindings.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/key-bindings.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { findElementFromEventPath } from '../util.js';\n\n/* Common keys */\nexport const arrowLeft = 'ArrowLeft' as const;\nexport const arrowRight = 'ArrowRight' as const;\nexport const arrowUp = 'ArrowUp' as const;\nexport const arrowDown = 'ArrowDown' as const;\nexport const enterKey = 'Enter' as const;\nexport const spaceBar = ' ' as const;\nexport const escapeKey = 'Escape' as const;\nexport const homeKey = 'Home' as const;\nexport const endKey = 'End' as const;\nexport const pageUpKey = 'PageUp' as const;\nexport const pageDownKey = 'PageDown' as const;\nexport const tabKey = 'Tab' as const;\n\n/* Modifiers */\nexport const altKey = 'Alt' as const;\nexport const ctrlKey = 'Ctrl' as const;\nexport const metaKey = 'Meta' as const;\nexport const shiftKey = 'Shift' as const;\n\n/* Types */\nexport type KeyBindingHandler = (event: KeyboardEvent) => void;\nexport type KeyBindingObserverCleanup = { unsubscribe: () => void };\n\n/**\n * Whether the current event should be ignored by the controller.\n *\n * @param node - The event target\n * @param event - The event object\n *\n * When `true` is returned, the current event is ignored.\n */\nexport type KeyBindingSkipCallback = (\n node: Element,\n event: KeyboardEvent\n) => boolean;\n\n/**\n * The event type which will trigger the bound handler.\n *\n * @remarks\n * `keydownRepeat` is similar to `keydown` with the exception\n * that after the handler is invoked the pressed state of the key is reset\n * in the controller.\n */\nexport type KeyBindingTrigger = 'keydown' | 'keyup' | 'keydownRepeat';\n\n/**\n * Configuration object for the controller.\n * @ignore\n */\nexport interface KeyBindingControllerOptions {\n /**\n * By default, the controller listens for keypress events in the context of the host element.\n * If you pass a `ref`, you can limit the observation to a certain DOM part of the host scope.\n */\n ref?: Ref;\n /**\n * Option to ignore key press events.\n *\n * If passed an array of CSS selectors, it will ignore key presses originating from elements in the event composed path\n * that match one of the selectors.\n * Otherwise you can pass a {@link KeyBindingSkipCallback} function.\n *\n * Defaults to `['input', 'textarea', 'select']`.\n *\n * @example\n * ```ts\n * {\n * // Skip events originating from elements with `readonly` attribute\n * skip: ['[readonly]']\n * }\n * ...\n * {\n * // Same as above but with a callback\n * skip: (node: Element) => node.hasAttribute('readonly')\n * }\n * ```\n */\n skip?: string[] | KeyBindingSkipCallback;\n /**\n * A set of KeyBindingOptions configuration which is applied to every handler\n * that is added to the controller.\n *\n * Any additional KeyBindingOptions values passed when `set` is called\n * will be merged with `bindingDefaults`.\n */\n bindingDefaults?: KeyBindingOptions;\n}\n\n/**\n * Configuration object for customizing the behavior of\n * the registered handler.\n */\nexport interface KeyBindingOptions {\n /**\n * The event type(s) on which the handler will be invoked.\n *\n * Defaults to `keydown` if not set.\n */\n triggers?: KeyBindingTrigger[];\n /**\n * Whether to call `preventDefault` on the target event before the handler is invoked.\n */\n preventDefault?: boolean;\n /**\n * Whether to call `stopPropagation` on the target event before the handler is invoked.\n */\n stopPropagation?: boolean;\n}\n\ninterface KeyBinding {\n keys: string[];\n handler: KeyBindingHandler;\n options?: KeyBindingOptions;\n modifiers?: string[];\n}\n\nconst Modifiers: Map<string, string> = new Map(\n [altKey, ctrlKey, metaKey, shiftKey].map((key) => {\n const mod = key.toLowerCase();\n return key === ctrlKey ? ['control', mod] : [mod, mod];\n })\n);\n\nconst defaultOptions: KeyBindingControllerOptions = {\n skip: ['input', 'textarea', 'select'],\n};\n\nfunction normalizeKeys(keys: string | string[]) {\n return (Array.isArray(keys) ? keys : [keys]).map((key) => key.toLowerCase());\n}\n\nfunction isKeydown(event: Event) {\n return event.type === 'keydown';\n}\n\nfunction isKeyup(event: Event) {\n return event.type === 'keyup';\n}\n\nfunction isKeydownTrigger(triggers?: KeyBindingTrigger[]) {\n return triggers\n ? triggers.includes('keydown') || isKeydownRepeatTrigger(triggers)\n : false;\n}\n\nfunction isKeyupTrigger(triggers?: KeyBindingTrigger[]) {\n return triggers ? triggers.includes('keyup') : false;\n}\n\nfunction isKeydownRepeatTrigger(triggers?: KeyBindingTrigger[]) {\n return triggers ? triggers.includes('keydownRepeat') : false;\n}\n\nexport function parseKeys(keys: string | string[]) {\n const parsed = normalizeKeys(keys);\n return {\n keys: parsed.filter((key) => !Modifiers.has(key)),\n modifiers: parsed.filter((key) => Modifiers.has(key)),\n };\n}\n\nfunction createCombinationKey(keys: string[], modifiers: string[]) {\n return Array.from(Modifiers.values())\n .filter((mod) => modifiers.includes(mod))\n .concat(keys)\n .join('+');\n}\n\nclass KeyBindingController implements ReactiveController {\n protected _host: ReactiveControllerHost & Element;\n protected _ref?: Ref;\n protected _observedElement?: Element;\n protected _options?: KeyBindingControllerOptions;\n private bindings = new Map<string, KeyBinding>();\n private pressedKeys = new Set<string>();\n\n protected get _element() {\n if (this._observedElement) {\n return this._observedElement;\n }\n return this._ref ? this._ref.value : this._host;\n }\n\n /**\n * Sets the controller to listen for keyboard events on an arbitrary `element` in the page context.\n * All the configuration and event handlers are applied as well.\n *\n * Returns an object with an `unsubscribe` function which should be called when the observing of keyboard\n * events on the `element` should cease.\n */\n public observeElement(element: Element): KeyBindingObserverCleanup {\n element.addEventListener('keydown', this);\n element.addEventListener('keyup', this);\n this._observedElement = element;\n\n return {\n unsubscribe: () => {\n this._observedElement?.removeEventListener('keydown', this);\n this._observedElement?.removeEventListener('keyup', this);\n this._observedElement = undefined;\n },\n };\n }\n\n constructor(\n host: ReactiveControllerHost & Element,\n options?: KeyBindingControllerOptions\n ) {\n this._host = host;\n this._ref = options?.ref;\n this._options = { ...defaultOptions, ...options };\n host.addController(this);\n }\n\n /**\n * Checks and executes any event modifiers that are present in the matched binding.\n */\n private eventModifiersMatch(binding: KeyBinding, event: KeyboardEvent) {\n if (binding.options?.preventDefault) {\n event.preventDefault();\n }\n\n if (binding.options?.stopPropagation) {\n event.stopPropagation();\n }\n }\n\n private bindingMatches(binding: KeyBinding, event: KeyboardEvent) {\n const triggers = binding.options?.triggers ?? ['keydown'];\n\n if (isKeydown(event) && isKeydownTrigger(triggers)) {\n return true;\n }\n\n if (isKeyup(event) && isKeyupTrigger(triggers)) {\n return true;\n }\n\n return false;\n }\n\n private shouldSkip(event: KeyboardEvent) {\n const skip = this._options?.skip;\n\n if (!findElementFromEventPath((e) => e === this._element, event)) {\n return true;\n }\n\n if (!skip) {\n return false;\n }\n\n return Array.isArray(skip)\n ? findElementFromEventPath(skip.join(), event)\n : skip.call(this._host, event.target as Element, event);\n }\n\n public handleEvent(event: KeyboardEvent) {\n if (this.shouldSkip(event)) {\n return;\n }\n\n const key = event.key.toLowerCase();\n Modifiers.has(key) ? this.pressedKeys.clear() : this.pressedKeys.add(key);\n\n const pendingKeys = Array.from(this.pressedKeys);\n const modifiers = Array.from(Modifiers.values()).filter(\n (mod) => event[`${mod}Key` as keyof KeyboardEvent]\n );\n\n const binding = this.bindings.get(\n createCombinationKey(pendingKeys, modifiers)\n );\n\n if (binding && this.bindingMatches(binding, event)) {\n this.eventModifiersMatch(binding, event);\n binding.handler.call(this._host, event);\n\n if (isKeydownRepeatTrigger(binding.options?.triggers)) {\n this.pressedKeys.delete(key);\n }\n }\n\n if (isKeyup(event) && !Modifiers.has(key)) {\n this.pressedKeys.delete(key);\n }\n }\n\n /**\n * Registers a keybinding handler.\n */\n public set(\n key: string | string[],\n handler: KeyBindingHandler,\n options?: KeyBindingOptions\n ) {\n const { keys, modifiers } = parseKeys(key);\n const combination = createCombinationKey(keys, modifiers);\n const _options = { ...this._options?.bindingDefaults, ...options };\n\n this.bindings.set(combination, {\n keys,\n handler,\n options: _options,\n modifiers,\n });\n\n return this;\n }\n\n /**\n * Register a handler function which is called when the target receives a key\n * which \"activates\" it.\n *\n * In the browser context this is usually either an Enter and/or Space keypress.\n */\n public setActivateHandler(\n handler: KeyBindingHandler,\n options?: KeyBindingOptions\n ) {\n for (const key of [enterKey, spaceBar]) {\n this.set(key, handler, options);\n }\n\n return this;\n }\n\n public hostConnected(): void {\n this._host.addEventListener('keyup', this);\n this._host.addEventListener('keydown', this);\n }\n\n public hostDisconnected(): void {\n this._host.removeEventListener('keyup', this);\n this._host.removeEventListener('keydown', this);\n }\n}\n\n/**\n * Creates a keybinding controller and adds to it to the passed `element`\n * with the provided `options`.\n */\nexport function addKeybindings(\n element: ReactiveControllerHost & Element,\n options?: KeyBindingControllerOptions\n) {\n return new KeyBindingController(element, options);\n}\n"]}
@@ -12,6 +12,9 @@ import IgcCardContentComponent from '../../card/card.content.js';
12
12
  import IgcCardHeaderComponent from '../../card/card.header.js';
13
13
  import IgcCardComponent from '../../card/card.js';
14
14
  import IgcCardMediaComponent from '../../card/card.media.js';
15
+ import IgcCarouselIndicatorComponent from '../../carousel/carousel-indicator.js';
16
+ import IgcCarouselSlideComponent from '../../carousel/carousel-slide.js';
17
+ import IgcCarouselComponent from '../../carousel/carousel.js';
15
18
  import IgcCheckboxComponent from '../../checkbox/checkbox.js';
16
19
  import IgcSwitchComponent from '../../checkbox/switch.js';
17
20
  import IgcChipComponent from '../../chip/chip.js';
@@ -76,6 +79,9 @@ const allComponents = [
76
79
  IgcCardHeaderComponent,
77
80
  IgcCardMediaComponent,
78
81
  IgcCardComponent,
82
+ IgcCarouselComponent,
83
+ IgcCarouselIndicatorComponent,
84
+ IgcCarouselSlideComponent,
79
85
  IgcCheckboxComponent,
80
86
  IgcChipComponent,
81
87
  IgcComboComponent,