igniteui-webcomponents 3.3.0 → 4.0.0-alpha.2

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 (455) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +7 -2
  3. package/components/accordion/accordion.js +3 -1
  4. package/components/accordion/accordion.js.map +1 -1
  5. package/components/accordion/themes/accordion.base.css.js +13 -1
  6. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  7. package/components/avatar/themes/avatar.base.css.js +95 -1
  8. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  9. package/components/avatar/themes/avatar.bootstrap.css.js +5 -1
  10. package/components/avatar/themes/avatar.bootstrap.css.js.map +1 -1
  11. package/components/badge/themes/light/badge.base.css.js +100 -1
  12. package/components/badge/themes/light/badge.base.css.js.map +1 -1
  13. package/components/badge/themes/light/badge.bootstrap.css.js +11 -1
  14. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  15. package/components/button/button-base.js +7 -2
  16. package/components/button/button-base.js.map +1 -1
  17. package/components/button/themes/button/dark/button.fluent.css.js +1 -1
  18. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  19. package/components/button/themes/button/light/button.base.css.js +184 -1
  20. package/components/button/themes/button/light/button.base.css.js.map +1 -1
  21. package/components/button/themes/button/light/button.bootstrap.css.js +148 -1
  22. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  23. package/components/button/themes/button/light/button.fluent.css.js +168 -1
  24. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  25. package/components/button/themes/button/light/button.indigo.css.js +141 -1
  26. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  27. package/components/button/themes/button/light/button.material.css.js +233 -1
  28. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  29. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
  30. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
  31. package/components/button/themes/icon-button/light/icon-button.base.css.js +101 -1
  32. package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
  33. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +81 -1
  34. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  35. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +90 -1
  36. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  37. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +84 -1
  38. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  39. package/components/button/themes/icon-button/light/icon-button.material.css.js +53 -1
  40. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  41. package/components/calendar/common/calendar-base.js +3 -1
  42. package/components/calendar/common/calendar-base.js.map +1 -1
  43. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +42 -1
  44. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
  45. package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js +264 -1
  46. package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js.map +1 -1
  47. package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js +56 -1
  48. package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  49. package/components/calendar/themes/calendar.base.css.js +278 -1
  50. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  51. package/components/calendar/themes/days-view.base.css.js +286 -1
  52. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  53. package/components/calendar/themes/fluent/calendar.fluent.css.js +290 -1
  54. package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
  55. package/components/calendar/themes/fluent/days-view.fluent.css.js +328 -1
  56. package/components/calendar/themes/fluent/days-view.fluent.css.js.map +1 -1
  57. package/components/calendar/themes/fluent/year-month-view.fluent.css.js +122 -1
  58. package/components/calendar/themes/fluent/year-month-view.fluent.css.js.map +1 -1
  59. package/components/calendar/themes/year-month-view.base.css.js +94 -1
  60. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  61. package/components/card/themes/light/card.actions.bootstrap.css.js +94 -1
  62. package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
  63. package/components/card/themes/light/card.actions.material.css.js +90 -1
  64. package/components/card/themes/light/card.actions.material.css.js.map +1 -1
  65. package/components/card/themes/light/card.bootstrap.css.js +11 -1
  66. package/components/card/themes/light/card.bootstrap.css.js.map +1 -1
  67. package/components/card/themes/light/card.content.bootstrap.css.js +76 -1
  68. package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
  69. package/components/card/themes/light/card.content.indigo.css.js +58 -1
  70. package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
  71. package/components/card/themes/light/card.content.material.css.js +50 -1
  72. package/components/card/themes/light/card.content.material.css.js.map +1 -1
  73. package/components/card/themes/light/card.fluent.css.js +21 -1
  74. package/components/card/themes/light/card.fluent.css.js.map +1 -1
  75. package/components/card/themes/light/card.header.bootstrap.css.js +133 -1
  76. package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
  77. package/components/card/themes/light/card.header.fluent.css.js +129 -1
  78. package/components/card/themes/light/card.header.fluent.css.js.map +1 -1
  79. package/components/card/themes/light/card.header.indigo.css.js +115 -1
  80. package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
  81. package/components/card/themes/light/card.header.material.css.js +105 -1
  82. package/components/card/themes/light/card.header.material.css.js.map +1 -1
  83. package/components/card/themes/light/card.material.css.js +60 -1
  84. package/components/card/themes/light/card.material.css.js.map +1 -1
  85. package/components/card/themes/light/card.media.material.css.js +43 -1
  86. package/components/card/themes/light/card.media.material.css.js.map +1 -1
  87. package/components/checkbox/checkbox-base.js +7 -2
  88. package/components/checkbox/checkbox-base.js.map +1 -1
  89. package/components/checkbox/themes/dark/checkbox.fluent.css.js +1 -1
  90. package/components/checkbox/themes/dark/checkbox.fluent.css.js.map +1 -1
  91. package/components/checkbox/themes/dark/checkbox.indigo.css.js +1 -1
  92. package/components/checkbox/themes/dark/checkbox.indigo.css.js.map +1 -1
  93. package/components/checkbox/themes/dark/switch.fluent.css.js +1 -1
  94. package/components/checkbox/themes/dark/switch.fluent.css.js.map +1 -1
  95. package/components/checkbox/themes/dark/switch.indigo.css.js +1 -1
  96. package/components/checkbox/themes/dark/switch.indigo.css.js.map +1 -1
  97. package/components/checkbox/themes/light/checkbox.base.css.js +208 -1
  98. package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
  99. package/components/checkbox/themes/light/checkbox.bootstrap.css.js +108 -1
  100. package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
  101. package/components/checkbox/themes/light/checkbox.fluent.css.js +192 -1
  102. package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
  103. package/components/checkbox/themes/light/checkbox.indigo.css.js +107 -1
  104. package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
  105. package/components/checkbox/themes/light/checkbox.material.css.js +58 -1
  106. package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
  107. package/components/checkbox/themes/light/switch.base.css.js +209 -1
  108. package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
  109. package/components/checkbox/themes/light/switch.bootstrap.css.js +126 -1
  110. package/components/checkbox/themes/light/switch.bootstrap.css.js.map +1 -1
  111. package/components/checkbox/themes/light/switch.fluent.css.js +131 -1
  112. package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
  113. package/components/checkbox/themes/light/switch.indigo.css.js +130 -1
  114. package/components/checkbox/themes/light/switch.indigo.css.js.map +1 -1
  115. package/components/checkbox/themes/light/switch.material.css.js +81 -1
  116. package/components/checkbox/themes/light/switch.material.css.js.map +1 -1
  117. package/components/chip/chip.d.ts +1 -0
  118. package/components/chip/chip.js +9 -0
  119. package/components/chip/chip.js.map +1 -1
  120. package/components/chip/themes/chip.base.css.js +213 -1
  121. package/components/chip/themes/chip.base.css.js.map +1 -1
  122. package/components/chip/themes/chip.bootstrap.css.js +286 -1
  123. package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
  124. package/components/chip/themes/chip.fluent.css.js +248 -1
  125. package/components/chip/themes/chip.fluent.css.js.map +1 -1
  126. package/components/chip/themes/chip.indigo.css.js +346 -1
  127. package/components/chip/themes/chip.indigo.css.js.map +1 -1
  128. package/components/chip/themes/chip.material.css.js +229 -1
  129. package/components/chip/themes/chip.material.css.js.map +1 -1
  130. package/components/common/decorators/blazorDeepImport.d.ts +4 -0
  131. package/components/common/decorators/blazorDeepImport.js +2 -0
  132. package/components/common/decorators/blazorDeepImport.js.map +1 -0
  133. package/components/common/util.d.ts +1 -0
  134. package/components/common/util.js +3 -0
  135. package/components/common/util.js.map +1 -1
  136. package/components/dropdown/dropdown-group.d.ts +2 -2
  137. package/components/dropdown/dropdown-group.js +1 -1
  138. package/components/dropdown/dropdown-group.js.map +1 -1
  139. package/components/dropdown/dropdown-header.d.ts +1 -1
  140. package/components/dropdown/dropdown-header.js.map +1 -1
  141. package/components/dropdown/dropdown-item.d.ts +1 -1
  142. package/components/dropdown/dropdown-item.js.map +1 -1
  143. package/components/dropdown/dropdown.d.ts +10 -8
  144. package/components/dropdown/dropdown.js +13 -10
  145. package/components/dropdown/dropdown.js.map +1 -1
  146. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  147. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  148. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  149. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  150. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  151. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  152. package/components/dropdown/themes/light/dropdown-group.base.css.js +74 -1
  153. package/components/dropdown/themes/light/dropdown-group.base.css.js.map +1 -1
  154. package/components/dropdown/themes/light/dropdown-group.fluent.css.js +18 -1
  155. package/components/dropdown/themes/light/dropdown-group.fluent.css.js.map +1 -1
  156. package/components/dropdown/themes/light/dropdown-header.base.css.js +51 -1
  157. package/components/dropdown/themes/light/dropdown-header.base.css.js.map +1 -1
  158. package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js +4 -1
  159. package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js.map +1 -1
  160. package/components/dropdown/themes/light/dropdown-item.base.css.js +114 -1
  161. package/components/dropdown/themes/light/dropdown-item.base.css.js.map +1 -1
  162. package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js +25 -1
  163. package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js.map +1 -1
  164. package/components/dropdown/themes/light/dropdown-item.fluent.css.js +21 -1
  165. package/components/dropdown/themes/light/dropdown-item.fluent.css.js.map +1 -1
  166. package/components/dropdown/themes/light/dropdown-item.indigo.css.js +25 -1
  167. package/components/dropdown/themes/light/dropdown-item.indigo.css.js.map +1 -1
  168. package/components/dropdown/themes/light/dropdown.base.css.js +69 -1
  169. package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -1
  170. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +6 -1
  171. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  172. package/components/dropdown/themes/light/dropdown.fluent.css.js +25 -1
  173. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  174. package/components/dropdown/themes/light/dropdown.indigo.css.js +7 -1
  175. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  176. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +134 -1
  177. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
  178. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +32 -1
  179. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -1
  180. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +43 -1
  181. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
  182. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +26 -1
  183. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
  184. package/components/form/form.js +1 -0
  185. package/components/form/form.js.map +1 -1
  186. package/components/icon/icon.js +3 -1
  187. package/components/icon/icon.js.map +1 -1
  188. package/components/icon/icon.material.css.js +64 -1
  189. package/components/icon/icon.material.css.js.map +1 -1
  190. package/components/input/input-base.js +3 -1
  191. package/components/input/input-base.js.map +1 -1
  192. package/components/input/input.d.ts +1 -0
  193. package/components/input/input.js +5 -0
  194. package/components/input/input.js.map +1 -1
  195. package/components/input/themes/dark/input.dark.indigo.css.js +1 -1
  196. package/components/input/themes/dark/input.dark.indigo.css.js.map +1 -1
  197. package/components/input/themes/dark/input.dark.material.css.js +1 -1
  198. package/components/input/themes/dark/input.dark.material.css.js.map +1 -1
  199. package/components/input/themes/light/input.base.css.js +102 -1
  200. package/components/input/themes/light/input.base.css.js.map +1 -1
  201. package/components/input/themes/light/input.bootstrap.css.js +181 -1
  202. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  203. package/components/input/themes/light/input.fluent.css.js +139 -1
  204. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  205. package/components/input/themes/light/input.indigo.css.js +107 -1
  206. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  207. package/components/input/themes/light/input.material.css.js +385 -1
  208. package/components/input/themes/light/input.material.css.js.map +1 -1
  209. package/components/list/themes/dark/list.bootstrap.css.js +1 -1
  210. package/components/list/themes/dark/list.bootstrap.css.js.map +1 -1
  211. package/components/list/themes/dark/list.fluent.css.js +1 -1
  212. package/components/list/themes/dark/list.fluent.css.js.map +1 -1
  213. package/components/list/themes/dark/list.indigo.css.js +1 -1
  214. package/components/list/themes/dark/list.indigo.css.js.map +1 -1
  215. package/components/list/themes/light/list-header.base.css.js +54 -1
  216. package/components/list/themes/light/list-header.base.css.js.map +1 -1
  217. package/components/list/themes/light/list-header.indigo.css.js +4 -1
  218. package/components/list/themes/light/list-header.indigo.css.js.map +1 -1
  219. package/components/list/themes/light/list-item.base.css.js +106 -1
  220. package/components/list/themes/light/list-item.base.css.js.map +1 -1
  221. package/components/list/themes/light/list-item.bootstrap.css.js +39 -1
  222. package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
  223. package/components/list/themes/light/list-item.fluent.css.js +25 -1
  224. package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
  225. package/components/list/themes/light/list-item.indigo.css.js +21 -1
  226. package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
  227. package/components/list/themes/light/list.base.css.js +55 -1
  228. package/components/list/themes/light/list.base.css.js.map +1 -1
  229. package/components/list/themes/light/list.bootstrap.css.js +6 -1
  230. package/components/list/themes/light/list.bootstrap.css.js.map +1 -1
  231. package/components/mask-input/mask-input-base.js +7 -2
  232. package/components/mask-input/mask-input-base.js.map +1 -1
  233. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +1 -1
  234. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -1
  235. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +1 -1
  236. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -1
  237. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +1 -1
  238. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -1
  239. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +1 -1
  240. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -1
  241. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +1 -1
  242. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -1
  243. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +12 -1
  244. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -1
  245. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +16 -1
  246. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -1
  247. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js +4 -1
  248. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -1
  249. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +21 -1
  250. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -1
  251. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +12 -1
  252. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -1
  253. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js +42 -1
  254. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -1
  255. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +115 -1
  256. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
  257. package/components/nav-drawer/themes/light/nav-drawer.base.css.js +155 -1
  258. package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -1
  259. package/components/navbar/themes/light/navbar.base.css.js +135 -1
  260. package/components/navbar/themes/light/navbar.base.css.js.map +1 -1
  261. package/components/navbar/themes/light/navbar.bootstrap.css.js +33 -1
  262. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  263. package/components/navbar/themes/light/navbar.fluent.css.js +14 -1
  264. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  265. package/components/navbar/themes/light/navbar.indigo.css.js +5 -1
  266. package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
  267. package/components/progress/linear-progress.js +1 -0
  268. package/components/progress/linear-progress.js.map +1 -1
  269. package/components/progress/themes/circular/circular.progress.base.css.js +456 -1
  270. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  271. package/components/progress/themes/circular/circular.progress.bootstrap.css.js +20 -1
  272. package/components/progress/themes/circular/circular.progress.bootstrap.css.js.map +1 -1
  273. package/components/progress/themes/circular/circular.progress.fluent.css.js +8 -1
  274. package/components/progress/themes/circular/circular.progress.fluent.css.js.map +1 -1
  275. package/components/progress/themes/linear/linear.progress.base.css.js +578 -1
  276. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  277. package/components/progress/themes/linear/linear.progress.bootstrap.css.js +400 -1
  278. package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
  279. package/components/progress/themes/linear/linear.progress.fluent.css.js +71 -1
  280. package/components/progress/themes/linear/linear.progress.fluent.css.js.map +1 -1
  281. package/components/progress/themes/linear/linear.progress.indigo.css.js +33 -1
  282. package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
  283. package/components/radio/themes/dark/radio.fluent.css.js +1 -1
  284. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  285. package/components/radio/themes/dark/radio.indigo.css.js +1 -1
  286. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  287. package/components/radio/themes/light/radio.base.css.js +174 -1
  288. package/components/radio/themes/light/radio.base.css.js.map +1 -1
  289. package/components/radio/themes/light/radio.bootstrap.css.js +73 -1
  290. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  291. package/components/radio/themes/light/radio.fluent.css.js +108 -1
  292. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  293. package/components/radio/themes/light/radio.indigo.css.js +87 -1
  294. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  295. package/components/radio/themes/light/radio.material.css.js +15 -1
  296. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  297. package/components/radio-group/radio-group.base.css.js +54 -1
  298. package/components/radio-group/radio-group.base.css.js.map +1 -1
  299. package/components/radio-group/radio-group.d.ts +0 -1
  300. package/components/radio-group/radio-group.js +7 -6
  301. package/components/radio-group/radio-group.js.map +1 -1
  302. package/components/rating/rating-symbol.base.css.js +99 -1
  303. package/components/rating/rating-symbol.base.css.js.map +1 -1
  304. package/components/rating/rating.base.css.js +139 -1
  305. package/components/rating/rating.base.css.js.map +1 -1
  306. package/components/rating/rating.bootstrap.css.js +30 -1
  307. package/components/rating/rating.bootstrap.css.js.map +1 -1
  308. package/components/rating/rating.d.ts +21 -9
  309. package/components/rating/rating.fluent.css.js +42 -1
  310. package/components/rating/rating.fluent.css.js.map +1 -1
  311. package/components/rating/rating.indigo.css.js +34 -1
  312. package/components/rating/rating.indigo.css.js.map +1 -1
  313. package/components/rating/rating.js +50 -33
  314. package/components/rating/rating.js.map +1 -1
  315. package/components/ripple/ripple.js +1 -1
  316. package/components/ripple/ripple.js.map +1 -1
  317. package/components/ripple/ripple.material.css.js +36 -1
  318. package/components/ripple/ripple.material.css.js.map +1 -1
  319. package/components/select/select-group.d.ts +31 -0
  320. package/components/select/select-group.js +69 -0
  321. package/components/select/select-group.js.map +1 -0
  322. package/components/select/select-header.d.ts +15 -0
  323. package/components/select/select-header.js +5 -0
  324. package/components/select/select-header.js.map +1 -0
  325. package/components/select/select-item.d.ts +30 -0
  326. package/components/select/select-item.js +39 -0
  327. package/components/select/select-item.js.map +1 -0
  328. package/components/select/select.d.ts +110 -0
  329. package/components/select/select.js +337 -0
  330. package/components/select/select.js.map +1 -0
  331. package/components/select/themes/dark/select.bootstrap.css.d.ts +1 -0
  332. package/components/select/themes/dark/select.bootstrap.css.js +3 -0
  333. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -0
  334. package/components/select/themes/dark/select.fluent.css.d.ts +1 -0
  335. package/components/select/themes/dark/select.fluent.css.js +3 -0
  336. package/components/select/themes/dark/select.fluent.css.js.map +1 -0
  337. package/components/select/themes/dark/select.indigo.css.d.ts +1 -0
  338. package/components/select/themes/dark/select.indigo.css.js +3 -0
  339. package/components/select/themes/dark/select.indigo.css.js.map +1 -0
  340. package/components/select/themes/dark/select.material.css.d.ts +1 -0
  341. package/components/select/themes/dark/select.material.css.js +3 -0
  342. package/components/select/themes/dark/select.material.css.js.map +1 -0
  343. package/components/select/themes/light/select.base.css.d.ts +1 -0
  344. package/components/select/themes/light/select.base.css.js +112 -0
  345. package/components/select/themes/light/select.base.css.js.map +1 -0
  346. package/components/select/themes/light/select.bootstrap.css.d.ts +1 -0
  347. package/components/select/themes/light/select.bootstrap.css.js +69 -0
  348. package/components/select/themes/light/select.bootstrap.css.js.map +1 -0
  349. package/components/select/themes/light/select.fluent.css.d.ts +1 -0
  350. package/components/select/themes/light/select.fluent.css.js +28 -0
  351. package/components/select/themes/light/select.fluent.css.js.map +1 -0
  352. package/components/select/themes/light/select.indigo.css.d.ts +1 -0
  353. package/components/select/themes/light/select.indigo.css.js +23 -0
  354. package/components/select/themes/light/select.indigo.css.js.map +1 -0
  355. package/components/select/themes/light/select.material.css.d.ts +1 -0
  356. package/components/select/themes/light/select.material.css.js +63 -0
  357. package/components/select/themes/light/select.material.css.js.map +1 -0
  358. package/components/slider/slider-base.d.ts +0 -1
  359. package/components/slider/slider-base.js +8 -8
  360. package/components/slider/slider-base.js.map +1 -1
  361. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  362. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  363. package/components/slider/themes/dark/slider.fluent.css.js +1 -1
  364. package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
  365. package/components/slider/themes/dark/slider.indigo.css.js +1 -1
  366. package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
  367. package/components/slider/themes/light/slider.base.css.js +298 -1
  368. package/components/slider/themes/light/slider.base.css.js.map +1 -1
  369. package/components/slider/themes/light/slider.bootstrap.css.js +27 -1
  370. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  371. package/components/slider/themes/light/slider.fluent.css.js +46 -1
  372. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  373. package/components/slider/themes/light/slider.indigo.css.js +49 -1
  374. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  375. package/components/slider/themes/light/slider.material.css.js +63 -1
  376. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  377. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  378. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  379. package/components/snackbar/themes/light/snackbar.base.css.js +103 -1
  380. package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -1
  381. package/components/snackbar/themes/light/snackbar.bootstrap.css.js +11 -1
  382. package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -1
  383. package/components/snackbar/themes/light/snackbar.fluent.css.js +25 -1
  384. package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -1
  385. package/components/snackbar/themes/light/snackbar.indigo.css.js +11 -1
  386. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
  387. package/components/tabs/tabs.d.ts +0 -1
  388. package/components/tabs/tabs.js +7 -9
  389. package/components/tabs/tabs.js.map +1 -1
  390. package/components/tabs/themes/dark/tab.dark.base.css.js +1 -1
  391. package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -1
  392. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +1 -1
  393. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -1
  394. package/components/tabs/themes/light/tab-panel.base.css.js +34 -1
  395. package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -1
  396. package/components/tabs/themes/light/tab.base.css.js +134 -1
  397. package/components/tabs/themes/light/tab.base.css.js.map +1 -1
  398. package/components/tabs/themes/light/tab.bootstrap.css.js +66 -1
  399. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  400. package/components/tabs/themes/light/tab.fluent.css.js +19 -1
  401. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  402. package/components/tabs/themes/light/tab.indigo.css.js +22 -1
  403. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  404. package/components/tabs/themes/light/tabs.base.css.js +161 -1
  405. package/components/tabs/themes/light/tabs.base.css.js.map +1 -1
  406. package/components/tabs/themes/light/tabs.bootstrap.css.js +30 -1
  407. package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -1
  408. package/components/tabs/themes/light/tabs.fluent.css.js +12 -1
  409. package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -1
  410. package/components/tabs/themes/light/tabs.indigo.css.js +18 -1
  411. package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -1
  412. package/components/toast/themes/toast.base.css.js +35 -1
  413. package/components/toast/themes/toast.base.css.js.map +1 -1
  414. package/components/toast/themes/toast.bootstrap.css.js +10 -1
  415. package/components/toast/themes/toast.bootstrap.css.js.map +1 -1
  416. package/components/toast/themes/toast.fluent.css.js +7 -1
  417. package/components/toast/themes/toast.fluent.css.js.map +1 -1
  418. package/components/toast/themes/toast.indigo.css.js +7 -1
  419. package/components/toast/themes/toast.indigo.css.js.map +1 -1
  420. package/components/toast/toast.d.ts +1 -0
  421. package/components/toast/toast.js +9 -0
  422. package/components/toast/toast.js.map +1 -1
  423. package/components/toggle/toggle.controller.d.ts +7 -2
  424. package/components/toggle/toggle.controller.js +21 -20
  425. package/components/toggle/toggle.controller.js.map +1 -1
  426. package/components/tree/themes/dark/tree-item.bootstrap.css.js +1 -1
  427. package/components/tree/themes/dark/tree-item.bootstrap.css.js.map +1 -1
  428. package/components/tree/themes/dark/tree-item.fluent.css.js +1 -1
  429. package/components/tree/themes/dark/tree-item.fluent.css.js.map +1 -1
  430. package/components/tree/themes/dark/tree-item.indigo.css.js +1 -1
  431. package/components/tree/themes/dark/tree-item.indigo.css.js.map +1 -1
  432. package/components/tree/themes/light/tree-item.base.css.js +191 -1
  433. package/components/tree/themes/light/tree-item.base.css.js.map +1 -1
  434. package/components/tree/themes/light/tree-item.bootstrap.css.js +27 -1
  435. package/components/tree/themes/light/tree-item.bootstrap.css.js.map +1 -1
  436. package/components/tree/themes/light/tree-item.fluent.css.js +27 -1
  437. package/components/tree/themes/light/tree-item.fluent.css.js.map +1 -1
  438. package/components/tree/themes/light/tree-item.indigo.css.js +30 -1
  439. package/components/tree/themes/light/tree-item.indigo.css.js.map +1 -1
  440. package/components/tree/themes/light/tree.base.css.js +32 -1
  441. package/components/tree/themes/light/tree.base.css.js.map +1 -1
  442. package/custom-elements.json +484 -14
  443. package/index.d.ts +4 -0
  444. package/index.js +4 -0
  445. package/index.js.map +1 -1
  446. package/package.json +3 -3
  447. package/themes/dark/bootstrap.css +691 -1
  448. package/themes/dark/fluent.css +736 -1
  449. package/themes/dark/indigo.css +487 -1
  450. package/themes/dark/material.css +661 -1
  451. package/themes/light/bootstrap.css +645 -1
  452. package/themes/light/fluent.css +636 -1
  453. package/themes/light/indigo.css +412 -1
  454. package/themes/light/material.css +636 -1
  455. package/vscode-html-custom-data.json +243 -13
@@ -1 +1 @@
1
- {"version":3,"file":"rating.bootstrap.css.js","sourceRoot":"","sources":["../../../src/components/rating/rating.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,u6BAAu6B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part=base]{gap:.4375rem}[part~=label]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}[part~=value-label]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}`;\n"]}
1
+ {"version":3,"file":"rating.bootstrap.css.js","sourceRoot":"","sources":["../../../src/components/rating/rating.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */\n[part=base] {\n gap: 0.4375rem;\n}\n\n[part~=label] {\n font-family: var(--ig-body-1-font-family);\n font-size: var(--ig-body-1-font-size);\n font-weight: var(--ig-body-1-font-weight);\n font-style: var(--ig-body-1-font-style);\n line-height: var(--ig-body-1-line-height);\n letter-spacing: var(--ig-body-1-letter-spacing);\n text-transform: var(--ig-body-1-text-transform);\n margin-top: var(--ig-body-1-margin-top);\n margin-bottom: var(--ig-body-1-margin-bottom);\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}\n\n[part~=value-label] {\n font-family: var(--ig-body-2-font-family);\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}`;\n"]}
@@ -32,26 +32,35 @@ declare const IgcRatingComponent_base: Constructor<import("../common/mixins/siza
32
32
  export default class IgcRatingComponent extends IgcRatingComponent_base {
33
33
  static readonly tagName = "igc-rating";
34
34
  static styles: import("lit").CSSResult[];
35
+ protected ratingSymbols: Array<IgcRatingSymbolComponent>;
35
36
  protected container: HTMLElement;
36
37
  protected valueLabel: Array<Node>;
37
- protected ratingSymbols: Array<IgcRatingSymbolComponent>;
38
38
  protected hoverValue: number;
39
39
  protected hoverState: boolean;
40
40
  protected get isInteractive(): boolean;
41
41
  protected get hasProjectedSymbols(): boolean;
42
- protected get isLTR(): boolean;
43
- protected get valueText(): string | number;
44
- /** The maximum value for the rating */
42
+ protected get valueText(): string;
43
+ /**
44
+ * The maximum value for the rating.
45
+ *
46
+ * If there are projected symbols, the maximum value will be resolved
47
+ * based on the number of symbols.
48
+ */
45
49
  max: number;
46
- /** The minimum value change allowed. */
50
+ /**
51
+ * The minimum value change allowed.
52
+ *
53
+ * Valid values are in the interval between 0 and 1 inclusive.
54
+ */
47
55
  step: number;
48
56
  /** The name attribute of the control */
49
57
  name: string;
50
58
  /** The label of the control. */
51
59
  label: string;
52
60
  /**
53
- * A format string which sets aria-valuetext. All instances of '{0}' will be replaced
54
- * with the current value of the control.
61
+ * A format string which sets aria-valuetext. Instances of '{0}' will be replaced
62
+ * with the current value of the control and instances of '{1}' with the maximum value for the control.
63
+ *
55
64
  * Important for screen-readers and useful for localization.
56
65
  */
57
66
  valueFormat: string;
@@ -75,11 +84,14 @@ export default class IgcRatingComponent extends IgcRatingComponent_base {
75
84
  protected handleMouseEnter(): void;
76
85
  protected handleMouseLeave(): void;
77
86
  protected handleKeyDown({ key }: KeyboardEvent): void;
78
- protected handleSlotChange(): void;
87
+ protected handleSlotChange(event: Event): void;
79
88
  protected calcNewValue(x: number): number;
80
89
  protected getPrecision(num: number): number;
81
90
  protected round(value: number): number;
82
- protected clipSymbol(index: number, direction: 'forward' | 'backward'): string;
91
+ protected clipSymbol(index: number, isLTR?: boolean): {
92
+ backward: string;
93
+ forward: string;
94
+ };
83
95
  /**
84
96
  * Increments the value of the control by `n` steps multiplied by the
85
97
  * step factor.
@@ -1,3 +1,44 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `[part=base],:host{gap:.375rem}[part~=label]{font-family:var(--igc-subtitle-2-font-family);font-weight:var(--igc-subtitle-2-font-weight);font-size:var(--igc-subtitle-2-font-size);font-style:var(--igc-subtitle-2-font-style);letter-spacing:var(--igc-subtitle-2-letter-spacing);text-transform:var(--igc-subtitle-2-text-transform);line-height:var(--igc-subtitle-2-line-height);margin-top:var(--igc-subtitle-2-margin-top);margin-bottom:var(--igc-subtitle-2-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}[part~=value-label]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}:host([disabled]) [part~=symbols-wrapper]{color:hsla(var(--igc-gray-200), var(--igc-gray-a))}:host([disabled]) [part~=value-label],:host([disabled]) [part~=label]{color:hsla(var(--igc-gray-400), var(--igc-gray-a))}:host([disabled]) [part="symbols-wrapper selected"]{color:hsla(var(--igc-gray-500), var(--igc-gray-a))}`;
2
+ export const styles = css `/* stylelint-disable max-line-length */
3
+ [part=base],
4
+ :host {
5
+ gap: 0.375rem;
6
+ }
7
+
8
+ [part~=label] {
9
+ font-family: var(--ig-subtitle-2-font-family);
10
+ font-size: var(--ig-subtitle-2-font-size);
11
+ font-weight: var(--ig-subtitle-2-font-weight);
12
+ font-style: var(--ig-subtitle-2-font-style);
13
+ line-height: var(--ig-subtitle-2-line-height);
14
+ letter-spacing: var(--ig-subtitle-2-letter-spacing);
15
+ text-transform: var(--ig-subtitle-2-text-transform);
16
+ margin-top: var(--ig-subtitle-2-margin-top);
17
+ margin-bottom: var(--ig-subtitle-2-margin-bottom);
18
+ color: hsla(var(--ig-gray-900), var(--ig-gray-a));
19
+ }
20
+
21
+ [part~=value-label] {
22
+ font-family: var(--ig-body-2-font-family);
23
+ font-size: var(--ig-body-2-font-size);
24
+ font-weight: var(--ig-body-2-font-weight);
25
+ font-style: var(--ig-body-2-font-style);
26
+ line-height: var(--ig-body-2-line-height);
27
+ letter-spacing: var(--ig-body-2-letter-spacing);
28
+ text-transform: var(--ig-body-2-text-transform);
29
+ margin-top: var(--ig-body-2-margin-top);
30
+ margin-bottom: var(--ig-body-2-margin-bottom);
31
+ color: hsla(var(--ig-gray-900), var(--ig-gray-a));
32
+ }
33
+
34
+ :host([disabled]) [part~=symbols-wrapper] {
35
+ color: hsla(var(--ig-gray-200), var(--ig-gray-a));
36
+ }
37
+ :host([disabled]) [part~=value-label],
38
+ :host([disabled]) [part~=label] {
39
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
40
+ }
41
+ :host([disabled]) [part="symbols-wrapper selected"] {
42
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
43
+ }`;
3
44
  //# sourceMappingURL=rating.fluent.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rating.fluent.css.js","sourceRoot":"","sources":["../../../src/components/rating/rating.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,6wCAA6wC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part=base],:host{gap:.375rem}[part~=label]{font-family:var(--igc-subtitle-2-font-family);font-weight:var(--igc-subtitle-2-font-weight);font-size:var(--igc-subtitle-2-font-size);font-style:var(--igc-subtitle-2-font-style);letter-spacing:var(--igc-subtitle-2-letter-spacing);text-transform:var(--igc-subtitle-2-text-transform);line-height:var(--igc-subtitle-2-line-height);margin-top:var(--igc-subtitle-2-margin-top);margin-bottom:var(--igc-subtitle-2-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}[part~=value-label]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}:host([disabled]) [part~=symbols-wrapper]{color:hsla(var(--igc-gray-200), var(--igc-gray-a))}:host([disabled]) [part~=value-label],:host([disabled]) [part~=label]{color:hsla(var(--igc-gray-400), var(--igc-gray-a))}:host([disabled]) [part=\"symbols-wrapper selected\"]{color:hsla(var(--igc-gray-500), var(--igc-gray-a))}`;\n"]}
1
+ {"version":3,"file":"rating.fluent.css.js","sourceRoot":"","sources":["../../../src/components/rating/rating.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */\n[part=base],\n:host {\n gap: 0.375rem;\n}\n\n[part~=label] {\n font-family: var(--ig-subtitle-2-font-family);\n font-size: var(--ig-subtitle-2-font-size);\n font-weight: var(--ig-subtitle-2-font-weight);\n font-style: var(--ig-subtitle-2-font-style);\n line-height: var(--ig-subtitle-2-line-height);\n letter-spacing: var(--ig-subtitle-2-letter-spacing);\n text-transform: var(--ig-subtitle-2-text-transform);\n margin-top: var(--ig-subtitle-2-margin-top);\n margin-bottom: var(--ig-subtitle-2-margin-bottom);\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}\n\n[part~=value-label] {\n font-family: var(--ig-body-2-font-family);\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}\n\n:host([disabled]) [part~=symbols-wrapper] {\n color: hsla(var(--ig-gray-200), var(--ig-gray-a));\n}\n:host([disabled]) [part~=value-label],\n:host([disabled]) [part~=label] {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) [part=\"symbols-wrapper selected\"] {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}`;\n"]}
@@ -1,3 +1,36 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{gap:.3125rem}[part=base]{gap:.5rem}[part~=label]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}[part~=value-label]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}`;
2
+ export const styles = css `/* stylelint-disable max-line-length */
3
+ :host {
4
+ gap: 0.3125rem;
5
+ }
6
+
7
+ [part=base] {
8
+ gap: 0.5rem;
9
+ }
10
+
11
+ [part~=label] {
12
+ font-family: var(--ig-body-1-font-family);
13
+ font-size: var(--ig-body-1-font-size);
14
+ font-weight: var(--ig-body-1-font-weight);
15
+ font-style: var(--ig-body-1-font-style);
16
+ line-height: var(--ig-body-1-line-height);
17
+ letter-spacing: var(--ig-body-1-letter-spacing);
18
+ text-transform: var(--ig-body-1-text-transform);
19
+ margin-top: var(--ig-body-1-margin-top);
20
+ margin-bottom: var(--ig-body-1-margin-bottom);
21
+ color: hsla(var(--ig-gray-900), var(--ig-gray-a));
22
+ }
23
+
24
+ [part~=value-label] {
25
+ font-family: var(--ig-body-1-font-family);
26
+ font-size: var(--ig-body-1-font-size);
27
+ font-weight: var(--ig-body-1-font-weight);
28
+ font-style: var(--ig-body-1-font-style);
29
+ line-height: var(--ig-body-1-line-height);
30
+ letter-spacing: var(--ig-body-1-letter-spacing);
31
+ text-transform: var(--ig-body-1-text-transform);
32
+ margin-top: var(--ig-body-1-margin-top);
33
+ margin-bottom: var(--ig-body-1-margin-bottom);
34
+ color: hsla(var(--ig-gray-900), var(--ig-gray-a));
35
+ }`;
3
36
  //# sourceMappingURL=rating.indigo.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rating.indigo.css.js","sourceRoot":"","sources":["../../../src/components/rating/rating.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,u7BAAu7B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{gap:.3125rem}[part=base]{gap:.5rem}[part~=label]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}[part~=value-label]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom);color:hsla(var(--igc-gray-900), var(--igc-gray-a))}`;\n"]}
1
+ {"version":3,"file":"rating.indigo.css.js","sourceRoot":"","sources":["../../../src/components/rating/rating.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */\n:host {\n gap: 0.3125rem;\n}\n\n[part=base] {\n gap: 0.5rem;\n}\n\n[part~=label] {\n font-family: var(--ig-body-1-font-family);\n font-size: var(--ig-body-1-font-size);\n font-weight: var(--ig-body-1-font-weight);\n font-style: var(--ig-body-1-font-style);\n line-height: var(--ig-body-1-line-height);\n letter-spacing: var(--ig-body-1-letter-spacing);\n text-transform: var(--ig-body-1-text-transform);\n margin-top: var(--ig-body-1-margin-top);\n margin-bottom: var(--ig-body-1-margin-bottom);\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}\n\n[part~=value-label] {\n font-family: var(--ig-body-1-font-family);\n font-size: var(--ig-body-1-font-size);\n font-weight: var(--ig-body-1-font-weight);\n font-style: var(--ig-body-1-font-style);\n line-height: var(--ig-body-1-line-height);\n letter-spacing: var(--ig-body-1-letter-spacing);\n text-transform: var(--ig-body-1-text-transform);\n margin-top: var(--ig-body-1-margin-top);\n margin-bottom: var(--ig-body-1-margin-bottom);\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}`;\n"]}
@@ -5,14 +5,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { html, LitElement, nothing } from 'lit';
8
- import { property, query, queryAssignedElements, queryAssignedNodes, state, } from 'lit/decorators.js';
8
+ import { property, query, queryAssignedNodes, state } from 'lit/decorators.js';
9
9
  import { ifDefined } from 'lit/directives/if-defined.js';
10
10
  import { styleMap } from 'lit/directives/style-map.js';
11
+ import { guard } from 'lit/directives/guard.js';
11
12
  import { themes } from '../../theming/theming-decorator.js';
12
13
  import { watch } from '../common/decorators/watch.js';
13
14
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
14
15
  import { SizableMixin } from '../common/mixins/sizable.js';
15
- import { clamp } from '../common/util.js';
16
+ import { clamp, isLTR } from '../common/util.js';
16
17
  import { styles } from './rating.base.css.js';
17
18
  import { styles as bootstrap } from './rating.bootstrap.css.js';
18
19
  import { styles as fluent } from './rating.fluent.css.js';
@@ -24,6 +25,7 @@ defineComponents(IgcRatingSymbolComponent, IgcIconComponent);
24
25
  let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmitterMixin(LitElement)) {
25
26
  constructor() {
26
27
  super();
28
+ this.ratingSymbols = [];
27
29
  this.hoverValue = -1;
28
30
  this.hoverState = false;
29
31
  this.max = 5;
@@ -41,13 +43,13 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
41
43
  get hasProjectedSymbols() {
42
44
  return this.ratingSymbols.length > 0;
43
45
  }
44
- get isLTR() {
45
- return (window.getComputedStyle(this).getPropertyValue('direction') === 'ltr');
46
- }
47
46
  get valueText() {
47
+ const value = this.round(this.value);
48
48
  return this.valueFormat
49
- ? this.valueFormat.replace(/\{0\}/gm, `${this.value}`)
50
- : this.value;
49
+ ? this.valueFormat
50
+ .replace(/\{0\}/gm, `${value}`)
51
+ .replace(/\{1\}/gm, `${this.max}`)
52
+ : `${value} of ${this.max}`;
51
53
  }
52
54
  handleMaxChange() {
53
55
  this.hasProjectedSymbols
@@ -102,14 +104,15 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
102
104
  return;
103
105
  }
104
106
  let result = this.value;
107
+ const ltr = isLTR(this);
105
108
  switch (key) {
106
109
  case 'ArrowUp':
107
110
  case 'ArrowRight':
108
- result += this.isLTR ? this.step : -this.step;
111
+ result += ltr ? this.step : -this.step;
109
112
  break;
110
113
  case 'ArrowDown':
111
114
  case 'ArrowLeft':
112
- result -= this.isLTR ? this.step : -this.step;
115
+ result -= ltr ? this.step : -this.step;
113
116
  break;
114
117
  case 'Home':
115
118
  result = this.step;
@@ -125,7 +128,11 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
125
128
  this.emitEvent('igcChange', { detail: this.value });
126
129
  }
127
130
  }
128
- handleSlotChange() {
131
+ handleSlotChange(event) {
132
+ const slot = event.target;
133
+ this.ratingSymbols = slot
134
+ .assignedElements()
135
+ .filter((el) => el instanceof IgcRatingSymbolComponent);
129
136
  if (this.hasProjectedSymbols) {
130
137
  this.max = this.ratingSymbols.length;
131
138
  }
@@ -133,7 +140,7 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
133
140
  }
134
141
  calcNewValue(x) {
135
142
  const { width, left, right } = this.container.getBoundingClientRect();
136
- const percent = this.isLTR ? (x - left) / width : (right - x) / width;
143
+ const percent = isLTR(this) ? (x - left) / width : (right - x) / width;
137
144
  const value = this.round(this.max * percent + this.step / 2);
138
145
  return clamp(value, this.step, this.max);
139
146
  }
@@ -145,21 +152,18 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
145
152
  value = Math.round(value / this.step) * this.step;
146
153
  return Number(value.toFixed(this.getPrecision(this.step)));
147
154
  }
148
- clipSymbol(index, direction) {
155
+ clipSymbol(index, isLTR = true) {
149
156
  const value = this.hoverState ? this.hoverValue : this.value;
150
157
  const progress = index + 1 - value;
151
158
  const exclusive = progress === 0 || this.value === index + 1 ? 0 : 1;
152
159
  const selection = this.single ? exclusive : progress;
153
160
  const activate = (p) => clamp(p * 100, 0, 100);
154
- const forward = `inset(0 ${activate(this.isLTR ? selection : 1 - selection)}% 0 0)`;
155
- const backward = `inset(0 0 0 ${activate(this.isLTR ? 1 - selection : selection)}%)`;
156
- switch (direction) {
157
- case 'backward':
158
- return this.isLTR ? backward : forward;
159
- case 'forward':
160
- default:
161
- return this.isLTR ? forward : backward;
162
- }
161
+ const forward = `inset(0 ${activate(isLTR ? selection : 1 - selection)}% 0 0)`;
162
+ const backward = `inset(0 0 0 ${activate(isLTR ? 1 - selection : selection)}%)`;
163
+ return {
164
+ backward: isLTR ? backward : forward,
165
+ forward: isLTR ? forward : backward,
166
+ };
163
167
  }
164
168
  stepUp(n = 1) {
165
169
  this.value += this.round(n * this.step);
@@ -168,17 +172,19 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
168
172
  this.value -= this.round(n * this.step);
169
173
  }
170
174
  *renderSymbols() {
175
+ const ltr = isLTR(this);
171
176
  for (let i = 0; i < this.max; i++) {
177
+ const { forward, backward } = this.clipSymbol(i, ltr);
172
178
  yield html `<igc-rating-symbol exportparts="symbol, full, empty">
173
179
  <igc-icon
174
180
  collection="internal"
175
181
  name="star"
176
- style=${styleMap({ clipPath: this.clipSymbol(i, 'forward') })}
182
+ style=${styleMap({ clipPath: forward })}
177
183
  ></igc-icon>
178
184
  <igc-icon
179
185
  collection="internal"
180
186
  name="star_border"
181
- style=${styleMap({ clipPath: this.clipSymbol(i, 'backward') })}
187
+ style=${styleMap({ clipPath: backward })}
182
188
  slot="empty"
183
189
  ></igc-icon>
184
190
  </igc-rating-symbol>`;
@@ -186,29 +192,40 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
186
192
  }
187
193
  clipProjected() {
188
194
  if (this.hasProjectedSymbols) {
195
+ const ltr = isLTR(this);
189
196
  this.ratingSymbols.forEach((symbol, i) => {
190
197
  var _a, _b;
191
198
  const full = (_a = symbol.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[part="symbol full"]');
192
199
  const empty = (_b = symbol.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[part="symbol empty"]');
200
+ const { forward, backward } = this.clipSymbol(i, ltr);
193
201
  if (full) {
194
- full.style.clipPath = this.clipSymbol(i, 'forward');
202
+ full.style.clipPath = forward;
195
203
  }
196
204
  if (empty) {
197
- empty.style.clipPath = this.clipSymbol(i, 'backward');
205
+ empty.style.clipPath = backward;
198
206
  }
199
207
  });
200
208
  }
201
209
  }
202
210
  render() {
203
- var _a;
204
- this.clipProjected();
211
+ const props = [
212
+ this.value,
213
+ this.hoverValue,
214
+ this.max,
215
+ this.step,
216
+ this.single,
217
+ this.hoverState,
218
+ this.ratingSymbols,
219
+ ];
205
220
  return html `
206
- <label part="label" ?hidden=${!this.label}>${this.label}</label>
221
+ <label part="label" id="rating-label" ?hidden=${!this.label}
222
+ >${this.label}</label
223
+ >
207
224
  <div
208
225
  part="base"
209
226
  role="slider"
210
227
  tabindex=${ifDefined(this.disabled ? undefined : 0)}
211
- aria-label=${(_a = this.label) !== null && _a !== void 0 ? _a : nothing}
228
+ aria-labelledby="rating-label"
212
229
  aria-valuemin="0"
213
230
  aria-valuenow=${this.value}
214
231
  aria-valuemax=${this.max}
@@ -223,7 +240,10 @@ let IgcRatingComponent = class IgcRatingComponent extends SizableMixin(EventEmit
223
240
  @mousemove=${this.hoverPreview ? this.handleMouseMove : nothing}
224
241
  >
225
242
  <slot @slotchange=${this.handleSlotChange}>
226
- ${this.renderSymbols()}
243
+ ${guard(props, () => {
244
+ this.clipProjected();
245
+ return this.renderSymbols();
246
+ })}
227
247
  </slot>
228
248
  </div>
229
249
  <label part="value-label" ?hidden=${this.valueLabel.length === 0}>
@@ -241,9 +261,6 @@ __decorate([
241
261
  __decorate([
242
262
  queryAssignedNodes({ slot: 'value-label', flatten: true })
243
263
  ], IgcRatingComponent.prototype, "valueLabel", void 0);
244
- __decorate([
245
- queryAssignedElements({ selector: 'igc-rating-symbol' })
246
- ], IgcRatingComponent.prototype, "ratingSymbols", void 0);
247
264
  __decorate([
248
265
  state()
249
266
  ], IgcRatingComponent.prototype, "hoverValue", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"rating.js","sourceRoot":"","sources":["../../../src/components/rating/rating.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n queryAssignedNodes,\n state,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { clamp } from '../common/util.js';\nimport { styles } from './rating.base.css.js';\nimport { styles as bootstrap } from './rating.bootstrap.css.js';\nimport { styles as fluent } from './rating.fluent.css.js';\nimport { styles as indigo } from './rating.indigo.css.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcRatingSymbolComponent from './rating-symbol.js';\nimport IgcIconComponent from '../icon/icon.js';\n\ndefineComponents(IgcRatingSymbolComponent, IgcIconComponent);\n\nexport interface IgcRatingEventMap {\n igcChange: CustomEvent<number>;\n igcHover: CustomEvent<number>;\n}\n\n/**\n * Rating provides insight regarding others' opinions and experiences,\n * and can allow the user to submit a rating of their own\n *\n * @element igc-rating\n *\n * @fires igcChange - Emitted when the value of the control changes.\n * @fires igcHover - Emitted when hover is enabled and the user mouses over a symbol of the rating.\n *\n * @csspart base - The main wrapper which holds all of the rating elements.\n * @csspart label - The label part.\n * @csspart value-label - The value label part.\n * @csspart symbols - A wrapper for all rating symbols.\n * @csspart symbol - The part of the encapsulated default symbol.\n * @csspart full - The part of the encapsulated full symbols.\n * @csspart empty - The part of the encapsulated empty symbols.\n *\n * @cssproperty --symbol-size - The size of the symbols.\n * @cssproperty --symbol-full-color - The color of the filled symbol.\n * @cssproperty --symbol-empty-color - The color of the empty symbol.\n * @cssproperty --symbol-full-filter - The filter(s) used for the filled symbol.\n * @cssproperty --symbol-empty-filter - The filter(s) used for the empty symbol.\n */\n@themes({ fluent, bootstrap, indigo })\nexport default class IgcRatingComponent extends SizableMixin(\n EventEmitterMixin<IgcRatingEventMap, Constructor<LitElement>>(LitElement)\n) {\n public static readonly tagName = 'igc-rating';\n\n public static styles = [styles];\n\n @query('[part=\"symbols\"]', true)\n protected container!: HTMLElement;\n\n @queryAssignedNodes({ slot: 'value-label', flatten: true })\n protected valueLabel!: Array<Node>;\n\n @queryAssignedElements({ selector: 'igc-rating-symbol' })\n protected ratingSymbols!: Array<IgcRatingSymbolComponent>;\n\n @state()\n protected hoverValue = -1;\n\n @state()\n protected hoverState = false;\n\n protected get isInteractive() {\n return !(this.readonly || this.disabled);\n }\n\n protected get hasProjectedSymbols() {\n return this.ratingSymbols.length > 0;\n }\n\n protected get isLTR() {\n return (\n window.getComputedStyle(this).getPropertyValue('direction') === 'ltr'\n );\n }\n\n protected get valueText() {\n return this.valueFormat\n ? this.valueFormat.replace(/\\{0\\}/gm, `${this.value}`)\n : this.value;\n }\n\n /** The maximum value for the rating */\n @property({ type: Number })\n public max = 5;\n\n /** The minimum value change allowed. */\n @property({ type: Number })\n public step = 1;\n\n /** The name attribute of the control */\n @property()\n public name!: string;\n\n /** The label of the control. */\n @property()\n public label!: string;\n\n /**\n * A format string which sets aria-valuetext. All instances of '{0}' will be replaced\n * with the current value of the control.\n * Important for screen-readers and useful for localization.\n */\n @property({ attribute: 'value-format' })\n public valueFormat!: string;\n\n /** The current value of the component */\n @property({ type: Number })\n public value = 0;\n\n /** Sets the disabled state of the component */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Sets hover preview behavior for the component */\n @property({ type: Boolean, reflect: true, attribute: 'hover-preview' })\n public hoverPreview = false;\n\n /** Sets the readonly state of the component */\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n /** Toggles single selection visual mode. */\n @property({ type: Boolean })\n public single = false;\n\n @watch('max')\n protected handleMaxChange() {\n this.hasProjectedSymbols\n ? (this.max = this.ratingSymbols.length)\n : (this.max = Math.max(0, this.max));\n if (this.max < this.value) {\n this.value = this.max;\n }\n }\n\n @watch('value')\n protected handleValueChange() {\n this.value = clamp(this.value, 0, this.max);\n }\n\n @watch('step')\n protected handlePrecisionChange() {\n this.step = !this.single ? clamp(this.step, 0.001, 1) : 1;\n }\n\n @watch('single')\n protected handleSelectionChange() {\n if (this.single) {\n this.step = 1;\n this.value = Math.ceil(this.value);\n }\n }\n\n constructor() {\n super();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n protected handleClick({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n this.value === value ? (this.value = 0) : (this.value = value);\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected handleMouseMove({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n\n if (this.hoverValue !== value) {\n // Since mousemove spams a lot, only emit on a value change\n this.hoverValue = value;\n this.emitEvent('igcHover', { detail: this.hoverValue });\n }\n }\n\n protected handleMouseEnter() {\n if (this.isInteractive) {\n this.hoverState = true;\n }\n }\n\n protected handleMouseLeave() {\n if (this.isInteractive) {\n this.hoverState = false;\n }\n }\n\n protected handleKeyDown({ key }: KeyboardEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n let result = this.value;\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowRight':\n result += this.isLTR ? this.step : -this.step;\n break;\n case 'ArrowDown':\n case 'ArrowLeft':\n result -= this.isLTR ? this.step : -this.step;\n break;\n case 'Home':\n result = this.step;\n break;\n case 'End':\n result = this.max;\n break;\n default:\n return;\n }\n\n // Verify new value is in bounds and emit\n this.value = clamp(result, 0, this.max);\n\n if (result === this.value) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected handleSlotChange() {\n if (this.hasProjectedSymbols) {\n this.max = this.ratingSymbols.length;\n }\n this.requestUpdate();\n }\n\n protected calcNewValue(x: number) {\n const { width, left, right } = this.container.getBoundingClientRect();\n const percent = this.isLTR ? (x - left) / width : (right - x) / width;\n const value = this.round(this.max * percent + this.step / 2);\n\n return clamp(value, this.step, this.max);\n }\n\n protected getPrecision(num: number) {\n const [_, decimal] = num.toString().split('.');\n return decimal ? decimal.length : 0;\n }\n\n protected round(value: number) {\n value = Math.round(value / this.step) * this.step;\n return Number(value.toFixed(this.getPrecision(this.step)));\n }\n\n protected clipSymbol(index: number, direction: 'forward' | 'backward') {\n const value = this.hoverState ? this.hoverValue : this.value;\n const progress = index + 1 - value;\n const exclusive = progress === 0 || this.value === index + 1 ? 0 : 1;\n const selection = this.single ? exclusive : progress;\n const activate = (p: number) => clamp(p * 100, 0, 100);\n\n const forward = `inset(0 ${activate(\n this.isLTR ? selection : 1 - selection\n )}% 0 0)`;\n const backward = `inset(0 0 0 ${activate(\n this.isLTR ? 1 - selection : selection\n )}%)`;\n\n switch (direction) {\n case 'backward':\n return this.isLTR ? backward : forward;\n case 'forward':\n default:\n return this.isLTR ? forward : backward;\n }\n }\n\n /**\n * Increments the value of the control by `n` steps multiplied by the\n * step factor.\n */\n public stepUp(n = 1) {\n this.value += this.round(n * this.step);\n }\n\n /**\n * Decrements the value of the control by `n` steps multiplied by\n * the step factor.\n */\n public stepDown(n = 1) {\n this.value -= this.round(n * this.step);\n }\n\n protected *renderSymbols() {\n for (let i = 0; i < this.max; i++) {\n yield html`<igc-rating-symbol exportparts=\"symbol, full, empty\">\n <igc-icon\n collection=\"internal\"\n name=\"star\"\n style=${styleMap({ clipPath: this.clipSymbol(i, 'forward') })}\n ></igc-icon>\n <igc-icon\n collection=\"internal\"\n name=\"star_border\"\n style=${styleMap({ clipPath: this.clipSymbol(i, 'backward') })}\n slot=\"empty\"\n ></igc-icon>\n </igc-rating-symbol>`;\n }\n }\n\n protected clipProjected() {\n if (this.hasProjectedSymbols) {\n this.ratingSymbols.forEach((symbol: IgcRatingSymbolComponent, i) => {\n const full = symbol.shadowRoot?.querySelector(\n '[part=\"symbol full\"]'\n ) as HTMLElement;\n\n const empty = symbol.shadowRoot?.querySelector(\n '[part=\"symbol empty\"]'\n ) as HTMLElement;\n\n if (full) {\n full.style.clipPath = this.clipSymbol(i, 'forward');\n }\n\n if (empty) {\n empty.style.clipPath = this.clipSymbol(i, 'backward');\n }\n });\n }\n }\n\n protected override render() {\n this.clipProjected();\n\n return html`\n <label part=\"label\" ?hidden=${!this.label}>${this.label}</label>\n <div\n part=\"base\"\n role=\"slider\"\n tabindex=${ifDefined(this.disabled ? undefined : 0)}\n aria-label=${this.label ?? nothing}\n aria-valuemin=\"0\"\n aria-valuenow=${this.value}\n aria-valuemax=${this.max}\n aria-valuetext=${this.valueText}\n >\n <div\n aria-hidden=\"true\"\n part=\"symbols\"\n @click=${this.handleClick}\n @mouseenter=${this.hoverPreview ? this.handleMouseEnter : nothing}\n @mouseleave=${this.hoverPreview ? this.handleMouseLeave : nothing}\n @mousemove=${this.hoverPreview ? this.handleMouseMove : nothing}\n >\n <slot @slotchange=${this.handleSlotChange}>\n ${this.renderSymbols()}\n </slot>\n </div>\n <label part=\"value-label\" ?hidden=${this.valueLabel.length === 0}>\n <slot name=\"value-label\"></slot>\n </label>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-rating': IgcRatingComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"rating.js","sourceRoot":"","sources":["../../../src/components/rating/rating.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { guard } from 'lit/directives/guard.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { clamp, isLTR } from '../common/util.js';\nimport { styles } from './rating.base.css.js';\nimport { styles as bootstrap } from './rating.bootstrap.css.js';\nimport { styles as fluent } from './rating.fluent.css.js';\nimport { styles as indigo } from './rating.indigo.css.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcRatingSymbolComponent from './rating-symbol.js';\nimport IgcIconComponent from '../icon/icon.js';\n\ndefineComponents(IgcRatingSymbolComponent, IgcIconComponent);\n\nexport interface IgcRatingEventMap {\n igcChange: CustomEvent<number>;\n igcHover: CustomEvent<number>;\n}\n\n/**\n * Rating provides insight regarding others' opinions and experiences,\n * and can allow the user to submit a rating of their own\n *\n * @element igc-rating\n *\n * @fires igcChange - Emitted when the value of the control changes.\n * @fires igcHover - Emitted when hover is enabled and the user mouses over a symbol of the rating.\n *\n * @csspart base - The main wrapper which holds all of the rating elements.\n * @csspart label - The label part.\n * @csspart value-label - The value label part.\n * @csspart symbols - A wrapper for all rating symbols.\n * @csspart symbol - The part of the encapsulated default symbol.\n * @csspart full - The part of the encapsulated full symbols.\n * @csspart empty - The part of the encapsulated empty symbols.\n *\n * @cssproperty --symbol-size - The size of the symbols.\n * @cssproperty --symbol-full-color - The color of the filled symbol.\n * @cssproperty --symbol-empty-color - The color of the empty symbol.\n * @cssproperty --symbol-full-filter - The filter(s) used for the filled symbol.\n * @cssproperty --symbol-empty-filter - The filter(s) used for the empty symbol.\n */\n@themes({ fluent, bootstrap, indigo })\nexport default class IgcRatingComponent extends SizableMixin(\n EventEmitterMixin<IgcRatingEventMap, Constructor<LitElement>>(LitElement)\n) {\n public static readonly tagName = 'igc-rating';\n\n public static styles = [styles];\n\n protected ratingSymbols: Array<IgcRatingSymbolComponent> = [];\n\n @query('[part=\"symbols\"]', true)\n protected container!: HTMLElement;\n\n @queryAssignedNodes({ slot: 'value-label', flatten: true })\n protected valueLabel!: Array<Node>;\n\n @state()\n protected hoverValue = -1;\n\n @state()\n protected hoverState = false;\n\n protected get isInteractive() {\n return !(this.readonly || this.disabled);\n }\n\n protected get hasProjectedSymbols() {\n return this.ratingSymbols.length > 0;\n }\n\n protected get valueText() {\n // Skip IEEE 754 representation for screen readers\n const value = this.round(this.value);\n\n return this.valueFormat\n ? this.valueFormat\n .replace(/\\{0\\}/gm, `${value}`)\n .replace(/\\{1\\}/gm, `${this.max}`)\n : `${value} of ${this.max}`;\n }\n\n /**\n * The maximum value for the rating.\n *\n * If there are projected symbols, the maximum value will be resolved\n * based on the number of symbols.\n */\n @property({ type: Number })\n public max = 5;\n\n /**\n * The minimum value change allowed.\n *\n * Valid values are in the interval between 0 and 1 inclusive.\n */\n @property({ type: Number })\n public step = 1;\n\n /** The name attribute of the control */\n @property()\n public name!: string;\n\n /** The label of the control. */\n @property()\n public label!: string;\n\n /**\n * A format string which sets aria-valuetext. Instances of '{0}' will be replaced\n * with the current value of the control and instances of '{1}' with the maximum value for the control.\n *\n * Important for screen-readers and useful for localization.\n */\n @property({ attribute: 'value-format' })\n public valueFormat!: string;\n\n /** The current value of the component */\n @property({ type: Number })\n public value = 0;\n\n /** Sets the disabled state of the component */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Sets hover preview behavior for the component */\n @property({ type: Boolean, reflect: true, attribute: 'hover-preview' })\n public hoverPreview = false;\n\n /** Sets the readonly state of the component */\n @property({ type: Boolean, reflect: true })\n public readonly = false;\n\n /** Toggles single selection visual mode. */\n @property({ type: Boolean })\n public single = false;\n\n @watch('max')\n protected handleMaxChange() {\n this.hasProjectedSymbols\n ? (this.max = this.ratingSymbols.length)\n : (this.max = Math.max(0, this.max));\n if (this.max < this.value) {\n this.value = this.max;\n }\n }\n\n @watch('value')\n protected handleValueChange() {\n this.value = clamp(this.value, 0, this.max);\n }\n\n @watch('step')\n protected handlePrecisionChange() {\n this.step = !this.single ? clamp(this.step, 0.001, 1) : 1;\n }\n\n @watch('single')\n protected handleSelectionChange() {\n if (this.single) {\n this.step = 1;\n this.value = Math.ceil(this.value);\n }\n }\n\n constructor() {\n super();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n protected handleClick({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n this.value === value ? (this.value = 0) : (this.value = value);\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected handleMouseMove({ clientX }: MouseEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n const value = this.calcNewValue(clientX);\n\n if (this.hoverValue !== value) {\n // Since mousemove spams a lot, only emit on a value change\n this.hoverValue = value;\n this.emitEvent('igcHover', { detail: this.hoverValue });\n }\n }\n\n protected handleMouseEnter() {\n if (this.isInteractive) {\n this.hoverState = true;\n }\n }\n\n protected handleMouseLeave() {\n if (this.isInteractive) {\n this.hoverState = false;\n }\n }\n\n protected handleKeyDown({ key }: KeyboardEvent) {\n if (!this.isInteractive) {\n return;\n }\n\n let result = this.value;\n const ltr = isLTR(this);\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowRight':\n result += ltr ? this.step : -this.step;\n break;\n case 'ArrowDown':\n case 'ArrowLeft':\n result -= ltr ? this.step : -this.step;\n break;\n case 'Home':\n result = this.step;\n break;\n case 'End':\n result = this.max;\n break;\n default:\n return;\n }\n\n // Verify new value is in bounds and emit\n this.value = clamp(result, 0, this.max);\n\n if (result === this.value) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n this.ratingSymbols = slot\n .assignedElements()\n .filter(\n (el) => el instanceof IgcRatingSymbolComponent\n ) as IgcRatingSymbolComponent[];\n\n if (this.hasProjectedSymbols) {\n this.max = this.ratingSymbols.length;\n }\n\n this.requestUpdate();\n }\n\n protected calcNewValue(x: number) {\n const { width, left, right } = this.container.getBoundingClientRect();\n const percent = isLTR(this) ? (x - left) / width : (right - x) / width;\n const value = this.round(this.max * percent + this.step / 2);\n\n return clamp(value, this.step, this.max);\n }\n\n protected getPrecision(num: number) {\n const [_, decimal] = num.toString().split('.');\n return decimal ? decimal.length : 0;\n }\n\n protected round(value: number) {\n value = Math.round(value / this.step) * this.step;\n return Number(value.toFixed(this.getPrecision(this.step)));\n }\n\n protected clipSymbol(index: number, isLTR = true) {\n const value = this.hoverState ? this.hoverValue : this.value;\n const progress = index + 1 - value;\n const exclusive = progress === 0 || this.value === index + 1 ? 0 : 1;\n const selection = this.single ? exclusive : progress;\n const activate = (p: number) => clamp(p * 100, 0, 100);\n\n const forward = `inset(0 ${activate(\n isLTR ? selection : 1 - selection\n )}% 0 0)`;\n const backward = `inset(0 0 0 ${activate(\n isLTR ? 1 - selection : selection\n )}%)`;\n\n return {\n backward: isLTR ? backward : forward,\n forward: isLTR ? forward : backward,\n };\n }\n\n /**\n * Increments the value of the control by `n` steps multiplied by the\n * step factor.\n */\n public stepUp(n = 1) {\n this.value += this.round(n * this.step);\n }\n\n /**\n * Decrements the value of the control by `n` steps multiplied by\n * the step factor.\n */\n public stepDown(n = 1) {\n this.value -= this.round(n * this.step);\n }\n\n protected *renderSymbols() {\n const ltr = isLTR(this);\n for (let i = 0; i < this.max; i++) {\n const { forward, backward } = this.clipSymbol(i, ltr);\n yield html`<igc-rating-symbol exportparts=\"symbol, full, empty\">\n <igc-icon\n collection=\"internal\"\n name=\"star\"\n style=${styleMap({ clipPath: forward })}\n ></igc-icon>\n <igc-icon\n collection=\"internal\"\n name=\"star_border\"\n style=${styleMap({ clipPath: backward })}\n slot=\"empty\"\n ></igc-icon>\n </igc-rating-symbol>`;\n }\n }\n\n protected clipProjected() {\n if (this.hasProjectedSymbols) {\n const ltr = isLTR(this);\n this.ratingSymbols.forEach((symbol: IgcRatingSymbolComponent, i) => {\n const full = symbol.shadowRoot?.querySelector(\n '[part=\"symbol full\"]'\n ) as HTMLElement;\n\n const empty = symbol.shadowRoot?.querySelector(\n '[part=\"symbol empty\"]'\n ) as HTMLElement;\n const { forward, backward } = this.clipSymbol(i, ltr);\n\n if (full) {\n full.style.clipPath = forward;\n }\n\n if (empty) {\n empty.style.clipPath = backward;\n }\n });\n }\n }\n\n protected override render() {\n const props = [\n this.value,\n this.hoverValue,\n this.max,\n this.step,\n this.single,\n this.hoverState,\n this.ratingSymbols,\n ];\n\n return html`\n <label part=\"label\" id=\"rating-label\" ?hidden=${!this.label}\n >${this.label}</label\n >\n <div\n part=\"base\"\n role=\"slider\"\n tabindex=${ifDefined(this.disabled ? undefined : 0)}\n aria-labelledby=\"rating-label\"\n aria-valuemin=\"0\"\n aria-valuenow=${this.value}\n aria-valuemax=${this.max}\n aria-valuetext=${this.valueText}\n >\n <div\n aria-hidden=\"true\"\n part=\"symbols\"\n @click=${this.handleClick}\n @mouseenter=${this.hoverPreview ? this.handleMouseEnter : nothing}\n @mouseleave=${this.hoverPreview ? this.handleMouseLeave : nothing}\n @mousemove=${this.hoverPreview ? this.handleMouseMove : nothing}\n >\n <slot @slotchange=${this.handleSlotChange}>\n ${guard(props, () => {\n this.clipProjected();\n return this.renderSymbols();\n })}\n </slot>\n </div>\n <label part=\"value-label\" ?hidden=${this.valueLabel.length === 0}>\n <slot name=\"value-label\"></slot>\n </label>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-rating': IgcRatingComponent;\n }\n}\n"]}
@@ -21,7 +21,7 @@ export default class IgcRippleComponent extends LitElement {
21
21
  borderRadius: '50%',
22
22
  top: `${top}px`,
23
23
  left: `${left}px`,
24
- background: 'var(--color, hsl(var(--igc-gray-800)))',
24
+ background: 'var(--color, hsl(var(--ig-gray-800)))',
25
25
  };
26
26
  const frames = [
27
27
  { opacity: 0.5, transform: 'scale(.3)' },
@@ -1 +1 @@
1
- {"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../src/components/ripple/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAQlD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;IAKxD;QACE,KAAK,EAAE,CAAC;QAIF,YAAO,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAc,EAAE,EAAE;;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEnE,MAAM,MAAM,GAAiC;gBAC3C,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,MAAM;gBACrB,eAAe,EAAE,QAAQ;gBACzB,SAAS,EAAE,+BAA+B;gBAC1C,UAAU,EAAE,oBAAoB;gBAChC,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,GAAG,MAAM,IAAI;gBACpB,MAAM,EAAE,GAAG,MAAM,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,GAAG,EAAE,GAAG,GAAG,IAAI;gBACf,IAAI,EAAE,GAAG,IAAI,IAAI;gBACjB,UAAU,EAAE,wCAAwC;aACrD,CAAC;YACF,MAAM,MAAM,GAAe;gBACzB,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE;gBACxC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;aACtC,CAAC;YACF,MAAM,IAAI,GAA6B;gBACrC,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,QAAQ;aACjB,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrC,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;QApCA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAqCO,aAAa,CAAC,CAAS,EAAE,CAAS;QACxC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,aAAa,CAAC;IAC3B,CAAC;;AAtDsB,0BAAO,GAAG,YAAY,CAAC;AAEvB,yBAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './ripple.material.css.js';\n\n/**\n * A ripple can be applied to an element to represent\n * interactive surface.\n *\n * @element igc-ripple\n */\nexport default class IgcRippleComponent extends LitElement {\n public static readonly tagName = 'igc-ripple';\n\n public static override styles = styles;\n\n constructor() {\n super();\n this.addEventListener('mousedown', this.handler);\n }\n\n private handler = ({ clientX, clientY }: MouseEvent) => {\n const element = document.createElement('span');\n const { radius, top, left } = this.getDimensions(clientX, clientY);\n\n const styles: Partial<CSSStyleDeclaration> = {\n position: 'absolute',\n display: 'block',\n pointerEvents: 'none',\n transformOrigin: 'center',\n transform: `translate3d(0, 0, 0) scale(0)`,\n willChange: 'opacity, transform',\n margin: `0 !important`,\n border: 'none !important',\n width: `${radius}px`,\n height: `${radius}px`,\n borderRadius: '50%',\n top: `${top}px`,\n left: `${left}px`,\n background: 'var(--color, hsl(var(--igc-gray-800)))',\n };\n const frames: Keyframe[] = [\n { opacity: 0.5, transform: 'scale(.3)' },\n { opacity: 0, transform: 'scale(2)' },\n ];\n const opts: KeyframeAnimationOptions = {\n duration: 600, // --igc-ripple-duration,\n fill: 'forwards',\n easing: 'linear', // --igc-ripple-easing\n };\n\n Object.assign(element.style, styles);\n this.shadowRoot?.appendChild(element);\n element.animate(frames, opts).finished.then(() => element.remove());\n };\n\n private getDimensions(x: number, y: number) {\n const { width, height, left, top } = this.getBoundingClientRect();\n const radius = Math.max(width, height);\n const _left = Math.round(x - left - radius / 2);\n const _top = Math.round(y - top - radius / 2);\n return { radius, top: _top, left: _left };\n }\n\n protected override render() {\n return html`<div></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-ripple': IgcRippleComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../src/components/ripple/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAQlD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;IAKxD;QACE,KAAK,EAAE,CAAC;QAIF,YAAO,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAc,EAAE,EAAE;;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEnE,MAAM,MAAM,GAAiC;gBAC3C,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,MAAM;gBACrB,eAAe,EAAE,QAAQ;gBACzB,SAAS,EAAE,+BAA+B;gBAC1C,UAAU,EAAE,oBAAoB;gBAChC,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,GAAG,MAAM,IAAI;gBACpB,MAAM,EAAE,GAAG,MAAM,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,GAAG,EAAE,GAAG,GAAG,IAAI;gBACf,IAAI,EAAE,GAAG,IAAI,IAAI;gBACjB,UAAU,EAAE,uCAAuC;aACpD,CAAC;YACF,MAAM,MAAM,GAAe;gBACzB,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE;gBACxC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;aACtC,CAAC;YACF,MAAM,IAAI,GAA6B;gBACrC,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,QAAQ;aACjB,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrC,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;QApCA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAqCO,aAAa,CAAC,CAAS,EAAE,CAAS;QACxC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,aAAa,CAAC;IAC3B,CAAC;;AAtDsB,0BAAO,GAAG,YAAY,CAAC;AAEvB,yBAAM,GAAG,MAAM,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { styles } from './ripple.material.css.js';\n\n/**\n * A ripple can be applied to an element to represent\n * interactive surface.\n *\n * @element igc-ripple\n */\nexport default class IgcRippleComponent extends LitElement {\n public static readonly tagName = 'igc-ripple';\n\n public static override styles = styles;\n\n constructor() {\n super();\n this.addEventListener('mousedown', this.handler);\n }\n\n private handler = ({ clientX, clientY }: MouseEvent) => {\n const element = document.createElement('span');\n const { radius, top, left } = this.getDimensions(clientX, clientY);\n\n const styles: Partial<CSSStyleDeclaration> = {\n position: 'absolute',\n display: 'block',\n pointerEvents: 'none',\n transformOrigin: 'center',\n transform: `translate3d(0, 0, 0) scale(0)`,\n willChange: 'opacity, transform',\n margin: `0 !important`,\n border: 'none !important',\n width: `${radius}px`,\n height: `${radius}px`,\n borderRadius: '50%',\n top: `${top}px`,\n left: `${left}px`,\n background: 'var(--color, hsl(var(--ig-gray-800)))',\n };\n const frames: Keyframe[] = [\n { opacity: 0.5, transform: 'scale(.3)' },\n { opacity: 0, transform: 'scale(2)' },\n ];\n const opts: KeyframeAnimationOptions = {\n duration: 600, // --igc-ripple-duration,\n fill: 'forwards',\n easing: 'linear', // --igc-ripple-easing\n };\n\n Object.assign(element.style, styles);\n this.shadowRoot?.appendChild(element);\n element.animate(frames, opts).finished.then(() => element.remove());\n };\n\n private getDimensions(x: number, y: number) {\n const { width, height, left, top } = this.getBoundingClientRect();\n const radius = Math.max(width, height);\n const _left = Math.round(x - left - radius / 2);\n const _top = Math.round(y - top - radius / 2);\n return { radius, top: _top, left: _left };\n }\n\n protected override render() {\n return html`<div></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-ripple': IgcRippleComponent;\n }\n}\n"]}
@@ -1,3 +1,38 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--scrolbar-size, 0.875rem);scrollbar-color:var(--igc-scrollbar-thumb-color, hsla(var(--igc-gray-400), var(--igc-gray-a))) var(--igc-scrollbar-track-color, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--scrolbar-size, 0.875rem);height:var(--scrolbar-size, 0.875rem);background:var(--igc-scrollbar-track-color, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host ::-webkit-scrollbar-thumb{background:var(--igc-scrollbar-thumb-color, hsla(var(--igc-gray-400), var(--igc-gray-a)))}[hidden]{display:none !important}:host{position:absolute;display:block;width:100%;height:100%;top:0;left:0;contain:content;overflow:hidden}`;
2
+ export const styles = css `:host {
3
+ position: relative;
4
+ -webkit-box-sizing: border-box;
5
+ box-sizing: border-box;
6
+ scrollbar-width: var(--scrolbar-size, 0.875rem);
7
+ scrollbar-color: var(--igc-scrollbar-thumb-color, hsla(var(--ig-gray-400), var(--ig-gray-a))) var(--igc-scrollbar-track-color, hsla(var(--ig-gray-200), var(--ig-gray-a)));
8
+ }
9
+ :host *,
10
+ :host *::before,
11
+ :host *::after {
12
+ -webkit-box-sizing: border-box;
13
+ box-sizing: border-box;
14
+ }
15
+ :host ::-webkit-scrollbar {
16
+ width: var(--scrolbar-size, 0.875rem);
17
+ height: var(--scrolbar-size, 0.875rem);
18
+ background: var(--igc-scrollbar-track-color, hsla(var(--ig-gray-200), var(--ig-gray-a)));
19
+ }
20
+ :host ::-webkit-scrollbar-thumb {
21
+ background: var(--igc-scrollbar-thumb-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));
22
+ }
23
+
24
+ [hidden] {
25
+ display: none !important;
26
+ }
27
+
28
+ :host {
29
+ position: absolute;
30
+ display: block;
31
+ width: 100%;
32
+ height: 100%;
33
+ top: 0;
34
+ left: 0;
35
+ contain: content;
36
+ overflow: hidden;
37
+ }`;
3
38
  //# sourceMappingURL=ripple.material.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ripple.material.css.js","sourceRoot":"","sources":["../../../src/components/ripple/ripple.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,00BAA00B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--scrolbar-size, 0.875rem);scrollbar-color:var(--igc-scrollbar-thumb-color, hsla(var(--igc-gray-400), var(--igc-gray-a))) var(--igc-scrollbar-track-color, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--scrolbar-size, 0.875rem);height:var(--scrolbar-size, 0.875rem);background:var(--igc-scrollbar-track-color, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host ::-webkit-scrollbar-thumb{background:var(--igc-scrollbar-thumb-color, hsla(var(--igc-gray-400), var(--igc-gray-a)))}[hidden]{display:none !important}:host{position:absolute;display:block;width:100%;height:100%;top:0;left:0;contain:content;overflow:hidden}`;\n"]}
1
+ {"version":3,"file":"ripple.material.css.js","sourceRoot":"","sources":["../../../src/components/ripple/ripple.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--scrolbar-size, 0.875rem);\n scrollbar-color: var(--igc-scrollbar-thumb-color, hsla(var(--ig-gray-400), var(--ig-gray-a))) var(--igc-scrollbar-track-color, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--scrolbar-size, 0.875rem);\n height: var(--scrolbar-size, 0.875rem);\n background: var(--igc-scrollbar-track-color, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--igc-scrollbar-thumb-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));\n}\n\n[hidden] {\n display: none !important;\n}\n\n:host {\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n contain: content;\n overflow: hidden;\n}`;\n"]}
@@ -0,0 +1,31 @@
1
+ import IgcDropdownGroupComponent from '../dropdown/dropdown-group.js';
2
+ import IgcSelectItemComponent from './select-item.js';
3
+ /**
4
+ * @element igc-select-group - A container for a group of `igc-select-item` components.
5
+ *
6
+ * @slot label - Contains the group's label.
7
+ * @slot - Intended to contain the items belonging to this group.
8
+ *
9
+ * @csspart label - The native label element.
10
+ */
11
+ export default class IgcSelectGroupComponent extends IgcDropdownGroupComponent {
12
+ /** @private */
13
+ static readonly tagName = "igc-select-group";
14
+ private observer;
15
+ private controlledItems;
16
+ /** All child `igc-select-item`s. */
17
+ items: Array<IgcSelectItemComponent>;
18
+ protected activeItems: Array<IgcSelectItemComponent>;
19
+ disabled: boolean;
20
+ constructor();
21
+ disconnectedCallback(): void;
22
+ protected getParent(): import("./select.js").default;
23
+ protected firstUpdated(): Promise<void>;
24
+ protected updateControlledItems(mutations: MutationRecord[]): void;
25
+ protected updateDisabled(): void;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'igc-select-group': IgcSelectGroupComponent;
30
+ }
31
+ }