igniteui-webcomponents 4.3.0 → 4.4.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 (702) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/animations/presets/fade/index.d.ts +2 -2
  3. package/animations/presets/fade/index.js +4 -6
  4. package/animations/presets/fade/index.js.map +1 -1
  5. package/animations/presets/grow/index.d.ts +2 -2
  6. package/animations/presets/grow/index.js +8 -10
  7. package/animations/presets/grow/index.js.map +1 -1
  8. package/animations/presets/index.d.ts +1 -0
  9. package/animations/presets/index.js +1 -0
  10. package/animations/presets/index.js.map +1 -1
  11. package/animations/presets/slide/index.d.ts +3 -0
  12. package/animations/presets/slide/index.js +16 -0
  13. package/animations/presets/slide/index.js.map +1 -0
  14. package/components/accordion/themes/accordion.base.css.js +1 -4
  15. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  16. package/components/avatar/avatar.js +5 -2
  17. package/components/avatar/avatar.js.map +1 -1
  18. package/components/avatar/themes/avatar.base.css.js +97 -0
  19. package/components/avatar/themes/avatar.base.css.js.map +1 -0
  20. package/components/avatar/themes/dark/avatar.bootstrap.css.js +3 -0
  21. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -0
  22. package/components/avatar/themes/dark/avatar.fluent.css.js +3 -0
  23. package/components/avatar/themes/dark/avatar.fluent.css.js.map +1 -0
  24. package/components/avatar/themes/dark/avatar.indigo.css.js +3 -0
  25. package/components/avatar/themes/dark/avatar.indigo.css.js.map +1 -0
  26. package/components/avatar/themes/dark/avatar.material.css.js +3 -0
  27. package/components/avatar/themes/dark/avatar.material.css.js.map +1 -0
  28. package/components/avatar/themes/light/avatar.bootstrap.css.js +19 -18
  29. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
  30. package/components/avatar/themes/light/avatar.fluent.css.js +27 -0
  31. package/components/avatar/themes/light/avatar.fluent.css.js.map +1 -0
  32. package/components/avatar/themes/light/avatar.indigo.css.js +27 -0
  33. package/components/avatar/themes/light/avatar.indigo.css.js.map +1 -0
  34. package/components/avatar/themes/light/avatar.material.css.js +27 -0
  35. package/components/avatar/themes/light/avatar.material.css.js.map +1 -0
  36. package/components/badge/themes/light/badge.base.css.js +1 -2
  37. package/components/badge/themes/light/badge.base.css.js.map +1 -1
  38. package/components/badge/themes/light/badge.bootstrap.css.js +1 -2
  39. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  40. package/components/button/button-base.d.ts +14 -6
  41. package/components/button/button-base.js +51 -18
  42. package/components/button/button-base.js.map +1 -1
  43. package/components/button/themes/button/dark/button.bootstrap.css.js +1 -13
  44. package/components/button/themes/button/dark/button.bootstrap.css.js.map +1 -1
  45. package/components/button/themes/button/dark/button.fluent.css.js +1 -13
  46. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  47. package/components/button/themes/button/dark/button.indigo.css.js +1 -13
  48. package/components/button/themes/button/dark/button.indigo.css.js.map +1 -1
  49. package/components/button/themes/button/dark/button.material.css.js +1 -13
  50. package/components/button/themes/button/dark/button.material.css.js.map +1 -1
  51. package/components/button/themes/button/light/button.base.css.js +5 -6
  52. package/components/button/themes/button/light/button.base.css.js.map +1 -1
  53. package/components/button/themes/button/light/button.bootstrap.css.js +80 -62
  54. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  55. package/components/button/themes/button/light/button.fluent.css.js +97 -72
  56. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  57. package/components/button/themes/button/light/button.indigo.css.js +100 -73
  58. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  59. package/components/button/themes/button/light/button.material.css.js +103 -69
  60. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  61. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
  62. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
  63. package/components/button/themes/icon-button/light/icon-button.base.css.js +3 -6
  64. package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
  65. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +42 -11
  66. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  67. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +44 -24
  68. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  69. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +36 -7
  70. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  71. package/components/button/themes/icon-button/light/icon-button.material.css.js +37 -7
  72. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  73. package/components/calendar/calendar.d.ts +2 -5
  74. package/components/calendar/calendar.js +31 -35
  75. package/components/calendar/calendar.js.map +1 -1
  76. package/components/calendar/days-view/days-view.js +6 -6
  77. package/components/calendar/days-view/days-view.js.map +1 -1
  78. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +60 -6
  79. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
  80. package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js +53 -3
  81. package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js.map +1 -1
  82. package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js +50 -3
  83. package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  84. package/components/calendar/themes/calendar.base.css.js +66 -6
  85. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  86. package/components/calendar/themes/days-view.base.css.js +6 -8
  87. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  88. package/components/calendar/themes/fluent/calendar.fluent.css.js +123 -9
  89. package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
  90. package/components/calendar/themes/fluent/days-view.fluent.css.js +2 -3
  91. package/components/calendar/themes/fluent/days-view.fluent.css.js.map +1 -1
  92. package/components/calendar/themes/fluent/year-month-view.fluent.css.js +1 -2
  93. package/components/calendar/themes/fluent/year-month-view.fluent.css.js.map +1 -1
  94. package/components/calendar/themes/indigo/calendar.indigo.css.js +67 -0
  95. package/components/calendar/themes/indigo/calendar.indigo.css.js.map +1 -0
  96. package/components/calendar/themes/year-month-view.base.css.js +1 -2
  97. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  98. package/components/card/card.js +2 -0
  99. package/components/card/card.js.map +1 -1
  100. package/components/card/themes/light/card.actions.bootstrap.css.js +1 -2
  101. package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
  102. package/components/card/themes/light/card.actions.material.css.js +1 -2
  103. package/components/card/themes/light/card.actions.material.css.js.map +1 -1
  104. package/components/card/themes/light/card.bootstrap.css.js +11 -3
  105. package/components/card/themes/light/card.bootstrap.css.js.map +1 -1
  106. package/components/card/themes/light/card.content.bootstrap.css.js +1 -2
  107. package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
  108. package/components/card/themes/light/card.content.indigo.css.js +1 -2
  109. package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
  110. package/components/card/themes/light/card.content.material.css.js +1 -2
  111. package/components/card/themes/light/card.content.material.css.js.map +1 -1
  112. package/components/card/themes/light/card.fluent.css.js +11 -4
  113. package/components/card/themes/light/card.fluent.css.js.map +1 -1
  114. package/components/card/themes/light/card.header.bootstrap.css.js +1 -2
  115. package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
  116. package/components/card/themes/light/card.header.fluent.css.js +1 -2
  117. package/components/card/themes/light/card.header.fluent.css.js.map +1 -1
  118. package/components/card/themes/light/card.header.indigo.css.js +1 -2
  119. package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
  120. package/components/card/themes/light/card.header.material.css.js +1 -2
  121. package/components/card/themes/light/card.header.material.css.js.map +1 -1
  122. package/components/card/themes/light/card.indigo.css.js +14 -0
  123. package/components/card/themes/light/card.indigo.css.js.map +1 -0
  124. package/components/card/themes/light/card.material.css.js +11 -4
  125. package/components/card/themes/light/card.material.css.js.map +1 -1
  126. package/components/card/themes/light/card.media.material.css.js +1 -2
  127. package/components/card/themes/light/card.media.material.css.js.map +1 -1
  128. package/components/checkbox/checkbox-base.d.ts +8 -35
  129. package/components/checkbox/checkbox-base.js +28 -41
  130. package/components/checkbox/checkbox-base.js.map +1 -1
  131. package/components/checkbox/checkbox.d.ts +0 -1
  132. package/components/checkbox/checkbox.js +5 -16
  133. package/components/checkbox/checkbox.js.map +1 -1
  134. package/components/checkbox/switch.d.ts +0 -2
  135. package/components/checkbox/switch.js +4 -16
  136. package/components/checkbox/switch.js.map +1 -1
  137. package/components/checkbox/themes/dark/checkbox.bootstrap.css.js +1 -13
  138. package/components/checkbox/themes/dark/checkbox.bootstrap.css.js.map +1 -1
  139. package/components/checkbox/themes/dark/checkbox.fluent.css.js +1 -13
  140. package/components/checkbox/themes/dark/checkbox.fluent.css.js.map +1 -1
  141. package/components/checkbox/themes/dark/checkbox.indigo.css.js +1 -13
  142. package/components/checkbox/themes/dark/checkbox.indigo.css.js.map +1 -1
  143. package/components/checkbox/themes/dark/checkbox.material.css.js +1 -13
  144. package/components/checkbox/themes/dark/checkbox.material.css.js.map +1 -1
  145. package/components/checkbox/themes/dark/switch.bootstrap.css.js +1 -13
  146. package/components/checkbox/themes/dark/switch.bootstrap.css.js.map +1 -1
  147. package/components/checkbox/themes/dark/switch.fluent.css.js +1 -13
  148. package/components/checkbox/themes/dark/switch.fluent.css.js.map +1 -1
  149. package/components/checkbox/themes/dark/switch.indigo.css.js +1 -13
  150. package/components/checkbox/themes/dark/switch.indigo.css.js.map +1 -1
  151. package/components/checkbox/themes/dark/switch.material.css.js +1 -13
  152. package/components/checkbox/themes/dark/switch.material.css.js.map +1 -1
  153. package/components/checkbox/themes/light/checkbox.base.css.js +3 -18
  154. package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
  155. package/components/checkbox/themes/light/checkbox.bootstrap.css.js +33 -33
  156. package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
  157. package/components/checkbox/themes/light/checkbox.fluent.css.js +37 -37
  158. package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
  159. package/components/checkbox/themes/light/checkbox.indigo.css.js +38 -35
  160. package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
  161. package/components/checkbox/themes/light/checkbox.material.css.js +31 -33
  162. package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
  163. package/components/checkbox/themes/light/switch.base.css.js +3 -16
  164. package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
  165. package/components/checkbox/themes/light/switch.bootstrap.css.js +18 -27
  166. package/components/checkbox/themes/light/switch.bootstrap.css.js.map +1 -1
  167. package/components/checkbox/themes/light/switch.fluent.css.js +39 -38
  168. package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
  169. package/components/checkbox/themes/light/switch.indigo.css.js +33 -35
  170. package/components/checkbox/themes/light/switch.indigo.css.js.map +1 -1
  171. package/components/checkbox/themes/light/switch.material.css.js +22 -31
  172. package/components/checkbox/themes/light/switch.material.css.js.map +1 -1
  173. package/components/chip/themes/chip.base.css.js +1 -5
  174. package/components/chip/themes/chip.base.css.js.map +1 -1
  175. package/components/chip/themes/chip.bootstrap.css.js +35 -6
  176. package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
  177. package/components/chip/themes/chip.fluent.css.js +35 -5
  178. package/components/chip/themes/chip.fluent.css.js.map +1 -1
  179. package/components/chip/themes/chip.indigo.css.js +35 -5
  180. package/components/chip/themes/chip.indigo.css.js.map +1 -1
  181. package/components/chip/themes/chip.material.css.js +35 -5
  182. package/components/chip/themes/chip.material.css.js.map +1 -1
  183. package/components/combo/combo-header.js +5 -3
  184. package/components/combo/combo-header.js.map +1 -1
  185. package/components/combo/combo-item.js +5 -4
  186. package/components/combo/combo-item.js.map +1 -1
  187. package/components/combo/combo.d.ts +9 -37
  188. package/components/combo/combo.js +71 -58
  189. package/components/combo/combo.js.map +1 -1
  190. package/components/combo/controllers/selection.js +1 -3
  191. package/components/combo/controllers/selection.js.map +1 -1
  192. package/components/combo/themes/dark/combo.indigo.css.js +1 -1
  193. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
  194. package/components/combo/themes/dark/combo.material.css.js +1 -1
  195. package/components/combo/themes/dark/combo.material.css.js.map +1 -1
  196. package/components/combo/themes/light/combo.base.css.js +19 -33
  197. package/components/combo/themes/light/combo.base.css.js.map +1 -1
  198. package/components/combo/themes/light/combo.bootstrap.css.js +209 -88
  199. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  200. package/components/combo/themes/light/combo.fluent.css.js +201 -47
  201. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  202. package/components/combo/themes/light/combo.indigo.css.js +213 -25
  203. package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
  204. package/components/combo/themes/light/combo.material.css.js +242 -89
  205. package/components/combo/themes/light/combo.material.css.js.map +1 -1
  206. package/components/combo/themes/light/header/combo-header.base.css.js +3 -7
  207. package/components/combo/themes/light/header/combo-header.base.css.js.map +1 -1
  208. package/components/combo/themes/light/item/combo-item.base.css.js +9 -29
  209. package/components/combo/themes/light/item/combo-item.base.css.js.map +1 -1
  210. package/components/common/localization/validation-en.d.ts +10 -0
  211. package/components/common/localization/validation-en.js +10 -0
  212. package/components/common/localization/validation-en.js.map +1 -0
  213. package/components/common/mixins/event-emitter.js.map +1 -1
  214. package/components/common/mixins/form-associated-required.d.ts +16 -0
  215. package/components/common/mixins/form-associated-required.js +29 -0
  216. package/components/common/mixins/form-associated-required.js.map +1 -0
  217. package/components/common/mixins/form-associated.d.ts +92 -0
  218. package/components/common/mixins/form-associated.js +151 -0
  219. package/components/common/mixins/form-associated.js.map +1 -0
  220. package/components/common/util.d.ts +38 -0
  221. package/components/common/util.js +34 -0
  222. package/components/common/util.js.map +1 -1
  223. package/components/common/validators.d.ts +45 -0
  224. package/components/common/validators.js +54 -0
  225. package/components/common/validators.js.map +1 -0
  226. package/components/date-time-input/date-time-input.d.ts +30 -11
  227. package/components/date-time-input/date-time-input.js +147 -135
  228. package/components/date-time-input/date-time-input.js.map +1 -1
  229. package/components/date-time-input/date-util.d.ts +1 -0
  230. package/components/date-time-input/date-util.js +6 -3
  231. package/components/date-time-input/date-util.js.map +1 -1
  232. package/components/dialog/dialog.js +1 -1
  233. package/components/dialog/dialog.js.map +1 -1
  234. package/components/dialog/themes/light/dialog.base.css.js +2 -5
  235. package/components/dialog/themes/light/dialog.base.css.js.map +1 -1
  236. package/components/dialog/themes/light/dialog.bootstrap.css.js +8 -3
  237. package/components/dialog/themes/light/dialog.bootstrap.css.js.map +1 -1
  238. package/components/dialog/themes/light/dialog.fluent.css.js +10 -1
  239. package/components/dialog/themes/light/dialog.fluent.css.js.map +1 -1
  240. package/components/dialog/themes/light/dialog.indigo.css.js +10 -1
  241. package/components/dialog/themes/light/dialog.indigo.css.js.map +1 -1
  242. package/components/dialog/themes/light/dialog.material.css.js +42 -1
  243. package/components/dialog/themes/light/dialog.material.css.js.map +1 -1
  244. package/components/dropdown/dropdown-group.js +6 -3
  245. package/components/dropdown/dropdown-group.js.map +1 -1
  246. package/components/dropdown/dropdown-header.js +6 -4
  247. package/components/dropdown/dropdown-header.js.map +1 -1
  248. package/components/dropdown/dropdown-item.js +8 -11
  249. package/components/dropdown/dropdown-item.js.map +1 -1
  250. package/components/dropdown/dropdown.js +2 -1
  251. package/components/dropdown/dropdown.js.map +1 -1
  252. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  253. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  254. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  255. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  256. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  257. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  258. package/components/dropdown/themes/dark/dropdown.material.css.js +3 -0
  259. package/components/dropdown/themes/dark/dropdown.material.css.js.map +1 -0
  260. package/components/dropdown/themes/light/dropdown.base.css.js +1 -7
  261. package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -1
  262. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +28 -4
  263. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  264. package/components/dropdown/themes/light/dropdown.fluent.css.js +26 -3
  265. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  266. package/components/dropdown/themes/light/dropdown.indigo.css.js +26 -3
  267. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  268. package/components/dropdown/themes/light/dropdown.material.css.d.ts +1 -0
  269. package/components/dropdown/themes/light/dropdown.material.css.js +33 -0
  270. package/components/dropdown/themes/light/dropdown.material.css.js.map +1 -0
  271. package/components/dropdown/themes/light/group/dropdown-group.base.css.d.ts +1 -0
  272. package/components/dropdown/themes/light/{dropdown-group.base.css.js → group/dropdown-group.base.css.js} +4 -7
  273. package/components/dropdown/themes/light/group/dropdown-group.base.css.js.map +1 -0
  274. package/components/dropdown/themes/light/group/dropdown-group.bootstrap.css.d.ts +1 -0
  275. package/components/dropdown/themes/light/group/dropdown-group.bootstrap.css.js +28 -0
  276. package/components/dropdown/themes/light/group/dropdown-group.bootstrap.css.js.map +1 -0
  277. package/components/dropdown/themes/light/group/dropdown-group.fluent.css.d.ts +1 -0
  278. package/components/dropdown/themes/light/group/dropdown-group.fluent.css.js +29 -0
  279. package/components/dropdown/themes/light/group/dropdown-group.fluent.css.js.map +1 -0
  280. package/components/dropdown/themes/light/group/dropdown-group.indigo.css.d.ts +1 -0
  281. package/components/dropdown/themes/light/group/dropdown-group.indigo.css.js +28 -0
  282. package/components/dropdown/themes/light/group/dropdown-group.indigo.css.js.map +1 -0
  283. package/components/dropdown/themes/light/group/dropdown-group.material.css.d.ts +1 -0
  284. package/components/dropdown/themes/light/group/dropdown-group.material.css.js +28 -0
  285. package/components/dropdown/themes/light/group/dropdown-group.material.css.js.map +1 -0
  286. package/components/dropdown/themes/light/header/dropdown-header.base.css.d.ts +1 -0
  287. package/components/dropdown/themes/light/header/dropdown-header.base.css.js +56 -0
  288. package/components/dropdown/themes/light/header/dropdown-header.base.css.js.map +1 -0
  289. package/components/dropdown/themes/light/header/dropdown-header.bootstrap.css.d.ts +1 -0
  290. package/components/dropdown/themes/light/header/dropdown-header.bootstrap.css.js +28 -0
  291. package/components/dropdown/themes/light/header/dropdown-header.bootstrap.css.js.map +1 -0
  292. package/components/dropdown/themes/light/header/dropdown-header.fluent.css.d.ts +1 -0
  293. package/components/dropdown/themes/light/header/dropdown-header.fluent.css.js +27 -0
  294. package/components/dropdown/themes/light/header/dropdown-header.fluent.css.js.map +1 -0
  295. package/components/dropdown/themes/light/header/dropdown-header.indigo.css.d.ts +1 -0
  296. package/components/dropdown/themes/light/header/dropdown-header.indigo.css.js +28 -0
  297. package/components/dropdown/themes/light/header/dropdown-header.indigo.css.js.map +1 -0
  298. package/components/dropdown/themes/light/header/dropdown-header.material.css.d.ts +1 -0
  299. package/components/dropdown/themes/light/header/dropdown-header.material.css.js +28 -0
  300. package/components/dropdown/themes/light/header/dropdown-header.material.css.js.map +1 -0
  301. package/components/dropdown/themes/light/item/dropdown-item.base.css.d.ts +1 -0
  302. package/components/dropdown/themes/light/item/dropdown-item.base.css.js +105 -0
  303. package/components/dropdown/themes/light/item/dropdown-item.base.css.js.map +1 -0
  304. package/components/dropdown/themes/light/item/dropdown-item.bootstrap.css.d.ts +1 -0
  305. package/components/dropdown/themes/light/item/dropdown-item.bootstrap.css.js +54 -0
  306. package/components/dropdown/themes/light/item/dropdown-item.bootstrap.css.js.map +1 -0
  307. package/components/dropdown/themes/light/item/dropdown-item.fluent.css.d.ts +1 -0
  308. package/components/dropdown/themes/light/item/dropdown-item.fluent.css.js +55 -0
  309. package/components/dropdown/themes/light/item/dropdown-item.fluent.css.js.map +1 -0
  310. package/components/dropdown/themes/light/item/dropdown-item.indigo.css.d.ts +1 -0
  311. package/components/dropdown/themes/light/item/dropdown-item.indigo.css.js +54 -0
  312. package/components/dropdown/themes/light/item/dropdown-item.indigo.css.js.map +1 -0
  313. package/components/dropdown/themes/light/item/dropdown-item.material.css.d.ts +1 -0
  314. package/components/dropdown/themes/light/item/dropdown-item.material.css.js +54 -0
  315. package/components/dropdown/themes/light/item/dropdown-item.material.css.js.map +1 -0
  316. package/components/expansion-panel/expansion-panel.js +1 -1
  317. package/components/expansion-panel/expansion-panel.js.map +1 -1
  318. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +13 -4
  319. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
  320. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +14 -1
  321. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -1
  322. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +14 -1
  323. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
  324. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +14 -1
  325. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
  326. package/components/form/form.d.ts +3 -0
  327. package/components/form/form.js.map +1 -1
  328. package/components/icon/dark/icon.bootstrap.css.js +1 -13
  329. package/components/icon/dark/icon.bootstrap.css.js.map +1 -1
  330. package/components/icon/dark/icon.fluent.css.js +1 -13
  331. package/components/icon/dark/icon.fluent.css.js.map +1 -1
  332. package/components/icon/dark/icon.indigo.css.js +1 -13
  333. package/components/icon/dark/icon.indigo.css.js.map +1 -1
  334. package/components/icon/dark/icon.material.css.js +1 -13
  335. package/components/icon/dark/icon.material.css.js.map +1 -1
  336. package/components/icon/icon.base.css.js +1 -10
  337. package/components/icon/icon.base.css.js.map +1 -1
  338. package/components/icon/light/icon.bootstrap.css.js +9 -19
  339. package/components/icon/light/icon.bootstrap.css.js.map +1 -1
  340. package/components/icon/light/icon.fluent.css.js +9 -19
  341. package/components/icon/light/icon.fluent.css.js.map +1 -1
  342. package/components/icon/light/icon.indigo.css.js +9 -19
  343. package/components/icon/light/icon.indigo.css.js.map +1 -1
  344. package/components/icon/light/icon.material.css.js +9 -19
  345. package/components/icon/light/icon.material.css.js.map +1 -1
  346. package/components/input/input-base.d.ts +13 -24
  347. package/components/input/input-base.js +21 -25
  348. package/components/input/input-base.js.map +1 -1
  349. package/components/input/input.d.ts +24 -15
  350. package/components/input/input.js +106 -48
  351. package/components/input/input.js.map +1 -1
  352. package/components/input/themes/dark/input.dark.indigo.css.js +1 -1
  353. package/components/input/themes/dark/input.dark.indigo.css.js.map +1 -1
  354. package/components/input/themes/dark/input.dark.material.css.js +1 -1
  355. package/components/input/themes/dark/input.dark.material.css.js.map +1 -1
  356. package/components/input/themes/light/input.base.css.js +6 -14
  357. package/components/input/themes/light/input.base.css.js.map +1 -1
  358. package/components/input/themes/light/input.bootstrap.css.js +209 -115
  359. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  360. package/components/input/themes/light/input.fluent.css.js +144 -61
  361. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  362. package/components/input/themes/light/input.indigo.css.js +170 -43
  363. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  364. package/components/input/themes/light/input.material.css.js +377 -188
  365. package/components/input/themes/light/input.material.css.js.map +1 -1
  366. package/components/list/themes/dark/list.bootstrap.css.js +1 -1
  367. package/components/list/themes/dark/list.bootstrap.css.js.map +1 -1
  368. package/components/list/themes/dark/list.fluent.css.js +1 -1
  369. package/components/list/themes/dark/list.fluent.css.js.map +1 -1
  370. package/components/list/themes/dark/list.indigo.css.js +1 -1
  371. package/components/list/themes/dark/list.indigo.css.js.map +1 -1
  372. package/components/list/themes/light/list-header.base.css.js +0 -33
  373. package/components/list/themes/light/list-header.base.css.js.map +1 -1
  374. package/components/list/themes/light/list-header.indigo.css.js +1 -2
  375. package/components/list/themes/light/list-header.indigo.css.js.map +1 -1
  376. package/components/list/themes/light/list-item.base.css.js +26 -34
  377. package/components/list/themes/light/list-item.base.css.js.map +1 -1
  378. package/components/list/themes/light/list-item.bootstrap.css.js +27 -2
  379. package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
  380. package/components/list/themes/light/list-item.fluent.css.js +27 -2
  381. package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
  382. package/components/list/themes/light/list-item.indigo.css.js +27 -2
  383. package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
  384. package/components/list/themes/light/list.base.css.js +27 -2
  385. package/components/list/themes/light/list.base.css.js.map +1 -1
  386. package/components/list/themes/light/list.bootstrap.css.js +27 -3
  387. package/components/list/themes/light/list.bootstrap.css.js.map +1 -1
  388. package/components/mask-input/mask-input-base.d.ts +2 -9
  389. package/components/mask-input/mask-input-base.js +7 -12
  390. package/components/mask-input/mask-input-base.js.map +1 -1
  391. package/components/mask-input/mask-input.d.ts +5 -6
  392. package/components/mask-input/mask-input.js +42 -51
  393. package/components/mask-input/mask-input.js.map +1 -1
  394. package/components/mask-input/mask-parser.js +2 -1
  395. package/components/mask-input/mask-parser.js.map +1 -1
  396. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +1 -1
  397. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -1
  398. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +1 -1
  399. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -1
  400. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +1 -1
  401. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -1
  402. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +1 -1
  403. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -1
  404. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +1 -1
  405. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -1
  406. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +1 -2
  407. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -1
  408. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +1 -2
  409. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -1
  410. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js +1 -2
  411. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -1
  412. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +17 -2
  413. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -1
  414. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +17 -1
  415. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -1
  416. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js +0 -33
  417. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -1
  418. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +16 -35
  419. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
  420. package/components/nav-drawer/themes/light/nav-drawer.base.css.js +16 -4
  421. package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -1
  422. package/components/navbar/themes/dark/navbar.bootstrap.css.js +1 -13
  423. package/components/navbar/themes/dark/navbar.bootstrap.css.js.map +1 -1
  424. package/components/navbar/themes/dark/navbar.fluent.css.js +1 -13
  425. package/components/navbar/themes/dark/navbar.fluent.css.js.map +1 -1
  426. package/components/navbar/themes/dark/navbar.indigo.css.js +1 -13
  427. package/components/navbar/themes/dark/navbar.indigo.css.js.map +1 -1
  428. package/components/navbar/themes/dark/navbar.material.css.js +1 -13
  429. package/components/navbar/themes/dark/navbar.material.css.js.map +1 -1
  430. package/components/navbar/themes/light/navbar.bootstrap.css.js +5 -53
  431. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  432. package/components/navbar/themes/light/navbar.fluent.css.js +4 -52
  433. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  434. package/components/navbar/themes/light/navbar.indigo.css.js +4 -52
  435. package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
  436. package/components/navbar/themes/light/navbar.material.css.js +4 -52
  437. package/components/navbar/themes/light/navbar.material.css.js.map +1 -1
  438. package/components/navbar/themes/navbar.base.css.js +1 -3
  439. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  440. package/components/progress/themes/circular/circular.progress.base.css.js +1 -3
  441. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  442. package/components/progress/themes/circular/circular.progress.bootstrap.css.js +1 -2
  443. package/components/progress/themes/circular/circular.progress.bootstrap.css.js.map +1 -1
  444. package/components/progress/themes/circular/circular.progress.fluent.css.js +1 -2
  445. package/components/progress/themes/circular/circular.progress.fluent.css.js.map +1 -1
  446. package/components/progress/themes/linear/linear.progress.base.css.js +44 -66
  447. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  448. package/components/progress/themes/linear/linear.progress.bootstrap.css.js +11 -65
  449. package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
  450. package/components/progress/themes/linear/linear.progress.fluent.css.js +11 -7
  451. package/components/progress/themes/linear/linear.progress.fluent.css.js.map +1 -1
  452. package/components/progress/themes/linear/linear.progress.indigo.css.js +11 -31
  453. package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
  454. package/components/radio/radio.d.ts +13 -37
  455. package/components/radio/radio.js +135 -97
  456. package/components/radio/radio.js.map +1 -1
  457. package/components/radio/themes/dark/radio.bootstrap.css.js +1 -13
  458. package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -1
  459. package/components/radio/themes/dark/radio.fluent.css.js +1 -13
  460. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  461. package/components/radio/themes/dark/radio.indigo.css.js +1 -13
  462. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  463. package/components/radio/themes/dark/radio.material.css.js +1 -13
  464. package/components/radio/themes/dark/radio.material.css.js.map +1 -1
  465. package/components/radio/themes/light/radio.base.css.js +1 -17
  466. package/components/radio/themes/light/radio.base.css.js.map +1 -1
  467. package/components/radio/themes/light/radio.bootstrap.css.js +10 -54
  468. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  469. package/components/radio/themes/light/radio.fluent.css.js +2 -50
  470. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  471. package/components/radio/themes/light/radio.indigo.css.js +13 -53
  472. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  473. package/components/radio/themes/light/radio.material.css.js +4 -49
  474. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  475. package/components/radio-group/radio-group.base.css.js +1 -2
  476. package/components/radio-group/radio-group.base.css.js.map +1 -1
  477. package/components/radio-group/radio-group.d.ts +0 -4
  478. package/components/radio-group/radio-group.fluent.css.js +1 -2
  479. package/components/radio-group/radio-group.fluent.css.js.map +1 -1
  480. package/components/radio-group/radio-group.js +3 -54
  481. package/components/radio-group/radio-group.js.map +1 -1
  482. package/components/radio-group/radio-group.material.css.js +1 -2
  483. package/components/radio-group/radio-group.material.css.js.map +1 -1
  484. package/components/rating/dark/rating.fluent.css.d.ts +1 -0
  485. package/components/rating/dark/rating.fluent.css.js +3 -0
  486. package/components/rating/dark/rating.fluent.css.js.map +1 -0
  487. package/components/rating/rating-symbol.base.css.js +2 -3
  488. package/components/rating/rating-symbol.base.css.js.map +1 -1
  489. package/components/rating/rating.base.css.js +9 -6
  490. package/components/rating/rating.base.css.js.map +1 -1
  491. package/components/rating/rating.bootstrap.css.js +1 -2
  492. package/components/rating/rating.bootstrap.css.js.map +1 -1
  493. package/components/rating/rating.d.ts +10 -11
  494. package/components/rating/rating.fluent.css.js +12 -7
  495. package/components/rating/rating.fluent.css.js.map +1 -1
  496. package/components/rating/rating.indigo.css.js +1 -2
  497. package/components/rating/rating.indigo.css.js.map +1 -1
  498. package/components/rating/rating.js +19 -15
  499. package/components/rating/rating.js.map +1 -1
  500. package/components/ripple/ripple.material.css.js +1 -0
  501. package/components/ripple/ripple.material.css.js.map +1 -1
  502. package/components/select/select-item.d.ts +0 -2
  503. package/components/select/select-item.js +0 -3
  504. package/components/select/select-item.js.map +1 -1
  505. package/components/select/select.d.ts +9 -40
  506. package/components/select/select.js +41 -49
  507. package/components/select/select.js.map +1 -1
  508. package/components/select/themes/dark/select.fluent.css.js +1 -1
  509. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  510. package/components/select/themes/dark/select.indigo.css.js +1 -1
  511. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  512. package/components/select/themes/dark/select.material.css.js +1 -1
  513. package/components/select/themes/dark/select.material.css.js.map +1 -1
  514. package/components/select/themes/light/select.base.css.js +1 -10
  515. package/components/select/themes/light/select.base.css.js.map +1 -1
  516. package/components/select/themes/light/select.bootstrap.css.js +121 -42
  517. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  518. package/components/select/themes/light/select.fluent.css.js +116 -9
  519. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  520. package/components/select/themes/light/select.indigo.css.js +138 -17
  521. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  522. package/components/select/themes/light/select.material.css.js +162 -27
  523. package/components/select/themes/light/select.material.css.js.map +1 -1
  524. package/components/slider/slider.d.ts +4 -12
  525. package/components/slider/slider.js +16 -25
  526. package/components/slider/slider.js.map +1 -1
  527. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  528. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  529. package/components/slider/themes/dark/slider.fluent.css.js +1 -1
  530. package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
  531. package/components/slider/themes/dark/slider.indigo.css.js +1 -1
  532. package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
  533. package/components/slider/themes/light/slider.base.css.js +21 -18
  534. package/components/slider/themes/light/slider.base.css.js.map +1 -1
  535. package/components/slider/themes/light/slider.bootstrap.css.js +1 -2
  536. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  537. package/components/slider/themes/light/slider.fluent.css.js +7 -5
  538. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  539. package/components/slider/themes/light/slider.indigo.css.js +5 -3
  540. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  541. package/components/slider/themes/light/slider.material.css.js +2 -4
  542. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  543. package/components/snackbar/snackbar.js +1 -1
  544. package/components/snackbar/snackbar.js.map +1 -1
  545. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  546. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  547. package/components/snackbar/themes/light/snackbar.base.css.js +7 -3
  548. package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -1
  549. package/components/snackbar/themes/light/snackbar.bootstrap.css.js +9 -1
  550. package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -1
  551. package/components/snackbar/themes/light/snackbar.fluent.css.js +9 -2
  552. package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -1
  553. package/components/snackbar/themes/light/snackbar.indigo.css.js +9 -2
  554. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
  555. package/components/stepper/animations.d.ts +2 -0
  556. package/components/stepper/animations.js +22 -0
  557. package/components/stepper/animations.js.map +1 -0
  558. package/components/stepper/step.d.ts +17 -8
  559. package/components/stepper/step.js +29 -0
  560. package/components/stepper/step.js.map +1 -1
  561. package/components/stepper/stepper.d.ts +19 -3
  562. package/components/stepper/stepper.js +58 -7
  563. package/components/stepper/stepper.js.map +1 -1
  564. package/components/stepper/themes/step/dark/step.bootstrap.css.js +1 -1
  565. package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -1
  566. package/components/stepper/themes/step/dark/step.fluent.css.js +1 -1
  567. package/components/stepper/themes/step/dark/step.fluent.css.js.map +1 -1
  568. package/components/stepper/themes/step/dark/step.indigo.css.js +1 -1
  569. package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -1
  570. package/components/stepper/themes/step/dark/step.material.css.js +1 -1
  571. package/components/stepper/themes/step/dark/step.material.css.js.map +1 -1
  572. package/components/stepper/themes/step/light/step.base.css.js +46 -174
  573. package/components/stepper/themes/step/light/step.base.css.js.map +1 -1
  574. package/components/stepper/themes/step/light/step.bootstrap.css.js +183 -20
  575. package/components/stepper/themes/step/light/step.bootstrap.css.js.map +1 -1
  576. package/components/stepper/themes/step/light/step.fluent.css.js +179 -13
  577. package/components/stepper/themes/step/light/step.fluent.css.js.map +1 -1
  578. package/components/stepper/themes/step/light/step.indigo.css.js +179 -26
  579. package/components/stepper/themes/step/light/step.indigo.css.js.map +1 -1
  580. package/components/stepper/themes/step/light/step.material.css.js +179 -5
  581. package/components/stepper/themes/step/light/step.material.css.js.map +1 -1
  582. package/components/stepper/themes/stepper/stepper.base.css.js +3 -8
  583. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  584. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -2
  585. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  586. package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -2
  587. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  588. package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -2
  589. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  590. package/components/tabs/themes/dark/tab.dark.base.css.js +1 -1
  591. package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -1
  592. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +1 -1
  593. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -1
  594. package/components/tabs/themes/light/tab-panel.base.css.js +1 -2
  595. package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -1
  596. package/components/tabs/themes/light/tab.base.css.js +24 -3
  597. package/components/tabs/themes/light/tab.base.css.js.map +1 -1
  598. package/components/tabs/themes/light/tab.bootstrap.css.js +27 -6
  599. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  600. package/components/tabs/themes/light/tab.fluent.css.js +24 -2
  601. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  602. package/components/tabs/themes/light/tab.indigo.css.js +24 -2
  603. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  604. package/components/tabs/themes/light/tabs.base.css.js +1 -3
  605. package/components/tabs/themes/light/tabs.base.css.js.map +1 -1
  606. package/components/tabs/themes/light/tabs.bootstrap.css.js +1 -2
  607. package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -1
  608. package/components/tabs/themes/light/tabs.fluent.css.js +1 -2
  609. package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -1
  610. package/components/tabs/themes/light/tabs.indigo.css.js +1 -2
  611. package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -1
  612. package/components/toast/themes/toast.base.css.js +37 -2
  613. package/components/toast/themes/toast.base.css.js.map +1 -1
  614. package/components/toast/themes/toast.bootstrap.css.js +6 -3
  615. package/components/toast/themes/toast.bootstrap.css.js.map +1 -1
  616. package/components/toast/themes/toast.fluent.css.js +6 -3
  617. package/components/toast/themes/toast.fluent.css.js.map +1 -1
  618. package/components/toast/themes/toast.indigo.css.js +6 -3
  619. package/components/toast/themes/toast.indigo.css.js.map +1 -1
  620. package/components/toast/toast.js +1 -1
  621. package/components/toast/toast.js.map +1 -1
  622. package/components/tree/themes/dark/tree-item.bootstrap.css.js +1 -1
  623. package/components/tree/themes/dark/tree-item.bootstrap.css.js.map +1 -1
  624. package/components/tree/themes/dark/tree-item.fluent.css.js +1 -1
  625. package/components/tree/themes/dark/tree-item.fluent.css.js.map +1 -1
  626. package/components/tree/themes/dark/tree-item.indigo.css.js +1 -1
  627. package/components/tree/themes/dark/tree-item.indigo.css.js.map +1 -1
  628. package/components/tree/themes/light/tree-item.base.css.js +18 -7
  629. package/components/tree/themes/light/tree-item.base.css.js.map +1 -1
  630. package/components/tree/themes/light/tree-item.bootstrap.css.js +59 -3
  631. package/components/tree/themes/light/tree-item.bootstrap.css.js.map +1 -1
  632. package/components/tree/themes/light/tree-item.fluent.css.js +57 -1
  633. package/components/tree/themes/light/tree-item.fluent.css.js.map +1 -1
  634. package/components/tree/themes/light/tree-item.indigo.css.js +57 -1
  635. package/components/tree/themes/light/tree-item.indigo.css.js.map +1 -1
  636. package/components/tree/themes/light/tree-item.material.css.d.ts +1 -0
  637. package/components/tree/themes/light/tree-item.material.css.js +58 -0
  638. package/components/tree/themes/light/tree-item.material.css.js.map +1 -0
  639. package/components/tree/themes/light/tree.base.css.js +1 -2
  640. package/components/tree/themes/light/tree.base.css.js.map +1 -1
  641. package/components/tree/tree-item.d.ts +7 -2
  642. package/components/tree/tree-item.js +37 -16
  643. package/components/tree/tree-item.js.map +1 -1
  644. package/components/tree/tree.d.ts +0 -6
  645. package/components/tree/tree.js +0 -4
  646. package/components/tree/tree.js.map +1 -1
  647. package/components/tree/tree.navigation.js +3 -2
  648. package/components/tree/tree.navigation.js.map +1 -1
  649. package/custom-elements.json +798 -525
  650. package/package.json +4 -4
  651. package/themes/dark/bootstrap.css +491 -102
  652. package/themes/dark/fluent.css +531 -125
  653. package/themes/dark/indigo.css +739 -97
  654. package/themes/dark/material.css +445 -94
  655. package/themes/light/bootstrap.css +5 -49
  656. package/themes/light/fluent.css +5 -49
  657. package/themes/light/indigo.css +229 -49
  658. package/themes/light/material.css +5 -49
  659. package/theming/theming-controller.d.ts +3 -2
  660. package/theming/theming-controller.js +38 -19
  661. package/theming/theming-controller.js.map +1 -1
  662. package/theming/theming-decorator.d.ts +4 -3
  663. package/theming/theming-decorator.js +3 -5
  664. package/theming/theming-decorator.js.map +1 -1
  665. package/theming/types.d.ts +1 -9
  666. package/theming/types.js.map +1 -1
  667. package/vscode-html-custom-data.json +242 -289
  668. package/components/avatar/themes/dark/avatar.base.bootstrap.css.js +0 -15
  669. package/components/avatar/themes/dark/avatar.base.bootstrap.css.js.map +0 -1
  670. package/components/avatar/themes/light/avatar.base.css.js +0 -130
  671. package/components/avatar/themes/light/avatar.base.css.js.map +0 -1
  672. package/components/common/types.d.ts +0 -1
  673. package/components/common/types.js +0 -2
  674. package/components/common/types.js.map +0 -1
  675. package/components/dropdown/themes/light/dropdown-group.base.css.js.map +0 -1
  676. package/components/dropdown/themes/light/dropdown-group.fluent.css.js +0 -6
  677. package/components/dropdown/themes/light/dropdown-group.fluent.css.js.map +0 -1
  678. package/components/dropdown/themes/light/dropdown-header.base.css.js +0 -61
  679. package/components/dropdown/themes/light/dropdown-header.base.css.js.map +0 -1
  680. package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js +0 -6
  681. package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js.map +0 -1
  682. package/components/dropdown/themes/light/dropdown-header.fluent.css.js +0 -6
  683. package/components/dropdown/themes/light/dropdown-header.fluent.css.js.map +0 -1
  684. package/components/dropdown/themes/light/dropdown-item.base.css.js +0 -124
  685. package/components/dropdown/themes/light/dropdown-item.base.css.js.map +0 -1
  686. package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js +0 -27
  687. package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js.map +0 -1
  688. package/components/dropdown/themes/light/dropdown-item.fluent.css.js +0 -27
  689. package/components/dropdown/themes/light/dropdown-item.fluent.css.js.map +0 -1
  690. package/components/dropdown/themes/light/dropdown-item.indigo.css.js +0 -27
  691. package/components/dropdown/themes/light/dropdown-item.indigo.css.js.map +0 -1
  692. /package/components/avatar/themes/{light/avatar.base.css.d.ts → avatar.base.css.d.ts} +0 -0
  693. /package/components/avatar/themes/dark/{avatar.base.bootstrap.css.d.ts → avatar.bootstrap.css.d.ts} +0 -0
  694. /package/components/{dropdown/themes/light/dropdown-group.base.css.d.ts → avatar/themes/dark/avatar.fluent.css.d.ts} +0 -0
  695. /package/components/{dropdown/themes/light/dropdown-group.fluent.css.d.ts → avatar/themes/dark/avatar.indigo.css.d.ts} +0 -0
  696. /package/components/{dropdown/themes/light/dropdown-header.base.css.d.ts → avatar/themes/dark/avatar.material.css.d.ts} +0 -0
  697. /package/components/{dropdown/themes/light/dropdown-header.bootstrap.css.d.ts → avatar/themes/light/avatar.fluent.css.d.ts} +0 -0
  698. /package/components/{dropdown/themes/light/dropdown-header.fluent.css.d.ts → avatar/themes/light/avatar.indigo.css.d.ts} +0 -0
  699. /package/components/{dropdown/themes/light/dropdown-item.base.css.d.ts → avatar/themes/light/avatar.material.css.d.ts} +0 -0
  700. /package/components/{dropdown/themes/light/dropdown-item.bootstrap.css.d.ts → calendar/themes/indigo/calendar.indigo.css.d.ts} +0 -0
  701. /package/components/{dropdown/themes/light/dropdown-item.fluent.css.d.ts → card/themes/light/card.indigo.css.d.ts} +0 -0
  702. /package/components/dropdown/themes/{light/dropdown-item.indigo.css.d.ts → dark/dropdown.material.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"rating.js","sourceRoot":"","sources":["../../../src/components/rating/rating.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { guard } from 'lit/directives/guard.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { clamp, isLTR } from '../common/util.js';\nimport { styles } from './rating.base.css.js';\nimport { styles as bootstrap } from './rating.bootstrap.css.js';\nimport { styles as fluent } from './rating.fluent.css.js';\nimport { styles as indigo } from './rating.indigo.css.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcRatingSymbolComponent from './rating-symbol.js';\nimport IgcIconComponent from '../icon/icon.js';\n\ndefineComponents(IgcRatingSymbolComponent, IgcIconComponent);\n\nexport interface IgcRatingEventMap {\n igcChange: CustomEvent<number>;\n igcHover: CustomEvent<number>;\n}\n\n/**\n * Rating provides insight regarding others' opinions and experiences,\n * and can allow the user to submit a rating of their own\n *\n * @element igc-rating\n *\n * @fires igcChange - Emitted when the value of the control changes.\n * @fires igcHover - Emitted when hover is enabled and the user mouses over a symbol of the rating.\n *\n * @csspart base - The main wrapper which holds all of the rating elements.\n * @csspart label - The label part.\n * @csspart value-label - The value label part.\n * @csspart symbols - A wrapper for all rating symbols.\n * @csspart symbol - The part of the encapsulated default symbol.\n * @csspart full - The part of the encapsulated full symbols.\n * @csspart empty - The part of the encapsulated empty symbols.\n *\n * @cssproperty --symbol-size - The size of the symbols.\n * @cssproperty --symbol-full-color - The color of the filled symbol.\n * @cssproperty --symbol-empty-color - The color of the empty symbol.\n * @cssproperty --symbol-full-filter - The filter(s) used for the filled symbol.\n * @cssproperty --symbol-empty-filter - The filter(s) used for the empty symbol.\n */\n@themes({ fluent, bootstrap, indigo })\nexport default class IgcRatingComponent extends SizableMixin(\n EventEmitterMixin<IgcRatingEventMap, Constructor<LitElement>>(LitElement)\n) {\n public static readonly tagName = 'igc-rating';\n\n public static styles = [styles];\n\n protected ratingSymbols: Array<IgcRatingSymbolComponent> = [];\n\n @query('[part=\"symbols\"]', true)\n protected container!: HTMLElement;\n\n @queryAssignedNodes({ slot: 'value-label', flatten: true })\n protected valueLabel!: Array<Node>;\n\n @state()\n protected hoverValue = -1;\n\n @state()\n protected hoverState = false;\n\n protected get isInteractive() {\n return !(this.readonly || this.disabled);\n }\n\n protected get hasProjectedSymbols() {\n return this.ratingSymbols.length > 0;\n }\n\n protected get valueText() {\n // Skip IEEE 754 representation for screen readers\n const value = this.round(this.value);\n\n return this.valueFormat\n ? this.valueFormat\n .replace(/\\{0\\}/gm, `${value}`)\n .replace(/\\{1\\}/gm, `${this.max}`)\n : `${value} of ${this.max}`;\n }\n\n /**\n * The maximum value for the rating.\n *\n * If there are projected symbols, the maximum value will be resolved\n * based on the number of symbols.\n * @attr\n */\n @property({ type: Number })\n public max = 5;\n\n /**\n * The minimum value change allowed.\n *\n * Valid values are in the interval between 0 and 1 inclusive.\n * @attr\n */\n @property({ type: Number })\n public step = 1;\n\n /**\n * The name attribute of the control\n * @attr\n */\n @property()\n public name!: string;\n\n /**\n * The label of the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * A format string which sets aria-valuetext. Instances of '{0}' will be replaced\n * with the current value of the control and instances of '{1}' with the maximum value for the control.\n *\n * Important for screen-readers and useful for localization.\n * @attr value-format\n */\n @property({ attribute: 'value-format' })\n public valueFormat!: string;\n\n /**\n * The current value of the component\n * @attr\n */\n @property({ type: Number })\n public value = 0;\n\n /**\n * Sets the disabled state of the component\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Sets hover preview behavior for the component\n * @attr\n */\n @property({ type: Boolean, reflect: true, attribute: 'hover-preview' })\n public hoverPreview = false;\n\n /**\n * Sets the readonly state of the component\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n /**\n * Toggles single selection visual mode.\n * @attr\n */\n @property({ type: Boolean })\n public single = false;\n\n @watch('max')\n protected handleMaxChange() {\n this.hasProjectedSymbols\n ? (this.max = this.ratingSymbols.length)\n : (this.max = Math.max(0, this.max));\n if (this.max < this.value) {\n this.value = this.max;\n }\n }\n\n @watch('value')\n protected handleValueChange() {\n this.value = clamp(this.value, 0, this.max);\n }\n\n @watch('step')\n protected handlePrecisionChange() {\n this.step = !this.single ? clamp(this.step, 0.001, 1) : 1;\n }\n\n @watch('single')\n protected handleSelectionChange() {\n if (this.single) {\n this.step = 1;\n this.value = Math.ceil(this.value);\n }\n }\n\n constructor() {\n super();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n protected handleClick({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n this.value === value ? (this.value = 0) : (this.value = value);\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected handleMouseMove({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n\n if (this.hoverValue !== value) {\n // Since mousemove spams a lot, only emit on a value change\n this.hoverValue = value;\n this.emitEvent('igcHover', { detail: this.hoverValue });\n }\n }\n\n protected handleMouseEnter() {\n if (this.isInteractive) {\n this.hoverState = true;\n }\n }\n\n protected handleMouseLeave() {\n if (this.isInteractive) {\n this.hoverState = false;\n }\n }\n\n protected handleKeyDown({ key }: KeyboardEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n let result = this.value;\n const ltr = isLTR(this);\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowRight':\n result += ltr ? this.step : -this.step;\n break;\n case 'ArrowDown':\n case 'ArrowLeft':\n result -= ltr ? this.step : -this.step;\n break;\n case 'Home':\n result = this.step;\n break;\n case 'End':\n result = this.max;\n break;\n default:\n return;\n }\n\n // Verify new value is in bounds and emit\n this.value = clamp(result, 0, this.max);\n\n if (result === this.value) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n this.ratingSymbols = slot\n .assignedElements()\n .filter(\n (el) => el instanceof IgcRatingSymbolComponent\n ) as IgcRatingSymbolComponent[];\n\n if (this.hasProjectedSymbols) {\n this.max = this.ratingSymbols.length;\n }\n\n this.requestUpdate();\n }\n\n protected calcNewValue(x: number) {\n const { width, left, right } = this.container.getBoundingClientRect();\n const percent = isLTR(this) ? (x - left) / width : (right - x) / width;\n const value = this.round(this.max * percent + this.step / 2);\n\n return clamp(value, this.step, this.max);\n }\n\n protected getPrecision(num: number) {\n const [_, decimal] = num.toString().split('.');\n return decimal ? decimal.length : 0;\n }\n\n protected round(value: number) {\n value = Math.round(value / this.step) * this.step;\n return Number(value.toFixed(this.getPrecision(this.step)));\n }\n\n protected clipSymbol(index: number, isLTR = true) {\n const value = this.hoverState ? this.hoverValue : this.value;\n const progress = index + 1 - value;\n const exclusive = progress === 0 || this.value === index + 1 ? 0 : 1;\n const selection = this.single ? exclusive : progress;\n const activate = (p: number) => clamp(p * 100, 0, 100);\n\n const forward = `inset(0 ${activate(\n isLTR ? selection : 1 - selection\n )}% 0 0)`;\n const backward = `inset(0 0 0 ${activate(\n isLTR ? 1 - selection : selection\n )}%)`;\n\n return {\n backward: isLTR ? backward : forward,\n forward: isLTR ? forward : backward,\n };\n }\n\n /**\n * Increments the value of the control by `n` steps multiplied by the\n * step factor.\n */\n public stepUp(n = 1) {\n this.value += this.round(n * this.step);\n }\n\n /**\n * Decrements the value of the control by `n` steps multiplied by\n * the step factor.\n */\n public stepDown(n = 1) {\n this.value -= this.round(n * this.step);\n }\n\n protected *renderSymbols() {\n const ltr = isLTR(this);\n for (let i = 0; i < this.max; i++) {\n const { forward, backward } = this.clipSymbol(i, ltr);\n yield html`<igc-rating-symbol exportparts=\"symbol, full, empty\">\n <igc-icon\n collection=\"internal\"\n name=\"star\"\n style=${styleMap({ clipPath: forward })}\n ></igc-icon>\n <igc-icon\n collection=\"internal\"\n name=\"star_border\"\n style=${styleMap({ clipPath: backward })}\n slot=\"empty\"\n ></igc-icon>\n </igc-rating-symbol>`;\n }\n }\n\n protected clipProjected() {\n if (this.hasProjectedSymbols) {\n const ltr = isLTR(this);\n this.ratingSymbols.forEach((symbol: IgcRatingSymbolComponent, i) => {\n const full = symbol.shadowRoot?.querySelector(\n '[part=\"symbol full\"]'\n ) as HTMLElement;\n\n const empty = symbol.shadowRoot?.querySelector(\n '[part=\"symbol empty\"]'\n ) as HTMLElement;\n const { forward, backward } = this.clipSymbol(i, ltr);\n\n if (full) {\n full.style.clipPath = forward;\n }\n\n if (empty) {\n empty.style.clipPath = backward;\n }\n });\n }\n }\n\n protected override render() {\n const props = [\n this.value,\n this.hoverValue,\n this.max,\n this.step,\n this.single,\n this.hoverState,\n this.ratingSymbols,\n ];\n\n return html`\n <label part=\"label\" id=\"rating-label\" ?hidden=${!this.label}\n >${this.label}</label\n >\n <div\n part=\"base\"\n role=\"slider\"\n tabindex=${ifDefined(this.disabled ? undefined : 0)}\n aria-labelledby=\"rating-label\"\n aria-valuemin=\"0\"\n aria-valuenow=${this.value}\n aria-valuemax=${this.max}\n aria-valuetext=${this.valueText}\n >\n <div\n aria-hidden=\"true\"\n part=\"symbols\"\n @click=${this.handleClick}\n @mouseenter=${this.hoverPreview ? this.handleMouseEnter : nothing}\n @mouseleave=${this.hoverPreview ? this.handleMouseLeave : nothing}\n @mousemove=${this.hoverPreview ? this.handleMouseMove : nothing}\n >\n <slot name=\"symbol\" @slotchange=${this.handleSlotChange}>\n ${guard(props, () => {\n this.clipProjected();\n return this.renderSymbols();\n })}\n </slot>\n </div>\n <label part=\"value-label\" ?hidden=${this.valueLabel.length === 0}>\n <slot name=\"value-label\"></slot>\n </label>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-rating': IgcRatingComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"rating.js","sourceRoot":"","sources":["../../../src/components/rating/rating.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { guard } from 'lit/directives/guard.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { clamp, format, isLTR } from '../common/util.js';\nimport { styles } from './rating.base.css.js';\nimport { styles as bootstrap } from './rating.bootstrap.css.js';\nimport { styles as fluent } from './rating.fluent.css.js';\nimport { styles as indigo } from './rating.indigo.css.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcRatingSymbolComponent from './rating-symbol.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { FormAssociatedMixin } from '../common/mixins/form-associated.js';\n\ndefineComponents(IgcRatingSymbolComponent, IgcIconComponent);\n\nexport interface IgcRatingEventMap {\n igcChange: CustomEvent<number>;\n igcHover: CustomEvent<number>;\n}\n\n/**\n * Rating provides insight regarding others' opinions and experiences,\n * and can allow the user to submit a rating of their own\n *\n * @element igc-rating\n *\n * @fires igcChange - Emitted when the value of the control changes.\n * @fires igcHover - Emitted when hover is enabled and the user mouses over a symbol of the rating.\n *\n * @csspart base - The main wrapper which holds all of the rating elements.\n * @csspart label - The label part.\n * @csspart value-label - The value label part.\n * @csspart symbols - A wrapper for all rating symbols.\n * @csspart symbol - The part of the encapsulated default symbol.\n * @csspart full - The part of the encapsulated full symbols.\n * @csspart empty - The part of the encapsulated empty symbols.\n *\n * @cssproperty --symbol-size - The size of the symbols.\n * @cssproperty --symbol-full-color - The color of the filled symbol.\n * @cssproperty --symbol-empty-color - The color of the empty symbol.\n * @cssproperty --symbol-full-filter - The filter(s) used for the filled symbol.\n * @cssproperty --symbol-empty-filter - The filter(s) used for the empty symbol.\n */\n@themes({ fluent, bootstrap, indigo })\nexport default class IgcRatingComponent extends FormAssociatedMixin(\n SizableMixin(\n EventEmitterMixin<IgcRatingEventMap, Constructor<LitElement>>(LitElement)\n )\n) {\n public static readonly tagName = 'igc-rating';\n public static styles = [styles];\n\n protected ratingSymbols: Array<IgcRatingSymbolComponent> = [];\n\n @query('[part=\"symbols\"]', true)\n protected container!: HTMLElement;\n\n @queryAssignedNodes({ slot: 'value-label', flatten: true })\n protected valueLabel!: Array<Node>;\n\n @state()\n protected hoverValue = -1;\n\n @state()\n protected hoverState = false;\n\n protected get isInteractive() {\n return !(this.readonly || this.disabled);\n }\n\n protected get hasProjectedSymbols() {\n return this.ratingSymbols.length > 0;\n }\n\n protected get valueText() {\n // Skip IEEE 754 representation for screen readers\n const value = this.round(this.value);\n return this.valueFormat\n ? format(this.valueFormat, `${value}`, `${this.max}`)\n : `${value} of ${this.max}`;\n }\n\n /**\n * The maximum value for the rating.\n *\n * If there are projected symbols, the maximum value will be resolved\n * based on the number of symbols.\n * @attr\n */\n @property({ type: Number })\n public max = 5;\n\n /**\n * The minimum value change allowed.\n *\n * Valid values are in the interval between 0 and 1 inclusive.\n * @attr\n */\n @property({ type: Number })\n public step = 1;\n\n /**\n * The label of the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * A format string which sets aria-valuetext. Instances of '{0}' will be replaced\n * with the current value of the control and instances of '{1}' with the maximum value for the control.\n *\n * Important for screen-readers and useful for localization.\n * @attr value-format\n */\n @property({ attribute: 'value-format' })\n public valueFormat!: string;\n\n /**\n * The current value of the component\n * @attr\n */\n @property({ type: Number })\n public value = 0;\n\n /**\n * Sets hover preview behavior for the component\n * @attr\n */\n @property({ type: Boolean, reflect: true, attribute: 'hover-preview' })\n public hoverPreview = false;\n\n /**\n * Makes the control a readonly field.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public readOnly = false;\n\n /**\n * Sets the readonly state of the component\n * @attr\n *\n * @deprecated - since v4.4.0\n * Use the `readOnly` property instead.\n */\n @property({ attribute: false })\n public get readonly() {\n return this.readOnly;\n }\n\n public set readonly(value: boolean) {\n this.readOnly = value;\n }\n\n /**\n * Toggles single selection visual mode.\n * @attr\n */\n @property({ type: Boolean })\n public single = false;\n\n @watch('max')\n protected handleMaxChange() {\n this.hasProjectedSymbols\n ? (this.max = this.ratingSymbols.length)\n : (this.max = Math.max(0, this.max));\n if (this.max < this.value) {\n this.value = this.max;\n }\n }\n\n @watch('value')\n protected handleValueChange() {\n this.value = clamp(isNaN(this.value) ? 0 : this.value, 0, this.max);\n this.setFormValue(`${this.value}`, `${this.value}`);\n this.updateValidity();\n this.setInvalidState();\n }\n\n @watch('step')\n protected handlePrecisionChange() {\n this.step = !this.single ? clamp(this.step, 0.001, 1) : 1;\n }\n\n @watch('single')\n protected handleSelectionChange() {\n if (this.single) {\n this.step = 1;\n this.value = Math.ceil(this.value);\n }\n }\n\n constructor() {\n super();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n protected handleClick({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n this.value === value ? (this.value = 0) : (this.value = value);\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected handleMouseMove({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n\n if (this.hoverValue !== value) {\n // Since mousemove spams a lot, only emit on a value change\n this.hoverValue = value;\n this.emitEvent('igcHover', { detail: this.hoverValue });\n }\n }\n\n protected handleMouseEnter() {\n if (this.isInteractive) {\n this.hoverState = true;\n }\n }\n\n protected handleMouseLeave() {\n if (this.isInteractive) {\n this.hoverState = false;\n }\n }\n\n protected handleKeyDown({ key }: KeyboardEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n let result = this.value;\n const ltr = isLTR(this);\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowRight':\n result += ltr ? this.step : -this.step;\n break;\n case 'ArrowDown':\n case 'ArrowLeft':\n result -= ltr ? this.step : -this.step;\n break;\n case 'Home':\n result = this.step;\n break;\n case 'End':\n result = this.max;\n break;\n default:\n return;\n }\n\n // Verify new value is in bounds and emit\n this.value = clamp(result, 0, this.max);\n\n if (result === this.value) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n this.ratingSymbols = slot\n .assignedElements()\n .filter(\n (el) => el instanceof IgcRatingSymbolComponent\n ) as IgcRatingSymbolComponent[];\n\n if (this.hasProjectedSymbols) {\n this.max = this.ratingSymbols.length;\n }\n\n this.requestUpdate();\n }\n\n protected calcNewValue(x: number) {\n const { width, left, right } = this.container.getBoundingClientRect();\n const percent = isLTR(this) ? (x - left) / width : (right - x) / width;\n const value = this.round(this.max * percent + this.step / 2);\n\n return clamp(value, this.step, this.max);\n }\n\n protected getPrecision(num: number) {\n const [_, decimal] = num.toString().split('.');\n return decimal ? decimal.length : 0;\n }\n\n protected round(value: number) {\n value = Math.round(value / this.step) * this.step;\n return Number(value.toFixed(this.getPrecision(this.step)));\n }\n\n protected clipSymbol(index: number, isLTR = true) {\n const value = this.hoverState ? this.hoverValue : this.value;\n const progress = index + 1 - value;\n const exclusive = progress === 0 || this.value === index + 1 ? 0 : 1;\n const selection = this.single ? exclusive : progress;\n const activate = (p: number) => clamp(p * 100, 0, 100);\n\n const forward = `inset(0 ${activate(\n isLTR ? selection : 1 - selection\n )}% 0 0)`;\n const backward = `inset(0 0 0 ${activate(\n isLTR ? 1 - selection : selection\n )}%)`;\n\n return {\n backward: isLTR ? backward : forward,\n forward: isLTR ? forward : backward,\n };\n }\n\n /**\n * Increments the value of the control by `n` steps multiplied by the\n * step factor.\n */\n public stepUp(n = 1) {\n this.value += this.round(n * this.step);\n }\n\n /**\n * Decrements the value of the control by `n` steps multiplied by\n * the step factor.\n */\n public stepDown(n = 1) {\n this.value -= this.round(n * this.step);\n }\n\n protected *renderSymbols() {\n const ltr = isLTR(this);\n for (let i = 0; i < this.max; i++) {\n const { forward, backward } = this.clipSymbol(i, ltr);\n yield html`<igc-rating-symbol exportparts=\"symbol, full, empty\">\n <igc-icon\n collection=\"internal\"\n name=\"star\"\n style=${styleMap({ clipPath: forward })}\n ></igc-icon>\n <igc-icon\n collection=\"internal\"\n name=\"star_border\"\n style=${styleMap({ clipPath: backward })}\n slot=\"empty\"\n ></igc-icon>\n </igc-rating-symbol>`;\n }\n }\n\n protected clipProjected() {\n if (this.hasProjectedSymbols) {\n const ltr = isLTR(this);\n this.ratingSymbols.forEach((symbol: IgcRatingSymbolComponent, i) => {\n const full = symbol.shadowRoot?.querySelector(\n '[part=\"symbol full\"]'\n ) as HTMLElement;\n\n const empty = symbol.shadowRoot?.querySelector(\n '[part=\"symbol empty\"]'\n ) as HTMLElement;\n const { forward, backward } = this.clipSymbol(i, ltr);\n\n if (full) {\n full.style.clipPath = forward;\n }\n\n if (empty) {\n empty.style.clipPath = backward;\n }\n });\n }\n }\n\n protected override render() {\n const props = [\n this.value,\n this.hoverValue,\n this.max,\n this.step,\n this.single,\n this.hoverState,\n this.ratingSymbols,\n ];\n\n return html`\n <label part=\"label\" id=\"rating-label\" ?hidden=${!this.label}\n >${this.label}</label\n >\n <div\n part=\"base\"\n role=\"slider\"\n tabindex=${ifDefined(this.disabled ? undefined : 0)}\n aria-labelledby=\"rating-label\"\n aria-valuemin=\"0\"\n aria-valuenow=${this.value}\n aria-valuemax=${this.max}\n aria-valuetext=${this.valueText}\n >\n <div\n aria-hidden=\"true\"\n part=\"symbols\"\n @click=${this.handleClick}\n @mouseenter=${this.hoverPreview ? this.handleMouseEnter : nothing}\n @mouseleave=${this.hoverPreview ? this.handleMouseLeave : nothing}\n @mousemove=${this.hoverPreview ? this.handleMouseMove : nothing}\n >\n <slot name=\"symbol\" @slotchange=${this.handleSlotChange}>\n ${guard(props, () => {\n this.clipProjected();\n return this.renderSymbols();\n })}\n </slot>\n </div>\n <label part=\"value-label\" ?hidden=${this.valueLabel.length === 0}>\n <slot name=\"value-label\"></slot>\n </label>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-rating': IgcRatingComponent;\n }\n}\n"]}
@@ -27,6 +27,7 @@ export const styles = css `:host {
27
27
  background: var(--ig-scrollbar-thumb-background);
28
28
  }
29
29
 
30
+ :host([hidden]),
30
31
  [hidden] {
31
32
  display: none !important;
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ripple.material.css.js","sourceRoot":"","sources":["../../../src/components/ripple/ripple.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium: min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n:host {\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n contain: content;\n overflow: hidden;\n}`;\n"]}
1
+ {"version":3,"file":"ripple.material.css.js","sourceRoot":"","sources":["../../../src/components/ripple/ripple.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium: min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n:host([hidden]),\n[hidden] {\n display: none !important;\n}\n\n:host {\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n contain: content;\n overflow: hidden;\n}`;\n"]}
@@ -14,9 +14,7 @@ import IgcDropdownItemComponent from '../dropdown/dropdown-item.js';
14
14
  */
15
15
  export default class IgcSelectItemComponent extends IgcDropdownItemComponent {
16
16
  private content;
17
- /** @private */
18
17
  static readonly tagName = "igc-select-item";
19
- constructor();
20
18
  protected activeChange(): void;
21
19
  /** Returns the text of the item without the prefix and suffix content. */
22
20
  get textContent(): string;
@@ -8,9 +8,6 @@ import { queryAssignedNodes } from 'lit/decorators.js';
8
8
  import { watch } from '../common/decorators/watch.js';
9
9
  import IgcDropdownItemComponent from '../dropdown/dropdown-item.js';
10
10
  class IgcSelectItemComponent extends IgcDropdownItemComponent {
11
- constructor() {
12
- super();
13
- }
14
11
  activeChange() {
15
12
  this.tabIndex = this.active ? 0 : -1;
16
13
  if (this.active) {
@@ -1 +1 @@
1
- {"version":3,"file":"select-item.js","sourceRoot":"","sources":["../../../src/components/select/select-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,wBAAwB,MAAM,8BAA8B,CAAC;AAepE,MAAqB,sBAAuB,SAAQ,wBAAwB;IAO1E;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAGS,YAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAGD,IAAoB,WAAW;QAC7B,OAAO,IAAI,CAAC,OAAO;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,IAAI,EAAE,CAAA,EAAA,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aACvB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAGD,IAAoB,WAAW,CAAC,KAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;;AA5B+B,8BAAO,GAAG,iBAAiB,CAAC;AAHpD;IADP,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACL;AAUvB;IADT,KAAK,CAAC,QAAQ,CAAC;0DAOf;eAlBkB,sBAAsB","sourcesContent":["import { queryAssignedNodes } from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport IgcDropdownItemComponent from '../dropdown/dropdown-item.js';\n\n/**\n * Represents an item in a select list.\n *\n * @element igc-select-item\n *\n * @slot - Renders the all content bar the prefix and suffix.\n * @slot prefix - Renders content before the main content area.\n * @slot suffix - Renders content after the main content area.\n *\n * @csspart prefix - The prefix wrapper.\n * @csspart content - The main content wrapper.\n * @csspart suffix - The suffix wrapper.\n */\nexport default class IgcSelectItemComponent extends IgcDropdownItemComponent {\n @queryAssignedNodes({ flatten: true })\n private content!: Array<Element>;\n\n /** @private */\n public static override readonly tagName = 'igc-select-item';\n\n constructor() {\n super();\n }\n\n @watch('active')\n protected activeChange() {\n this.tabIndex = this.active ? 0 : -1;\n\n if (this.active) {\n this.focus();\n }\n }\n\n /** Returns the text of the item without the prefix and suffix content. */\n public override get textContent() {\n return this.content\n .map((t) => t.textContent?.trim())\n .filter((t) => t !== '')\n .join(' ');\n }\n\n /** Sets the textContent of the item without touching the prefix and suffix content. */\n public override set textContent(value: string) {\n const text = new Text(value);\n this.content.forEach((n) => n.remove());\n this.appendChild(text);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select-item': IgcSelectItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"select-item.js","sourceRoot":"","sources":["../../../src/components/select/select-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,wBAAwB,MAAM,8BAA8B,CAAC;AAepE,MAAqB,sBAAuB,SAAQ,wBAAwB;IAOhE,YAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAGD,IAAoB,WAAW;QAC7B,OAAO,IAAI,CAAC,OAAO;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,IAAI,EAAE,CAAA,EAAA,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aACvB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAGD,IAAoB,WAAW,CAAC,KAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;;AAxB+B,8BAAO,GAAG,iBAAiB,CAAC;AAFpD;IADP,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACL;AAKvB;IADT,KAAK,CAAC,QAAQ,CAAC;0DAOf;eAbkB,sBAAsB","sourcesContent":["import { queryAssignedNodes } from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport IgcDropdownItemComponent from '../dropdown/dropdown-item.js';\n\n/**\n * Represents an item in a select list.\n *\n * @element igc-select-item\n *\n * @slot - Renders the all content bar the prefix and suffix.\n * @slot prefix - Renders content before the main content area.\n * @slot suffix - Renders content after the main content area.\n *\n * @csspart prefix - The prefix wrapper.\n * @csspart content - The main content wrapper.\n * @csspart suffix - The suffix wrapper.\n */\nexport default class IgcSelectItemComponent extends IgcDropdownItemComponent {\n @queryAssignedNodes({ flatten: true })\n private content!: Array<Element>;\n\n public static override readonly tagName = 'igc-select-item';\n\n @watch('active')\n protected activeChange() {\n this.tabIndex = this.active ? 0 : -1;\n\n if (this.active) {\n this.focus();\n }\n }\n\n /** Returns the text of the item without the prefix and suffix content. */\n public override get textContent() {\n return this.content\n .map((t) => t.textContent?.trim())\n .filter((t) => t !== '')\n .join(' ');\n }\n\n /** Sets the textContent of the item without touching the prefix and suffix content. */\n public override set textContent(value: string) {\n const text = new Text(value);\n this.content.forEach((n) => n.remove());\n this.appendChild(text);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select-item': IgcSelectItemComponent;\n }\n}\n"]}
@@ -1,15 +1,15 @@
1
- import { PropertyValueMap } from 'lit';
1
+ import { themeSymbol } from '../../theming/index.js';
2
2
  import { Constructor } from '../common/mixins/constructor.js';
3
3
  import IgcDropdownComponent, { IgcDropdownEventMap } from '../dropdown/dropdown.js';
4
4
  import IgcInputComponent from '../input/input.js';
5
5
  import IgcSelectGroupComponent from './select-group.js';
6
6
  import IgcSelectItemComponent from './select-item.js';
7
- import type { ThemeController, Theme } from '../../theming/types.js';
7
+ import { Validator } from '../common/validators.js';
8
8
  export interface IgcSelectEventMap extends IgcDropdownEventMap {
9
9
  igcFocus: CustomEvent<void>;
10
10
  igcBlur: CustomEvent<void>;
11
11
  }
12
- declare const IgcSelectComponent_base: import("../common/mixins/constructor.js").AbstractConstructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcSelectEventMap>> & Constructor<IgcDropdownComponent>;
12
+ declare const IgcSelectComponent_base: Constructor<import("../common/mixins/form-associated-required.js").FormRequiredInterface & import("../common/mixins/form-associated.js").FormAssociatedElementInterface> & import("../common/mixins/constructor.js").AbstractConstructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcSelectEventMap>> & Constructor<IgcDropdownComponent>;
13
13
  /**
14
14
  * @element igc-select
15
15
  *
@@ -38,13 +38,12 @@ declare const IgcSelectComponent_base: import("../common/mixins/constructor.js")
38
38
  * @csspart helper-text - The helper text wrapper.
39
39
  */
40
40
  export default class IgcSelectComponent extends IgcSelectComponent_base {
41
- /** @private */
42
41
  static readonly tagName = "igc-select";
43
42
  static styles: import("lit").CSSResult;
44
43
  private searchTerm;
45
44
  private lastKeyTime;
46
- protected themeController: ThemeController;
47
- protected theme: Theme;
45
+ protected validators: Validator<this>[];
46
+ private readonly [themeSymbol];
48
47
  private readonly targetKeyHandlers;
49
48
  protected items: Array<IgcSelectItemComponent>;
50
49
  protected groups: Array<IgcSelectGroupComponent>;
@@ -57,27 +56,7 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
57
56
  * The value attribute of the control.
58
57
  * @attr
59
58
  */
60
- value?: string | undefined;
61
- /**
62
- * The name attribute of the control.
63
- * @attr
64
- */
65
- name: string;
66
- /**
67
- * The disabled attribute of the control.
68
- * @attr
69
- */
70
- disabled: boolean;
71
- /**
72
- * The required attribute of the control.
73
- * @attr
74
- */
75
- required: boolean;
76
- /**
77
- * The invalid attribute of the control.
78
- * @attr
79
- */
80
- invalid: boolean;
59
+ value?: string;
81
60
  /**
82
61
  * The outlined attribute of the control.
83
62
  * @attr
@@ -99,13 +78,13 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
99
78
  */
100
79
  placeholder: string;
101
80
  /**
102
- * @deprecated since version 5.0. It will be removed in the next major release.
81
+ * @deprecated since version 4.3.0
103
82
  * @hidden @internal @private
104
83
  */
105
84
  positionStrategy: 'absolute' | 'fixed';
106
85
  /**
107
86
  * Whether the dropdown's width should be the same as the target's one.
108
- * @deprecated since version 5.0. It will be removed in the next major release.
87
+ * @deprecated since version 4.3.0
109
88
  * @hidden @internal @private
110
89
  * @attr same-width
111
90
  */
@@ -113,19 +92,12 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
113
92
  /**
114
93
  * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.
115
94
  * When true, once enough space is detected on its preferred side, it will flip back.
116
- * @deprecated since version 5.0. It will be removed in the next major release.
95
+ * @deprecated since version 4.3.0
117
96
  * @hidden @internal @private
118
97
  * @attr
119
98
  */
120
99
  flip: boolean;
121
- /**
122
- * The direction attribute of the control.
123
- * @attr
124
- */
125
- dir: 'ltr' | 'rtl' | 'auto';
126
100
  constructor();
127
- protected themeAdopted(controller: ThemeController): void;
128
- protected willUpdate(changes: PropertyValueMap<any>): void;
129
101
  /** Override the dropdown target focusout behavior to prevent the focus from
130
102
  * being returned to the target element when the select loses focus. */
131
103
  protected handleFocusout(): void;
@@ -137,12 +109,9 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
137
109
  blur(): void;
138
110
  /** Checks the validity of the control and moves the focus to it if it is not valid. */
139
111
  reportValidity(): boolean;
140
- /** Checks the validity of the control. */
141
- checkValidity(): boolean;
142
112
  protected firstUpdated(): Promise<void>;
143
113
  protected updateValue(): void;
144
114
  protected updateSelected(): void;
145
- protected validate(): void;
146
115
  protected selectNext(): void;
147
116
  protected selectPrev(): void;
148
117
  protected selectInteractiveItem(index: number): void;
@@ -7,12 +7,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { html } from 'lit';
8
8
  import { property, query, queryAssignedElements, state, } from 'lit/decorators.js';
9
9
  import { ifDefined } from 'lit/directives/if-defined.js';
10
+ import { live } from 'lit/directives/live.js';
10
11
  import { styleMap } from 'lit/directives/style-map.js';
11
- import { themes } from '../../theming/index.js';
12
+ import { themes, themeSymbol } from '../../theming/index.js';
13
+ import { alternateName } from '../common/decorators/alternateName.js';
12
14
  import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
13
15
  import { watch } from '../common/decorators/watch.js';
14
16
  import { defineComponents } from '../common/definitions/defineComponents.js';
15
17
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
18
+ import { partNameMap } from '../common/util.js';
19
+ import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';
16
20
  import IgcDropdownComponent from '../dropdown/dropdown.js';
17
21
  import IgcIconComponent from '../icon/icon.js';
18
22
  import IgcInputComponent from '../input/input.js';
@@ -24,13 +28,14 @@ import { styles as bootstrap } from './themes/light/select.bootstrap.css.js';
24
28
  import { styles as fluent } from './themes/light/select.fluent.css.js';
25
29
  import { styles as indigo } from './themes/light/select.indigo.css.js';
26
30
  import { styles as material } from './themes/light/select.material.css.js';
27
- import { alternateName } from '../common/decorators/alternateName.js';
31
+ import { requiredValidator } from '../common/validators.js';
28
32
  defineComponents(IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent);
29
- let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcDropdownComponent) {
33
+ let IgcSelectComponent = class IgcSelectComponent extends FormAssociatedRequiredMixin(EventEmitterMixin(IgcDropdownComponent)) {
30
34
  constructor() {
31
35
  super();
32
36
  this.searchTerm = '';
33
37
  this.lastKeyTime = Date.now();
38
+ this.validators = [requiredValidator];
34
39
  this.targetKeyHandlers = new Map(Object.entries({
35
40
  ' ': this.onTargetEnterKey,
36
41
  Tab: this.onTargetTabKey,
@@ -43,27 +48,16 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
43
48
  Home: this.onTargetHomeKey,
44
49
  End: this.onTargetEndKey,
45
50
  }));
46
- this.disabled = false;
47
- this.required = false;
48
- this.invalid = false;
49
51
  this.outlined = false;
50
52
  this.positionStrategy = 'fixed';
51
53
  this.sameWidth = true;
52
54
  this.flip = true;
53
- this.dir = 'auto';
54
55
  this.size = 'medium';
55
56
  this.addEventListener('igcChange', () => {
56
57
  if (this.open)
57
58
  this.target.focus();
58
59
  });
59
60
  }
60
- themeAdopted(controller) {
61
- this.themeController = controller;
62
- }
63
- willUpdate(changes) {
64
- super.willUpdate(changes);
65
- this.theme = this.themeController.theme;
66
- }
67
61
  handleFocusout() { }
68
62
  inputSlotChanged() {
69
63
  this.requestUpdate();
@@ -76,24 +70,24 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
76
70
  super.blur();
77
71
  }
78
72
  reportValidity() {
79
- const valid = this.checkValidity();
73
+ const valid = super.reportValidity();
80
74
  if (!valid)
81
75
  this.target.focus();
82
76
  return valid;
83
77
  }
84
- checkValidity() {
85
- this.invalid = this.required && !this.value;
86
- return !this.invalid;
87
- }
88
78
  async firstUpdated() {
89
79
  super.firstUpdated();
90
80
  await this.updateComplete;
91
81
  if (!this.selectedItem && this.value) {
92
82
  this.updateSelected();
93
83
  }
84
+ else if (this.selectedItem && !this.value) {
85
+ this._defaultValue = this.selectedItem.value;
86
+ }
94
87
  if (this.autofocus) {
95
88
  this.target.focus();
96
89
  }
90
+ this.updateValidity();
97
91
  }
98
92
  updateValue() {
99
93
  var _a;
@@ -101,21 +95,28 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
101
95
  }
102
96
  updateSelected() {
103
97
  var _a;
104
- if (this.allItems.length === 0)
98
+ if (this.allItems.length === 0) {
99
+ this.setFormValue(null);
100
+ this.updateValidity();
101
+ this.setInvalidState();
105
102
  return;
103
+ }
106
104
  if (((_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.value) !== this.value) {
107
105
  const matches = this.allItems.filter((i) => i.value === this.value);
108
106
  const index = this.allItems.indexOf(matches.at(-1));
109
107
  if (index === -1) {
110
108
  this.value = undefined;
111
109
  this.clearSelection();
110
+ this.setFormValue(null);
111
+ this.updateValidity();
112
+ this.setInvalidState();
112
113
  return;
113
114
  }
114
115
  this.select(index);
115
116
  }
116
- }
117
- validate() {
118
- this.updateComplete.then(() => this.reportValidity());
117
+ this.setFormValue(this.value);
118
+ this.updateValidity();
119
+ this.setInvalidState();
119
120
  }
120
121
  selectNext() {
121
122
  var _a;
@@ -158,11 +159,13 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
158
159
  }
159
160
  }
160
161
  handleFocus() {
162
+ this._dirty = true;
161
163
  if (this.open)
162
164
  return;
163
165
  this.emitEvent('igcFocus');
164
166
  }
165
167
  handleBlur() {
168
+ this.setInvalidState();
166
169
  if (this.open)
167
170
  return;
168
171
  this.emitEvent('igcBlur');
@@ -222,8 +225,10 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
222
225
  }
223
226
  render() {
224
227
  var _a, _b;
225
- const openIcon = this.theme === 'material' ? 'keyboard_arrow_up' : 'arrow_drop_up';
226
- const closeIcon = this.theme === 'material' ? 'keyboard_arrow_down' : 'arrow_drop_down';
228
+ const openIcon = this[themeSymbol] === 'material' ? 'keyboard_arrow_up' : 'arrow_drop_up';
229
+ const closeIcon = this[themeSymbol] === 'material'
230
+ ? 'keyboard_arrow_down'
231
+ : 'arrow_drop_down';
227
232
  return html `
228
233
  <div
229
234
  role="combobox"
@@ -244,11 +249,10 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
244
249
  placeholder=${ifDefined(this.placeholder)}
245
250
  label=${ifDefined(this.label)}
246
251
  size=${this.size}
247
- dir=${this.dir}
248
252
  tabindex="-1"
249
- .disabled="${this.disabled}"
253
+ .disabled=${this.disabled}
250
254
  .required=${this.required}
251
- .invalid=${this.invalid}
255
+ .invalid=${live(this.invalid)}
252
256
  .outlined=${this.outlined}
253
257
  @igcBlur=${(e) => e.stopPropagation()}
254
258
  @igcFocus=${(e) => e.stopPropagation()}
@@ -259,7 +263,13 @@ let IgcSelectComponent = class IgcSelectComponent extends EventEmitterMixin(IgcD
259
263
  <span slot=${this.hasSuffixes ? 'suffix' : ''}>
260
264
  <slot name="suffix" @slotchange=${this.inputSlotChanged}></slot>
261
265
  </span>
262
- <span slot="suffix" part="toggle-icon" style="display: flex">
266
+ <span
267
+ slot="suffix"
268
+ part="${partNameMap({
269
+ 'toggle-icon': true,
270
+ filled: this.value,
271
+ })}"
272
+ >
263
273
  <slot name="toggle-icon">
264
274
  <igc-icon
265
275
  size=${this.size}
@@ -317,20 +327,8 @@ __decorate([
317
327
  query('div[role="combobox"]')
318
328
  ], IgcSelectComponent.prototype, "target", void 0);
319
329
  __decorate([
320
- property({ reflect: false, type: String })
330
+ property({ reflect: false })
321
331
  ], IgcSelectComponent.prototype, "value", void 0);
322
- __decorate([
323
- property()
324
- ], IgcSelectComponent.prototype, "name", void 0);
325
- __decorate([
326
- property({ reflect: true, type: Boolean })
327
- ], IgcSelectComponent.prototype, "disabled", void 0);
328
- __decorate([
329
- property({ reflect: true, type: Boolean })
330
- ], IgcSelectComponent.prototype, "required", void 0);
331
- __decorate([
332
- property({ reflect: true, type: Boolean })
333
- ], IgcSelectComponent.prototype, "invalid", void 0);
334
332
  __decorate([
335
333
  property({ reflect: true, type: Boolean })
336
334
  ], IgcSelectComponent.prototype, "outlined", void 0);
@@ -349,9 +347,6 @@ __decorate([
349
347
  __decorate([
350
348
  property({ type: Boolean })
351
349
  ], IgcSelectComponent.prototype, "flip", void 0);
352
- __decorate([
353
- property({ reflect: true })
354
- ], IgcSelectComponent.prototype, "dir", void 0);
355
350
  __decorate([
356
351
  alternateName('focusComponent')
357
352
  ], IgcSelectComponent.prototype, "focus", null);
@@ -364,11 +359,8 @@ __decorate([
364
359
  __decorate([
365
360
  watch('value')
366
361
  ], IgcSelectComponent.prototype, "updateSelected", null);
367
- __decorate([
368
- watch('value')
369
- ], IgcSelectComponent.prototype, "validate", null);
370
362
  IgcSelectComponent = __decorate([
371
- themes({ bootstrap, material, fluent, indigo }),
363
+ themes({ bootstrap, material, fluent, indigo }, true),
372
364
  blazorAdditionalDependencies('IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent')
373
365
  ], IgcSelectComponent);
374
366
  export default IgcSelectComponent;