igniteui-webcomponents 5.0.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1014) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
  3. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
  4. package/components/avatar/themes/dark/avatar.indigo.css.js +1 -1
  5. package/components/avatar/themes/dark/avatar.indigo.css.js.map +1 -1
  6. package/components/avatar/themes/light/avatar.bootstrap.css.js +1 -1
  7. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
  8. package/components/avatar/themes/light/avatar.indigo.css.js +1 -1
  9. package/components/avatar/themes/light/avatar.indigo.css.js.map +1 -1
  10. package/components/avatar/themes/light/avatar.shared.css.js +1 -1
  11. package/components/avatar/themes/light/avatar.shared.css.js.map +1 -1
  12. package/components/badge/themes/badge.base.css.js +1 -1
  13. package/components/badge/themes/badge.base.css.js.map +1 -1
  14. package/components/badge/themes/dark/badge.bootstrap.css.js +1 -1
  15. package/components/badge/themes/dark/badge.bootstrap.css.js.map +1 -1
  16. package/components/badge/themes/dark/badge.indigo.css.js +1 -1
  17. package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
  18. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  19. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  20. package/components/badge/themes/light/badge.indigo.css.js +1 -1
  21. package/components/badge/themes/light/badge.indigo.css.js.map +1 -1
  22. package/components/badge/themes/light/badge.shared.css.js +1 -1
  23. package/components/badge/themes/light/badge.shared.css.js.map +1 -1
  24. package/components/badge/themes/shared/badge.common.css.js +1 -1
  25. package/components/badge/themes/shared/badge.common.css.js.map +1 -1
  26. package/components/banner/themes/dark/banner.bootstrap.css.js +1 -1
  27. package/components/banner/themes/dark/banner.bootstrap.css.js.map +1 -1
  28. package/components/banner/themes/dark/banner.fluent.css.js +1 -1
  29. package/components/banner/themes/dark/banner.fluent.css.js.map +1 -1
  30. package/components/banner/themes/dark/banner.indigo.css.js +1 -1
  31. package/components/banner/themes/dark/banner.indigo.css.js.map +1 -1
  32. package/components/banner/themes/dark/banner.material.css.js +1 -1
  33. package/components/banner/themes/dark/banner.material.css.js.map +1 -1
  34. package/components/banner/themes/light/banner.bootstrap.css.js +1 -1
  35. package/components/banner/themes/light/banner.bootstrap.css.js.map +1 -1
  36. package/components/banner/themes/light/banner.fluent.css.js +1 -1
  37. package/components/banner/themes/light/banner.fluent.css.js.map +1 -1
  38. package/components/banner/themes/light/banner.indigo.css.js +1 -1
  39. package/components/banner/themes/light/banner.indigo.css.js.map +1 -1
  40. package/components/banner/themes/light/banner.material.css.js +1 -1
  41. package/components/banner/themes/light/banner.material.css.js.map +1 -1
  42. package/components/button/themes/button/dark/button.bootstrap.css.js +1 -1
  43. package/components/button/themes/button/dark/button.bootstrap.css.js.map +1 -1
  44. package/components/button/themes/button/dark/button.fluent.css.js +1 -1
  45. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  46. package/components/button/themes/button/dark/button.indigo.css.js +1 -1
  47. package/components/button/themes/button/dark/button.indigo.css.js.map +1 -1
  48. package/components/button/themes/button/dark/button.material.css.js +1 -1
  49. package/components/button/themes/button/dark/button.material.css.js.map +1 -1
  50. package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
  51. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  52. package/components/button/themes/button/light/button.fluent.css.js +1 -1
  53. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  54. package/components/button/themes/button/light/button.indigo.css.js +1 -1
  55. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  56. package/components/button/themes/button/light/button.material.css.js +1 -1
  57. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  58. package/components/button/themes/button/light/button.shared.css.js +1 -1
  59. package/components/button/themes/button/light/button.shared.css.js.map +1 -1
  60. package/components/button/themes/icon-button/dark/icon-button.bootstrap.css.js +1 -1
  61. package/components/button/themes/icon-button/dark/icon-button.bootstrap.css.js.map +1 -1
  62. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
  63. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
  64. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js +1 -1
  65. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js.map +1 -1
  66. package/components/button/themes/icon-button/dark/icon-button.material.css.js +1 -1
  67. package/components/button/themes/icon-button/dark/icon-button.material.css.js.map +1 -1
  68. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
  69. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  70. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
  71. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  72. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
  73. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  74. package/components/button/themes/icon-button/light/icon-button.material.css.js +1 -1
  75. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  76. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
  77. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
  78. package/components/button/themes/icon-button/shared/icon-button.common.css.js +1 -1
  79. package/components/button/themes/icon-button/shared/icon-button.common.css.js.map +1 -1
  80. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
  81. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
  82. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
  83. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
  84. package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
  85. package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
  86. package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
  87. package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
  88. package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
  89. package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
  90. package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
  91. package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
  92. package/components/button-group/themes/dark/button-group.material.css.js +1 -1
  93. package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
  94. package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
  95. package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
  96. package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
  97. package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
  98. package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
  99. package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
  100. package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
  101. package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
  102. package/components/button-group/themes/light/button-group.material.css.js +1 -1
  103. package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
  104. package/components/button-group/themes/light/button-group.shared.css.js +1 -1
  105. package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
  106. package/components/calendar/calendar.d.ts +2 -2
  107. package/components/calendar/calendar.js.map +1 -1
  108. package/components/calendar/days-view/days-view.d.ts +2 -2
  109. package/components/calendar/days-view/days-view.js +1 -1
  110. package/components/calendar/days-view/days-view.js.map +1 -1
  111. package/components/calendar/months-view/months-view.d.ts +2 -2
  112. package/components/calendar/months-view/months-view.js +1 -1
  113. package/components/calendar/months-view/months-view.js.map +1 -1
  114. package/components/calendar/themes/dark/calendar.bootstrap.css.js +1 -1
  115. package/components/calendar/themes/dark/calendar.bootstrap.css.js.map +1 -1
  116. package/components/calendar/themes/dark/calendar.fluent.css.js +1 -1
  117. package/components/calendar/themes/dark/calendar.fluent.css.js.map +1 -1
  118. package/components/calendar/themes/dark/calendar.indigo.css.js +1 -1
  119. package/components/calendar/themes/dark/calendar.indigo.css.js.map +1 -1
  120. package/components/calendar/themes/dark/calendar.material.css.js +1 -1
  121. package/components/calendar/themes/dark/calendar.material.css.js.map +1 -1
  122. package/components/calendar/themes/light/calendar.bootstrap.css.js +1 -1
  123. package/components/calendar/themes/light/calendar.bootstrap.css.js.map +1 -1
  124. package/components/calendar/themes/light/calendar.fluent.css.js +1 -1
  125. package/components/calendar/themes/light/calendar.fluent.css.js.map +1 -1
  126. package/components/calendar/themes/light/calendar.indigo.css.js +1 -1
  127. package/components/calendar/themes/light/calendar.indigo.css.js.map +1 -1
  128. package/components/calendar/themes/light/calendar.material.css.js +1 -1
  129. package/components/calendar/themes/light/calendar.material.css.js.map +1 -1
  130. package/components/calendar/themes/light/calendar.shared.css.js +1 -1
  131. package/components/calendar/themes/light/calendar.shared.css.js.map +1 -1
  132. package/components/calendar/types.d.ts +1 -1
  133. package/components/calendar/types.js.map +1 -1
  134. package/components/calendar/years-view/years-view.d.ts +2 -2
  135. package/components/calendar/years-view/years-view.js +1 -1
  136. package/components/calendar/years-view/years-view.js.map +1 -1
  137. package/components/card/themes/dark/card.bootstrap.css.js +1 -1
  138. package/components/card/themes/dark/card.bootstrap.css.js.map +1 -1
  139. package/components/card/themes/dark/card.fluent.css.js +1 -1
  140. package/components/card/themes/dark/card.fluent.css.js.map +1 -1
  141. package/components/card/themes/dark/card.indigo.css.js +1 -1
  142. package/components/card/themes/dark/card.indigo.css.js.map +1 -1
  143. package/components/card/themes/dark/card.material.css.js +1 -1
  144. package/components/card/themes/dark/card.material.css.js.map +1 -1
  145. package/components/card/themes/dark/card.shared.css.js +1 -1
  146. package/components/card/themes/dark/card.shared.css.js.map +1 -1
  147. package/components/card/themes/light/container/card.bootstrap.css.js +1 -1
  148. package/components/card/themes/light/container/card.bootstrap.css.js.map +1 -1
  149. package/components/card/themes/light/container/card.fluent.css.js +1 -1
  150. package/components/card/themes/light/container/card.fluent.css.js.map +1 -1
  151. package/components/card/themes/light/container/card.indigo.css.js +1 -1
  152. package/components/card/themes/light/container/card.indigo.css.js.map +1 -1
  153. package/components/card/themes/light/container/card.material.css.js +1 -1
  154. package/components/card/themes/light/container/card.material.css.js.map +1 -1
  155. package/components/card/themes/light/container/card.shared.css.js +1 -1
  156. package/components/card/themes/light/container/card.shared.css.js.map +1 -1
  157. package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
  158. package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
  159. package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
  160. package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
  161. package/components/carousel/animations.d.ts +1 -0
  162. package/components/carousel/animations.js +26 -0
  163. package/components/carousel/animations.js.map +1 -0
  164. package/components/carousel/carousel-indicator-container.d.ts +21 -0
  165. package/components/carousel/carousel-indicator-container.js +52 -0
  166. package/components/carousel/carousel-indicator-container.js.map +1 -0
  167. package/components/carousel/carousel-indicator.d.ts +34 -0
  168. package/components/carousel/carousel-indicator.js +73 -0
  169. package/components/carousel/carousel-indicator.js.map +1 -0
  170. package/components/carousel/carousel-slide.d.ts +40 -0
  171. package/components/carousel/carousel-slide.js +95 -0
  172. package/components/carousel/carousel-slide.js.map +1 -0
  173. package/components/carousel/carousel.d.ts +195 -0
  174. package/components/carousel/carousel.js +547 -0
  175. package/components/carousel/carousel.js.map +1 -0
  176. package/components/carousel/context.d.ts +4 -0
  177. package/components/carousel/context.js +3 -0
  178. package/components/carousel/context.js.map +1 -0
  179. package/components/carousel/themes/carousel-indicator-container.base.css.js +3 -0
  180. package/components/carousel/themes/carousel-indicator-container.base.css.js.map +1 -0
  181. package/components/carousel/themes/carousel-indicator.base.css.d.ts +1 -0
  182. package/components/carousel/themes/carousel-indicator.base.css.js +3 -0
  183. package/components/carousel/themes/carousel-indicator.base.css.js.map +1 -0
  184. package/components/carousel/themes/carousel-slide.base.css.d.ts +1 -0
  185. package/components/carousel/themes/carousel-slide.base.css.js +3 -0
  186. package/components/carousel/themes/carousel-slide.base.css.js.map +1 -0
  187. package/components/carousel/themes/carousel.base.css.d.ts +1 -0
  188. package/components/carousel/themes/carousel.base.css.js +3 -0
  189. package/components/carousel/themes/carousel.base.css.js.map +1 -0
  190. package/components/carousel/themes/container.d.ts +2 -0
  191. package/components/carousel/themes/container.js +50 -0
  192. package/components/carousel/themes/container.js.map +1 -0
  193. package/components/carousel/themes/dark/carousel.bootstrap.css.d.ts +1 -0
  194. package/components/carousel/themes/dark/carousel.bootstrap.css.js +3 -0
  195. package/components/carousel/themes/dark/carousel.bootstrap.css.js.map +1 -0
  196. package/components/carousel/themes/dark/carousel.fluent.css.d.ts +1 -0
  197. package/components/carousel/themes/dark/carousel.fluent.css.js +3 -0
  198. package/components/carousel/themes/dark/carousel.fluent.css.js.map +1 -0
  199. package/components/carousel/themes/dark/carousel.indigo.css.d.ts +1 -0
  200. package/components/carousel/themes/dark/carousel.indigo.css.js +3 -0
  201. package/components/carousel/themes/dark/carousel.indigo.css.js.map +1 -0
  202. package/components/carousel/themes/dark/carousel.material.css.d.ts +1 -0
  203. package/components/carousel/themes/dark/carousel.material.css.js +3 -0
  204. package/components/carousel/themes/dark/carousel.material.css.js.map +1 -0
  205. package/components/carousel/themes/dark/carousel.shared.css.d.ts +1 -0
  206. package/components/carousel/themes/dark/carousel.shared.css.js +3 -0
  207. package/components/carousel/themes/dark/carousel.shared.css.js.map +1 -0
  208. package/components/carousel/themes/indicator-container.d.ts +2 -0
  209. package/components/carousel/themes/indicator-container.js +28 -0
  210. package/components/carousel/themes/indicator-container.js.map +1 -0
  211. package/components/carousel/themes/light/carousel.bootstrap.css.d.ts +1 -0
  212. package/components/carousel/themes/light/carousel.bootstrap.css.js +3 -0
  213. package/components/carousel/themes/light/carousel.bootstrap.css.js.map +1 -0
  214. package/components/carousel/themes/light/carousel.fluent.css.d.ts +1 -0
  215. package/components/carousel/themes/light/carousel.fluent.css.js +3 -0
  216. package/components/carousel/themes/light/carousel.fluent.css.js.map +1 -0
  217. package/components/carousel/themes/light/carousel.indigo.css.d.ts +1 -0
  218. package/components/carousel/themes/light/carousel.indigo.css.js +3 -0
  219. package/components/carousel/themes/light/carousel.indigo.css.js.map +1 -0
  220. package/components/carousel/themes/light/carousel.material.css.d.ts +1 -0
  221. package/components/carousel/themes/light/carousel.material.css.js +3 -0
  222. package/components/carousel/themes/light/carousel.material.css.js.map +1 -0
  223. package/components/carousel/themes/light/carousel.shared.css.d.ts +1 -0
  224. package/components/carousel/themes/light/carousel.shared.css.js +3 -0
  225. package/components/carousel/themes/light/carousel.shared.css.js.map +1 -0
  226. package/components/carousel/themes/shared/carousel.bootstrap.css.d.ts +1 -0
  227. package/components/carousel/themes/shared/carousel.bootstrap.css.js +3 -0
  228. package/components/carousel/themes/shared/carousel.bootstrap.css.js.map +1 -0
  229. package/components/carousel/themes/shared/carousel.common.css.d.ts +1 -0
  230. package/components/carousel/themes/shared/carousel.common.css.js +3 -0
  231. package/components/carousel/themes/shared/carousel.common.css.js.map +1 -0
  232. package/components/carousel/themes/shared/carousel.fluent.css.d.ts +1 -0
  233. package/components/carousel/themes/shared/carousel.fluent.css.js +3 -0
  234. package/components/carousel/themes/shared/carousel.fluent.css.js.map +1 -0
  235. package/components/carousel/themes/shared/carousel.indigo.css.d.ts +1 -0
  236. package/components/carousel/themes/shared/carousel.indigo.css.js +3 -0
  237. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -0
  238. package/components/carousel/themes/shared/indicator-container/indicator-container.bootstrap.css.d.ts +1 -0
  239. package/components/carousel/themes/shared/indicator-container/indicator-container.bootstrap.css.js +3 -0
  240. package/components/carousel/themes/shared/indicator-container/indicator-container.bootstrap.css.js.map +1 -0
  241. package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.d.ts +1 -0
  242. package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.js +3 -0
  243. package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.js.map +1 -0
  244. package/components/carousel/themes/shared/indicator-container/indicator-container.fluent.css.d.ts +1 -0
  245. package/components/carousel/themes/shared/indicator-container/indicator-container.fluent.css.js +3 -0
  246. package/components/carousel/themes/shared/indicator-container/indicator-container.fluent.css.js.map +1 -0
  247. package/components/carousel/themes/shared/indicator-container/indicator-container.indigo.css.d.ts +1 -0
  248. package/components/carousel/themes/shared/indicator-container/indicator-container.indigo.css.js +3 -0
  249. package/components/carousel/themes/shared/indicator-container/indicator-container.indigo.css.js.map +1 -0
  250. package/components/checkbox/checkbox-base.d.ts +4 -4
  251. package/components/checkbox/checkbox-base.js +4 -3
  252. package/components/checkbox/checkbox-base.js.map +1 -1
  253. package/components/checkbox/checkbox.d.ts +10 -4
  254. package/components/checkbox/checkbox.js +15 -11
  255. package/components/checkbox/checkbox.js.map +1 -1
  256. package/components/checkbox/switch.js +7 -8
  257. package/components/checkbox/switch.js.map +1 -1
  258. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  259. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  260. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  261. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  262. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
  263. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
  264. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  265. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  266. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js +1 -1
  267. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js.map +1 -1
  268. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js +1 -1
  269. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js.map +1 -1
  270. package/components/checkbox/themes/dark/switch/switch.fluent.css.js +1 -1
  271. package/components/checkbox/themes/dark/switch/switch.fluent.css.js.map +1 -1
  272. package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
  273. package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
  274. package/components/checkbox/themes/dark/switch/switch.material.css.js +1 -1
  275. package/components/checkbox/themes/dark/switch/switch.material.css.js.map +1 -1
  276. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  277. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  278. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js +1 -1
  279. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
  280. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  281. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  282. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js +1 -1
  283. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js.map +1 -1
  284. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  285. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  286. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js +1 -1
  287. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js.map +1 -1
  288. package/components/checkbox/themes/light/switch/switch.fluent.css.js +1 -1
  289. package/components/checkbox/themes/light/switch/switch.fluent.css.js.map +1 -1
  290. package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
  291. package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
  292. package/components/checkbox/themes/light/switch/switch.material.css.js +1 -1
  293. package/components/checkbox/themes/light/switch/switch.material.css.js.map +1 -1
  294. package/components/checkbox/themes/light/switch/switch.shared.css.js +1 -1
  295. package/components/checkbox/themes/light/switch/switch.shared.css.js.map +1 -1
  296. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  297. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  298. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  299. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  300. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  301. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  302. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  303. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  304. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  305. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  306. package/components/checkbox/themes/shared/switch/switch.material.css.js +1 -1
  307. package/components/checkbox/themes/shared/switch/switch.material.css.js.map +1 -1
  308. package/components/checkbox/themes/switch.base.css.js +1 -1
  309. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  310. package/components/chip/chip.d.ts +3 -3
  311. package/components/chip/chip.js.map +1 -1
  312. package/components/chip/themes/chip.base.css.js +1 -1
  313. package/components/chip/themes/chip.base.css.js.map +1 -1
  314. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  315. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  316. package/components/chip/themes/dark/chip.fluent.css.js +1 -1
  317. package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
  318. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  319. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  320. package/components/chip/themes/dark/chip.material.css.js +1 -1
  321. package/components/chip/themes/dark/chip.material.css.js.map +1 -1
  322. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  323. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  324. package/components/chip/themes/light/chip.fluent.css.js +1 -1
  325. package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
  326. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  327. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  328. package/components/chip/themes/light/chip.material.css.js +1 -1
  329. package/components/chip/themes/light/chip.material.css.js.map +1 -1
  330. package/components/chip/themes/light/chip.shared.css.js +1 -1
  331. package/components/chip/themes/light/chip.shared.css.js.map +1 -1
  332. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  333. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  334. package/components/chip/themes/shared/chip.common.css.js +1 -1
  335. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  336. package/components/chip/themes/shared/chip.fluent.css.js +1 -1
  337. package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
  338. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  339. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  340. package/components/combo/combo.d.ts +5 -3
  341. package/components/combo/combo.js +15 -20
  342. package/components/combo/combo.js.map +1 -1
  343. package/components/combo/controllers/selection.js +7 -6
  344. package/components/combo/controllers/selection.js.map +1 -1
  345. package/components/combo/themes/combo-item.base.css.js +1 -1
  346. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  347. package/components/combo/themes/combo.base.css.js +1 -1
  348. package/components/combo/themes/combo.base.css.js.map +1 -1
  349. package/components/combo/themes/dark/combo.bootstrap.css.js +1 -1
  350. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -1
  351. package/components/combo/themes/dark/combo.fluent.css.js +1 -1
  352. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -1
  353. package/components/combo/themes/dark/combo.indigo.css.js +1 -1
  354. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
  355. package/components/combo/themes/dark/combo.material.css.js +1 -1
  356. package/components/combo/themes/dark/combo.material.css.js.map +1 -1
  357. package/components/combo/themes/light/combo.bootstrap.css.js +1 -1
  358. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  359. package/components/combo/themes/light/combo.fluent.css.js +1 -1
  360. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  361. package/components/combo/themes/light/combo.indigo.css.js +1 -1
  362. package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
  363. package/components/combo/themes/light/combo.material.css.js +1 -1
  364. package/components/combo/themes/light/combo.material.css.js.map +1 -1
  365. package/components/combo/themes/light/combo.shared.css.js +1 -1
  366. package/components/combo/themes/light/combo.shared.css.js.map +1 -1
  367. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  368. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  369. package/components/combo/themes/shared/combo.common.css.js +1 -1
  370. package/components/combo/themes/shared/combo.common.css.js.map +1 -1
  371. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  372. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  373. package/components/combo/themes/shared/combo.indigo.css.js +1 -1
  374. package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
  375. package/components/combo/themes/shared/combo.material.css.js +1 -1
  376. package/components/combo/themes/shared/combo.material.css.js.map +1 -1
  377. package/components/combo/types.d.ts +1 -1
  378. package/components/combo/types.js.map +1 -1
  379. package/components/common/controllers/gestures.d.ts +76 -0
  380. package/components/common/controllers/gestures.js +154 -0
  381. package/components/common/controllers/gestures.js.map +1 -0
  382. package/components/common/definitions/defineAllComponents.js +6 -0
  383. package/components/common/definitions/defineAllComponents.js.map +1 -1
  384. package/components/common/mixins/forms/associated.js +39 -18
  385. package/components/common/mixins/forms/associated.js.map +1 -1
  386. package/components/common/mixins/forms/types.d.ts +3 -1
  387. package/components/common/mixins/forms/types.js.map +1 -1
  388. package/components/common/util.d.ts +8 -0
  389. package/components/common/util.js +21 -2
  390. package/components/common/util.js.map +1 -1
  391. package/components/common/validators.d.ts +0 -4
  392. package/components/common/validators.js +0 -5
  393. package/components/common/validators.js.map +1 -1
  394. package/components/date-picker/date-picker.d.ts +14 -8
  395. package/components/date-picker/date-picker.js +3 -7
  396. package/components/date-picker/date-picker.js.map +1 -1
  397. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
  398. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
  399. package/components/date-picker/themes/dark/date-picker.fluent.css.js +1 -1
  400. package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -1
  401. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  402. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  403. package/components/date-picker/themes/dark/date-picker.material.css.js +1 -1
  404. package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -1
  405. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  406. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  407. package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
  408. package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -1
  409. package/components/date-picker/themes/light/date-picker.fluent.css.js +1 -1
  410. package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -1
  411. package/components/date-picker/themes/light/date-picker.indigo.css.js +1 -1
  412. package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -1
  413. package/components/date-picker/themes/light/date-picker.material.css.js +1 -1
  414. package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -1
  415. package/components/date-picker/themes/light/date-picker.shared.css.js +1 -1
  416. package/components/date-picker/themes/light/date-picker.shared.css.js.map +1 -1
  417. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  418. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  419. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  420. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  421. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  422. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  423. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  424. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  425. package/components/date-time-input/date-time-input.d.ts +8 -3
  426. package/components/date-time-input/date-time-input.js +2 -1
  427. package/components/date-time-input/date-time-input.js.map +1 -1
  428. package/components/dialog/dialog.d.ts +3 -3
  429. package/components/dialog/dialog.js.map +1 -1
  430. package/components/dialog/themes/dark/dialog.bootstrap.css.js +1 -1
  431. package/components/dialog/themes/dark/dialog.bootstrap.css.js.map +1 -1
  432. package/components/dialog/themes/dark/dialog.fluent.css.js +1 -1
  433. package/components/dialog/themes/dark/dialog.fluent.css.js.map +1 -1
  434. package/components/dialog/themes/dark/dialog.indigo.css.js +1 -1
  435. package/components/dialog/themes/dark/dialog.indigo.css.js.map +1 -1
  436. package/components/dialog/themes/dark/dialog.material.css.js +1 -1
  437. package/components/dialog/themes/dark/dialog.material.css.js.map +1 -1
  438. package/components/dialog/themes/dark/dialog.shared.css.js +1 -1
  439. package/components/dialog/themes/dark/dialog.shared.css.js.map +1 -1
  440. package/components/dialog/themes/light/dialog.bootstrap.css.js +1 -1
  441. package/components/dialog/themes/light/dialog.bootstrap.css.js.map +1 -1
  442. package/components/dialog/themes/light/dialog.fluent.css.js +1 -1
  443. package/components/dialog/themes/light/dialog.fluent.css.js.map +1 -1
  444. package/components/dialog/themes/light/dialog.indigo.css.js +1 -1
  445. package/components/dialog/themes/light/dialog.indigo.css.js.map +1 -1
  446. package/components/dialog/themes/light/dialog.shared.css.js +1 -1
  447. package/components/dialog/themes/light/dialog.shared.css.js.map +1 -1
  448. package/components/divider/themes/dark/divider.indigo.css.js +1 -1
  449. package/components/divider/themes/dark/divider.indigo.css.js.map +1 -1
  450. package/components/divider/themes/light/divider.shared.css.js +1 -1
  451. package/components/divider/themes/light/divider.shared.css.js.map +1 -1
  452. package/components/dropdown/dropdown.d.ts +2 -2
  453. package/components/dropdown/dropdown.js +4 -4
  454. package/components/dropdown/dropdown.js.map +1 -1
  455. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  456. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  457. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  458. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  459. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  460. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  461. package/components/dropdown/themes/dark/dropdown.material.css.js +1 -1
  462. package/components/dropdown/themes/dark/dropdown.material.css.js.map +1 -1
  463. package/components/dropdown/themes/dark/dropdown.shared.css.js +1 -1
  464. package/components/dropdown/themes/dark/dropdown.shared.css.js.map +1 -1
  465. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  466. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  467. package/components/dropdown/themes/header.js +0 -7
  468. package/components/dropdown/themes/header.js.map +1 -1
  469. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  470. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  471. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  472. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  473. package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
  474. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  475. package/components/dropdown/themes/light/dropdown.material.css.js +1 -1
  476. package/components/dropdown/themes/light/dropdown.material.css.js.map +1 -1
  477. package/components/dropdown/themes/light/dropdown.shared.css.js +1 -1
  478. package/components/dropdown/themes/light/dropdown.shared.css.js.map +1 -1
  479. package/components/dropdown/themes/shared/dropdown.common.css.js +1 -1
  480. package/components/dropdown/themes/shared/dropdown.common.css.js.map +1 -1
  481. package/components/dropdown/themes/shared/dropdown.fluent.css.js +1 -1
  482. package/components/dropdown/themes/shared/dropdown.fluent.css.js.map +1 -1
  483. package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
  484. package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
  485. package/components/dropdown/themes/shared/dropdown.material.css.js +1 -1
  486. package/components/dropdown/themes/shared/dropdown.material.css.js.map +1 -1
  487. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js +1 -1
  488. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js.map +1 -1
  489. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +1 -1
  490. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -1
  491. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js +1 -1
  492. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js.map +1 -1
  493. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js +1 -1
  494. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js.map +1 -1
  495. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  496. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  497. package/components/expansion-panel/expansion-panel.d.ts +1 -1
  498. package/components/expansion-panel/expansion-panel.js +2 -2
  499. package/components/expansion-panel/expansion-panel.js.map +1 -1
  500. package/components/expansion-panel/themes/dark/expansion-panel.bootstrap.css.js +1 -1
  501. package/components/expansion-panel/themes/dark/expansion-panel.bootstrap.css.js.map +1 -1
  502. package/components/expansion-panel/themes/dark/expansion-panel.fluent.css.js +1 -1
  503. package/components/expansion-panel/themes/dark/expansion-panel.fluent.css.js.map +1 -1
  504. package/components/expansion-panel/themes/dark/expansion-panel.material.css.js +1 -1
  505. package/components/expansion-panel/themes/dark/expansion-panel.material.css.js.map +1 -1
  506. package/components/expansion-panel/themes/dark/expansion-panel.shared.css.js +1 -1
  507. package/components/expansion-panel/themes/dark/expansion-panel.shared.css.js.map +1 -1
  508. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  509. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  510. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +1 -1
  511. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -1
  512. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +1 -1
  513. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
  514. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +1 -1
  515. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
  516. package/components/expansion-panel/themes/light/expansion-panel.shared.css.js +1 -1
  517. package/components/expansion-panel/themes/light/expansion-panel.shared.css.js.map +1 -1
  518. package/components/expansion-panel/themes/shared/expansion-panel.bootstrap.css.js +1 -1
  519. package/components/expansion-panel/themes/shared/expansion-panel.bootstrap.css.js.map +1 -1
  520. package/components/expansion-panel/themes/shared/expansion-panel.common.css.js +1 -1
  521. package/components/expansion-panel/themes/shared/expansion-panel.common.css.js.map +1 -1
  522. package/components/expansion-panel/themes/shared/expansion-panel.fluent.css.js +1 -1
  523. package/components/expansion-panel/themes/shared/expansion-panel.fluent.css.js.map +1 -1
  524. package/components/icon/icon-references.js +56 -8
  525. package/components/icon/icon-references.js.map +1 -1
  526. package/components/icon/icon-state.broadcast.d.ts +3 -1
  527. package/components/icon/icon-state.broadcast.js +19 -3
  528. package/components/icon/icon-state.broadcast.js.map +1 -1
  529. package/components/icon/internal-icons-lib.js +69 -0
  530. package/components/icon/internal-icons-lib.js.map +1 -1
  531. package/components/icon/themes/dark/icon.fluent.css.js +1 -1
  532. package/components/icon/themes/dark/icon.fluent.css.js.map +1 -1
  533. package/components/icon/themes/dark/icon.indigo.css.js +1 -1
  534. package/components/icon/themes/dark/icon.indigo.css.js.map +1 -1
  535. package/components/icon/themes/light/icon.indigo.css.js +1 -1
  536. package/components/icon/themes/light/icon.indigo.css.js.map +1 -1
  537. package/components/input/input-base.d.ts +5 -4
  538. package/components/input/input-base.js +13 -13
  539. package/components/input/input-base.js.map +1 -1
  540. package/components/input/input.d.ts +10 -0
  541. package/components/input/input.js +5 -3
  542. package/components/input/input.js.map +1 -1
  543. package/components/input/themes/dark/input.bootstrap.css.js +1 -1
  544. package/components/input/themes/dark/input.bootstrap.css.js.map +1 -1
  545. package/components/input/themes/dark/input.fluent.css.js +1 -1
  546. package/components/input/themes/dark/input.fluent.css.js.map +1 -1
  547. package/components/input/themes/dark/input.indigo.css.js +1 -1
  548. package/components/input/themes/dark/input.indigo.css.js.map +1 -1
  549. package/components/input/themes/dark/input.material.css.js +1 -1
  550. package/components/input/themes/dark/input.material.css.js.map +1 -1
  551. package/components/input/themes/input.base.css.js +1 -1
  552. package/components/input/themes/input.base.css.js.map +1 -1
  553. package/components/input/themes/light/input.bootstrap.css.js +1 -1
  554. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  555. package/components/input/themes/light/input.fluent.css.js +1 -1
  556. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  557. package/components/input/themes/light/input.indigo.css.js +1 -1
  558. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  559. package/components/input/themes/light/input.material.css.js +1 -1
  560. package/components/input/themes/light/input.material.css.js.map +1 -1
  561. package/components/input/themes/light/input.shared.css.js +1 -1
  562. package/components/input/themes/light/input.shared.css.js.map +1 -1
  563. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  564. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  565. package/components/input/themes/shared/input.common.css.js +1 -1
  566. package/components/input/themes/shared/input.common.css.js.map +1 -1
  567. package/components/input/themes/shared/input.fluent.css.js +1 -1
  568. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  569. package/components/input/themes/shared/input.indigo.css.js +1 -1
  570. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  571. package/components/input/themes/shared/input.material.css.js +1 -1
  572. package/components/input/themes/shared/input.material.css.js.map +1 -1
  573. package/components/input/validators.js +2 -2
  574. package/components/input/validators.js.map +1 -1
  575. package/components/list/themes/dark/container/list.bootstrap.css.js +1 -1
  576. package/components/list/themes/dark/container/list.bootstrap.css.js.map +1 -1
  577. package/components/list/themes/dark/container/list.fluent.css.js +1 -1
  578. package/components/list/themes/dark/container/list.fluent.css.js.map +1 -1
  579. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  580. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  581. package/components/list/themes/dark/container/list.material.css.js +1 -1
  582. package/components/list/themes/dark/container/list.material.css.js.map +1 -1
  583. package/components/list/themes/dark/container/list.shared.css.js +1 -1
  584. package/components/list/themes/dark/container/list.shared.css.js.map +1 -1
  585. package/components/list/themes/dark/header/list-header.bootstrap.css.js +1 -1
  586. package/components/list/themes/dark/header/list-header.bootstrap.css.js.map +1 -1
  587. package/components/list/themes/dark/header/list-header.fluent.css.js +1 -1
  588. package/components/list/themes/dark/header/list-header.fluent.css.js.map +1 -1
  589. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  590. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  591. package/components/list/themes/dark/header/list-header.material.css.js +1 -1
  592. package/components/list/themes/dark/header/list-header.material.css.js.map +1 -1
  593. package/components/list/themes/dark/item/list-item.bootstrap.css.js +1 -1
  594. package/components/list/themes/dark/item/list-item.bootstrap.css.js.map +1 -1
  595. package/components/list/themes/dark/item/list-item.fluent.css.js +1 -1
  596. package/components/list/themes/dark/item/list-item.fluent.css.js.map +1 -1
  597. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  598. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  599. package/components/list/themes/dark/item/list-item.material.css.js +1 -1
  600. package/components/list/themes/dark/item/list-item.material.css.js.map +1 -1
  601. package/components/list/themes/light/container/list.bootstrap.css.js +1 -1
  602. package/components/list/themes/light/container/list.bootstrap.css.js.map +1 -1
  603. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  604. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  605. package/components/list/themes/light/container/list.shared.css.js +1 -1
  606. package/components/list/themes/light/container/list.shared.css.js.map +1 -1
  607. package/components/list/themes/light/header/list-header.bootstrap.css.js +1 -1
  608. package/components/list/themes/light/header/list-header.bootstrap.css.js.map +1 -1
  609. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  610. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  611. package/components/list/themes/light/item/list-item.bootstrap.css.js +1 -1
  612. package/components/list/themes/light/item/list-item.bootstrap.css.js.map +1 -1
  613. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  614. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  615. package/components/mask-input/mask-input.d.ts +4 -0
  616. package/components/mask-input/mask-input.js +5 -3
  617. package/components/mask-input/mask-input.js.map +1 -1
  618. package/components/nav-drawer/nav-drawer-item.d.ts +1 -1
  619. package/components/nav-drawer/nav-drawer.d.ts +1 -1
  620. package/components/nav-drawer/nav-drawer.js +2 -2
  621. package/components/nav-drawer/nav-drawer.js.map +1 -1
  622. package/components/nav-drawer/themes/dark/container/nav-drawer.bootstrap.css.js +1 -1
  623. package/components/nav-drawer/themes/dark/container/nav-drawer.bootstrap.css.js.map +1 -1
  624. package/components/nav-drawer/themes/dark/container/nav-drawer.fluent.css.js +1 -1
  625. package/components/nav-drawer/themes/dark/container/nav-drawer.fluent.css.js.map +1 -1
  626. package/components/nav-drawer/themes/dark/container/nav-drawer.indigo.css.js +1 -1
  627. package/components/nav-drawer/themes/dark/container/nav-drawer.indigo.css.js.map +1 -1
  628. package/components/nav-drawer/themes/dark/container/nav-drawer.material.css.js +1 -1
  629. package/components/nav-drawer/themes/dark/container/nav-drawer.material.css.js.map +1 -1
  630. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  631. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  632. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  633. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  634. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  635. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  636. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  637. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  638. package/components/nav-drawer/themes/light/container/nav-drawer.material.css.js +1 -1
  639. package/components/nav-drawer/themes/light/container/nav-drawer.material.css.js.map +1 -1
  640. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  641. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  642. package/components/navbar/themes/dark/navbar.bootstrap.css.js +1 -1
  643. package/components/navbar/themes/dark/navbar.bootstrap.css.js.map +1 -1
  644. package/components/navbar/themes/dark/navbar.fluent.css.js +1 -1
  645. package/components/navbar/themes/dark/navbar.fluent.css.js.map +1 -1
  646. package/components/navbar/themes/dark/navbar.indigo.css.js +1 -1
  647. package/components/navbar/themes/dark/navbar.indigo.css.js.map +1 -1
  648. package/components/navbar/themes/dark/navbar.material.css.js +1 -1
  649. package/components/navbar/themes/dark/navbar.material.css.js.map +1 -1
  650. package/components/navbar/themes/light/navbar.bootstrap.css.js +1 -1
  651. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  652. package/components/navbar/themes/light/navbar.fluent.css.js +1 -1
  653. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  654. package/components/navbar/themes/light/navbar.indigo.css.js +1 -1
  655. package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
  656. package/components/navbar/themes/light/navbar.shared.css.js +1 -1
  657. package/components/navbar/themes/light/navbar.shared.css.js.map +1 -1
  658. package/components/popover/popover.js +3 -3
  659. package/components/popover/popover.js.map +1 -1
  660. package/components/progress/base.d.ts +1 -1
  661. package/components/progress/themes/circular/dark/circular.progress.bootstrap.css.js +1 -1
  662. package/components/progress/themes/circular/dark/circular.progress.bootstrap.css.js.map +1 -1
  663. package/components/progress/themes/circular/dark/circular.progress.fluent.css.js +1 -1
  664. package/components/progress/themes/circular/dark/circular.progress.fluent.css.js.map +1 -1
  665. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js +1 -1
  666. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js.map +1 -1
  667. package/components/progress/themes/circular/dark/circular.progress.material.css.js +1 -1
  668. package/components/progress/themes/circular/dark/circular.progress.material.css.js.map +1 -1
  669. package/components/progress/themes/circular/dark/circular.progress.shared.css.js +1 -1
  670. package/components/progress/themes/circular/dark/circular.progress.shared.css.js.map +1 -1
  671. package/components/progress/themes/circular/light/circular.progress.indigo.css.js +1 -1
  672. package/components/progress/themes/circular/light/circular.progress.indigo.css.js.map +1 -1
  673. package/components/progress/themes/circular/light/circular.progress.shared.css.js +1 -1
  674. package/components/progress/themes/circular/light/circular.progress.shared.css.js.map +1 -1
  675. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  676. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  677. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js +1 -1
  678. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js.map +1 -1
  679. package/components/progress/themes/linear/dark/linear.progress.fluent.css.js +1 -1
  680. package/components/progress/themes/linear/dark/linear.progress.fluent.css.js.map +1 -1
  681. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js +1 -1
  682. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js.map +1 -1
  683. package/components/progress/themes/linear/dark/linear.progress.material.css.js +1 -1
  684. package/components/progress/themes/linear/dark/linear.progress.material.css.js.map +1 -1
  685. package/components/progress/themes/linear/dark/linear.progress.shared.css.js +1 -1
  686. package/components/progress/themes/linear/dark/linear.progress.shared.css.js.map +1 -1
  687. package/components/progress/themes/linear/light/linear.progress.bootstrap.css.js +1 -1
  688. package/components/progress/themes/linear/light/linear.progress.bootstrap.css.js.map +1 -1
  689. package/components/progress/themes/linear/light/linear.progress.indigo.css.js +1 -1
  690. package/components/progress/themes/linear/light/linear.progress.indigo.css.js.map +1 -1
  691. package/components/progress/themes/linear/light/linear.progress.shared.css.js +1 -1
  692. package/components/progress/themes/linear/light/linear.progress.shared.css.js.map +1 -1
  693. package/components/radio/radio.d.ts +11 -6
  694. package/components/radio/radio.js +14 -12
  695. package/components/radio/radio.js.map +1 -1
  696. package/components/radio/themes/dark/radio.bootstrap.css.js +1 -1
  697. package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -1
  698. package/components/radio/themes/dark/radio.fluent.css.js +1 -1
  699. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  700. package/components/radio/themes/dark/radio.indigo.css.js +1 -1
  701. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  702. package/components/radio/themes/dark/radio.material.css.js +1 -1
  703. package/components/radio/themes/dark/radio.material.css.js.map +1 -1
  704. package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
  705. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  706. package/components/radio/themes/light/radio.fluent.css.js +1 -1
  707. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  708. package/components/radio/themes/light/radio.indigo.css.js +1 -1
  709. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  710. package/components/radio/themes/light/radio.material.css.js +1 -1
  711. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  712. package/components/radio/themes/light/radio.shared.css.js +1 -1
  713. package/components/radio/themes/light/radio.shared.css.js.map +1 -1
  714. package/components/radio/themes/radio.base.css.js +1 -1
  715. package/components/radio/themes/radio.base.css.js.map +1 -1
  716. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  717. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  718. package/components/radio/themes/shared/radio.fluent.css.js +1 -1
  719. package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
  720. package/components/radio/themes/shared/radio.indigo.css.js +1 -1
  721. package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
  722. package/components/radio/themes/shared/radio.material.css.js +1 -1
  723. package/components/radio/themes/shared/radio.material.css.js.map +1 -1
  724. package/components/radio-group/radio-group.base.css.js +1 -1
  725. package/components/radio-group/radio-group.base.css.js.map +1 -1
  726. package/components/radio-group/radio-group.d.ts +2 -0
  727. package/components/radio-group/radio-group.fluent.css.js +1 -1
  728. package/components/radio-group/radio-group.fluent.css.js.map +1 -1
  729. package/components/radio-group/radio-group.indigo.css.js +1 -1
  730. package/components/radio-group/radio-group.indigo.css.js.map +1 -1
  731. package/components/radio-group/radio-group.js +11 -0
  732. package/components/radio-group/radio-group.js.map +1 -1
  733. package/components/radio-group/radio-group.material.css.js +1 -1
  734. package/components/radio-group/radio-group.material.css.js.map +1 -1
  735. package/components/rating/rating.d.ts +2 -2
  736. package/components/rating/rating.js +2 -2
  737. package/components/rating/rating.js.map +1 -1
  738. package/components/rating/themes/dark/rating.fluent.css.js +1 -1
  739. package/components/rating/themes/dark/rating.fluent.css.js.map +1 -1
  740. package/components/rating/themes/dark/rating.indigo.css.js +1 -1
  741. package/components/rating/themes/dark/rating.indigo.css.js.map +1 -1
  742. package/components/rating/themes/dark/rating.material.css.js +1 -1
  743. package/components/rating/themes/dark/rating.material.css.js.map +1 -1
  744. package/components/rating/themes/light/rating.fluent.css.js +1 -1
  745. package/components/rating/themes/light/rating.fluent.css.js.map +1 -1
  746. package/components/rating/themes/light/rating.indigo.css.js +1 -1
  747. package/components/rating/themes/light/rating.indigo.css.js.map +1 -1
  748. package/components/rating/themes/light/rating.material.css.js +1 -1
  749. package/components/rating/themes/light/rating.material.css.js.map +1 -1
  750. package/components/rating/themes/light/rating.shared.css.js +1 -1
  751. package/components/rating/themes/light/rating.shared.css.js.map +1 -1
  752. package/components/ripple/ripple.js +1 -1
  753. package/components/ripple/ripple.js.map +1 -1
  754. package/components/select/select.d.ts +13 -11
  755. package/components/select/select.js +10 -20
  756. package/components/select/select.js.map +1 -1
  757. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  758. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  759. package/components/select/themes/dark/select.fluent.css.js +1 -1
  760. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  761. package/components/select/themes/dark/select.indigo.css.js +1 -1
  762. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  763. package/components/select/themes/dark/select.material.css.js +1 -1
  764. package/components/select/themes/dark/select.material.css.js.map +1 -1
  765. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  766. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  767. package/components/select/themes/light/select.fluent.css.js +1 -1
  768. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  769. package/components/select/themes/light/select.indigo.css.js +1 -1
  770. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  771. package/components/select/themes/light/select.material.css.js +1 -1
  772. package/components/select/themes/light/select.material.css.js.map +1 -1
  773. package/components/select/themes/light/select.shared.css.js +1 -1
  774. package/components/select/themes/light/select.shared.css.js.map +1 -1
  775. package/components/select/themes/select.base.css.js +1 -1
  776. package/components/select/themes/select.base.css.js.map +1 -1
  777. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  778. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  779. package/components/select/themes/shared/select.common.css.js +1 -1
  780. package/components/select/themes/shared/select.common.css.js.map +1 -1
  781. package/components/select/themes/shared/select.fluent.css.js +1 -1
  782. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  783. package/components/select/themes/shared/select.indigo.css.js +1 -1
  784. package/components/select/themes/shared/select.indigo.css.js.map +1 -1
  785. package/components/select/themes/shared/select.material.css.js +1 -1
  786. package/components/select/themes/shared/select.material.css.js.map +1 -1
  787. package/components/slider/range-slider.d.ts +2 -2
  788. package/components/slider/range-slider.js.map +1 -1
  789. package/components/slider/slider.d.ts +2 -2
  790. package/components/slider/slider.js.map +1 -1
  791. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  792. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  793. package/components/slider/themes/dark/slider.fluent.css.js +1 -1
  794. package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
  795. package/components/slider/themes/dark/slider.indigo.css.js +1 -1
  796. package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
  797. package/components/slider/themes/dark/slider.material.css.js +1 -1
  798. package/components/slider/themes/dark/slider.material.css.js.map +1 -1
  799. package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
  800. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  801. package/components/slider/themes/light/slider.fluent.css.js +1 -1
  802. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  803. package/components/slider/themes/light/slider.indigo.css.js +1 -1
  804. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  805. package/components/slider/themes/light/slider.material.css.js +1 -1
  806. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  807. package/components/slider/themes/light/slider.shared.css.js +1 -1
  808. package/components/slider/themes/light/slider.shared.css.js.map +1 -1
  809. package/components/snackbar/snackbar.d.ts +2 -2
  810. package/components/snackbar/snackbar.js.map +1 -1
  811. package/components/snackbar/themes/dark/snackbar.bootstrap.css.js +1 -1
  812. package/components/snackbar/themes/dark/snackbar.bootstrap.css.js.map +1 -1
  813. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  814. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  815. package/components/snackbar/themes/light/snackbar.bootstrap.css.js +1 -1
  816. package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -1
  817. package/components/snackbar/themes/light/snackbar.indigo.css.js +1 -1
  818. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
  819. package/components/snackbar/themes/light/snackbar.shared.css.js +1 -1
  820. package/components/snackbar/themes/light/snackbar.shared.css.js.map +1 -1
  821. package/components/stepper/stepper.common.d.ts +1 -1
  822. package/components/stepper/stepper.common.js.map +1 -1
  823. package/components/stepper/stepper.d.ts +2 -2
  824. package/components/stepper/stepper.js.map +1 -1
  825. package/components/stepper/themes/step/dark/step.bootstrap.css.js +1 -1
  826. package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -1
  827. package/components/stepper/themes/step/dark/step.fluent.css.js +1 -1
  828. package/components/stepper/themes/step/dark/step.fluent.css.js.map +1 -1
  829. package/components/stepper/themes/step/dark/step.indigo.css.js +1 -1
  830. package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -1
  831. package/components/stepper/themes/step/dark/step.material.css.js +1 -1
  832. package/components/stepper/themes/step/dark/step.material.css.js.map +1 -1
  833. package/components/stepper/themes/step/dark/step.shared.css.js +1 -1
  834. package/components/stepper/themes/step/dark/step.shared.css.js.map +1 -1
  835. package/components/stepper/themes/step/light/step.bootstrap.css.js +1 -1
  836. package/components/stepper/themes/step/light/step.bootstrap.css.js.map +1 -1
  837. package/components/stepper/themes/step/light/step.fluent.css.js +1 -1
  838. package/components/stepper/themes/step/light/step.fluent.css.js.map +1 -1
  839. package/components/stepper/themes/step/light/step.indigo.css.js +1 -1
  840. package/components/stepper/themes/step/light/step.indigo.css.js.map +1 -1
  841. package/components/stepper/themes/step/light/step.material.css.js +1 -1
  842. package/components/stepper/themes/step/light/step.material.css.js.map +1 -1
  843. package/components/stepper/themes/step/light/step.shared.css.js +1 -1
  844. package/components/stepper/themes/step/light/step.shared.css.js.map +1 -1
  845. package/components/tabs/tabs.d.ts +2 -2
  846. package/components/tabs/tabs.js +1 -0
  847. package/components/tabs/tabs.js.map +1 -1
  848. package/components/tabs/themes/dark/tab.bootstrap.css.js +1 -1
  849. package/components/tabs/themes/dark/tab.bootstrap.css.js.map +1 -1
  850. package/components/tabs/themes/dark/tab.fluent.css.js +1 -1
  851. package/components/tabs/themes/dark/tab.fluent.css.js.map +1 -1
  852. package/components/tabs/themes/dark/tab.indigo.css.js +1 -1
  853. package/components/tabs/themes/dark/tab.indigo.css.js.map +1 -1
  854. package/components/tabs/themes/dark/tab.material.css.js +1 -1
  855. package/components/tabs/themes/dark/tab.material.css.js.map +1 -1
  856. package/components/tabs/themes/dark/tab.shared.css.js +1 -1
  857. package/components/tabs/themes/dark/tab.shared.css.js.map +1 -1
  858. package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
  859. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  860. package/components/tabs/themes/light/tab.fluent.css.js +1 -1
  861. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  862. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  863. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  864. package/components/tabs/themes/light/tab.material.css.js +1 -1
  865. package/components/tabs/themes/light/tab.material.css.js.map +1 -1
  866. package/components/tabs/themes/light/tab.shared.css.js +1 -1
  867. package/components/tabs/themes/light/tab.shared.css.js.map +1 -1
  868. package/components/tabs/themes/shared/tab/tab.indigo.css.d.ts +1 -0
  869. package/components/tabs/themes/shared/tab/tab.indigo.css.js +3 -0
  870. package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -0
  871. package/components/tabs/themes/shared/tabs/tabs.indigo.css.d.ts +1 -0
  872. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +3 -0
  873. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -0
  874. package/components/tabs/themes/tab-themes.js +7 -0
  875. package/components/tabs/themes/tab-themes.js.map +1 -1
  876. package/components/tabs/themes/tab.base.css.js +1 -1
  877. package/components/tabs/themes/tab.base.css.js.map +1 -1
  878. package/components/tabs/themes/tabs-themes.js +3 -2
  879. package/components/tabs/themes/tabs-themes.js.map +1 -1
  880. package/components/tabs/themes/tabs.base.css.js +1 -1
  881. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  882. package/components/textarea/textarea.d.ts +23 -19
  883. package/components/textarea/textarea.js +60 -68
  884. package/components/textarea/textarea.js.map +1 -1
  885. package/components/textarea/themes/dark/textarea.bootstrap.css.js +1 -1
  886. package/components/textarea/themes/dark/textarea.bootstrap.css.js.map +1 -1
  887. package/components/textarea/themes/dark/textarea.fluent.css.js +1 -1
  888. package/components/textarea/themes/dark/textarea.fluent.css.js.map +1 -1
  889. package/components/textarea/themes/dark/textarea.indigo.css.js +1 -1
  890. package/components/textarea/themes/dark/textarea.indigo.css.js.map +1 -1
  891. package/components/textarea/themes/dark/textarea.material.css.js +1 -1
  892. package/components/textarea/themes/dark/textarea.material.css.js.map +1 -1
  893. package/components/textarea/themes/light/textarea.bootstrap.css.js +1 -1
  894. package/components/textarea/themes/light/textarea.bootstrap.css.js.map +1 -1
  895. package/components/textarea/themes/light/textarea.fluent.css.js +1 -1
  896. package/components/textarea/themes/light/textarea.fluent.css.js.map +1 -1
  897. package/components/textarea/themes/light/textarea.indigo.css.js +1 -1
  898. package/components/textarea/themes/light/textarea.indigo.css.js.map +1 -1
  899. package/components/textarea/themes/light/textarea.material.css.js +1 -1
  900. package/components/textarea/themes/light/textarea.material.css.js.map +1 -1
  901. package/components/textarea/themes/light/textarea.shared.css.js +1 -1
  902. package/components/textarea/themes/light/textarea.shared.css.js.map +1 -1
  903. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  904. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  905. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  906. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  907. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  908. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  909. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  910. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  911. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  912. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  913. package/components/toast/themes/dark/toast.bootstrap.css.js +1 -1
  914. package/components/toast/themes/dark/toast.bootstrap.css.js.map +1 -1
  915. package/components/toast/themes/dark/toast.indigo.css.js +1 -1
  916. package/components/toast/themes/dark/toast.indigo.css.js.map +1 -1
  917. package/components/toast/themes/dark/toast.shared.css.js +1 -1
  918. package/components/toast/themes/dark/toast.shared.css.js.map +1 -1
  919. package/components/toast/themes/light/toast.bootstrap.css.js +1 -1
  920. package/components/toast/themes/light/toast.bootstrap.css.js.map +1 -1
  921. package/components/toast/themes/light/toast.indigo.css.js +1 -1
  922. package/components/toast/themes/light/toast.indigo.css.js.map +1 -1
  923. package/components/toast/themes/light/toast.shared.css.js +1 -1
  924. package/components/toast/themes/light/toast.shared.css.js.map +1 -1
  925. package/components/tree/themes/dark/container.bootstrap.css.js +1 -1
  926. package/components/tree/themes/dark/container.bootstrap.css.js.map +1 -1
  927. package/components/tree/themes/dark/container.fluent.css.js +1 -1
  928. package/components/tree/themes/dark/container.fluent.css.js.map +1 -1
  929. package/components/tree/themes/dark/container.indigo.css.js +1 -1
  930. package/components/tree/themes/dark/container.indigo.css.js.map +1 -1
  931. package/components/tree/themes/dark/container.material.css.js +1 -1
  932. package/components/tree/themes/dark/container.material.css.js.map +1 -1
  933. package/components/tree/themes/dark/container.shared.css.js +1 -1
  934. package/components/tree/themes/dark/container.shared.css.js.map +1 -1
  935. package/components/tree/themes/light/container.bootstrap.css.js +1 -1
  936. package/components/tree/themes/light/container.bootstrap.css.js.map +1 -1
  937. package/components/tree/themes/light/container.fluent.css.js +1 -1
  938. package/components/tree/themes/light/container.fluent.css.js.map +1 -1
  939. package/components/tree/themes/light/container.indigo.css.js +1 -1
  940. package/components/tree/themes/light/container.indigo.css.js.map +1 -1
  941. package/components/tree/themes/light/container.material.css.js +1 -1
  942. package/components/tree/themes/light/container.material.css.js.map +1 -1
  943. package/components/tree/themes/light/container.shared.css.js +1 -1
  944. package/components/tree/themes/light/container.shared.css.js.map +1 -1
  945. package/components/tree/tree.common.d.ts +1 -1
  946. package/components/tree/tree.common.js.map +1 -1
  947. package/components/tree/tree.d.ts +3 -3
  948. package/components/tree/tree.js.map +1 -1
  949. package/components/tree/tree.selection.js +4 -5
  950. package/components/tree/tree.selection.js.map +1 -1
  951. package/components/validation-container/themes/dark/validator.bootstrap.css.d.ts +1 -0
  952. package/components/validation-container/themes/dark/validator.bootstrap.css.js +3 -0
  953. package/components/validation-container/themes/dark/validator.bootstrap.css.js.map +1 -0
  954. package/components/validation-container/themes/dark/validator.fluent.css.d.ts +1 -0
  955. package/components/validation-container/themes/dark/validator.fluent.css.js +3 -0
  956. package/components/validation-container/themes/dark/validator.fluent.css.js.map +1 -0
  957. package/components/validation-container/themes/dark/validator.indigo.css.d.ts +1 -0
  958. package/components/validation-container/themes/dark/validator.indigo.css.js +3 -0
  959. package/components/validation-container/themes/dark/validator.indigo.css.js.map +1 -0
  960. package/components/validation-container/themes/dark/validator.material.css.d.ts +1 -0
  961. package/components/validation-container/themes/dark/validator.material.css.js +3 -0
  962. package/components/validation-container/themes/dark/validator.material.css.js.map +1 -0
  963. package/components/validation-container/themes/light/validator.bootstrap.css.d.ts +1 -0
  964. package/components/validation-container/themes/light/validator.bootstrap.css.js +3 -0
  965. package/components/validation-container/themes/light/validator.bootstrap.css.js.map +1 -0
  966. package/components/validation-container/themes/light/validator.fluent.css.d.ts +1 -0
  967. package/components/validation-container/themes/light/validator.fluent.css.js +3 -0
  968. package/components/validation-container/themes/light/validator.fluent.css.js.map +1 -0
  969. package/components/validation-container/themes/light/validator.indigo.css.d.ts +1 -0
  970. package/components/validation-container/themes/light/validator.indigo.css.js +3 -0
  971. package/components/validation-container/themes/light/validator.indigo.css.js.map +1 -0
  972. package/components/validation-container/themes/light/validator.material.css.d.ts +1 -0
  973. package/components/validation-container/themes/light/validator.material.css.js +3 -0
  974. package/components/validation-container/themes/light/validator.material.css.js.map +1 -0
  975. package/components/validation-container/themes/light/validator.shared.css.d.ts +1 -0
  976. package/components/validation-container/themes/light/validator.shared.css.js +3 -0
  977. package/components/validation-container/themes/light/validator.shared.css.js.map +1 -0
  978. package/components/validation-container/themes/shared/validator.common.css.d.ts +1 -0
  979. package/components/validation-container/themes/shared/validator.common.css.js +3 -0
  980. package/components/validation-container/themes/shared/validator.common.css.js.map +1 -0
  981. package/components/validation-container/themes/themes.d.ts +2 -0
  982. package/components/validation-container/themes/themes.js +46 -0
  983. package/components/validation-container/themes/themes.js.map +1 -0
  984. package/components/validation-container/themes/validator.base.css.d.ts +1 -0
  985. package/components/validation-container/themes/validator.base.css.js +3 -0
  986. package/components/validation-container/themes/validator.base.css.js.map +1 -0
  987. package/components/validation-container/validation-container.d.ts +42 -0
  988. package/components/validation-container/validation-container.js +160 -0
  989. package/components/validation-container/validation-container.js.map +1 -0
  990. package/custom-elements.json +3093 -447
  991. package/igniteui-webcomponents.css-data.json +1 -1
  992. package/igniteui-webcomponents.html-data.json +1 -1
  993. package/index.d.ts +29 -1
  994. package/index.js +3 -0
  995. package/index.js.map +1 -1
  996. package/package.json +14 -8
  997. package/themes/dark/bootstrap.css +1 -1
  998. package/themes/dark/fluent.css +1 -1
  999. package/themes/dark/indigo.css +1 -1
  1000. package/themes/dark/material.css +1 -1
  1001. package/themes/light/bootstrap.css +1 -1
  1002. package/themes/light/fluent.css +1 -1
  1003. package/themes/light/indigo.css +1 -1
  1004. package/themes/light/material.css +1 -1
  1005. package/theming/theming-controller.d.ts +1 -0
  1006. package/theming/theming-controller.js +11 -29
  1007. package/theming/theming-controller.js.map +1 -1
  1008. package/theming/theming-event.d.ts +7 -0
  1009. package/theming/theming-event.js +14 -0
  1010. package/theming/theming-event.js.map +1 -1
  1011. package/web-types.json +2 -2
  1012. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js +0 -3
  1013. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js.map +0 -1
  1014. /package/components/{dropdown/themes/shared/header/dropdown-header.fluent.css.d.ts → carousel/themes/carousel-indicator-container.base.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/components/common/mixins/forms/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Validator } from '../../validators.js';\n\nexport type FormRestoreMode = 'autocomplete' | 'restore';\nexport type FormValueType = string | File | FormData | null;\n\ndeclare class BaseFormAssociatedElement {\n public static readonly formAssociated: boolean;\n\n private __internals: ElementInternals;\n\n // Properties\n\n protected _dirty: boolean;\n protected _disabled: boolean;\n protected _invalid: boolean;\n\n protected get __validators(): Validator[];\n\n /**\n * The disabled state of the component.\n * @attr\n * @default false\n */\n public disabled: boolean;\n\n /**\n * Control the validity of the control.\n * @attr\n * @default false\n */\n public invalid: boolean;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n public name: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null;\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState;\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string;\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean;\n\n // Methods\n\n /**\n * Invoked on the first `connectedCallback` run before the component has been through the\n * firstUpdate lifecycle hook. Sets the default value to the **property** state of the value/checked member.\n */\n protected _setInitialDefaultValue(): void;\n\n /**\n * Sets the default value of the component.\n * Called in `attributeChangedCallback`(i.e. when the `value` attribute of the control is set).\n */\n protected _setDefaultValue(prev: string | null, current: string | null): void;\n\n /**\n * Called when the associated parent form is reset.\n */\n protected _restoreDefaultValue(): void;\n\n /**\n * Executes the {@link BaseFormAssociatedElement._updateValidity | `_updateValidity()`} hook and then applies\n * the {@link BaseFormAssociatedElement.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n */\n protected _validate(message?: string): void;\n\n /**\n * Executes the component's validators and updates the internal validity state.\n */\n protected _updateValidity(message?: string): void;\n\n /**\n * Sets the component's submission value and state.\n */\n protected _setFormValue(value: FormValueType, state?: FormValueType): void;\n\n /**\n * Called by the browser when it associates/disassociates the component with/from a given form element.\n * Receives the form element as a parameter.\n *\n * @remarks\n * This is not implemented currently.\n */\n protected formAssociatedCallback(form: HTMLFormElement): void;\n\n /**\n * Called whenever the component or a parent `fieldset` elements are disabled.\n * Receives the current disabled state.\n */\n protected formDisabledCallback(state: boolean): void;\n\n /**\n * Called when the form is reset.\n * Resets the component value/checked state to the default one, internal state and validation.\n *\n * @remarks\n * The default implementation calls {@link BaseFormAssociatedElement._restoreDefaultValue | `_restoreDefaultValue`}.\n * If additional customization is needed, it is better to override that method instead of this callback.\n */\n protected formResetCallback(): void;\n\n /**\n * Called when the browser attempts to automatically fill out the component.\n *\n * @remarks\n * This is not implemented currently.\n */\n protected formStateRestoreCallback(\n state: FormValueType,\n mode: FormRestoreMode\n ): void;\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity(): boolean;\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity(): boolean;\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): void;\n}\n\nexport declare class FormAssociatedElementInterface extends BaseFormAssociatedElement {\n protected _defaultValue: unknown;\n}\n\nexport declare class FormAssociatedCheckboxElementInterface extends BaseFormAssociatedElement {\n protected _defaultChecked: boolean;\n}\n\nexport declare class FormRequiredInterface {\n protected _required: boolean;\n\n /**\n * When set, makes the component a required field for validation.\n * @attr\n * @default false\n */\n public set required(value: boolean);\n public get required(): boolean;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/components/common/mixins/forms/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { LitElement } from 'lit';\nimport type { Validator } from '../../validators.js';\n\nexport type FormRestoreMode = 'autocomplete' | 'restore';\nexport type FormValueType = string | File | FormData | null;\nexport type IgcFormControl = LitElement &\n (FormAssociatedElementInterface | FormAssociatedCheckboxElementInterface);\n\ndeclare class BaseFormAssociatedElement {\n public static readonly formAssociated: boolean;\n\n private __internals: ElementInternals;\n\n // Properties\n\n protected _dirty: boolean;\n protected _disabled: boolean;\n protected _invalid: boolean;\n\n protected get __validators(): Validator[];\n\n /**\n * The disabled state of the component.\n * @attr\n * @default false\n */\n public disabled: boolean;\n\n /**\n * Sets the control into invalid state (visual state only).\n * @attr\n * @default false\n */\n public invalid: boolean;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n public name: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null;\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState;\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string;\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean;\n\n // Methods\n\n /**\n * Invoked on the first `connectedCallback` run before the component has been through the\n * firstUpdate lifecycle hook. Sets the default value to the **property** state of the value/checked member.\n */\n protected _setInitialDefaultValue(): void;\n\n /**\n * Sets the default value of the component.\n * Called in `attributeChangedCallback`(i.e. when the `value` attribute of the control is set).\n */\n protected _setDefaultValue(prev: string | null, current: string | null): void;\n\n /**\n * Called when the associated parent form is reset.\n */\n protected _restoreDefaultValue(): void;\n\n /**\n * Executes the {@link BaseFormAssociatedElement._updateValidity | `_updateValidity()`} hook and then applies\n * the {@link BaseFormAssociatedElement.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n */\n protected _validate(message?: string): void;\n\n /**\n * Executes the component's validators and updates the internal validity state.\n */\n protected _updateValidity(message?: string): void;\n\n /**\n * Sets the component's submission value and state.\n */\n protected _setFormValue(value: FormValueType, state?: FormValueType): void;\n\n /**\n * Called by the browser when it associates/disassociates the component with/from a given form element.\n * Receives the form element as a parameter.\n *\n * @remarks\n * This is not implemented currently.\n */\n protected formAssociatedCallback(form: HTMLFormElement): void;\n\n /**\n * Called whenever the component or a parent `fieldset` elements are disabled.\n * Receives the current disabled state.\n */\n protected formDisabledCallback(state: boolean): void;\n\n /**\n * Called when the form is reset.\n * Resets the component value/checked state to the default one, internal state and validation.\n *\n * @remarks\n * The default implementation calls {@link BaseFormAssociatedElement._restoreDefaultValue | `_restoreDefaultValue`}.\n * If additional customization is needed, it is better to override that method instead of this callback.\n */\n protected formResetCallback(): void;\n\n /**\n * Called when the browser attempts to automatically fill out the component.\n *\n * @remarks\n * This is not implemented currently.\n */\n protected formStateRestoreCallback(\n state: FormValueType,\n mode: FormRestoreMode\n ): void;\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity(): boolean;\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity(): boolean;\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): void;\n}\n\nexport declare class FormAssociatedElementInterface extends BaseFormAssociatedElement {\n protected _defaultValue: unknown;\n}\n\nexport declare class FormAssociatedCheckboxElementInterface extends BaseFormAssociatedElement {\n protected _defaultChecked: boolean;\n}\n\nexport declare class FormRequiredInterface {\n protected _required: boolean;\n\n /**\n * When set, makes the component a required field for validation.\n * @attr\n * @default false\n */\n public set required(value: boolean);\n public get required(): boolean;\n}\n"]}
@@ -97,3 +97,11 @@ export declare function take<T>(iterable: IterableIterator<T>, n: number): T[];
97
97
  * ```
98
98
  */
99
99
  export declare function chunk<T>(arr: T[], size: number): Generator<T[], void, unknown>;
100
+ export declare function splitToWords(text: string): string[];
101
+ export declare function toKebabCase(text: string): string;
102
+ export declare function isFunction(value: unknown): value is CallableFunction;
103
+ export declare function isString(value: unknown): value is string;
104
+ /**
105
+ * Returns whether a given collection has at least one member.
106
+ */
107
+ export declare function isEmpty<T, U extends string>(x: ArrayLike<T> | Set<T> | Map<U, T>): boolean;
@@ -80,14 +80,14 @@ export function getElementsFromEventPath(event) {
80
80
  return event.composedPath().filter((item) => isElement(item));
81
81
  }
82
82
  export function findElementFromEventPath(predicate, event) {
83
- const func = typeof predicate === 'string'
83
+ const func = isString(predicate)
84
84
  ? (e) => e.matches(predicate)
85
85
  : (e) => predicate(e);
86
86
  return getElementsFromEventPath(event).find(func);
87
87
  }
88
88
  export function groupBy(array, key) {
89
89
  const result = {};
90
- const _get = typeof key === 'function' ? key : (item) => item[key];
90
+ const _get = isFunction(key) ? key : (item) => item[key];
91
91
  for (const item of array) {
92
92
  const category = _get(item);
93
93
  const group = result[category];
@@ -128,4 +128,23 @@ export function* chunk(arr, size) {
128
128
  yield arr.slice(i, i + size);
129
129
  }
130
130
  }
131
+ export function splitToWords(text) {
132
+ const input = text.replaceAll(/[^a-zA-Z0-9\s-_]/g, '');
133
+ if (/[\s-_]+/.test(input))
134
+ return input.split(/[\s-_]+/);
135
+ return input.split(/(?=[A-Z])+/);
136
+ }
137
+ export function toKebabCase(text) {
138
+ const input = text.trim();
139
+ return splitToWords(input).join('-').toLocaleLowerCase();
140
+ }
141
+ export function isFunction(value) {
142
+ return typeof value === 'function';
143
+ }
144
+ export function isString(value) {
145
+ return typeof value === 'string';
146
+ }
147
+ export function isEmpty(x) {
148
+ return 'length' in x ? x.length < 1 : x.size < 1;
149
+ }
131
150
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/common/util.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PartNameInfo {\n readonly [name: string]: string | boolean | number;\n}\n\nexport const partNameMap = (partNameInfo: PartNameInfo) => {\n return Object.keys(partNameInfo)\n .filter((key) => partNameInfo[key])\n .join(' ');\n};\n\nexport function noop() {}\n\nexport const asPercent = (part: number, whole: number) => (part / whole) * 100;\n\nexport const clamp = (number: number, min: number, max: number) =>\n Math.max(min, Math.min(number, max));\n\nexport function numberInRangeInclusive(\n value: number,\n min: number,\n max: number\n) {\n return value >= min && value <= max;\n}\n\nexport function sameObject(a: object, b: object) {\n return JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n *\n * Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the\n * parent doesn't have to be positioned relative or absolute.\n *\n * Work around for the following issues in Chromium based browsers:\n *\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1330819\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1334556\n *\n */\nexport function getOffset(element: HTMLElement, parent: HTMLElement) {\n const { top, left, bottom, right } = element.getBoundingClientRect();\n const {\n top: pTop,\n left: pLeft,\n bottom: pBottom,\n right: pRight,\n } = parent.getBoundingClientRect();\n\n return {\n top: Math.round(top - pTop),\n left: Math.round(left - pLeft),\n right: Math.round(right - pRight),\n bottom: Math.round(bottom - pBottom),\n };\n}\n\nexport function createCounter() {\n let i = 0;\n return () => {\n i++;\n return i;\n };\n}\n\n/**\n * Returns whether an element has a Left-to-Right directionality.\n */\nexport function isLTR(element: HTMLElement) {\n return element.matches(':dir(ltr)');\n}\n\n/**\n * Builds a string from format specifiers and replacement parameters.\n * Will coerce non-string parameters to their string representations.\n *\n * @example\n * ```typescript\n * formatString('{0} says \"{1}\".', 'John', 'Hello'); // 'John says \"Hello\".'\n * formatString('{1} is greater than {0}', 0, 1); // '1 is greater than 0'\n * ```\n */\nexport function formatString(template: string, ...params: unknown[]): string {\n const length = params.length;\n\n return template.replace(/{(\\d+)}/g, (match: string, index: number) =>\n index >= length ? match : `${params[index]}`\n );\n}\n\n/**\n * Parse the passed `value` as a number or return the `fallback` if it can't be done.\n *\n * @example\n * ```typescript\n * asNumber('5'); // 5\n * asNumber('3.14'); // 3.14\n * asNumber('five'); // 0\n * asNUmber('five', 5); // 5\n * ```\n */\nexport function asNumber(value: unknown, fallback = 0) {\n const parsed = Number.parseFloat(value as string);\n return Number.isNaN(parsed) ? fallback : parsed;\n}\n\n/**\n * Returns the value wrapped between the min and max bounds.\n *\n * If the value is greater than max, returns the min and vice-versa.\n * If the value is between the bounds, it is returned unchanged.\n *\n * @example\n * ```typescript\n * wrap(1, 4, 2); // 2\n * wrap(1, 4, 5); // 1\n * wrap(1, 4, -1); // 4\n * ```\n */\nexport function wrap(min: number, max: number, value: number) {\n if (value < min) {\n return max;\n }\n if (value > max) {\n return min;\n }\n\n return value;\n}\n\nexport function isDefined<T = unknown>(value: T) {\n return value !== undefined;\n}\n\nexport function* iterNodes<T = Node>(\n root: Node,\n whatToShow?: keyof typeof NodeFilter,\n filter?: (node: T) => boolean\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n const iter = globalThis.document.createTreeWalker(\n root,\n NodeFilter[whatToShow ?? 'SHOW_ALL']\n );\n\n let node = iter.nextNode() as T;\n\n while (node) {\n if (filter) {\n if (filter(node)) {\n yield node;\n }\n } else {\n yield node;\n }\n\n node = iter.nextNode() as T;\n }\n}\n\nexport function getElementByIdFromRoot(root: HTMLElement, id: string) {\n return (root.getRootNode() as Document | ShadowRoot).getElementById(id);\n}\n\nexport function isElement(node: unknown): node is Element {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function getElementsFromEventPath<T extends Element>(event: Event) {\n return event.composedPath().filter((item) => isElement(item)) as T[];\n}\n\nexport function findElementFromEventPath<T extends Element>(\n predicate: string | ((element: Element) => boolean),\n event: Event\n) {\n const func =\n typeof predicate === 'string'\n ? (e: Element) => e.matches(predicate)\n : (e: Element) => predicate(e);\n\n return getElementsFromEventPath(event).find(func) as T | undefined;\n}\n\nexport function groupBy<T>(array: T[], key: keyof T | ((item: T) => any)) {\n const result: Record<string, T[]> = {};\n const _get = typeof key === 'function' ? key : (item: T) => item[key];\n\n for (const item of array) {\n const category = _get(item);\n const group = result[category];\n\n if (Array.isArray(group)) {\n group.push(item);\n } else {\n result[category] = [item];\n }\n }\n\n return result;\n}\n\nexport function first<T>(arr: T[]) {\n return arr.at(0) as T;\n}\n\nexport function last<T>(arr: T[]) {\n return arr.at(-1) as T;\n}\n\nexport function modulo(n: number, d: number) {\n return ((n % d) + d) % d;\n}\n\n/**\n * Creates an array of `n` elements from a given iterator.\n *\n */\nexport function take<T>(iterable: IterableIterator<T>, n: number) {\n const result: T[] = [];\n let i = 0;\n let current = iterable.next();\n\n while (i < n && !current.done) {\n result.push(current.value);\n current = iterable.next();\n i++;\n }\n\n return result;\n}\n\n/**\n * Splits an array into chunks of length `size` and returns a generator\n * yielding each chunk.\n * The last chunk may contain less than `size` elements.\n *\n * @example\n * ```typescript\n * const arr = [0,1,2,3,4,5,6,7,8,9];\n *\n * Array.from(chunk(arr, 2)) // [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]\n * Array.from(chunk(arr, 3)) // [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]\n * Array.from(chunk([], 3)) // []\n * Array.from(chunk(arr, -3)) // Error\n * ```\n */\nexport function* chunk<T>(arr: T[], size: number) {\n if (size < 1) {\n throw new Error('size must be an integer >= 1');\n }\n for (let i = 0; i < arr.length; i += size) {\n yield arr.slice(i, i + size);\n }\n}\n"]}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/common/util.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PartNameInfo {\n readonly [name: string]: string | boolean | number;\n}\n\nexport const partNameMap = (partNameInfo: PartNameInfo) => {\n return Object.keys(partNameInfo)\n .filter((key) => partNameInfo[key])\n .join(' ');\n};\n\nexport function noop() {}\n\nexport const asPercent = (part: number, whole: number) => (part / whole) * 100;\n\nexport const clamp = (number: number, min: number, max: number) =>\n Math.max(min, Math.min(number, max));\n\nexport function numberInRangeInclusive(\n value: number,\n min: number,\n max: number\n) {\n return value >= min && value <= max;\n}\n\nexport function sameObject(a: object, b: object) {\n return JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n *\n * Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the\n * parent doesn't have to be positioned relative or absolute.\n *\n * Work around for the following issues in Chromium based browsers:\n *\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1330819\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1334556\n *\n */\nexport function getOffset(element: HTMLElement, parent: HTMLElement) {\n const { top, left, bottom, right } = element.getBoundingClientRect();\n const {\n top: pTop,\n left: pLeft,\n bottom: pBottom,\n right: pRight,\n } = parent.getBoundingClientRect();\n\n return {\n top: Math.round(top - pTop),\n left: Math.round(left - pLeft),\n right: Math.round(right - pRight),\n bottom: Math.round(bottom - pBottom),\n };\n}\n\nexport function createCounter() {\n let i = 0;\n return () => {\n i++;\n return i;\n };\n}\n\n/**\n * Returns whether an element has a Left-to-Right directionality.\n */\nexport function isLTR(element: HTMLElement) {\n return element.matches(':dir(ltr)');\n}\n\n/**\n * Builds a string from format specifiers and replacement parameters.\n * Will coerce non-string parameters to their string representations.\n *\n * @example\n * ```typescript\n * formatString('{0} says \"{1}\".', 'John', 'Hello'); // 'John says \"Hello\".'\n * formatString('{1} is greater than {0}', 0, 1); // '1 is greater than 0'\n * ```\n */\nexport function formatString(template: string, ...params: unknown[]): string {\n const length = params.length;\n\n return template.replace(/{(\\d+)}/g, (match: string, index: number) =>\n index >= length ? match : `${params[index]}`\n );\n}\n\n/**\n * Parse the passed `value` as a number or return the `fallback` if it can't be done.\n *\n * @example\n * ```typescript\n * asNumber('5'); // 5\n * asNumber('3.14'); // 3.14\n * asNumber('five'); // 0\n * asNUmber('five', 5); // 5\n * ```\n */\nexport function asNumber(value: unknown, fallback = 0) {\n const parsed = Number.parseFloat(value as string);\n return Number.isNaN(parsed) ? fallback : parsed;\n}\n\n/**\n * Returns the value wrapped between the min and max bounds.\n *\n * If the value is greater than max, returns the min and vice-versa.\n * If the value is between the bounds, it is returned unchanged.\n *\n * @example\n * ```typescript\n * wrap(1, 4, 2); // 2\n * wrap(1, 4, 5); // 1\n * wrap(1, 4, -1); // 4\n * ```\n */\nexport function wrap(min: number, max: number, value: number) {\n if (value < min) {\n return max;\n }\n if (value > max) {\n return min;\n }\n\n return value;\n}\n\nexport function isDefined<T = unknown>(value: T) {\n return value !== undefined;\n}\n\nexport function* iterNodes<T = Node>(\n root: Node,\n whatToShow?: keyof typeof NodeFilter,\n filter?: (node: T) => boolean\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n const iter = globalThis.document.createTreeWalker(\n root,\n NodeFilter[whatToShow ?? 'SHOW_ALL']\n );\n\n let node = iter.nextNode() as T;\n\n while (node) {\n if (filter) {\n if (filter(node)) {\n yield node;\n }\n } else {\n yield node;\n }\n\n node = iter.nextNode() as T;\n }\n}\n\nexport function getElementByIdFromRoot(root: HTMLElement, id: string) {\n return (root.getRootNode() as Document | ShadowRoot).getElementById(id);\n}\n\nexport function isElement(node: unknown): node is Element {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function getElementsFromEventPath<T extends Element>(event: Event) {\n return event.composedPath().filter((item) => isElement(item)) as T[];\n}\n\nexport function findElementFromEventPath<T extends Element>(\n predicate: string | ((element: Element) => boolean),\n event: Event\n) {\n const func = isString(predicate)\n ? (e: Element) => e.matches(predicate)\n : (e: Element) => predicate(e);\n\n return getElementsFromEventPath(event).find(func) as T | undefined;\n}\n\nexport function groupBy<T>(array: T[], key: keyof T | ((item: T) => any)) {\n const result: Record<string, T[]> = {};\n const _get = isFunction(key) ? key : (item: T) => item[key];\n\n for (const item of array) {\n const category = _get(item);\n const group = result[category];\n\n if (Array.isArray(group)) {\n group.push(item);\n } else {\n result[category] = [item];\n }\n }\n\n return result;\n}\n\nexport function first<T>(arr: T[]) {\n return arr.at(0) as T;\n}\n\nexport function last<T>(arr: T[]) {\n return arr.at(-1) as T;\n}\n\nexport function modulo(n: number, d: number) {\n return ((n % d) + d) % d;\n}\n\n/**\n * Creates an array of `n` elements from a given iterator.\n *\n */\nexport function take<T>(iterable: IterableIterator<T>, n: number) {\n const result: T[] = [];\n let i = 0;\n let current = iterable.next();\n\n while (i < n && !current.done) {\n result.push(current.value);\n current = iterable.next();\n i++;\n }\n\n return result;\n}\n\n/**\n * Splits an array into chunks of length `size` and returns a generator\n * yielding each chunk.\n * The last chunk may contain less than `size` elements.\n *\n * @example\n * ```typescript\n * const arr = [0,1,2,3,4,5,6,7,8,9];\n *\n * Array.from(chunk(arr, 2)) // [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]\n * Array.from(chunk(arr, 3)) // [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]\n * Array.from(chunk([], 3)) // []\n * Array.from(chunk(arr, -3)) // Error\n * ```\n */\nexport function* chunk<T>(arr: T[], size: number) {\n if (size < 1) {\n throw new Error('size must be an integer >= 1');\n }\n for (let i = 0; i < arr.length; i += size) {\n yield arr.slice(i, i + size);\n }\n}\n\nexport function splitToWords(text: string) {\n const input = text.replaceAll(/[^a-zA-Z0-9\\s-_]/g, '');\n if (/[\\s-_]+/.test(input)) return input.split(/[\\s-_]+/);\n return input.split(/(?=[A-Z])+/);\n}\n\nexport function toKebabCase(text: string): string {\n const input = text.trim();\n return splitToWords(input).join('-').toLocaleLowerCase();\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\n/**\n * Returns whether a given collection has at least one member.\n */\nexport function isEmpty<T, U extends string>(\n x: ArrayLike<T> | Set<T> | Map<U, T>\n): boolean {\n return 'length' in x ? x.length < 1 : x.size < 1;\n}\n"]}
@@ -9,10 +9,6 @@ export declare const requiredValidator: Validator<{
9
9
  required: boolean;
10
10
  value?: unknown;
11
11
  }>;
12
- export declare const requiredNumberValidator: Validator<{
13
- required: boolean;
14
- value?: number | string;
15
- }>;
16
12
  export declare const requiredBooleanValidator: Validator<{
17
13
  required: boolean;
18
14
  checked: boolean;
@@ -7,11 +7,6 @@ export const requiredValidator = {
7
7
  message: validatorMessages.required,
8
8
  isValid: ({ required, value }) => (required ? !!value : true),
9
9
  };
10
- export const requiredNumberValidator = {
11
- key: 'valueMissing',
12
- message: validatorMessages.required,
13
- isValid: ({ required, value }) => (required ? isDefined(value) : true),
14
- };
15
10
  export const requiredBooleanValidator = {
16
11
  key: 'valueMissing',
17
12
  message: validatorMessages.required,
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/common/validators.ts"],"names":[],"mappings":"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","sourcesContent":["import { DateTimeUtil } from '../date-time-input/date-util.js';\nimport validatorMessages from './localization/validation-en.js';\nimport { asNumber, formatString, isDefined } from './util.js';\n\ntype ValidatorHandler<T> = (host: T) => boolean;\ntype ValidatorMessageFormat<T> = (host: T) => string;\n\nexport interface Validator<T = any> {\n key: keyof ValidityStateFlags;\n message: string | ValidatorMessageFormat<T>;\n isValid: ValidatorHandler<T>;\n}\n\nconst emailRegex =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nexport const requiredValidator: Validator<{\n required: boolean;\n value?: unknown;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, value }) => (required ? !!value : true),\n};\n\nexport const requiredNumberValidator: Validator<{\n required: boolean;\n value?: number | string;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, value }) => (required ? isDefined(value) : true),\n};\n\nexport const requiredBooleanValidator: Validator<{\n required: boolean;\n checked: boolean;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, checked }) => (required ? checked : true),\n};\n\nexport const minLengthValidator: Validator<{\n minLength: number;\n value: string;\n}> = {\n key: 'tooShort',\n message: ({ minLength }) =>\n formatString(validatorMessages.minLength, minLength),\n isValid: ({ minLength, value }) =>\n minLength ? value.length >= minLength : true,\n};\n\nexport const maxLengthValidator: Validator<{\n maxLength: number;\n value: string;\n}> = {\n key: 'tooLong',\n message: ({ maxLength }) =>\n formatString(validatorMessages.maxLength, maxLength),\n isValid: ({ maxLength, value }) =>\n maxLength ? value.length <= maxLength : true,\n};\n\nexport const patternValidator: Validator<{ pattern: string; value: string }> = {\n key: 'patternMismatch',\n message: validatorMessages.pattern,\n isValid: ({ pattern, value }) =>\n pattern ? new RegExp(pattern, 'u').test(value) : true,\n};\n\nexport const minValidator: Validator<{\n min: number | string;\n value: number | string;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ min, value }) =>\n isDefined(min)\n ? isDefined(value) && asNumber(value) >= asNumber(min)\n : true,\n};\n\nexport const maxValidator: Validator<{\n max: number | string;\n value: number | string;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ max, value }) =>\n isDefined(max)\n ? isDefined(value) && asNumber(value) <= asNumber(max)\n : true,\n};\n\nexport const stepValidator: Validator<{\n min: number | string;\n step: number | string;\n value: number | string;\n}> = {\n key: 'stepMismatch',\n message: 'Value does not conform to step constraint',\n isValid: ({ min, step, value }) =>\n isDefined(step)\n ? (asNumber(value) - asNumber(min)) % asNumber(step, 1) === 0\n : true,\n};\n\nexport const emailValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.email,\n isValid: ({ value }) => emailRegex.test(value),\n};\n\nexport const urlValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.url,\n isValid: ({ value }) => URL.canParse(value),\n};\n\nexport const minDateValidator: Validator<{\n value?: Date | null;\n min?: Date | null;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ value, min }) =>\n min\n ? !DateTimeUtil.lessThanMinValue(value ?? new Date(), min, false, true)\n : true,\n};\n\nexport const maxDateValidator: Validator<{\n value?: Date | null;\n max?: Date | null;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ value, max }) =>\n max\n ? !DateTimeUtil.greaterThanMaxValue(value ?? new Date(), max, false, true)\n : true,\n};\n"]}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/common/validators.ts"],"names":[],"mappings":"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","sourcesContent":["import { DateTimeUtil } from '../date-time-input/date-util.js';\nimport validatorMessages from './localization/validation-en.js';\nimport { asNumber, formatString, isDefined } from './util.js';\n\ntype ValidatorHandler<T> = (host: T) => boolean;\ntype ValidatorMessageFormat<T> = (host: T) => string;\n\nexport interface Validator<T = any> {\n key: keyof ValidityStateFlags;\n message: string | ValidatorMessageFormat<T>;\n isValid: ValidatorHandler<T>;\n}\n\nconst emailRegex =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nexport const requiredValidator: Validator<{\n required: boolean;\n value?: unknown;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, value }) => (required ? !!value : true),\n};\n\nexport const requiredBooleanValidator: Validator<{\n required: boolean;\n checked: boolean;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, checked }) => (required ? checked : true),\n};\n\nexport const minLengthValidator: Validator<{\n minLength: number;\n value: string;\n}> = {\n key: 'tooShort',\n message: ({ minLength }) =>\n formatString(validatorMessages.minLength, minLength),\n isValid: ({ minLength, value }) =>\n minLength ? value.length >= minLength : true,\n};\n\nexport const maxLengthValidator: Validator<{\n maxLength: number;\n value: string;\n}> = {\n key: 'tooLong',\n message: ({ maxLength }) =>\n formatString(validatorMessages.maxLength, maxLength),\n isValid: ({ maxLength, value }) =>\n maxLength ? value.length <= maxLength : true,\n};\n\nexport const patternValidator: Validator<{ pattern: string; value: string }> = {\n key: 'patternMismatch',\n message: validatorMessages.pattern,\n isValid: ({ pattern, value }) =>\n pattern ? new RegExp(pattern, 'u').test(value) : true,\n};\n\nexport const minValidator: Validator<{\n min: number | string;\n value: number | string;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ min, value }) =>\n isDefined(min)\n ? isDefined(value) && asNumber(value) >= asNumber(min)\n : true,\n};\n\nexport const maxValidator: Validator<{\n max: number | string;\n value: number | string;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ max, value }) =>\n isDefined(max)\n ? isDefined(value) && asNumber(value) <= asNumber(max)\n : true,\n};\n\nexport const stepValidator: Validator<{\n min: number | string;\n step: number | string;\n value: number | string;\n}> = {\n key: 'stepMismatch',\n message: 'Value does not conform to step constraint',\n isValid: ({ min, step, value }) =>\n isDefined(step)\n ? (asNumber(value) - asNumber(min)) % asNumber(step, 1) === 0\n : true,\n};\n\nexport const emailValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.email,\n isValid: ({ value }) => emailRegex.test(value),\n};\n\nexport const urlValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.url,\n isValid: ({ value }) => URL.canParse(value),\n};\n\nexport const minDateValidator: Validator<{\n value?: Date | null;\n min?: Date | null;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ value, min }) =>\n min\n ? !DateTimeUtil.lessThanMinValue(value ?? new Date(), min, false, true)\n : true,\n};\n\nexport const maxDateValidator: Validator<{\n value?: Date | null;\n max?: Date | null;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ value, max }) =>\n max\n ? !DateTimeUtil.greaterThanMaxValue(value ?? new Date(), max, false, true)\n : true,\n};\n"]}
@@ -1,10 +1,11 @@
1
+ import { type TemplateResult } from 'lit';
1
2
  import { type DateRangeDescriptor, type WeekDays } from '../calendar/types.js';
2
3
  import { type IgcCalendarResourceStrings } from '../common/i18n/calendar.resources.js';
3
4
  import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';
4
5
  import type { AbstractConstructor } from '../common/mixins/constructor.js';
5
6
  import type { DatePart } from '../date-time-input/date-util.js';
6
7
  import type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';
7
- export interface IgcDatepickerEventMap {
8
+ export interface IgcDatePickerComponentEventMap {
8
9
  igcOpening: CustomEvent<void>;
9
10
  igcOpened: CustomEvent<void>;
10
11
  igcClosing: CustomEvent<void>;
@@ -12,7 +13,7 @@ export interface IgcDatepickerEventMap {
12
13
  igcChange: CustomEvent<Date>;
13
14
  igcInput: CustomEvent<Date>;
14
15
  }
15
- declare const IgcDatePickerComponent_base: import("../common/mixins/constructor.js").Constructor<import("../common/mixins/forms/types.js").FormRequiredInterface & import("../common/mixins/forms/types.js").FormAssociatedElementInterface> & import("../common/mixins/constructor.js").Constructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcDatepickerEventMap>> & AbstractConstructor<IgcBaseComboBoxLikeComponent>;
16
+ declare const IgcDatePickerComponent_base: import("../common/mixins/constructor.js").Constructor<import("../common/mixins/forms/types.js").FormRequiredInterface & import("../common/mixins/forms/types.js").FormAssociatedElementInterface> & import("../common/mixins/constructor.js").Constructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcDatePickerComponentEventMap>> & AbstractConstructor<IgcBaseComboBoxLikeComponent>;
16
17
  /**
17
18
  * igc-date-picker is a feature rich component used for entering a date through manual text input or
18
19
  * choosing date values from a calendar dialog that pops up.
@@ -22,6 +23,12 @@ declare const IgcDatePickerComponent_base: import("../common/mixins/constructor.
22
23
  * @slot prefix - Renders content before the input.
23
24
  * @slot suffix - Renders content after the input.
24
25
  * @slot helper-text - Renders content below the input.
26
+ * @slot bad-input - Renders content when the value is in the disabledDates ranges.
27
+ * @slot value-missing - Renders content when the required validation fails.
28
+ * @slot range-overflow - Renders content when the max validation fails.
29
+ * @slot range-underflow - Renders content when the min validation fails.
30
+ * @slot custom-error - Renders content when setCustomValidity(message) is set.
31
+ * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).
25
32
  * @slot title - Renders content in the calendar title.
26
33
  * @slot header-date - Renders content instead of the current date/range in the calendar header.
27
34
  * @slot clear-icon - Renders a clear icon template.
@@ -111,7 +118,6 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
111
118
  private suffixes;
112
119
  private actions;
113
120
  private headerDateSlotItems;
114
- private helperText;
115
121
  protected get _isMaterialTheme(): boolean;
116
122
  /**
117
123
  * Sets the state of the datepicker dropdown.
@@ -233,7 +239,7 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
233
239
  /** Sets the start day of the week for the calendar. */
234
240
  weekStart: WeekDays;
235
241
  constructor();
236
- protected createRenderRoot(): DocumentFragment | HTMLElement;
242
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
237
243
  /** Clears the input part of the component of any user input */
238
244
  clear(): void;
239
245
  /** Increments the passed in date part */
@@ -264,12 +270,12 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
264
270
  private renderCalendarIcon;
265
271
  private renderCalendarSlots;
266
272
  private renderCalendar;
267
- protected renderActions(): import("lit-html").TemplateResult<1>;
268
- protected renderPicker(id: string): import("lit-html").TemplateResult<1>;
273
+ protected renderActions(): TemplateResult<1>;
274
+ protected renderPicker(id: string): TemplateResult<1>;
269
275
  private renderLabel;
270
276
  private renderHelperText;
271
- protected renderInput(id: string): import("lit-html").TemplateResult<1>;
272
- protected render(): import("lit-html").TemplateResult<1>;
277
+ protected renderInput(id: string): TemplateResult<1>;
278
+ protected render(): TemplateResult<1>;
273
279
  }
274
280
  declare global {
275
281
  interface HTMLElementTagNameMap {
@@ -27,6 +27,7 @@ import IgcDialogComponent from '../dialog/dialog.js';
27
27
  import IgcFocusTrapComponent from '../focus-trap/focus-trap.js';
28
28
  import IgcIconComponent from '../icon/icon.js';
29
29
  import IgcPopoverComponent from '../popover/popover.js';
30
+ import IgcValidationContainerComponent from '../validation-container/validation-container.js';
30
31
  import { styles } from './themes/date-picker.base.css.js';
31
32
  import { styles as shared } from './themes/shared/date-picker.common.css.js';
32
33
  import { all } from './themes/themes.js';
@@ -37,7 +38,7 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
37
38
  return datePickerValidators;
38
39
  }
39
40
  static register() {
40
- registerComponent(IgcDatePickerComponent_1, IgcCalendarComponent, IgcDateTimeInputComponent, IgcFocusTrapComponent, IgcIconComponent, IgcPopoverComponent, IgcDialogComponent);
41
+ registerComponent(IgcDatePickerComponent_1, IgcCalendarComponent, IgcDateTimeInputComponent, IgcFocusTrapComponent, IgcIconComponent, IgcPopoverComponent, IgcDialogComponent, IgcValidationContainerComponent);
41
42
  }
42
43
  get isDropDown() {
43
44
  return this.mode === 'dropdown';
@@ -356,9 +357,7 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
356
357
  : nothing;
357
358
  }
358
359
  renderHelperText() {
359
- return html `<div part="helper-text" ?hidden=${!this.helperText.length}>
360
- <slot name="helper-text"></slot>
361
- </div>`;
360
+ return IgcValidationContainerComponent.create(this);
362
361
  }
363
362
  renderInput(id) {
364
363
  const format = formats.has(this._displayFormat)
@@ -434,9 +433,6 @@ __decorate([
434
433
  __decorate([
435
434
  queryAssignedElements({ slot: 'header-date' })
436
435
  ], IgcDatePickerComponent.prototype, "headerDateSlotItems", void 0);
437
- __decorate([
438
- queryAssignedElements({ slot: 'helper-text' })
439
- ], IgcDatePickerComponent.prototype, "helperText", void 0);
440
436
  __decorate([
441
437
  property({ type: Boolean, reflect: true })
442
438
  ], IgcDatePickerComponent.prototype, "open", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../src/components/date-picker/date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { getThemeController, themes } from '../../theming/theming-decorator.js';\nimport IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';\nimport { dateFromISOString } from '../calendar/helpers.js';\nimport {\n type DateRangeDescriptor,\n DateRangeType,\n type WeekDays,\n} from '../calendar/types.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n escapeKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n type IgcCalendarResourceStrings,\n} from '../common/i18n/calendar.resources.js';\nimport { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport { createCounter, findElementFromEventPath } from '../common/util.js';\nimport IgcDateTimeInputComponent from '../date-time-input/date-time-input.js';\nimport type { DatePart } from '../date-time-input/date-util.js';\nimport IgcDialogComponent from '../dialog/dialog.js';\nimport IgcFocusTrapComponent from '../focus-trap/focus-trap.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcPopoverComponent from '../popover/popover.js';\nimport type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';\nimport { styles } from './themes/date-picker.base.css.js';\nimport { styles as shared } from './themes/shared/date-picker.common.css.js';\nimport { all } from './themes/themes.js';\nimport { datePickerValidators } from './validators.js';\n\nexport interface IgcDatepickerEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<Date>;\n igcInput: CustomEvent<Date>;\n}\n\nconst formats = new Set(['short', 'medium', 'long', 'full']);\n\n/**\n * igc-date-picker is a feature rich component used for entering a date through manual text input or\n * choosing date values from a calendar dialog that pops up.\n *\n * @element igc-date-picker\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 * @slot title - Renders content in the calendar title.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n * @slot clear-icon - Renders a clear icon template.\n * @slot calendar-icon - Renders the icon/content for the calendar picker.\n * @slot calendar-icon-open - Renders the icon/content for the picker in open state.\n * @slot actions - Renders content in the action part of the picker in open state.\n *\n * @fires igcOpening - Emitted just before the calendar dropdown is shown.\n * @fires igcOpened - Emitted after the calendar dropdown is shown.\n * @fires igcClosing - Emitted just before the calendar dropdown is hidden.\n * @fires igcClosed - Emitted after the calendar dropdown is hidden.\n * @fires igcChange - Emitted when the user modifies and commits the elements's value.\n * @fires igcInput - Emitted when when the user types in the element.\n *\n * @csspart label - The label wrapper that renders content above the target input.\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart calendar-icon - The calendar icon wrapper for closed state.\n * @csspart calendar-icon-open - The calendar icon wrapper for opened state.\n * @csspart clear-icon - The clear icon wrapper.\n * @csspart actions - The actions wrapper.\n * @csspart helper-text - The helper-text wrapper that renders content below the target input.\n * @csspart header - The calendar header element.\n * @csspart header-title - The calendar header title element.\n * @csspart header-date - The calendar header date element.\n * @csspart calendar-content - The calendar content element which contains the views and navigation elements.\n * @csspart navigation - The calendar navigation container element.\n * @csspart months-navigation - The calendar months navigation button element.\n * @csspart years-navigation - The calendar years navigation button element.\n * @csspart years-range - The calendar years range element.\n * @csspart navigation-buttons - The calendar navigation buttons container.\n * @csspart navigation-button - The calendar previous/next navigation button.\n * @csspart days-view-container - The calendar days view container element.\n * @csspart days-view - The calendar days view element.\n * @csspart months-view - The calendar months view element.\n * @csspart years-view - The calendar years view element.\n * @csspart days-row - The calendar days row element.\n * @csspart calendar-label - The calendar week header label element.\n * @csspart week-number - The calendar week number element.\n * @csspart week-number-inner - The calendar week number inner element.\n * @csspart date - The calendar date element.\n * @csspart date-inner - The calendar date inner element.\n * @csspart first - The calendar first selected date element in range selection.\n * @csspart last - The calendar last selected date element in range selection.\n * @csspart inactive - The calendar inactive date element.\n * @csspart hidden - The calendar hidden date element.\n * @csspart weekend - The calendar weekend date element.\n * @csspart range - The calendar range selected element.\n * @csspart special - The calendar special date element.\n * @csspart disabled - The calendar disabled date element.\n * @csspart single - The calendar single selected date element.\n * @csspart preview - The calendar range selection preview date element.\n * @csspart month - The calendar month element.\n * @csspart month-inner - The calendar month inner element.\n * @csspart year - The calendar year element.\n * @csspart year-inner - The calendar year inner element.\n * @csspart selected - The calendar selected state for element(s). Applies to date, month and year elements.\n * @csspart current - The calendar current state for element(s). Applies to date, month and year elements.\n */\n@themes(all, { exposeController: true })\n@blazorAdditionalDependencies(\n 'IgcCalendarComponent, IgcDateTimeInputComponent, IgcDialogComponent, IgcIconComponent'\n)\nexport default class IgcDatePickerComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcDatepickerEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n >(IgcBaseComboBoxLikeComponent)\n) {\n public static readonly tagName = 'igc-date-picker';\n public static styles = [styles, shared];\n\n protected static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n private static readonly increment = createCounter();\n protected inputId = `date-picker-${IgcDatePickerComponent.increment()}`;\n\n protected override get __validators() {\n return datePickerValidators;\n }\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDatePickerComponent,\n IgcCalendarComponent,\n IgcDateTimeInputComponent,\n IgcFocusTrapComponent,\n IgcIconComponent,\n IgcPopoverComponent,\n IgcDialogComponent\n );\n }\n\n private _value?: Date | null;\n private _activeDate?: Date | null;\n private _min?: Date;\n private _max?: Date;\n private _disabledDates?: DateRangeDescriptor[];\n private _dateConstraints?: DateRangeDescriptor[];\n private _displayFormat?: string;\n private _inputFormat?: string;\n\n private get isDropDown() {\n return this.mode === 'dropdown';\n }\n\n @query(IgcDateTimeInputComponent.tagName)\n private _input!: IgcDateTimeInputComponent;\n\n @query(IgcCalendarComponent.tagName)\n private _calendar!: IgcCalendarComponent;\n\n @queryAssignedElements({ slot: 'prefix' })\n private prefixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n private suffixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'actions' })\n private actions!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'header-date' })\n private headerDateSlotItems!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'helper-text' })\n private helperText!: Array<HTMLElement>;\n\n protected get _isMaterialTheme(): boolean {\n return getThemeController(this)?.theme === 'material';\n }\n\n /**\n * Sets the state of the datepicker dropdown.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public override open = false;\n\n /**\n * The label of the datepicker.\n * @attr label\n */\n @property()\n public label!: string;\n\n /**\n * Determines whether the calendar is opened in a dropdown or a modal dialog\n * @attr mode\n */\n @property()\n public mode: 'dropdown' | 'dialog' = 'dropdown';\n\n /**\n * Whether to allow typing in the input.\n * @attr non-editable\n */\n @property({ type: Boolean, reflect: true, attribute: 'non-editable' })\n public nonEditable = false;\n\n /**\n * Makes the control a readonly field.\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the picker\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set value(value: Date | null) {\n this._value = value;\n this._setFormValue(value ? value.toISOString() : null);\n this._validate();\n }\n\n public get value(): Date | null {\n return this._value ?? null;\n }\n\n /**\n * Gets/Sets the date which is shown in the calendar picker and is highlighted.\n * By default it is the current date.\n */\n @property({ attribute: 'active-date', converter: dateFromISOString })\n public set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n public get activeDate(): Date {\n return this._activeDate ?? this._calendar?.activeDate;\n }\n\n /**\n * The minimum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set min(value: Date) {\n this._min = value;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get min(): Date {\n return this._min as Date;\n }\n\n /**\n * The maximum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set max(value: Date) {\n this._max = value;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get max(): Date {\n return this._max as Date;\n }\n\n /** The orientation of the calendar header.\n * @attr header-orientation\n */\n @property({ attribute: 'header-orientation', reflect: true })\n public headerOrientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** The orientation of the multiple months displayed in the calendar's days view.\n * @attr\n */\n @property()\n public orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** Determines whether the calendar hides its header.\n * @attr hide-header\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-header' })\n public hideHeader = false;\n\n /**\n * Controls the visibility of the dates that do not belong to the current month.\n * @attr hide-outside-days\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-outside-days' })\n public hideOutsideDays = false;\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public set disabledDates(dates: DateRangeDescriptor[]) {\n this._disabledDates = dates;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get disabledDates() {\n return this._disabledDates as DateRangeDescriptor[];\n }\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The placeholder attribute of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * The number of months displayed in the calendar.\n * @attr visible-months\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * Whether to show the number of the week in the calendar.\n * @attr show-week-numbers\n */\n @property({ type: Boolean, reflect: true, attribute: 'show-week-numbers' })\n public showWeekNumbers = false;\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return this._displayFormat ?? this.inputFormat;\n }\n\n /**\n * The date format to apply on the input.\n * Defaults to the current locale Intl.DateTimeFormat\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public set inputFormat(value: string) {\n this._inputFormat = value;\n }\n\n public get inputFormat(): string {\n return this._inputFormat ?? this._input?.inputFormat;\n }\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n /** The prompt symbol to use for unfilled parts of the mask.\n * @attr\n */\n @property()\n public prompt = '_';\n\n /** The resource strings of the calendar. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('open')\n protected openChange() {\n this._rootClickController.update();\n }\n\n /** Sets the start day of the week for the calendar. */\n @property({ attribute: 'week-start' })\n public weekStart: WeekDays = 'sunday';\n\n constructor() {\n super();\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n\n this._rootClickController.update({ hideCallback: this.handleClosing });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true },\n })\n .set([altKey, arrowDown], this.handleAnchorClick)\n .set([altKey, arrowUp], this.onEscapeKey)\n .set(escapeKey, this.onEscapeKey);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n /** Clears the input part of the component of any user input */\n public clear() {\n this.value = null;\n this._input?.clear();\n }\n\n /** Increments the passed in date part */\n public stepUp(datePart?: DatePart, delta?: number): void {\n this._input.stepUp(datePart, delta);\n }\n\n /** Decrements the passed in date part */\n public stepDown(datePart?: DatePart, delta?: number): void {\n this._input.stepDown(datePart, delta);\n }\n\n /** Selects the text in the input of the component */\n public select(): void {\n this._input.select();\n }\n\n /** Sets the text selection range in the input of the component */\n public setSelectionRange(\n start: number,\n end: number,\n direction?: SelectionRangeDirection\n ): void {\n this._input.setSelectionRange(start, end, direction);\n }\n\n /* Replaces the selected text in the input and re-applies the mask */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n mode?: RangeTextSelectMode\n ): void {\n this._input.setRangeText(replacement, start, end, mode);\n this.value = this._input.value;\n }\n\n protected async onEscapeKey() {\n if (await this._hide(true)) {\n this._input.focus();\n }\n }\n\n protected handleFocusIn() {\n this._dirty = true;\n }\n\n protected handleFocusOut({ relatedTarget }: FocusEvent) {\n if (!this.contains(relatedTarget as Node)) {\n this.checkValidity();\n }\n }\n\n protected handlerCalendarIconSlotPointerDown(event: PointerEvent) {\n // This is where the delegateFocus of the underlying input is a chore.\n // If we have a required validator we don't want the input to enter an invalid\n // state right off the bat when opening the picker which will happen since focus is transferred to the calendar element.\n // So we call preventDefault on the event in order to not focus the input and trigger its validation logic on blur.\n event.preventDefault();\n }\n\n protected handleInputClick(event: Event) {\n if (findElementFromEventPath('input', event)) {\n // Open only if the click originates from the underlying input\n this.handleAnchorClick();\n }\n }\n\n protected override async handleAnchorClick() {\n this._calendar.activeDate = this.value ?? this._calendar.activeDate;\n\n super.handleAnchorClick();\n await this.updateComplete;\n this._calendar[focusActiveDate]();\n }\n\n private async _shouldCloseCalendarDropdown() {\n if (!this.keepOpenOnSelect && (await this._hide(true))) {\n this._input.focus();\n this._input.select();\n }\n }\n\n protected handleInputChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected async handleCalendarChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.readOnly) {\n // Wait till the calendar finishes updating and then restore the current value from the date-picker.\n await this._calendar.updateComplete;\n this._calendar.value = this._value ?? undefined;\n return;\n }\n\n this.value = (event.target as IgcCalendarComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n\n this._shouldCloseCalendarDropdown();\n }\n\n protected handleInputEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.nonEditable) {\n event.preventDefault();\n return;\n }\n\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcInput', { detail: this.value });\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n protected handleDialogClosing(event: Event) {\n event.stopPropagation();\n this._hide(true);\n }\n\n protected handleDialogClosed(event: Event) {\n event.stopPropagation();\n }\n\n protected override _setDefaultValue(\n _: string | null,\n current: string | null\n ) {\n this._defaultValue = dateFromISOString(current);\n }\n\n private setDateConstraints() {\n const dates: DateRangeDescriptor[] = [];\n if (this._min) {\n dates.push({ type: DateRangeType.Before, dateRange: [this._min] });\n }\n if (this._max) {\n dates.push({ type: DateRangeType.After, dateRange: [this._max] });\n }\n if (this._disabledDates?.length) {\n dates.push(...this.disabledDates);\n }\n\n this._dateConstraints = dates.length ? dates : undefined;\n }\n\n private renderClearIcon() {\n return !this.value\n ? nothing\n : html`\n <span slot=\"suffix\" part=\"clear-icon\" @click=${this.clear}>\n <slot name=\"clear-icon\">\n <igc-icon\n name=\"input_clear\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n `;\n }\n\n private renderCalendarIcon() {\n const defaultIcon = html`\n <igc-icon name=\"today\" collection=\"default\" aria-hidden=\"true\"></igc-icon>\n `;\n\n const state = this.open ? 'calendar-icon-open' : 'calendar-icon';\n\n return html`\n <span\n slot=\"prefix\"\n part=${state}\n @pointerdown=${this.handlerCalendarIconSlotPointerDown}\n @click=${this.handleAnchorClick}\n >\n <slot name=${state}>${defaultIcon}</slot>\n </span>\n `;\n }\n\n private renderCalendarSlots() {\n if (this.isDropDown) {\n return nothing;\n }\n\n const hasHeaderDate = this.headerDateSlotItems.length ? 'header-date' : '';\n\n return html`\n <slot name=\"title\" slot=\"title\">\n ${this.resourceStrings.selectDate}\n </slot>\n <slot name=\"header-date\" slot=${hasHeaderDate}></slot>\n `;\n }\n\n private renderCalendar(id: string) {\n const hideHeader = this.isDropDown ? true : this.hideHeader;\n\n return html`\n <igc-calendar\n aria-labelledby=${id}\n role=\"dialog\"\n .inert=${!this.open || this.disabled}\n ?show-week-numbers=${this.showWeekNumbers}\n ?hide-outside-days=${this.hideOutsideDays}\n ?hide-header=${hideHeader}\n .activeDate=${this.activeDate ?? this.value ?? new Date()}\n .value=${this.value ?? undefined}\n .headerOrientation=${this.headerOrientation}\n .orientation=${this.orientation}\n .visibleMonths=${this.visibleMonths}\n .locale=${this.locale}\n .disabledDates=${this._dateConstraints!}\n .specialDates=${this.specialDates}\n .weekStart=${this.weekStart}\n @igcChange=${this.handleCalendarChangeEvent}\n exportparts=\"header, header-title, header-date, content: calendar-content, navigation, months-navigation,\n years-navigation, years-range, navigation-buttons, navigation-button, days-view-container,\n days-view, months-view, years-view, days-row, label: calendar-label, week-number, week-number-inner, date,\n date-inner, first, last, inactive, hidden, weekend, range, special, disabled, single, preview,\n month, month-inner, year, year-inner, selected, current\"\n >\n ${this.renderCalendarSlots()}\n </igc-calendar>\n `;\n }\n\n protected renderActions() {\n const slot = this.isDropDown || !this.actions.length ? undefined : 'footer';\n\n // If in dialog mode use the dialog footer slot\n return html`\n <div\n part=\"actions\"\n ?hidden=${!this.actions.length}\n slot=${ifDefined(slot)}\n >\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n protected renderPicker(id: string) {\n return this.isDropDown\n ? html`\n <igc-popover ?open=${this.open} anchor=${id} flip shift>\n <igc-focus-trap ?disabled=${!this.open || this.disabled}>\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-focus-trap>\n </igc-popover>\n `\n : html`\n <igc-dialog\n aria-label=${ifDefined(this.resourceStrings.selectDate)}\n role=\"dialog\"\n ?open=${this.open}\n ?close-on-outside-click=${!this.keepOpenOnOutsideClick}\n hide-default-action\n @igcClosing=${this.handleDialogClosing}\n @igcClosed=${this.handleDialogClosed}\n exportparts=\"base: dialog-base, title, footer, overlay\"\n >\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-dialog>\n `;\n }\n\n private renderLabel(id: string) {\n return this.label\n ? html`<label\n part=\"label\"\n for=${id}\n @click=${this.isDropDown ? nothing : this.handleAnchorClick}\n >${this.label}</label\n >`\n : nothing;\n }\n\n private renderHelperText() {\n return html`<div part=\"helper-text\" ?hidden=${!this.helperText.length}>\n <slot name=\"helper-text\"></slot>\n </div>`;\n }\n\n protected renderInput(id: string) {\n const format = formats.has(this._displayFormat!)\n ? `${this._displayFormat}Date`\n : this._displayFormat;\n\n // Dialog mode is always readonly, rest depends on configuration\n const readOnly = !this.isDropDown || this.readOnly || this.nonEditable;\n\n return html`\n <igc-date-time-input\n id=${id}\n aria-haspopup=\"dialog\"\n label=${ifDefined(this._isMaterialTheme ? this.label : undefined)}\n input-format=${ifDefined(this._inputFormat)}\n display-format=${ifDefined(format)}\n ?disabled=${this.disabled}\n ?readonly=${readOnly}\n ?required=${this.required}\n .value=${this.value ?? null}\n .locale=${this.locale}\n .prompt=${this.prompt}\n .outlined=${this.outlined}\n .placeholder=${this.placeholder}\n .min=${this.min}\n .max=${this.max}\n .invalid=${live(this.invalid)}\n @igcChange=${this.handleInputChangeEvent}\n @igcInput=${this.handleInputEvent}\n @click=${this.isDropDown ? nothing : this.handleInputClick}\n exportparts=\"input, label, prefix, suffix\"\n >\n ${this.renderCalendarIcon()}\n <slot\n name=\"prefix\"\n slot=${ifDefined(!this.prefixes.length ? undefined : 'prefix')}\n ></slot>\n ${this.renderClearIcon()}\n <slot\n name=\"suffix\"\n slot=${ifDefined(!this.suffixes.length ? undefined : 'suffix')}\n ></slot>\n </igc-date-time-input>\n `;\n }\n\n protected override render() {\n const id = this.id || this.inputId;\n\n return html`\n ${!this._isMaterialTheme ? this.renderLabel(id) : nothing}\n ${this.renderInput(id)}${this.renderPicker(id)}${this.renderHelperText()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-picker': IgcDatePickerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../src/components/date-picker/date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html, nothing } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { getThemeController, themes } from '../../theming/theming-decorator.js';\nimport IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';\nimport { dateFromISOString } from '../calendar/helpers.js';\nimport {\n type DateRangeDescriptor,\n DateRangeType,\n type WeekDays,\n} from '../calendar/types.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n escapeKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n type IgcCalendarResourceStrings,\n} from '../common/i18n/calendar.resources.js';\nimport { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport { createCounter, findElementFromEventPath } from '../common/util.js';\nimport IgcDateTimeInputComponent from '../date-time-input/date-time-input.js';\nimport type { DatePart } from '../date-time-input/date-util.js';\nimport IgcDialogComponent from '../dialog/dialog.js';\nimport IgcFocusTrapComponent from '../focus-trap/focus-trap.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcPopoverComponent from '../popover/popover.js';\nimport type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/date-picker.base.css.js';\nimport { styles as shared } from './themes/shared/date-picker.common.css.js';\nimport { all } from './themes/themes.js';\nimport { datePickerValidators } from './validators.js';\n\nexport interface IgcDatePickerComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<Date>;\n igcInput: CustomEvent<Date>;\n}\n\nconst formats = new Set(['short', 'medium', 'long', 'full']);\n\n/**\n * igc-date-picker is a feature rich component used for entering a date through manual text input or\n * choosing date values from a calendar dialog that pops up.\n *\n * @element igc-date-picker\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 * @slot bad-input - Renders content when the value is in the disabledDates ranges.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n * @slot title - Renders content in the calendar title.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n * @slot clear-icon - Renders a clear icon template.\n * @slot calendar-icon - Renders the icon/content for the calendar picker.\n * @slot calendar-icon-open - Renders the icon/content for the picker in open state.\n * @slot actions - Renders content in the action part of the picker in open state.\n *\n * @fires igcOpening - Emitted just before the calendar dropdown is shown.\n * @fires igcOpened - Emitted after the calendar dropdown is shown.\n * @fires igcClosing - Emitted just before the calendar dropdown is hidden.\n * @fires igcClosed - Emitted after the calendar dropdown is hidden.\n * @fires igcChange - Emitted when the user modifies and commits the elements's value.\n * @fires igcInput - Emitted when when the user types in the element.\n *\n * @csspart label - The label wrapper that renders content above the target input.\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart calendar-icon - The calendar icon wrapper for closed state.\n * @csspart calendar-icon-open - The calendar icon wrapper for opened state.\n * @csspart clear-icon - The clear icon wrapper.\n * @csspart actions - The actions wrapper.\n * @csspart helper-text - The helper-text wrapper that renders content below the target input.\n * @csspart header - The calendar header element.\n * @csspart header-title - The calendar header title element.\n * @csspart header-date - The calendar header date element.\n * @csspart calendar-content - The calendar content element which contains the views and navigation elements.\n * @csspart navigation - The calendar navigation container element.\n * @csspart months-navigation - The calendar months navigation button element.\n * @csspart years-navigation - The calendar years navigation button element.\n * @csspart years-range - The calendar years range element.\n * @csspart navigation-buttons - The calendar navigation buttons container.\n * @csspart navigation-button - The calendar previous/next navigation button.\n * @csspart days-view-container - The calendar days view container element.\n * @csspart days-view - The calendar days view element.\n * @csspart months-view - The calendar months view element.\n * @csspart years-view - The calendar years view element.\n * @csspart days-row - The calendar days row element.\n * @csspart calendar-label - The calendar week header label element.\n * @csspart week-number - The calendar week number element.\n * @csspart week-number-inner - The calendar week number inner element.\n * @csspart date - The calendar date element.\n * @csspart date-inner - The calendar date inner element.\n * @csspart first - The calendar first selected date element in range selection.\n * @csspart last - The calendar last selected date element in range selection.\n * @csspart inactive - The calendar inactive date element.\n * @csspart hidden - The calendar hidden date element.\n * @csspart weekend - The calendar weekend date element.\n * @csspart range - The calendar range selected element.\n * @csspart special - The calendar special date element.\n * @csspart disabled - The calendar disabled date element.\n * @csspart single - The calendar single selected date element.\n * @csspart preview - The calendar range selection preview date element.\n * @csspart month - The calendar month element.\n * @csspart month-inner - The calendar month inner element.\n * @csspart year - The calendar year element.\n * @csspart year-inner - The calendar year inner element.\n * @csspart selected - The calendar selected state for element(s). Applies to date, month and year elements.\n * @csspart current - The calendar current state for element(s). Applies to date, month and year elements.\n */\n@themes(all, { exposeController: true })\n@blazorAdditionalDependencies(\n 'IgcCalendarComponent, IgcDateTimeInputComponent, IgcDialogComponent, IgcIconComponent'\n)\nexport default class IgcDatePickerComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcDatePickerComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n >(IgcBaseComboBoxLikeComponent)\n) {\n public static readonly tagName = 'igc-date-picker';\n public static styles = [styles, shared];\n\n protected static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n private static readonly increment = createCounter();\n protected inputId = `date-picker-${IgcDatePickerComponent.increment()}`;\n\n protected override get __validators() {\n return datePickerValidators;\n }\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDatePickerComponent,\n IgcCalendarComponent,\n IgcDateTimeInputComponent,\n IgcFocusTrapComponent,\n IgcIconComponent,\n IgcPopoverComponent,\n IgcDialogComponent,\n IgcValidationContainerComponent\n );\n }\n\n private _value?: Date | null;\n private _activeDate?: Date | null;\n private _min?: Date;\n private _max?: Date;\n private _disabledDates?: DateRangeDescriptor[];\n private _dateConstraints?: DateRangeDescriptor[];\n private _displayFormat?: string;\n private _inputFormat?: string;\n\n private get isDropDown() {\n return this.mode === 'dropdown';\n }\n\n @query(IgcDateTimeInputComponent.tagName)\n private _input!: IgcDateTimeInputComponent;\n\n @query(IgcCalendarComponent.tagName)\n private _calendar!: IgcCalendarComponent;\n\n @queryAssignedElements({ slot: 'prefix' })\n private prefixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n private suffixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'actions' })\n private actions!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'header-date' })\n private headerDateSlotItems!: Array<HTMLElement>;\n\n protected get _isMaterialTheme(): boolean {\n return getThemeController(this)?.theme === 'material';\n }\n\n /**\n * Sets the state of the datepicker dropdown.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public override open = false;\n\n /**\n * The label of the datepicker.\n * @attr label\n */\n @property()\n public label!: string;\n\n /**\n * Determines whether the calendar is opened in a dropdown or a modal dialog\n * @attr mode\n */\n @property()\n public mode: 'dropdown' | 'dialog' = 'dropdown';\n\n /**\n * Whether to allow typing in the input.\n * @attr non-editable\n */\n @property({ type: Boolean, reflect: true, attribute: 'non-editable' })\n public nonEditable = false;\n\n /**\n * Makes the control a readonly field.\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the picker\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set value(value: Date | null) {\n this._value = value;\n this._setFormValue(value ? value.toISOString() : null);\n this._validate();\n }\n\n public get value(): Date | null {\n return this._value ?? null;\n }\n\n /**\n * Gets/Sets the date which is shown in the calendar picker and is highlighted.\n * By default it is the current date.\n */\n @property({ attribute: 'active-date', converter: dateFromISOString })\n public set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n public get activeDate(): Date {\n return this._activeDate ?? this._calendar?.activeDate;\n }\n\n /**\n * The minimum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set min(value: Date) {\n this._min = value;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get min(): Date {\n return this._min as Date;\n }\n\n /**\n * The maximum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set max(value: Date) {\n this._max = value;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get max(): Date {\n return this._max as Date;\n }\n\n /** The orientation of the calendar header.\n * @attr header-orientation\n */\n @property({ attribute: 'header-orientation', reflect: true })\n public headerOrientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** The orientation of the multiple months displayed in the calendar's days view.\n * @attr\n */\n @property()\n public orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** Determines whether the calendar hides its header.\n * @attr hide-header\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-header' })\n public hideHeader = false;\n\n /**\n * Controls the visibility of the dates that do not belong to the current month.\n * @attr hide-outside-days\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-outside-days' })\n public hideOutsideDays = false;\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public set disabledDates(dates: DateRangeDescriptor[]) {\n this._disabledDates = dates;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get disabledDates() {\n return this._disabledDates as DateRangeDescriptor[];\n }\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The placeholder attribute of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * The number of months displayed in the calendar.\n * @attr visible-months\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * Whether to show the number of the week in the calendar.\n * @attr show-week-numbers\n */\n @property({ type: Boolean, reflect: true, attribute: 'show-week-numbers' })\n public showWeekNumbers = false;\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return this._displayFormat ?? this.inputFormat;\n }\n\n /**\n * The date format to apply on the input.\n * Defaults to the current locale Intl.DateTimeFormat\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public set inputFormat(value: string) {\n this._inputFormat = value;\n }\n\n public get inputFormat(): string {\n return this._inputFormat ?? this._input?.inputFormat;\n }\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n /** The prompt symbol to use for unfilled parts of the mask.\n * @attr\n */\n @property()\n public prompt = '_';\n\n /** The resource strings of the calendar. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('open')\n protected openChange() {\n this._rootClickController.update();\n }\n\n /** Sets the start day of the week for the calendar. */\n @property({ attribute: 'week-start' })\n public weekStart: WeekDays = 'sunday';\n\n constructor() {\n super();\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n\n this._rootClickController.update({ hideCallback: this.handleClosing });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true },\n })\n .set([altKey, arrowDown], this.handleAnchorClick)\n .set([altKey, arrowUp], this.onEscapeKey)\n .set(escapeKey, this.onEscapeKey);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n /** Clears the input part of the component of any user input */\n public clear() {\n this.value = null;\n this._input?.clear();\n }\n\n /** Increments the passed in date part */\n public stepUp(datePart?: DatePart, delta?: number): void {\n this._input.stepUp(datePart, delta);\n }\n\n /** Decrements the passed in date part */\n public stepDown(datePart?: DatePart, delta?: number): void {\n this._input.stepDown(datePart, delta);\n }\n\n /** Selects the text in the input of the component */\n public select(): void {\n this._input.select();\n }\n\n /** Sets the text selection range in the input of the component */\n public setSelectionRange(\n start: number,\n end: number,\n direction?: SelectionRangeDirection\n ): void {\n this._input.setSelectionRange(start, end, direction);\n }\n\n /* Replaces the selected text in the input and re-applies the mask */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n mode?: RangeTextSelectMode\n ): void {\n this._input.setRangeText(replacement, start, end, mode);\n this.value = this._input.value;\n }\n\n protected async onEscapeKey() {\n if (await this._hide(true)) {\n this._input.focus();\n }\n }\n\n protected handleFocusIn() {\n this._dirty = true;\n }\n\n protected handleFocusOut({ relatedTarget }: FocusEvent) {\n if (!this.contains(relatedTarget as Node)) {\n this.checkValidity();\n }\n }\n\n protected handlerCalendarIconSlotPointerDown(event: PointerEvent) {\n // This is where the delegateFocus of the underlying input is a chore.\n // If we have a required validator we don't want the input to enter an invalid\n // state right off the bat when opening the picker which will happen since focus is transferred to the calendar element.\n // So we call preventDefault on the event in order to not focus the input and trigger its validation logic on blur.\n event.preventDefault();\n }\n\n protected handleInputClick(event: Event) {\n if (findElementFromEventPath('input', event)) {\n // Open only if the click originates from the underlying input\n this.handleAnchorClick();\n }\n }\n\n protected override async handleAnchorClick() {\n this._calendar.activeDate = this.value ?? this._calendar.activeDate;\n\n super.handleAnchorClick();\n await this.updateComplete;\n this._calendar[focusActiveDate]();\n }\n\n private async _shouldCloseCalendarDropdown() {\n if (!this.keepOpenOnSelect && (await this._hide(true))) {\n this._input.focus();\n this._input.select();\n }\n }\n\n protected handleInputChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected async handleCalendarChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.readOnly) {\n // Wait till the calendar finishes updating and then restore the current value from the date-picker.\n await this._calendar.updateComplete;\n this._calendar.value = this._value ?? undefined;\n return;\n }\n\n this.value = (event.target as IgcCalendarComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n\n this._shouldCloseCalendarDropdown();\n }\n\n protected handleInputEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.nonEditable) {\n event.preventDefault();\n return;\n }\n\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcInput', { detail: this.value });\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n protected handleDialogClosing(event: Event) {\n event.stopPropagation();\n this._hide(true);\n }\n\n protected handleDialogClosed(event: Event) {\n event.stopPropagation();\n }\n\n protected override _setDefaultValue(\n _: string | null,\n current: string | null\n ) {\n this._defaultValue = dateFromISOString(current);\n }\n\n private setDateConstraints() {\n const dates: DateRangeDescriptor[] = [];\n if (this._min) {\n dates.push({ type: DateRangeType.Before, dateRange: [this._min] });\n }\n if (this._max) {\n dates.push({ type: DateRangeType.After, dateRange: [this._max] });\n }\n if (this._disabledDates?.length) {\n dates.push(...this.disabledDates);\n }\n\n this._dateConstraints = dates.length ? dates : undefined;\n }\n\n private renderClearIcon() {\n return !this.value\n ? nothing\n : html`\n <span slot=\"suffix\" part=\"clear-icon\" @click=${this.clear}>\n <slot name=\"clear-icon\">\n <igc-icon\n name=\"input_clear\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n `;\n }\n\n private renderCalendarIcon() {\n const defaultIcon = html`\n <igc-icon name=\"today\" collection=\"default\" aria-hidden=\"true\"></igc-icon>\n `;\n\n const state = this.open ? 'calendar-icon-open' : 'calendar-icon';\n\n return html`\n <span\n slot=\"prefix\"\n part=${state}\n @pointerdown=${this.handlerCalendarIconSlotPointerDown}\n @click=${this.handleAnchorClick}\n >\n <slot name=${state}>${defaultIcon}</slot>\n </span>\n `;\n }\n\n private renderCalendarSlots() {\n if (this.isDropDown) {\n return nothing;\n }\n\n const hasHeaderDate = this.headerDateSlotItems.length ? 'header-date' : '';\n\n return html`\n <slot name=\"title\" slot=\"title\">\n ${this.resourceStrings.selectDate}\n </slot>\n <slot name=\"header-date\" slot=${hasHeaderDate}></slot>\n `;\n }\n\n private renderCalendar(id: string) {\n const hideHeader = this.isDropDown ? true : this.hideHeader;\n\n return html`\n <igc-calendar\n aria-labelledby=${id}\n role=\"dialog\"\n .inert=${!this.open || this.disabled}\n ?show-week-numbers=${this.showWeekNumbers}\n ?hide-outside-days=${this.hideOutsideDays}\n ?hide-header=${hideHeader}\n .activeDate=${this.activeDate ?? this.value ?? new Date()}\n .value=${this.value ?? undefined}\n .headerOrientation=${this.headerOrientation}\n .orientation=${this.orientation}\n .visibleMonths=${this.visibleMonths}\n .locale=${this.locale}\n .disabledDates=${this._dateConstraints!}\n .specialDates=${this.specialDates}\n .weekStart=${this.weekStart}\n @igcChange=${this.handleCalendarChangeEvent}\n exportparts=\"header, header-title, header-date, content: calendar-content, navigation, months-navigation,\n years-navigation, years-range, navigation-buttons, navigation-button, days-view-container,\n days-view, months-view, years-view, days-row, label: calendar-label, week-number, week-number-inner, date,\n date-inner, first, last, inactive, hidden, weekend, range, special, disabled, single, preview,\n month, month-inner, year, year-inner, selected, current\"\n >\n ${this.renderCalendarSlots()}\n </igc-calendar>\n `;\n }\n\n protected renderActions() {\n const slot = this.isDropDown || !this.actions.length ? undefined : 'footer';\n\n // If in dialog mode use the dialog footer slot\n return html`\n <div\n part=\"actions\"\n ?hidden=${!this.actions.length}\n slot=${ifDefined(slot)}\n >\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n protected renderPicker(id: string) {\n return this.isDropDown\n ? html`\n <igc-popover ?open=${this.open} anchor=${id} flip shift>\n <igc-focus-trap ?disabled=${!this.open || this.disabled}>\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-focus-trap>\n </igc-popover>\n `\n : html`\n <igc-dialog\n aria-label=${ifDefined(this.resourceStrings.selectDate)}\n role=\"dialog\"\n ?open=${this.open}\n ?close-on-outside-click=${!this.keepOpenOnOutsideClick}\n hide-default-action\n @igcClosing=${this.handleDialogClosing}\n @igcClosed=${this.handleDialogClosed}\n exportparts=\"base: dialog-base, title, footer, overlay\"\n >\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-dialog>\n `;\n }\n\n private renderLabel(id: string) {\n return this.label\n ? html`<label\n part=\"label\"\n for=${id}\n @click=${this.isDropDown ? nothing : this.handleAnchorClick}\n >${this.label}</label\n >`\n : nothing;\n }\n\n private renderHelperText(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected renderInput(id: string) {\n const format = formats.has(this._displayFormat!)\n ? `${this._displayFormat}Date`\n : this._displayFormat;\n\n // Dialog mode is always readonly, rest depends on configuration\n const readOnly = !this.isDropDown || this.readOnly || this.nonEditable;\n\n return html`\n <igc-date-time-input\n id=${id}\n aria-haspopup=\"dialog\"\n label=${ifDefined(this._isMaterialTheme ? this.label : undefined)}\n input-format=${ifDefined(this._inputFormat)}\n display-format=${ifDefined(format)}\n ?disabled=${this.disabled}\n ?readonly=${readOnly}\n ?required=${this.required}\n .value=${this.value ?? null}\n .locale=${this.locale}\n .prompt=${this.prompt}\n .outlined=${this.outlined}\n .placeholder=${this.placeholder}\n .min=${this.min}\n .max=${this.max}\n .invalid=${live(this.invalid)}\n @igcChange=${this.handleInputChangeEvent}\n @igcInput=${this.handleInputEvent}\n @click=${this.isDropDown ? nothing : this.handleInputClick}\n exportparts=\"input, label, prefix, suffix\"\n >\n ${this.renderCalendarIcon()}\n <slot\n name=\"prefix\"\n slot=${ifDefined(!this.prefixes.length ? undefined : 'prefix')}\n ></slot>\n ${this.renderClearIcon()}\n <slot\n name=\"suffix\"\n slot=${ifDefined(!this.suffixes.length ? undefined : 'suffix')}\n ></slot>\n </igc-date-time-input>\n `;\n }\n\n protected override render() {\n const id = this.id || this.inputId;\n\n return html`\n ${!this._isMaterialTheme ? this.renderLabel(id) : nothing}\n ${this.renderInput(id)}${this.renderPicker(id)}${this.renderHelperText()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-picker': IgcDatePickerComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--border-color: var(--ig-datepicker-border-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));--picker-background: var(--ig-datepicker-picker-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--picker-hover-foreground: var(--ig-datepicker-picker-hover-foreground, hsla(var(--ig-secondary-200), var(--ig-secondary-a)));--picker-focus-foreground: var(--ig-datepicker-picker-focus-foreground, hsla(var(--ig-secondary-200), var(--ig-secondary-a)));--navigation-hover-color: var(--ig-datepicker-navigation-hover-color, hsla(var(--ig-secondary-200), var(--ig-secondary-a)));--navigation-focus-color: var(--ig-datepicker-navigation-focus-color, hsla(var(--ig-secondary-200), var(--ig-secondary-a)));--week-number-background: var(--ig-datepicker-week-number-background, transparent);--weekday-color: var(--ig-datepicker-weekday-color, hsla(var(--ig-info-300), var(--ig-info-a)));--date-border-radius: var(--ig-datepicker-date-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--date-range-border-radius: var(--ig-datepicker-date-range-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--ym-border-radius: var(--ig-datepicker-ym-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--date-range-preview-border-color: var(--ig-datepicker-date-range-preview-border-color, transparent);--date-special-hover-background: var(--ig-datepicker-date-special-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-special-focus-background: var(--ig-datepicker-date-special-focus-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-special-range-hover-background: var(--ig-datepicker-date-special-range-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-special-range-focus-background: var(--ig-datepicker-date-special-range-focus-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-special-foreground: var(--ig-datepicker-date-special-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-special-hover-foreground: var(--ig-datepicker-date-special-hover-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-special-focus-foreground: var(--ig-datepicker-date-special-focus-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-special-border-color: var(--ig-datepicker-date-special-border-color, hsla(var(--ig-primary-200), var(--ig-primary-a)));--date-special-hover-border-color: var(--ig-datepicker-date-special-hover-border-color, hsla(var(--ig-primary-200), var(--ig-primary-a)));--date-special-range-border-color: var(--ig-datepicker-date-special-range-border-color, hsla(var(--ig-primary-200), var(--ig-primary-a)));--header-background: var(--ig-datepicker-header-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--header-foreground: var(--ig-datepicker-header-foreground, color-mix(in oklch, var(--ig-gray-100-contrast) 100%, transparent));--picker-foreground: var(--ig-datepicker-picker-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-selected-current-hover-foreground: var(--ig-datepicker-ym-selected-current-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-current-hover-background: var(--ig-datepicker-ym-selected-current-hover-background, hsla(var(--ig-primary-600), var(--ig-primary-a)));--ym-hover-foreground: var(--ig-datepicker-ym-hover-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-hover-background: var(--ig-datepicker-ym-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--ym-current-foreground: var(--ig-datepicker-ym-current-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-current-background: var(--ig-datepicker-ym-current-background, transparent);--ym-current-hover-foreground: var(--ig-datepicker-ym-current-hover-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-current-hover-background: var(--ig-datepicker-ym-current-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--ym-selected-foreground: var(--ig-datepicker-ym-selected-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-background: var(--ig-datepicker-ym-selected-background, hsla(var(--ig-primary-500), var(--ig-primary-a)));--ym-selected-hover-foreground: var(--ig-datepicker-ym-selected-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-hover-background: var(--ig-datepicker-ym-selected-hover-background, hsla(var(--ig-primary-600), var(--ig-primary-a)));--ym-selected-current-foreground: var(--ig-datepicker-ym-selected-current-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-current-background: var(--ig-datepicker-ym-selected-current-background, hsla(var(--ig-primary-500), var(--ig-primary-a)));--date-hover-background: var(--ig-datepicker-date-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-focus-background: var(--ig-datepicker-date-focus-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-selected-foreground: var(--ig-datepicker-date-selected-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-background: var(--ig-datepicker-date-selected-background, hsla(var(--ig-primary-500), var(--ig-primary-a)));--date-selected-hover-foreground: var(--ig-datepicker-date-selected-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-hover-background: var(--ig-datepicker-date-selected-hover-background, hsla(var(--ig-primary-600), var(--ig-primary-a)));--date-selected-focus-foreground: var(--ig-datepicker-date-selected-focus-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-focus-background: var(--ig-datepicker-date-selected-focus-background, hsla(var(--ig-primary-600), var(--ig-primary-a)));--date-current-foreground: var(--ig-datepicker-date-current-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-current-hover-background: var(--ig-datepicker-date-current-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-selected-current-background: var(--ig-datepicker-date-selected-current-background, hsla(var(--ig-primary-500), var(--ig-primary-a)));--date-selected-current-foreground: var(--ig-datepicker-date-selected-current-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-current-hover-foreground: var(--ig-datepicker-date-selected-current-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-current-hover-background: var(--ig-datepicker-date-selected-current-hover-background, hsla(var(--ig-primary-600), var(--ig-primary-a)));--date-selected-current-focus-foreground: var(--ig-datepicker-date-selected-current-focus-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-current-focus-background: var(--ig-datepicker-date-selected-current-focus-background, hsla(var(--ig-primary-600), var(--ig-primary-a)));--date-selected-current-range-background: var(--ig-datepicker-date-selected-current-range-background, transparent);--date-selected-current-range-hover-background: var(--ig-datepicker-date-selected-current-range-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-selected-current-range-focus-background: var(--ig-datepicker-date-selected-current-range-focus-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-selected-special-border-color: var(--ig-datepicker-date-selected-special-border-color, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-special-hover-border-color: var(--ig-datepicker-date-selected-special-hover-border-color, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-special-focus-border-color: var(--ig-datepicker-date-selected-special-focus-border-color, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-range-foreground: var(--ig-datepicker-date-selected-range-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-selected-range-background: var(--ig-datepicker-date-selected-range-background, hsla(var(--ig-primary-500), 0.24));--date-selected-range-hover-background: var(--ig-datepicker-date-selected-range-hover-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-selected-range-focus-background: var(--ig-datepicker-date-selected-range-focus-background, hsla(var(--ig-gray-100), var(--ig-gray-a)));--date-current-border-color: var(--ig-datepicker-date-current-border-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-current-hover-border-color: var(--ig-datepicker-date-current-hover-border-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-current-focus-border-color: var(--ig-datepicker-date-current-focus-border-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-selected-current-border-color: var(--ig-datepicker-date-selected-current-border-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-selected-current-hover-border-color: var(--ig-datepicker-date-selected-current-hover-border-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--date-selected-current-focus-border-color: var(--ig-datepicker-date-selected-current-focus-border-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-current-outline-color: var(--ig-datepicker-ym-current-outline-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-selected-current-outline-color: var(--ig-datepicker-ym-selected-current-outline-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-selected-current-outline-hover-color: var(--ig-datepicker-ym-selected-current-outline-hover-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--ym-selected-current-outline-focus-color: var(--ig-datepicker-ym-selected-current-outline-focus-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--week-number-border-radius: var(--ig-datepicker-week-number-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 0.5rem), 0.5rem));--actions-divider-color: var(--ig-datepicker-actions-divider-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));--date-special-range-foreground: var(--ig-datepicker-date-special-range-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--idle-secondary-color: var(--ig-datepicker-idle-secondary-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--helper-text-color: var(--ig-datepicker-helper-text-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--disabled-text-color: var(--ig-datepicker-disabled-text-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--error-secondary-color: var(--ig-datepicker-error-secondary-color, hsla(var(--ig-error-500), var(--ig-error-a)))}`;
2
+ export const styles = css `:host{--border-color: var(--ig-datepicker-border-color, hsl(from var(--ig-gray-300) h s l/1));--picker-background: var(--ig-datepicker-picker-background, hsl(from var(--ig-gray-100) h s l/1));--picker-hover-foreground: var(--ig-datepicker-picker-hover-foreground, hsl(from var(--ig-secondary-200) h s l/1));--picker-focus-foreground: var(--ig-datepicker-picker-focus-foreground, hsl(from var(--ig-secondary-200) h s l/1));--navigation-hover-color: var(--ig-datepicker-navigation-hover-color, hsl(from var(--ig-secondary-200) h s l/1));--navigation-focus-color: var(--ig-datepicker-navigation-focus-color, hsl(from var(--ig-secondary-200) h s l/1));--week-number-background: var(--ig-datepicker-week-number-background, transparent);--weekday-color: var(--ig-datepicker-weekday-color, hsl(from var(--ig-info-300) h s l/1));--date-border-radius: var(--ig-datepicker-date-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--date-range-border-radius: var(--ig-datepicker-date-range-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--ym-border-radius: var(--ig-datepicker-ym-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));--date-range-preview-border-color: var(--ig-datepicker-date-range-preview-border-color, transparent);--date-special-hover-background: var(--ig-datepicker-date-special-hover-background, hsl(from var(--ig-gray-100) h s l/1));--date-special-focus-background: var(--ig-datepicker-date-special-focus-background, hsl(from var(--ig-gray-100) h s l/1));--date-special-range-hover-background: var(--ig-datepicker-date-special-range-hover-background, hsl(from var(--ig-gray-100) h s l/1));--date-special-range-focus-background: var(--ig-datepicker-date-special-range-focus-background, hsl(from var(--ig-gray-100) h s l/1));--date-special-foreground: var(--ig-datepicker-date-special-foreground, hsl(from var(--ig-gray-900) h s l/1));--date-special-hover-foreground: var(--ig-datepicker-date-special-hover-foreground, hsl(from var(--ig-gray-900) h s l/1));--date-special-focus-foreground: var(--ig-datepicker-date-special-focus-foreground, hsl(from var(--ig-gray-900) h s l/1));--date-special-border-color: var(--ig-datepicker-date-special-border-color, hsl(from var(--ig-primary-200) h s l/1));--date-special-hover-border-color: var(--ig-datepicker-date-special-hover-border-color, hsl(from var(--ig-primary-200) h s l/1));--date-special-range-border-color: var(--ig-datepicker-date-special-range-border-color, hsl(from var(--ig-primary-200) h s l/1));--header-background: var(--ig-datepicker-header-background, hsl(from var(--ig-gray-100) h s l/1));--header-foreground: var(--ig-datepicker-header-foreground, color-mix(in oklch, var(--ig-gray-100-contrast) 100%, transparent));--picker-foreground: var(--ig-datepicker-picker-foreground, hsl(from var(--ig-gray-900) h s l/1));--ym-selected-current-hover-foreground: var(--ig-datepicker-ym-selected-current-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-current-hover-background: var(--ig-datepicker-ym-selected-current-hover-background, hsl(from var(--ig-primary-600) h s l/1));--ym-hover-foreground: var(--ig-datepicker-ym-hover-foreground, hsl(from var(--ig-gray-900) h s l/1));--ym-hover-background: var(--ig-datepicker-ym-hover-background, hsl(from var(--ig-gray-100) h s l/1));--ym-current-foreground: var(--ig-datepicker-ym-current-foreground, hsl(from var(--ig-gray-900) h s l/1));--ym-current-background: var(--ig-datepicker-ym-current-background, transparent);--ym-current-hover-foreground: var(--ig-datepicker-ym-current-hover-foreground, hsl(from var(--ig-gray-900) h s l/1));--ym-current-hover-background: var(--ig-datepicker-ym-current-hover-background, hsl(from var(--ig-gray-100) h s l/1));--ym-selected-foreground: var(--ig-datepicker-ym-selected-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-background: var(--ig-datepicker-ym-selected-background, hsl(from var(--ig-primary-500) h s l/1));--ym-selected-hover-foreground: var(--ig-datepicker-ym-selected-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-hover-background: var(--ig-datepicker-ym-selected-hover-background, hsl(from var(--ig-primary-600) h s l/1));--ym-selected-current-foreground: var(--ig-datepicker-ym-selected-current-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--ym-selected-current-background: var(--ig-datepicker-ym-selected-current-background, hsl(from var(--ig-primary-500) h s l/1));--date-hover-background: var(--ig-datepicker-date-hover-background, hsl(from var(--ig-gray-100) h s l/1));--date-focus-background: var(--ig-datepicker-date-focus-background, hsl(from var(--ig-gray-100) h s l/1));--date-selected-foreground: var(--ig-datepicker-date-selected-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-background: var(--ig-datepicker-date-selected-background, hsl(from var(--ig-primary-500) h s l/1));--date-selected-hover-foreground: var(--ig-datepicker-date-selected-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-hover-background: var(--ig-datepicker-date-selected-hover-background, hsl(from var(--ig-primary-600) h s l/1));--date-selected-focus-foreground: var(--ig-datepicker-date-selected-focus-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-focus-background: var(--ig-datepicker-date-selected-focus-background, hsl(from var(--ig-primary-600) h s l/1));--date-current-foreground: var(--ig-datepicker-date-current-foreground, hsl(from var(--ig-gray-900) h s l/1));--date-current-hover-background: var(--ig-datepicker-date-current-hover-background, hsl(from var(--ig-gray-100) h s l/1));--date-selected-current-background: var(--ig-datepicker-date-selected-current-background, hsl(from var(--ig-primary-500) h s l/1));--date-selected-current-foreground: var(--ig-datepicker-date-selected-current-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-current-hover-foreground: var(--ig-datepicker-date-selected-current-hover-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-current-hover-background: var(--ig-datepicker-date-selected-current-hover-background, hsl(from var(--ig-primary-600) h s l/1));--date-selected-current-focus-foreground: var(--ig-datepicker-date-selected-current-focus-foreground, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-current-focus-background: var(--ig-datepicker-date-selected-current-focus-background, hsl(from var(--ig-primary-600) h s l/1));--date-selected-current-range-background: var(--ig-datepicker-date-selected-current-range-background, transparent);--date-selected-current-range-hover-background: var(--ig-datepicker-date-selected-current-range-hover-background, hsl(from var(--ig-gray-100) h s l/1));--date-selected-current-range-focus-background: var(--ig-datepicker-date-selected-current-range-focus-background, hsl(from var(--ig-gray-100) h s l/1));--date-selected-special-border-color: var(--ig-datepicker-date-selected-special-border-color, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-special-hover-border-color: var(--ig-datepicker-date-selected-special-hover-border-color, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-special-focus-border-color: var(--ig-datepicker-date-selected-special-focus-border-color, color-mix(in oklch, var(--ig-primary-900-contrast) 100%, transparent));--date-selected-range-foreground: var(--ig-datepicker-date-selected-range-foreground, hsl(from var(--ig-gray-900) h s l/1));--date-selected-range-background: var(--ig-datepicker-date-selected-range-background, hsl(from var(--ig-primary-500) h s l/0.24));--date-selected-range-hover-background: var(--ig-datepicker-date-selected-range-hover-background, hsl(from var(--ig-gray-100) h s l/1));--date-selected-range-focus-background: var(--ig-datepicker-date-selected-range-focus-background, hsl(from var(--ig-gray-100) h s l/1));--date-current-border-color: var(--ig-datepicker-date-current-border-color, hsl(from var(--ig-gray-900) h s l/1));--date-current-hover-border-color: var(--ig-datepicker-date-current-hover-border-color, hsl(from var(--ig-gray-900) h s l/1));--date-current-focus-border-color: var(--ig-datepicker-date-current-focus-border-color, hsl(from var(--ig-gray-900) h s l/1));--date-selected-current-border-color: var(--ig-datepicker-date-selected-current-border-color, hsl(from var(--ig-gray-900) h s l/1));--date-selected-current-hover-border-color: var(--ig-datepicker-date-selected-current-hover-border-color, hsl(from var(--ig-gray-900) h s l/1));--date-selected-current-focus-border-color: var(--ig-datepicker-date-selected-current-focus-border-color, hsl(from var(--ig-gray-900) h s l/1));--ym-current-outline-color: var(--ig-datepicker-ym-current-outline-color, hsl(from var(--ig-gray-900) h s l/1));--ym-selected-current-outline-color: var(--ig-datepicker-ym-selected-current-outline-color, hsl(from var(--ig-gray-900) h s l/1));--ym-selected-current-outline-hover-color: var(--ig-datepicker-ym-selected-current-outline-hover-color, hsl(from var(--ig-gray-900) h s l/1));--ym-selected-current-outline-focus-color: var(--ig-datepicker-ym-selected-current-outline-focus-color, hsl(from var(--ig-gray-900) h s l/1));--week-number-border-radius: var(--ig-datepicker-week-number-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0) * 0.5rem), 0.5rem));--actions-divider-color: var(--ig-datepicker-actions-divider-color, hsl(from var(--ig-gray-300) h s l/1));--date-special-range-foreground: var(--ig-datepicker-date-special-range-foreground, hsl(from var(--ig-gray-900) h s l/1));--idle-secondary-color: var(--ig-datepicker-idle-secondary-color, hsl(from var(--ig-gray-700) h s l/1));--helper-text-color: var(--ig-datepicker-helper-text-color, hsl(from var(--ig-gray-700) h s l/1));--disabled-text-color: var(--ig-datepicker-disabled-text-color, hsl(from var(--ig-gray-400) h s l/1));--error-secondary-color: var(--ig-datepicker-error-secondary-color, hsl(from var(--ig-error-500) h s l/1))}`;
3
3
  //# sourceMappingURL=date-picker.bootstrap.css.js.map