igniteui-webcomponents 5.1.2 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/components/avatar/themes/avatar.base.css.js +1 -1
  3. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  4. package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
  5. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
  6. package/components/avatar/themes/light/avatar.bootstrap.css.js +1 -1
  7. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
  8. package/components/avatar/themes/light/avatar.shared.css.js +1 -1
  9. package/components/avatar/themes/light/avatar.shared.css.js.map +1 -1
  10. package/components/avatar/themes/shared/avatar.common.css.js +1 -1
  11. package/components/avatar/themes/shared/avatar.common.css.js.map +1 -1
  12. package/components/avatar/themes/shared/avatar.indigo.css.js +1 -1
  13. package/components/avatar/themes/shared/avatar.indigo.css.js.map +1 -1
  14. package/components/badge/themes/badge.base.css.js +1 -1
  15. package/components/badge/themes/badge.base.css.js.map +1 -1
  16. package/components/badge/themes/dark/badge.bootstrap.css.js +1 -1
  17. package/components/badge/themes/dark/badge.bootstrap.css.js.map +1 -1
  18. package/components/badge/themes/dark/badge.indigo.css.js +1 -1
  19. package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
  20. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  21. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  22. package/components/badge/themes/light/badge.indigo.css.js +1 -1
  23. package/components/badge/themes/light/badge.indigo.css.js.map +1 -1
  24. package/components/badge/themes/light/badge.shared.css.js +1 -1
  25. package/components/badge/themes/light/badge.shared.css.js.map +1 -1
  26. package/components/badge/themes/shared/badge.common.css.js +1 -1
  27. package/components/badge/themes/shared/badge.common.css.js.map +1 -1
  28. package/components/badge/themes/shared/badge.indigo.css.js +1 -1
  29. package/components/badge/themes/shared/badge.indigo.css.js.map +1 -1
  30. package/components/button/themes/button/button.base.css.js +1 -1
  31. package/components/button/themes/button/button.base.css.js.map +1 -1
  32. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  33. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  34. package/components/button-group/themes/button.base.css.js +1 -1
  35. package/components/button-group/themes/button.base.css.js.map +1 -1
  36. package/components/button-group/themes/group.base.css.js +1 -1
  37. package/components/button-group/themes/group.base.css.js.map +1 -1
  38. package/components/calendar/base.d.ts +7 -7
  39. package/components/calendar/base.js +23 -16
  40. package/components/calendar/base.js.map +1 -1
  41. package/components/calendar/calendar.js.map +1 -1
  42. package/components/calendar/helpers.d.ts +28 -3
  43. package/components/calendar/helpers.js +36 -11
  44. package/components/calendar/helpers.js.map +1 -1
  45. package/components/calendar/themes/calendar.base.css.js +1 -1
  46. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  47. package/components/card/themes/card.actions.base.css.js +1 -1
  48. package/components/card/themes/card.actions.base.css.js.map +1 -1
  49. package/components/card/themes/card.content.base.css.js +1 -1
  50. package/components/card/themes/card.content.base.css.js.map +1 -1
  51. package/components/card/themes/card.header.base.css.js +1 -1
  52. package/components/card/themes/card.header.base.css.js.map +1 -1
  53. package/components/card/themes/card.media.base.css.js +1 -1
  54. package/components/card/themes/card.media.base.css.js.map +1 -1
  55. package/components/card/themes/container.base.css.js +1 -1
  56. package/components/card/themes/container.base.css.js.map +1 -1
  57. package/components/card/themes/dark/card.fluent.css.js +1 -1
  58. package/components/card/themes/dark/card.fluent.css.js.map +1 -1
  59. package/components/card/themes/light/container/card.fluent.css.js +1 -1
  60. package/components/card/themes/light/container/card.fluent.css.js.map +1 -1
  61. package/components/carousel/themes/carousel-indicator-container.base.css.js +1 -1
  62. package/components/carousel/themes/carousel-indicator-container.base.css.js.map +1 -1
  63. package/components/carousel/themes/carousel-indicator.base.css.js +1 -1
  64. package/components/carousel/themes/carousel-indicator.base.css.js.map +1 -1
  65. package/components/carousel/themes/carousel-slide.base.css.js +1 -1
  66. package/components/carousel/themes/carousel-slide.base.css.js.map +1 -1
  67. package/components/carousel/themes/carousel.base.css.js +1 -1
  68. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  69. package/components/checkbox/checkbox-base.d.ts +3 -1
  70. package/components/checkbox/checkbox-base.js +14 -10
  71. package/components/checkbox/checkbox-base.js.map +1 -1
  72. package/components/checkbox/checkbox.js +1 -2
  73. package/components/checkbox/checkbox.js.map +1 -1
  74. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  75. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  76. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  77. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  78. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  79. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  80. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  81. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  82. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  83. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  84. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  85. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  86. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  87. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  88. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
  89. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
  90. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  91. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  92. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  93. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  94. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  95. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  96. package/components/checkbox/themes/switch.base.css.js +1 -1
  97. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  98. package/components/chip/themes/chip.base.css.js +1 -1
  99. package/components/chip/themes/chip.base.css.js.map +1 -1
  100. package/components/combo/combo-item.d.ts +4 -2
  101. package/components/combo/combo-item.js +19 -16
  102. package/components/combo/combo-item.js.map +1 -1
  103. package/components/combo/combo.d.ts +52 -41
  104. package/components/combo/combo.js +340 -339
  105. package/components/combo/combo.js.map +1 -1
  106. package/components/combo/controllers/data.d.ts +3 -1
  107. package/components/combo/controllers/data.js +9 -2
  108. package/components/combo/controllers/data.js.map +1 -1
  109. package/components/combo/controllers/navigation.d.ts +3 -1
  110. package/components/combo/controllers/navigation.js +4 -3
  111. package/components/combo/controllers/navigation.js.map +1 -1
  112. package/components/combo/controllers/selection.d.ts +14 -6
  113. package/components/combo/controllers/selection.js +66 -59
  114. package/components/combo/controllers/selection.js.map +1 -1
  115. package/components/combo/themes/combo-header.base.css.js +1 -1
  116. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  117. package/components/combo/themes/combo-item.base.css.js +1 -1
  118. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  119. package/components/combo/themes/combo.base.css.js +1 -1
  120. package/components/combo/themes/combo.base.css.js.map +1 -1
  121. package/components/common/mixins/alert.js.map +1 -1
  122. package/components/common/mixins/combo-box.js.map +1 -1
  123. package/components/common/mixins/forms/associated.js +41 -39
  124. package/components/common/mixins/forms/associated.js.map +1 -1
  125. package/components/common/mixins/forms/form-value.d.ts +32 -0
  126. package/components/common/mixins/forms/form-value.js +59 -0
  127. package/components/common/mixins/forms/form-value.js.map +1 -0
  128. package/components/common/mixins/forms/types.d.ts +9 -8
  129. package/components/common/mixins/forms/types.js.map +1 -1
  130. package/components/common/util.d.ts +3 -0
  131. package/components/common/util.js +13 -0
  132. package/components/common/util.js.map +1 -1
  133. package/components/common/validators.d.ts +7 -7
  134. package/components/common/validators.js +24 -17
  135. package/components/common/validators.js.map +1 -1
  136. package/components/date-picker/date-picker.d.ts +17 -14
  137. package/components/date-picker/date-picker.js +30 -20
  138. package/components/date-picker/date-picker.js.map +1 -1
  139. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  140. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  141. package/components/date-picker/validators.js +2 -2
  142. package/components/date-picker/validators.js.map +1 -1
  143. package/components/date-time-input/date-time-input.d.ts +9 -6
  144. package/components/date-time-input/date-time-input.js +33 -30
  145. package/components/date-time-input/date-time-input.js.map +1 -1
  146. package/components/date-time-input/date-util.js +2 -12
  147. package/components/date-time-input/date-util.js.map +1 -1
  148. package/components/date-time-input/validators.js +2 -2
  149. package/components/date-time-input/validators.js.map +1 -1
  150. package/components/dialog/themes/dialog.base.css.js +1 -1
  151. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  152. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  153. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  154. package/components/divider/themes/divider.base.css.js +1 -1
  155. package/components/divider/themes/divider.base.css.js.map +1 -1
  156. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  157. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  158. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  159. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  160. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  161. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  162. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  163. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  164. package/components/dropdown/themes/header.js +7 -0
  165. package/components/dropdown/themes/header.js.map +1 -1
  166. package/components/dropdown/themes/shared/dropdown.bootstrap.css.js +1 -1
  167. package/components/dropdown/themes/shared/dropdown.bootstrap.css.js.map +1 -1
  168. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.d.ts +1 -0
  169. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js +3 -0
  170. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js.map +1 -0
  171. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  172. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  173. package/components/icon/icon-state.broadcast.d.ts +1 -0
  174. package/components/icon/icon-state.broadcast.js +4 -1
  175. package/components/icon/icon-state.broadcast.js.map +1 -1
  176. package/components/icon/registry/types.d.ts +1 -0
  177. package/components/icon/registry/types.js.map +1 -1
  178. package/components/icon/themes/icon.base.css.js +1 -1
  179. package/components/icon/themes/icon.base.css.js.map +1 -1
  180. package/components/input/input-base.js +8 -2
  181. package/components/input/input-base.js.map +1 -1
  182. package/components/input/input.d.ts +21 -9
  183. package/components/input/input.js +59 -32
  184. package/components/input/input.js.map +1 -1
  185. package/components/input/themes/input.base.css.js +1 -1
  186. package/components/input/themes/input.base.css.js.map +1 -1
  187. package/components/input/themes/shared/input.common.css.js +1 -1
  188. package/components/input/themes/shared/input.common.css.js.map +1 -1
  189. package/components/input/themes/shared/input.indigo.css.js +1 -1
  190. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  191. package/components/input/themes/shared/input.material.css.js +1 -1
  192. package/components/input/themes/shared/input.material.css.js.map +1 -1
  193. package/components/list/themes/container.base.css.js +1 -1
  194. package/components/list/themes/container.base.css.js.map +1 -1
  195. package/components/list/themes/dark/container/list.bootstrap.css.js +1 -1
  196. package/components/list/themes/dark/container/list.bootstrap.css.js.map +1 -1
  197. package/components/list/themes/dark/container/list.fluent.css.js +1 -1
  198. package/components/list/themes/dark/container/list.fluent.css.js.map +1 -1
  199. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  200. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  201. package/components/list/themes/dark/container/list.material.css.js +1 -1
  202. package/components/list/themes/dark/container/list.material.css.js.map +1 -1
  203. package/components/list/themes/dark/header/list-header.bootstrap.css.js +1 -1
  204. package/components/list/themes/dark/header/list-header.bootstrap.css.js.map +1 -1
  205. package/components/list/themes/dark/header/list-header.fluent.css.js +1 -1
  206. package/components/list/themes/dark/header/list-header.fluent.css.js.map +1 -1
  207. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  208. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  209. package/components/list/themes/dark/header/list-header.material.css.js +1 -1
  210. package/components/list/themes/dark/header/list-header.material.css.js.map +1 -1
  211. package/components/list/themes/dark/item/list-item.bootstrap.css.js +1 -1
  212. package/components/list/themes/dark/item/list-item.bootstrap.css.js.map +1 -1
  213. package/components/list/themes/dark/item/list-item.fluent.css.js +1 -1
  214. package/components/list/themes/dark/item/list-item.fluent.css.js.map +1 -1
  215. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  216. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  217. package/components/list/themes/dark/item/list-item.material.css.js +1 -1
  218. package/components/list/themes/dark/item/list-item.material.css.js.map +1 -1
  219. package/components/list/themes/item.base.css.js +1 -1
  220. package/components/list/themes/item.base.css.js.map +1 -1
  221. package/components/list/themes/light/container/list.fluent.css.js +1 -1
  222. package/components/list/themes/light/container/list.fluent.css.js.map +1 -1
  223. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  224. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  225. package/components/list/themes/light/container/list.shared.css.js +1 -1
  226. package/components/list/themes/light/container/list.shared.css.js.map +1 -1
  227. package/components/list/themes/light/header/list-header.fluent.css.js +1 -1
  228. package/components/list/themes/light/header/list-header.fluent.css.js.map +1 -1
  229. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  230. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  231. package/components/list/themes/light/item/list-item.fluent.css.js +1 -1
  232. package/components/list/themes/light/item/list-item.fluent.css.js.map +1 -1
  233. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  234. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  235. package/components/list/themes/shared/container/list.indigo.css.js +1 -1
  236. package/components/list/themes/shared/container/list.indigo.css.js.map +1 -1
  237. package/components/list/themes/shared/item/list-item.common.css.js +1 -1
  238. package/components/list/themes/shared/item/list-item.common.css.js.map +1 -1
  239. package/components/list/themes/shared/item/list-item.fluent.css.js +1 -1
  240. package/components/list/themes/shared/item/list-item.fluent.css.js.map +1 -1
  241. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  242. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  243. package/components/mask-input/mask-input.d.ts +5 -3
  244. package/components/mask-input/mask-input.js +35 -23
  245. package/components/mask-input/mask-input.js.map +1 -1
  246. package/components/nav-drawer/themes/container.base.css.js +1 -1
  247. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  248. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  249. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  250. package/components/nav-drawer/themes/item.base.css.js +1 -1
  251. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  252. package/components/navbar/themes/navbar.base.css.js +1 -1
  253. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  254. package/components/popover/themes/light/popover.base.css.js +1 -1
  255. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  256. package/components/progress/base.d.ts +11 -12
  257. package/components/progress/base.js +59 -70
  258. package/components/progress/base.js.map +1 -1
  259. package/components/progress/circular-progress.d.ts +0 -1
  260. package/components/progress/circular-progress.js +15 -15
  261. package/components/progress/circular-progress.js.map +1 -1
  262. package/components/progress/linear-progress.js +7 -13
  263. package/components/progress/linear-progress.js.map +1 -1
  264. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  265. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  266. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js +1 -1
  267. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js.map +1 -1
  268. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  269. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  270. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js +1 -1
  271. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js.map +1 -1
  272. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js +1 -1
  273. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js.map +1 -1
  274. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  275. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  276. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js +1 -1
  277. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js.map +1 -1
  278. package/components/progress/themes/linear/shared/linear.progress.common.css.js +1 -1
  279. package/components/progress/themes/linear/shared/linear.progress.common.css.js.map +1 -1
  280. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  281. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  282. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  283. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  284. package/components/radio/radio.d.ts +4 -3
  285. package/components/radio/radio.js +48 -33
  286. package/components/radio/radio.js.map +1 -1
  287. package/components/radio/themes/radio.base.css.js +1 -1
  288. package/components/radio/themes/radio.base.css.js.map +1 -1
  289. package/components/radio-group/radio-group.base.css.js +1 -1
  290. package/components/radio-group/radio-group.base.css.js.map +1 -1
  291. package/components/radio-group/radio-group.d.ts +4 -0
  292. package/components/radio-group/radio-group.js +18 -0
  293. package/components/radio-group/radio-group.js.map +1 -1
  294. package/components/rating/rating-symbol.js +2 -2
  295. package/components/rating/rating-symbol.js.map +1 -1
  296. package/components/rating/rating.d.ts +25 -17
  297. package/components/rating/rating.js +47 -43
  298. package/components/rating/rating.js.map +1 -1
  299. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  300. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  301. package/components/rating/themes/rating.base.css.js +1 -1
  302. package/components/rating/themes/rating.base.css.js.map +1 -1
  303. package/components/ripple/ripple.material.css.js +1 -1
  304. package/components/ripple/ripple.material.css.js.map +1 -1
  305. package/components/select/select.d.ts +7 -9
  306. package/components/select/select.js +29 -31
  307. package/components/select/select.js.map +1 -1
  308. package/components/select/themes/select.base.css.js +1 -1
  309. package/components/select/themes/select.base.css.js.map +1 -1
  310. package/components/slider/slider-base.d.ts +0 -1
  311. package/components/slider/slider-base.js +0 -4
  312. package/components/slider/slider-base.js.map +1 -1
  313. package/components/slider/slider.d.ts +3 -2
  314. package/components/slider/slider.js +9 -9
  315. package/components/slider/slider.js.map +1 -1
  316. package/components/slider/themes/slider.base.css.js +1 -1
  317. package/components/slider/themes/slider.base.css.js.map +1 -1
  318. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  319. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  320. package/components/stepper/step.d.ts +1 -1
  321. package/components/stepper/step.js.map +1 -1
  322. package/components/stepper/themes/step/step.base.css.js +1 -1
  323. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  324. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  325. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  326. package/components/tabs/themes/dark/tab.bootstrap.css.js +1 -1
  327. package/components/tabs/themes/dark/tab.bootstrap.css.js.map +1 -1
  328. package/components/tabs/themes/dark/tab.fluent.css.js +1 -1
  329. package/components/tabs/themes/dark/tab.fluent.css.js.map +1 -1
  330. package/components/tabs/themes/dark/tab.indigo.css.js +1 -1
  331. package/components/tabs/themes/dark/tab.indigo.css.js.map +1 -1
  332. package/components/tabs/themes/dark/tab.material.css.js +1 -1
  333. package/components/tabs/themes/dark/tab.material.css.js.map +1 -1
  334. package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
  335. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  336. package/components/tabs/themes/light/tab.fluent.css.js +1 -1
  337. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  338. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  339. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  340. package/components/tabs/themes/tab.base.css.js +1 -1
  341. package/components/tabs/themes/tab.base.css.js.map +1 -1
  342. package/components/tabs/themes/tabs.base.css.js +1 -1
  343. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  344. package/components/textarea/textarea.d.ts +5 -4
  345. package/components/textarea/textarea.js +15 -8
  346. package/components/textarea/textarea.js.map +1 -1
  347. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  348. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  349. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  350. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  351. package/components/textarea/themes/textarea.base.css.js +1 -1
  352. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  353. package/components/toast/themes/toast.base.css.js +1 -1
  354. package/components/toast/themes/toast.base.css.js.map +1 -1
  355. package/components/tree/themes/container.base.css.js +1 -1
  356. package/components/tree/themes/container.base.css.js.map +1 -1
  357. package/components/tree/themes/shared/item.material.css.js +1 -1
  358. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  359. package/custom-elements.json +2184 -1951
  360. package/igniteui-webcomponents.html-data.json +1 -1
  361. package/package.json +1 -1
  362. package/themes/dark/bootstrap.css +1 -1
  363. package/themes/dark/fluent.css +1 -1
  364. package/themes/dark/indigo.css +1 -1
  365. package/themes/dark/material.css +1 -1
  366. package/themes/light/bootstrap.css +1 -1
  367. package/themes/light/fluent.css +1 -1
  368. package/themes/light/indigo.css +1 -1
  369. package/themes/light/material.css +1 -1
  370. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"linear.progress.indigo.css.js","sourceRoot":"","sources":["../../../../../../src/components/progress/themes/linear/shared/linear.progress.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,05FAA05F,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`@keyframes indeterminate-primary{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.7017, 0.4958);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.3024, 0.3813, 0.55, 0.9563);transform:translateX(83.671%)}100%{transform:translateX(200.611%)}}@keyframes indeterminate-primary-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.3347, 0.124, 0.7858, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.3347, 0.124, 0.7858, 1);transform:scaleX(0.6614)}100%{transform:scaleX(0.08)}}@keyframes indeterminate-secondary{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515, 0.4096);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31, 0.284, 0.8, 0.7337);transform:translateX(37.6519%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627, 0.6, 0.902);transform:translateX(84.3861%)}100%{transform:translateX(160.2777%)}}@keyframes indeterminate-secondary-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515, 0.4096);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31, 0.284, 0.8, 0.7337);transform:scaleX(0.4571)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627, 0.6, 0.902);transform:scaleX(0.727)}100%{transform:scaleX(0.08)}}@keyframes indeterminate-bar-fluent{0%{transform:translateX(-100%);transform-origin:left}100%{transform:translateX(310%);transform-origin:right}}@keyframes indeterminate-bar-fluent-rtl{0%{transform:translateX(-310%);transform-origin:right}100%{transform:translateX(100%);transform-origin:left}}@keyframes indeterminate-accordion{0%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*2);stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*9/10)}100%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*2/5)}}@keyframes indeterminate-accordion-rtl{0%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*-2);stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*9/10)}100%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*-2/5)}}@keyframes rotate-center{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}:host([label-align=top]) [part~=track],:host([label-align=top-start]) [part~=track],:host([label-align=top-end]) [part~=track]{margin-block-start:.25rem}:host([label-align=bottom]) [part~=track],:host([label-align=bottom-start]) [part~=track],:host([label-align=bottom-end]) [part~=track]{margin-block-end:.25rem}[part~=striped]:not([part~=indeterminate]){background:var(--fill-color-default) repeating-linear-gradient(45deg, var(--fill-color-default), var(--fill-color-default) 0.375rem, var(--stripes-color) 0.375rem, var(--stripes-color) 0.875rem)}`;\n"]}
1
+ {"version":3,"file":"linear.progress.indigo.css.js","sourceRoot":"","sources":["../../../../../../src/components/progress/themes/linear/shared/linear.progress.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,k8KAAk8K,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`@keyframes indeterminate-primary{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.7017, 0.4958);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.3024, 0.3813, 0.55, 0.9563);transform:translateX(83.671%)}100%{transform:translateX(200.611%)}}@keyframes indeterminate-primary-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.3347, 0.124, 0.7858, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.6614)}100%{transform:scaleX(0.08)}}@keyframes indeterminate-secondary{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515, 0.4096);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31, 0.284, 0.8, 0.7337);transform:translateX(37.6519%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627, 0.6, 0.902);transform:translateX(84.3861%)}100%{transform:translateX(160.2777%)}}@keyframes indeterminate-secondary-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515, 0.4096);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31, 0.284, 0.8, 0.7337);transform:scaleX(0.4571)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627, 0.6, 0.902);transform:scaleX(0.727)}100%{transform:scaleX(0.08)}}@keyframes indeterminate-bar-fluent{0%{transform:translateX(-100%);transform-origin:left}100%{transform:translateX(310%);transform-origin:right}}@keyframes indeterminate-bar-fluent-rtl{0%{transform:translateX(100%);transform-origin:right}100%{transform:translateX(-310%);transform-origin:left}}@keyframes indeterminate-accordion{0%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*2);stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*9/10)}100%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*2/5)}}@keyframes indeterminate-accordion-rtl{0%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*-2);stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*9/10)}100%{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*-2/5)}}@keyframes indeterminate-circular-fluent{0%{stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*.0001),calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416);stroke-dashoffset:calc(-1*calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/4);transform:rotate(-90deg)}50%{stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/2),calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/2);stroke-dashoffset:calc(-1*calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/4);transform:rotate(360deg)}100%{stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*.0001),calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416);stroke-dashoffset:calc(-1*calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/4);transform:rotate(990deg)}}@keyframes indeterminate-circular-fluent-rtl{0%{stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*.0001),calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416);stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/4);transform:rotate(90deg)}50%{stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/2),calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/2);stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/4);transform:rotate(-360deg)}100%{stroke-dasharray:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)*.0001),calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416);stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)/4);transform:rotate(-990deg)}}@keyframes rotate-center{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes initial-counter{from{--_progress-integer: 0;--_progress-fraction: 0}}@keyframes initial-width{from{width:0}to{width:calc(var(--_progress-whole, 0)*1%)}}@keyframes initial-dashoffset{from{stroke-dashoffset:calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416)}to{stroke-dashoffset:calc(calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416) - var(--_progress-percentage)*calc(calc(var(--circular-size) / 2 - var(--stroke-thickness) * 0.5) * 2 * 3.1416))}}:host([label-align=top]) [part~=track],:host([label-align=top-start]) [part~=track],:host([label-align=top-end]) [part~=track]{margin-block-start:.25rem}:host([label-align=bottom]) [part~=track],:host([label-align=bottom-start]) [part~=track],:host([label-align=bottom-end]) [part~=track]{margin-block-end:.25rem}[part~=striped]:not([part~=indeterminate]){background:var(--fill-color-default) repeating-linear-gradient(45deg, var(--fill-color-default), var(--fill-color-default) 0.375rem, var(--stripes-color) 0.375rem, var(--stripes-color) 0.875rem)}`;\n"]}
@@ -1,5 +1,6 @@
1
1
  import { LitElement, type TemplateResult } from 'lit';
2
2
  import type { Constructor } from '../common/mixins/constructor.js';
3
+ import { type FormValue } from '../common/mixins/forms/form-value.js';
3
4
  export interface RadioChangeEventArgs {
4
5
  checked: boolean;
5
6
  value?: string;
@@ -31,15 +32,15 @@ export default class IgcRadioComponent extends IgcRadioComponent_base {
31
32
  static register(): void;
32
33
  private static readonly increment;
33
34
  protected get __validators(): import("../common/validators.js").Validator<IgcRadioComponent>[];
35
+ protected _formValue: FormValue<boolean>;
34
36
  private inputId;
35
37
  private labelId;
36
38
  private _kbFocus;
37
- protected _checked: boolean;
38
39
  protected _value: string;
39
40
  protected input: HTMLInputElement;
40
41
  protected label: Array<Node>;
41
- private _tabIndex;
42
42
  protected hideLabel: boolean;
43
+ private _tabIndex;
43
44
  /** Returns all radio elements from the group, that is having the same name property. */
44
45
  private get _radios();
45
46
  /** All sibling radio elements of the one invoking the getter. */
@@ -70,6 +71,7 @@ export default class IgcRadioComponent extends IgcRadioComponent_base {
70
71
  constructor();
71
72
  protected createRenderRoot(): HTMLElement | DocumentFragment;
72
73
  protected firstUpdated(): Promise<void>;
74
+ protected _setDefaultValue(current: string | null): void;
73
75
  /** Simulates a click on the radio control. */
74
76
  click(): void;
75
77
  /** Sets focus on the radio control. */
@@ -82,7 +84,6 @@ export default class IgcRadioComponent extends IgcRadioComponent_base {
82
84
  */
83
85
  setCustomValidity(message: string): void;
84
86
  private _updateCheckedState;
85
- private _updateUncheckedState;
86
87
  protected formResetCallback(): void;
87
88
  /** Called after a form reset callback to restore default keyboard navigation. */
88
89
  private _resetTabIndexes;
@@ -11,11 +11,12 @@ import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { live } from 'lit/directives/live.js';
12
12
  import { themes } from '../../theming/theming-decorator.js';
13
13
  import { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';
14
- import { addKeybindings, arrowDown, arrowLeft, arrowRight, arrowUp, } from '../common/controllers/key-bindings.js';
14
+ import { addKeybindings, arrowDown, arrowLeft, arrowRight, arrowUp, tabKey, } from '../common/controllers/key-bindings.js';
15
15
  import { registerComponent } from '../common/definitions/register.js';
16
16
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
17
17
  import { FormAssociatedCheckboxRequiredMixin } from '../common/mixins/forms/associated-required.js';
18
- import { createCounter, isEmpty, isLTR, last, partNameMap, wrap, } from '../common/util.js';
18
+ import { createFormValueState, defaultBooleanTransformers, } from '../common/mixins/forms/form-value.js';
19
+ import { createCounter, isDefined, isEmpty, isLTR, last, noop, partNameMap, wrap, } from '../common/util.js';
19
20
  import IgcValidationContainerComponent from '../validation-container/validation-container.js';
20
21
  import { styles } from './themes/radio.base.css.js';
21
22
  import { styles as shared } from './themes/shared/radio.common.css.js';
@@ -54,7 +55,7 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
54
55
  }
55
56
  set value(value) {
56
57
  this._value = value;
57
- if (this._checked) {
58
+ if (this.checked) {
58
59
  this._setFormValue(this._value || 'on');
59
60
  }
60
61
  }
@@ -62,27 +63,33 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
62
63
  return this._value;
63
64
  }
64
65
  set checked(value) {
65
- this._checked = Boolean(value);
66
- if (this.hasUpdated) {
67
- this._checked ? this._updateCheckedState() : this._updateUncheckedState();
66
+ this._formValue.setValueAndFormState(value);
67
+ this._tabIndex = this.checked ? 0 : -1;
68
+ this._validate();
69
+ if (this.hasUpdated && this.checked) {
70
+ this._updateCheckedState();
68
71
  }
69
72
  }
70
73
  get checked() {
71
- return this._checked;
74
+ return this._formValue.value;
72
75
  }
73
76
  constructor() {
74
77
  super();
75
78
  this.inputId = `radio-${IgcRadioComponent_1.increment()}`;
76
79
  this.labelId = `radio-label-${this.inputId}`;
77
80
  this._kbFocus = addKeyboardFocusRing(this);
78
- this._checked = false;
79
- this._tabIndex = 0;
80
81
  this.hideLabel = false;
82
+ this._tabIndex = 0;
81
83
  this.labelPosition = 'after';
84
+ this._formValue = createFormValueState(this, {
85
+ initialValue: false,
86
+ transformers: defaultBooleanTransformers,
87
+ });
82
88
  addKeybindings(this, {
83
89
  skip: () => this.disabled,
84
90
  bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },
85
91
  })
92
+ .set(tabKey, noop, { preventDefault: false })
86
93
  .set(arrowLeft, () => this.navigate(isLTR(this) ? -1 : 1))
87
94
  .set(arrowRight, () => this.navigate(isLTR(this) ? 1 : -1))
88
95
  .set(arrowUp, () => this.navigate(-1))
@@ -90,6 +97,7 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
90
97
  }
91
98
  createRenderRoot() {
92
99
  const root = super.createRenderRoot();
100
+ this.hideLabel = isEmpty(this.label);
93
101
  root.addEventListener('slotchange', () => {
94
102
  this.hideLabel = isEmpty(this.label);
95
103
  });
@@ -97,9 +105,21 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
97
105
  }
98
106
  async firstUpdated() {
99
107
  await this.updateComplete;
100
- this._checked && this === last(this._checkedRadios)
101
- ? this._updateCheckedState()
102
- : this._updateValidity();
108
+ if (this.checked && this === last(this._checkedRadios)) {
109
+ for (const radio of this._siblings) {
110
+ radio.checked = false;
111
+ radio.defaultChecked = false;
112
+ }
113
+ }
114
+ else {
115
+ this._updateValidity();
116
+ }
117
+ }
118
+ _setDefaultValue(current) {
119
+ this._formValue.defaultValue = isDefined(current);
120
+ for (const radio of this._siblings) {
121
+ radio.defaultChecked = false;
122
+ }
103
123
  }
104
124
  click() {
105
125
  this.input.click();
@@ -116,22 +136,8 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
116
136
  }
117
137
  }
118
138
  _updateCheckedState() {
119
- this._setFormValue(this.value || 'on');
120
- this._validate();
121
- this._tabIndex = 0;
122
- this.input?.focus();
123
139
  for (const radio of this._siblings) {
124
140
  radio.checked = false;
125
- radio._tabIndex = -1;
126
- radio._validate();
127
- }
128
- }
129
- _updateUncheckedState() {
130
- this._setFormValue(null);
131
- this._validate();
132
- this._tabIndex = -1;
133
- for (const radio of this._siblings) {
134
- radio._updateValidity();
135
141
  }
136
142
  }
137
143
  formResetCallback() {
@@ -139,8 +145,16 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
139
145
  this._resetTabIndexes();
140
146
  }
141
147
  _resetTabIndexes() {
142
- for (const radio of this._radios) {
143
- radio._tabIndex = 0;
148
+ const radios = this._radios;
149
+ if (isEmpty(this._checkedRadios)) {
150
+ for (const radio of radios) {
151
+ radio._tabIndex = 0;
152
+ }
153
+ }
154
+ else {
155
+ for (const radio of radios) {
156
+ radio._tabIndex = radio.checked ? 0 : -1;
157
+ }
144
158
  }
145
159
  }
146
160
  handleClick(event) {
@@ -149,6 +163,7 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
149
163
  return;
150
164
  }
151
165
  this.checked = true;
166
+ this.input.focus();
152
167
  this.emitEvent('igcChange', {
153
168
  detail: {
154
169
  checked: this.checked,
@@ -161,8 +176,8 @@ let IgcRadioComponent = IgcRadioComponent_1 = class IgcRadioComponent extends Fo
161
176
  }
162
177
  navigate(idx) {
163
178
  const active = this._active;
164
- const nextIdx = wrap(0, active.length - 1, active.indexOf(this) + idx);
165
- const radio = active[nextIdx];
179
+ const next = wrap(0, active.length - 1, active.indexOf(this) + idx);
180
+ const radio = active[next];
166
181
  radio.focus();
167
182
  radio.checked = true;
168
183
  radio.emitEvent('igcChange', {
@@ -222,17 +237,17 @@ IgcRadioComponent.tagName = 'igc-radio';
222
237
  IgcRadioComponent.styles = [styles, shared];
223
238
  IgcRadioComponent.increment = createCounter();
224
239
  __decorate([
225
- query('input[type="radio"]')
240
+ query('input', true)
226
241
  ], IgcRadioComponent.prototype, "input", void 0);
227
242
  __decorate([
228
243
  queryAssignedNodes({ flatten: true })
229
244
  ], IgcRadioComponent.prototype, "label", void 0);
230
245
  __decorate([
231
246
  state()
232
- ], IgcRadioComponent.prototype, "_tabIndex", void 0);
247
+ ], IgcRadioComponent.prototype, "hideLabel", void 0);
233
248
  __decorate([
234
249
  state()
235
- ], IgcRadioComponent.prototype, "hideLabel", void 0);
250
+ ], IgcRadioComponent.prototype, "_tabIndex", void 0);
236
251
  __decorate([
237
252
  property({ type: Boolean, reflect: true })
238
253
  ], IgcRadioComponent.prototype, "required", null);
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html } from 'lit';\nimport { property, query, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedCheckboxRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport {\n createCounter,\n isEmpty,\n isLTR,\n last,\n partNameMap,\n wrap,\n} from '../common/util.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/radio.base.css.js';\nimport { styles as shared } from './themes/shared/radio.common.css.js';\nimport { all } from './themes/themes.js';\nimport { getGroup } from './utils.js';\nimport { radioValidators } from './validators.js';\n\nexport interface RadioChangeEventArgs {\n checked: boolean;\n value?: string;\n}\n\nexport interface IgcRadioComponentEventMap {\n igcChange: CustomEvent<RadioChangeEventArgs>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n/**\n * @element igc-radio\n *\n * @slot - The radio label.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart base - The radio control base wrapper.\n * @csspart control - The radio input control.\n * @csspart label - The radio control label.\n */\n@themes(all)\nexport default class IgcRadioComponent extends FormAssociatedCheckboxRequiredMixin(\n EventEmitterMixin<IgcRadioComponentEventMap, Constructor<LitElement>>(\n LitElement\n )\n) {\n public static readonly tagName = 'igc-radio';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcRadioComponent, IgcValidationContainerComponent);\n }\n\n private static readonly increment = createCounter();\n\n protected override get __validators() {\n return radioValidators;\n }\n\n private inputId = `radio-${IgcRadioComponent.increment()}`;\n private labelId = `radio-label-${this.inputId}`;\n private _kbFocus = addKeyboardFocusRing(this);\n\n protected _checked = false;\n protected _value!: string;\n\n @query('input[type=\"radio\"]')\n protected input!: HTMLInputElement;\n\n @queryAssignedNodes({ flatten: true })\n protected label!: Array<Node>;\n\n @state()\n private _tabIndex = 0;\n\n @state()\n protected hideLabel = false;\n\n /** Returns all radio elements from the group, that is having the same name property. */\n private get _radios() {\n return getGroup(this).radios;\n }\n\n /** All sibling radio elements of the one invoking the getter. */\n private get _siblings() {\n return getGroup(this).siblings;\n }\n\n /** All non-disabled radio elements from the group. */\n private get _active() {\n return getGroup(this).active;\n }\n\n /** All checked radio elements from the group. */\n private get _checkedRadios() {\n return getGroup(this).checked;\n }\n\n @property({ type: Boolean, reflect: true })\n public override set required(value: boolean) {\n super.required = value;\n\n if (this.hasUpdated) {\n for (const radio of this._siblings) {\n radio._validate();\n }\n }\n }\n\n public override get required(): boolean {\n return this._required;\n }\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public set value(value: string) {\n this._value = value;\n if (this._checked) {\n this._setFormValue(this._value || 'on');\n }\n }\n\n public get value(): string {\n return this._value;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.checked\", false) */\n /**\n * The checked state of the control.\n * @attr\n */\n @property({ type: Boolean })\n public set checked(value: boolean) {\n this._checked = Boolean(value);\n if (this.hasUpdated) {\n this._checked ? this._updateCheckedState() : this._updateUncheckedState();\n }\n }\n\n public get checked(): boolean {\n return this._checked;\n }\n\n /**\n * The label position of the radio control.\n * @attr label-position\n */\n @property({ reflect: true, attribute: 'label-position' })\n public labelPosition: 'before' | 'after' = 'after';\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set(arrowLeft, () => this.navigate(isLTR(this) ? -1 : 1))\n .set(arrowRight, () => this.navigate(isLTR(this) ? 1 : -1))\n .set(arrowUp, () => this.navigate(-1))\n .set(arrowDown, () => this.navigate(1));\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => {\n this.hideLabel = isEmpty(this.label);\n });\n return root;\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n this._checked && this === last(this._checkedRadios)\n ? this._updateCheckedState()\n : this._updateValidity();\n }\n\n /** Simulates a click on the radio control. */\n public override click() {\n this.input.click();\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the radio control. */\n public override focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the radio control. */\n public override blur() {\n this.input.blur();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public override setCustomValidity(message: string): void {\n for (const radio of this._radios) {\n radio._validate(message);\n }\n }\n\n private _updateCheckedState() {\n this._setFormValue(this.value || 'on');\n this._validate();\n\n this._tabIndex = 0;\n this.input?.focus();\n\n for (const radio of this._siblings) {\n radio.checked = false;\n radio._tabIndex = -1;\n radio._validate();\n }\n }\n\n private _updateUncheckedState() {\n this._setFormValue(null);\n this._validate();\n\n this._tabIndex = -1;\n\n for (const radio of this._siblings) {\n radio._updateValidity();\n }\n }\n\n protected override formResetCallback() {\n super.formResetCallback();\n this._resetTabIndexes();\n }\n\n /** Called after a form reset callback to restore default keyboard navigation. */\n private _resetTabIndexes() {\n for (const radio of this._radios) {\n radio._tabIndex = 0;\n }\n }\n\n protected handleClick(event: PointerEvent) {\n event.stopPropagation();\n\n if (this.checked) {\n return;\n }\n\n this.checked = true;\n this.emitEvent('igcChange', {\n detail: {\n checked: this.checked,\n value: this.value,\n },\n });\n }\n\n protected handleBlur() {\n this._kbFocus.reset();\n }\n\n protected navigate(idx: number) {\n const active = this._active;\n const nextIdx = wrap(0, active.length - 1, active.indexOf(this) + idx);\n const radio = active[nextIdx];\n\n radio.focus();\n radio.checked = true;\n radio.emitEvent('igcChange', {\n detail: { checked: radio.checked, value: radio.value },\n });\n }\n\n protected renderValidatorContainer(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected override render() {\n const labelledBy = this.getAttribute('aria-labelledby');\n const checked = this.checked;\n\n return html`\n <label\n part=${partNameMap({\n base: true,\n checked,\n focused: this._kbFocus.focused,\n })}\n for=${this.inputId}\n @pointerdown=${this._kbFocus.reset}\n >\n <input\n id=${this.inputId}\n type=\"radio\"\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n .required=${this.required}\n .disabled=${this.disabled}\n .checked=${live(checked)}\n tabindex=${this._tabIndex}\n aria-checked=${checked ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-labelledby=${labelledBy ? labelledBy : this.labelId}\n @click=${this.handleClick}\n @blur=${this.handleBlur}\n />\n <span part=${partNameMap({ control: true, checked })}>\n <span\n .hidden=${this.disabled}\n part=${partNameMap({ ripple: true, checked })}\n ></span>\n </span>\n <span\n .hidden=${this.hideLabel}\n part=${partNameMap({ label: true, checked })}\n id=${this.labelId}\n >\n <slot></slot>\n </span>\n </label>\n ${this.renderValidatorContainer()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-radio': IgcRadioComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html } from 'lit';\nimport { property, query, queryAssignedNodes, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n tabKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedCheckboxRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport {\n type FormValue,\n createFormValueState,\n defaultBooleanTransformers,\n} from '../common/mixins/forms/form-value.js';\nimport {\n createCounter,\n isDefined,\n isEmpty,\n isLTR,\n last,\n noop,\n partNameMap,\n wrap,\n} from '../common/util.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/radio.base.css.js';\nimport { styles as shared } from './themes/shared/radio.common.css.js';\nimport { all } from './themes/themes.js';\nimport { getGroup } from './utils.js';\nimport { radioValidators } from './validators.js';\n\nexport interface RadioChangeEventArgs {\n checked: boolean;\n value?: string;\n}\n\nexport interface IgcRadioComponentEventMap {\n igcChange: CustomEvent<RadioChangeEventArgs>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n/**\n * @element igc-radio\n *\n * @slot - The radio label.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart base - The radio control base wrapper.\n * @csspart control - The radio input control.\n * @csspart label - The radio control label.\n */\n@themes(all)\nexport default class IgcRadioComponent extends FormAssociatedCheckboxRequiredMixin(\n EventEmitterMixin<IgcRadioComponentEventMap, Constructor<LitElement>>(\n LitElement\n )\n) {\n public static readonly tagName = 'igc-radio';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcRadioComponent, IgcValidationContainerComponent);\n }\n\n private static readonly increment = createCounter();\n\n protected override get __validators() {\n return radioValidators;\n }\n\n protected override _formValue: FormValue<boolean>;\n\n private inputId = `radio-${IgcRadioComponent.increment()}`;\n private labelId = `radio-label-${this.inputId}`;\n private _kbFocus = addKeyboardFocusRing(this);\n\n protected _value!: string;\n\n @query('input', true)\n protected input!: HTMLInputElement;\n\n @queryAssignedNodes({ flatten: true })\n protected label!: Array<Node>;\n\n @state()\n protected hideLabel = false;\n\n @state()\n private _tabIndex = 0;\n\n /** Returns all radio elements from the group, that is having the same name property. */\n private get _radios() {\n return getGroup(this).radios;\n }\n\n /** All sibling radio elements of the one invoking the getter. */\n private get _siblings() {\n return getGroup(this).siblings;\n }\n\n /** All non-disabled radio elements from the group. */\n private get _active() {\n return getGroup(this).active;\n }\n\n /** All checked radio elements from the group. */\n private get _checkedRadios() {\n return getGroup(this).checked;\n }\n\n @property({ type: Boolean, reflect: true })\n public override set required(value: boolean) {\n super.required = value;\n\n if (this.hasUpdated) {\n for (const radio of this._siblings) {\n radio._validate();\n }\n }\n }\n\n public override get required(): boolean {\n return this._required;\n }\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public set value(value: string) {\n this._value = value;\n if (this.checked) {\n this._setFormValue(this._value || 'on');\n }\n }\n\n public get value(): string {\n return this._value;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.checked\", false) */\n /**\n * The checked state of the control.\n * @attr\n */\n @property({ type: Boolean })\n public set checked(value: boolean) {\n this._formValue.setValueAndFormState(value);\n this._tabIndex = this.checked ? 0 : -1;\n this._validate();\n if (this.hasUpdated && this.checked) {\n this._updateCheckedState();\n }\n }\n\n public get checked(): boolean {\n return this._formValue.value;\n }\n\n /**\n * The label position of the radio control.\n * @attr label-position\n */\n @property({ reflect: true, attribute: 'label-position' })\n public labelPosition: 'before' | 'after' = 'after';\n\n constructor() {\n super();\n\n this._formValue = createFormValueState(this, {\n initialValue: false,\n transformers: defaultBooleanTransformers,\n });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set(tabKey, noop, { preventDefault: false })\n .set(arrowLeft, () => this.navigate(isLTR(this) ? -1 : 1))\n .set(arrowRight, () => this.navigate(isLTR(this) ? 1 : -1))\n .set(arrowUp, () => this.navigate(-1))\n .set(arrowDown, () => this.navigate(1));\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n this.hideLabel = isEmpty(this.label);\n\n root.addEventListener('slotchange', () => {\n this.hideLabel = isEmpty(this.label);\n });\n return root;\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n\n if (this.checked && this === last(this._checkedRadios)) {\n for (const radio of this._siblings) {\n radio.checked = false;\n radio.defaultChecked = false;\n }\n } else {\n this._updateValidity();\n }\n }\n\n protected override _setDefaultValue(current: string | null): void {\n this._formValue.defaultValue = isDefined(current);\n for (const radio of this._siblings) {\n radio.defaultChecked = false;\n }\n }\n\n /** Simulates a click on the radio control. */\n public override click() {\n this.input.click();\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the radio control. */\n public override focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the radio control. */\n public override blur() {\n this.input.blur();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public override setCustomValidity(message: string): void {\n for (const radio of this._radios) {\n radio._validate(message);\n }\n }\n\n private _updateCheckedState() {\n for (const radio of this._siblings) {\n radio.checked = false;\n }\n }\n\n protected override formResetCallback() {\n super.formResetCallback();\n this._resetTabIndexes();\n }\n\n /** Called after a form reset callback to restore default keyboard navigation. */\n private _resetTabIndexes() {\n const radios = this._radios;\n\n if (isEmpty(this._checkedRadios)) {\n for (const radio of radios) {\n radio._tabIndex = 0;\n }\n } else {\n for (const radio of radios) {\n radio._tabIndex = radio.checked ? 0 : -1;\n }\n }\n }\n\n protected handleClick(event: PointerEvent) {\n event.stopPropagation();\n\n if (this.checked) {\n return;\n }\n\n this.checked = true;\n this.input.focus();\n this.emitEvent('igcChange', {\n detail: {\n checked: this.checked,\n value: this.value,\n },\n });\n }\n\n protected handleBlur() {\n this._kbFocus.reset();\n }\n\n protected navigate(idx: number) {\n const active = this._active;\n const next = wrap(0, active.length - 1, active.indexOf(this) + idx);\n const radio = active[next];\n\n radio.focus();\n radio.checked = true;\n radio.emitEvent('igcChange', {\n detail: { checked: radio.checked, value: radio.value },\n });\n }\n\n protected renderValidatorContainer(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected override render() {\n const labelledBy = this.getAttribute('aria-labelledby');\n const checked = this.checked;\n\n return html`\n <label\n part=${partNameMap({\n base: true,\n checked,\n focused: this._kbFocus.focused,\n })}\n for=${this.inputId}\n @pointerdown=${this._kbFocus.reset}\n >\n <input\n id=${this.inputId}\n type=\"radio\"\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n .required=${this.required}\n .disabled=${this.disabled}\n .checked=${live(checked)}\n tabindex=${this._tabIndex}\n aria-checked=${checked ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-labelledby=${labelledBy ? labelledBy : this.labelId}\n @click=${this.handleClick}\n @blur=${this.handleBlur}\n />\n <span part=${partNameMap({ control: true, checked })}>\n <span\n .hidden=${this.disabled}\n part=${partNameMap({ ripple: true, checked })}\n ></span>\n </span>\n <span\n .hidden=${this.hideLabel}\n part=${partNameMap({ label: true, checked })}\n id=${this.labelId}\n >\n <slot></slot>\n </span>\n </label>\n ${this.renderValidatorContainer()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-radio': IgcRadioComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:var(--radio-base-display, inline-flex);flex-direction:column;font-family:var(--ig-font-family)}:host([label-position=before]) [part~=label]{order:-1}input[type=radio]{position:absolute;width:1px;height:1px;margin:-1px;border:none;clip:rect(0, 0, 0, 0);outline:0;pointer-events:none;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}[part~=base]{display:flex;align-items:center;cursor:pointer;transition:color .15s ease-in}[part~=label]{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}[part~=control]{--size: 1.25rem;position:relative;display:inline-flex;width:calc(var(--size)*2);height:calc(var(--size)*2);min-width:calc(var(--size)*2);-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease-in}[part~=control]::before,[part~=control]::after{position:absolute;content:"";width:var(--size);height:var(--size);left:50%;top:50%;transform:translate(-50%, -50%);transition:all .15s ease-in}[part~=control]::before{backface-visibility:hidden;transform:translate(-50%, -50%) scale(0.1);transform-origin:center;z-index:1}[part="control checked"]::before{transform:translate(-50%, -50%) scale(0.5)}:host([disabled]),:host(:disabled){pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}`;
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:var(--radio-base-display, inline-flex);flex-direction:column;font-family:var(--ig-font-family)}:host([label-position=before]) [part~=label]{order:-1}input[type=radio]{position:absolute;width:1px;height:1px;margin:-1px;border:none;clip:rect(0, 0, 0, 0);outline:0;pointer-events:none;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}[part~=base]{display:flex;align-items:center;cursor:pointer;transition:color .15s ease-in}[part~=label]{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}[part~=control]{--size: 1.25rem;position:relative;display:inline-flex;width:calc(var(--size)*2);height:calc(var(--size)*2);min-width:calc(var(--size)*2);-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease-in}[part~=control]::before,[part~=control]::after{position:absolute;content:"";width:var(--size);height:var(--size);left:50%;top:50%;transform:translate(-50%, -50%);transition:all .15s ease-in}[part~=control]::before{backface-visibility:hidden;transform:translate(-50%, -50%) scale(0.1);transform-origin:center;z-index:1}[part="control checked"]::before{transform:translate(-50%, -50%) scale(0.5)}:host([disabled]),:host(:disabled){pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}`;
3
3
  //# sourceMappingURL=radio.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio.base.css.js","sourceRoot":"","sources":["../../../../src/components/radio/themes/radio.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,g8EAAg8E,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:var(--radio-base-display, inline-flex);flex-direction:column;font-family:var(--ig-font-family)}:host([label-position=before]) [part~=label]{order:-1}input[type=radio]{position:absolute;width:1px;height:1px;margin:-1px;border:none;clip:rect(0, 0, 0, 0);outline:0;pointer-events:none;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}[part~=base]{display:flex;align-items:center;cursor:pointer;transition:color .15s ease-in}[part~=label]{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}[part~=control]{--size: 1.25rem;position:relative;display:inline-flex;width:calc(var(--size)*2);height:calc(var(--size)*2);min-width:calc(var(--size)*2);-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease-in}[part~=control]::before,[part~=control]::after{position:absolute;content:\"\";width:var(--size);height:var(--size);left:50%;top:50%;transform:translate(-50%, -50%);transition:all .15s ease-in}[part~=control]::before{backface-visibility:hidden;transform:translate(-50%, -50%) scale(0.1);transform-origin:center;z-index:1}[part=\"control checked\"]::before{transform:translate(-50%, -50%) scale(0.5)}:host([disabled]),:host(:disabled){pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}`;\n"]}
1
+ {"version":3,"file":"radio.base.css.js","sourceRoot":"","sources":["../../../../src/components/radio/themes/radio.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,wlFAAwlF,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:var(--radio-base-display, inline-flex);flex-direction:column;font-family:var(--ig-font-family)}:host([label-position=before]) [part~=label]{order:-1}input[type=radio]{position:absolute;width:1px;height:1px;margin:-1px;border:none;clip:rect(0, 0, 0, 0);outline:0;pointer-events:none;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}[part~=base]{display:flex;align-items:center;cursor:pointer;transition:color .15s ease-in}[part~=label]{font-family:var(--ig-subtitle-1-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-1-font-size);font-weight:var(--ig-subtitle-1-font-weight);font-style:var(--ig-subtitle-1-font-style);line-height:var(--ig-subtitle-1-line-height);letter-spacing:var(--ig-subtitle-1-letter-spacing);text-transform:var(--ig-subtitle-1-text-transform);margin-top:var(--ig-subtitle-1-margin-top);margin-bottom:var(--ig-subtitle-1-margin-bottom)}[part~=control]{--size: 1.25rem;position:relative;display:inline-flex;width:calc(var(--size)*2);height:calc(var(--size)*2);min-width:calc(var(--size)*2);-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease-in}[part~=control]::before,[part~=control]::after{position:absolute;content:\"\";width:var(--size);height:var(--size);left:50%;top:50%;transform:translate(-50%, -50%);transition:all .15s ease-in}[part~=control]::before{backface-visibility:hidden;transform:translate(-50%, -50%) scale(0.1);transform-origin:center;z-index:1}[part=\"control checked\"]::before{transform:translate(-50%, -50%) scale(0.5)}:host([disabled]),:host(:disabled){pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host([alignment=vertical]){display:flex;flex-direction:column;gap:.5rem}:host([alignment=horizontal]){--radio-base-display: contents;display:grid;grid-template-columns:repeat(var(--layout-count), minmax(min-content, max-content));grid-template-rows:auto auto;-moz-column-gap:.5rem;column-gap:.5rem;align-items:start}:host([alignment=horizontal])>*{grid-row:1}`;
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host([alignment=vertical]){display:flex;flex-direction:column;gap:.5rem}:host([alignment=horizontal]){--radio-base-display: contents;display:grid;grid-template-columns:repeat(var(--layout-count), minmax(min-content, max-content));grid-template-rows:auto auto;-moz-column-gap:.5rem;column-gap:.5rem;align-items:start}:host([alignment=horizontal])>*{grid-row:1}`;
3
3
  //# sourceMappingURL=radio-group.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.base.css.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,0pCAA0pC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host([alignment=vertical]){display:flex;flex-direction:column;gap:.5rem}:host([alignment=horizontal]){--radio-base-display: contents;display:grid;grid-template-columns:repeat(var(--layout-count), minmax(min-content, max-content));grid-template-rows:auto auto;-moz-column-gap:.5rem;column-gap:.5rem;align-items:start}:host([alignment=horizontal])>*{grid-row:1}`;\n"]}
1
+ {"version":3,"file":"radio-group.base.css.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,kzCAAkzC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host([alignment=vertical]){display:flex;flex-direction:column;gap:.5rem}:host([alignment=horizontal]){--radio-base-display: contents;display:grid;grid-template-columns:repeat(var(--layout-count), minmax(min-content, max-content));grid-template-rows:auto auto;-moz-column-gap:.5rem;column-gap:.5rem;align-items:start}:host([alignment=horizontal])>*{grid-row:1}`;\n"]}
@@ -10,6 +10,7 @@ export default class IgcRadioGroupComponent extends LitElement {
10
10
  static readonly tagName = "igc-radio-group";
11
11
  static styles: import("lit").CSSResult;
12
12
  static register(): void;
13
+ private _defaultValue;
13
14
  private _internals;
14
15
  private _name;
15
16
  private _value;
@@ -19,6 +20,8 @@ export default class IgcRadioGroupComponent extends LitElement {
19
20
  * @attr
20
21
  */
21
22
  alignment: 'vertical' | 'horizontal';
23
+ set defaultValue(value: string);
24
+ get defaultValue(): string;
22
25
  /**
23
26
  * Gets/Sets the name for all child igc-radio components.
24
27
  * @attr
@@ -35,6 +38,7 @@ export default class IgcRadioGroupComponent extends LitElement {
35
38
  protected createRenderRoot(): HTMLElement | DocumentFragment;
36
39
  protected firstUpdated(): void;
37
40
  private _setCSSGridVars;
41
+ private _setRadiosDefaultChecked;
38
42
  private _setRadiosName;
39
43
  private _setDefaultValue;
40
44
  private _setSelectedRadio;
@@ -18,6 +18,13 @@ let IgcRadioGroupComponent = IgcRadioGroupComponent_1 = class IgcRadioGroupCompo
18
18
  static register() {
19
19
  registerComponent(IgcRadioGroupComponent_1, IgcRadioComponent);
20
20
  }
21
+ set defaultValue(value) {
22
+ this._defaultValue = value;
23
+ this._setRadiosDefaultChecked();
24
+ }
25
+ get defaultValue() {
26
+ return this._defaultValue;
27
+ }
21
28
  set name(value) {
22
29
  this._name = value;
23
30
  this._setRadiosName();
@@ -51,6 +58,7 @@ let IgcRadioGroupComponent = IgcRadioGroupComponent_1 = class IgcRadioGroupCompo
51
58
  const radios = Array.from(this._radios);
52
59
  const allRadiosUnchecked = radios.every((radio) => !radio.checked);
53
60
  this._setRadiosName();
61
+ this._setRadiosDefaultChecked();
54
62
  if (allRadiosUnchecked && this._value) {
55
63
  this._setSelectedRadio();
56
64
  this._setDefaultValue();
@@ -62,6 +70,13 @@ let IgcRadioGroupComponent = IgcRadioGroupComponent_1 = class IgcRadioGroupCompo
62
70
  this.style.setProperty('--layout-count', `${slot.assignedElements({ flatten: true }).length}`);
63
71
  }
64
72
  }
73
+ _setRadiosDefaultChecked() {
74
+ if (this._defaultValue) {
75
+ for (const radio of this._radios) {
76
+ radio.defaultChecked = radio.value === this._defaultValue;
77
+ }
78
+ }
79
+ }
65
80
  _setRadiosName() {
66
81
  if (this._name) {
67
82
  for (const radio of this._radios) {
@@ -91,6 +106,9 @@ __decorate([
91
106
  __decorate([
92
107
  property({ reflect: true })
93
108
  ], IgcRadioGroupComponent.prototype, "alignment", void 0);
109
+ __decorate([
110
+ property({ attribute: false })
111
+ ], IgcRadioGroupComponent.prototype, "defaultValue", null);
94
112
  __decorate([
95
113
  property({ reflect: true })
96
114
  ], IgcRadioGroupComponent.prototype, "name", null);
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcRadioComponent from '../radio/radio.js';\nimport { styles } from './radio-group.base.css.js';\nimport { styles as fluent } from './radio-group.fluent.css.js';\nimport { styles as indigo } from './radio-group.indigo.css.js';\nimport { styles as material } from './radio-group.material.css.js';\n\n/**\n * The igc-radio-group component unifies one or more igc-radio buttons.\n *\n * @element igc-radio-group\n *\n * @slot - Default slot\n */\n@themes({\n light: { material, fluent, indigo },\n dark: { material, fluent, indigo },\n})\nexport default class IgcRadioGroupComponent extends LitElement {\n public static readonly tagName = 'igc-radio-group';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcRadioGroupComponent, IgcRadioComponent);\n }\n\n private _internals: ElementInternals;\n private _name!: string;\n private _value!: string;\n\n @queryAssignedElements({ flatten: true })\n private _radios!: NodeListOf<IgcRadioComponent>;\n\n /**\n * Alignment of the radio controls inside this group.\n * @attr\n */\n @property({ reflect: true })\n public alignment: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * Gets/Sets the name for all child igc-radio components.\n * @attr\n */\n @property({ reflect: true })\n public set name(value: string) {\n this._name = value;\n this._setRadiosName();\n }\n\n public get name(): string {\n return this._name;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.value\", false) */\n /**\n * Gets/Sets the checked igc-radio element that matches `value`\n * @attr\n */\n @property()\n public set value(value: string) {\n this._value = value;\n this._setSelectedRadio();\n }\n\n public get value(): string {\n if (this._radios.length) {\n this._value =\n Array.from(this._radios).find((radio) => radio.checked)?.value ?? '';\n }\n\n return this._value;\n }\n\n constructor() {\n super();\n\n this._internals = this.attachInternals();\n this._internals.role = 'radiogroup';\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this._setCSSGridVars());\n return root;\n }\n\n protected override firstUpdated() {\n const radios = Array.from(this._radios);\n const allRadiosUnchecked = radios.every((radio) => !radio.checked);\n\n this._setRadiosName();\n\n if (allRadiosUnchecked && this._value) {\n this._setSelectedRadio();\n this._setDefaultValue();\n }\n }\n\n private _setCSSGridVars() {\n const slot = this.renderRoot.querySelector('slot');\n if (slot) {\n this.style.setProperty(\n '--layout-count',\n `${slot.assignedElements({ flatten: true }).length}`\n );\n }\n }\n\n private _setRadiosName() {\n if (this._name) {\n for (const radio of this._radios) {\n radio.name = this._name;\n }\n }\n }\n\n private _setDefaultValue() {\n for (const radio of this._radios) {\n radio.toggleAttribute('checked', radio.checked);\n }\n }\n\n private _setSelectedRadio() {\n for (const radio of this._radios) {\n radio.checked = radio.value === this._value;\n }\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-radio-group': IgcRadioGroupComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcRadioComponent from '../radio/radio.js';\nimport { styles } from './radio-group.base.css.js';\nimport { styles as fluent } from './radio-group.fluent.css.js';\nimport { styles as indigo } from './radio-group.indigo.css.js';\nimport { styles as material } from './radio-group.material.css.js';\n\n/**\n * The igc-radio-group component unifies one or more igc-radio buttons.\n *\n * @element igc-radio-group\n *\n * @slot - Default slot\n */\n@themes({\n light: { material, fluent, indigo },\n dark: { material, fluent, indigo },\n})\nexport default class IgcRadioGroupComponent extends LitElement {\n public static readonly tagName = 'igc-radio-group';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcRadioGroupComponent, IgcRadioComponent);\n }\n\n private _defaultValue!: string;\n private _internals: ElementInternals;\n private _name!: string;\n private _value!: string;\n\n @queryAssignedElements({ flatten: true })\n private _radios!: NodeListOf<IgcRadioComponent>;\n\n /**\n * Alignment of the radio controls inside this group.\n * @attr\n */\n @property({ reflect: true })\n public alignment: 'vertical' | 'horizontal' = 'vertical';\n\n /* blazorCSSuppress */\n @property({ attribute: false })\n public set defaultValue(value: string) {\n this._defaultValue = value;\n this._setRadiosDefaultChecked();\n }\n\n public get defaultValue(): string {\n return this._defaultValue;\n }\n\n /**\n * Gets/Sets the name for all child igc-radio components.\n * @attr\n */\n @property({ reflect: true })\n public set name(value: string) {\n this._name = value;\n this._setRadiosName();\n }\n\n public get name(): string {\n return this._name;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.value\", false) */\n /**\n * Gets/Sets the checked igc-radio element that matches `value`\n * @attr\n */\n @property()\n public set value(value: string) {\n this._value = value;\n this._setSelectedRadio();\n }\n\n public get value(): string {\n if (this._radios.length) {\n this._value =\n Array.from(this._radios).find((radio) => radio.checked)?.value ?? '';\n }\n\n return this._value;\n }\n\n constructor() {\n super();\n\n this._internals = this.attachInternals();\n this._internals.role = 'radiogroup';\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this._setCSSGridVars());\n return root;\n }\n\n protected override firstUpdated() {\n const radios = Array.from(this._radios);\n const allRadiosUnchecked = radios.every((radio) => !radio.checked);\n\n this._setRadiosName();\n this._setRadiosDefaultChecked();\n\n if (allRadiosUnchecked && this._value) {\n this._setSelectedRadio();\n this._setDefaultValue();\n }\n }\n\n private _setCSSGridVars() {\n const slot = this.renderRoot.querySelector('slot');\n if (slot) {\n this.style.setProperty(\n '--layout-count',\n `${slot.assignedElements({ flatten: true }).length}`\n );\n }\n }\n\n private _setRadiosDefaultChecked() {\n if (this._defaultValue) {\n for (const radio of this._radios) {\n radio.defaultChecked = radio.value === this._defaultValue;\n }\n }\n }\n\n private _setRadiosName() {\n if (this._name) {\n for (const radio of this._radios) {\n radio.name = this._name;\n }\n }\n }\n\n private _setDefaultValue() {\n for (const radio of this._radios) {\n radio.toggleAttribute('checked', radio.checked);\n }\n }\n\n private _setSelectedRadio() {\n for (const radio of this._radios) {\n radio.checked = radio.value === this._value;\n }\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-radio-group': IgcRadioGroupComponent;\n }\n}\n"]}
@@ -7,12 +7,12 @@ class IgcRatingSymbolComponent extends LitElement {
7
7
  }
8
8
  connectedCallback() {
9
9
  super.connectedCallback();
10
- this.slot = this.slot.length > 0 ? this.slot : 'symbol';
10
+ this.slot = this.slot || 'symbol';
11
11
  }
12
12
  render() {
13
13
  return html `
14
14
  <div part="symbol full">
15
- <slot> </slot>
15
+ <slot></slot>
16
16
  </div>
17
17
  <div part="symbol empty">
18
18
  <slot name="empty"></slot>
@@ -1 +1 @@
1
- {"version":3,"file":"rating-symbol.js","sourceRoot":"","sources":["../../../src/components/rating/rating-symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAe5D,MAAqB,wBAAyB,SAAQ,UAAU;IAKvD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;;;KAOV,CAAC;IACJ,CAAC;;AAtBsB,gCAAO,GAAG,mBAAmB,CAAC;AAC9B,+BAAM,GAAG,CAAC,MAAM,CAAC,CAAC;eAFtB,wBAAwB","sourcesContent":["import { LitElement, html } from 'lit';\n\nimport { registerComponent } from '../common/definitions/register.js';\nimport { styles } from './themes/rating-symbol.base.css.js';\n\n/**\n *\n * Used when a custom icon/symbol/element needs to be passed to the igc-rating component.\n *\n * @element igc-rating-symbol\n *\n * @slot - Default slot for projected full symbols/icons.\n * @slot empty - Default slot for projected empty symbols/icons.\n *\n * @csspart symbol - The symbol wrapping container.\n * @csspart full - The full symbol wrapping container.\n * @csspart empty - The empty symbol wrapping container.\n */\nexport default class IgcRatingSymbolComponent extends LitElement {\n public static readonly tagName = 'igc-rating-symbol';\n public static override styles = [styles];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcRatingSymbolComponent);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.slot = this.slot.length > 0 ? this.slot : 'symbol';\n }\n\n protected override render() {\n return html`\n <div part=\"symbol full\">\n <slot> </slot>\n </div>\n <div part=\"symbol empty\">\n <slot name=\"empty\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-rating-symbol': IgcRatingSymbolComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"rating-symbol.js","sourceRoot":"","sources":["../../../src/components/rating/rating-symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAe5D,MAAqB,wBAAyB,SAAQ,UAAU;IAKvD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;IACpC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;;;KAOV,CAAC;IACJ,CAAC;;AAtBsB,gCAAO,GAAG,mBAAmB,CAAC;AAC9B,+BAAM,GAAG,CAAC,MAAM,CAAC,CAAC;eAFtB,wBAAwB","sourcesContent":["import { LitElement, html } from 'lit';\n\nimport { registerComponent } from '../common/definitions/register.js';\nimport { styles } from './themes/rating-symbol.base.css.js';\n\n/**\n *\n * Used when a custom icon/symbol/element needs to be passed to the igc-rating component.\n *\n * @element igc-rating-symbol\n *\n * @slot - Default slot for projected full symbols/icons.\n * @slot empty - Default slot for projected empty symbols/icons.\n *\n * @csspart symbol - The symbol wrapping container.\n * @csspart full - The full symbol wrapping container.\n * @csspart empty - The empty symbol wrapping container.\n */\nexport default class IgcRatingSymbolComponent extends LitElement {\n public static readonly tagName = 'igc-rating-symbol';\n public static override styles = [styles];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcRatingSymbolComponent);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.slot = this.slot || 'symbol';\n }\n\n protected override render() {\n return html`\n <div part=\"symbol full\">\n <slot></slot>\n </div>\n <div part=\"symbol empty\">\n <slot name=\"empty\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-rating-symbol': IgcRatingSymbolComponent;\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
2
  import type { Constructor } from '../common/mixins/constructor.js';
3
+ import { type FormValue } from '../common/mixins/forms/form-value.js';
3
4
  import IgcRatingSymbolComponent from './rating-symbol.js';
4
5
  export interface IgcRatingComponentEventMap {
5
6
  igcChange: CustomEvent<number>;
@@ -33,9 +34,13 @@ export default class IgcRatingComponent extends IgcRatingComponent_base {
33
34
  static readonly tagName = "igc-rating";
34
35
  static styles: import("lit").CSSResult[];
35
36
  static register(): void;
36
- protected ratingSymbols: Array<IgcRatingSymbolComponent>;
37
+ protected _formValue: FormValue<number>;
38
+ private _max;
39
+ private _step;
40
+ private _single;
41
+ protected ratingSymbols: IgcRatingSymbolComponent[];
37
42
  protected container: HTMLElement;
38
- protected valueLabel: Array<Node>;
43
+ protected valueLabel: Node[];
39
44
  protected hoverValue: number;
40
45
  protected hoverState: boolean;
41
46
  protected get isInteractive(): boolean;
@@ -46,19 +51,23 @@ export default class IgcRatingComponent extends IgcRatingComponent_base {
46
51
  *
47
52
  * If there are projected symbols, the maximum value will be resolved
48
53
  * based on the number of symbols.
49
- * @attr
54
+ * @attr max
55
+ * @default 5
50
56
  */
51
- max: number;
57
+ set max(value: number);
58
+ get max(): number;
52
59
  /**
53
60
  * The minimum value change allowed.
54
61
  *
55
62
  * Valid values are in the interval between 0 and 1 inclusive.
56
- * @attr
63
+ * @attr step
64
+ * @default 1
57
65
  */
58
- step: number;
66
+ set step(value: number);
67
+ get step(): number;
59
68
  /**
60
69
  * The label of the control.
61
- * @attr
70
+ * @attr label
62
71
  */
63
72
  label: string;
64
73
  /**
@@ -71,9 +80,11 @@ export default class IgcRatingComponent extends IgcRatingComponent_base {
71
80
  valueFormat: string;
72
81
  /**
73
82
  * The current value of the component
74
- * @attr
83
+ * @attr value
84
+ * @default 0
75
85
  */
76
- value: number;
86
+ set value(number: number);
87
+ get value(): number;
77
88
  /**
78
89
  * Sets hover preview behavior for the component
79
90
  * @attr hover-preview
@@ -86,28 +97,25 @@ export default class IgcRatingComponent extends IgcRatingComponent_base {
86
97
  readOnly: boolean;
87
98
  /**
88
99
  * Toggles single selection visual mode.
89
- * @attr
100
+ * @attr single
101
+ * @default false
90
102
  */
91
- single: boolean;
103
+ set single(value: boolean);
104
+ get single(): boolean;
92
105
  /**
93
106
  * Whether to reset the rating when the user selects the same value.
94
107
  * @attr allow-reset
95
108
  */
96
109
  allowReset: boolean;
97
- protected handleMaxChange(): void;
98
- protected handleValueChange(): void;
99
- protected handlePrecisionChange(): void;
100
- protected handleSelectionChange(): void;
101
110
  constructor();
111
+ protected firstUpdated(): Promise<void>;
102
112
  protected handleClick({ clientX }: PointerEvent): void;
103
113
  protected handlePointerMove({ clientX }: PointerEvent): void;
104
114
  protected emitValueUpdate(value: number): void;
105
115
  protected handleSlotChange(): void;
106
116
  protected handleHoverEnabled(): void;
107
117
  protected handleHoverDisabled(): void;
108
- protected _setInitialDefaultValue(): void;
109
118
  protected calcNewValue(x: number): number;
110
- protected getPrecision(num: number): number;
111
119
  protected round(value: number): number;
112
120
  protected clipSymbol(index: number, isLTR?: boolean): {
113
121
  backward: string;