igniteui-webcomponents 4.2.3 → 4.3.0-beta.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 (420) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -6
  3. package/animations/player.js +10 -6
  4. package/animations/player.js.map +1 -1
  5. package/animations/presets/fade/index.d.ts +3 -0
  6. package/animations/presets/fade/index.js +12 -0
  7. package/animations/presets/fade/index.js.map +1 -0
  8. package/animations/presets/index.d.ts +1 -0
  9. package/animations/presets/index.js +1 -0
  10. package/animations/presets/index.js.map +1 -1
  11. package/components/accordion/accordion.js +2 -1
  12. package/components/accordion/accordion.js.map +1 -1
  13. package/components/avatar/avatar.js +2 -2
  14. package/components/avatar/avatar.js.map +1 -1
  15. package/components/avatar/themes/dark/avatar.base.bootstrap.css.js +15 -0
  16. package/components/avatar/themes/dark/avatar.base.bootstrap.css.js.map +1 -0
  17. package/components/avatar/themes/{avatar.base.css.js → light/avatar.base.css.js} +25 -8
  18. package/components/avatar/themes/light/avatar.base.css.js.map +1 -0
  19. package/components/avatar/themes/light/avatar.bootstrap.css.js +26 -0
  20. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -0
  21. package/components/badge/badge.js.map +1 -1
  22. package/components/badge/themes/light/badge.base.css.js +4 -5
  23. package/components/badge/themes/light/badge.base.css.js.map +1 -1
  24. package/components/button/button-base.js.map +1 -1
  25. package/components/button/button.js.map +1 -1
  26. package/components/button/icon-button.js.map +1 -1
  27. package/components/button/themes/button/dark/button.bootstrap.css.js +15 -0
  28. package/components/button/themes/button/dark/button.bootstrap.css.js.map +1 -0
  29. package/components/button/themes/button/dark/button.fluent.css.js +13 -1
  30. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  31. package/components/button/themes/button/dark/button.indigo.css.d.ts +1 -0
  32. package/components/button/themes/button/dark/button.indigo.css.js +15 -0
  33. package/components/button/themes/button/dark/button.indigo.css.js.map +1 -0
  34. package/components/button/themes/button/dark/button.material.css.d.ts +1 -0
  35. package/components/button/themes/button/dark/button.material.css.js +15 -0
  36. package/components/button/themes/button/dark/button.material.css.js.map +1 -0
  37. package/components/button/themes/button/light/button.base.css.js +6 -57
  38. package/components/button/themes/button/light/button.base.css.js.map +1 -1
  39. package/components/button/themes/button/light/button.bootstrap.css.js +229 -71
  40. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  41. package/components/button/themes/button/light/button.fluent.css.js +289 -70
  42. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  43. package/components/button/themes/button/light/button.indigo.css.js +282 -78
  44. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  45. package/components/button/themes/button/light/button.material.css.js +282 -170
  46. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  47. package/components/button/themes/icon-button/light/icon-button.base.css.js +4 -6
  48. package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
  49. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +24 -0
  50. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  51. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +16 -0
  52. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  53. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +9 -0
  54. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  55. package/components/button/themes/icon-button/light/icon-button.material.css.js +7 -0
  56. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  57. package/components/calendar/calendar.js.map +1 -1
  58. package/components/calendar/common/calendar-base.d.ts +2 -2
  59. package/components/calendar/common/calendar-base.js.map +1 -1
  60. package/components/calendar/days-view/days-view.js.map +1 -1
  61. package/components/calendar/months-view/months-view.js.map +1 -1
  62. package/components/calendar/themes/calendar.base.css.js +4 -5
  63. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  64. package/components/calendar/themes/fluent/calendar.fluent.css.js +4 -5
  65. package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
  66. package/components/calendar/years-view/years-view.js.map +1 -1
  67. package/components/card/card.actions.js.map +1 -1
  68. package/components/card/card.content.js.map +1 -1
  69. package/components/card/card.header.js.map +1 -1
  70. package/components/card/card.js.map +1 -1
  71. package/components/card/card.media.js +2 -1
  72. package/components/card/card.media.js.map +1 -1
  73. package/components/card/themes/light/card.actions.bootstrap.css.js +4 -5
  74. package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
  75. package/components/card/themes/light/card.actions.material.css.js +4 -5
  76. package/components/card/themes/light/card.actions.material.css.js.map +1 -1
  77. package/components/card/themes/light/card.content.bootstrap.css.js +5 -8
  78. package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
  79. package/components/card/themes/light/card.content.indigo.css.js +5 -8
  80. package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
  81. package/components/card/themes/light/card.content.material.css.js +5 -8
  82. package/components/card/themes/light/card.content.material.css.js.map +1 -1
  83. package/components/card/themes/light/card.header.bootstrap.css.js +4 -8
  84. package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
  85. package/components/card/themes/light/card.header.fluent.css.js +4 -8
  86. package/components/card/themes/light/card.header.fluent.css.js.map +1 -1
  87. package/components/card/themes/light/card.header.indigo.css.js +4 -8
  88. package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
  89. package/components/card/themes/light/card.header.material.css.js +4 -8
  90. package/components/card/themes/light/card.header.material.css.js.map +1 -1
  91. package/components/card/themes/light/card.material.css.js +15 -5
  92. package/components/card/themes/light/card.material.css.js.map +1 -1
  93. package/components/card/themes/light/card.media.material.css.js +4 -5
  94. package/components/card/themes/light/card.media.material.css.js.map +1 -1
  95. package/components/checkbox/checkbox-base.js.map +1 -1
  96. package/components/checkbox/checkbox.js.map +1 -1
  97. package/components/checkbox/switch.js.map +1 -1
  98. package/components/checkbox/themes/dark/checkbox.bootstrap.css.d.ts +1 -0
  99. package/components/checkbox/themes/dark/checkbox.bootstrap.css.js +15 -0
  100. package/components/checkbox/themes/dark/checkbox.bootstrap.css.js.map +1 -0
  101. package/components/checkbox/themes/dark/checkbox.fluent.css.js +13 -1
  102. package/components/checkbox/themes/dark/checkbox.fluent.css.js.map +1 -1
  103. package/components/checkbox/themes/dark/checkbox.indigo.css.js +13 -1
  104. package/components/checkbox/themes/dark/checkbox.indigo.css.js.map +1 -1
  105. package/components/checkbox/themes/dark/checkbox.material.css.d.ts +1 -0
  106. package/components/checkbox/themes/dark/checkbox.material.css.js +15 -0
  107. package/components/checkbox/themes/dark/checkbox.material.css.js.map +1 -0
  108. package/components/checkbox/themes/dark/switch.bootstrap.css.d.ts +1 -0
  109. package/components/checkbox/themes/dark/switch.bootstrap.css.js +15 -0
  110. package/components/checkbox/themes/dark/switch.bootstrap.css.js.map +1 -0
  111. package/components/checkbox/themes/dark/switch.fluent.css.js +13 -1
  112. package/components/checkbox/themes/dark/switch.fluent.css.js.map +1 -1
  113. package/components/checkbox/themes/dark/switch.indigo.css.js +13 -1
  114. package/components/checkbox/themes/dark/switch.indigo.css.js.map +1 -1
  115. package/components/checkbox/themes/dark/switch.material.css.d.ts +1 -0
  116. package/components/checkbox/themes/dark/switch.material.css.js +15 -0
  117. package/components/checkbox/themes/dark/switch.material.css.js.map +1 -0
  118. package/components/checkbox/themes/light/checkbox.base.css.js +17 -51
  119. package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
  120. package/components/checkbox/themes/light/checkbox.bootstrap.css.js +124 -46
  121. package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
  122. package/components/checkbox/themes/light/checkbox.fluent.css.js +172 -87
  123. package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
  124. package/components/checkbox/themes/light/checkbox.indigo.css.js +136 -49
  125. package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
  126. package/components/checkbox/themes/light/checkbox.material.css.js +148 -18
  127. package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
  128. package/components/checkbox/themes/light/switch.base.css.js +31 -56
  129. package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
  130. package/components/checkbox/themes/light/switch.bootstrap.css.js +148 -95
  131. package/components/checkbox/themes/light/switch.bootstrap.css.js.map +1 -1
  132. package/components/checkbox/themes/light/switch.fluent.css.js +144 -80
  133. package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
  134. package/components/checkbox/themes/light/switch.indigo.css.js +154 -97
  135. package/components/checkbox/themes/light/switch.indigo.css.js.map +1 -1
  136. package/components/checkbox/themes/light/switch.material.css.js +171 -37
  137. package/components/checkbox/themes/light/switch.material.css.js.map +1 -1
  138. package/components/chip/chip.js.map +1 -1
  139. package/components/chip/themes/chip.base.css.js +4 -5
  140. package/components/chip/themes/chip.base.css.js.map +1 -1
  141. package/components/chip/themes/chip.bootstrap.css.js +4 -5
  142. package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
  143. package/components/chip/themes/chip.fluent.css.js +4 -5
  144. package/components/chip/themes/chip.fluent.css.js.map +1 -1
  145. package/components/chip/themes/chip.indigo.css.js +4 -5
  146. package/components/chip/themes/chip.indigo.css.js.map +1 -1
  147. package/components/chip/themes/chip.material.css.js +4 -5
  148. package/components/chip/themes/chip.material.css.js.map +1 -1
  149. package/components/combo/combo-header.js.map +1 -1
  150. package/components/combo/combo-item.d.ts +5 -0
  151. package/components/combo/combo-item.js.map +1 -1
  152. package/components/combo/combo-list.js +2 -1
  153. package/components/combo/combo-list.js.map +1 -1
  154. package/components/combo/combo.d.ts +51 -5
  155. package/components/combo/combo.js +58 -26
  156. package/components/combo/combo.js.map +1 -1
  157. package/components/combo/controllers/data.js +9 -5
  158. package/components/combo/controllers/data.js.map +1 -1
  159. package/components/combo/controllers/selection.d.ts +2 -1
  160. package/components/combo/controllers/selection.js +14 -3
  161. package/components/combo/controllers/selection.js.map +1 -1
  162. package/components/combo/operations/filter.d.ts +3 -1
  163. package/components/combo/operations/filter.js +10 -7
  164. package/components/combo/operations/filter.js.map +1 -1
  165. package/components/combo/operations/group.d.ts +2 -2
  166. package/components/combo/operations/group.js +8 -5
  167. package/components/combo/operations/group.js.map +1 -1
  168. package/components/combo/themes/light/combo.base.css.js +4 -5
  169. package/components/combo/themes/light/combo.base.css.js.map +1 -1
  170. package/components/combo/themes/light/header/combo-header.base.css.js +4 -5
  171. package/components/combo/themes/light/header/combo-header.base.css.js.map +1 -1
  172. package/components/combo/themes/light/item/combo-item.base.css.js +4 -5
  173. package/components/combo/themes/light/item/combo-item.base.css.js.map +1 -1
  174. package/components/combo/types.d.ts +8 -5
  175. package/components/combo/types.js.map +1 -1
  176. package/components/common/mixins/sizable.js.map +1 -1
  177. package/components/date-time-input/date-time-input.js +2 -1
  178. package/components/date-time-input/date-time-input.js.map +1 -1
  179. package/components/date-time-input/date-util.js +2 -1
  180. package/components/date-time-input/date-util.js.map +1 -1
  181. package/components/dialog/dialog.d.ts +9 -2
  182. package/components/dialog/dialog.js +37 -10
  183. package/components/dialog/dialog.js.map +1 -1
  184. package/components/dialog/themes/light/dialog.base.css.js +17 -8
  185. package/components/dialog/themes/light/dialog.base.css.js.map +1 -1
  186. package/components/dropdown/dropdown-group.js.map +1 -1
  187. package/components/dropdown/dropdown-header.js.map +1 -1
  188. package/components/dropdown/dropdown-item.js.map +1 -1
  189. package/components/dropdown/dropdown.js +2 -0
  190. package/components/dropdown/dropdown.js.map +1 -1
  191. package/components/dropdown/themes/light/dropdown-group.base.css.js +4 -5
  192. package/components/dropdown/themes/light/dropdown-group.base.css.js.map +1 -1
  193. package/components/dropdown/themes/light/dropdown-header.base.css.js +4 -5
  194. package/components/dropdown/themes/light/dropdown-header.base.css.js.map +1 -1
  195. package/components/dropdown/themes/light/dropdown-item.base.css.js +4 -5
  196. package/components/dropdown/themes/light/dropdown-item.base.css.js.map +1 -1
  197. package/components/dropdown/themes/light/dropdown.base.css.js +4 -5
  198. package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -1
  199. package/components/expansion-panel/expansion-panel.d.ts +1 -0
  200. package/components/expansion-panel/expansion-panel.js.map +1 -1
  201. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +4 -5
  202. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
  203. package/components/form/form.js +2 -1
  204. package/components/form/form.js.map +1 -1
  205. package/components/icon/dark/icon.bootstrap.css.d.ts +1 -0
  206. package/components/icon/dark/icon.bootstrap.css.js +15 -0
  207. package/components/icon/dark/icon.bootstrap.css.js.map +1 -0
  208. package/components/icon/dark/icon.fluent.css.d.ts +1 -0
  209. package/components/{avatar/themes/avatar.bootstrap.css.js → icon/dark/icon.fluent.css.js} +13 -5
  210. package/components/icon/dark/icon.fluent.css.js.map +1 -0
  211. package/components/icon/dark/icon.indigo.css.d.ts +1 -0
  212. package/components/icon/dark/icon.indigo.css.js +15 -0
  213. package/components/icon/dark/icon.indigo.css.js.map +1 -0
  214. package/components/icon/dark/icon.material.css.d.ts +1 -0
  215. package/components/icon/dark/icon.material.css.js +15 -0
  216. package/components/icon/dark/icon.material.css.js.map +1 -0
  217. package/components/icon/icon.base.css.d.ts +1 -0
  218. package/components/icon/{icon.material.css.js → icon.base.css.js} +11 -13
  219. package/components/icon/icon.base.css.js.map +1 -0
  220. package/components/icon/icon.js +12 -3
  221. package/components/icon/icon.js.map +1 -1
  222. package/components/icon/light/icon.bootstrap.css.d.ts +1 -0
  223. package/components/icon/light/icon.bootstrap.css.js +60 -0
  224. package/components/icon/light/icon.bootstrap.css.js.map +1 -0
  225. package/components/icon/light/icon.fluent.css.d.ts +1 -0
  226. package/components/icon/light/icon.fluent.css.js +60 -0
  227. package/components/icon/light/icon.fluent.css.js.map +1 -0
  228. package/components/icon/light/icon.indigo.css.d.ts +1 -0
  229. package/components/icon/light/icon.indigo.css.js +60 -0
  230. package/components/icon/light/icon.indigo.css.js.map +1 -0
  231. package/components/icon/light/icon.material.css.d.ts +1 -0
  232. package/components/icon/light/icon.material.css.js +60 -0
  233. package/components/icon/light/icon.material.css.js.map +1 -0
  234. package/components/input/input-base.js.map +1 -1
  235. package/components/input/input.js +2 -1
  236. package/components/input/input.js.map +1 -1
  237. package/components/input/themes/light/input.base.css.js +4 -5
  238. package/components/input/themes/light/input.base.css.js.map +1 -1
  239. package/components/list/list-header.js.map +1 -1
  240. package/components/list/list-item.js.map +1 -1
  241. package/components/list/list.js.map +1 -1
  242. package/components/list/themes/light/list-header.base.css.js +4 -5
  243. package/components/list/themes/light/list-header.base.css.js.map +1 -1
  244. package/components/list/themes/light/list-item.base.css.js +4 -5
  245. package/components/list/themes/light/list-item.base.css.js.map +1 -1
  246. package/components/list/themes/light/list.base.css.js +4 -5
  247. package/components/list/themes/light/list.base.css.js.map +1 -1
  248. package/components/mask-input/mask-input-base.js.map +1 -1
  249. package/components/mask-input/mask-input.js +2 -1
  250. package/components/mask-input/mask-input.js.map +1 -1
  251. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  252. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  253. package/components/nav-drawer/nav-drawer.js.map +1 -1
  254. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js +4 -5
  255. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -1
  256. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +4 -5
  257. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
  258. package/components/nav-drawer/themes/light/nav-drawer.base.css.js +4 -5
  259. package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -1
  260. package/components/navbar/navbar.js +3 -2
  261. package/components/navbar/navbar.js.map +1 -1
  262. package/components/navbar/themes/dark/navbar.bootstrap.css.d.ts +1 -0
  263. package/components/navbar/themes/dark/navbar.bootstrap.css.js +15 -0
  264. package/components/navbar/themes/dark/navbar.bootstrap.css.js.map +1 -0
  265. package/components/navbar/themes/dark/navbar.fluent.css.d.ts +1 -0
  266. package/components/navbar/themes/dark/navbar.fluent.css.js +15 -0
  267. package/components/navbar/themes/dark/navbar.fluent.css.js.map +1 -0
  268. package/components/navbar/themes/dark/navbar.indigo.css.d.ts +1 -0
  269. package/components/navbar/themes/dark/navbar.indigo.css.js +15 -0
  270. package/components/navbar/themes/dark/navbar.indigo.css.js.map +1 -0
  271. package/components/navbar/themes/dark/navbar.material.css.d.ts +1 -0
  272. package/components/navbar/themes/dark/navbar.material.css.js +15 -0
  273. package/components/navbar/themes/dark/navbar.material.css.js.map +1 -0
  274. package/components/navbar/themes/light/navbar.bootstrap.css.js +62 -6
  275. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  276. package/components/navbar/themes/light/navbar.fluent.css.js +68 -1
  277. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  278. package/components/navbar/themes/light/navbar.indigo.css.js +65 -3
  279. package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
  280. package/components/navbar/themes/light/navbar.material.css.d.ts +1 -0
  281. package/components/navbar/themes/light/navbar.material.css.js +69 -0
  282. package/components/navbar/themes/light/navbar.material.css.js.map +1 -0
  283. package/components/navbar/themes/navbar.base.css.d.ts +1 -0
  284. package/components/navbar/themes/{light/navbar.base.css.js → navbar.base.css.js} +7 -10
  285. package/components/navbar/themes/navbar.base.css.js.map +1 -0
  286. package/components/progress/base.js.map +1 -1
  287. package/components/progress/circular-gradient.js +2 -1
  288. package/components/progress/circular-gradient.js.map +1 -1
  289. package/components/progress/circular-progress.js.map +1 -1
  290. package/components/progress/linear-progress.js.map +1 -1
  291. package/components/progress/themes/circular/circular.progress.base.css.js +4 -5
  292. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  293. package/components/progress/themes/linear/linear.progress.base.css.js +4 -5
  294. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  295. package/components/progress/themes/linear/linear.progress.bootstrap.css.js +4 -5
  296. package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
  297. package/components/progress/themes/linear/linear.progress.indigo.css.js +4 -5
  298. package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
  299. package/components/radio/radio.js +6 -3
  300. package/components/radio/radio.js.map +1 -1
  301. package/components/radio/themes/dark/radio.bootstrap.css.d.ts +1 -0
  302. package/components/radio/themes/dark/radio.bootstrap.css.js +15 -0
  303. package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -0
  304. package/components/radio/themes/dark/radio.fluent.css.js +13 -1
  305. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  306. package/components/radio/themes/dark/radio.indigo.css.js +13 -1
  307. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  308. package/components/radio/themes/dark/radio.material.css.js +13 -1
  309. package/components/radio/themes/dark/radio.material.css.js.map +1 -1
  310. package/components/radio/themes/light/radio.base.css.js +24 -41
  311. package/components/radio/themes/light/radio.base.css.js.map +1 -1
  312. package/components/radio/themes/light/radio.bootstrap.css.js +102 -30
  313. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  314. package/components/radio/themes/light/radio.fluent.css.js +155 -66
  315. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  316. package/components/radio/themes/light/radio.indigo.css.js +106 -56
  317. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  318. package/components/radio/themes/light/radio.material.css.js +131 -16
  319. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  320. package/components/radio-group/radio-group.base.css.js +4 -5
  321. package/components/radio-group/radio-group.base.css.js.map +1 -1
  322. package/components/radio-group/radio-group.js.map +1 -1
  323. package/components/rating/rating-symbol.base.css.js +4 -5
  324. package/components/rating/rating-symbol.base.css.js.map +1 -1
  325. package/components/rating/rating-symbol.js +2 -1
  326. package/components/rating/rating-symbol.js.map +1 -1
  327. package/components/rating/rating.base.css.js +4 -5
  328. package/components/rating/rating.base.css.js.map +1 -1
  329. package/components/rating/rating.js.map +1 -1
  330. package/components/ripple/ripple.js +2 -1
  331. package/components/ripple/ripple.js.map +1 -1
  332. package/components/ripple/ripple.material.css.js +4 -5
  333. package/components/ripple/ripple.material.css.js.map +1 -1
  334. package/components/select/select-group.js +2 -1
  335. package/components/select/select-group.js.map +1 -1
  336. package/components/select/select-header.js +2 -1
  337. package/components/select/select-header.js.map +1 -1
  338. package/components/select/select-item.js +2 -1
  339. package/components/select/select-item.js.map +1 -1
  340. package/components/select/select.d.ts +8 -0
  341. package/components/select/select.js +9 -4
  342. package/components/select/select.js.map +1 -1
  343. package/components/select/themes/light/select.base.css.js +4 -5
  344. package/components/select/themes/light/select.base.css.js.map +1 -1
  345. package/components/slider/range-slider.js +2 -1
  346. package/components/slider/range-slider.js.map +1 -1
  347. package/components/slider/slider-base.js.map +1 -1
  348. package/components/slider/slider-label.js +2 -1
  349. package/components/slider/slider-label.js.map +1 -1
  350. package/components/slider/slider.js +2 -1
  351. package/components/slider/slider.js.map +1 -1
  352. package/components/slider/themes/light/slider.base.css.js +4 -5
  353. package/components/slider/themes/light/slider.base.css.js.map +1 -1
  354. package/components/snackbar/snackbar.d.ts +5 -1
  355. package/components/snackbar/snackbar.js +19 -2
  356. package/components/snackbar/snackbar.js.map +1 -1
  357. package/components/snackbar/themes/light/snackbar.base.css.js +4 -5
  358. package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -1
  359. package/components/stepper/step.js.map +1 -1
  360. package/components/stepper/stepper.d.ts +1 -1
  361. package/components/stepper/stepper.js +12 -3
  362. package/components/stepper/stepper.js.map +1 -1
  363. package/components/stepper/themes/step/light/step.base.css.js +7 -5
  364. package/components/stepper/themes/step/light/step.base.css.js.map +1 -1
  365. package/components/stepper/themes/stepper/stepper.base.css.js +13 -6
  366. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  367. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +4 -5
  368. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  369. package/components/stepper/themes/stepper/stepper.fluent.css.js +4 -5
  370. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  371. package/components/stepper/themes/stepper/stepper.indigo.css.js +4 -5
  372. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  373. package/components/tabs/tab-panel.js +2 -1
  374. package/components/tabs/tab-panel.js.map +1 -1
  375. package/components/tabs/tab.js.map +1 -1
  376. package/components/tabs/tabs.js +1 -1
  377. package/components/tabs/tabs.js.map +1 -1
  378. package/components/tabs/themes/light/tab-panel.base.css.js +4 -5
  379. package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -1
  380. package/components/tabs/themes/light/tab.base.css.js +4 -5
  381. package/components/tabs/themes/light/tab.base.css.js.map +1 -1
  382. package/components/tabs/themes/light/tabs.base.css.js +4 -5
  383. package/components/tabs/themes/light/tabs.base.css.js.map +1 -1
  384. package/components/toast/toast.d.ts +4 -1
  385. package/components/toast/toast.js +17 -2
  386. package/components/toast/toast.js.map +1 -1
  387. package/components/toggle/toggle.directive.d.ts +9 -3
  388. package/components/toggle/toggle.directive.js +54 -38
  389. package/components/toggle/toggle.directive.js.map +1 -1
  390. package/components/tree/themes/light/tree-item.base.css.js +4 -5
  391. package/components/tree/themes/light/tree-item.base.css.js.map +1 -1
  392. package/components/tree/themes/light/tree.base.css.js +4 -5
  393. package/components/tree/themes/light/tree.base.css.js.map +1 -1
  394. package/components/tree/tree-item.js.map +1 -1
  395. package/components/tree/tree.js.map +1 -1
  396. package/custom-elements.json +49 -32
  397. package/index.d.ts +1 -1
  398. package/index.js +1 -0
  399. package/index.js.map +1 -1
  400. package/package.json +6 -4
  401. package/themes/dark/bootstrap.css +320 -0
  402. package/themes/dark/fluent.css +303 -25
  403. package/themes/dark/indigo.css +307 -12
  404. package/themes/dark/material.css +329 -6
  405. package/themes/light/bootstrap.css +108 -0
  406. package/themes/light/fluent.css +108 -0
  407. package/themes/light/indigo.css +108 -0
  408. package/themes/light/material.css +108 -0
  409. package/vscode-html-custom-data.json +21 -32
  410. package/components/avatar/themes/avatar.base.css.js.map +0 -1
  411. package/components/avatar/themes/avatar.bootstrap.css.js.map +0 -1
  412. package/components/combo/utils/converters.d.ts +0 -3
  413. package/components/combo/utils/converters.js +0 -9
  414. package/components/combo/utils/converters.js.map +0 -1
  415. package/components/icon/icon.material.css.js.map +0 -1
  416. package/components/navbar/themes/light/navbar.base.css.js.map +0 -1
  417. /package/components/avatar/themes/{avatar.base.css.d.ts → dark/avatar.base.bootstrap.css.d.ts} +0 -0
  418. /package/components/avatar/themes/{avatar.bootstrap.css.d.ts → light/avatar.base.css.d.ts} +0 -0
  419. /package/components/{icon/icon.material.css.d.ts → avatar/themes/light/avatar.bootstrap.css.d.ts} +0 -0
  420. /package/components/{navbar/themes/light/navbar.base.css.d.ts → button/themes/button/dark/button.bootstrap.css.d.ts} +0 -0
@@ -131,7 +131,7 @@ let IgcTabsComponent = IgcTabsComponent_1 = class IgcTabsComponent extends Event
131
131
  this.mutationObserver = new MutationObserver(async (records, observer) => {
132
132
  var _a;
133
133
  observer.disconnect();
134
- const attributes = getAttributesForTags(records, 'igc-tab');
134
+ const attributes = getAttributesForTags(records, 'igc-tab').filter((e) => { var _a; return (_a = e.closest(this.tagName)) === null || _a === void 0 ? void 0 : _a.isSameNode(this); });
135
135
  const changed = getNodesForTags(records, this, 'igc-tab');
136
136
  if (attributes.length > 0) {
137
137
  this.activeTab = attributes.find((tab) => tab.selected);
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport {\n eventOptions,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/tabs.base.css.js';\nimport { styles as bootstrap } from './themes/light/tabs.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/tabs.fluent.css.js';\nimport { styles as indigo } from './themes/light/tabs.indigo.css.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { createCounter, getOffset, isLTR } from '../common/util.js';\nimport {\n getAttributesForTags,\n getNodesForTags,\n observerConfig,\n} from './utils.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcTabComponent from './tab.js';\nimport IgcTabPanelComponent from './tab-panel.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\n\ndefineComponents(IgcTabComponent, IgcTabPanelComponent, IgcIconButtonComponent);\n\nexport interface IgcTabsEventMap {\n igcChange: CustomEvent<IgcTabComponent>;\n}\n\n/**\n * Represents tabs component\n *\n * @element igc-tabs\n *\n * @fires igcChange - Emitted when the selected tab changes.\n *\n * @slot - Renders the tab header.\n * @slot panel - Renders the tab content.\n *\n * @csspart headers - The wrapper of the tabs including the headers content and the scroll buttons.\n * @csspart headers-content - The container for the tab headers.\n * @csspart headers-wrapper - The wrapper for the tab headers and the selected indicator.\n * @csspart headers-scroll - The container for the headers.\n * @csspart selected-indicator - The selected indicator.\n * @csspart start-scroll-button - The start scroll button displayed when the tabs overflow.\n * @csspart end-scroll-button - The end scroll button displayed when the tabs overflow.\n * @csspart content - The container for the tabs content.\n */\n@themes({ bootstrap, fluent, indigo })\n@blazorAdditionalDependencies('IgcTabComponent, IgcTabPanelComponent')\nexport default class IgcTabsComponent extends EventEmitterMixin<\n IgcTabsEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-tabs';\n\n public static styles = styles;\n private static readonly increment = createCounter();\n\n @queryAssignedElements({ selector: 'igc-tab' })\n protected tabs!: Array<IgcTabComponent>;\n\n @queryAssignedElements({ slot: 'panel' })\n protected panels!: Array<IgcTabPanelComponent>;\n\n @query('[part=\"headers-wrapper\"]', true)\n protected wrapper!: HTMLElement;\n\n @query('[part=\"headers-content\"]', true)\n protected container!: HTMLElement;\n\n @query('[part=\"selected-indicator\"]', true)\n protected selectedIndicator!: HTMLElement;\n\n @state()\n protected showScrollButtons = false;\n\n @state()\n protected disableStartScrollButton = true;\n\n @state()\n protected disableEndScrollButton = false;\n\n @state()\n protected activeTab?: IgcTabComponent;\n\n protected resizeObserver!: ResizeObserver;\n protected mutationObserver!: MutationObserver;\n\n protected get enabledTabs() {\n return this.tabs.filter((tab) => !tab.disabled);\n }\n\n /** Returns the currently selected tab. */\n public get selected(): string {\n return this.activeTab?.panel ?? '';\n }\n\n /**\n * Sets the alignment for the tab headers\n * @attr\n */\n @property({ reflect: true })\n public alignment: 'start' | 'end' | 'center' | 'justify' = 'start';\n\n /**\n * Determines the tab activation. When set to auto,\n * the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys\n * and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n * @attr\n */\n @property()\n public activation: 'auto' | 'manual' = 'auto';\n\n @watch('alignment', { waitUntilFirstUpdate: true })\n protected alignIndicator() {\n const styles: Partial<CSSStyleDeclaration> = {\n visibility: this.activeTab ? 'visible' : 'hidden',\n transitionDuration: '0.3s',\n };\n\n if (this.activeTab) {\n Object.assign(styles, {\n width: `${this.activeTab!.offsetWidth}px`,\n transform: `translate(${\n isLTR(this)\n ? getOffset(this.activeTab!, this.wrapper).left\n : getOffset(this.activeTab!, this.wrapper).right\n }px)`,\n });\n }\n\n Object.assign(this.selectedIndicator.style, styles);\n }\n\n protected override async firstUpdated() {\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n await this.updateComplete;\n\n this.syncAttributes();\n this.setupObserver();\n this.setSelectedTab(\n this.tabs.filter((tab) => tab.selected).at(-1) ?? this.enabledTabs.at(0)\n );\n this.updateSelectedTab();\n }\n\n public override disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n super.disconnectedCallback();\n }\n\n protected updateButtonsOnResize() {\n // Hide the buttons in the resize observer callback and synchronously update the DOM\n // in order to get the actual size\n this.showScrollButtons = false;\n this.performUpdate();\n\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n this.updateScrollButtons();\n }\n\n protected updateScrollButtons() {\n const { scrollLeft, offsetWidth } = this.container,\n { scrollWidth } = this.wrapper;\n\n this.disableEndScrollButton =\n scrollWidth <= Math.abs(scrollLeft) + offsetWidth;\n this.disableStartScrollButton = scrollLeft === 0;\n }\n\n protected setupObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateButtonsOnResize();\n this.alignIndicator();\n });\n\n [this.container, this.wrapper, ...this.tabs].forEach((element) =>\n this.resizeObserver.observe(element)\n );\n\n this.mutationObserver = new MutationObserver(async (records, observer) => {\n // Stop observing while handling changes\n observer.disconnect();\n\n const attributes = getAttributesForTags<IgcTabComponent>(\n records,\n 'igc-tab'\n );\n const changed = getNodesForTags<IgcTabComponent>(\n records,\n this,\n 'igc-tab'\n );\n\n if (attributes.length > 0) {\n this.activeTab = attributes.find((tab) => tab.selected);\n }\n\n if (changed) {\n changed.addedNodes.forEach((tab) => {\n this.resizeObserver.observe(tab);\n if (tab.selected) {\n this.activeTab = tab;\n }\n });\n changed.removedNodes.forEach((tab) => {\n this.resizeObserver.unobserve(tab);\n if (tab.selected || this.activeTab === tab) {\n this.activeTab = undefined;\n }\n });\n\n this.syncAttributes();\n }\n\n this.updateSelectedTab();\n this.activeTab?.scrollIntoView({ block: 'nearest' });\n this.alignIndicator();\n\n // Watch for changes again\n await this.updateComplete;\n observer.observe(this, observerConfig);\n });\n\n this.mutationObserver.observe(this, observerConfig);\n }\n\n protected updateSelectedTab() {\n this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));\n this.panels.forEach((panel) => {\n panel.hidden = panel.id !== this.activeTab?.panel;\n });\n }\n\n protected syncAttributes() {\n const prefix = this.id ? `${this.id}-` : '';\n this.tabs.forEach((tab, index) => {\n if (!tab.panel) {\n tab.panel =\n this.panels.at(index)?.id ??\n `${prefix}tab-${IgcTabsComponent.increment()}`;\n }\n this.panels\n .find((panel) => panel.id === tab.panel)\n ?.setAttribute('aria-labelledby', tab.id);\n });\n }\n\n private setSelectedTab(tab?: IgcTabComponent) {\n if (!tab || tab === this.activeTab) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.selected = false;\n }\n\n this.activeTab = tab;\n this.activeTab.selected = true;\n }\n\n protected scrollByTabOffset(direction: 'start' | 'end') {\n const { scrollLeft, offsetWidth } = this.container;\n const LTR = isLTR(this),\n next = direction === 'end';\n\n const pivot = Math.abs(next ? offsetWidth + scrollLeft : scrollLeft);\n\n let amount = this.tabs\n .map((tab) => ({\n start: LTR\n ? getOffset(tab, this.wrapper).left\n : Math.abs(getOffset(tab, this.wrapper).right),\n width: tab.offsetWidth,\n }))\n .filter((offset) =>\n next ? offset.start + offset.width > pivot : offset.start < pivot\n )\n .at(next ? 0 : -1)!.width;\n\n amount *= next ? 1 : -1;\n this.container.scrollBy({ left: LTR ? amount : -amount });\n }\n\n protected handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('igc-tab');\n\n if (!(tab && this.contains(tab)) || tab.disabled) {\n return;\n }\n\n tab.focus();\n this.setSelectedTab(tab);\n this.emitEvent('igcChange', { detail: this.activeTab });\n }\n\n protected handleKeyDown = (event: KeyboardEvent) => {\n const { key } = event;\n const enabledTabs = this.enabledTabs;\n const ltr = isLTR(this);\n\n let index = enabledTabs.indexOf(\n document.activeElement?.closest('igc-tab') as IgcTabComponent\n );\n\n switch (key) {\n case 'ArrowLeft':\n index = ltr\n ? (enabledTabs.length + index - 1) % enabledTabs.length\n : (index + 1) % enabledTabs.length;\n break;\n case 'ArrowRight':\n index = ltr\n ? (index + 1) % enabledTabs.length\n : (enabledTabs.length + index - 1) % enabledTabs.length;\n break;\n case 'Home':\n index = 0;\n break;\n case 'End':\n index = enabledTabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n this.setSelectedTab(enabledTabs[index]);\n break;\n default:\n return;\n }\n\n enabledTabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setSelectedTab(enabledTabs[index]);\n this.emitEvent('igcChange', { detail: this.activeTab });\n } else {\n enabledTabs[index].scrollIntoView({ block: 'nearest' });\n }\n\n event.preventDefault();\n };\n\n @eventOptions({ passive: true })\n protected handleScroll() {\n this.updateScrollButtons();\n }\n\n /** Selects the specified tab and displays the corresponding panel. */\n public select(name: string) {\n this.setSelectedTab(this.tabs.find((el) => el.panel === name));\n }\n\n protected renderScrollButton(direction: 'start' | 'end') {\n const start = direction === 'start';\n\n return this.showScrollButtons\n ? html`<igc-icon-button\n tabindex=\"-1\"\n aria-hidden=\"true\"\n size=\"large\"\n variant=\"flat\"\n collection=\"internal\"\n part=\"${direction}-scroll-button\"\n name=\"navigate_${start ? 'before' : 'next'}\"\n .disabled=${start\n ? this.disableStartScrollButton\n : this.disableEndScrollButton}\n @click=${() => this.scrollByTabOffset(direction)}\n ></igc-icon-button>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div part=\"headers\">\n ${this.renderScrollButton('start')}\n <div part=\"headers-content\" @scroll=${this.handleScroll}>\n <div part=\"headers-wrapper\">\n <div\n part=\"headers-scroll\"\n role=\"tablist\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <slot></slot>\n </div>\n <div part=\"selected-indicator\"></div>\n </div>\n </div>\n ${this.renderScrollButton('end')}\n </div>\n <div part=\"content\">\n <slot name=\"panel\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tabs': IgcTabsComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport {\n eventOptions,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/tabs.base.css.js';\nimport { styles as bootstrap } from './themes/light/tabs.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/tabs.fluent.css.js';\nimport { styles as indigo } from './themes/light/tabs.indigo.css.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { createCounter, getOffset, isLTR } from '../common/util.js';\nimport {\n getAttributesForTags,\n getNodesForTags,\n observerConfig,\n} from './utils.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcTabComponent from './tab.js';\nimport IgcTabPanelComponent from './tab-panel.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\n\ndefineComponents(IgcTabComponent, IgcTabPanelComponent, IgcIconButtonComponent);\n\nexport interface IgcTabsEventMap {\n igcChange: CustomEvent<IgcTabComponent>;\n}\n\n/**\n * Represents tabs component\n *\n * @element igc-tabs\n *\n * @fires igcChange - Emitted when the selected tab changes.\n *\n * @slot - Renders the tab header.\n * @slot panel - Renders the tab content.\n *\n * @csspart headers - The wrapper of the tabs including the headers content and the scroll buttons.\n * @csspart headers-content - The container for the tab headers.\n * @csspart headers-wrapper - The wrapper for the tab headers and the selected indicator.\n * @csspart headers-scroll - The container for the headers.\n * @csspart selected-indicator - The selected indicator.\n * @csspart start-scroll-button - The start scroll button displayed when the tabs overflow.\n * @csspart end-scroll-button - The end scroll button displayed when the tabs overflow.\n * @csspart content - The container for the tabs content.\n */\n@themes({ bootstrap, fluent, indigo })\n@blazorAdditionalDependencies('IgcTabComponent, IgcTabPanelComponent')\nexport default class IgcTabsComponent extends EventEmitterMixin<\n IgcTabsEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-tabs';\n\n public static styles = styles;\n private static readonly increment = createCounter();\n\n @queryAssignedElements({ selector: 'igc-tab' })\n protected tabs!: Array<IgcTabComponent>;\n\n @queryAssignedElements({ slot: 'panel' })\n protected panels!: Array<IgcTabPanelComponent>;\n\n @query('[part=\"headers-wrapper\"]', true)\n protected wrapper!: HTMLElement;\n\n @query('[part=\"headers-content\"]', true)\n protected container!: HTMLElement;\n\n @query('[part=\"selected-indicator\"]', true)\n protected selectedIndicator!: HTMLElement;\n\n @state()\n protected showScrollButtons = false;\n\n @state()\n protected disableStartScrollButton = true;\n\n @state()\n protected disableEndScrollButton = false;\n\n @state()\n protected activeTab?: IgcTabComponent;\n\n protected resizeObserver!: ResizeObserver;\n protected mutationObserver!: MutationObserver;\n\n protected get enabledTabs() {\n return this.tabs.filter((tab) => !tab.disabled);\n }\n\n /** Returns the currently selected tab. */\n public get selected(): string {\n return this.activeTab?.panel ?? '';\n }\n\n /**\n * Sets the alignment for the tab headers\n * @attr\n */\n @property({ reflect: true })\n public alignment: 'start' | 'end' | 'center' | 'justify' = 'start';\n\n /**\n * Determines the tab activation. When set to auto,\n * the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys\n * and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n * @attr\n */\n @property()\n public activation: 'auto' | 'manual' = 'auto';\n\n @watch('alignment', { waitUntilFirstUpdate: true })\n protected alignIndicator() {\n const styles: Partial<CSSStyleDeclaration> = {\n visibility: this.activeTab ? 'visible' : 'hidden',\n transitionDuration: '0.3s',\n };\n\n if (this.activeTab) {\n Object.assign(styles, {\n width: `${this.activeTab!.offsetWidth}px`,\n transform: `translate(${\n isLTR(this)\n ? getOffset(this.activeTab!, this.wrapper).left\n : getOffset(this.activeTab!, this.wrapper).right\n }px)`,\n });\n }\n\n Object.assign(this.selectedIndicator.style, styles);\n }\n\n protected override async firstUpdated() {\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n await this.updateComplete;\n\n this.syncAttributes();\n this.setupObserver();\n this.setSelectedTab(\n this.tabs.filter((tab) => tab.selected).at(-1) ?? this.enabledTabs.at(0)\n );\n this.updateSelectedTab();\n }\n\n public override disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n super.disconnectedCallback();\n }\n\n protected updateButtonsOnResize() {\n // Hide the buttons in the resize observer callback and synchronously update the DOM\n // in order to get the actual size\n this.showScrollButtons = false;\n this.performUpdate();\n\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n this.updateScrollButtons();\n }\n\n protected updateScrollButtons() {\n const { scrollLeft, offsetWidth } = this.container,\n { scrollWidth } = this.wrapper;\n\n this.disableEndScrollButton =\n scrollWidth <= Math.abs(scrollLeft) + offsetWidth;\n this.disableStartScrollButton = scrollLeft === 0;\n }\n\n protected setupObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateButtonsOnResize();\n this.alignIndicator();\n });\n\n [this.container, this.wrapper, ...this.tabs].forEach((element) =>\n this.resizeObserver.observe(element)\n );\n\n this.mutationObserver = new MutationObserver(async (records, observer) => {\n // Stop observing while handling changes\n observer.disconnect();\n\n const attributes = getAttributesForTags<IgcTabComponent>(\n records,\n 'igc-tab'\n ).filter((e) => e.closest(this.tagName)?.isSameNode(this));\n\n const changed = getNodesForTags<IgcTabComponent>(\n records,\n this,\n 'igc-tab'\n );\n\n if (attributes.length > 0) {\n this.activeTab = attributes.find((tab) => tab.selected);\n }\n\n if (changed) {\n changed.addedNodes.forEach((tab) => {\n this.resizeObserver.observe(tab);\n if (tab.selected) {\n this.activeTab = tab;\n }\n });\n changed.removedNodes.forEach((tab) => {\n this.resizeObserver.unobserve(tab);\n if (tab.selected || this.activeTab === tab) {\n this.activeTab = undefined;\n }\n });\n\n this.syncAttributes();\n }\n\n this.updateSelectedTab();\n this.activeTab?.scrollIntoView({ block: 'nearest' });\n this.alignIndicator();\n\n // Watch for changes again\n await this.updateComplete;\n observer.observe(this, observerConfig);\n });\n\n this.mutationObserver.observe(this, observerConfig);\n }\n\n protected updateSelectedTab() {\n this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));\n this.panels.forEach((panel) => {\n panel.hidden = panel.id !== this.activeTab?.panel;\n });\n }\n\n protected syncAttributes() {\n const prefix = this.id ? `${this.id}-` : '';\n this.tabs.forEach((tab, index) => {\n if (!tab.panel) {\n tab.panel =\n this.panels.at(index)?.id ??\n `${prefix}tab-${IgcTabsComponent.increment()}`;\n }\n this.panels\n .find((panel) => panel.id === tab.panel)\n ?.setAttribute('aria-labelledby', tab.id);\n });\n }\n\n private setSelectedTab(tab?: IgcTabComponent) {\n if (!tab || tab === this.activeTab) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.selected = false;\n }\n\n this.activeTab = tab;\n this.activeTab.selected = true;\n }\n\n protected scrollByTabOffset(direction: 'start' | 'end') {\n const { scrollLeft, offsetWidth } = this.container;\n const LTR = isLTR(this),\n next = direction === 'end';\n\n const pivot = Math.abs(next ? offsetWidth + scrollLeft : scrollLeft);\n\n let amount = this.tabs\n .map((tab) => ({\n start: LTR\n ? getOffset(tab, this.wrapper).left\n : Math.abs(getOffset(tab, this.wrapper).right),\n width: tab.offsetWidth,\n }))\n .filter((offset) =>\n next ? offset.start + offset.width > pivot : offset.start < pivot\n )\n .at(next ? 0 : -1)!.width;\n\n amount *= next ? 1 : -1;\n this.container.scrollBy({ left: LTR ? amount : -amount });\n }\n\n protected handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('igc-tab');\n\n if (!(tab && this.contains(tab)) || tab.disabled) {\n return;\n }\n\n tab.focus();\n this.setSelectedTab(tab);\n this.emitEvent('igcChange', { detail: this.activeTab });\n }\n\n protected handleKeyDown = (event: KeyboardEvent) => {\n const { key } = event;\n const enabledTabs = this.enabledTabs;\n const ltr = isLTR(this);\n\n let index = enabledTabs.indexOf(\n document.activeElement?.closest('igc-tab') as IgcTabComponent\n );\n\n switch (key) {\n case 'ArrowLeft':\n index = ltr\n ? (enabledTabs.length + index - 1) % enabledTabs.length\n : (index + 1) % enabledTabs.length;\n break;\n case 'ArrowRight':\n index = ltr\n ? (index + 1) % enabledTabs.length\n : (enabledTabs.length + index - 1) % enabledTabs.length;\n break;\n case 'Home':\n index = 0;\n break;\n case 'End':\n index = enabledTabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n this.setSelectedTab(enabledTabs[index]);\n break;\n default:\n return;\n }\n\n enabledTabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setSelectedTab(enabledTabs[index]);\n this.emitEvent('igcChange', { detail: this.activeTab });\n } else {\n enabledTabs[index].scrollIntoView({ block: 'nearest' });\n }\n\n event.preventDefault();\n };\n\n @eventOptions({ passive: true })\n protected handleScroll() {\n this.updateScrollButtons();\n }\n\n /** Selects the specified tab and displays the corresponding panel. */\n public select(name: string) {\n this.setSelectedTab(this.tabs.find((el) => el.panel === name));\n }\n\n protected renderScrollButton(direction: 'start' | 'end') {\n const start = direction === 'start';\n\n return this.showScrollButtons\n ? html`<igc-icon-button\n tabindex=\"-1\"\n aria-hidden=\"true\"\n size=\"large\"\n variant=\"flat\"\n collection=\"internal\"\n part=\"${direction}-scroll-button\"\n name=\"navigate_${start ? 'before' : 'next'}\"\n .disabled=${start\n ? this.disableStartScrollButton\n : this.disableEndScrollButton}\n @click=${() => this.scrollByTabOffset(direction)}\n ></igc-icon-button>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div part=\"headers\">\n ${this.renderScrollButton('start')}\n <div part=\"headers-content\" @scroll=${this.handleScroll}>\n <div part=\"headers-wrapper\">\n <div\n part=\"headers-scroll\"\n role=\"tablist\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <slot></slot>\n </div>\n <div part=\"selected-indicator\"></div>\n </div>\n </div>\n ${this.renderScrollButton('end')}\n </div>\n <div part=\"content\">\n <slot name=\"panel\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tabs': IgcTabsComponent;\n }\n}\n"]}
@@ -1,11 +1,10 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `:host {
3
3
  --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);
4
- --is-medium:
5
- min(
6
- clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
7
- clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
8
- );
4
+ --is-medium: min(
5
+ clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
6
+ clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
7
+ );
9
8
  --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);
10
9
  position: relative;
11
10
  -webkit-box-sizing: border-box;
@@ -1 +1 @@
1
- {"version":3,"file":"tab-panel.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tab-panel.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n:host(:not([hidden])) {\n display: block;\n}`;\n"]}
1
+ {"version":3,"file":"tab-panel.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tab-panel.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium: min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n:host(:not([hidden])) {\n display: block;\n}`;\n"]}
@@ -1,11 +1,10 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `:host {
3
3
  --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);
4
- --is-medium:
5
- min(
6
- clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
7
- clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
8
- );
4
+ --is-medium: min(
5
+ clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
6
+ clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
7
+ );
9
8
  --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);
10
9
  position: relative;
11
10
  -webkit-box-sizing: border-box;
@@ -1 +1 @@
1
- {"version":3,"file":"tab.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tab.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0IvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n min-width: 5.625rem;\n max-width: 22.5rem;\n word-wrap: break-word;\n padding: 0.75rem 1rem;\n overflow: hidden;\n cursor: pointer;\n position: relative;\n -webkit-transition: all 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n -o-transition: all 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n transition: all 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host(:hover),\n:host(:focus-within) {\n background: var(--hover-background, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host([selected]) {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n:host([selected]) ::slotted(igc-icon) {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([selected]:hover),\n:host([selected]:focus-within) {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([disabled]) {\n pointer-events: none;\n cursor: initial;\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n[part=base] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n outline-style: none;\n gap: 0.5rem;\n}\n\n[part=content] {\n font-family: var(--ig-button-font-family, var(--ig-font-family));\n font-size: var(--ig-button-font-size);\n font-weight: var(--ig-button-font-weight);\n font-style: var(--ig-button-font-style);\n line-height: var(--ig-button-line-height);\n letter-spacing: var(--ig-button-letter-spacing);\n text-transform: var(--ig-button-text-transform);\n margin-top: var(--ig-button-margin-top);\n margin-bottom: var(--ig-button-margin-bottom);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n text-align: center;\n outline-style: none;\n gap: 0.5rem;\n}\n[part=content] ::slotted(*) {\n display: -webkit-inline-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n::slotted(igc-icon) {\n --size: 1.5rem;\n}`;\n"]}
1
+ {"version":3,"file":"tab.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tab.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyIvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium: min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n min-width: 5.625rem;\n max-width: 22.5rem;\n word-wrap: break-word;\n padding: 0.75rem 1rem;\n overflow: hidden;\n cursor: pointer;\n position: relative;\n -webkit-transition: all 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n -o-transition: all 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n transition: all 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host(:hover),\n:host(:focus-within) {\n background: var(--hover-background, hsla(var(--ig-gray-200), var(--ig-gray-a)));\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host([selected]) {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n:host([selected]) ::slotted(igc-icon) {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([selected]:hover),\n:host([selected]:focus-within) {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([disabled]) {\n pointer-events: none;\n cursor: initial;\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n[part=base] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n outline-style: none;\n gap: 0.5rem;\n}\n\n[part=content] {\n font-family: var(--ig-button-font-family, var(--ig-font-family));\n font-size: var(--ig-button-font-size);\n font-weight: var(--ig-button-font-weight);\n font-style: var(--ig-button-font-style);\n line-height: var(--ig-button-line-height);\n letter-spacing: var(--ig-button-letter-spacing);\n text-transform: var(--ig-button-text-transform);\n margin-top: var(--ig-button-margin-top);\n margin-bottom: var(--ig-button-margin-bottom);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n text-align: center;\n outline-style: none;\n gap: 0.5rem;\n}\n[part=content] ::slotted(*) {\n display: -webkit-inline-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n::slotted(igc-icon) {\n --size: 1.5rem;\n}`;\n"]}
@@ -1,11 +1,10 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `:host {
3
3
  --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);
4
- --is-medium:
5
- min(
6
- clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
7
- clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
8
- );
4
+ --is-medium: min(
5
+ clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
6
+ clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
7
+ );
9
8
  --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);
10
9
  position: relative;
11
10
  -webkit-box-sizing: border-box;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tabs.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+LvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow: hidden;\n}\n\n:host([alignment=start]) [part=headers-scroll] ::slotted(igc-tab:last-of-type) {\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n}\n\n:host([alignment=end]) [part=headers-scroll] ::slotted(igc-tab:first-of-type) {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n}\n\n:host([alignment=center]) [part=headers-scroll] ::slotted(igc-tab:first-of-type) {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n}\n:host([alignment=center]) [part=headers-scroll] ::slotted(igc-tab:last-of-type) {\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n}\n\n:host([alignment=justify]) [part=headers-scroll] ::slotted(igc-tab) {\n -ms-flex-preferred-size: 100px;\n flex-basis: 100px;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n[part=headers] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n min-height: 2.625rem;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n -webkit-box-flex: 0;\n -ms-flex: none;\n flex: none;\n}\n\n[part=headers-content] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n scroll-behavior: smooth;\n overflow: hidden;\n}\n\n[part=headers-wrapper] {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n[part=headers-scroll] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n}\n\n[part=content] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n overflow: hidden;\n}\n\n[part=selected-indicator] {\n position: absolute;\n inset-inline-start: 0;\n bottom: 0;\n -webkit-transform: translateX(0);\n -ms-transform: translateX(0);\n transform: translateX(0);\n height: 0.125rem;\n min-width: 5.625rem;\n background: hsla(var(--ig-primary-500), var(--ig-primary-a));\n -webkit-transition: width 0.2s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n transition: width 0.2s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n -o-transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.2s cubic-bezier(0.35, 0, 0.25, 1);\n transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.2s cubic-bezier(0.35, 0, 0.25, 1);\n transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.2s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n}\n\n[part=start-scroll-button],\n[part=end-scroll-button] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n z-index: 1;\n border: none;\n padding: 0;\n min-width: 3rem;\n width: 3rem;\n cursor: pointer;\n position: relative;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n}\n[part=start-scroll-button]:hover, [part=start-scroll-button]:focus,\n[part=end-scroll-button]:hover,\n[part=end-scroll-button]:focus {\n background: hsla(var(--ig-gray-100), var(--ig-gray-a));\n}\n[part=start-scroll-button] ::slotted(*),\n[part=end-scroll-button] ::slotted(*) {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n\nigc-icon-button::part(base) {\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\nigc-icon-button::part(base):hover, igc-icon-button::part(base):focus-within {\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n background: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n\nigc-icon-button[disabled]::part(base) {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([dir=rtl]) [part=start-scroll-button],\n:host([dir=rtl]) [part=end-scroll-button] {\n -webkit-transform: scaleX(-1);\n -ms-transform: scaleX(-1);\n transform: scaleX(-1);\n}`;\n"]}
1
+ {"version":3,"file":"tabs.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/light/tabs.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8LvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium: min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow: hidden;\n}\n\n:host([alignment=start]) [part=headers-scroll] ::slotted(igc-tab:last-of-type) {\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n}\n\n:host([alignment=end]) [part=headers-scroll] ::slotted(igc-tab:first-of-type) {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n}\n\n:host([alignment=center]) [part=headers-scroll] ::slotted(igc-tab:first-of-type) {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n}\n:host([alignment=center]) [part=headers-scroll] ::slotted(igc-tab:last-of-type) {\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n}\n\n:host([alignment=justify]) [part=headers-scroll] ::slotted(igc-tab) {\n -ms-flex-preferred-size: 100px;\n flex-basis: 100px;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n[part=headers] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n min-height: 2.625rem;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n -webkit-box-flex: 0;\n -ms-flex: none;\n flex: none;\n}\n\n[part=headers-content] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n scroll-behavior: smooth;\n overflow: hidden;\n}\n\n[part=headers-wrapper] {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n[part=headers-scroll] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n height: 100%;\n}\n\n[part=content] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n overflow: hidden;\n}\n\n[part=selected-indicator] {\n position: absolute;\n inset-inline-start: 0;\n bottom: 0;\n -webkit-transform: translateX(0);\n -ms-transform: translateX(0);\n transform: translateX(0);\n height: 0.125rem;\n min-width: 5.625rem;\n background: hsla(var(--ig-primary-500), var(--ig-primary-a));\n -webkit-transition: width 0.2s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n transition: width 0.2s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n -o-transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.2s cubic-bezier(0.35, 0, 0.25, 1);\n transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.2s cubic-bezier(0.35, 0, 0.25, 1);\n transition: transform 0.3s cubic-bezier(0.35, 0, 0.25, 1), width 0.2s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 0.3s cubic-bezier(0.35, 0, 0.25, 1);\n}\n\n[part=start-scroll-button],\n[part=end-scroll-button] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n z-index: 1;\n border: none;\n padding: 0;\n min-width: 3rem;\n width: 3rem;\n cursor: pointer;\n position: relative;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n}\n[part=start-scroll-button]:hover, [part=start-scroll-button]:focus,\n[part=end-scroll-button]:hover,\n[part=end-scroll-button]:focus {\n background: hsla(var(--ig-gray-100), var(--ig-gray-a));\n}\n[part=start-scroll-button] ::slotted(*),\n[part=end-scroll-button] ::slotted(*) {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n\nigc-icon-button::part(base) {\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\nigc-icon-button::part(base):hover, igc-icon-button::part(base):focus-within {\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n background: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n\nigc-icon-button[disabled]::part(base) {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([dir=rtl]) [part=start-scroll-button],\n:host([dir=rtl]) [part=end-scroll-button] {\n -webkit-transform: scaleX(-1);\n -ms-transform: scaleX(-1);\n transform: scaleX(-1);\n}`;\n"]}
@@ -10,6 +10,7 @@ export default class IgcToastComponent extends LitElement {
10
10
  static readonly tagName = "igc-toast";
11
11
  static styles: import("lit").CSSResult[];
12
12
  private displayTimeout;
13
+ private animationPlayer;
13
14
  /**
14
15
  * Determines whether the toast is opened.
15
16
  * @attr
@@ -25,8 +26,10 @@ export default class IgcToastComponent extends LitElement {
25
26
  * @attr keep-open
26
27
  */
27
28
  keepOpen: boolean;
29
+ firstUpdated(): void;
30
+ private toggleAnimation;
28
31
  /** Closes the toast. */
29
- hide(): void;
32
+ hide(): Promise<void>;
30
33
  /** Opens the toast. */
31
34
  show(): void;
32
35
  /** Toggles the open state of the toast. */
@@ -11,6 +11,7 @@ import { styles } from './themes/toast.base.css.js';
11
11
  import { styles as bootstrap } from './themes/toast.bootstrap.css.js';
12
12
  import { styles as fluent } from './themes/toast.fluent.css.js';
13
13
  import { styles as indigo } from './themes/toast.indigo.css.js';
14
+ import { AnimationPlayer, fadeIn, fadeOut } from '../../animations/index.js';
14
15
  let IgcToastComponent = class IgcToastComponent extends LitElement {
15
16
  constructor() {
16
17
  super(...arguments);
@@ -18,18 +19,32 @@ let IgcToastComponent = class IgcToastComponent extends LitElement {
18
19
  this.displayTime = 4000;
19
20
  this.keepOpen = false;
20
21
  }
21
- hide() {
22
+ firstUpdated() {
23
+ this.animationPlayer = new AnimationPlayer(this);
24
+ }
25
+ async toggleAnimation(dir) {
26
+ const animation = dir === 'open' ? fadeIn : fadeOut;
27
+ const [_, event] = await Promise.all([
28
+ this.animationPlayer.stopAll(),
29
+ this.animationPlayer.play(animation),
30
+ ]);
31
+ return event.type === 'finish';
32
+ }
33
+ async hide() {
22
34
  if (this.open) {
35
+ await this.toggleAnimation('close');
23
36
  this.open = false;
24
37
  }
25
38
  }
26
39
  show() {
27
40
  window.clearTimeout(this.displayTimeout);
28
41
  if (!this.open) {
42
+ this.toggleAnimation('open');
29
43
  this.open = true;
30
44
  }
31
45
  if (this.keepOpen === false) {
32
- this.displayTimeout = setTimeout(() => {
46
+ this.displayTimeout = setTimeout(async () => {
47
+ await this.toggleAnimation('close');
33
48
  this.open = false;
34
49
  }, this.displayTime);
35
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/toast/toast.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAWjD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAWN,SAAI,GAAG,KAAK,CAAC;QAOb,gBAAW,GAAG,IAAI,CAAC;QAOnB,aAAQ,GAAG,KAAK,CAAC;IA8C1B,CAAC;IA3CQ,IAAI;QACT,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB;IACH,CAAC;IAGM,IAAI;QACT,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YACpB,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACtB;IACH,CAAC;IAGM,MAAM;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;SAC1C;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AArEsB,yBAAO,GAAG,WAAW,CAAC;AACtB,wBAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AASzC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACvB;AAOpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;sDAC5C;AAO1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;mDAC3C;AAzBL,iBAAiB;IADrC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;GACjB,iBAAiB,CAuErC;eAvEoB,iBAAiB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/toast.base.css.js';\nimport { styles as bootstrap } from './themes/toast.bootstrap.css.js';\nimport { styles as fluent } from './themes/toast.fluent.css.js';\nimport { styles as indigo } from './themes/toast.indigo.css.js';\n\n/**\n * A toast component is used to show a notification\n *\n * @element igc-toast\n *\n * @csspart base - The base wrapper of the toast.\n */\n\n@themes({ bootstrap, fluent, indigo })\nexport default class IgcToastComponent extends LitElement {\n public static readonly tagName = 'igc-toast';\n public static override styles = [styles];\n\n private displayTimeout!: ReturnType<typeof setTimeout>;\n\n /**\n * Determines whether the toast is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Determines the time after which the toast will close\n * @attr display-time\n */\n @property({ type: Number, reflect: false, attribute: 'display-time' })\n public displayTime = 4000;\n\n /**\n * Determines whether the toast is closed automatically or not.\n * @attr keep-open\n */\n @property({ type: Boolean, reflect: true, attribute: 'keep-open' })\n public keepOpen = false;\n\n /** Closes the toast. */\n public hide() {\n if (this.open) {\n this.open = false;\n }\n }\n\n /** Opens the toast. */\n public show() {\n window.clearTimeout(this.displayTimeout);\n\n if (!this.open) {\n this.open = true;\n }\n\n if (this.keepOpen === false) {\n this.displayTimeout = setTimeout(() => {\n this.open = false;\n }, this.displayTime);\n }\n }\n\n /** Toggles the open state of the toast. */\n public toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alert');\n }\n if (!this.hasAttribute('aria-live')) {\n this.setAttribute('aria-live', 'polite');\n }\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toast': IgcToastComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/toast/toast.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/toast.base.css.js';\nimport { styles as bootstrap } from './themes/toast.bootstrap.css.js';\nimport { styles as fluent } from './themes/toast.fluent.css.js';\nimport { styles as indigo } from './themes/toast.indigo.css.js';\nimport { AnimationPlayer, fadeIn, fadeOut } from '../../animations/index.js';\n\n/**\n * A toast component is used to show a notification\n *\n * @element igc-toast\n *\n * @csspart base - The base wrapper of the toast.\n */\n\n@themes({ bootstrap, fluent, indigo })\nexport default class IgcToastComponent extends LitElement {\n public static readonly tagName = 'igc-toast';\n public static override styles = [styles];\n\n private displayTimeout!: ReturnType<typeof setTimeout>;\n private animationPlayer!: AnimationPlayer;\n\n /**\n * Determines whether the toast is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Determines the time after which the toast will close\n * @attr display-time\n */\n @property({ type: Number, reflect: false, attribute: 'display-time' })\n public displayTime = 4000;\n\n /**\n * Determines whether the toast is closed automatically or not.\n * @attr keep-open\n */\n @property({ type: Boolean, reflect: true, attribute: 'keep-open' })\n public keepOpen = false;\n\n public override firstUpdated() {\n this.animationPlayer = new AnimationPlayer(this);\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation),\n ]);\n\n return event.type === 'finish';\n }\n\n /** Closes the toast. */\n public async hide() {\n if (this.open) {\n await this.toggleAnimation('close');\n this.open = false;\n }\n }\n\n /** Opens the toast. */\n public show() {\n window.clearTimeout(this.displayTimeout);\n\n if (!this.open) {\n this.toggleAnimation('open');\n this.open = true;\n }\n\n if (this.keepOpen === false) {\n this.displayTimeout = setTimeout(async () => {\n await this.toggleAnimation('close');\n this.open = false;\n }, this.displayTime);\n }\n }\n\n /** Toggles the open state of the toast. */\n public toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alert');\n }\n if (!this.hasAttribute('aria-live')) {\n this.setAttribute('aria-live', 'polite');\n }\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toast': IgcToastComponent;\n }\n}\n"]}
@@ -3,10 +3,16 @@ import type { IgcToggleOptions } from './types.js';
3
3
  import type { IgcToggleController } from './toggle.controller.js';
4
4
  export declare class IgcToggleDirective extends Directive {
5
5
  private part;
6
- private shiftOptions?;
7
- private floatingElement;
6
+ private _floatingElement;
7
+ private _dispose;
8
+ private target;
9
+ private options;
10
+ private controller?;
11
+ private get floatingElement();
12
+ private dispose;
13
+ private notifyController;
8
14
  private updatePosition;
9
- private createFloatingElement;
15
+ private reposition;
10
16
  private createMiddleware;
11
17
  constructor(partInfo: PartInfo);
12
18
  render(target: HTMLElement, options: IgcToggleOptions, controller?: IgcToggleController): symbol;
@@ -1,41 +1,37 @@
1
- import { computePosition, flip, offset, shift, size, } from '@floating-ui/dom';
1
+ import { computePosition, flip, offset, shift, size, autoUpdate, } from '@floating-ui/dom';
2
2
  import { directive, Directive, PartType, } from 'lit/directive.js';
3
3
  import { noChange } from 'lit';
4
4
  export class IgcToggleDirective extends Directive {
5
- updatePosition(target, options, controller) {
6
- var _a, _b;
7
- this.floatingElement = this.createFloatingElement(options.open);
8
- if (!target) {
9
- if (controller) {
10
- controller.rendered = Promise.resolve();
11
- }
12
- return noChange;
5
+ get floatingElement() {
6
+ if (!this._floatingElement) {
7
+ this._floatingElement = this.part.element;
13
8
  }
14
- const promise = computePosition(target, this.floatingElement, {
15
- placement: (_a = options.placement) !== null && _a !== void 0 ? _a : 'bottom-start',
16
- strategy: (_b = options.positionStrategy) !== null && _b !== void 0 ? _b : 'absolute',
17
- middleware: this.createMiddleware(options),
18
- }).then(({ x, y }) => {
19
- Object.assign(this.floatingElement.style, {
20
- left: 0,
21
- top: 0,
22
- transform: `translate(${x}px,${y}px)`,
23
- });
9
+ Object.assign(this._floatingElement.style, {
10
+ display: this.options.open ? '' : 'none',
24
11
  });
25
- if (controller) {
26
- controller.rendered = promise;
12
+ return this._floatingElement;
13
+ }
14
+ dispose() {
15
+ if (this._dispose) {
16
+ this._dispose();
17
+ }
18
+ }
19
+ notifyController(promise) {
20
+ if (this.controller) {
21
+ this.controller.rendered = promise;
27
22
  }
28
- return noChange;
29
23
  }
30
- createFloatingElement(open = false) {
31
- if (!this.floatingElement) {
32
- this.floatingElement = this.part.element;
24
+ updatePosition() {
25
+ this.dispose();
26
+ if (!this.floatingElement || !this.target || !this.options.open) {
27
+ return noChange;
33
28
  }
34
- this.floatingElement.style.display = open ? '' : 'none';
35
- return this.floatingElement;
29
+ this._dispose = autoUpdate(this.target, this.floatingElement, this.reposition);
30
+ return noChange;
36
31
  }
37
32
  createMiddleware(options) {
38
33
  const middleware = [];
34
+ const { style: floatingStyles } = this._floatingElement;
39
35
  if (options.distance) {
40
36
  middleware.push(offset({
41
37
  mainAxis: options.distance,
@@ -44,27 +40,46 @@ export class IgcToggleDirective extends Directive {
44
40
  if (options.flip) {
45
41
  middleware.push(flip());
46
42
  }
47
- if (this.shiftOptions) {
48
- middleware.push(shift(this.shiftOptions));
49
- }
50
- Object.assign(this.floatingElement.style, { width: '' });
43
+ middleware.push(shift({
44
+ mainAxis: true,
45
+ }));
51
46
  if (options.sameWidth) {
52
- const floatingElement = this.floatingElement;
53
47
  middleware.push(size({
54
- apply: (args) => {
55
- const { rects } = args;
56
- Object.assign(floatingElement.style, {
48
+ apply: ({ rects }) => {
49
+ Object.assign(floatingStyles, {
57
50
  width: `${rects.reference.width}px`,
58
51
  });
59
52
  },
60
53
  }));
61
54
  }
55
+ else {
56
+ Object.assign(floatingStyles, { width: '' });
57
+ }
62
58
  return middleware;
63
59
  }
64
60
  constructor(partInfo) {
65
61
  super(partInfo);
66
- this.shiftOptions = {
67
- mainAxis: true,
62
+ this.reposition = () => {
63
+ var _a, _b;
64
+ if (!this.target) {
65
+ this.dispose();
66
+ this.notifyController(Promise.resolve());
67
+ return noChange;
68
+ }
69
+ const config = {
70
+ placement: (_a = this.options.placement) !== null && _a !== void 0 ? _a : 'bottom-start',
71
+ strategy: (_b = this.options.positionStrategy) !== null && _b !== void 0 ? _b : 'absolute',
72
+ middleware: this.createMiddleware(this.options),
73
+ };
74
+ const promise = computePosition(this.target, this.floatingElement, config).then(({ x, y }) => {
75
+ Object.assign(this.floatingElement.style, {
76
+ left: 0,
77
+ top: 0,
78
+ transform: `translate(${x}px,${y}px)`,
79
+ });
80
+ });
81
+ this.notifyController(promise);
82
+ return noChange;
68
83
  };
69
84
  this.part = partInfo;
70
85
  if (partInfo.type !== PartType.ELEMENT) {
@@ -72,7 +87,8 @@ export class IgcToggleDirective extends Directive {
72
87
  }
73
88
  }
74
89
  render(target, options, controller) {
75
- return this.updatePosition(target, options, controller);
90
+ Object.assign(this, { target, options, controller });
91
+ return this.updatePosition();
76
92
  }
77
93
  }
78
94
  export const igcToggle = directive(IgcToggleDirective);
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.directive.js","sourceRoot":"","sources":["../../../src/components/toggle/toggle.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computePosition,\n flip,\n offset,\n shift,\n size,\n Middleware,\n} from '@floating-ui/dom';\nimport {\n directive,\n Directive,\n PartInfo,\n ElementPart,\n PartType,\n} from 'lit/directive.js';\nimport { noChange } from 'lit';\nimport type { IgcToggleOptions } from './types.js';\nimport type { IgcToggleController } from './toggle.controller.js';\n\n/* blazorSuppressComponent */\nexport class IgcToggleDirective extends Directive {\n private part: PartInfo;\n private shiftOptions? = {\n mainAxis: true,\n };\n\n private floatingElement!: HTMLElement;\n\n private updatePosition(\n target: HTMLElement,\n options: IgcToggleOptions,\n controller?: IgcToggleController\n ) {\n this.floatingElement = this.createFloatingElement(options.open);\n\n if (!target) {\n if (controller) {\n controller.rendered = Promise.resolve();\n }\n return noChange;\n }\n\n const promise = computePosition(target, this.floatingElement, {\n placement: options.placement ?? 'bottom-start',\n strategy: options.positionStrategy ?? 'absolute',\n middleware: this.createMiddleware(options),\n }).then(({ x, y }) => {\n Object.assign(this.floatingElement.style, {\n left: 0,\n top: 0,\n transform: `translate(${x}px,${y}px)`,\n });\n });\n\n if (controller) {\n controller.rendered = promise;\n }\n\n return noChange;\n }\n\n private createFloatingElement(open = false) {\n if (!this.floatingElement) {\n this.floatingElement = (this.part as ElementPart).element as HTMLElement;\n }\n\n this.floatingElement.style.display = open ? '' : 'none';\n\n return this.floatingElement;\n }\n\n private createMiddleware(options: IgcToggleOptions) {\n const middleware: Middleware[] = [];\n\n if (options.distance) {\n middleware.push(\n offset({\n mainAxis: options.distance,\n })\n );\n }\n\n if (options.flip) {\n middleware.push(flip());\n }\n\n if (this.shiftOptions) {\n middleware.push(shift(this.shiftOptions));\n }\n\n // Toggling `sameWidth` does not reset the applied style on the floater element\n Object.assign(this.floatingElement.style, { width: '' });\n\n if (options.sameWidth) {\n const floatingElement = this.floatingElement;\n middleware.push(\n size({\n apply: (args) => {\n const { rects } = args;\n Object.assign(floatingElement.style, {\n width: `${rects.reference.width}px`,\n });\n },\n })\n );\n }\n\n return middleware;\n }\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n this.part = partInfo;\n if (partInfo.type !== PartType.ELEMENT) {\n throw new Error(\n 'The `igcToggle` directive must be attached to an element tag.'\n );\n }\n }\n\n public render(\n target: HTMLElement,\n options: IgcToggleOptions,\n controller?: IgcToggleController\n ) {\n return this.updatePosition(target, options, controller);\n }\n}\n\nexport const igcToggle = directive(IgcToggleDirective);\n"]}
1
+ {"version":3,"file":"toggle.directive.js","sourceRoot":"","sources":["../../../src/components/toggle/toggle.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computePosition,\n flip,\n offset,\n shift,\n size,\n Middleware,\n autoUpdate,\n ComputePositionConfig,\n} from '@floating-ui/dom';\nimport {\n directive,\n Directive,\n PartInfo,\n ElementPart,\n PartType,\n} from 'lit/directive.js';\nimport { noChange } from 'lit';\nimport type { IgcToggleOptions } from './types.js';\nimport type { IgcToggleController } from './toggle.controller.js';\n\n/* blazorSuppressComponent */\nexport class IgcToggleDirective extends Directive {\n private part: PartInfo;\n\n private _floatingElement!: HTMLElement;\n private _dispose!: Function;\n\n private target!: HTMLElement;\n private options!: IgcToggleOptions;\n private controller?: IgcToggleController;\n\n private get floatingElement() {\n if (!this._floatingElement) {\n this._floatingElement = (this.part as ElementPart).element as HTMLElement;\n }\n\n Object.assign(this._floatingElement.style, {\n display: this.options.open ? '' : 'none',\n });\n\n return this._floatingElement;\n }\n\n private dispose() {\n if (this._dispose) {\n this._dispose();\n }\n }\n\n private notifyController(promise: Promise<void>) {\n if (this.controller) {\n this.controller.rendered = promise;\n }\n }\n\n private updatePosition() {\n this.dispose();\n\n if (!this.floatingElement || !this.target || !this.options.open) {\n return noChange;\n }\n\n this._dispose = autoUpdate(\n this.target,\n this.floatingElement,\n this.reposition\n );\n\n return noChange;\n }\n\n private reposition = () => {\n if (!this.target) {\n this.dispose();\n this.notifyController(Promise.resolve());\n return noChange;\n }\n\n const config: Partial<ComputePositionConfig> = {\n placement: this.options.placement ?? 'bottom-start',\n strategy: this.options.positionStrategy ?? 'absolute',\n middleware: this.createMiddleware(this.options),\n };\n\n const promise = computePosition(\n this.target,\n this.floatingElement,\n config\n ).then(({ x, y }) => {\n Object.assign(this.floatingElement.style, {\n left: 0,\n top: 0,\n transform: `translate(${x}px,${y}px)`,\n });\n });\n\n this.notifyController(promise);\n return noChange;\n };\n\n private createMiddleware(options: IgcToggleOptions) {\n const middleware: Middleware[] = [];\n const { style: floatingStyles } = this._floatingElement;\n\n if (options.distance) {\n middleware.push(\n offset({\n mainAxis: options.distance,\n })\n );\n }\n\n if (options.flip) {\n middleware.push(flip());\n }\n\n middleware.push(\n shift({\n mainAxis: true,\n })\n );\n\n if (options.sameWidth) {\n middleware.push(\n size({\n apply: ({ rects }) => {\n Object.assign(floatingStyles, {\n width: `${rects.reference.width}px`,\n });\n },\n })\n );\n } else {\n // Reset previously applied `same-width` styles\n Object.assign(floatingStyles, { width: '' });\n }\n\n return middleware;\n }\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n this.part = partInfo;\n if (partInfo.type !== PartType.ELEMENT) {\n throw new Error(\n 'The `igcToggle` directive must be attached to an element tag.'\n );\n }\n }\n\n public render(\n target: HTMLElement,\n options: IgcToggleOptions,\n controller?: IgcToggleController\n ) {\n Object.assign(this, { target, options, controller });\n return this.updatePosition();\n }\n}\n\nexport const igcToggle = directive(IgcToggleDirective);\n"]}
@@ -1,11 +1,10 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `:host {
3
3
  --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);
4
- --is-medium:
5
- min(
6
- clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
7
- clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
8
- );
4
+ --is-medium: min(
5
+ clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),
6
+ clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)
7
+ );
9
8
  --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);
10
9
  position: relative;
11
10
  -webkit-box-sizing: border-box;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-item.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tree/themes/light/tree-item.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmLvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n --size: max(var(--is-large, 1) * max(3.125rem, -1 * 3.125rem), var(--is-medium, 1) * max(2.5rem, -1 * 2.5rem), var(--is-small, 1) * max(2rem, -1 * 2rem));\n --igc-tree-indentation-size: 24px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n font-family: inherit;\n}\n\n:host(:focus-within) {\n outline: none;\n}\n\n:host([disabled]) {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n}\n\n[part~=wrapper] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n color: var(--ig-surface-500-contrast);\n height: var(--size);\n padding: 0 max(var(--is-large, 1) * max(24px, -1 * 24px) * var(--ig-spacing-large, var(--ig-spacing, --ig-spacing)), var(--is-medium, 1) * max(16px, -1 * 16px) * var(--ig-spacing-medium, var(--ig-spacing, --ig-spacing)), var(--is-small, 1) * max(12px, -1 * 12px) * var(--ig-spacing-small, var(--ig-spacing, --ig-spacing)));\n}\n[part~=wrapper]::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 0;\n background: transparent;\n}\n[part~=wrapper]:hover::after {\n background: var(--hover-color, hsla(var(--ig-gray-900), 0.1));\n}\n\n[part~=active] {\n background: hsla(var(--ig-gray-200), var(--ig-gray-a));\n color: var(--ig-gray-200-contrast);\n}\n\n[part~=selected] {\n background: hsla(var(--ig-secondary-200), var(--ig-secondary-a));\n color: var(--ig-secondary-200-contrast);\n}\n\n[part~=selected][part~=focused][part~=active],\n[part~=selected][part~=focused],\n[part~=selected][part~=active] {\n background: hsla(var(--ig-secondary-300), var(--ig-secondary-a));\n color: var(--ig-secondary-300-contrast);\n}\n\n[part~=focused] {\n -webkit-box-shadow: inset 0 0 0 1px hsla(var(--ig-secondary-500), var(--ig-secondary-a));\n box-shadow: inset 0 0 0 1px hsla(var(--ig-secondary-500), var(--ig-secondary-a));\n}\n\n[part~=indicator] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n z-index: 1;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-margin-end: 0.25rem;\n margin-inline-end: 0.25rem;\n min-width: 1.5rem;\n}\n[part~=indicator] igc-icon {\n width: 1.5rem;\n height: 1.5rem;\n font-size: 1.5rem;\n}\n\n[part~=label] {\n display: block;\n font-family: var(--ig-body-2-font-family, var(--ig-font-family));\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n margin: 0;\n}\n\n[part~=label],\n[part~=text] {\n z-index: 1;\n white-space: nowrap;\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n[part~=select] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n z-index: 1;\n -webkit-margin-end: 0.25rem;\n margin-inline-end: 0.25rem;\n}\n[part~=select] igc-checkbox::part(label) {\n display: none;\n}\n\n[part~=large] igc-circular-progress {\n --diameter: 1.5rem;\n}\n\n[part~=medium] igc-circular-progress {\n --diameter: 1.25rem;\n}\n\n[part~=small] igc-circular-progress {\n --diameter: 1.125rem;\n}`;\n"]}
1
+ {"version":3,"file":"tree-item.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tree/themes/light/tree-item.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkLvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium: min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n --size: max(var(--is-large, 1) * max(3.125rem, -1 * 3.125rem), var(--is-medium, 1) * max(2.5rem, -1 * 2.5rem), var(--is-small, 1) * max(2rem, -1 * 2rem));\n --igc-tree-indentation-size: 24px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n font-family: inherit;\n}\n\n:host(:focus-within) {\n outline: none;\n}\n\n:host([disabled]) {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n}\n\n[part~=wrapper] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n color: var(--ig-surface-500-contrast);\n height: var(--size);\n padding: 0 max(var(--is-large, 1) * max(24px, -1 * 24px) * var(--ig-spacing-large, var(--ig-spacing, --ig-spacing)), var(--is-medium, 1) * max(16px, -1 * 16px) * var(--ig-spacing-medium, var(--ig-spacing, --ig-spacing)), var(--is-small, 1) * max(12px, -1 * 12px) * var(--ig-spacing-small, var(--ig-spacing, --ig-spacing)));\n}\n[part~=wrapper]::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 0;\n background: transparent;\n}\n[part~=wrapper]:hover::after {\n background: var(--hover-color, hsla(var(--ig-gray-900), 0.1));\n}\n\n[part~=active] {\n background: hsla(var(--ig-gray-200), var(--ig-gray-a));\n color: var(--ig-gray-200-contrast);\n}\n\n[part~=selected] {\n background: hsla(var(--ig-secondary-200), var(--ig-secondary-a));\n color: var(--ig-secondary-200-contrast);\n}\n\n[part~=selected][part~=focused][part~=active],\n[part~=selected][part~=focused],\n[part~=selected][part~=active] {\n background: hsla(var(--ig-secondary-300), var(--ig-secondary-a));\n color: var(--ig-secondary-300-contrast);\n}\n\n[part~=focused] {\n -webkit-box-shadow: inset 0 0 0 1px hsla(var(--ig-secondary-500), var(--ig-secondary-a));\n box-shadow: inset 0 0 0 1px hsla(var(--ig-secondary-500), var(--ig-secondary-a));\n}\n\n[part~=indicator] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n z-index: 1;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-margin-end: 0.25rem;\n margin-inline-end: 0.25rem;\n min-width: 1.5rem;\n}\n[part~=indicator] igc-icon {\n width: 1.5rem;\n height: 1.5rem;\n font-size: 1.5rem;\n}\n\n[part~=label] {\n display: block;\n font-family: var(--ig-body-2-font-family, var(--ig-font-family));\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n margin: 0;\n}\n\n[part~=label],\n[part~=text] {\n z-index: 1;\n white-space: nowrap;\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n[part~=select] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n z-index: 1;\n -webkit-margin-end: 0.25rem;\n margin-inline-end: 0.25rem;\n}\n[part~=select] igc-checkbox::part(label) {\n display: none;\n}\n\n[part~=large] igc-circular-progress {\n --diameter: 1.5rem;\n}\n\n[part~=medium] igc-circular-progress {\n --diameter: 1.25rem;\n}\n\n[part~=small] igc-circular-progress {\n --diameter: 1.125rem;\n}`;\n"]}