igniteui-webcomponents 6.2.1 → 6.3.0-RC.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 (356) hide show
  1. package/components/accordion/accordion.js +3 -4
  2. package/components/accordion/accordion.js.map +1 -1
  3. package/components/avatar/avatar.js +3 -4
  4. package/components/avatar/avatar.js.map +1 -1
  5. package/components/badge/badge.js +3 -4
  6. package/components/badge/badge.js.map +1 -1
  7. package/components/banner/banner.js +3 -4
  8. package/components/banner/banner.js.map +1 -1
  9. package/components/button/button-base.js +1 -1
  10. package/components/button/button-base.js.map +1 -1
  11. package/components/button/button.js +3 -4
  12. package/components/button/button.js.map +1 -1
  13. package/components/button/icon-button.js +3 -4
  14. package/components/button/icon-button.js.map +1 -1
  15. package/components/button-group/button-group.js +3 -4
  16. package/components/button-group/button-group.js.map +1 -1
  17. package/components/button-group/toggle-button.js +4 -3
  18. package/components/button-group/toggle-button.js.map +1 -1
  19. package/components/calendar/calendar.js +3 -4
  20. package/components/calendar/calendar.js.map +1 -1
  21. package/components/calendar/days-view/days-view.js +4 -3
  22. package/components/calendar/days-view/days-view.js.map +1 -1
  23. package/components/calendar/months-view/months-view.js +4 -3
  24. package/components/calendar/months-view/months-view.js.map +1 -1
  25. package/components/calendar/years-view/years-view.js +4 -3
  26. package/components/calendar/years-view/years-view.js.map +1 -1
  27. package/components/card/card.actions.js +3 -4
  28. package/components/card/card.actions.js.map +1 -1
  29. package/components/card/card.content.js +3 -4
  30. package/components/card/card.content.js.map +1 -1
  31. package/components/card/card.header.js +3 -4
  32. package/components/card/card.header.js.map +1 -1
  33. package/components/card/card.js +3 -4
  34. package/components/card/card.js.map +1 -1
  35. package/components/card/card.media.js +3 -4
  36. package/components/card/card.media.js.map +1 -1
  37. package/components/carousel/carousel-indicator-container.js +3 -4
  38. package/components/carousel/carousel-indicator-container.js.map +1 -1
  39. package/components/carousel/carousel-indicator.js +3 -4
  40. package/components/carousel/carousel-indicator.js.map +1 -1
  41. package/components/carousel/carousel-slide.js +3 -4
  42. package/components/carousel/carousel-slide.js.map +1 -1
  43. package/components/carousel/carousel.js +3 -4
  44. package/components/carousel/carousel.js.map +1 -1
  45. package/components/chat/chat-input.d.ts +91 -0
  46. package/components/chat/chat-input.js +263 -0
  47. package/components/chat/chat-input.js.map +1 -0
  48. package/components/chat/chat-message.d.ts +48 -0
  49. package/components/chat/chat-message.js +199 -0
  50. package/components/chat/chat-message.js.map +1 -0
  51. package/components/chat/chat-state.d.ts +130 -0
  52. package/components/chat/chat-state.js +180 -0
  53. package/components/chat/chat-state.js.map +1 -0
  54. package/components/chat/chat.d.ts +151 -0
  55. package/components/chat/chat.js +325 -0
  56. package/components/chat/chat.js.map +1 -0
  57. package/components/chat/extras/markdown-renderer.d.ts +26 -0
  58. package/components/chat/extras/markdown-renderer.js +49 -0
  59. package/components/chat/extras/markdown-renderer.js.map +1 -0
  60. package/components/chat/message-attachments.d.ts +56 -0
  61. package/components/chat/message-attachments.js +132 -0
  62. package/components/chat/message-attachments.js.map +1 -0
  63. package/components/chat/themes/attachments.d.ts +2 -0
  64. package/components/chat/themes/attachments.js +14 -0
  65. package/components/chat/themes/attachments.js.map +1 -0
  66. package/components/chat/themes/chat.base.css.d.ts +1 -0
  67. package/components/chat/themes/chat.base.css.js +3 -0
  68. package/components/chat/themes/chat.base.css.js.map +1 -0
  69. package/components/chat/themes/dark/chat.bootstrap.css.d.ts +1 -0
  70. package/components/chat/themes/dark/chat.bootstrap.css.js +3 -0
  71. package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -0
  72. package/components/chat/themes/dark/chat.fluent.css.d.ts +1 -0
  73. package/components/chat/themes/dark/chat.fluent.css.js +3 -0
  74. package/components/chat/themes/dark/chat.fluent.css.js.map +1 -0
  75. package/components/chat/themes/dark/chat.indigo.css.d.ts +1 -0
  76. package/components/chat/themes/dark/chat.indigo.css.js +3 -0
  77. package/components/chat/themes/dark/chat.indigo.css.js.map +1 -0
  78. package/components/chat/themes/dark/chat.material.css.d.ts +1 -0
  79. package/components/chat/themes/dark/chat.material.css.js +3 -0
  80. package/components/chat/themes/dark/chat.material.css.js.map +1 -0
  81. package/components/chat/themes/input.base.css.d.ts +1 -0
  82. package/components/chat/themes/input.base.css.js +3 -0
  83. package/components/chat/themes/input.base.css.js.map +1 -0
  84. package/components/chat/themes/input.d.ts +2 -0
  85. package/components/chat/themes/input.js +35 -0
  86. package/components/chat/themes/input.js.map +1 -0
  87. package/components/chat/themes/light/chat.bootstrap.css.d.ts +1 -0
  88. package/components/chat/themes/light/chat.bootstrap.css.js +3 -0
  89. package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -0
  90. package/components/chat/themes/light/chat.fluent.css.d.ts +1 -0
  91. package/components/chat/themes/light/chat.fluent.css.js +3 -0
  92. package/components/chat/themes/light/chat.fluent.css.js.map +1 -0
  93. package/components/chat/themes/light/chat.indigo.css.d.ts +1 -0
  94. package/components/chat/themes/light/chat.indigo.css.js +3 -0
  95. package/components/chat/themes/light/chat.indigo.css.js.map +1 -0
  96. package/components/chat/themes/light/chat.material.css.d.ts +1 -0
  97. package/components/chat/themes/light/chat.material.css.js +3 -0
  98. package/components/chat/themes/light/chat.material.css.js.map +1 -0
  99. package/components/chat/themes/light/chat.shared.css.d.ts +1 -0
  100. package/components/chat/themes/light/chat.shared.css.js +3 -0
  101. package/components/chat/themes/light/chat.shared.css.js.map +1 -0
  102. package/components/chat/themes/message-attachments.base.css.d.ts +1 -0
  103. package/components/chat/themes/message-attachments.base.css.js +3 -0
  104. package/components/chat/themes/message-attachments.base.css.js.map +1 -0
  105. package/components/chat/themes/message.base.css.d.ts +1 -0
  106. package/components/chat/themes/message.base.css.js +3 -0
  107. package/components/chat/themes/message.base.css.js.map +1 -0
  108. package/components/chat/themes/message.d.ts +2 -0
  109. package/components/chat/themes/message.js +28 -0
  110. package/components/chat/themes/message.js.map +1 -0
  111. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.d.ts +1 -0
  112. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +3 -0
  113. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +1 -0
  114. package/components/chat/themes/shared/chat-message/chat-message.common.css.d.ts +1 -0
  115. package/components/chat/themes/shared/chat-message/chat-message.common.css.js +3 -0
  116. package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -0
  117. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +1 -0
  118. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +3 -0
  119. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +1 -0
  120. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.d.ts +1 -0
  121. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +3 -0
  122. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js.map +1 -0
  123. package/components/chat/themes/shared/chat.bootstrap.css.d.ts +1 -0
  124. package/components/chat/themes/shared/chat.bootstrap.css.js +3 -0
  125. package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -0
  126. package/components/chat/themes/shared/chat.common.css.d.ts +1 -0
  127. package/components/chat/themes/shared/chat.common.css.js +3 -0
  128. package/components/chat/themes/shared/chat.common.css.js.map +1 -0
  129. package/components/chat/themes/shared/chat.fluent.css.d.ts +1 -0
  130. package/components/chat/themes/shared/chat.fluent.css.js +3 -0
  131. package/components/chat/themes/shared/chat.fluent.css.js.map +1 -0
  132. package/components/chat/themes/shared/chat.indigo.css.d.ts +1 -0
  133. package/components/chat/themes/shared/chat.indigo.css.js +3 -0
  134. package/components/chat/themes/shared/chat.indigo.css.js.map +1 -0
  135. package/components/chat/themes/shared/input/input.bootstrap.css.d.ts +1 -0
  136. package/components/chat/themes/shared/input/input.bootstrap.css.js +3 -0
  137. package/components/chat/themes/shared/input/input.bootstrap.css.js.map +1 -0
  138. package/components/chat/themes/shared/input/input.common.css.d.ts +1 -0
  139. package/components/chat/themes/shared/input/input.common.css.js +3 -0
  140. package/components/chat/themes/shared/input/input.common.css.js.map +1 -0
  141. package/components/chat/themes/shared/input/input.fluent.css.d.ts +1 -0
  142. package/components/chat/themes/shared/input/input.fluent.css.js +3 -0
  143. package/components/chat/themes/shared/input/input.fluent.css.js.map +1 -0
  144. package/components/chat/themes/shared/input/input.indigo.css.d.ts +1 -0
  145. package/components/chat/themes/shared/input/input.indigo.css.js +3 -0
  146. package/components/chat/themes/shared/input/input.indigo.css.js.map +1 -0
  147. package/components/chat/themes/shared/input/input.material.css.d.ts +1 -0
  148. package/components/chat/themes/shared/input/input.material.css.js +3 -0
  149. package/components/chat/themes/shared/input/input.material.css.js.map +1 -0
  150. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.d.ts +1 -0
  151. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js +3 -0
  152. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js.map +1 -0
  153. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.d.ts +1 -0
  154. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js +3 -0
  155. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js.map +1 -0
  156. package/components/chat/themes/themes.d.ts +2 -0
  157. package/components/chat/themes/themes.js +49 -0
  158. package/components/chat/themes/themes.js.map +1 -0
  159. package/components/chat/types.d.ts +149 -0
  160. package/components/chat/types.js +2 -0
  161. package/components/chat/types.js.map +1 -0
  162. package/components/chat/utils.d.ts +16 -0
  163. package/components/chat/utils.js +82 -0
  164. package/components/chat/utils.js.map +1 -0
  165. package/components/checkbox/checkbox-base.d.ts +1 -1
  166. package/components/checkbox/checkbox.js +3 -4
  167. package/components/checkbox/checkbox.js.map +1 -1
  168. package/components/checkbox/switch.js +3 -4
  169. package/components/checkbox/switch.js.map +1 -1
  170. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  171. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  172. package/components/checkbox/themes/switch.base.css.js +1 -1
  173. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  174. package/components/chip/chip.js +3 -4
  175. package/components/chip/chip.js.map +1 -1
  176. package/components/combo/combo-header.js +3 -4
  177. package/components/combo/combo-header.js.map +1 -1
  178. package/components/combo/combo-item.js +3 -4
  179. package/components/combo/combo-item.js.map +1 -1
  180. package/components/combo/combo-list.js +2 -3
  181. package/components/combo/combo-list.js.map +1 -1
  182. package/components/combo/combo.js +4 -3
  183. package/components/combo/combo.js.map +1 -1
  184. package/components/common/context.d.ts +8 -1
  185. package/components/common/context.js +3 -1
  186. package/components/common/context.js.map +1 -1
  187. package/components/common/controllers/focus-ring.js +5 -5
  188. package/components/common/controllers/focus-ring.js.map +1 -1
  189. package/components/common/controllers/key-bindings.js +4 -4
  190. package/components/common/controllers/key-bindings.js.map +1 -1
  191. package/components/common/definitions/defineAllComponents.js +2 -0
  192. package/components/common/definitions/defineAllComponents.js.map +1 -1
  193. package/components/common/i18n/chat.resources.d.ts +11 -0
  194. package/components/common/i18n/chat.resources.js +11 -0
  195. package/components/common/i18n/chat.resources.js.map +1 -0
  196. package/components/common/mixins/forms/associated.js +1 -1
  197. package/components/common/mixins/forms/associated.js.map +1 -1
  198. package/components/common/mixins/forms/form-value.js +1 -1
  199. package/components/common/mixins/forms/form-value.js.map +1 -1
  200. package/components/common/part-map.d.ts +1 -1
  201. package/components/common/util.d.ts +3 -0
  202. package/components/common/util.js +27 -0
  203. package/components/common/util.js.map +1 -1
  204. package/components/date-picker/date-picker.js +5 -4
  205. package/components/date-picker/date-picker.js.map +1 -1
  206. package/components/date-range-picker/date-range-picker.js +5 -4
  207. package/components/date-range-picker/date-range-picker.js.map +1 -1
  208. package/components/date-range-picker/predefined-ranges-area.js +3 -4
  209. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  210. package/components/date-time-input/date-time-input.js +2 -3
  211. package/components/date-time-input/date-time-input.js.map +1 -1
  212. package/components/date-time-input/date-util.js +11 -11
  213. package/components/date-time-input/date-util.js.map +1 -1
  214. package/components/dialog/dialog.js +3 -4
  215. package/components/dialog/dialog.js.map +1 -1
  216. package/components/divider/divider.js +3 -4
  217. package/components/divider/divider.js.map +1 -1
  218. package/components/dropdown/dropdown-group.js +3 -4
  219. package/components/dropdown/dropdown-group.js.map +1 -1
  220. package/components/dropdown/dropdown-header.js +3 -4
  221. package/components/dropdown/dropdown-header.js.map +1 -1
  222. package/components/dropdown/dropdown-item.js +3 -4
  223. package/components/dropdown/dropdown-item.js.map +1 -1
  224. package/components/dropdown/dropdown.js +4 -3
  225. package/components/dropdown/dropdown.js.map +1 -1
  226. package/components/expansion-panel/expansion-panel.js +3 -4
  227. package/components/expansion-panel/expansion-panel.js.map +1 -1
  228. package/components/file-input/file-input.js +9 -10
  229. package/components/file-input/file-input.js.map +1 -1
  230. package/components/focus-trap/focus-trap.js +7 -8
  231. package/components/focus-trap/focus-trap.js.map +1 -1
  232. package/components/icon/icon-references.js +208 -0
  233. package/components/icon/icon-references.js.map +1 -1
  234. package/components/icon/icon-state.broadcast.js +1 -1
  235. package/components/icon/icon-state.broadcast.js.map +1 -1
  236. package/components/icon/icon.js +3 -4
  237. package/components/icon/icon.js.map +1 -1
  238. package/components/icon/internal-icons-lib.js +105 -0
  239. package/components/icon/internal-icons-lib.js.map +1 -1
  240. package/components/input/input-base.js +4 -3
  241. package/components/input/input-base.js.map +1 -1
  242. package/components/input/input.js +2 -3
  243. package/components/input/input.js.map +1 -1
  244. package/components/input/themes/shared/input.indigo.css.js +1 -1
  245. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  246. package/components/list/list-header.js +3 -4
  247. package/components/list/list-header.js.map +1 -1
  248. package/components/list/list-item.js +3 -4
  249. package/components/list/list-item.js.map +1 -1
  250. package/components/list/list.js +3 -4
  251. package/components/list/list.js.map +1 -1
  252. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  253. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  254. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  255. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  256. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  257. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  258. package/components/list/themes/item.base.css.js +1 -1
  259. package/components/list/themes/item.base.css.js.map +1 -1
  260. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  261. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  262. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  263. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  264. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  265. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  266. package/components/mask-input/mask-input.js +2 -3
  267. package/components/mask-input/mask-input.js.map +1 -1
  268. package/components/nav-drawer/nav-drawer-header-item.js +3 -4
  269. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  270. package/components/nav-drawer/nav-drawer-item.js +3 -4
  271. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  272. package/components/nav-drawer/nav-drawer.js +3 -4
  273. package/components/nav-drawer/nav-drawer.js.map +1 -1
  274. package/components/navbar/navbar.js +3 -4
  275. package/components/navbar/navbar.js.map +1 -1
  276. package/components/popover/popover.js +9 -10
  277. package/components/popover/popover.js.map +1 -1
  278. package/components/progress/circular-gradient.js +2 -3
  279. package/components/progress/circular-gradient.js.map +1 -1
  280. package/components/progress/circular-progress.js +3 -4
  281. package/components/progress/circular-progress.js.map +1 -1
  282. package/components/progress/linear-progress.js +3 -4
  283. package/components/progress/linear-progress.js.map +1 -1
  284. package/components/radio/radio.js +3 -4
  285. package/components/radio/radio.js.map +1 -1
  286. package/components/radio-group/radio-group.js +3 -4
  287. package/components/radio-group/radio-group.js.map +1 -1
  288. package/components/rating/rating-symbol.js +3 -4
  289. package/components/rating/rating-symbol.js.map +1 -1
  290. package/components/rating/rating.js +3 -4
  291. package/components/rating/rating.js.map +1 -1
  292. package/components/resize-container/resize-container.js +3 -4
  293. package/components/resize-container/resize-container.js.map +1 -1
  294. package/components/ripple/ripple.js +3 -4
  295. package/components/ripple/ripple.js.map +1 -1
  296. package/components/select/select-group.js +3 -4
  297. package/components/select/select-group.js.map +1 -1
  298. package/components/select/select-header.js +3 -4
  299. package/components/select/select-header.js.map +1 -1
  300. package/components/select/select-item.js +3 -4
  301. package/components/select/select-item.js.map +1 -1
  302. package/components/select/select.js +4 -3
  303. package/components/select/select.js.map +1 -1
  304. package/components/slider/range-slider.js +2 -3
  305. package/components/slider/range-slider.js.map +1 -1
  306. package/components/slider/slider-base.js +1 -1
  307. package/components/slider/slider-base.js.map +1 -1
  308. package/components/slider/slider-label.js +7 -8
  309. package/components/slider/slider-label.js.map +1 -1
  310. package/components/slider/slider.js +2 -3
  311. package/components/slider/slider.js.map +1 -1
  312. package/components/snackbar/snackbar.js +3 -4
  313. package/components/snackbar/snackbar.js.map +1 -1
  314. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  315. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  316. package/components/stepper/step.js +3 -4
  317. package/components/stepper/step.js.map +1 -1
  318. package/components/stepper/stepper.js +3 -4
  319. package/components/stepper/stepper.js.map +1 -1
  320. package/components/tabs/tab-dom.js +1 -1
  321. package/components/tabs/tab-dom.js.map +1 -1
  322. package/components/tabs/tab.js +4 -5
  323. package/components/tabs/tab.js.map +1 -1
  324. package/components/tabs/tabs.js +3 -4
  325. package/components/tabs/tabs.js.map +1 -1
  326. package/components/textarea/textarea.js +4 -3
  327. package/components/textarea/textarea.js.map +1 -1
  328. package/components/tile-manager/themes/tile-manager.base.css.js +1 -1
  329. package/components/tile-manager/themes/tile-manager.base.css.js.map +1 -1
  330. package/components/tile-manager/tile-manager.js +4 -3
  331. package/components/tile-manager/tile-manager.js.map +1 -1
  332. package/components/tile-manager/tile.js +3 -4
  333. package/components/tile-manager/tile.js.map +1 -1
  334. package/components/toast/toast.js +3 -4
  335. package/components/toast/toast.js.map +1 -1
  336. package/components/tooltip/controller.js +4 -4
  337. package/components/tooltip/controller.js.map +1 -1
  338. package/components/tooltip/tooltip.js +3 -4
  339. package/components/tooltip/tooltip.js.map +1 -1
  340. package/components/tree/tree-item.js +3 -4
  341. package/components/tree/tree-item.js.map +1 -1
  342. package/components/tree/tree.js +4 -3
  343. package/components/tree/tree.js.map +1 -1
  344. package/components/validation-container/validation-container.js +3 -4
  345. package/components/validation-container/validation-container.js.map +1 -1
  346. package/custom-elements.json +35498 -33667
  347. package/extras/index.d.ts +1 -0
  348. package/extras/index.js +2 -0
  349. package/extras/index.js.map +1 -0
  350. package/igniteui-webcomponents.css-data.json +1 -1
  351. package/igniteui-webcomponents.html-data.json +1 -1
  352. package/index.d.ts +4 -0
  353. package/index.js +2 -0
  354. package/index.js.map +1 -1
  355. package/package.json +6 -2
  356. package/web-types.json +2 -2
@@ -11,7 +11,9 @@ import { registerComponent } from '../common/definitions/register.js';
11
11
  import { addSafeEventListener, first, last } from '../common/util.js';
12
12
  import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';
13
13
  import { styles } from './themes/accordion.base.css.js';
14
- class IgcAccordionComponent extends LitElement {
14
+ export default class IgcAccordionComponent extends LitElement {
15
+ static { this.tagName = 'igc-accordion'; }
16
+ static { this.styles = styles; }
15
17
  static register() {
16
18
  registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);
17
19
  }
@@ -105,9 +107,6 @@ class IgcAccordionComponent extends LitElement {
105
107
  return html `<slot></slot>`;
106
108
  }
107
109
  }
108
- IgcAccordionComponent.tagName = 'igc-accordion';
109
- IgcAccordionComponent.styles = styles;
110
- export default IgcAccordionComponent;
111
110
  __decorate([
112
111
  queryAssignedElements({
113
112
  selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addSafeEventListener, first, last } from '../common/util.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({\n selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,\n })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'igcOpening' as any, this.handlePanelOpening);\n\n addKeybindings(this, { skip: this.skipKeybinding })\n .set(homeKey, () =>\n this.getPanelHeader(first(this.enabledPanels)).focus()\n )\n .set(endKey, () => this.getPanelHeader(last(this.enabledPanels)).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (next !== current) {\n this.getPanelHeader(next).focus();\n }\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (next !== current) {\n this.getPanelHeader(next).focus();\n }\n }\n\n private collapseAll() {\n for (const panel of this.enabledPanels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n\n for (const panel of this.enabledPanels) {\n if (this.singleExpand) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n } else {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n for (const panel of this.enabledPanels) {\n if (panel.open && panel !== current) {\n this.closePanel(panel);\n }\n }\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.renderRoot.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (\n !(\n panel.open &&\n panel.emitEvent('igcClosing', { cancelable: true, detail: panel })\n )\n ) {\n return;\n }\n\n await panel.hide();\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (\n panel.open ||\n !panel.emitEvent('igcOpening', { cancelable: true, detail: panel })\n ) {\n return;\n }\n\n await panel.show();\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addSafeEventListener, first, last } from '../common/util.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({\n selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,\n })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'igcOpening' as any, this.handlePanelOpening);\n\n addKeybindings(this, { skip: this.skipKeybinding })\n .set(homeKey, () =>\n this.getPanelHeader(first(this.enabledPanels)).focus()\n )\n .set(endKey, () => this.getPanelHeader(last(this.enabledPanels)).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (next !== current) {\n this.getPanelHeader(next).focus();\n }\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (next !== current) {\n this.getPanelHeader(next).focus();\n }\n }\n\n private collapseAll() {\n for (const panel of this.enabledPanels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n\n for (const panel of this.enabledPanels) {\n if (this.singleExpand) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n } else {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n for (const panel of this.enabledPanels) {\n if (panel.open && panel !== current) {\n this.closePanel(panel);\n }\n }\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.renderRoot.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (\n !(\n panel.open &&\n panel.emitEvent('igcClosing', { cancelable: true, detail: panel })\n )\n ) {\n return;\n }\n\n await panel.hide();\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (\n panel.open ||\n !panel.emitEvent('igcOpening', { cancelable: true, detail: panel })\n ) {\n return;\n }\n\n await panel.show();\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
@@ -13,7 +13,9 @@ import { registerComponent } from '../common/definitions/register.js';
13
13
  import { styles } from './themes/avatar.base.css.js';
14
14
  import { styles as shared } from './themes/shared/avatar.common.css.js';
15
15
  import { all } from './themes/themes.js';
16
- class IgcAvatarComponent extends LitElement {
16
+ export default class IgcAvatarComponent extends LitElement {
17
+ static { this.tagName = 'igc-avatar'; }
18
+ static { this.styles = [styles, shared]; }
17
19
  static register() {
18
20
  registerComponent(IgcAvatarComponent);
19
21
  }
@@ -62,9 +64,6 @@ class IgcAvatarComponent extends LitElement {
62
64
  `;
63
65
  }
64
66
  }
65
- IgcAvatarComponent.tagName = 'igc-avatar';
66
- IgcAvatarComponent.styles = [styles, shared];
67
- export default IgcAvatarComponent;
68
67
  __decorate([
69
68
  state()
70
69
  ], IgcAvatarComponent.prototype, "_hasError", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAezC,MAAqB,kBAAmB,SAAQ,UAAU;IAKjD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAwCD;QACE,KAAK,EAAE,CAAC;QAvCO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;QAGK,cAAS,GAAG,KAAK,CAAC;QA4BnB,UAAK,GAAgB,QAAQ,CAAC;QAInC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACtB,mBAAmB,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,SAAS;YACrD,CAAC,CAAC,IAAI,CAAA,eAAe;UACrB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;YAC3B,CAAC,CAAC,IAAI,CAAA;;;sBAGM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;sBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;yBAChB,IAAI,CAAC,YAAY;;aAE7B;YACH,CAAC,CAAC,OAAO;;KAEd,CAAC;IACJ,CAAC;;AArFsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AACvB,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAF9B,kBAAkB;AAiB7B;IADP,KAAK,EAAE;qDACkB;AAOnB;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;oDACc;AAOlB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACS","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AvatarShape } from '../types.js';\nimport { styles } from './themes/avatar.base.css.js';\nimport { styles as shared } from './themes/shared/avatar.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * An avatar component is used as a representation of a user identity\n * typically in a user profile.\n *\n * @element igc-avatar\n *\n * @slot - Renders an icon inside the default slot.\n *\n * @csspart base - The base wrapper of the avatar.\n * @csspart initials - The initials wrapper of the avatar.\n * @csspart image - The image wrapper of the avatar.\n * @csspart icon - The icon wrapper of the avatar.\n */\nexport default class IgcAvatarComponent extends LitElement {\n public static readonly tagName = 'igc-avatar';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcAvatarComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'image',\n ariaLabel: 'avatar',\n },\n });\n\n @state()\n private _hasError = false;\n\n /**\n * The image source to use.\n * @attr\n */\n @property()\n public src?: string;\n\n /**\n * Alternative text for the image.\n * @attr\n */\n @property()\n public alt?: string;\n\n /**\n * Initials to use as a fallback when no image is available.\n * @attr\n */\n @property()\n public initials?: string;\n\n /**\n * The shape of the avatar.\n * @attr\n */\n @property({ reflect: true })\n public shape: AvatarShape = 'square';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('initials') || changedProperties.has('alt')) {\n this._internals.setARIA({\n ariaRoleDescription: this.alt ?? this.initials,\n });\n }\n\n if (changedProperties.has('src')) {\n this._hasError = false;\n }\n }\n\n protected _handleError(): void {\n this._hasError = true;\n }\n\n protected override render() {\n return html`\n <div part=\"base\">\n ${this.initials\n ? html`<span part=\"initials\">${this.initials}</span>`\n : html`<slot></slot>`}\n ${this.src && !this._hasError\n ? html`\n <img\n part=\"image\"\n alt=${ifDefined(this.alt)}\n src=${ifDefined(this.src)}\n @error=${this._handleError}\n />\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-avatar': IgcAvatarComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAezC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;aACjC,YAAO,GAAG,YAAY,AAAf,CAAgB;aACvB,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAwCD;QACE,KAAK,EAAE,CAAC;QAvCO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;QAGK,cAAS,GAAG,KAAK,CAAC;QA4BnB,UAAK,GAAgB,QAAQ,CAAC;QAInC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACtB,mBAAmB,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,SAAS;YACrD,CAAC,CAAC,IAAI,CAAA,eAAe;UACrB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;YAC3B,CAAC,CAAC,IAAI,CAAA;;;sBAGM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;sBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;yBAChB,IAAI,CAAC,YAAY;;aAE7B;YACH,CAAC,CAAC,OAAO;;KAEd,CAAC;IACJ,CAAC;;AArEO;IADP,KAAK,EAAE;qDACkB;AAOnB;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;oDACc;AAOlB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACS","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AvatarShape } from '../types.js';\nimport { styles } from './themes/avatar.base.css.js';\nimport { styles as shared } from './themes/shared/avatar.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * An avatar component is used as a representation of a user identity\n * typically in a user profile.\n *\n * @element igc-avatar\n *\n * @slot - Renders an icon inside the default slot.\n *\n * @csspart base - The base wrapper of the avatar.\n * @csspart initials - The initials wrapper of the avatar.\n * @csspart image - The image wrapper of the avatar.\n * @csspart icon - The icon wrapper of the avatar.\n */\nexport default class IgcAvatarComponent extends LitElement {\n public static readonly tagName = 'igc-avatar';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcAvatarComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'image',\n ariaLabel: 'avatar',\n },\n });\n\n @state()\n private _hasError = false;\n\n /**\n * The image source to use.\n * @attr\n */\n @property()\n public src?: string;\n\n /**\n * Alternative text for the image.\n * @attr\n */\n @property()\n public alt?: string;\n\n /**\n * Initials to use as a fallback when no image is available.\n * @attr\n */\n @property()\n public initials?: string;\n\n /**\n * The shape of the avatar.\n * @attr\n */\n @property({ reflect: true })\n public shape: AvatarShape = 'square';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('initials') || changedProperties.has('alt')) {\n this._internals.setARIA({\n ariaRoleDescription: this.alt ?? this.initials,\n });\n }\n\n if (changedProperties.has('src')) {\n this._hasError = false;\n }\n }\n\n protected _handleError(): void {\n this._hasError = true;\n }\n\n protected override render() {\n return html`\n <div part=\"base\">\n ${this.initials\n ? html`<span part=\"initials\">${this.initials}</span>`\n : html`<slot></slot>`}\n ${this.src && !this._hasError\n ? html`\n <img\n part=\"image\"\n alt=${ifDefined(this.alt)}\n src=${ifDefined(this.src)}\n @error=${this._handleError}\n />\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-avatar': IgcAvatarComponent;\n }\n}\n"]}
@@ -12,7 +12,9 @@ import { registerComponent } from '../common/definitions/register.js';
12
12
  import { styles } from './themes/badge.base.css.js';
13
13
  import { styles as shared } from './themes/shared/badge.common.css.js';
14
14
  import { all } from './themes/themes.js';
15
- class IgcBadgeComponent extends LitElement {
15
+ export default class IgcBadgeComponent extends LitElement {
16
+ static { this.tagName = 'igc-badge'; }
17
+ static { this.styles = [styles, shared]; }
16
18
  static register() {
17
19
  registerComponent(IgcBadgeComponent);
18
20
  }
@@ -39,9 +41,6 @@ class IgcBadgeComponent extends LitElement {
39
41
  `;
40
42
  }
41
43
  }
42
- IgcBadgeComponent.tagName = 'igc-badge';
43
- IgcBadgeComponent.styles = [styles, shared];
44
- export default IgcBadgeComponent;
45
44
  __decorate([
46
45
  property({ reflect: true })
47
46
  ], IgcBadgeComponent.prototype, "variant", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAYzC,MAAqB,iBAAkB,SAAQ,UAAU;IAKhD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IA2BD;QACE,KAAK,EAAE,CAAC;QA1BO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChC,CAAC,CAAC;QAOI,YAAO,GAAiB,SAAS,CAAC;QAOlC,aAAQ,GAAG,KAAK,CAAC;QAOjB,UAAK,GAAe,SAAS,CAAC;QAInC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAlDsB,yBAAO,GAAG,WAAW,AAAd,CAAe;AACtB,wBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAF9B,iBAAiB;AAkB7B;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACa;AAOlC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACS","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { BadgeShape, StyleVariant } from '../types.js';\nimport { styles } from './themes/badge.base.css.js';\nimport { styles as shared } from './themes/shared/badge.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The badge is a component indicating a status on a related item or an area\n * where some active indication is required.\n *\n * @element igc-badge\n *\n * @slot - Default slot for the badge.\n *\n * @csspart base - The base wrapper of the badge.\n */\nexport default class IgcBadgeComponent extends LitElement {\n public static readonly tagName = 'igc-badge';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcBadgeComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: { role: 'status' },\n });\n\n /**\n * The type of badge.\n * @attr\n */\n @property({ reflect: true })\n public variant: StyleVariant = 'primary';\n\n /**\n * Sets whether to draw an outlined version of the badge.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The shape of the badge.\n * @attr\n */\n @property({ reflect: true })\n public shape: BadgeShape = 'rounded';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('variant')) {\n this._internals.setARIA({ ariaRoleDescription: `badge ${this.variant}` });\n }\n }\n\n protected override render() {\n return html`\n <span part=\"base\">\n <slot></slot>\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-badge': IgcBadgeComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAYzC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU;aAChC,YAAO,GAAG,WAAW,AAAd,CAAe;aACtB,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IA2BD;QACE,KAAK,EAAE,CAAC;QA1BO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChC,CAAC,CAAC;QAOI,YAAO,GAAiB,SAAS,CAAC;QAOlC,aAAQ,GAAG,KAAK,CAAC;QAOjB,UAAK,GAAe,SAAS,CAAC;QAInC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAjCM;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACa;AAOlC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACS","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { BadgeShape, StyleVariant } from '../types.js';\nimport { styles } from './themes/badge.base.css.js';\nimport { styles as shared } from './themes/shared/badge.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The badge is a component indicating a status on a related item or an area\n * where some active indication is required.\n *\n * @element igc-badge\n *\n * @slot - Default slot for the badge.\n *\n * @csspart base - The base wrapper of the badge.\n */\nexport default class IgcBadgeComponent extends LitElement {\n public static readonly tagName = 'igc-badge';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcBadgeComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: { role: 'status' },\n });\n\n /**\n * The type of badge.\n * @attr\n */\n @property({ reflect: true })\n public variant: StyleVariant = 'primary';\n\n /**\n * Sets whether to draw an outlined version of the badge.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The shape of the badge.\n * @attr\n */\n @property({ reflect: true })\n public shape: BadgeShape = 'rounded';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('variant')) {\n this._internals.setARIA({ ariaRoleDescription: `badge ${this.variant}` });\n }\n }\n\n protected override render() {\n return html`\n <span part=\"base\">\n <slot></slot>\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-badge': IgcBadgeComponent;\n }\n}\n"]}
@@ -16,7 +16,9 @@ import { registerComponent } from '../common/definitions/register.js';
16
16
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
17
17
  import { styles } from './themes/banner.base.css.js';
18
18
  import { all } from './themes/themes.js';
19
- class IgcBannerComponent extends EventEmitterMixin(LitElement) {
19
+ export default class IgcBannerComponent extends EventEmitterMixin(LitElement) {
20
+ static { this.tagName = 'igc-banner'; }
21
+ static { this.styles = [styles]; }
20
22
  static register() {
21
23
  registerComponent(IgcBannerComponent, IgcButtonComponent);
22
24
  }
@@ -92,9 +94,6 @@ class IgcBannerComponent extends EventEmitterMixin(LitElement) {
92
94
  `;
93
95
  }
94
96
  }
95
- IgcBannerComponent.tagName = 'igc-banner';
96
- IgcBannerComponent.styles = [styles];
97
- export default IgcBannerComponent;
98
97
  __decorate([
99
98
  property({ type: Boolean, reflect: true })
100
99
  ], IgcBannerComponent.prototype, "open", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/components/banner/banner.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { createRef, type Ref, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { styles } from './themes/banner.base.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcBannerComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * The `igc-banner` component displays important and concise message(s) for a user to address, that is specific to a page or feature.\n *\n * @element igc-banner\n *\n * @slot - Renders the text content of the banner message.\n * @slot prefix - Renders additional content at the start of the message block.\n * @slot actions - Renders any action elements.\n *\n * @fires igcClosing - Emitted before closing the banner - when a user interacts (click) with the default action of the banner.\n * @fires igcClosed - Emitted after the banner is closed - when a user interacts (click) with the default action of the banner.\n *\n * @csspart base - The base wrapper of the banner component.\n * @csspart spacer - The inner wrapper that sets the space around the banner.\n * @csspart message - The part that holds the text and the illustration.\n * @csspart illustration - The part that holds the banner icon/illustration.\n * @csspart content - The part that holds the banner text content.\n * @csspart actions - The part that holds the banner action buttons.\n */\n\nexport default class IgcBannerComponent extends EventEmitterMixin<\n IgcBannerComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-banner';\n public static styles = [styles];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcBannerComponent, IgcButtonComponent);\n }\n\n private readonly _bannerRef: Ref<HTMLElement> = createRef();\n private readonly _animationPlayer = addAnimationController(\n this,\n this._bannerRef\n );\n\n /**\n * Determines whether the banner is being shown/hidden.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addInternalsController(this, {\n initialARIA: {\n role: 'status',\n ariaLive: 'polite',\n },\n });\n }\n\n /** Shows the banner if not already shown. Returns `true` when the animation has completed. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n return await this.toggleAnimation('open');\n }\n\n /** Hides the banner if not already hidden. Returns `true` when the animation has completed. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n await this.toggleAnimation('close');\n this.open = false;\n return true;\n }\n\n /** Toggles between shown/hidden state. Returns `true` when the animation has completed. */\n public async toggle(): Promise<boolean> {\n return this.open ? await this.hide() : await this.show();\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\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 private async handleClick() {\n if (this.emitEvent('igcClosing', { cancelable: true })) {\n await this.hide();\n this.emitEvent('igcClosed');\n }\n }\n\n protected override render() {\n return html`\n <div ${ref(this._bannerRef)} part=\"base\" .inert=${!this.open}>\n <div part=\"spacer\">\n <div part=\"message\">\n <div part=\"illustration\">\n <slot name=\"prefix\"></slot>\n </div>\n <div part=\"content\">\n <slot></slot>\n </div>\n </div>\n <div part=\"actions\">\n <slot name=\"actions\">\n <igc-button\n type=\"button\"\n variant=\"flat\"\n @click=${this.handleClick}\n >OK</igc-button\n >\n </slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-banner': IgcBannerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/components/banner/banner.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { createRef, type Ref, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { styles } from './themes/banner.base.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcBannerComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * The `igc-banner` component displays important and concise message(s) for a user to address, that is specific to a page or feature.\n *\n * @element igc-banner\n *\n * @slot - Renders the text content of the banner message.\n * @slot prefix - Renders additional content at the start of the message block.\n * @slot actions - Renders any action elements.\n *\n * @fires igcClosing - Emitted before closing the banner - when a user interacts (click) with the default action of the banner.\n * @fires igcClosed - Emitted after the banner is closed - when a user interacts (click) with the default action of the banner.\n *\n * @csspart base - The base wrapper of the banner component.\n * @csspart spacer - The inner wrapper that sets the space around the banner.\n * @csspart message - The part that holds the text and the illustration.\n * @csspart illustration - The part that holds the banner icon/illustration.\n * @csspart content - The part that holds the banner text content.\n * @csspart actions - The part that holds the banner action buttons.\n */\n\nexport default class IgcBannerComponent extends EventEmitterMixin<\n IgcBannerComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-banner';\n public static styles = [styles];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcBannerComponent, IgcButtonComponent);\n }\n\n private readonly _bannerRef: Ref<HTMLElement> = createRef();\n private readonly _animationPlayer = addAnimationController(\n this,\n this._bannerRef\n );\n\n /**\n * Determines whether the banner is being shown/hidden.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addInternalsController(this, {\n initialARIA: {\n role: 'status',\n ariaLive: 'polite',\n },\n });\n }\n\n /** Shows the banner if not already shown. Returns `true` when the animation has completed. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n return await this.toggleAnimation('open');\n }\n\n /** Hides the banner if not already hidden. Returns `true` when the animation has completed. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n await this.toggleAnimation('close');\n this.open = false;\n return true;\n }\n\n /** Toggles between shown/hidden state. Returns `true` when the animation has completed. */\n public async toggle(): Promise<boolean> {\n return this.open ? await this.hide() : await this.show();\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\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 private async handleClick() {\n if (this.emitEvent('igcClosing', { cancelable: true })) {\n await this.hide();\n this.emitEvent('igcClosed');\n }\n }\n\n protected override render() {\n return html`\n <div ${ref(this._bannerRef)} part=\"base\" .inert=${!this.open}>\n <div part=\"spacer\">\n <div part=\"message\">\n <div part=\"illustration\">\n <slot name=\"prefix\"></slot>\n </div>\n <div part=\"content\">\n <slot></slot>\n </div>\n </div>\n <div part=\"actions\">\n <slot name=\"actions\">\n <igc-button\n type=\"button\"\n variant=\"flat\"\n @click=${this.handleClick}\n >OK</igc-button\n >\n </slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-banner': IgcBannerComponent;\n }\n}\n"]}
@@ -21,6 +21,7 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends EventEmitterMi
21
21
  this._disabled = false;
22
22
  this.type = 'button';
23
23
  }
24
+ static { this.formAssociated = true; }
24
25
  set disabled(value) {
25
26
  this._disabled = value;
26
27
  this.toggleAttribute('disabled', Boolean(this._disabled));
@@ -86,7 +87,6 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends EventEmitterMi
86
87
  return link ? this.renderLinkButton() : this.renderButton();
87
88
  }
88
89
  };
89
- IgcButtonBaseComponent.formAssociated = true;
90
90
  __decorate([
91
91
  query('[part="base"]', true)
92
92
  ], IgcButtonBaseComponent.prototype, "_nativeButton", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"button-base.js","sourceRoot":"","sources":["../../../src/components/button/button-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { shadowOptions } from '../common/decorators/shadow-options.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common//mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\n\nexport interface IgcButtonEventMap {\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n@blazorDeepImport\n@shadowOptions({ delegatesFocus: true })\nexport abstract class IgcButtonBaseComponent extends EventEmitterMixin<\n IgcButtonEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly formAssociated = true;\n\n protected readonly _internals = addInternalsController(this);\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n protected _disabled = false;\n\n @query('[part=\"base\"]', true)\n private readonly _nativeButton!: HTMLButtonElement;\n\n /* alternateName: displayType */\n /**\n * The type of the button. Defaults to `button`.\n * @attr\n */\n @property({ reflect: true })\n public type: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * The URL the button points to.\n * @attr\n */\n @property()\n public href?: string;\n\n /**\n * Prompts to save the linked URL instead of navigating to it.\n * @attr\n */\n @property()\n public download?: string;\n\n /**\n * Where to display the linked URL, as the name for a browsing context.\n * @attr\n */\n @property()\n public target?: '_blank' | '_parent' | '_self' | '_top';\n\n /**\n * The relationship of the linked URL.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types\n * @attr\n */\n @property()\n public rel?: string;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /* blazorCSSuppress */\n /* alternateType: object */\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /* alternateName: focusComponent */\n /** Sets focus in the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton.focus(options);\n }\n\n /** Simulates a mouse click on the element */\n public override click(): void {\n this._nativeButton.click();\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton.blur();\n }\n\n protected _handleClick(): void {\n if (this.type === 'submit') {\n this.form?.requestSubmit();\n } else if (this.type === 'reset') {\n this.form?.reset();\n }\n }\n\n protected formDisabledCallback(state: boolean): void {\n this._disabled = state;\n this.requestUpdate();\n }\n\n private renderButton() {\n return html`\n <button\n part=${partMap({ base: true, focused: this._focusRingManager.focused })}\n aria-label=${ifDefined(this.ariaLabel ?? nothing)}\n ?disabled=${this.disabled}\n type=${ifDefined(this.type)}\n @click=${this._handleClick}\n >\n ${this.renderContent()}\n </button>\n `;\n }\n\n private renderLinkButton() {\n return html`\n <a\n part=${partMap({ base: true, focused: this._focusRingManager.focused })}\n role=\"button\"\n aria-label=${ifDefined(this.ariaLabel ?? nothing)}\n aria-disabled=${this.disabled}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n download=${ifDefined(this.download)}\n rel=${ifDefined(this.rel)}\n >\n ${this.renderContent()}\n </a>\n `;\n }\n\n protected abstract renderContent(): TemplateResult;\n\n protected override render() {\n const link = this.href !== undefined;\n return link ? this.renderLinkButton() : this.renderButton();\n }\n}\n"]}
1
+ {"version":3,"file":"button-base.js","sourceRoot":"","sources":["../../../src/components/button/button-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAYzC,IAAe,sBAAsB,GAArC,MAAe,sBAAuB,SAAQ,iBAAiB,CAGpE,UAAU,CAAC;IAHN;;QAMc,eAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC5C,sBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEtD,cAAS,GAAG,KAAK,CAAC;QAWrB,SAAI,GAAkC,QAAQ,CAAC;IAuHxD,CAAC;aAvIwB,mBAAc,GAAG,IAAI,AAAP,CAAQ;IAoD7C,IAAW,QAAQ,CAAC,KAAc;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAKD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAIe,KAAK,CAAC,OAAsB;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAGe,KAAK;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAIe,IAAI;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAES,YAAY;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAES,oBAAoB,CAAC,KAAc;QAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;qBAC1D,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;oBACrC,IAAI,CAAC,QAAQ;eAClB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,YAAY;;UAExB,IAAI,CAAC,aAAa,EAAE;;KAEzB,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;;qBAE1D,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;wBACjC,IAAI,CAAC,QAAQ;eACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;mBACpB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;cAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;;UAEvB,IAAI,CAAC,aAAa,EAAE;;KAEzB,CAAC;IACJ,CAAC;IAIkB,MAAM;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9D,CAAC;;AA9HgB;IADhB,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;6DACsB;AAQ5C;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAC0B;AAO/C;IADN,QAAQ,EAAE;oDACU;AAOd;IADN,QAAQ,EAAE;wDACc;AAOlB;IADN,QAAQ,EAAE;sDAC6C;AAQjD;IADN,QAAQ,EAAE;mDACS;AAOpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sDAI1C;AA3DmB,sBAAsB;IAF3C,gBAAgB;IAChB,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;GAClB,sBAAsB,CA2I3C","sourcesContent":["import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { shadowOptions } from '../common/decorators/shadow-options.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common//mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\n\nexport interface IgcButtonEventMap {\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n@blazorDeepImport\n@shadowOptions({ delegatesFocus: true })\nexport abstract class IgcButtonBaseComponent extends EventEmitterMixin<\n IgcButtonEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly formAssociated = true;\n\n protected readonly _internals = addInternalsController(this);\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n protected _disabled = false;\n\n @query('[part=\"base\"]', true)\n private readonly _nativeButton!: HTMLButtonElement;\n\n /* alternateName: displayType */\n /**\n * The type of the button. Defaults to `button`.\n * @attr\n */\n @property({ reflect: true })\n public type: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * The URL the button points to.\n * @attr\n */\n @property()\n public href?: string;\n\n /**\n * Prompts to save the linked URL instead of navigating to it.\n * @attr\n */\n @property()\n public download?: string;\n\n /**\n * Where to display the linked URL, as the name for a browsing context.\n * @attr\n */\n @property()\n public target?: '_blank' | '_parent' | '_self' | '_top';\n\n /**\n * The relationship of the linked URL.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types\n * @attr\n */\n @property()\n public rel?: string;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /* blazorCSSuppress */\n /* alternateType: object */\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /* alternateName: focusComponent */\n /** Sets focus in the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton.focus(options);\n }\n\n /** Simulates a mouse click on the element */\n public override click(): void {\n this._nativeButton.click();\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton.blur();\n }\n\n protected _handleClick(): void {\n if (this.type === 'submit') {\n this.form?.requestSubmit();\n } else if (this.type === 'reset') {\n this.form?.reset();\n }\n }\n\n protected formDisabledCallback(state: boolean): void {\n this._disabled = state;\n this.requestUpdate();\n }\n\n private renderButton() {\n return html`\n <button\n part=${partMap({ base: true, focused: this._focusRingManager.focused })}\n aria-label=${ifDefined(this.ariaLabel ?? nothing)}\n ?disabled=${this.disabled}\n type=${ifDefined(this.type)}\n @click=${this._handleClick}\n >\n ${this.renderContent()}\n </button>\n `;\n }\n\n private renderLinkButton() {\n return html`\n <a\n part=${partMap({ base: true, focused: this._focusRingManager.focused })}\n role=\"button\"\n aria-label=${ifDefined(this.ariaLabel ?? nothing)}\n aria-disabled=${this.disabled}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n download=${ifDefined(this.download)}\n rel=${ifDefined(this.rel)}\n >\n ${this.renderContent()}\n </a>\n `;\n }\n\n protected abstract renderContent(): TemplateResult;\n\n protected override render() {\n const link = this.href !== undefined;\n return link ? this.renderLinkButton() : this.renderButton();\n }\n}\n"]}
@@ -12,7 +12,9 @@ import { IgcButtonBaseComponent } from './button-base.js';
12
12
  import { styles } from './themes/button/button.base.css.js';
13
13
  import { styles as shared } from './themes/button/shared/button.common.css.js';
14
14
  import { all } from './themes/button/themes.js';
15
- class IgcButtonComponent extends IgcButtonBaseComponent {
15
+ export default class IgcButtonComponent extends IgcButtonBaseComponent {
16
+ static { this.tagName = 'igc-button'; }
17
+ static { this.styles = [styles, shared]; }
16
18
  static register() {
17
19
  registerComponent(IgcButtonComponent);
18
20
  }
@@ -29,9 +31,6 @@ class IgcButtonComponent extends IgcButtonBaseComponent {
29
31
  `;
30
32
  }
31
33
  }
32
- IgcButtonComponent.tagName = 'igc-button';
33
- IgcButtonComponent.styles = [styles, shared];
34
- export default IgcButtonComponent;
35
34
  __decorate([
36
35
  property({ reflect: true })
37
36
  ], IgcButtonComponent.prototype, "variant", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAgBhD,MAAqB,kBAAmB,SAAQ,sBAAsB;IAK7D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IASD;QACE,KAAK,EAAE,CAAC;QAHH,YAAO,GAAkB,WAAW,CAAC;QAI1C,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AA1BsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AAC7B,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAFxB,kBAAkB;AAc9B;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACgB","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { ButtonVariant } from '../types.js';\nimport { IgcButtonBaseComponent } from './button-base.js';\nimport { styles } from './themes/button/button.base.css.js';\nimport { styles as shared } from './themes/button/shared/button.common.css.js';\nimport { all } from './themes/button/themes.js';\n\n/**\n * Represents a clickable button, used to submit forms or anywhere in a\n * document for accessible, standard button functionality.\n *\n * @element igc-button\n *\n * @slot - Renders the label of the button.\n * @slot prefix - Renders content before the label of the button.\n * @slot suffix - Renders content after the label of the button.\n *\n * @csspart base - The native button element of the igc-button component.\n * @csspart prefix - The prefix container of the igc-button component.\n * @csspart suffix - The suffix container of the igc-button component.\n */\nexport default class IgcButtonComponent extends IgcButtonBaseComponent {\n public static readonly tagName = 'igc-button';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcButtonComponent);\n }\n\n /**\n * Sets the variant of the button.\n * @attr\n */\n @property({ reflect: true })\n public variant: ButtonVariant = 'contained';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected renderContent() {\n return html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-button': IgcButtonComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAgBhD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sBAAsB;aAC7C,YAAO,GAAG,YAAY,AAAf,CAAgB;aAC7B,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAGpC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IASD;QACE,KAAK,EAAE,CAAC;QAHH,YAAO,GAAkB,WAAW,CAAC;QAI1C,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAbM;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACgB","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { ButtonVariant } from '../types.js';\nimport { IgcButtonBaseComponent } from './button-base.js';\nimport { styles } from './themes/button/button.base.css.js';\nimport { styles as shared } from './themes/button/shared/button.common.css.js';\nimport { all } from './themes/button/themes.js';\n\n/**\n * Represents a clickable button, used to submit forms or anywhere in a\n * document for accessible, standard button functionality.\n *\n * @element igc-button\n *\n * @slot - Renders the label of the button.\n * @slot prefix - Renders content before the label of the button.\n * @slot suffix - Renders content after the label of the button.\n *\n * @csspart base - The native button element of the igc-button component.\n * @csspart prefix - The prefix container of the igc-button component.\n * @csspart suffix - The suffix container of the igc-button component.\n */\nexport default class IgcButtonComponent extends IgcButtonBaseComponent {\n public static readonly tagName = 'igc-button';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcButtonComponent);\n }\n\n /**\n * Sets the variant of the button.\n * @attr\n */\n @property({ reflect: true })\n public variant: ButtonVariant = 'contained';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected renderContent() {\n return html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-button': IgcButtonComponent;\n }\n}\n"]}
@@ -16,7 +16,9 @@ import { IgcButtonBaseComponent } from './button-base.js';
16
16
  import { styles } from './themes/icon-button/icon-button.base.css.js';
17
17
  import { styles as shared } from './themes/icon-button/shared/icon-button.common.css.js';
18
18
  import { all } from './themes/icon-button/themes.js';
19
- class IgcIconButtonComponent extends IgcButtonBaseComponent {
19
+ export default class IgcIconButtonComponent extends IgcButtonBaseComponent {
20
+ static { this.tagName = 'igc-icon-button'; }
21
+ static { this.styles = [styles, shared]; }
20
22
  static register() {
21
23
  registerComponent(IgcIconButtonComponent, IgcIconComponent);
22
24
  }
@@ -49,9 +51,6 @@ class IgcIconButtonComponent extends IgcButtonBaseComponent {
49
51
  registerIconFromText_impl(name, iconText, collection);
50
52
  }
51
53
  }
52
- IgcIconButtonComponent.tagName = 'igc-icon-button';
53
- IgcIconButtonComponent.styles = [styles, shared];
54
- export default IgcIconButtonComponent;
55
54
  __decorate([
56
55
  property()
57
56
  ], IgcIconButtonComponent.prototype, "name", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../src/components/button/icon-button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,YAAY,IAAI,iBAAiB,EACjC,oBAAoB,IAAI,yBAAyB,GAClD,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAQrD,MAAqB,sBAAuB,SAAQ,sBAAsB;IAKjE,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IA+BD;QACE,KAAK,EAAE,CAAC;QAVH,aAAQ,GAAG,KAAK,CAAC;QAOjB,YAAO,GAAsB,WAAW,CAAC;QAI9C,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC1B,CAAC,CAAC,IAAI,CAAA;;;qBAGO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;2BACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;0BAC3B,IAAI,CAAC,QAAQ;;;;WAI5B;YACH,CAAC,CAAC,IAAI,CAAA,eAAe;KACxB,CAAC;IACJ,CAAC;IAIe,AAAN,KAAK,CAAC,YAAY,CAC1B,IAAY,EACZ,GAAW,EACX,UAAU,GAAG,SAAS;QAEtB,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAIS,oBAAoB,CAC5B,IAAY,EACZ,QAAgB,EAChB,UAAU,GAAG,SAAS;QAEtB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;;AA7EsB,8BAAO,GAAG,iBAAiB,AAApB,CAAqB;AAClC,6BAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAFxB,sBAAsB;AAelC;IADN,QAAQ,EAAE;oDACU;AAOd;IADN,QAAQ,EAAE;0DACgB;AAOpB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACJ;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACoB;AA0BhC;IADf,aAAa,EAAE;0DAOf;AAIS;IADT,aAAa,EAAE;kEAOf","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { blazorInclude } from '../common/decorators/blazorInclude.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport {\n registerIcon as registerIcon_impl,\n registerIconFromText as registerIconFromText_impl,\n} from '../icon/icon.registry.js';\nimport type { IconButtonVariant } from '../types.js';\nimport { IgcButtonBaseComponent } from './button-base.js';\nimport { styles } from './themes/icon-button/icon-button.base.css.js';\nimport { styles as shared } from './themes/icon-button/shared/icon-button.common.css.js';\nimport { all } from './themes/icon-button/themes.js';\n\n/**\n * @element igc-icon-button\n *\n * @csspart base - The wrapping element of the icon button.\n * @csspart icon - The icon element of the icon button.\n */\nexport default class IgcIconButtonComponent extends IgcButtonBaseComponent {\n public static readonly tagName = 'igc-icon-button';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcIconButtonComponent, IgcIconComponent);\n }\n\n /* alternateName: iconName */\n /**\n * The name of the icon.\n * @attr\n */\n @property()\n public name?: string;\n\n /**\n * The name of the icon collection.\n * @attr\n */\n @property()\n public collection?: string;\n\n /**\n * Whether to flip the icon button. Useful for RTL layouts.\n * @attr\n */\n @property({ type: Boolean })\n public mirrored = false;\n\n /**\n * The visual variant of the icon button.\n * @attr\n */\n @property({ reflect: true })\n public variant: IconButtonVariant = 'contained';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected renderContent() {\n return html`\n ${this.name || this.mirrored\n ? html`\n <igc-icon\n part=\"icon\"\n name=${ifDefined(this.name)}\n collection=${ifDefined(this.collection)}\n .mirrored=${this.mirrored}\n aria-hidden=\"true\"\n ></igc-icon>\n <slot></slot>\n `\n : html`<slot></slot>`}\n `;\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected async registerIcon(\n name: string,\n url: string,\n collection = 'default'\n ) {\n await registerIcon_impl(name, url, collection);\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected registerIconFromText(\n name: string,\n iconText: string,\n collection = 'default'\n ) {\n registerIconFromText_impl(name, iconText, collection);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-icon-button': IgcIconButtonComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../src/components/button/icon-button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,YAAY,IAAI,iBAAiB,EACjC,oBAAoB,IAAI,yBAAyB,GAClD,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAQrD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,sBAAsB;aACjD,YAAO,GAAG,iBAAiB,AAApB,CAAqB;aAClC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAGpC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IA+BD;QACE,KAAK,EAAE,CAAC;QAVH,aAAQ,GAAG,KAAK,CAAC;QAOjB,YAAO,GAAsB,WAAW,CAAC;QAI9C,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC1B,CAAC,CAAC,IAAI,CAAA;;;qBAGO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;2BACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;0BAC3B,IAAI,CAAC,QAAQ;;;;WAI5B;YACH,CAAC,CAAC,IAAI,CAAA,eAAe;KACxB,CAAC;IACJ,CAAC;IAIe,AAAN,KAAK,CAAC,YAAY,CAC1B,IAAY,EACZ,GAAW,EACX,UAAU,GAAG,SAAS;QAEtB,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAIS,oBAAoB,CAC5B,IAAY,EACZ,QAAgB,EAChB,UAAU,GAAG,SAAS;QAEtB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;;AA/DM;IADN,QAAQ,EAAE;oDACU;AAOd;IADN,QAAQ,EAAE;0DACgB;AAOpB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACJ;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACoB;AA0BhC;IADf,aAAa,EAAE;0DAOf;AAIS;IADT,aAAa,EAAE;kEAOf","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { blazorInclude } from '../common/decorators/blazorInclude.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport {\n registerIcon as registerIcon_impl,\n registerIconFromText as registerIconFromText_impl,\n} from '../icon/icon.registry.js';\nimport type { IconButtonVariant } from '../types.js';\nimport { IgcButtonBaseComponent } from './button-base.js';\nimport { styles } from './themes/icon-button/icon-button.base.css.js';\nimport { styles as shared } from './themes/icon-button/shared/icon-button.common.css.js';\nimport { all } from './themes/icon-button/themes.js';\n\n/**\n * @element igc-icon-button\n *\n * @csspart base - The wrapping element of the icon button.\n * @csspart icon - The icon element of the icon button.\n */\nexport default class IgcIconButtonComponent extends IgcButtonBaseComponent {\n public static readonly tagName = 'igc-icon-button';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcIconButtonComponent, IgcIconComponent);\n }\n\n /* alternateName: iconName */\n /**\n * The name of the icon.\n * @attr\n */\n @property()\n public name?: string;\n\n /**\n * The name of the icon collection.\n * @attr\n */\n @property()\n public collection?: string;\n\n /**\n * Whether to flip the icon button. Useful for RTL layouts.\n * @attr\n */\n @property({ type: Boolean })\n public mirrored = false;\n\n /**\n * The visual variant of the icon button.\n * @attr\n */\n @property({ reflect: true })\n public variant: IconButtonVariant = 'contained';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected renderContent() {\n return html`\n ${this.name || this.mirrored\n ? html`\n <igc-icon\n part=\"icon\"\n name=${ifDefined(this.name)}\n collection=${ifDefined(this.collection)}\n .mirrored=${this.mirrored}\n aria-hidden=\"true\"\n ></igc-icon>\n <slot></slot>\n `\n : html`<slot></slot>`}\n `;\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected async registerIcon(\n name: string,\n url: string,\n collection = 'default'\n ) {\n await registerIcon_impl(name, url, collection);\n }\n\n /* c8 ignore next 8 */\n @blazorInclude()\n protected registerIconFromText(\n name: string,\n iconText: string,\n collection = 'default'\n ) {\n registerIconFromText_impl(name, iconText, collection);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-icon-button': IgcIconButtonComponent;\n }\n}\n"]}
@@ -16,7 +16,9 @@ import { styles } from './themes/group.base.css.js';
16
16
  import { all } from './themes/group.js';
17
17
  import { styles as shared } from './themes/shared/group/group.common.css.js';
18
18
  import IgcToggleButtonComponent from './toggle-button.js';
19
- class IgcButtonGroupComponent extends EventEmitterMixin(LitElement) {
19
+ export default class IgcButtonGroupComponent extends EventEmitterMixin(LitElement) {
20
+ static { this.tagName = 'igc-button-group'; }
21
+ static { this.styles = [styles, shared]; }
20
22
  static register() {
21
23
  registerComponent(IgcButtonGroupComponent, IgcToggleButtonComponent);
22
24
  }
@@ -154,9 +156,6 @@ class IgcButtonGroupComponent extends EventEmitterMixin(LitElement) {
154
156
  `;
155
157
  }
156
158
  }
157
- IgcButtonGroupComponent.tagName = 'igc-button-group';
158
- IgcButtonGroupComponent.styles = [styles, shared];
159
- export default IgcButtonGroupComponent;
160
159
  __decorate([
161
160
  queryAssignedElements({ selector: IgcToggleButtonComponent.tagName })
162
161
  ], IgcButtonGroupComponent.prototype, "toggleButtons", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","sourceRoot":"","sources":["../../../src/components/button-group/button-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '../common/controllers/mutation-observer.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { findElementFromEventPath, last } from '../common/util.js';\nimport type { ButtonGroupSelection, ContentOrientation } from '../types.js';\nimport { styles } from './themes/group.base.css.js';\nimport { all } from './themes/group.js';\nimport { styles as shared } from './themes/shared/group/group.common.css.js';\nimport IgcToggleButtonComponent from './toggle-button.js';\n\nexport interface IgcButtonGroupComponentEventMap {\n igcSelect: CustomEvent<string | undefined>;\n igcDeselect: CustomEvent<string | undefined>;\n}\n\n/* blazorAdditionalDependency: IgcToggleButtonComponent */\n/**\n * The `igc-button-group` groups a series of `igc-toggle-button`s together, exposing features such as layout and selection.\n *\n * @element igc-button-group\n *\n * @slot - Renders `igc-toggle-button` component.\n *\n * @fires igcSelect - Emitted when a button is selected through user interaction.\n * @fires igcDeselect - Emitted when a button is deselected through user interaction.\n *\n * @csspart group - The button group container.\n */\nexport default class IgcButtonGroupComponent extends EventEmitterMixin<\n IgcButtonGroupComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-button-group';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcButtonGroupComponent, IgcToggleButtonComponent);\n }\n\n private get isMultiple() {\n return this.selection === 'multiple';\n }\n\n private _selectedItems: Set<string> = new Set();\n\n private _observerCallback({\n changes: { added, attributes },\n }: MutationControllerParams<IgcToggleButtonComponent>) {\n if (this.isMultiple || this._selectedButtons.length <= 1) {\n return;\n }\n\n const buttons = this.toggleButtons;\n const idx = buttons.indexOf(\n added.length ? last(added).node : last(attributes).node\n );\n\n for (const [i, button] of buttons.entries()) {\n if (button.selected && i !== idx) {\n button.selected = false;\n }\n }\n }\n\n private get _selectedButtons(): Array<IgcToggleButtonComponent> {\n return this.toggleButtons.filter((b) => b.selected);\n }\n\n @queryAssignedElements({ selector: IgcToggleButtonComponent.tagName })\n private toggleButtons!: Array<IgcToggleButtonComponent>;\n\n /**\n * Disables all buttons inside the group.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Sets the orientation of the buttons in the group.\n * @attr\n */\n @property({ reflect: true })\n public alignment: ContentOrientation = 'horizontal';\n\n /**\n * Controls the mode of selection for the button group.\n * @attr\n */\n @property({ reflect: false })\n public selection: ButtonGroupSelection = 'single';\n\n /**\n * Gets/Sets the currently selected buttons (their values).\n * @attr\n */\n @property({ attribute: 'selected-items', type: Array, reflect: false })\n public get selectedItems(): string[] {\n return this._selectedButtons.map((b) => b.value).filter((v) => v);\n }\n\n public set selectedItems(values: string[]) {\n this._selectedItems = new Set(Array.isArray(values) ? values : []);\n this.setSelection(this._selectedItems);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n protected updateDisabledState() {\n this.toggleButtons.forEach((b) => {\n b.disabled = this.disabled;\n });\n }\n\n @watch('selection', { waitUntilFirstUpdate: true })\n protected updateSelectionState() {\n if (this._selectedButtons.length) {\n this.toggleButtons.forEach((b) => {\n b.selected = false;\n });\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcToggleButtonComponent.tagName],\n config: {\n attributeFilter: ['selected'],\n childList: true,\n subtree: true,\n },\n });\n }\n\n protected override firstUpdated() {\n if (this.disabled) {\n this.updateDisabledState();\n }\n\n const buttons = this._selectedButtons;\n\n if (buttons.length) {\n if (!this.isMultiple) {\n const index = buttons.indexOf(buttons.at(-1)!);\n\n for (let i = 0; i < index; i++) {\n buttons[i].selected = false;\n }\n }\n } else {\n this.setSelection(this._selectedItems);\n }\n }\n\n private handleClick(event: MouseEvent) {\n const button = findElementFromEventPath<IgcToggleButtonComponent>(\n IgcToggleButtonComponent.tagName,\n event\n );\n\n if (button) {\n this.isMultiple\n ? this.handleMultipleSelection(button)\n : this.handleSingleSelection(button);\n }\n }\n\n private handleSingleSelection(button: IgcToggleButtonComponent) {\n const singleRequired = this.selection === 'single-required';\n const selectedButton = this._selectedButtons.at(0);\n const isSame = selectedButton && selectedButton.value === button.value;\n\n if (selectedButton) {\n if (singleRequired && isSame) return;\n this.emitDeselectEvent(selectedButton);\n }\n if (isSame) return;\n this.emitSelectEvent(button);\n }\n\n private handleMultipleSelection(button: IgcToggleButtonComponent) {\n button.selected\n ? this.emitDeselectEvent(button)\n : this.emitSelectEvent(button);\n }\n\n private emitSelectEvent(button: IgcToggleButtonComponent) {\n button.selected = true;\n this.emitEvent('igcSelect', { detail: button.value });\n }\n\n private emitDeselectEvent(button: IgcToggleButtonComponent) {\n button.selected = false;\n this.emitEvent('igcDeselect', { detail: button.value });\n }\n\n private setSelection(values: Set<string>) {\n if (!values.size) {\n this.toggleButtons.forEach((b) => {\n b.selected = false;\n });\n return;\n }\n\n for (const button of this.toggleButtons) {\n if (values.has(button.value)) {\n button.selected = true;\n if (!this.isMultiple) {\n break;\n }\n }\n }\n }\n\n protected override render() {\n return html`\n <div\n part=\"group\"\n role=\"group\"\n aria-disabled=${this.disabled}\n @click=${this.handleClick}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-button-group': IgcButtonGroupComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"button-group.js","sourceRoot":"","sources":["../../../src/components/button-group/button-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,wBAAwB,GAEzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,wBAAwB,MAAM,oBAAoB,CAAC;AAoB1D,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,iBAAiB,CAGpE,UAAU,CAAC;aACY,YAAO,GAAG,kBAAkB,AAArB,CAAsB;aACtC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAGjC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;IACvE,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC;IACvC,CAAC;IAIO,iBAAiB,CAAC,EACxB,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GACqB;QACnD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACxD,CAAC;QAEF,KAAK,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IA+BD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAW,aAAa,CAAC,MAAgB;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAGS,mBAAmB;QAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAGS,oBAAoB;QAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAhFF,mBAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;QAiCzC,aAAQ,GAAG,KAAK,CAAC;QAOjB,cAAS,GAAuB,YAAY,CAAC;QAO7C,cAAS,GAAyB,QAAQ,CAAC;QAmChD,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhC,wBAAwB,CAAC,IAAI,EAAE;YAC7B,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,MAAM,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC;YAC1C,MAAM,EAAE;gBACN,eAAe,EAAE,CAAC,UAAU,CAAC;gBAC7B,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;IACL,CAAC;IAEkB,YAAY;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;gBAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,MAAM,MAAM,GAAG,wBAAwB,CACrC,wBAAwB,CAAC,OAAO,EAChC,KAAK,CACN,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU;gBACb,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,MAAgC;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,KAAK,iBAAiB,CAAC;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,cAAc,IAAI,cAAc,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;QAEvE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,cAAc,IAAI,MAAM;gBAAE,OAAO;YACrC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,MAAM;YAAE,OAAO;QACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,uBAAuB,CAAC,MAAgC;QAC9D,MAAM,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAEO,eAAe,CAAC,MAAgC;QACtD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,iBAAiB,CAAC,MAAgC;QACxD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEO,YAAY,CAAC,MAAmB;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;wBAIS,IAAI,CAAC,QAAQ;iBACpB,IAAI,CAAC,WAAW;;;;KAI5B,CAAC;IACJ,CAAC;;AAhKO;IADP,qBAAqB,CAAC,EAAE,QAAQ,EAAE,wBAAwB,CAAC,OAAO,EAAE,CAAC;8DACd;AAOjD;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACwB;AAO7C;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;0DACqB;AAOlD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;4DAGtE;AAQS;IADT,KAAK,CAAC,UAAU,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;kEAKjD;AAGS;IADT,KAAK,CAAC,WAAW,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;mEAOlD","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '../common/controllers/mutation-observer.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { findElementFromEventPath, last } from '../common/util.js';\nimport type { ButtonGroupSelection, ContentOrientation } from '../types.js';\nimport { styles } from './themes/group.base.css.js';\nimport { all } from './themes/group.js';\nimport { styles as shared } from './themes/shared/group/group.common.css.js';\nimport IgcToggleButtonComponent from './toggle-button.js';\n\nexport interface IgcButtonGroupComponentEventMap {\n igcSelect: CustomEvent<string | undefined>;\n igcDeselect: CustomEvent<string | undefined>;\n}\n\n/* blazorAdditionalDependency: IgcToggleButtonComponent */\n/**\n * The `igc-button-group` groups a series of `igc-toggle-button`s together, exposing features such as layout and selection.\n *\n * @element igc-button-group\n *\n * @slot - Renders `igc-toggle-button` component.\n *\n * @fires igcSelect - Emitted when a button is selected through user interaction.\n * @fires igcDeselect - Emitted when a button is deselected through user interaction.\n *\n * @csspart group - The button group container.\n */\nexport default class IgcButtonGroupComponent extends EventEmitterMixin<\n IgcButtonGroupComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-button-group';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcButtonGroupComponent, IgcToggleButtonComponent);\n }\n\n private get isMultiple() {\n return this.selection === 'multiple';\n }\n\n private _selectedItems: Set<string> = new Set();\n\n private _observerCallback({\n changes: { added, attributes },\n }: MutationControllerParams<IgcToggleButtonComponent>) {\n if (this.isMultiple || this._selectedButtons.length <= 1) {\n return;\n }\n\n const buttons = this.toggleButtons;\n const idx = buttons.indexOf(\n added.length ? last(added).node : last(attributes).node\n );\n\n for (const [i, button] of buttons.entries()) {\n if (button.selected && i !== idx) {\n button.selected = false;\n }\n }\n }\n\n private get _selectedButtons(): Array<IgcToggleButtonComponent> {\n return this.toggleButtons.filter((b) => b.selected);\n }\n\n @queryAssignedElements({ selector: IgcToggleButtonComponent.tagName })\n private toggleButtons!: Array<IgcToggleButtonComponent>;\n\n /**\n * Disables all buttons inside the group.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Sets the orientation of the buttons in the group.\n * @attr\n */\n @property({ reflect: true })\n public alignment: ContentOrientation = 'horizontal';\n\n /**\n * Controls the mode of selection for the button group.\n * @attr\n */\n @property({ reflect: false })\n public selection: ButtonGroupSelection = 'single';\n\n /**\n * Gets/Sets the currently selected buttons (their values).\n * @attr\n */\n @property({ attribute: 'selected-items', type: Array, reflect: false })\n public get selectedItems(): string[] {\n return this._selectedButtons.map((b) => b.value).filter((v) => v);\n }\n\n public set selectedItems(values: string[]) {\n this._selectedItems = new Set(Array.isArray(values) ? values : []);\n this.setSelection(this._selectedItems);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n protected updateDisabledState() {\n this.toggleButtons.forEach((b) => {\n b.disabled = this.disabled;\n });\n }\n\n @watch('selection', { waitUntilFirstUpdate: true })\n protected updateSelectionState() {\n if (this._selectedButtons.length) {\n this.toggleButtons.forEach((b) => {\n b.selected = false;\n });\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n createMutationController(this, {\n callback: this._observerCallback,\n filter: [IgcToggleButtonComponent.tagName],\n config: {\n attributeFilter: ['selected'],\n childList: true,\n subtree: true,\n },\n });\n }\n\n protected override firstUpdated() {\n if (this.disabled) {\n this.updateDisabledState();\n }\n\n const buttons = this._selectedButtons;\n\n if (buttons.length) {\n if (!this.isMultiple) {\n const index = buttons.indexOf(buttons.at(-1)!);\n\n for (let i = 0; i < index; i++) {\n buttons[i].selected = false;\n }\n }\n } else {\n this.setSelection(this._selectedItems);\n }\n }\n\n private handleClick(event: MouseEvent) {\n const button = findElementFromEventPath<IgcToggleButtonComponent>(\n IgcToggleButtonComponent.tagName,\n event\n );\n\n if (button) {\n this.isMultiple\n ? this.handleMultipleSelection(button)\n : this.handleSingleSelection(button);\n }\n }\n\n private handleSingleSelection(button: IgcToggleButtonComponent) {\n const singleRequired = this.selection === 'single-required';\n const selectedButton = this._selectedButtons.at(0);\n const isSame = selectedButton && selectedButton.value === button.value;\n\n if (selectedButton) {\n if (singleRequired && isSame) return;\n this.emitDeselectEvent(selectedButton);\n }\n if (isSame) return;\n this.emitSelectEvent(button);\n }\n\n private handleMultipleSelection(button: IgcToggleButtonComponent) {\n button.selected\n ? this.emitDeselectEvent(button)\n : this.emitSelectEvent(button);\n }\n\n private emitSelectEvent(button: IgcToggleButtonComponent) {\n button.selected = true;\n this.emitEvent('igcSelect', { detail: button.value });\n }\n\n private emitDeselectEvent(button: IgcToggleButtonComponent) {\n button.selected = false;\n this.emitEvent('igcDeselect', { detail: button.value });\n }\n\n private setSelection(values: Set<string>) {\n if (!values.size) {\n this.toggleButtons.forEach((b) => {\n b.selected = false;\n });\n return;\n }\n\n for (const button of this.toggleButtons) {\n if (values.has(button.value)) {\n button.selected = true;\n if (!this.isMultiple) {\n break;\n }\n }\n }\n }\n\n protected override render() {\n return html`\n <div\n part=\"group\"\n role=\"group\"\n aria-disabled=${this.disabled}\n @click=${this.handleClick}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-button-group': IgcButtonGroupComponent;\n }\n}\n"]}
@@ -15,7 +15,10 @@ import { partMap } from '../common/part-map.js';
15
15
  import { styles } from './themes/button.base.css.js';
16
16
  import { all } from './themes/button.js';
17
17
  import { styles as shared } from './themes/shared/button/button.common.css.js';
18
- let IgcToggleButtonComponent = IgcToggleButtonComponent_1 = class IgcToggleButtonComponent extends LitElement {
18
+ let IgcToggleButtonComponent = class IgcToggleButtonComponent extends LitElement {
19
+ static { IgcToggleButtonComponent_1 = this; }
20
+ static { this.styles = [styles, shared]; }
21
+ static { this.tagName = 'igc-toggle-button'; }
19
22
  static register() {
20
23
  registerComponent(IgcToggleButtonComponent_1);
21
24
  }
@@ -53,8 +56,6 @@ let IgcToggleButtonComponent = IgcToggleButtonComponent_1 = class IgcToggleButto
53
56
  `;
54
57
  }
55
58
  };
56
- IgcToggleButtonComponent.styles = [styles, shared];
57
- IgcToggleButtonComponent.tagName = 'igc-toggle-button';
58
59
  __decorate([
59
60
  query('[part="toggle"]', true)
60
61
  ], IgcToggleButtonComponent.prototype, "_nativeButton", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-button.js","sourceRoot":"","sources":["../../../src/components/button-group/toggle-button.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAahE,IAAM,wBAAwB,gCAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAKvD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,0BAAwB,CAAC,CAAC;IAC9C,CAAC;IA4BD;QACE,KAAK,EAAE,CAAC;QA3BO,sBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAiBzD,aAAQ,GAAG,KAAK,CAAC;QAOjB,aAAQ,GAAG,KAAK,CAAC;QAItB,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAIe,KAAK,CAAC,OAAsB;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAIe,IAAI;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAGe,KAAK;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACxC,CAAC;;oBAEU,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,SAAS;uBACZ,IAAI,CAAC,QAAQ;wBACZ,IAAI,CAAC,QAAQ;;;;KAIhC,CAAC;IACJ,CAAC;;AAxEsB,+BAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAC1B,gCAAO,GAAG,mBAAmB,AAAtB,CAAuB;AAUpC;IADhB,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC;+DACoB;AAO5C;IADN,QAAQ,EAAE;uDACW;AAOf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAjCL,wBAAwB;IAD5C,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;GACnB,wBAAwB,CA0E5C;eA1EoB,wBAAwB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { shadowOptions } from '../common/decorators/shadow-options.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { styles } from './themes/button.base.css.js';\nimport { all } from './themes/button.js';\nimport { styles as shared } from './themes/shared/button/button.common.css.js';\n\n/**\n * The `igc-toggle-button` wraps a native button element and exposes additional `value` and `selected` properties.\n * It is used in the context of an `igc-button-group` to facilitate the creation of group/toolbar like UX behaviors.\n *\n * @element igc-toggle-button\n *\n * @slot Renders the label/content of the button.\n *\n * @csspart toggle - The native button element.\n */\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcToggleButtonComponent extends LitElement {\n public static override styles = [styles, shared];\n public static readonly tagName = 'igc-toggle-button';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcToggleButtonComponent);\n }\n\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n @query('[part=\"toggle\"]', true)\n private readonly _nativeButton!: HTMLButtonElement;\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public value!: string;\n\n /**\n * Determines whether the button is selected.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Determines whether the button is disabled.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton.blur();\n }\n\n /** Simulates a mouse click on the element. */\n public override click(): void {\n this._nativeButton.click();\n }\n\n protected override render() {\n return html`\n <button\n part=${partMap({\n toggle: true,\n focused: this._focusRingManager.focused,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n .ariaLabel=${this.ariaLabel}\n aria-pressed=${this.selected}\n aria-disabled=${this.disabled}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toggle-button': IgcToggleButtonComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"toggle-button.js","sourceRoot":"","sources":["../../../src/components/button-group/toggle-button.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAahE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;;aACvC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;aAC1B,YAAO,GAAG,mBAAmB,AAAtB,CAAuB;IAG9C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,0BAAwB,CAAC,CAAC;IAC9C,CAAC;IA4BD;QACE,KAAK,EAAE,CAAC;QA3BO,sBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAiBzD,aAAQ,GAAG,KAAK,CAAC;QAOjB,aAAQ,GAAG,KAAK,CAAC;QAItB,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAIe,KAAK,CAAC,OAAsB;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAIe,IAAI;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAGe,KAAK;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACxC,CAAC;;oBAEU,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,SAAS;uBACZ,IAAI,CAAC,QAAQ;wBACZ,IAAI,CAAC,QAAQ;;;;KAIhC,CAAC;IACJ,CAAC;;AA7DgB;IADhB,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC;+DACoB;AAO5C;IADN,QAAQ,EAAE;uDACW;AAOf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAjCL,wBAAwB;IAD5C,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;GACnB,wBAAwB,CA0E5C;eA1EoB,wBAAwB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { shadowOptions } from '../common/decorators/shadow-options.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { styles } from './themes/button.base.css.js';\nimport { all } from './themes/button.js';\nimport { styles as shared } from './themes/shared/button/button.common.css.js';\n\n/**\n * The `igc-toggle-button` wraps a native button element and exposes additional `value` and `selected` properties.\n * It is used in the context of an `igc-button-group` to facilitate the creation of group/toolbar like UX behaviors.\n *\n * @element igc-toggle-button\n *\n * @slot Renders the label/content of the button.\n *\n * @csspart toggle - The native button element.\n */\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcToggleButtonComponent extends LitElement {\n public static override styles = [styles, shared];\n public static readonly tagName = 'igc-toggle-button';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcToggleButtonComponent);\n }\n\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n @query('[part=\"toggle\"]', true)\n private readonly _nativeButton!: HTMLButtonElement;\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public value!: string;\n\n /**\n * Determines whether the button is selected.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Determines whether the button is disabled.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton.blur();\n }\n\n /** Simulates a mouse click on the element. */\n public override click(): void {\n this._nativeButton.click();\n }\n\n protected override render() {\n return html`\n <button\n part=${partMap({\n toggle: true,\n focused: this._focusRingManager.focused,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n .ariaLabel=${this.ariaLabel}\n aria-pressed=${this.selected}\n aria-disabled=${this.disabled}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toggle-button': IgcToggleButtonComponent;\n }\n}\n"]}
@@ -27,7 +27,9 @@ import { styles } from './themes/calendar.base.css.js';
27
27
  import { all } from './themes/calendar.js';
28
28
  import IgcYearsViewComponent from './years-view/years-view.js';
29
29
  export const focusActiveDate = Symbol();
30
- class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarBaseComponent) {
30
+ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarBaseComponent) {
31
+ static { this.tagName = 'igc-calendar'; }
32
+ static { this.styles = styles; }
31
33
  static register() {
32
34
  registerComponent(IgcCalendarComponent, IgcIconComponent, IgcDaysViewComponent, IgcMonthsViewComponent, IgcYearsViewComponent);
33
35
  }
@@ -477,9 +479,6 @@ class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarBaseComponent) {
477
479
  this[focusActiveDate]();
478
480
  }
479
481
  }
480
- IgcCalendarComponent.tagName = 'igc-calendar';
481
- IgcCalendarComponent.styles = styles;
482
- export default IgcCalendarComponent;
483
482
  __decorate([
484
483
  state()
485
484
  ], IgcCalendarComponent.prototype, "activeDaysViewIndex", void 0);