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
@@ -27,12 +27,36 @@ 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
  }
33
-
34
- /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */
35
34
  :host {
35
+ --background: var(--ig-list-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));
36
+ --header-background: var(--ig-list-header-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));
37
+ --header-text-color: var(--ig-list-header-text-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));
38
+ --item-background: var(--ig-list-item-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));
39
+ --item-background-hover: var(--ig-list-item-background-hover, hsla(var(--ig-gray-200), var(--ig-gray-a)));
40
+ --item-background-active: var(--ig-list-item-background-active, hsla(var(--ig-gray-200), var(--ig-gray-a)));
41
+ --item-text-color: var(--ig-list-item-text-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));
42
+ --item-text-color-hover: var(--ig-list-item-text-color-hover, hsla(var(--ig-gray-700), var(--ig-gray-a)));
43
+ --item-text-color-active: var(--ig-list-item-text-color-active, hsla(var(--ig-gray-700), var(--ig-gray-a)));
44
+ --item-title-color: var(--ig-list-item-title-color, 'currentColor');
45
+ --item-title-color-hover: var(--ig-list-item-title-color-hover, 'currentColor');
46
+ --item-title-color-active: var(--ig-list-item-title-color-active, 'currentColor');
47
+ --item-action-color: var(--ig-list-item-action-color, 'currentColor');
48
+ --item-action-color-hover: var(--ig-list-item-action-color-hover, 'currentColor');
49
+ --item-action-color-active: var(--ig-list-item-action-color-active, 'currentColor');
50
+ --item-subtitle-color: var(--ig-list-item-subtitle-color, 'currentColor');
51
+ --item-subtitle-color-hover: var(--ig-list-item-subtitle-color-hover, 'currentColor');
52
+ --item-subtitle-color-active: var(--ig-list-item-subtitle-color-active, 'currentColor');
53
+ --item-thumbnail-color: var(--ig-list-item-thumbnail-color, 'currentColor');
54
+ --item-thumbnail-color-hover: var(--ig-list-item-thumbnail-color-hover, 'currentColor');
55
+ --item-thumbnail-color-active: var(--ig-list-item-thumbnail-color-active, 'currentColor');
56
+ --border-color: var(--ig-list-border-color, transparent);
57
+ --border-width: var(--ig-list-border-width, 0);
58
+ --border-radius: var(--ig-list-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.5rem), 1.5rem));
59
+ --item-border-radius: var(--ig-list-item-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.5rem), 1.5rem));
36
60
  display: -webkit-box;
37
61
  display: -ms-flexbox;
38
62
  display: flex;
@@ -44,6 +68,7 @@ export const styles = css `:host {
44
68
  overflow: hidden auto;
45
69
  height: auto;
46
70
  background: hsla(var(--ig-surface-500), var(--ig-surface-a));
71
+ border-radius: var(--border-radius);
47
72
  }
48
73
 
49
74
  :host([size=small]) {
@@ -1 +1 @@
1
- {"version":3,"file":"list.base.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDvB,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/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-flow: column nowrap;\n flex-flow: column nowrap;\n font-family: var(--ig-font-family);\n overflow: hidden auto;\n height: auto;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n}\n\n:host([size=small]) {\n --component-size: var(--ig-size, var(--ig-size-small));\n}\n\n:host([size=medium]) {\n --component-size: var(--ig-size, var(--ig-size-medium));\n}\n\n:host([size=large]) {\n --component-size: var(--ig-size, var(--ig-size-large));\n}`;\n"]}
1
+ {"version":3,"file":"list.base.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFvB,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:host {\n --background: var(--ig-list-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));\n --header-background: var(--ig-list-header-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));\n --header-text-color: var(--ig-list-header-text-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));\n --item-background: var(--ig-list-item-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));\n --item-background-hover: var(--ig-list-item-background-hover, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n --item-background-active: var(--ig-list-item-background-active, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n --item-text-color: var(--ig-list-item-text-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));\n --item-text-color-hover: var(--ig-list-item-text-color-hover, hsla(var(--ig-gray-700), var(--ig-gray-a)));\n --item-text-color-active: var(--ig-list-item-text-color-active, hsla(var(--ig-gray-700), var(--ig-gray-a)));\n --item-title-color: var(--ig-list-item-title-color, 'currentColor');\n --item-title-color-hover: var(--ig-list-item-title-color-hover, 'currentColor');\n --item-title-color-active: var(--ig-list-item-title-color-active, 'currentColor');\n --item-action-color: var(--ig-list-item-action-color, 'currentColor');\n --item-action-color-hover: var(--ig-list-item-action-color-hover, 'currentColor');\n --item-action-color-active: var(--ig-list-item-action-color-active, 'currentColor');\n --item-subtitle-color: var(--ig-list-item-subtitle-color, 'currentColor');\n --item-subtitle-color-hover: var(--ig-list-item-subtitle-color-hover, 'currentColor');\n --item-subtitle-color-active: var(--ig-list-item-subtitle-color-active, 'currentColor');\n --item-thumbnail-color: var(--ig-list-item-thumbnail-color, 'currentColor');\n --item-thumbnail-color-hover: var(--ig-list-item-thumbnail-color-hover, 'currentColor');\n --item-thumbnail-color-active: var(--ig-list-item-thumbnail-color-active, 'currentColor');\n --border-color: var(--ig-list-border-color, transparent);\n --border-width: var(--ig-list-border-width, 0);\n --border-radius: var(--ig-list-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.5rem), 1.5rem));\n --item-border-radius: var(--ig-list-item-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.5rem), 1.5rem));\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-flow: column nowrap;\n flex-flow: column nowrap;\n font-family: var(--ig-font-family);\n overflow: hidden auto;\n height: auto;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n border-radius: var(--border-radius);\n}\n\n:host([size=small]) {\n --component-size: var(--ig-size, var(--ig-size-small));\n}\n\n:host([size=medium]) {\n --component-size: var(--ig-size, var(--ig-size-medium));\n}\n\n:host([size=large]) {\n --component-size: var(--ig-size, var(--ig-size-large));\n}`;\n"]}
@@ -1,8 +1,32 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */
3
- :host {
4
- border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.25rem), 0.25rem);
2
+ export const styles = css `:host {
3
+ --background: var(--ig-list-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));
4
+ --header-background: var(--ig-list-header-background, var(--ig-gray-900-contrast));
5
+ --header-text-color: var(--ig-list-header-text-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));
6
+ --item-background: var(--ig-list-item-background, var(--ig-gray-900-contrast));
7
+ --item-background-hover: var(--ig-list-item-background-hover, hsla(var(--ig-gray-200), var(--ig-gray-a)));
8
+ --item-background-active: var(--ig-list-item-background-active, hsla(var(--ig-gray-200), var(--ig-gray-a)));
9
+ --item-text-color: var(--ig-list-item-text-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));
10
+ --item-text-color-hover: var(--ig-list-item-text-color-hover, hsla(var(--ig-gray-900), var(--ig-gray-a)));
11
+ --item-text-color-active: var(--ig-list-item-text-color-active, hsla(var(--ig-gray-900), var(--ig-gray-a)));
12
+ --item-title-color: var(--ig-list-item-title-color, 'currentColor');
13
+ --item-title-color-hover: var(--ig-list-item-title-color-hover, 'currentColor');
14
+ --item-title-color-active: var(--ig-list-item-title-color-active, 'currentColor');
15
+ --item-action-color: var(--ig-list-item-action-color, 'currentColor');
16
+ --item-action-color-hover: var(--ig-list-item-action-color-hover, 'currentColor');
17
+ --item-action-color-active: var(--ig-list-item-action-color-active, 'currentColor');
18
+ --item-subtitle-color: var(--ig-list-item-subtitle-color, 'currentColor');
19
+ --item-subtitle-color-hover: var(--ig-list-item-subtitle-color-hover, 'currentColor');
20
+ --item-subtitle-color-active: var(--ig-list-item-subtitle-color-active, 'currentColor');
21
+ --item-thumbnail-color: var(--ig-list-item-thumbnail-color, 'currentColor');
22
+ --item-thumbnail-color-hover: var(--ig-list-item-thumbnail-color-hover, 'currentColor');
23
+ --item-thumbnail-color-active: var(--ig-list-item-thumbnail-color-active, 'currentColor');
24
+ --border-color: var(--ig-list-border-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));
25
+ --border-width: var(--ig-list-border-width, 0.0625rem);
26
+ --border-radius: var(--ig-list-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.1666666667) * 1.5rem), 1.5rem));
27
+ --item-border-radius: var(--ig-list-item-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.5rem), 1.5rem));
5
28
  background: var(--ig-gray-900-contrast);
6
29
  border: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));
30
+ border-radius: var(--border-radius);
7
31
  }`;
8
32
  //# sourceMappingURL=list.bootstrap.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;EAKvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.25rem), 0.25rem);\n background: var(--ig-gray-900-contrast);\n border: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));\n}`;\n"]}
1
+ {"version":3,"file":"list.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --background: var(--ig-list-background, hsla(var(--ig-surface-500), var(--ig-surface-a)));\n --header-background: var(--ig-list-header-background, var(--ig-gray-900-contrast));\n --header-text-color: var(--ig-list-header-text-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));\n --item-background: var(--ig-list-item-background, var(--ig-gray-900-contrast));\n --item-background-hover: var(--ig-list-item-background-hover, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n --item-background-active: var(--ig-list-item-background-active, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n --item-text-color: var(--ig-list-item-text-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));\n --item-text-color-hover: var(--ig-list-item-text-color-hover, hsla(var(--ig-gray-900), var(--ig-gray-a)));\n --item-text-color-active: var(--ig-list-item-text-color-active, hsla(var(--ig-gray-900), var(--ig-gray-a)));\n --item-title-color: var(--ig-list-item-title-color, 'currentColor');\n --item-title-color-hover: var(--ig-list-item-title-color-hover, 'currentColor');\n --item-title-color-active: var(--ig-list-item-title-color-active, 'currentColor');\n --item-action-color: var(--ig-list-item-action-color, 'currentColor');\n --item-action-color-hover: var(--ig-list-item-action-color-hover, 'currentColor');\n --item-action-color-active: var(--ig-list-item-action-color-active, 'currentColor');\n --item-subtitle-color: var(--ig-list-item-subtitle-color, 'currentColor');\n --item-subtitle-color-hover: var(--ig-list-item-subtitle-color-hover, 'currentColor');\n --item-subtitle-color-active: var(--ig-list-item-subtitle-color-active, 'currentColor');\n --item-thumbnail-color: var(--ig-list-item-thumbnail-color, 'currentColor');\n --item-thumbnail-color-hover: var(--ig-list-item-thumbnail-color-hover, 'currentColor');\n --item-thumbnail-color-active: var(--ig-list-item-thumbnail-color-active, 'currentColor');\n --border-color: var(--ig-list-border-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));\n --border-width: var(--ig-list-border-width, 0.0625rem);\n --border-radius: var(--ig-list-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.1666666667) * 1.5rem), 1.5rem));\n --item-border-radius: var(--ig-list-item-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 1.5rem), 1.5rem));\n background: var(--ig-gray-900-contrast);\n border: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));\n border-radius: var(--border-radius);\n}`;\n"]}
@@ -8,21 +8,14 @@ export declare abstract class IgcMaskInputBaseComponent extends IgcInputBaseComp
8
8
  protected parser: MaskParser;
9
9
  protected selection: MaskRange;
10
10
  protected compositionStart: number;
11
- protected hasFocus: boolean;
11
+ protected focused: boolean;
12
12
  protected maskedValue: string;
13
13
  protected _mask: string;
14
14
  /** The prompt symbol to use for unfilled parts of the mask. */
15
15
  prompt: string;
16
- /** Controls the validity of the control. */
17
- invalid: boolean;
18
16
  protected get inputSelection(): MaskRange;
19
17
  protected get emptyMask(): string;
20
18
  connectedCallback(): void;
21
- /**
22
- * Sets a custom validation message for the control.
23
- * As long as `message` is not empty, the control is considered invalid.
24
- */
25
- setCustomValidity(message: string): void;
26
19
  /** Selects all text within the input. */
27
20
  select(): void;
28
21
  protected handleInput({ inputType, isComposing }: InputEvent): void | Promise<void>;
@@ -31,7 +24,7 @@ export declare abstract class IgcMaskInputBaseComponent extends IgcInputBaseComp
31
24
  protected handleDragStart(): void;
32
25
  protected handleCompositionStart(): void;
33
26
  protected handleCompositionEnd({ data }: CompositionEvent): void;
34
- protected handleInvalid(): void;
27
+ protected handleClick(): void;
35
28
  setSelectionRange(start: number, end: number, direction?: 'backward' | 'forward' | 'none'): void;
36
29
  protected abstract updateInput(string: string, range: MaskRange): void;
37
30
  }
@@ -15,10 +15,9 @@ let IgcMaskInputBaseComponent = class IgcMaskInputBaseComponent extends IgcInput
15
15
  this.parser = new MaskParser();
16
16
  this.selection = { start: 0, end: 0 };
17
17
  this.compositionStart = 0;
18
- this.hasFocus = false;
18
+ this.focused = false;
19
19
  this.maskedValue = '';
20
20
  this._mask = '';
21
- this.invalid = false;
22
21
  }
23
22
  get inputSelection() {
24
23
  return {
@@ -34,10 +33,6 @@ let IgcMaskInputBaseComponent = class IgcMaskInputBaseComponent extends IgcInput
34
33
  this._mask = this._mask || this.parser.mask;
35
34
  this.prompt = this.prompt || this.parser.prompt;
36
35
  }
37
- setCustomValidity(message) {
38
- this.input.setCustomValidity(message);
39
- this.invalid = !this.input.checkValidity();
40
- }
41
36
  select() {
42
37
  this.input.select();
43
38
  }
@@ -91,8 +86,11 @@ let IgcMaskInputBaseComponent = class IgcMaskInputBaseComponent extends IgcInput
91
86
  end: this.inputSelection.end,
92
87
  });
93
88
  }
94
- handleInvalid() {
95
- this.invalid = true;
89
+ handleClick() {
90
+ const { selectionStart: start, selectionEnd: end } = this.input;
91
+ if (start === end && start === this.maskedValue.length) {
92
+ this.select();
93
+ }
96
94
  }
97
95
  setSelectionRange(start, end, direction) {
98
96
  super.setSelectionRange(start, end, direction);
@@ -101,7 +99,7 @@ let IgcMaskInputBaseComponent = class IgcMaskInputBaseComponent extends IgcInput
101
99
  };
102
100
  __decorate([
103
101
  state()
104
- ], IgcMaskInputBaseComponent.prototype, "hasFocus", void 0);
102
+ ], IgcMaskInputBaseComponent.prototype, "focused", void 0);
105
103
  __decorate([
106
104
  state()
107
105
  ], IgcMaskInputBaseComponent.prototype, "maskedValue", void 0);
@@ -111,9 +109,6 @@ __decorate([
111
109
  __decorate([
112
110
  property()
113
111
  ], IgcMaskInputBaseComponent.prototype, "prompt", void 0);
114
- __decorate([
115
- property({ reflect: true, type: Boolean })
116
- ], IgcMaskInputBaseComponent.prototype, "invalid", void 0);
117
112
  __decorate([
118
113
  blazorSuppress()
119
114
  ], IgcMaskInputBaseComponent.prototype, "setSelectionRange", null);
@@ -1 +1 @@
1
- {"version":3,"file":"mask-input-base.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { IgcInputBaseComponent } from '../input/input-base.js';\nimport { MaskParser } from './mask-parser.js';\n\nexport type MaskRange = {\n start: number;\n end: number;\n};\n\n@blazorDeepImport\nexport abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent {\n protected parser = new MaskParser();\n protected selection: MaskRange = { start: 0, end: 0 };\n protected compositionStart = 0;\n\n @state()\n protected hasFocus = false;\n\n @state()\n protected maskedValue = '';\n\n @state()\n protected _mask = '';\n\n /** The prompt symbol to use for unfilled parts of the mask. */\n @property()\n public prompt!: string;\n\n /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n protected get inputSelection(): MaskRange {\n return {\n start: this.input.selectionStart || 0,\n end: this.input.selectionEnd || 0,\n };\n }\n\n protected get emptyMask(): string {\n return this.parser.apply();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this._mask = this._mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Selects all text within the input. */\n public select() {\n this.input.select();\n }\n\n protected handleInput({ inputType, isComposing }: InputEvent) {\n const EMPTY = '';\n const value = this.input.value;\n const { start, end } = this.selection;\n const deleteEnd = this.parser.getNextNonLiteralPosition(end) + 1;\n\n switch (inputType) {\n case 'deleteContentForward':\n this.updateInput(EMPTY, { start, end: deleteEnd });\n return this.updateComplete.then(() =>\n this.input.setSelectionRange(deleteEnd, deleteEnd)\n );\n\n case 'deleteContentBackward':\n if (isComposing) return;\n return this.updateInput(EMPTY, {\n start: this.parser.getPreviousNonLiteralPosition(\n this.inputSelection.start\n ),\n end,\n });\n\n case 'deleteByCut':\n return this.updateInput(EMPTY, this.selection);\n\n case 'insertText':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n this.selection\n );\n\n case 'insertFromPaste':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n {\n start,\n end: this.inputSelection.start,\n }\n );\n\n case 'insertFromDrop':\n return this.updateInput(\n value.substring(this.inputSelection.start, this.inputSelection.end),\n { ...this.inputSelection }\n );\n }\n }\n\n protected handleKeydown({ key }: KeyboardEvent) {\n if (!key) {\n return;\n }\n this.selection = this.inputSelection;\n }\n\n protected handleCut() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragStart() {\n this.selection = this.inputSelection;\n }\n\n protected handleCompositionStart() {\n this.compositionStart = this.inputSelection.start;\n }\n\n protected handleCompositionEnd({ data }: CompositionEvent) {\n this.updateInput(data, {\n start: this.compositionStart,\n end: this.inputSelection.end,\n });\n }\n\n protected handleInvalid() {\n this.invalid = true;\n }\n\n @blazorSuppress()\n public override setSelectionRange(\n start: number,\n end: number,\n direction?: 'backward' | 'forward' | 'none'\n ): void {\n super.setSelectionRange(start, end, direction);\n this.selection = { start, end };\n }\n\n protected abstract updateInput(string: string, range: MaskRange): void;\n}\n"]}
1
+ {"version":3,"file":"mask-input-base.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,IAAsB,yBAAyB,GAA/C,MAAsB,yBAA0B,SAAQ,qBAAqB;IAA7E;;QACY,WAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC1B,cAAS,GAAc,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC5C,qBAAgB,GAAG,CAAC,CAAC;QAGrB,YAAO,GAAG,KAAK,CAAC;QAGhB,gBAAW,GAAG,EAAE,CAAC;QAGjB,UAAK,GAAG,EAAE,CAAC;IA2HvB,CAAC;IArHC,IAAc,cAAc;QAC1B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC;YACrC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;SAClC,CAAC;IACJ,CAAC;IAED,IAAc,SAAS;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,CAAC;IAGM,MAAM;QACX,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,EAAc;QAC1D,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjE,QAAQ,SAAS,EAAE;YACjB,KAAK,sBAAsB;gBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;gBACnD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CACnC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CACnD,CAAC;YAEJ,KAAK,uBAAuB;gBAC1B,IAAI,WAAW;oBAAE,OAAO;gBACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,CAC1B;oBACD,GAAG;iBACJ,CAAC,CAAC;YAEL,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEjD,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,WAAW,CACrB,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAC/C,IAAI,CAAC,SAAS,CACf,CAAC;YAEJ,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,WAAW,CACrB,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAC/C;oBACE,KAAK;oBACL,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;iBAC/B,CACF,CAAC;YAEJ,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,WAAW,CACrB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EACnE,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAC3B,CAAC;SACL;IACH,CAAC;IAES,aAAa,CAAC,EAAE,GAAG,EAAiB;QAC5C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;IACvC,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;IACvC,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;IACvC,CAAC;IAES,sBAAsB;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IACpD,CAAC;IAES,oBAAoB,CAAC,EAAE,IAAI,EAAoB;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,gBAAgB;YAC5B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG;SAC7B,CAAC,CAAC;IACL,CAAC;IAES,WAAW;QACnB,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAGhE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACtD,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;IACH,CAAC;IAGe,iBAAiB,CAC/B,KAAa,EACb,GAAW,EACX,SAA2C;QAE3C,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAClC,CAAC;CAGF,CAAA;AAjIW;IADT,KAAK,EAAE;0DACkB;AAGhB;IADT,KAAK,EAAE;8DACmB;AAGjB;IADT,KAAK,EAAE;wDACa;AAId;IADN,QAAQ,EAAE;yDACY;AA6GP;IADf,cAAc,EAAE;kEAQhB;AApImB,yBAAyB;IAD9C,gBAAgB;GACK,yBAAyB,CAuI9C;SAvIqB,yBAAyB","sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { IgcInputBaseComponent } from '../input/input-base.js';\nimport { MaskParser } from './mask-parser.js';\n\nexport type MaskRange = {\n start: number;\n end: number;\n};\n\n@blazorDeepImport\nexport abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent {\n protected parser = new MaskParser();\n protected selection: MaskRange = { start: 0, end: 0 };\n protected compositionStart = 0;\n\n @state()\n protected focused = false;\n\n @state()\n protected maskedValue = '';\n\n @state()\n protected _mask = '';\n\n /** The prompt symbol to use for unfilled parts of the mask. */\n @property()\n public prompt!: string;\n\n protected get inputSelection(): MaskRange {\n return {\n start: this.input.selectionStart || 0,\n end: this.input.selectionEnd || 0,\n };\n }\n\n protected get emptyMask(): string {\n return this.parser.apply();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this._mask = this._mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n /** Selects all text within the input. */\n public select() {\n this.input.select();\n }\n\n protected handleInput({ inputType, isComposing }: InputEvent) {\n const EMPTY = '';\n const value = this.input.value;\n const { start, end } = this.selection;\n const deleteEnd = this.parser.getNextNonLiteralPosition(end) + 1;\n\n switch (inputType) {\n case 'deleteContentForward':\n this.updateInput(EMPTY, { start, end: deleteEnd });\n return this.updateComplete.then(() =>\n this.input.setSelectionRange(deleteEnd, deleteEnd)\n );\n\n case 'deleteContentBackward':\n if (isComposing) return;\n return this.updateInput(EMPTY, {\n start: this.parser.getPreviousNonLiteralPosition(\n this.inputSelection.start\n ),\n end,\n });\n\n case 'deleteByCut':\n return this.updateInput(EMPTY, this.selection);\n\n case 'insertText':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n this.selection\n );\n\n case 'insertFromPaste':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n {\n start,\n end: this.inputSelection.start,\n }\n );\n\n case 'insertFromDrop':\n return this.updateInput(\n value.substring(this.inputSelection.start, this.inputSelection.end),\n { ...this.inputSelection }\n );\n }\n }\n\n protected handleKeydown({ key }: KeyboardEvent) {\n if (!key) {\n return;\n }\n this.selection = this.inputSelection;\n }\n\n protected handleCut() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragStart() {\n this.selection = this.inputSelection;\n }\n\n protected handleCompositionStart() {\n this.compositionStart = this.inputSelection.start;\n }\n\n protected handleCompositionEnd({ data }: CompositionEvent) {\n this.updateInput(data, {\n start: this.compositionStart,\n end: this.inputSelection.end,\n });\n }\n\n protected handleClick() {\n const { selectionStart: start, selectionEnd: end } = this.input;\n\n // Clicking at the end of the input field will select the entire mask\n if (start === end && start === this.maskedValue.length) {\n this.select();\n }\n }\n\n @blazorSuppress()\n public override setSelectionRange(\n start: number,\n end: number,\n direction?: 'backward' | 'forward' | 'none'\n ): void {\n super.setSelectionRange(start, end, direction);\n this.selection = { start, end };\n }\n\n protected abstract updateInput(string: string, range: MaskRange): void;\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { IgcMaskInputBaseComponent, MaskRange } from './mask-input-base.js';
2
+ import { Validator } from '../common/validators.js';
2
3
  /**
3
4
  * A masked input is an input field where a developer can control user input and format the visible value,
4
5
  * based on configurable rules
@@ -23,6 +24,7 @@ import { IgcMaskInputBaseComponent, MaskRange } from './mask-input-base.js';
23
24
  */
24
25
  export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
25
26
  static readonly tagName = "igc-mask-input";
27
+ protected validators: Validator<this>[];
26
28
  protected _value: string;
27
29
  /**
28
30
  * Dictates the behavior when retrieving the value of the control:
@@ -47,22 +49,19 @@ export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
47
49
  get mask(): string;
48
50
  /** The mask pattern to apply on the input. */
49
51
  set mask(value: string);
52
+ connectedCallback(): void;
53
+ protected setDefaultValue(): void;
54
+ protected updateFormValue(): void;
50
55
  protected promptChange(): void;
51
- protected handleInvalidState(): Promise<void>;
52
56
  protected updateInput(string: string, range: MaskRange): Promise<void>;
53
57
  protected handleDragEnter(): void;
54
58
  protected handleDragLeave(): void;
55
59
  protected handleFocus(): Promise<void>;
56
60
  protected handleBlur(): void;
57
61
  protected handleChange(): void;
58
- protected handleClick(): void;
59
62
  protected updateMaskedValue(): void;
60
63
  /** Replaces the selected text in the control and re-applies the mask */
61
64
  setRangeText(replacement: string, start: number, end: number, _selectMode?: 'select' | 'start' | 'end' | 'preserve'): void;
62
- /** Checks for validity of the control and shows the browser message if it's invalid. */
63
- reportValidity(): boolean;
64
- /** Check for validity of the control */
65
- checkValidity(): boolean;
66
65
  protected renderInput(): import("lit-html").TemplateResult<1>;
67
66
  }
68
67
  declare global {
@@ -12,22 +12,32 @@ import { watch } from '../common/decorators/watch.js';
12
12
  import { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';
13
13
  import { partNameMap } from '../common/util.js';
14
14
  import { IgcMaskInputBaseComponent } from './mask-input-base.js';
15
+ import messages from '../common/localization/validation-en.js';
16
+ import { requiredValidator } from '../common/validators.js';
15
17
  class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
16
18
  constructor() {
17
19
  super(...arguments);
20
+ this.validators = [
21
+ {
22
+ ...requiredValidator,
23
+ isValid: () => (this.required ? !!this._value : true),
24
+ },
25
+ {
26
+ key: 'badInput',
27
+ message: messages.mask,
28
+ isValid: () => this.parser.isValidString(this.maskedValue),
29
+ },
30
+ ];
18
31
  this._value = '';
19
32
  this.valueMode = 'raw';
20
33
  }
21
34
  get value() {
22
- return this._value
23
- ? this.valueMode !== 'raw'
24
- ? this.maskedValue
25
- : this._value
26
- : this._value;
35
+ return this.valueMode !== 'raw' ? this.maskedValue : this._value;
27
36
  }
28
37
  set value(string) {
29
38
  this._value = string !== null && string !== void 0 ? string : '';
30
39
  this.maskedValue = this.parser.apply(this._value);
40
+ this.updateFormValue();
31
41
  }
32
42
  get mask() {
33
43
  return this._mask;
@@ -39,90 +49,78 @@ class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
39
49
  this.maskedValue = this.parser.apply(this._value);
40
50
  }
41
51
  }
52
+ connectedCallback() {
53
+ super.connectedCallback();
54
+ this.updateValidity();
55
+ }
56
+ setDefaultValue() {
57
+ this._defaultValue = this._value;
58
+ }
59
+ updateFormValue() {
60
+ this.valueMode === 'raw'
61
+ ? this.setFormValue(this.value || null, this.value)
62
+ : this.setFormValue(this.maskedValue || null, this.maskedValue);
63
+ this.updateValidity();
64
+ this.setInvalidState();
65
+ }
42
66
  promptChange() {
43
67
  this.parser.prompt = this.prompt;
44
68
  if (this.value) {
45
69
  this.maskedValue = this.parser.apply(this._value);
46
70
  }
47
71
  }
48
- async handleInvalidState() {
49
- await this.updateComplete;
50
- this.invalid = !this.checkValidity();
51
- }
52
72
  async updateInput(string, range) {
53
73
  const { value, end } = this.parser.replace(this.maskedValue, string, range.start, range.end);
54
74
  this.maskedValue = value;
55
75
  this._value = this.parser.parse(value);
76
+ this.updateFormValue();
56
77
  this.requestUpdate();
57
78
  if (range.start !== this.mask.length) {
58
79
  this.emitEvent('igcInput', { detail: this.value });
59
80
  }
60
81
  await this.updateComplete;
61
82
  this.input.setSelectionRange(end, end);
62
- this.invalid = !this.checkValidity();
63
83
  }
64
84
  handleDragEnter() {
65
- if (!this.hasFocus && !this._value) {
66
- this.maskedValue = this.parser.apply();
85
+ if (!this.focused && !this._value) {
86
+ this.maskedValue = this.emptyMask;
67
87
  }
68
88
  }
69
89
  handleDragLeave() {
70
- if (!this.hasFocus) {
90
+ if (!this.focused) {
71
91
  this.updateMaskedValue();
72
92
  }
73
93
  }
74
94
  async handleFocus() {
75
- this.hasFocus = true;
95
+ this.focused = true;
76
96
  super.handleFocus();
77
97
  if (this.readonly) {
78
98
  return;
79
99
  }
80
100
  if (!this._value) {
81
- this.maskedValue = this.parser.apply();
101
+ this.maskedValue = this.emptyMask;
82
102
  await this.updateComplete;
83
103
  this.select();
84
104
  }
85
105
  }
86
106
  handleBlur() {
87
- this.hasFocus = false;
107
+ this.focused = false;
88
108
  this.updateMaskedValue();
109
+ this.invalid = !this.checkValidity();
89
110
  super.handleBlur();
90
111
  }
91
112
  handleChange() {
92
113
  this.emitEvent('igcChange', { detail: this.value });
93
- this.invalid = !this.checkValidity();
94
- }
95
- handleClick() {
96
- if (this.input.selectionStart === this.input.selectionEnd &&
97
- this.input.selectionStart === this.maskedValue.length) {
98
- this.select();
99
- }
100
114
  }
101
115
  updateMaskedValue() {
102
- if (this.maskedValue === this.parser.apply()) {
116
+ if (this.maskedValue === this.emptyMask) {
103
117
  this.maskedValue = '';
104
118
  }
105
119
  }
106
120
  setRangeText(replacement, start, end, _selectMode = 'preserve') {
107
- this.input.value = this.parser.replace(this.input.value, replacement, start, end).value;
108
- this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));
109
- this._value = this.parser.parse(this.maskedValue);
110
- }
111
- reportValidity() {
112
- const state = this._value
113
- ? this.parser.isValidString(this.input.value)
114
- : this.input.reportValidity();
115
- this.invalid = !state;
116
- return state;
117
- }
118
- checkValidity() {
119
- if (this.disabled) {
120
- return this.input.checkValidity();
121
- }
122
- if (!this._value) {
123
- return !this.required;
124
- }
125
- return (this.input.checkValidity() && this.parser.isValidString(this.input.value));
121
+ const { value } = this.parser.replace(this.maskedValue || this.emptyMask, replacement, start, end);
122
+ this.maskedValue = this.parser.apply(this.parser.parse(value));
123
+ this.value = this.parser.parse(this.maskedValue);
126
124
  }
127
125
  renderInput() {
128
126
  var _a;
@@ -135,7 +133,6 @@ class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
135
133
  .placeholder=${live((_a = this.placeholder) !== null && _a !== void 0 ? _a : this.parser.escapedMask)}
136
134
  ?readonly=${this.readonly}
137
135
  ?disabled=${this.disabled}
138
- ?required=${this.required}
139
136
  @dragenter=${this.handleDragEnter}
140
137
  @dragleave=${this.handleDragLeave}
141
138
  @dragstart=${this.handleDragStart}
@@ -147,8 +144,7 @@ class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
147
144
  @compositionstart=${this.handleCompositionStart}
148
145
  @compositionend=${this.handleCompositionEnd}
149
146
  @input=${this.handleInput}
150
- aria-invalid="${this.invalid ? 'true' : 'false'}"
151
- @invalid="${this.handleInvalid}"
147
+ aria-invalid=${this.invalid ? 'true' : 'false'}
152
148
  @keydown=${this.handleKeydown}
153
149
  />
154
150
  `;
@@ -168,10 +164,5 @@ __decorate([
168
164
  __decorate([
169
165
  watch('prompt')
170
166
  ], IgcMaskInputComponent.prototype, "promptChange", null);
171
- __decorate([
172
- watch('required', { waitUntilFirstUpdate: true }),
173
- watch('disabled', { waitUntilFirstUpdate: true }),
174
- watch('value', { waitUntilFirstUpdate: true })
175
- ], IgcMaskInputComponent.prototype, "handleInvalidState", null);
176
167
  export default IgcMaskInputComponent;
177
168
  //# sourceMappingURL=mask-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mask-input.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { partNameMap } from '../common/util.js';\nimport { IgcMaskInputBaseComponent, MaskRange } from './mask-input-base.js';\n\n/**\n * A masked input is an input field where a developer can control user input and format the visible value,\n * based on configurable rules\n *\n * @element igc-mask-input\n *\n * @slot prefix - Renders content before the input\n * @slot suffix - Renders content after the input\n * @slot helper-text - Renders content below the input\n *\n * @fires igcInput - Emitted when the control receives user input\n * @fires igcChange - Emitted when an alteration of the control's value is committed by the user\n * @fires igcFocus - Emitted when the control gains focus\n * @fires igcBlur - Emitted when the control loses focus\n *\n * @csspart container - The main wrapper that holds all main input elements\n * @csspart input - The native input element\n * @csspart label - The native label element\n * @csspart prefix - The prefix wrapper\n * @csspart suffix - The suffix wrapper\n * @csspart helper-text - The helper text wrapper\n */\nexport default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {\n public static readonly tagName = 'igc-mask-input';\n\n protected _value = '';\n\n /**\n * Dictates the behavior when retrieving the value of the control:\n *\n * - `raw` will return the clean user input.\n * - `withFormatting` will return the value with all literals and prompts.\n * @attr value-mode\n */\n @property({ attribute: 'value-mode' })\n public valueMode: 'raw' | 'withFormatting' = 'raw';\n\n /**\n * The value of the input.\n *\n * Regardless of the currently set `value-mode`, an empty value will return an empty string.\n * @attr\n */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public get value() {\n return this._value\n ? this.valueMode !== 'raw'\n ? this.maskedValue\n : this._value\n : this._value;\n }\n\n public set value(string: string) {\n this._value = string ?? '';\n this.maskedValue = this.parser.apply(this._value);\n }\n\n /**\n * The mask pattern to apply on the input.\n * @attr\n */\n @property()\n public get mask() {\n return this._mask;\n }\n\n /** The mask pattern to apply on the input. */\n public set mask(value: string) {\n this._mask = value;\n this.parser.mask = value;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('prompt')\n protected promptChange() {\n this.parser.prompt = this.prompt;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('required', { waitUntilFirstUpdate: true })\n @watch('disabled', { waitUntilFirstUpdate: true })\n @watch('value', { waitUntilFirstUpdate: true })\n protected async handleInvalidState() {\n await this.updateComplete;\n this.invalid = !this.checkValidity();\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n this._value = this.parser.parse(value);\n\n this.requestUpdate();\n\n if (range.start !== this.mask.length) {\n this.emitEvent('igcInput', { detail: this.value });\n }\n await this.updateComplete;\n\n this.input.setSelectionRange(end, end);\n this.invalid = !this.checkValidity();\n }\n\n protected handleDragEnter() {\n if (!this.hasFocus && !this._value) {\n this.maskedValue = this.parser.apply();\n }\n }\n\n protected handleDragLeave() {\n if (!this.hasFocus) {\n this.updateMaskedValue();\n }\n }\n\n protected override async handleFocus() {\n this.hasFocus = true;\n super.handleFocus();\n\n if (this.readonly) {\n return;\n }\n\n if (!this._value) {\n // In case of empty value, select the whole mask\n this.maskedValue = this.parser.apply();\n\n await this.updateComplete;\n this.select();\n }\n }\n\n protected override handleBlur() {\n this.hasFocus = false;\n this.updateMaskedValue();\n super.handleBlur();\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n this.invalid = !this.checkValidity();\n }\n\n protected handleClick() {\n // Clicking at the end of the input field will select the entire mask\n if (\n this.input.selectionStart === this.input.selectionEnd &&\n this.input.selectionStart === this.maskedValue.length\n ) {\n this.select();\n }\n }\n\n protected updateMaskedValue() {\n if (this.maskedValue === this.parser.apply()) {\n this.maskedValue = '';\n }\n }\n\n /* blazorSuppress */\n /** Replaces the selected text in the control and re-applies the mask */\n public override setRangeText(\n replacement: string,\n start: number,\n end: number,\n _selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.value = this.parser.replace(\n this.input.value,\n replacement,\n start,\n end\n ).value;\n this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));\n this._value = this.parser.parse(this.maskedValue);\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n const state = this._value\n ? this.parser.isValidString(this.input.value)\n : this.input.reportValidity();\n this.invalid = !state;\n return state;\n }\n\n /** Check for validity of the control */\n public checkValidity() {\n if (this.disabled) {\n return this.input.checkValidity();\n }\n\n if (!this._value) {\n return !this.required;\n }\n\n return (\n this.input.checkValidity() && this.parser.isValidString(this.input.value)\n );\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partNameMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder ?? this.parser.escapedMask)}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @click=${this.handleClick}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @input=${this.handleInput}\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @keydown=${this.handleKeydown}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-mask-input': IgcMaskInputComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"mask-input.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { partNameMap } from '../common/util.js';\nimport { IgcMaskInputBaseComponent, MaskRange } from './mask-input-base.js';\nimport messages from '../common/localization/validation-en.js';\nimport { Validator, requiredValidator } from '../common/validators.js';\n\n/**\n * A masked input is an input field where a developer can control user input and format the visible value,\n * based on configurable rules\n *\n * @element igc-mask-input\n *\n * @slot prefix - Renders content before the input\n * @slot suffix - Renders content after the input\n * @slot helper-text - Renders content below the input\n *\n * @fires igcInput - Emitted when the control receives user input\n * @fires igcChange - Emitted when an alteration of the control's value is committed by the user\n * @fires igcFocus - Emitted when the control gains focus\n * @fires igcBlur - Emitted when the control loses focus\n *\n * @csspart container - The main wrapper that holds all main input elements\n * @csspart input - The native input element\n * @csspart label - The native label element\n * @csspart prefix - The prefix wrapper\n * @csspart suffix - The suffix wrapper\n * @csspart helper-text - The helper text wrapper\n */\nexport default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {\n public static readonly tagName = 'igc-mask-input';\n\n protected override validators: Validator<this>[] = [\n {\n ...requiredValidator,\n isValid: () => (this.required ? !!this._value : true),\n },\n {\n key: 'badInput',\n message: messages.mask,\n isValid: () => this.parser.isValidString(this.maskedValue),\n },\n ];\n\n protected _value = '';\n\n /**\n * Dictates the behavior when retrieving the value of the control:\n *\n * - `raw` will return the clean user input.\n * - `withFormatting` will return the value with all literals and prompts.\n * @attr value-mode\n */\n @property({ attribute: 'value-mode' })\n public valueMode: 'raw' | 'withFormatting' = 'raw';\n\n /**\n * The value of the input.\n *\n * Regardless of the currently set `value-mode`, an empty value will return an empty string.\n * @attr\n */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public get value() {\n return this.valueMode !== 'raw' ? this.maskedValue : this._value;\n }\n\n public set value(string: string) {\n this._value = string ?? '';\n this.maskedValue = this.parser.apply(this._value);\n this.updateFormValue();\n }\n\n /**\n * The mask pattern to apply on the input.\n * @attr\n */\n @property()\n public get mask() {\n return this._mask;\n }\n\n /** The mask pattern to apply on the input. */\n public set mask(value: string) {\n this._mask = value;\n this.parser.mask = value;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.updateValidity();\n }\n\n protected override setDefaultValue(): void {\n this._defaultValue = this._value;\n }\n\n protected updateFormValue() {\n this.valueMode === 'raw'\n ? this.setFormValue(this.value || null, this.value)\n : this.setFormValue(this.maskedValue || null, this.maskedValue);\n this.updateValidity();\n this.setInvalidState();\n }\n\n @watch('prompt')\n protected promptChange() {\n this.parser.prompt = this.prompt;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n this._value = this.parser.parse(value);\n\n this.updateFormValue();\n this.requestUpdate();\n\n if (range.start !== this.mask.length) {\n this.emitEvent('igcInput', { detail: this.value });\n }\n await this.updateComplete;\n\n this.input.setSelectionRange(end, end);\n }\n\n protected handleDragEnter() {\n if (!this.focused && !this._value) {\n this.maskedValue = this.emptyMask;\n }\n }\n\n protected handleDragLeave() {\n if (!this.focused) {\n this.updateMaskedValue();\n }\n }\n\n protected override async handleFocus() {\n this.focused = true;\n super.handleFocus();\n\n if (this.readonly) {\n return;\n }\n\n if (!this._value) {\n // In case of empty value, select the whole mask\n this.maskedValue = this.emptyMask;\n\n await this.updateComplete;\n this.select();\n }\n }\n\n protected override handleBlur() {\n this.focused = false;\n this.updateMaskedValue();\n this.invalid = !this.checkValidity();\n super.handleBlur();\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected updateMaskedValue() {\n if (this.maskedValue === this.emptyMask) {\n this.maskedValue = '';\n }\n }\n\n /* blazorSuppress */\n /** Replaces the selected text in the control and re-applies the mask */\n public override setRangeText(\n replacement: string,\n start: number,\n end: number,\n _selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n const { value } = this.parser.replace(\n this.maskedValue || this.emptyMask,\n replacement,\n start,\n end\n );\n this.maskedValue = this.parser.apply(this.parser.parse(value));\n this.value = this.parser.parse(this.maskedValue);\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partNameMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder ?? this.parser.escapedMask)}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @click=${this.handleClick}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @input=${this.handleInput}\n aria-invalid=${this.invalid ? 'true' : 'false'}\n @keydown=${this.handleKeydown}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-mask-input': IgcMaskInputComponent;\n }\n}\n"]}
@@ -23,11 +23,12 @@ const replaceIMENumbers = (string) => {
23
23
  '8': '8',
24
24
  '9': '9',
25
25
  '0': '0',
26
- }[num]));
26
+ })[num]);
27
27
  };
28
28
  export class MaskParser {
29
29
  constructor(options = { format: 'CCCCCCCCCC', promptCharacter: '_' }) {
30
30
  this.literals = new Map();
31
+ this._escapedMask = '';
31
32
  this.options = options;
32
33
  }
33
34
  get literalPositions() {