wcs-core 7.3.0 → 7.4.1

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 (802) hide show
  1. package/README.md +11 -9
  2. package/bundle/index.d.ts +45 -0
  3. package/bundle/index.js +2 -0
  4. package/bundle/index.js.map +1 -0
  5. package/bundle/p-010cf905.js +2 -0
  6. package/bundle/p-010cf905.js.map +1 -0
  7. package/bundle/p-2751ddc1.js +2 -0
  8. package/bundle/p-2751ddc1.js.map +1 -0
  9. package/bundle/p-2bef72c7.js +2 -0
  10. package/bundle/p-2bef72c7.js.map +1 -0
  11. package/bundle/p-2e9b9605.js +2 -0
  12. package/bundle/p-2e9b9605.js.map +1 -0
  13. package/bundle/p-35d7af48.js +2 -0
  14. package/bundle/p-35d7af48.js.map +1 -0
  15. package/bundle/p-38e45350.js +2 -0
  16. package/bundle/p-38e45350.js.map +1 -0
  17. package/bundle/p-3abf8a42.js +2 -0
  18. package/bundle/p-3abf8a42.js.map +1 -0
  19. package/bundle/p-44a3b0b9.js +2 -0
  20. package/bundle/p-44a3b0b9.js.map +1 -0
  21. package/bundle/p-60193ef5.js +2 -0
  22. package/bundle/p-60193ef5.js.map +1 -0
  23. package/bundle/p-6bc981dd.js +156 -0
  24. package/bundle/p-6bc981dd.js.map +1 -0
  25. package/bundle/p-763371a0.js +16 -0
  26. package/bundle/p-763371a0.js.map +1 -0
  27. package/bundle/p-8bfdf6f6.js +2 -0
  28. package/bundle/p-8bfdf6f6.js.map +1 -0
  29. package/bundle/p-97e70e10.js +2 -0
  30. package/bundle/p-97e70e10.js.map +1 -0
  31. package/bundle/p-98bd8a96.js +2 -0
  32. package/bundle/p-98bd8a96.js.map +1 -0
  33. package/bundle/p-a0f32ead.js +2 -0
  34. package/bundle/p-a0f32ead.js.map +1 -0
  35. package/bundle/p-a7468a3a.js +2 -0
  36. package/bundle/p-a7468a3a.js.map +1 -0
  37. package/bundle/p-c8b73e93.js +2 -0
  38. package/bundle/p-c8b73e93.js.map +1 -0
  39. package/bundle/p-d23d7658.js +2 -0
  40. package/bundle/p-d23d7658.js.map +1 -0
  41. package/bundle/p-d3404c52.js +2 -0
  42. package/bundle/p-d3404c52.js.map +1 -0
  43. package/bundle/p-e1fb3625.js +2 -0
  44. package/bundle/p-e1fb3625.js.map +1 -0
  45. package/bundle/p-f0dda0b8.js +2 -0
  46. package/bundle/p-f0dda0b8.js.map +1 -0
  47. package/bundle/p-fb2751c2.js +2 -0
  48. package/bundle/p-fb2751c2.js.map +1 -0
  49. package/bundle/p-fc9ba34d.js +2 -0
  50. package/bundle/p-fc9ba34d.js.map +1 -0
  51. package/bundle/package.json +8 -0
  52. package/bundle/wcs-accordion-content.d.ts +11 -0
  53. package/bundle/wcs-accordion-content.js +2 -0
  54. package/bundle/wcs-accordion-content.js.map +1 -0
  55. package/bundle/wcs-accordion-header.d.ts +11 -0
  56. package/bundle/wcs-accordion-header.js +2 -0
  57. package/bundle/wcs-accordion-header.js.map +1 -0
  58. package/bundle/wcs-accordion-panel.d.ts +11 -0
  59. package/bundle/wcs-accordion-panel.js +2 -0
  60. package/bundle/wcs-accordion-panel.js.map +1 -0
  61. package/bundle/wcs-accordion.d.ts +11 -0
  62. package/bundle/wcs-accordion.js +2 -0
  63. package/bundle/wcs-accordion.js.map +1 -0
  64. package/bundle/wcs-action-bar.d.ts +11 -0
  65. package/bundle/wcs-action-bar.js +2 -0
  66. package/bundle/wcs-action-bar.js.map +1 -0
  67. package/bundle/wcs-alert-drawer.d.ts +11 -0
  68. package/bundle/wcs-alert-drawer.js +2 -0
  69. package/bundle/wcs-alert-drawer.js.map +1 -0
  70. package/bundle/wcs-alert.d.ts +11 -0
  71. package/bundle/wcs-alert.js +2 -0
  72. package/bundle/wcs-alert.js.map +1 -0
  73. package/bundle/wcs-app.d.ts +11 -0
  74. package/bundle/wcs-app.js +2 -0
  75. package/bundle/wcs-app.js.map +1 -0
  76. package/bundle/wcs-badge.d.ts +11 -0
  77. package/bundle/wcs-badge.js +2 -0
  78. package/bundle/wcs-badge.js.map +1 -0
  79. package/bundle/wcs-breadcrumb-item.d.ts +11 -0
  80. package/bundle/wcs-breadcrumb-item.js +2 -0
  81. package/bundle/wcs-breadcrumb-item.js.map +1 -0
  82. package/bundle/wcs-breadcrumb.d.ts +11 -0
  83. package/bundle/wcs-breadcrumb.js +2 -0
  84. package/bundle/wcs-breadcrumb.js.map +1 -0
  85. package/bundle/wcs-button.d.ts +11 -0
  86. package/bundle/wcs-button.js +2 -0
  87. package/bundle/wcs-button.js.map +1 -0
  88. package/bundle/wcs-card-body.d.ts +11 -0
  89. package/bundle/wcs-card-body.js +2 -0
  90. package/bundle/wcs-card-body.js.map +1 -0
  91. package/bundle/wcs-card-content.d.ts +11 -0
  92. package/bundle/wcs-card-content.js +2 -0
  93. package/bundle/wcs-card-content.js.map +1 -0
  94. package/bundle/wcs-card-footer.d.ts +11 -0
  95. package/bundle/wcs-card-footer.js +2 -0
  96. package/bundle/wcs-card-footer.js.map +1 -0
  97. package/bundle/wcs-card-header.d.ts +11 -0
  98. package/bundle/wcs-card-header.js +2 -0
  99. package/bundle/wcs-card-header.js.map +1 -0
  100. package/bundle/wcs-card-media.d.ts +11 -0
  101. package/bundle/wcs-card-media.js +2 -0
  102. package/bundle/wcs-card-media.js.map +1 -0
  103. package/bundle/wcs-card.d.ts +11 -0
  104. package/bundle/wcs-card.js +2 -0
  105. package/bundle/wcs-card.js.map +1 -0
  106. package/bundle/wcs-checkbox.d.ts +11 -0
  107. package/bundle/wcs-checkbox.js +2 -0
  108. package/bundle/wcs-checkbox.js.map +1 -0
  109. package/bundle/wcs-chip.d.ts +11 -0
  110. package/bundle/wcs-chip.js +2 -0
  111. package/bundle/wcs-chip.js.map +1 -0
  112. package/bundle/wcs-com-nav-category.d.ts +11 -0
  113. package/bundle/wcs-com-nav-category.js +2 -0
  114. package/bundle/wcs-com-nav-category.js.map +1 -0
  115. package/bundle/wcs-com-nav-item.d.ts +11 -0
  116. package/bundle/wcs-com-nav-item.js +2 -0
  117. package/bundle/wcs-com-nav-item.js.map +1 -0
  118. package/bundle/wcs-com-nav-submenu.d.ts +11 -0
  119. package/bundle/wcs-com-nav-submenu.js +2 -0
  120. package/bundle/wcs-com-nav-submenu.js.map +1 -0
  121. package/bundle/wcs-com-nav.d.ts +11 -0
  122. package/bundle/wcs-com-nav.js +2 -0
  123. package/bundle/wcs-com-nav.js.map +1 -0
  124. package/bundle/wcs-counter.d.ts +11 -0
  125. package/bundle/wcs-counter.js +2 -0
  126. package/bundle/wcs-counter.js.map +1 -0
  127. package/bundle/wcs-divider.d.ts +11 -0
  128. package/bundle/wcs-divider.js +2 -0
  129. package/bundle/wcs-divider.js.map +1 -0
  130. package/bundle/wcs-dropdown-divider.d.ts +11 -0
  131. package/bundle/wcs-dropdown-divider.js +2 -0
  132. package/bundle/wcs-dropdown-divider.js.map +1 -0
  133. package/bundle/wcs-dropdown-header.d.ts +11 -0
  134. package/bundle/wcs-dropdown-header.js +2 -0
  135. package/bundle/wcs-dropdown-header.js.map +1 -0
  136. package/bundle/wcs-dropdown-item.d.ts +11 -0
  137. package/bundle/wcs-dropdown-item.js +2 -0
  138. package/bundle/wcs-dropdown-item.js.map +1 -0
  139. package/bundle/wcs-dropdown.d.ts +11 -0
  140. package/bundle/wcs-dropdown.js +2 -0
  141. package/bundle/wcs-dropdown.js.map +1 -0
  142. package/bundle/wcs-editable-field.d.ts +11 -0
  143. package/bundle/wcs-editable-field.js +2 -0
  144. package/bundle/wcs-editable-field.js.map +1 -0
  145. package/bundle/wcs-error.d.ts +11 -0
  146. package/bundle/wcs-error.js +2 -0
  147. package/bundle/wcs-error.js.map +1 -0
  148. package/bundle/wcs-field-content.d.ts +11 -0
  149. package/bundle/wcs-field-content.js +2 -0
  150. package/bundle/wcs-field-content.js.map +1 -0
  151. package/bundle/wcs-field-label.d.ts +11 -0
  152. package/bundle/wcs-field-label.js +2 -0
  153. package/bundle/wcs-field-label.js.map +1 -0
  154. package/bundle/wcs-field.d.ts +11 -0
  155. package/bundle/wcs-field.js +2 -0
  156. package/bundle/wcs-field.js.map +1 -0
  157. package/bundle/wcs-footer.d.ts +11 -0
  158. package/bundle/wcs-footer.js +2 -0
  159. package/bundle/wcs-footer.js.map +1 -0
  160. package/bundle/wcs-form-field.d.ts +11 -0
  161. package/bundle/wcs-form-field.js +2 -0
  162. package/bundle/wcs-form-field.js.map +1 -0
  163. package/bundle/wcs-galactic-menu.d.ts +11 -0
  164. package/bundle/wcs-galactic-menu.js +2 -0
  165. package/bundle/wcs-galactic-menu.js.map +1 -0
  166. package/bundle/wcs-galactic.d.ts +11 -0
  167. package/bundle/wcs-galactic.js +2 -0
  168. package/bundle/wcs-galactic.js.map +1 -0
  169. package/bundle/wcs-grid-column.d.ts +11 -0
  170. package/bundle/wcs-grid-column.js +2 -0
  171. package/bundle/wcs-grid-column.js.map +1 -0
  172. package/bundle/wcs-grid-custom-cell.d.ts +11 -0
  173. package/bundle/wcs-grid-custom-cell.js +2 -0
  174. package/bundle/wcs-grid-custom-cell.js.map +1 -0
  175. package/bundle/wcs-grid-pagination.d.ts +11 -0
  176. package/bundle/wcs-grid-pagination.js +2 -0
  177. package/bundle/wcs-grid-pagination.js.map +1 -0
  178. package/bundle/wcs-grid.d.ts +11 -0
  179. package/bundle/wcs-grid.js +2 -0
  180. package/bundle/wcs-grid.js.map +1 -0
  181. package/bundle/wcs-header.d.ts +11 -0
  182. package/bundle/wcs-header.js +2 -0
  183. package/bundle/wcs-header.js.map +1 -0
  184. package/bundle/wcs-hint.d.ts +11 -0
  185. package/bundle/wcs-hint.js +2 -0
  186. package/bundle/wcs-hint.js.map +1 -0
  187. package/bundle/wcs-horizontal-stepper.d.ts +11 -0
  188. package/bundle/wcs-horizontal-stepper.js +2 -0
  189. package/bundle/wcs-horizontal-stepper.js.map +1 -0
  190. package/bundle/wcs-icon.d.ts +11 -0
  191. package/bundle/wcs-icon.js +2 -0
  192. package/bundle/wcs-icon.js.map +1 -0
  193. package/bundle/wcs-input.d.ts +11 -0
  194. package/bundle/wcs-input.js +2 -0
  195. package/bundle/wcs-input.js.map +1 -0
  196. package/bundle/wcs-label.d.ts +11 -0
  197. package/bundle/wcs-label.js +2 -0
  198. package/bundle/wcs-label.js.map +1 -0
  199. package/bundle/wcs-list-item-properties.d.ts +11 -0
  200. package/bundle/wcs-list-item-properties.js +2 -0
  201. package/bundle/wcs-list-item-properties.js.map +1 -0
  202. package/bundle/wcs-list-item-property.d.ts +11 -0
  203. package/bundle/wcs-list-item-property.js +2 -0
  204. package/bundle/wcs-list-item-property.js.map +1 -0
  205. package/bundle/wcs-list-item.d.ts +11 -0
  206. package/bundle/wcs-list-item.js +2 -0
  207. package/bundle/wcs-list-item.js.map +1 -0
  208. package/bundle/wcs-mat-icon.d.ts +11 -0
  209. package/bundle/wcs-mat-icon.js +2 -0
  210. package/bundle/wcs-mat-icon.js.map +1 -0
  211. package/bundle/wcs-modal.d.ts +11 -0
  212. package/bundle/wcs-modal.js +2 -0
  213. package/bundle/wcs-modal.js.map +1 -0
  214. package/bundle/wcs-native-select.d.ts +11 -0
  215. package/bundle/wcs-native-select.js +2 -0
  216. package/bundle/wcs-native-select.js.map +1 -0
  217. package/bundle/wcs-nav-item.d.ts +11 -0
  218. package/bundle/wcs-nav-item.js +2 -0
  219. package/bundle/wcs-nav-item.js.map +1 -0
  220. package/bundle/wcs-nav.d.ts +11 -0
  221. package/bundle/wcs-nav.js +2 -0
  222. package/bundle/wcs-nav.js.map +1 -0
  223. package/bundle/wcs-progress-bar.d.ts +11 -0
  224. package/bundle/wcs-progress-bar.js +2 -0
  225. package/bundle/wcs-progress-bar.js.map +1 -0
  226. package/bundle/wcs-progress-radial.d.ts +11 -0
  227. package/bundle/wcs-progress-radial.js +2 -0
  228. package/bundle/wcs-progress-radial.js.map +1 -0
  229. package/bundle/wcs-radio-group.d.ts +11 -0
  230. package/bundle/wcs-radio-group.js +2 -0
  231. package/bundle/wcs-radio-group.js.map +1 -0
  232. package/bundle/wcs-radio.d.ts +11 -0
  233. package/bundle/wcs-radio.js +2 -0
  234. package/bundle/wcs-radio.js.map +1 -0
  235. package/bundle/wcs-select-option.d.ts +11 -0
  236. package/bundle/wcs-select-option.js +2 -0
  237. package/bundle/wcs-select-option.js.map +1 -0
  238. package/bundle/wcs-select.d.ts +11 -0
  239. package/bundle/wcs-select.js +2 -0
  240. package/bundle/wcs-select.js.map +1 -0
  241. package/bundle/wcs-skeleton-circle.d.ts +11 -0
  242. package/bundle/wcs-skeleton-circle.js +2 -0
  243. package/bundle/wcs-skeleton-circle.js.map +1 -0
  244. package/bundle/wcs-skeleton-rectangle.d.ts +11 -0
  245. package/bundle/wcs-skeleton-rectangle.js +2 -0
  246. package/bundle/wcs-skeleton-rectangle.js.map +1 -0
  247. package/bundle/wcs-skeleton-text.d.ts +11 -0
  248. package/bundle/wcs-skeleton-text.js +2 -0
  249. package/bundle/wcs-skeleton-text.js.map +1 -0
  250. package/bundle/wcs-spinner.d.ts +11 -0
  251. package/bundle/wcs-spinner.js +2 -0
  252. package/bundle/wcs-spinner.js.map +1 -0
  253. package/bundle/wcs-switch.d.ts +11 -0
  254. package/bundle/wcs-switch.js +2 -0
  255. package/bundle/wcs-switch.js.map +1 -0
  256. package/bundle/wcs-tab.d.ts +11 -0
  257. package/bundle/wcs-tab.js +2 -0
  258. package/bundle/wcs-tab.js.map +1 -0
  259. package/bundle/wcs-tabs.d.ts +11 -0
  260. package/bundle/wcs-tabs.js +2 -0
  261. package/bundle/wcs-tabs.js.map +1 -0
  262. package/bundle/wcs-textarea.d.ts +11 -0
  263. package/bundle/wcs-textarea.js +2 -0
  264. package/bundle/wcs-textarea.js.map +1 -0
  265. package/bundle/wcs-tooltip.d.ts +11 -0
  266. package/bundle/wcs-tooltip.js +7 -0
  267. package/bundle/wcs-tooltip.js.map +1 -0
  268. package/composite-elements/index.d.ts +33 -0
  269. package/composite-elements/index.js +2 -0
  270. package/composite-elements/index.js.map +1 -0
  271. package/composite-elements/p-04663560.js +2 -0
  272. package/composite-elements/p-04663560.js.map +1 -0
  273. package/composite-elements/p-0c306f8c.js +2 -0
  274. package/composite-elements/p-0c306f8c.js.map +1 -0
  275. package/composite-elements/p-2454bcae.js +2 -0
  276. package/composite-elements/p-2454bcae.js.map +1 -0
  277. package/composite-elements/p-2bef72c7.js +2 -0
  278. package/composite-elements/p-2bef72c7.js.map +1 -0
  279. package/composite-elements/p-35d7af48.js +2 -0
  280. package/composite-elements/p-35d7af48.js.map +1 -0
  281. package/composite-elements/p-3abf8a42.js +2 -0
  282. package/composite-elements/p-3abf8a42.js.map +1 -0
  283. package/composite-elements/p-46f752d5.js +2 -0
  284. package/composite-elements/p-46f752d5.js.map +1 -0
  285. package/composite-elements/p-55668982.js +2 -0
  286. package/composite-elements/p-55668982.js.map +1 -0
  287. package/composite-elements/p-5a3d7fec.js +2 -0
  288. package/composite-elements/p-5a3d7fec.js.map +1 -0
  289. package/composite-elements/p-6dd2b564.js +156 -0
  290. package/composite-elements/p-6dd2b564.js.map +1 -0
  291. package/composite-elements/p-a0f32ead.js +2 -0
  292. package/composite-elements/p-a0f32ead.js.map +1 -0
  293. package/composite-elements/p-a14aec19.js +2 -0
  294. package/composite-elements/p-a14aec19.js.map +1 -0
  295. package/composite-elements/p-a7468a3a.js +2 -0
  296. package/composite-elements/p-a7468a3a.js.map +1 -0
  297. package/composite-elements/p-a90bb01e.js +2 -0
  298. package/composite-elements/p-a90bb01e.js.map +1 -0
  299. package/composite-elements/p-af24fb0d.js +16 -0
  300. package/composite-elements/p-af24fb0d.js.map +1 -0
  301. package/composite-elements/p-b83afff9.js +2 -0
  302. package/composite-elements/p-b83afff9.js.map +1 -0
  303. package/composite-elements/p-b92e818b.js +2 -0
  304. package/composite-elements/p-b92e818b.js.map +1 -0
  305. package/composite-elements/p-d3404c52.js +2 -0
  306. package/composite-elements/p-d3404c52.js.map +1 -0
  307. package/composite-elements/p-e1fb3625.js +2 -0
  308. package/composite-elements/p-e1fb3625.js.map +1 -0
  309. package/composite-elements/p-e803bb26.js +2 -0
  310. package/composite-elements/p-e803bb26.js.map +1 -0
  311. package/composite-elements/p-ef26b4d8.js +2 -0
  312. package/composite-elements/p-ef26b4d8.js.map +1 -0
  313. package/composite-elements/p-fb2751c2.js +2 -0
  314. package/composite-elements/p-fb2751c2.js.map +1 -0
  315. package/composite-elements/p-fe1f9cc5.js +2 -0
  316. package/composite-elements/p-fe1f9cc5.js.map +1 -0
  317. package/composite-elements/package.json +12 -0
  318. package/composite-elements/wcs-accordion-content.d.ts +11 -0
  319. package/composite-elements/wcs-accordion-content.js +2 -0
  320. package/composite-elements/wcs-accordion-content.js.map +1 -0
  321. package/composite-elements/wcs-accordion-header.d.ts +11 -0
  322. package/composite-elements/wcs-accordion-header.js +2 -0
  323. package/composite-elements/wcs-accordion-header.js.map +1 -0
  324. package/composite-elements/wcs-accordion-panel.d.ts +11 -0
  325. package/composite-elements/wcs-accordion-panel.js +2 -0
  326. package/composite-elements/wcs-accordion-panel.js.map +1 -0
  327. package/composite-elements/wcs-accordion.d.ts +11 -0
  328. package/composite-elements/wcs-accordion.js +2 -0
  329. package/composite-elements/wcs-accordion.js.map +1 -0
  330. package/composite-elements/wcs-action-bar.d.ts +11 -0
  331. package/composite-elements/wcs-action-bar.js +2 -0
  332. package/composite-elements/wcs-action-bar.js.map +1 -0
  333. package/composite-elements/wcs-alert-drawer.d.ts +11 -0
  334. package/composite-elements/wcs-alert-drawer.js +2 -0
  335. package/composite-elements/wcs-alert-drawer.js.map +1 -0
  336. package/composite-elements/wcs-alert.d.ts +11 -0
  337. package/composite-elements/wcs-alert.js +2 -0
  338. package/composite-elements/wcs-alert.js.map +1 -0
  339. package/composite-elements/wcs-app.d.ts +11 -0
  340. package/composite-elements/wcs-app.js +2 -0
  341. package/composite-elements/wcs-app.js.map +1 -0
  342. package/composite-elements/wcs-badge.d.ts +11 -0
  343. package/composite-elements/wcs-badge.js +2 -0
  344. package/composite-elements/wcs-badge.js.map +1 -0
  345. package/composite-elements/wcs-breadcrumb-item.d.ts +11 -0
  346. package/composite-elements/wcs-breadcrumb-item.js +2 -0
  347. package/composite-elements/wcs-breadcrumb-item.js.map +1 -0
  348. package/composite-elements/wcs-breadcrumb.d.ts +11 -0
  349. package/composite-elements/wcs-breadcrumb.js +2 -0
  350. package/composite-elements/wcs-breadcrumb.js.map +1 -0
  351. package/composite-elements/wcs-button.d.ts +11 -0
  352. package/composite-elements/wcs-button.js +2 -0
  353. package/composite-elements/wcs-button.js.map +1 -0
  354. package/composite-elements/wcs-card-body.d.ts +11 -0
  355. package/composite-elements/wcs-card-body.js +2 -0
  356. package/composite-elements/wcs-card-body.js.map +1 -0
  357. package/composite-elements/wcs-card-content.d.ts +11 -0
  358. package/composite-elements/wcs-card-content.js +2 -0
  359. package/composite-elements/wcs-card-content.js.map +1 -0
  360. package/composite-elements/wcs-card-footer.d.ts +11 -0
  361. package/composite-elements/wcs-card-footer.js +2 -0
  362. package/composite-elements/wcs-card-footer.js.map +1 -0
  363. package/composite-elements/wcs-card-header.d.ts +11 -0
  364. package/composite-elements/wcs-card-header.js +2 -0
  365. package/composite-elements/wcs-card-header.js.map +1 -0
  366. package/composite-elements/wcs-card-media.d.ts +11 -0
  367. package/composite-elements/wcs-card-media.js +2 -0
  368. package/composite-elements/wcs-card-media.js.map +1 -0
  369. package/composite-elements/wcs-card.d.ts +11 -0
  370. package/composite-elements/wcs-card.js +2 -0
  371. package/composite-elements/wcs-card.js.map +1 -0
  372. package/composite-elements/wcs-checkbox.d.ts +11 -0
  373. package/composite-elements/wcs-checkbox.js +2 -0
  374. package/composite-elements/wcs-checkbox.js.map +1 -0
  375. package/composite-elements/wcs-chip.d.ts +11 -0
  376. package/composite-elements/wcs-chip.js +2 -0
  377. package/composite-elements/wcs-chip.js.map +1 -0
  378. package/composite-elements/wcs-com-nav-category.d.ts +11 -0
  379. package/composite-elements/wcs-com-nav-category.js +2 -0
  380. package/composite-elements/wcs-com-nav-category.js.map +1 -0
  381. package/composite-elements/wcs-com-nav-item.d.ts +11 -0
  382. package/composite-elements/wcs-com-nav-item.js +2 -0
  383. package/composite-elements/wcs-com-nav-item.js.map +1 -0
  384. package/composite-elements/wcs-com-nav-submenu.d.ts +11 -0
  385. package/composite-elements/wcs-com-nav-submenu.js +2 -0
  386. package/composite-elements/wcs-com-nav-submenu.js.map +1 -0
  387. package/composite-elements/wcs-com-nav.d.ts +11 -0
  388. package/composite-elements/wcs-com-nav.js +2 -0
  389. package/composite-elements/wcs-com-nav.js.map +1 -0
  390. package/composite-elements/wcs-counter.d.ts +11 -0
  391. package/composite-elements/wcs-counter.js +2 -0
  392. package/composite-elements/wcs-counter.js.map +1 -0
  393. package/composite-elements/wcs-divider.d.ts +11 -0
  394. package/composite-elements/wcs-divider.js +2 -0
  395. package/composite-elements/wcs-divider.js.map +1 -0
  396. package/composite-elements/wcs-dropdown-divider.d.ts +11 -0
  397. package/composite-elements/wcs-dropdown-divider.js +2 -0
  398. package/composite-elements/wcs-dropdown-divider.js.map +1 -0
  399. package/composite-elements/wcs-dropdown-header.d.ts +11 -0
  400. package/composite-elements/wcs-dropdown-header.js +2 -0
  401. package/composite-elements/wcs-dropdown-header.js.map +1 -0
  402. package/composite-elements/wcs-dropdown-item.d.ts +11 -0
  403. package/composite-elements/wcs-dropdown-item.js +2 -0
  404. package/composite-elements/wcs-dropdown-item.js.map +1 -0
  405. package/composite-elements/wcs-dropdown.d.ts +11 -0
  406. package/composite-elements/wcs-dropdown.js +2 -0
  407. package/composite-elements/wcs-dropdown.js.map +1 -0
  408. package/composite-elements/wcs-editable-field.d.ts +11 -0
  409. package/composite-elements/wcs-editable-field.js +2 -0
  410. package/composite-elements/wcs-editable-field.js.map +1 -0
  411. package/composite-elements/wcs-error.d.ts +11 -0
  412. package/composite-elements/wcs-error.js +2 -0
  413. package/composite-elements/wcs-error.js.map +1 -0
  414. package/composite-elements/wcs-field-content.d.ts +11 -0
  415. package/composite-elements/wcs-field-content.js +2 -0
  416. package/composite-elements/wcs-field-content.js.map +1 -0
  417. package/composite-elements/wcs-field-label.d.ts +11 -0
  418. package/composite-elements/wcs-field-label.js +2 -0
  419. package/composite-elements/wcs-field-label.js.map +1 -0
  420. package/composite-elements/wcs-field.d.ts +11 -0
  421. package/composite-elements/wcs-field.js +2 -0
  422. package/composite-elements/wcs-field.js.map +1 -0
  423. package/composite-elements/wcs-footer.d.ts +11 -0
  424. package/composite-elements/wcs-footer.js +2 -0
  425. package/composite-elements/wcs-footer.js.map +1 -0
  426. package/composite-elements/wcs-form-field.d.ts +11 -0
  427. package/composite-elements/wcs-form-field.js +2 -0
  428. package/composite-elements/wcs-form-field.js.map +1 -0
  429. package/composite-elements/wcs-galactic-menu.d.ts +11 -0
  430. package/composite-elements/wcs-galactic-menu.js +2 -0
  431. package/composite-elements/wcs-galactic-menu.js.map +1 -0
  432. package/composite-elements/wcs-galactic.d.ts +11 -0
  433. package/composite-elements/wcs-galactic.js +2 -0
  434. package/composite-elements/wcs-galactic.js.map +1 -0
  435. package/composite-elements/wcs-grid-column.d.ts +11 -0
  436. package/composite-elements/wcs-grid-column.js +2 -0
  437. package/composite-elements/wcs-grid-column.js.map +1 -0
  438. package/composite-elements/wcs-grid-custom-cell.d.ts +11 -0
  439. package/composite-elements/wcs-grid-custom-cell.js +2 -0
  440. package/composite-elements/wcs-grid-custom-cell.js.map +1 -0
  441. package/composite-elements/wcs-grid-pagination.d.ts +11 -0
  442. package/composite-elements/wcs-grid-pagination.js +2 -0
  443. package/composite-elements/wcs-grid-pagination.js.map +1 -0
  444. package/composite-elements/wcs-grid.d.ts +11 -0
  445. package/composite-elements/wcs-grid.js +2 -0
  446. package/composite-elements/wcs-grid.js.map +1 -0
  447. package/composite-elements/wcs-header.d.ts +11 -0
  448. package/composite-elements/wcs-header.js +2 -0
  449. package/composite-elements/wcs-header.js.map +1 -0
  450. package/composite-elements/wcs-hint.d.ts +11 -0
  451. package/composite-elements/wcs-hint.js +2 -0
  452. package/composite-elements/wcs-hint.js.map +1 -0
  453. package/composite-elements/wcs-horizontal-stepper.d.ts +11 -0
  454. package/composite-elements/wcs-horizontal-stepper.js +2 -0
  455. package/composite-elements/wcs-horizontal-stepper.js.map +1 -0
  456. package/composite-elements/wcs-icon.d.ts +11 -0
  457. package/composite-elements/wcs-icon.js +2 -0
  458. package/composite-elements/wcs-icon.js.map +1 -0
  459. package/composite-elements/wcs-input.d.ts +11 -0
  460. package/composite-elements/wcs-input.js +2 -0
  461. package/composite-elements/wcs-input.js.map +1 -0
  462. package/composite-elements/wcs-label.d.ts +11 -0
  463. package/composite-elements/wcs-label.js +2 -0
  464. package/composite-elements/wcs-label.js.map +1 -0
  465. package/composite-elements/wcs-list-item-properties.d.ts +11 -0
  466. package/composite-elements/wcs-list-item-properties.js +2 -0
  467. package/composite-elements/wcs-list-item-properties.js.map +1 -0
  468. package/composite-elements/wcs-list-item-property.d.ts +11 -0
  469. package/composite-elements/wcs-list-item-property.js +2 -0
  470. package/composite-elements/wcs-list-item-property.js.map +1 -0
  471. package/composite-elements/wcs-list-item.d.ts +11 -0
  472. package/composite-elements/wcs-list-item.js +2 -0
  473. package/composite-elements/wcs-list-item.js.map +1 -0
  474. package/composite-elements/wcs-mat-icon.d.ts +11 -0
  475. package/composite-elements/wcs-mat-icon.js +2 -0
  476. package/composite-elements/wcs-mat-icon.js.map +1 -0
  477. package/composite-elements/wcs-modal.d.ts +11 -0
  478. package/composite-elements/wcs-modal.js +2 -0
  479. package/composite-elements/wcs-modal.js.map +1 -0
  480. package/composite-elements/wcs-native-select.d.ts +11 -0
  481. package/composite-elements/wcs-native-select.js +2 -0
  482. package/composite-elements/wcs-native-select.js.map +1 -0
  483. package/composite-elements/wcs-nav-item.d.ts +11 -0
  484. package/composite-elements/wcs-nav-item.js +2 -0
  485. package/composite-elements/wcs-nav-item.js.map +1 -0
  486. package/composite-elements/wcs-nav.d.ts +11 -0
  487. package/composite-elements/wcs-nav.js +2 -0
  488. package/composite-elements/wcs-nav.js.map +1 -0
  489. package/composite-elements/wcs-progress-bar.d.ts +11 -0
  490. package/composite-elements/wcs-progress-bar.js +2 -0
  491. package/composite-elements/wcs-progress-bar.js.map +1 -0
  492. package/composite-elements/wcs-progress-radial.d.ts +11 -0
  493. package/composite-elements/wcs-progress-radial.js +2 -0
  494. package/composite-elements/wcs-progress-radial.js.map +1 -0
  495. package/composite-elements/wcs-radio-group.d.ts +11 -0
  496. package/composite-elements/wcs-radio-group.js +2 -0
  497. package/composite-elements/wcs-radio-group.js.map +1 -0
  498. package/composite-elements/wcs-radio.d.ts +11 -0
  499. package/composite-elements/wcs-radio.js +2 -0
  500. package/composite-elements/wcs-radio.js.map +1 -0
  501. package/composite-elements/wcs-select-option.d.ts +11 -0
  502. package/composite-elements/wcs-select-option.js +2 -0
  503. package/composite-elements/wcs-select-option.js.map +1 -0
  504. package/composite-elements/wcs-select.d.ts +11 -0
  505. package/composite-elements/wcs-select.js +2 -0
  506. package/composite-elements/wcs-select.js.map +1 -0
  507. package/composite-elements/wcs-skeleton-circle.d.ts +11 -0
  508. package/composite-elements/wcs-skeleton-circle.js +2 -0
  509. package/composite-elements/wcs-skeleton-circle.js.map +1 -0
  510. package/composite-elements/wcs-skeleton-rectangle.d.ts +11 -0
  511. package/composite-elements/wcs-skeleton-rectangle.js +2 -0
  512. package/composite-elements/wcs-skeleton-rectangle.js.map +1 -0
  513. package/composite-elements/wcs-skeleton-text.d.ts +11 -0
  514. package/composite-elements/wcs-skeleton-text.js +2 -0
  515. package/composite-elements/wcs-skeleton-text.js.map +1 -0
  516. package/composite-elements/wcs-spinner.d.ts +11 -0
  517. package/composite-elements/wcs-spinner.js +2 -0
  518. package/composite-elements/wcs-spinner.js.map +1 -0
  519. package/composite-elements/wcs-switch.d.ts +11 -0
  520. package/composite-elements/wcs-switch.js +2 -0
  521. package/composite-elements/wcs-switch.js.map +1 -0
  522. package/composite-elements/wcs-tab.d.ts +11 -0
  523. package/composite-elements/wcs-tab.js +2 -0
  524. package/composite-elements/wcs-tab.js.map +1 -0
  525. package/composite-elements/wcs-tabs.d.ts +11 -0
  526. package/composite-elements/wcs-tabs.js +2 -0
  527. package/composite-elements/wcs-tabs.js.map +1 -0
  528. package/composite-elements/wcs-textarea.d.ts +11 -0
  529. package/composite-elements/wcs-textarea.js +2 -0
  530. package/composite-elements/wcs-textarea.js.map +1 -0
  531. package/composite-elements/wcs-tooltip.d.ts +11 -0
  532. package/composite-elements/wcs-tooltip.js +7 -0
  533. package/composite-elements/wcs-tooltip.js.map +1 -0
  534. package/design-tokens/dist/sncf-groupe-root-scoped.css +227 -227
  535. package/design-tokens/dist/sncf-groupe.css +227 -227
  536. package/design-tokens/dist/sncf-holding-root-scoped.css +227 -227
  537. package/design-tokens/dist/sncf-holding.css +227 -227
  538. package/design-tokens/dist/sncf-reseau-root-scoped.css +227 -227
  539. package/design-tokens/dist/sncf-reseau.css +227 -227
  540. package/design-tokens/dist/sncf-voyageurs-root-scoped.css +242 -242
  541. package/design-tokens/dist/sncf-voyageurs.css +242 -242
  542. package/dist/cjs/{popper-8d6e7fca.js → popper-1b61df21.js} +10 -17
  543. package/dist/cjs/popper-1b61df21.js.map +1 -0
  544. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -1
  545. package/dist/cjs/wcs-accordion-panel.cjs.entry.js.map +1 -1
  546. package/dist/cjs/wcs-accordion.cjs.entry.js +5 -1
  547. package/dist/cjs/wcs-accordion.cjs.entry.js.map +1 -1
  548. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
  549. package/dist/cjs/wcs-breadcrumb.cjs.entry.js.map +1 -1
  550. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
  551. package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
  552. package/dist/cjs/wcs-com-nav.cjs.entry.js +3 -3
  553. package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
  554. package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
  555. package/dist/cjs/wcs-error_3.cjs.entry.js +1 -1
  556. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
  557. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +1 -1
  558. package/dist/cjs/wcs-grid.cjs.entry.js +5 -4
  559. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  560. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +3 -2
  561. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
  562. package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
  563. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  564. package/dist/cjs/wcs-select_2.cjs.entry.js +59 -24
  565. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  566. package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
  567. package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
  568. package/dist/collection/components/accordion/accordion.e2e.playwright.js +245 -0
  569. package/dist/collection/components/accordion/accordion.e2e.playwright.js.map +1 -0
  570. package/dist/collection/components/accordion/accordion.js +5 -1
  571. package/dist/collection/components/accordion/accordion.js.map +1 -1
  572. package/dist/collection/components/accordion-panel/accordion-panel.js +3 -2
  573. package/dist/collection/components/accordion-panel/accordion-panel.js.map +1 -1
  574. package/dist/collection/components/alert/alert.e2e.playwright.js +125 -0
  575. package/dist/collection/components/alert/alert.e2e.playwright.js.map +1 -0
  576. package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js +107 -0
  577. package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js.map +1 -0
  578. package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js +188 -0
  579. package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js.map +1 -0
  580. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  581. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  582. package/dist/collection/components/button/button.e2e.playwright.js +26 -0
  583. package/dist/collection/components/button/button.e2e.playwright.js.map +1 -0
  584. package/dist/collection/components/button/button.js +1 -1
  585. package/dist/collection/components/checkbox/checkbox.e2e.playwright.js +39 -0
  586. package/dist/collection/components/checkbox/checkbox.e2e.playwright.js.map +1 -0
  587. package/dist/collection/components/checkbox/checkbox.js +1 -1
  588. package/dist/collection/components/chip/chip.e2e.playwright.js +190 -0
  589. package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -0
  590. package/dist/collection/components/com-nav/com-nav.css +15 -0
  591. package/dist/collection/components/com-nav/{com-nav.e2e.js → com-nav.e2e.playwright.js} +60 -44
  592. package/dist/collection/components/com-nav/com-nav.e2e.playwright.js.map +1 -0
  593. package/dist/collection/components/com-nav/com-nav.js +3 -3
  594. package/dist/collection/components/com-nav/com-nav.js.map +1 -1
  595. package/dist/collection/components/com-nav-category/com-nav-category.js +1 -1
  596. package/dist/collection/components/com-nav-item/com-nav-item.css +2 -2
  597. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +1 -1
  598. package/dist/collection/components/counter/counter.e2e.playwright.js +187 -0
  599. package/dist/collection/components/counter/counter.e2e.playwright.js.map +1 -0
  600. package/dist/collection/components/counter/counter.js +1 -1
  601. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +320 -0
  602. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -0
  603. package/dist/collection/components/dropdown/dropdown.js +1 -1
  604. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +156 -0
  605. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -0
  606. package/dist/collection/components/form-field/form-field.e2e.playwright.js +104 -0
  607. package/dist/collection/components/form-field/form-field.e2e.playwright.js.map +1 -0
  608. package/dist/collection/components/galactic-menu/galactic-menu.js +1 -1
  609. package/dist/collection/components/grid/grid.e2e.playwright.js +153 -0
  610. package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -0
  611. package/dist/collection/components/grid/grid.js +6 -5
  612. package/dist/collection/components/grid/grid.js.map +1 -1
  613. package/dist/collection/components/grid-column/grid-column.js +1 -1
  614. package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
  615. package/dist/collection/components/header/header.js +1 -1
  616. package/dist/collection/components/horizontal-stepper/horizontal-step.js +2 -1
  617. package/dist/collection/components/horizontal-stepper/horizontal-step.js.map +1 -1
  618. package/dist/collection/components/horizontal-stepper/horizontal-stepper-interface.js.map +1 -1
  619. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +5 -1
  620. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
  621. package/dist/collection/components/icon/icon.js +1 -1
  622. package/dist/collection/components/input/input.e2e.playwright.js +157 -0
  623. package/dist/collection/components/input/input.e2e.playwright.js.map +1 -0
  624. package/dist/collection/components/input/input.js +2 -2
  625. package/dist/collection/components/label/label.css +4 -6
  626. package/dist/collection/components/label/label.js +1 -1
  627. package/dist/collection/components/mat-icon/mat-icon.js +1 -1
  628. package/dist/collection/components/modal/modal.css +4 -0
  629. package/dist/collection/components/modal/modal.e2e.playwright.js +35 -0
  630. package/dist/collection/components/modal/modal.e2e.playwright.js.map +1 -0
  631. package/dist/collection/components/modal/modal.js +2 -2
  632. package/dist/collection/components/modal/modal.js.map +1 -1
  633. package/dist/collection/components/native-select/native-select.js +1 -1
  634. package/dist/collection/components/nav/nav.js +1 -1
  635. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  636. package/dist/collection/components/progress-radial/progress-radial.js +1 -1
  637. package/dist/collection/components/radio/radio.js +1 -1
  638. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +231 -0
  639. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -0
  640. package/dist/collection/components/radio-group/radio-group.js +1 -1
  641. package/dist/collection/components/select/select.e2e.playwright.js +1702 -0
  642. package/dist/collection/components/select/select.e2e.playwright.js.map +1 -0
  643. package/dist/collection/components/select/select.js +49 -20
  644. package/dist/collection/components/select/select.js.map +1 -1
  645. package/dist/collection/components/select-option/select-option.js +3 -3
  646. package/dist/collection/components/select-option/select-option.js.map +1 -1
  647. package/dist/collection/components/switch/switch.e2e.playwright.js +40 -0
  648. package/dist/collection/components/switch/switch.e2e.playwright.js.map +1 -0
  649. package/dist/collection/components/switch/switch.js +1 -1
  650. package/dist/collection/components/tabs/tabs.e2e.playwright.js +205 -0
  651. package/dist/collection/components/tabs/tabs.e2e.playwright.js.map +1 -0
  652. package/dist/collection/components/tabs/tabs.js +1 -1
  653. package/dist/collection/components/textarea/textarea.e2e.playwright.js +133 -0
  654. package/dist/collection/components/textarea/textarea.e2e.playwright.js.map +1 -0
  655. package/dist/collection/components/textarea/textarea.js +1 -1
  656. package/dist/collection/utils/playwright/test-expect.js +2 -0
  657. package/dist/collection/utils/playwright/test-expect.js.map +1 -0
  658. package/dist/collection/utils/playwright/test.js +16 -0
  659. package/dist/collection/utils/playwright/test.js.map +1 -0
  660. package/dist/esm/{popper-e491c314.js → popper-ac238961.js} +10 -17
  661. package/dist/esm/popper-ac238961.js.map +1 -0
  662. package/dist/esm/wcs-accordion-panel.entry.js +2 -1
  663. package/dist/esm/wcs-accordion-panel.entry.js.map +1 -1
  664. package/dist/esm/wcs-accordion.entry.js +5 -1
  665. package/dist/esm/wcs-accordion.entry.js.map +1 -1
  666. package/dist/esm/wcs-breadcrumb.entry.js +1 -1
  667. package/dist/esm/wcs-breadcrumb.entry.js.map +1 -1
  668. package/dist/esm/wcs-com-nav-item.entry.js +1 -1
  669. package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
  670. package/dist/esm/wcs-com-nav.entry.js +3 -3
  671. package/dist/esm/wcs-com-nav.entry.js.map +1 -1
  672. package/dist/esm/wcs-dropdown.entry.js +1 -1
  673. package/dist/esm/wcs-error_3.entry.js +1 -1
  674. package/dist/esm/wcs-error_3.entry.js.map +1 -1
  675. package/dist/esm/wcs-galactic-menu.entry.js +1 -1
  676. package/dist/esm/wcs-grid.entry.js +5 -4
  677. package/dist/esm/wcs-grid.entry.js.map +1 -1
  678. package/dist/esm/wcs-horizontal-stepper.entry.js +3 -2
  679. package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
  680. package/dist/esm/wcs-modal.entry.js +2 -2
  681. package/dist/esm/wcs-modal.entry.js.map +1 -1
  682. package/dist/esm/wcs-select_2.entry.js +59 -24
  683. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  684. package/dist/esm/wcs-tabs.entry.js +1 -1
  685. package/dist/esm/wcs-tooltip.entry.js +1 -1
  686. package/dist/types/components/accordion/accordion.d.ts +1 -0
  687. package/dist/types/components/accordion/accordion.e2e.playwright.d.ts +1 -0
  688. package/dist/types/components/alert/alert.e2e.playwright.d.ts +1 -0
  689. package/dist/types/components/alert-drawer/alert-drawer.e2e.playwright.d.ts +1 -0
  690. package/dist/types/components/breadcrumb/breadcrumb.e2e.playwright.d.ts +1 -0
  691. package/dist/types/components/button/button.e2e.playwright.d.ts +1 -0
  692. package/dist/types/components/checkbox/checkbox.e2e.playwright.d.ts +1 -0
  693. package/dist/types/components/chip/chip.e2e.playwright.d.ts +1 -0
  694. package/dist/types/components/com-nav/com-nav.e2e.playwright.d.ts +1 -0
  695. package/dist/types/components/counter/counter.e2e.playwright.d.ts +1 -0
  696. package/dist/types/components/dropdown/dropdown.e2e.playwright.d.ts +1 -0
  697. package/dist/types/components/editable-field/editable-field.e2e.playwright.d.ts +1 -0
  698. package/dist/types/components/form-field/form-field.e2e.playwright.d.ts +1 -0
  699. package/dist/types/components/grid/grid.e2e.playwright.d.ts +1 -0
  700. package/dist/types/components/horizontal-stepper/horizontal-stepper-interface.d.ts +2 -0
  701. package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +4 -0
  702. package/dist/types/components/input/input.e2e.playwright.d.ts +1 -0
  703. package/dist/types/components/modal/modal.e2e.playwright.d.ts +1 -0
  704. package/dist/types/components/radio-group/radio-group.e2e.playwright.d.ts +1 -0
  705. package/dist/types/components/select/select.d.ts +7 -1
  706. package/dist/types/components/select/select.e2e.playwright.d.ts +1 -0
  707. package/dist/types/components/switch/switch.e2e.playwright.d.ts +1 -0
  708. package/dist/types/components/tabs/tabs.e2e.playwright.d.ts +1 -0
  709. package/dist/types/components/textarea/textarea.e2e.playwright.d.ts +1 -0
  710. package/dist/types/components.d.ts +12 -0
  711. package/dist/types/utils/playwright/test-expect.d.ts +33 -0
  712. package/dist/types/utils/playwright/test.d.ts +7 -0
  713. package/dist/wcs/{p-8e9bd0f1.entry.js → p-0326f834.entry.js} +2 -2
  714. package/dist/wcs/{p-8e9bd0f1.entry.js.map → p-0326f834.entry.js.map} +1 -1
  715. package/dist/wcs/p-2221bf0c.entry.js +16 -0
  716. package/dist/wcs/p-2221bf0c.entry.js.map +1 -0
  717. package/dist/wcs/{p-f2eeb249.entry.js → p-2329af04.entry.js} +2 -2
  718. package/dist/wcs/{p-f2eeb249.entry.js.map → p-2329af04.entry.js.map} +1 -1
  719. package/dist/wcs/p-4ae08567.entry.js +2 -0
  720. package/dist/wcs/p-4ae08567.entry.js.map +1 -0
  721. package/dist/wcs/p-4e2d6227.entry.js +2 -0
  722. package/dist/wcs/p-4e2d6227.entry.js.map +1 -0
  723. package/dist/wcs/p-5d598d35.entry.js +2 -0
  724. package/dist/wcs/p-5d598d35.entry.js.map +1 -0
  725. package/dist/wcs/p-8332a7e3.entry.js +2 -0
  726. package/dist/wcs/p-8332a7e3.entry.js.map +1 -0
  727. package/dist/wcs/{p-ec383729.entry.js → p-9b76b8e6.entry.js} +2 -2
  728. package/dist/wcs/{p-ec383729.entry.js.map → p-9b76b8e6.entry.js.map} +1 -1
  729. package/dist/wcs/{p-1f593d06.entry.js → p-abd8d5a0.entry.js} +2 -2
  730. package/dist/wcs/{p-622f7403.entry.js → p-c6f8c45c.entry.js} +2 -2
  731. package/dist/wcs/{p-a94e685c.entry.js → p-db7ba599.entry.js} +2 -2
  732. package/dist/wcs/p-e1fb3625.js +2 -0
  733. package/dist/wcs/p-e1fb3625.js.map +1 -0
  734. package/dist/wcs/{p-a956dc84.entry.js → p-f2f7595e.entry.js} +2 -2
  735. package/dist/wcs/{p-a956dc84.entry.js.map → p-f2f7595e.entry.js.map} +1 -1
  736. package/dist/wcs/p-fbd68522.entry.js +2 -0
  737. package/dist/wcs/p-fbd68522.entry.js.map +1 -0
  738. package/dist/wcs/{p-8c2605fd.entry.js → p-fe303f58.entry.js} +2 -2
  739. package/dist/wcs/wcs.esm.js +1 -1
  740. package/package.json +18 -24
  741. package/dist/cjs/popper-8d6e7fca.js.map +0 -1
  742. package/dist/collection/components/accordion/accordion.e2e.js +0 -187
  743. package/dist/collection/components/accordion/accordion.e2e.js.map +0 -1
  744. package/dist/collection/components/alert/alert.e2e.js +0 -142
  745. package/dist/collection/components/alert/alert.e2e.js.map +0 -1
  746. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +0 -111
  747. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +0 -1
  748. package/dist/collection/components/breadcrumb/breadcrumb.e2e.js +0 -223
  749. package/dist/collection/components/breadcrumb/breadcrumb.e2e.js.map +0 -1
  750. package/dist/collection/components/button/button.e2e.js +0 -25
  751. package/dist/collection/components/button/button.e2e.js.map +0 -1
  752. package/dist/collection/components/checkbox/checkbox.e2e.js +0 -45
  753. package/dist/collection/components/checkbox/checkbox.e2e.js.map +0 -1
  754. package/dist/collection/components/chip/chip.e2e.js +0 -209
  755. package/dist/collection/components/chip/chip.e2e.js.map +0 -1
  756. package/dist/collection/components/com-nav/com-nav.e2e.js.map +0 -1
  757. package/dist/collection/components/counter/counter.e2e.js +0 -206
  758. package/dist/collection/components/counter/counter.e2e.js.map +0 -1
  759. package/dist/collection/components/dropdown/dropdown.e2e.js +0 -156
  760. package/dist/collection/components/dropdown/dropdown.e2e.js.map +0 -1
  761. package/dist/collection/components/editable-field/editable-field.e2e.js +0 -176
  762. package/dist/collection/components/editable-field/editable-field.e2e.js.map +0 -1
  763. package/dist/collection/components/form-field/form-field.e2e.js +0 -122
  764. package/dist/collection/components/form-field/form-field.e2e.js.map +0 -1
  765. package/dist/collection/components/grid/grid.e2e.js +0 -147
  766. package/dist/collection/components/grid/grid.e2e.js.map +0 -1
  767. package/dist/collection/components/input/input.e2e.js +0 -152
  768. package/dist/collection/components/input/input.e2e.js.map +0 -1
  769. package/dist/collection/components/modal/modal.e2e.js +0 -36
  770. package/dist/collection/components/modal/modal.e2e.js.map +0 -1
  771. package/dist/collection/components/radio-group/radio-group.e2e.js +0 -239
  772. package/dist/collection/components/radio-group/radio-group.e2e.js.map +0 -1
  773. package/dist/collection/components/select/select.e2e.js +0 -1081
  774. package/dist/collection/components/select/select.e2e.js.map +0 -1
  775. package/dist/collection/components/switch/switch.e2e.js +0 -45
  776. package/dist/collection/components/switch/switch.e2e.js.map +0 -1
  777. package/dist/collection/components/tabs/tabs.e2e.js +0 -207
  778. package/dist/collection/components/tabs/tabs.e2e.js.map +0 -1
  779. package/dist/collection/components/textarea/textarea.e2e.js +0 -132
  780. package/dist/collection/components/textarea/textarea.e2e.js.map +0 -1
  781. package/dist/collection/utils/tests.js +0 -23
  782. package/dist/collection/utils/tests.js.map +0 -1
  783. package/dist/esm/popper-e491c314.js.map +0 -1
  784. package/dist/types/utils/tests.d.ts +0 -4
  785. package/dist/wcs/p-0dd07842.entry.js +0 -2
  786. package/dist/wcs/p-0dd07842.entry.js.map +0 -1
  787. package/dist/wcs/p-0f864e86.js +0 -2
  788. package/dist/wcs/p-0f864e86.js.map +0 -1
  789. package/dist/wcs/p-1244daa0.entry.js +0 -2
  790. package/dist/wcs/p-1244daa0.entry.js.map +0 -1
  791. package/dist/wcs/p-1fbe0328.entry.js +0 -2
  792. package/dist/wcs/p-1fbe0328.entry.js.map +0 -1
  793. package/dist/wcs/p-828b45b4.entry.js +0 -2
  794. package/dist/wcs/p-828b45b4.entry.js.map +0 -1
  795. package/dist/wcs/p-b94a09b6.entry.js +0 -16
  796. package/dist/wcs/p-b94a09b6.entry.js.map +0 -1
  797. package/dist/wcs/p-fd187bce.entry.js +0 -2
  798. package/dist/wcs/p-fd187bce.entry.js.map +0 -1
  799. /package/dist/wcs/{p-1f593d06.entry.js.map → p-abd8d5a0.entry.js.map} +0 -0
  800. /package/dist/wcs/{p-622f7403.entry.js.map → p-c6f8c45c.entry.js.map} +0 -0
  801. /package/dist/wcs/{p-a94e685c.entry.js.map → p-db7ba599.entry.js.map} +0 -0
  802. /package/dist/wcs/{p-8c2605fd.entry.js.map → p-fe303f58.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tabsCss","WcsTabsStyle0","TABS_INHERITED_ATTRS","Tabs","proxyCustomElement","H","this","inheritedAttributes","tabsId","selectedIndexChanged","newValue","currentActiveTabIndex","selectedTabkeyChanged","updateCurrentActiveIndexByTabKey","onMobileChange","popper","destroy","emitActiveTabChange","tabChange","emit","tabName","headers","tabIndex","selectedKey","tabs","itemKey","i","length","tab","onTabLoaded","refreshHeaders","onWindowClickEvent","event","mobile","clickedOnMobileButtonOrOverlay","composedPath","some","el","mobileButton","popoverDiv","mobileOverlayExpanded","tabsDidLoadWithResizeObserver","smallBreakpoint","getComputedStyle","getPropertyValue","smallBreakpointValue","parseInt","ResizeObserver","entry","cr","contentRect","paddingRight","right","width","paddingLeft","left","initMobileOverlay","createPopper","placement","strategy","modifiers","name","options","offset","componentDidLoad","putTabsInCorrectDivIfTheyAreNot","selectedIndex","resizeObserver","observe","document","body","componentDidRender","update","tabDiv","shadowRoot","querySelector","Array","from","querySelectorAll","filter","node","parentNode","forEach","parentElement","isEqualNode","removeChild","appendChild","handleKeyDown","ev","target","key","selectTabAndEmitChangeEvent","preventDefault","_a","previousElementSibling","classList","contains","focus","_b","nextElementSibling","firstTab","lastTab","handleKeyDownMobile","x","push","getAttribute","tabsEl","assignedElements","index","componentWillUpdate","headersOnly","updateTabVisibility","hideAllTabsContent","componentWillLoad","Object","assign","inheritAriaAttributes","inheritAttributes","disconnectedCallback","disconnect","setAriaAttribute","attr","value","setOrRemoveAttribute","nativeTablist","idx","hidden","onMobileButtonClick","tabElementToFocus","requestAnimationFrame","onMobileButtonKeyDown","mobileLayout","h","id","class","role","ref","onClick","onKeyDown","evt","onBlur","$event","stopImmediatePropagation","SelectArrow","up","description","map","header","desktopLayout","render","Host","onSlotchange","onTabsSlotChange","tabId","setAttribute","at"],"sources":["src/components/tabs/tabs.scss?tag=wcs-tabs&encapsulation=shadow","src/components/tabs/tabs.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n\n:host {\n --wcs-tabs-indicator-height: calc(var(--wcs-semantic-size-base) / 2);\n --wcs-tabs-indicator-background-color: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-tabs-indicator-border-radius: var(--wcs-semantic-border-radius-full);\n\n --wcs-tabs-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-tabs-color-hover: var(--wcs-semantic-color-foreground-action-secondary-hover);\n --wcs-tabs-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-tabs-color-selected: var(--wcs-semantic-color-foreground-action-secondary-default);\n\n --wcs-tabs-background-color-focus: var(--wcs-semantic-color-background-action-secondary-focus);\n --wcs-tabs-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-tabs-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n\n --wcs-tabs-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-tabs-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n\n --wcs-tabs-font-weight-default: var(--wcs-semantic-font-weight-roman);\n --wcs-tabs-font-weight-selected: var(--wcs-semantic-font-weight-roman);\n\n --wcs-tabs-padding-top: var(--wcs-semantic-spacing-base);\n --wcs-tabs-padding-right: var(--wcs-semantic-spacing-large);\n --wcs-tabs-padding-bottom: calc(var(--wcs-semantic-spacing-base) + var(--wcs-tabs-indicator-height));\n --wcs-tabs-padding-left: var(--wcs-semantic-spacing-large);\n\n --wcs-tabs-gutter-border-width: var(--wcs-semantic-border-width-default);\n --wcs-tabs-gutter-background-color: var(--wcs-semantic-color-border-secondary);\n --wcs-tabs-headers-border-bottom: var(--wcs-tabs-gutter-border-width) solid var(--wcs-tabs-gutter-background-color);\n\n --wcs-tabs-mobile-breakpoint: var(--wcs-phone-breakpoint-max-width, 575px);\n\n --wcs-tabs-mobile-overlay-border-width: var(--wcs-semantic-border-width-default);\n --wcs-tabs-mobile-overlay-border-color: var(--wcs-semantic-color-border-secondary);\n --wcs-tabs-mobile-overlay-background-color: var(--wcs-semantic-color-background-surface-primary);\n --wcs-tabs-mobile-overlay-padding: var(--wcs-semantic-spacing-base);\n --wcs-tabs-mobile-overlay-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-tabs-mobile-gap: var(--wcs-semantic-spacing-base);\n --wcs-tabs-mobile-padding: 0 var(--wcs-semantic-spacing-base);\n --wcs-tabs-mobile-height: var(--wcs-semantic-size-m);\n --wcs-tabs-mobile-font-weight-default: var(--wcs-semantic-font-weight-medium);\n --wcs-tabs-mobile-font-weight-active: var(--wcs-semantic-font-weight-black);\n --wcs-tabs-mobile-font-size: var(--wcs-semantic-font-size-base);\n --wcs-tabs-mobile-color: var(--wcs-semantic-color-text-primary);\n --wcs-tabs-mobile-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-tabs-mobile-background-color-focus: var(--wcs-semantic-color-background-action-secondary-focus);\n --wcs-tabs-mobile-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-tabs-mobile-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n --wcs-tabs-mobile-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-tabs-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n display: block;\n}\n\n:host([align=start]) .wcs-tabs-headers {\n justify-content: start;\n}\n\n:host([align=end]) .wcs-tabs-headers {\n justify-content: end;\n}\n\n:host([align=center]) .wcs-tabs-headers {\n justify-content: center;\n}\n\n.wcs-tabs-headers {\n overflow-x: auto;\n display: flex;\n flex-direction: row;\n position: relative;\n}\n\n:host([gutter]) {\n .wcs-tabs-headers {\n border-bottom: var(--wcs-tabs-headers-border-bottom);\n }\n}\n\n.wcs-tab-header {\n position: relative;\n\n padding: var(--wcs-tabs-padding-top) var(--wcs-tabs-padding-right) var(--wcs-tabs-padding-bottom) var(--wcs-tabs-padding-left);\n border-radius: var(--wcs-tabs-border-radius) var(--wcs-tabs-border-radius) 0 0;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n outline: none;\n transition: all var(--wcs-tabs-transition-duration) ease-out;\n\n span {\n text-align: center;\n color: var(--wcs-tabs-color-default);\n font-size: 1rem;\n font-weight: var(--wcs-tabs-font-weight-default);\n }\n\n &:hover {\n background-color: var(--wcs-tabs-background-color-hover);\n\n span {\n color: var(--wcs-tabs-color-hover);\n }\n }\n\n // TODO : mettre le focus outline sur la wcs-tab-header comme dans figma\n &:focus-visible > span {\n @include focus-outline(var(--wcs-tabs-border-color-focus));\n }\n\n &:active {\n background-color: var(--wcs-tabs-background-color-press);\n\n span {\n color: var(--wcs-tabs-color-press);\n }\n }\n}\n\n\n.active {\n span {\n font-weight: var(--wcs-tabs-font-weight-selected);\n color: var(--wcs-tabs-color-selected);\n }\n\n &::after {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n content: \"\";\n height: var(--wcs-tabs-indicator-height);\n background-color: var(--wcs-tabs-indicator-background-color);\n border-radius: var(--wcs-tabs-indicator-border-radius);\n }\n}\n\n/* ============= */\n/* region MOBILE */\n/* ============= */\n\nbutton {\n background-color: inherit;\n}\n\n#mobile-button {\n border: 0;\n font-family: var(--wcs-font-sans-serif), sans-serif;\n text-align: center;\n color: var(--wcs-tabs-color-default);\n font-size: 1rem;\n font-weight: var(--wcs-tabs-font-weight-default);\n padding-right: calc(0.75 * var(--wcs-tabs-padding-right)); /* reduce padding right because of the arrow */\n\n span {\n display: flex;\n align-items: center;\n }\n\n .arrow {\n fill: var(--wcs-tabs-color-default);\n }\n\n &:hover {\n .arrow {\n fill: var(--wcs-tabs-color-hover);\n }\n }\n\n &:active {\n .arrow {\n fill: var(--wcs-tabs-color-press);\n }\n }\n}\n\n.popover {\n display: none;\n z-index: 9999;\n overflow: hidden;\n border: var(--wcs-tabs-mobile-overlay-border-width) solid var(--wcs-tabs-mobile-overlay-border-color);\n border-radius: var(--wcs-tabs-mobile-overlay-border-radius);\n padding: var(--wcs-tabs-mobile-overlay-padding);\n background-color: var(--wcs-tabs-mobile-overlay-background-color);\n\n [role=tab] {\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n user-select: none;\n\n gap: var(--wcs-tabs-mobile-gap);\n padding: var(--wcs-tabs-mobile-padding);\n height: var(--wcs-tabs-mobile-height);\n font-weight: var(--wcs-tabs-mobile-font-weight-default);\n font-size: var(--wcs-tabs-mobile-font-size);\n\n color: var(--wcs-tabs-mobile-color);\n background-color: var(--wcs-tabs-mobile-background-color);\n border-radius: var(--wcs-tabs-mobile-border-radius);\n\n transition-duration: var(--wcs-tabs-transition-duration);\n transition-property: background-color, color;\n transition-timing-function: ease;\n\n overflow: hidden;\n white-space: nowrap;\n\n &:focus {\n background-color: var(--wcs-tabs-mobile-background-color-focus);\n }\n\n &:focus-visible {\n @include focus-outline($border-radius: var(--wcs-tabs-mobile-border-radius), $outline-offset: 0);\n }\n\n &:hover {\n background-color: var(--wcs-tabs-mobile-background-color-hover);\n }\n\n &:active {\n background-color: var(--wcs-tabs-mobile-background-color-press);\n }\n\n }\n\n .mobile-active {\n font-weight: var(--wcs-tabs-mobile-font-weight-active);\n }\n}\n\n.show {\n display: block;\n}\n\n/* ================ */\n/* endregion MOBILE */\n/* ================ */\n","import {\n Component,\n Prop,\n Element,\n State,\n ComponentInterface,\n Event,\n EventEmitter,\n Watch,\n h,\n Host,\n Listen, Method\n} from '@stencil/core';\n\nimport { WcsTabsAlignment, WcsTabChangeEvent } from './tabs-interface';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport {\n inheritAriaAttributes,\n inheritAttributes,\n setOrRemoveAttribute\n} from \"../../utils/helpers\";\nimport { SelectArrow } from \"../select/select-arrow\";\nimport { createPopper, Instance } from \"@popperjs/core\";\n\nconst TABS_INHERITED_ATTRS = [];\n\n/**\n * Tabs component to switch between tab content. Use in conjunction with `wcs-tab`.\n * \n * ## Accessibility guidelines 💡\n * > - Mobile display should be used for narrower screens (automatically set by default).\n * > - The component respects the W3C [tab pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/)\n * \n * @cssprop --wcs-tabs-indicator-height - Height of the tabs indicator \n * @cssprop --wcs-tabs-indicator-background-color - Background color of the tabs indicator\n * @cssprop --wcs-tabs-indicator-border-radius - Border radius of the tabs indicator\n * @cssprop --wcs-tabs-color-default - Text color of the tabs\n * @cssprop --wcs-tabs-color-hover - Text color of the tabs when hovered\n * @cssprop --wcs-tabs-color-press - Text color of the tabs when pressed\n * @cssprop --wcs-tabs-color-focus - Text color of the tabs when focused\n * @cssprop --wcs-tabs-color-selected - Text color of the tabs when selected\n * @cssprop --wcs-tabs-background-color-focus - Background color of the tabs when focused\n * @cssprop --wcs-tabs-background-color-hover - Background color of the tabs when hovered\n * @cssprop --wcs-tabs-background-color-press - Background color of the tabs when pressed\n * @cssprop --wcs-tabs-border-radius - Border radius of the tabs\n * @cssprop --wcs-tabs-border-color-focus - Outline color on a focused tab\n * @cssprop --wcs-tabs-font-weight-default - Font weight of the tabs\n * @cssprop --wcs-tabs-font-weight-selected - Font weight of the tabs when selected\n * @cssprop --wcs-tabs-padding-top - Padding top of the tabs\n * @cssprop --wcs-tabs-padding-right - Padding right of the tabs\n * @cssprop --wcs-tabs-padding-bottom - Padding bottom of the tabs\n * @cssprop --wcs-tabs-padding-left - Padding left of the tabs\n * @cssprop --wcs-tabs-headers-border-bottom - Border bottom (gutter) below the tabs\n * @cssprop --wcs-tabs-transition-duration - Transition duration of the tabs\n * @cssprop --wcs-tabs-mobile-breakpoint - Breakpoint for mobile display (default: 575px)\n * @cssprop --wcs-tabs-mobile-overlay-border-width - Border width of the mobile overlay\n * @cssprop --wcs-tabs-mobile-overlay-border-color - Border color of the mobile overlay\n * @cssprop --wcs-tabs-mobile-overlay-background-color - Background color of the mobile overlay\n * @cssprop --wcs-tabs-mobile-overlay-padding - Padding of the mobile overlay\n * @cssprop --wcs-tabs-mobile-overlay-border-radius - Border radius of the mobile overlay\n * @cssprop --wcs-tabs-mobile-gap - Gap between the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-padding - Padding of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-height - Height of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-font-weight-default - Default weight of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-font-weight-active - Active font weight of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-font-size - Font size of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-color - Text color of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-background-color-default - Default background color of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-background-color-focus - Focused background color of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-background-color-hover - Hovered background color of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-background-color-press - Pressed background color of the mobile tabs in the overlay\n * @cssprop --wcs-tabs-mobile-border-radius - Border radius of the mobile tabs in the overlay\n */\n@Component({\n tag: 'wcs-tabs',\n styleUrl: 'tabs.scss',\n shadow: true,\n})\nexport class Tabs implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsTabsElement;\n private nativeTablist!: HTMLElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * Tab headers alignment.\n */\n @Prop({reflect: true}) align: WcsTabsAlignment = 'start';\n\n /**\n * Current selected tab index.\n * Starts at 0.\n */\n @Prop() selectedIndex: number = 0;\n\n @Prop() selectedKey: any;\n\n /**\n * Whether to skip rendering the tabpanel with the content of the selected tab. Use this prop if you plan to\n * separately render the tab content.\n */\n @Prop({ reflect: true }) headersOnly: boolean = false;\n /** Determines if tabs header should have a border at the bottom */\n @Prop({ reflect: true }) gutter: boolean;\n\n /**\n * Description is used to provide aria-label for the tabs container which has `role=\"tablist\"`.\n */\n @Prop() description: string;\n\n // region MOBILE\n \n /**\n * Mobile display : This div is shown on the user interface when the tabs are expanded\n * @private\n */\n private popoverDiv!: HTMLDivElement;\n\n private popper: Instance;\n \n @State() private mobileOverlayExpanded: boolean = false;\n\n /**\n * If true, the tabs will be displayed as a dropdown list containing the tabs. Useful for narrower screens.\n */\n @State() private mobile: boolean = false;\n\n /**\n * Mobile display: the selected tab semantically become a button that opens an overlay\n */\n private mobileButton!: HTMLButtonElement;\n\n /**\n * Observe the screen resize to switch between mobile and desktop mode\n */\n private resizeObserver: ResizeObserver;\n\n\n // endregion MOBILE\n\n /**\n *\n * Emitted when the selected tab change.\n */\n @Event() tabChange!: EventEmitter<WcsTabChangeEvent>;\n\n @State() private headers: string[] = [];\n\n @State() private currentActiveTabIndex = 0;\n\n private tabsId: number = tabsId++;\n\n @Watch('selectedIndex')\n selectedIndexChanged(newValue: number) {\n this.currentActiveTabIndex = newValue;\n }\n\n @Watch('selectedKey')\n selectedTabkeyChanged(newValue: any) {\n this.updateCurrentActiveIndexByTabKey(newValue);\n }\n \n @Watch('mobile')\n onMobileChange(newValue: boolean) {\n // Remove the popper instance when switching from mobile to desktop for performance\n if (!newValue) {\n this.popper.destroy();\n this.popper = null;\n }\n }\n\n private emitActiveTabChange() {\n this.tabChange.emit({\n tabName: this.headers[this.currentActiveTabIndex],\n tabIndex: this.currentActiveTabIndex,\n selectedKey: this.tabs[this.currentActiveTabIndex].itemKey\n });\n }\n\n private updateCurrentActiveIndexByTabKey(newValue: any) {\n for (let i = 0; i < this.tabs.length; i++) {\n const tab = this.tabs[i];\n if (tab.itemKey === newValue) {\n this.currentActiveTabIndex = i;\n }\n }\n }\n\n @Listen('tabLoaded')\n onTabLoaded() {\n this.refreshHeaders();\n }\n\n @Listen('click', {target: 'window'})\n onWindowClickEvent(event: MouseEvent) {\n if (this.mobile) {\n const clickedOnMobileButtonOrOverlay = event.composedPath().some(el => el === this.mobileButton || el === this.popoverDiv);\n if (this.mobileOverlayExpanded && !clickedOnMobileButtonOrOverlay) {\n this.mobileOverlayExpanded = false;\n }\n }\n }\n\n /**\n * Init resize observer for mobile\n */\n private tabsDidLoadWithResizeObserver(): ResizeObserver {\n const smallBreakpoint = getComputedStyle(this.el).getPropertyValue('--wcs-tabs-mobile-breakpoint') || '575px';\n const smallBreakpointValue = parseInt(smallBreakpoint, 10);\n\n return new ResizeObserver(entry => {\n const cr = entry[0].contentRect;\n const paddingRight = cr.right - cr.width;\n const paddingLeft = cr.left;\n // Switch to mobile mode if the screen is smaller than the breakpoint\n this.mobile = cr.width <= smallBreakpointValue - (paddingLeft + paddingRight);\n });\n }\n\n\n private initMobileOverlay() {\n this.popper = createPopper(this.mobileButton, this.popoverDiv, {\n placement: 'bottom-start',\n strategy: 'fixed',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8]\n }\n }\n ]\n });\n }\n\n componentDidLoad() {\n this.putTabsInCorrectDivIfTheyAreNot();\n this.refreshHeaders();\n if (this.selectedIndex) {\n this.currentActiveTabIndex = this.selectedIndex;\n }\n if (this.selectedKey) {\n this.updateCurrentActiveIndexByTabKey(this.selectedKey);\n }\n if (!this.resizeObserver) {\n this.resizeObserver = this.tabsDidLoadWithResizeObserver();\n this.resizeObserver.observe(document.body);\n }\n }\n\n componentDidRender() {\n if (this.mobile) {\n if(!this.popper) {\n this.initMobileOverlay();\n } else {\n this.popper.update();\n }\n }\n }\n\n // XXX: Firefox < 63\n private putTabsInCorrectDivIfTheyAreNot() {\n const tabDiv = this.el.shadowRoot.querySelector('.wcs-tabs');\n if (tabDiv.querySelector('slot') === null) {\n Array.from(this.el.querySelectorAll('wcs-tab'))\n .filter(node => node.parentNode !== tabDiv)\n .forEach(tab => {\n if (tab.parentElement.isEqualNode(this.el)) {\n this.el.removeChild(tab);\n tabDiv.appendChild(tab);\n }\n });\n }\n }\n\n handleKeyDown(ev: KeyboardEvent, tabIndex: number) {\n const target = ev.target as HTMLDivElement;\n switch (ev.key) {\n case ' ':\n case 'Enter': {\n this.selectTabAndEmitChangeEvent(tabIndex);\n ev.preventDefault();\n break;\n }\n case 'ArrowLeft': {\n if (target.previousElementSibling?.classList.contains('wcs-tab-header')) {\n (target.previousElementSibling as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if (target.nextElementSibling?.classList.contains('wcs-tab-header')) {\n (target.nextElementSibling as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'Home': {\n const firstTab = this.el.shadowRoot.querySelector('.wcs-tab-header:first-child');\n if (firstTab) {\n (firstTab as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'End': {\n const lastTab = this.el.shadowRoot.querySelector('.wcs-tab-header:last-child');\n if (lastTab) {\n (lastTab as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n }\n }\n\n handleKeyDownMobile(ev: KeyboardEvent, tabIndex: number) {\n const target = ev.target as HTMLDivElement;\n switch (ev.key) {\n case ' ':\n case 'Enter': {\n this.selectTabAndEmitChangeEvent(tabIndex);\n ev.preventDefault();\n break;\n }\n case 'ArrowUp': {\n if (target.previousElementSibling?.classList.contains('wcs-tab-header-mobile')) {\n (target.previousElementSibling as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'ArrowDown': {\n if (target.nextElementSibling?.classList.contains('wcs-tab-header-mobile')) {\n (target.nextElementSibling as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'Home': {\n const firstTab = this.el.shadowRoot.querySelector('.wcs-tab-header-mobile:first-child');\n if (firstTab) {\n (firstTab as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'End': {\n const lastTab = this.el.shadowRoot.querySelector('.wcs-tab-header-mobile:last-child');\n if (lastTab) {\n (lastTab as HTMLDivElement).focus();\n ev.preventDefault();\n }\n break;\n }\n case 'Escape': {\n this.mobileOverlayExpanded = false;\n ev.preventDefault();\n break;\n }\n }\n }\n\n private refreshHeaders() {\n this.headers = [];\n this.tabs\n .forEach(x => {\n this.headers.push(x.getAttribute('header'));\n });\n }\n\n private get tabs() {\n const tabsEl = this.el.shadowRoot.querySelector('.wcs-tabs');\n // FIXME: problem with this selector being too greedy in ff < 63\n const tabs = this.el.shadowRoot.querySelectorAll('.wcs-tabs > wcs-tab');\n\n return tabs.length !== 0\n ? tabs\n : tabsEl?.querySelector('slot')\n ? tabsEl?.querySelector('slot')?.assignedElements() as unknown as NodeListOf<HTMLWcsTabElement>\n : [];\n }\n\n private selectTabAndEmitChangeEvent(index: number) {\n this.currentActiveTabIndex = index;\n this.emitActiveTabChange();\n \n if (this.mobile) {\n this.mobileOverlayExpanded = false;\n this.mobileButton?.focus();\n \n }\n }\n\n componentWillUpdate() {\n if (!this.headersOnly) {\n this.updateTabVisibility();\n } else {\n this.hideAllTabsContent();\n }\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, TABS_INHERITED_ATTRS),\n };\n }\n\n disconnectedCallback(): void {\n if (this.popper) {\n this.popper.destroy();\n this.popper = null;\n }\n this.resizeObserver?.disconnect();\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.mobile ? this.popoverDiv : this.nativeTablist, attr, value);\n }\n\n private updateTabVisibility() {\n this.tabs.forEach((el: HTMLWcsTabElement, idx: number) => {\n if (idx !== this.currentActiveTabIndex) {\n el.hidden = true;\n } else {\n el.hidden = false;\n }\n });\n }\n\n private hideAllTabsContent() {\n this.tabs.forEach((el: HTMLWcsTabElement) => el.hidden = true);\n }\n \n onMobileButtonClick() {\n this.mobileOverlayExpanded = !this.mobileOverlayExpanded;\n const tabElementToFocus = this.popoverDiv.querySelectorAll('[role=tab]')[this.currentActiveTabIndex] as HTMLElement;\n requestAnimationFrame(() => {\n tabElementToFocus?.focus();\n })\n }\n \n onMobileButtonKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'ArrowDown' || ev.key === 'ArrowUp') {\n this.onMobileButtonClick();\n }\n }\n\n mobileLayout() {\n return [\n <button id=\"mobile-button\"\n class=\"wcs-tab-header active\"\n aria-controls=\"menu\"\n role=\"button\"\n aria-expanded={this.mobileOverlayExpanded ? 'true' : 'false'}\n ref={el => this.mobileButton = el}\n onClick={() => this.onMobileButtonClick()}\n onKeyDown={(evt) => this.onMobileButtonKeyDown(evt)}\n onBlur={($event) => $event.stopImmediatePropagation()}>\n <span>\n {this.headers[this.currentActiveTabIndex]} <SelectArrow up={this.mobileOverlayExpanded}/>\n </span>\n </button>,\n <div class={(this.mobileOverlayExpanded ? 'show ' : '') + 'popover'}\n role=\"tablist\"\n id=\"menu\"\n aria-label={this.description}\n aria-orientation=\"vertical\"\n ref={el => this.popoverDiv = el}\n tabIndex={-1}\n {...this.inheritedAttributes}>\n {this.headers.map((header, idx) =>\n <div class={'wcs-tab-header-mobile ' + (this.currentActiveTabIndex === idx ? 'mobile-active' : '')}\n onClick={() => this.selectTabAndEmitChangeEvent(idx)}\n onKeyDown={evt => this.handleKeyDownMobile(evt, idx)}\n tabIndex={this.currentActiveTabIndex === idx ? 0 : -1}\n role=\"tab\"\n id={`tabs-id-${this.tabsId}-tab-id-${idx}`}\n // aria-controls refers to ID of the tab panel related to the header\n aria-controls={`tabs-id-${this.tabsId}-tab-panel-${idx}`}\n aria-label={header}\n aria-selected={this.currentActiveTabIndex === idx ? 'true' : 'false'}\n >\n <span>{header}</span>\n </div>\n )}\n </div>\n ]\n }\n \n desktopLayout() {\n return (\n this.headers.map((header, idx) =>\n <div class={'wcs-tab-header ' + (this.currentActiveTabIndex === idx ? 'active' : '')}\n onClick={() => this.selectTabAndEmitChangeEvent(idx)}\n onKeyDown={evt => this.handleKeyDown(evt, idx)}\n tabIndex={this.currentActiveTabIndex === idx ? 0 : -1}\n role=\"tab\"\n id={`tabs-id-${this.tabsId}-tab-id-${idx}`}\n // aria-controls refers to ID of the tab panel related to the header\n aria-controls={`tabs-id-${this.tabsId}-tab-panel-${idx}`}\n aria-label={header}\n aria-selected={this.currentActiveTabIndex === idx ? 'true' : 'false'}\n >\n <span>{header}</span>\n </div>\n )\n )\n }\n\n render() {\n return (\n <Host>\n <div class=\"wcs-tabs-headers\"\n role={this.mobile ? null : 'tablist'}\n ref={(el) => (this.nativeTablist = el)}\n aria-orientation={this.mobile ? null : 'horizontal'}\n aria-label={this.mobile ? null : this.description}\n {...(!this.mobile && this.inheritedAttributes)}>\n {this.mobile ? this.mobileLayout() : this.desktopLayout()}\n </div>\n <div class=\"wcs-tabs\">\n <slot onSlotchange={() => this.onTabsSlotChange()} name=\"wcs-tab\"/>\n </div>\n </Host>\n );\n }\n\n /**\n * Observe when a new tab panel is added to the slot to let's handle accessibility properties for tabs panel:\n * - id: to let header tab refers it proper panel\n * - aria-label: take the same name as it's referenced header name\n * \n * @private\n */\n private onTabsSlotChange() {\n let tabId = 0;\n this.refreshHeaders();\n this.tabs.forEach(tab => {\n tab.setAttribute(\"aria-label\", this.headers.at(tabId));\n // set an ID to set aria-controls on header tab \n // (https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-automatic/#:~:text=Refers%20to%20the%20element)\n tab.setAttribute(\"id\", `tabs-id-${this.tabsId}-tab-panel-${tabId}`);\n tabId++;\n });\n }\n}\n\nlet tabsId = 0;\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../dist/types/components";
2
+
3
+ interface WcsTextarea extends Components.WcsTextarea, HTMLElement {}
4
+ export const WcsTextarea: {
5
+ prototype: WcsTextarea;
6
+ new (): WcsTextarea;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,2 @@
1
+ import{p as t,H as e,d as a,r,h as s,c as o}from"./p-2bef72c7.js";import{y as i,i as c,a as n,D as d,s as l}from"./p-e803bb26.js";import{d as h}from"./p-55668982.js";const w=":host{--wcs-textarea-text-color-disabled:var(--wcs-semantic-color-text-disabled);--wcs-textarea-value-color:var(--wcs-semantic-color-text-primary);--wcs-textarea-value-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-textarea-placeholder-color:var(--wcs-semantic-color-text-tertiary);--wcs-textarea-placeholder-font-weight:var(--wcs-semantic-font-weight-roman);--wcs-textarea-placeholder-font-style:var(--wcs-semantic-font-style-control-placeholder);--wcs-textarea-icon-color-default:var(--wcs-semantic-color-foreground-brand);--wcs-textarea-icon-color-disabled:var(--wcs-semantic-color-foreground-disabled);--wcs-textarea-icon-color-focus:var(--wcs-semantic-color-foreground-brand);--wcs-textarea-border-color-default:var(--wcs-semantic-color-border-primary);--wcs-textarea-border-color-disabled:var(--wcs-semantic-color-border-disabled);--wcs-textarea-border-color-error:var(--wcs-semantic-color-border-critical);--wcs-textarea-border-color-focus:var(--wcs-semantic-color-border-control-focus);--wcs-textarea-border-style-default:solid;--wcs-textarea-border-style-error:solid;--wcs-textarea-border-style-focus:var(--wcs-semantic-border-style-focus-control);--wcs-internal-textarea-border-radius-left:var(--wcs-textarea-border-radius-left, var(--wcs-semantic-border-radius-base));--wcs-internal-textarea-border-radius-right:var(--wcs-textarea-border-radius-right, var(--wcs-semantic-border-radius-base));--wcs-textarea-border-width:var(--wcs-semantic-border-width-default);--wcs-textarea-border-width-focus:var(--wcs-semantic-border-width-large);--wcs-textarea-gap:var(--wcs-semantic-spacing-base);--wcs-textarea-padding-top:var(--wcs-semantic-spacing-base);--wcs-textarea-padding-bottom:var(--wcs-semantic-spacing-base);--wcs-internal-textarea-padding-left:var(--wcs-textarea-padding-left, var(--wcs-semantic-spacing-large));--wcs-internal-textarea-padding-right:var(--wcs-textarea-padding-right, var(--wcs-semantic-spacing-large));--wcs-textarea-min-height:var(--wcs-semantic-size-m);--wcs-internal-textarea-max-height:var(--wcs-textarea-max-height, unset);--wcs-textarea-background-color:var(--wcs-semantic-color-background-control-default);display:flex;flex-direction:row;align-items:center;gap:var(--wcs-textarea-gap);width:100%;border-radius:var(--wcs-internal-textarea-border-radius-left) var(--wcs-internal-textarea-border-radius-right) var(--wcs-internal-textarea-border-radius-right) var(--wcs-internal-textarea-border-radius-left);background-color:var(--wcs-textarea-background-color);outline:var(--wcs-textarea-border-style-default) var(--wcs-textarea-border-width) var(--wcs-textarea-border-color-default);outline-offset:calc(-1 * var(--wcs-textarea-border-width));background-clip:padding-box;box-sizing:border-box}:host textarea{box-sizing:border-box;font-family:inherit;overflow:auto;flex:1;width:100%;min-height:var(--wcs-textarea-min-height);max-height:var(--wcs-internal-textarea-max-height);background-color:transparent;color:var(--wcs-textarea-value-color);font-weight:var(--wcs-textarea-value-font-weight) !important;border:none;padding-top:var(--wcs-textarea-padding-top);padding-bottom:var(--wcs-textarea-padding-bottom);padding-left:var(--wcs-internal-textarea-padding-left);padding-right:var(--wcs-internal-textarea-padding-right);font-size:1rem;line-height:1.5}:host textarea::placeholder{color:var(--wcs-textarea-placeholder-color);opacity:1;font-weight:var(--wcs-textarea-placeholder-font-weight);font-style:var(--wcs-textarea-placeholder-font-style)}:host textarea:focus{box-shadow:none;outline:0}:host wcs-mat-icon{margin-left:var(--wcs-internal-textarea-padding-left);color:var(--wcs-textarea-icon-color-default)}:host([disabled]){--wcs-textarea-background-color:var(--wcs-semantic-color-background-control-disabled);outline:var(--wcs-textarea-border-style-default) var(--wcs-textarea-border-width) var(--wcs-textarea-border-color-disabled)}:host([disabled]) textarea{color:var(--wcs-textarea-text-color-disabled);cursor:not-allowed}:host([disabled]) textarea::placeholder{color:var(--wcs-textarea-text-color-disabled)}:host([disabled]) wcs-mat-icon{color:var(--wcs-textarea-icon-color-disabled)}:host([icon]) textarea{padding-left:0}:host([state=error]){outline-color:var(--wcs-textarea-border-color-error) !important}:host(:focus-within){outline:var(--wcs-textarea-border-style-focus) var(--wcs-textarea-border-width-focus) var(--wcs-textarea-border-color-focus);outline-offset:calc(var(--wcs-textarea-border-width-focus) * -1)}:host(:focus-within) wcs-mat-icon{color:var(--wcs-textarea-icon-color-focus)}";const u=w;const f=["tabindex","title"];const b=t(class t extends e{constructor(){super();this.__registerHost();this.__attachShadow();this.wcsChange=a(this,"wcsChange",7);this.wcsInput=a(this,"wcsInput",7);this.wcsBlur=a(this,"wcsBlur",7);this.wcsFocus=a(this,"wcsFocus",7);this.inputId=`wcs-textarea-${x++}`;this.inheritedAttributes={};this.onInput=t=>{if(this.nativeInput){this.value=this.nativeInput.value}this.wcsInput.emit(t)};this.onChange=t=>{this.wcsChange.emit({value:this.nativeInput.value})};this.onFocus=t=>{if(this.fireFocusEvents){this.wcsFocus.emit(t)}};this.onBlur=t=>{if(this.fireFocusEvents){this.wcsBlur.emit(t)}};this.fireFocusEvents=true;this.autocapitalize="none";this.autofocus=false;this.debounce=0;this.disabled=false;this.icon=undefined;this.inputmode=undefined;this.enterkeyhint=undefined;this.maxlength=undefined;this.minlength=undefined;this.name=this.inputId;this.placeholder=undefined;this.readonly=false;this.required=false;this.spellcheck=false;this.state="initial";this.cols=undefined;this.rows=undefined;this.wrap=undefined;this.autoGrow=false;this.value="";this.resize=undefined}debounceChanged(){this.wcsInput=i(this.wcsInput,this.debounce)}valueChanged(){const t=this.nativeInput;const e=this.getValue();if(t&&t.value!==e){t.value=e}this.runAutoGrow()}connectedCallback(){this.debounceChanged();{document.dispatchEvent(new CustomEvent("wcsInputDidLoad",{detail:this.el}))}}disconnectedCallback(){{document.dispatchEvent(new CustomEvent("wcsInputDidUnload",{detail:this.el}))}}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},c(this.el)),n(this.el,f))}componentDidLoad(){d((()=>this.runAutoGrow()))}runAutoGrow(){const t=this.nativeInput;if(t&&this.autoGrow){r((()=>{t.style.height="auto";t.style.height=t.scrollHeight+"px"}))}}async setAriaAttribute(t,e){l(this.nativeInput,t,e)}async fitContent(){d((()=>this.runAutoGrow()))}async setBlur(){if(this.nativeInput){this.nativeInput.blur()}}getInputElement(){return Promise.resolve(this.nativeInput)}getValue(){return this.value||""}render(){const t=this.getValue();const e=Object.assign({},this.resize&&{resize:this.resize});return s(o,{key:"2ffd19f34c0feb9a49931942e48d7b7193ff377e","aria-disabled":this.disabled?"true":null},this.icon?s("wcs-mat-icon",{icon:this.icon,size:"m"}):null,s("textarea",Object.assign({key:"ce0c430d962cf93b962c7a6227ec98d6cfcc46f0",class:"native-textarea",ref:t=>this.nativeInput=t,autoCapitalize:this.autocapitalize,autoFocus:this.autofocus,enterKeyHint:this.enterkeyhint,inputMode:this.inputmode,disabled:this.disabled,maxLength:this.maxlength,minLength:this.minlength,name:this.name,placeholder:this.placeholder||"",readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,cols:this.cols,rows:this.rows,wrap:this.wrap,onInput:this.onInput,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,style:e},this.inheritedAttributes),t))}static get delegatesFocus(){return true}get el(){return this}static get watchers(){return{debounce:["debounceChanged"],value:["valueChanged"]}}static get style(){return u}},[17,"wcs-textarea",{fireFocusEvents:[4,"fire-focus-events"],autocapitalize:[1],autofocus:[4],debounce:[2],disabled:[516],icon:[1],inputmode:[1],enterkeyhint:[1],maxlength:[2],minlength:[2],name:[1],placeholder:[1],readonly:[516],required:[516],spellcheck:[4],state:[513],cols:[2],rows:[2],wrap:[1],autoGrow:[516,"auto-grow"],value:[1025],resize:[513],setAriaAttribute:[64],fitContent:[64],setBlur:[64],getInputElement:[64]},undefined,{debounce:["debounceChanged"],value:["valueChanged"]}]);let x=0;function g(){if(typeof customElements==="undefined"){return}const t=["wcs-textarea","wcs-mat-icon"];t.forEach((t=>{switch(t){case"wcs-textarea":if(!customElements.get(t)){customElements.define(t,b)}break;case"wcs-mat-icon":if(!customElements.get(t)){h()}break}}))}g();const m=b;const v=g;export{m as WcsTextarea,v as defineCustomElement};
2
+ //# sourceMappingURL=wcs-textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["textareaCss","WcsTextareaStyle0","TEXTAREA_INHERITED_ATTRS","Textarea","proxyCustomElement","H","this","inputId","textareaIds","inheritedAttributes","onInput","ev","nativeInput","value","wcsInput","emit","onChange","_","wcsChange","onFocus","fireFocusEvents","wcsFocus","onBlur","wcsBlur","debounceChanged","debounceEvent","debounce","valueChanged","getValue","runAutoGrow","connectedCallback","document","dispatchEvent","CustomEvent","detail","el","disconnectedCallback","componentWillLoad","Object","assign","inheritAriaAttributes","inheritAttributes","componentDidLoad","raf","autoGrow","readTask","style","height","scrollHeight","setAriaAttribute","attr","setOrRemoveAttribute","fitContent","setBlur","blur","getInputElement","Promise","resolve","render","resize","h","Host","key","disabled","icon","size","class","ref","autoCapitalize","autocapitalize","autoFocus","autofocus","enterKeyHint","enterkeyhint","inputMode","inputmode","maxLength","maxlength","minLength","minlength","name","placeholder","readOnly","readonly","required","spellcheck","cols","rows","wrap"],"sources":["src/components/textarea/textarea.scss?tag=wcs-textarea&encapsulation=shadow","src/components/textarea/textarea.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n@import '../../style/placeholder.scss';\n\n:host {\n --wcs-textarea-text-color-disabled: var(--wcs-semantic-color-text-disabled);\n --wcs-textarea-value-color: var(--wcs-semantic-color-text-primary);\n --wcs-textarea-value-font-weight: var(--wcs-semantic-font-weight-medium);\n\n --wcs-textarea-placeholder-color: var(--wcs-semantic-color-text-tertiary);\n --wcs-textarea-placeholder-font-weight: var(--wcs-semantic-font-weight-roman);\n --wcs-textarea-placeholder-font-style: var(--wcs-semantic-font-style-control-placeholder);\n\n --wcs-textarea-icon-color-default: var(--wcs-semantic-color-foreground-brand);\n --wcs-textarea-icon-color-disabled: var(--wcs-semantic-color-foreground-disabled);\n --wcs-textarea-icon-color-focus: var(--wcs-semantic-color-foreground-brand);\n\n --wcs-textarea-border-color-default: var(--wcs-semantic-color-border-primary);\n --wcs-textarea-border-color-disabled: var(--wcs-semantic-color-border-disabled);\n --wcs-textarea-border-color-error: var(--wcs-semantic-color-border-critical);\n --wcs-textarea-border-color-focus: var(--wcs-semantic-color-border-control-focus);\n\n --wcs-textarea-border-style-default: solid;\n --wcs-textarea-border-style-error: solid;\n --wcs-textarea-border-style-focus: var(--wcs-semantic-border-style-focus-control);\n\n --wcs-internal-textarea-border-radius-left: var(--wcs-textarea-border-radius-left, var(--wcs-semantic-border-radius-base)); // Overridden from prefix suffix group in form-field\n --wcs-internal-textarea-border-radius-right: var(--wcs-textarea-border-radius-right, var(--wcs-semantic-border-radius-base)); // Overridden from prefix suffix group in form-field\n\n --wcs-textarea-border-width: var(--wcs-semantic-border-width-default);\n --wcs-textarea-border-width-focus: var(--wcs-semantic-border-width-large);\n\n --wcs-textarea-gap: var(--wcs-semantic-spacing-base);\n\n --wcs-textarea-padding-top: var(--wcs-semantic-spacing-base);\n --wcs-textarea-padding-bottom: var(--wcs-semantic-spacing-base);\n --wcs-internal-textarea-padding-left: var(--wcs-textarea-padding-left, var(--wcs-semantic-spacing-large));\n --wcs-internal-textarea-padding-right: var(--wcs-textarea-padding-right, var(--wcs-semantic-spacing-large));\n\n --wcs-textarea-min-height: var(--wcs-semantic-size-m);\n --wcs-internal-textarea-max-height: var(--wcs-textarea-max-height, unset);\n\n --wcs-textarea-background-color: var(--wcs-semantic-color-background-control-default);\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--wcs-textarea-gap);\n width: 100%;\n border-radius: var(--wcs-internal-textarea-border-radius-left) var(--wcs-internal-textarea-border-radius-right) var(--wcs-internal-textarea-border-radius-right) var(--wcs-internal-textarea-border-radius-left);\n background-color: var(--wcs-textarea-background-color);\n outline: var(--wcs-textarea-border-style-default) var(--wcs-textarea-border-width) var(--wcs-textarea-border-color-default);\n outline-offset: calc(-1 * var(--wcs-textarea-border-width));\n background-clip: padding-box;\n\n box-sizing: border-box;\n\n textarea {\n box-sizing: border-box;\n font-family: inherit;\n overflow: auto;\n flex: 1;\n width: 100%;\n min-height: var(--wcs-textarea-min-height);\n max-height: var(--wcs-internal-textarea-max-height);\n background-color: transparent;\n color: var(--wcs-textarea-value-color);\n font-weight: var(--wcs-textarea-value-font-weight) !important;\n border: none;\n padding-top: var(--wcs-textarea-padding-top);\n padding-bottom: var(--wcs-textarea-padding-bottom);\n padding-left: var(--wcs-internal-textarea-padding-left);\n padding-right: var(--wcs-internal-textarea-padding-right);\n font-size: 1rem;\n line-height: 1.5;\n\n &::placeholder {\n @include placeholder(var(--wcs-textarea-placeholder-color), var(--wcs-textarea-placeholder-font-weight), var(--wcs-textarea-placeholder-font-style));\n }\n }\n\n textarea:focus {\n box-shadow: none;\n outline: 0;\n }\n\n wcs-mat-icon {\n margin-left: var(--wcs-internal-textarea-padding-left);\n color: var(--wcs-textarea-icon-color-default);\n }\n}\n\n:host([disabled]) {\n --wcs-textarea-background-color: var(--wcs-semantic-color-background-control-disabled);\n outline: var(--wcs-textarea-border-style-default) var(--wcs-textarea-border-width) var(--wcs-textarea-border-color-disabled);\n\n textarea {\n color: var(--wcs-textarea-text-color-disabled);\n cursor: not-allowed;\n\n &::placeholder {\n color: var(--wcs-textarea-text-color-disabled);\n }\n }\n\n wcs-mat-icon {\n color: var(--wcs-textarea-icon-color-disabled);\n }\n}\n\n:host([icon]) {\n textarea {\n padding-left: 0;\n }\n}\n\n:host([state=error]) {\n outline-color: var(--wcs-textarea-border-color-error) !important;\n}\n\n:host(:focus-within) {\n outline: var(--wcs-textarea-border-style-focus) var(--wcs-textarea-border-width-focus) var(--wcs-textarea-border-color-focus);\n outline-offset: calc(var(--wcs-textarea-border-width-focus) * -1);\n\n wcs-mat-icon {\n color: var(--wcs-textarea-icon-color-focus);\n }\n}\n","import {\n Component,\n ComponentInterface,\n Method,\n Prop,\n Watch,\n h,\n Host,\n EventEmitter,\n Element,\n Event,\n Build,\n readTask\n} from '@stencil/core';\nimport {\n debounceEvent,\n inheritAriaAttributes,\n inheritAttributes,\n raf,\n setOrRemoveAttribute\n} from '../../utils/helpers';\nimport { \n TextareaChangeEventDetail,\n WcsTextareaInputMode, \n WcsTextareaEnterKeyHint, \n WcsTextareaResize, \n WcsTextareaInputState,\n WcsTextareaWrap\n} from './textarea-interface';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst TEXTAREA_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * Mainly inspired from Ionic Textarea Component.\n * \n * ## Accessibility guidelines 💡\n * > - If you use wcs-textarea outside a wcs-form-field, you have to manage the label and the error message yourself.\n * > You can use the `aria-label` attribute to provide a label for screen readers but adds no visual label.\n *\n * @cssprop --wcs-textarea-icon-color-default - Default icon color whe the textarea is not focused\n * @cssprop --wcs-textarea-icon-color-focus - Icon color when the textarea is focused \n * @cssprop --wcs-textarea-icon-color-disabled - Icon color when the textarea is disabled\n * \n * @cssprop --wcs-textarea-background-color - Background color of the textarea\n *\n * @cssprop --wcs-textarea-border-radius-left - Border radius of the left side of the textarea\n * @cssprop --wcs-textarea-border-radius-right - Border radius of the right side of the textarea\n * \n * @cssprop --wcs-textarea-border-width - Border width of the textarea when not focused\n * @cssprop --wcs-textarea-border-width-focus - Border width of the textarea when focused\n * \n * @cssprop --wcs-textarea-border-color-default - Default border color of the textarea when not focused\n * @cssprop --wcs-textarea-border-color-disabled - Border color of the textarea when disabled\n * @cssprop --wcs-textarea-border-color-error - Border color of the textarea when in error state\n * @cssprop --wcs-textarea-border-color-focus - Border color of the textarea when focused\n * \n * @cssprop --wcs-textarea-value-color - Color of the value when the textarea is not focused\n * @cssprop --wcs-textarea-value-font-weight - Font weight of the textarea value\n * \n * @cssprop --wcs-textarea-placeholder-color - Color of the textarea placeholder\n * @cssprop --wcs-textarea-placeholder-font-weight - Font weight of the textarea placeholder\n * @cssprop --wcs-textarea-placeholder-font-style - Font style of the textarea placeholder\n * \n * @cssprop --wcs-textarea-text-color-disabled - Color of the value when the textarea is disabled\n * \n * @cssprop --wcs-textarea-border-style-default - Border style default of the textarea when not focused\n * @cssprop --wcs-textarea-border-style-error - Border style default of the textarea in error state\n * @cssprop --wcs-textarea-border-style-focus - Border style default of the textarea when focused\n * \n * @cssprop --wcs-textarea-min-height - Min height of the textarea component\n * @cssprop --wcs-textarea-max-height - Max height of the textarea component\n * \n * @cssprop --wcs-textarea-padding-top - Padding top of the textarea\n * @cssprop --wcs-textarea-padding-bottom - Padding bottom of the textarea\n * @cssprop --wcs-textarea-padding-left - Padding left of the textarea\n * @cssprop --wcs-textarea-padding-right - Padding right of the textarea\n * \n * @cssprop --wcs-textarea-gap - Gap between textarea and icon (prefix/suffix)\n */\n@Component({\n tag: 'wcs-textarea',\n styleUrl: 'textarea.scss',\n shadow: {\n delegatesFocus: true\n },\n})\nexport class Textarea implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeInput?: HTMLTextAreaElement;\n private inputId = `wcs-textarea-${textareaIds++}`;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /**\n * This is required for a WebKit bug which requires us to\n * blur and focus an input to properly focus the input in\n * an item with delegatesFocus. It will no longer be needed\n * with iOS 14.\n *\n * @internal\n */\n @Prop() fireFocusEvents: boolean = true;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalize = 'none';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus: boolean = false;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `wcsInput` event after each keystroke.\n * This also impacts form bindings such as `ngModel` or `v-model`.\n */\n @Prop() debounce = 0;\n\n @Watch('debounce')\n protected debounceChanged() {\n this.wcsInput = debounceEvent(this.wcsInput, this.debounce);\n }\n\n /**\n * If `true`, the user cannot interact with the textarea.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Name of the material icon to add to the input\n */\n @Prop() icon: string;\n\n /**\n * A hint to the browser for which keyboard to display.\n */\n @Prop() inputmode?: WcsTextareaInputMode;\n\n /**\n * A hint to the browser for which enter key to display.\n */\n @Prop() enterkeyhint?: WcsTextareaEnterKeyHint;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop({ reflect: true }) required: boolean = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n\n /**\n * Specifies the state of the input. By default the input is in an initial state but you can set it to 'error' state if the data given by the user is not valid.\n */\n @Prop({reflect: true}) state: WcsTextareaInputState = 'initial';\n\n /**\n * The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. \n * Note : at the moment, modifying the width is only possible if you add some custom CSS to the component,\n * for example by overriding the `width` CSS property. See the Resize section for an example on how to do it.\n */\n @Prop() cols?: number;\n\n /**\n * The number of visible text lines for the control.\n */\n @Prop() rows?: number;\n\n /**\n * Indicates how the control wraps text.\n */\n @Prop() wrap?: WcsTextareaWrap;\n\n /**\n * If `true`, the element height will increase based on the value.\n */\n @Prop({ reflect: true }) autoGrow: boolean = false;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n /**\n * Indicates how the textarea should be resizable. \n * Note : at the moment horizontal resizing is only possible if you add custom CSS to the component,\n * see the Resize section for an example.\n */\n @Prop({reflect: true}) resize?: WcsTextareaResize;\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n if (nativeInput && nativeInput.value !== value) {\n nativeInput.value = value;\n }\n this.runAutoGrow();\n }\n\n /**\n * Emitted when the input value has changed.- See https://developer.mozilla.org/en-US/docs/Web/Events/change\n */\n @Event() wcsChange!: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred. See https://developer.mozilla.org/en-US/docs/Web/Events/input\n */\n @Event() wcsInput!: EventEmitter<KeyboardEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('wcsInputDidLoad', {\n detail: this.el\n }));\n }\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('wcsInputDidUnload', {\n detail: this.el\n }));\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, TEXTAREA_INHERITED_ATTRS)\n };\n }\n\n componentDidLoad() {\n raf(() => this.runAutoGrow());\n }\n\n private runAutoGrow() {\n const nativeInput = this.nativeInput;\n if (nativeInput && this.autoGrow) {\n readTask(() => {\n nativeInput.style.height = 'auto';\n nativeInput.style.height = nativeInput.scrollHeight + 'px';\n });\n }\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeInput, attr, value);\n }\n\n /**\n * This method make the textarea automatically adopt the size of the content without a scroll bar\n */\n @Method()\n async fitContent() {\n raf(() => this.runAutoGrow());\n }\n\n /**\n * Sets blur on the native `textarea` in `wcs-textarea`. Use this method instead of the global\n * `textarea.blur()`.\n * @internal\n */\n @Method()\n async setBlur() {\n if (this.nativeInput) {\n this.nativeInput.blur();\n }\n }\n\n /**\n * Returns the native `<textarea>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLTextAreaElement> {\n // tslint:disable-next-line:no-non-null-assertion\n return Promise.resolve(this.nativeInput!);\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onInput = (ev: Event) => {\n if (this.nativeInput) {\n this.value = this.nativeInput.value;\n }\n this.wcsInput.emit(ev as KeyboardEvent);\n }\n \n private onChange = (_: Event) => {\n this.wcsChange.emit({value: this.nativeInput.value});\n }\n\n private onFocus = (ev: FocusEvent) => {\n if (this.fireFocusEvents) {\n this.wcsFocus.emit(ev);\n }\n }\n\n private onBlur = (ev: FocusEvent) => {\n if (this.fireFocusEvents) {\n this.wcsBlur.emit(ev);\n }\n }\n\n render() {\n const value = this.getValue();\n const style = {\n ...(this.resize && {'resize': this.resize})\n }\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n >\n {this.icon ? (<wcs-mat-icon icon={this.icon} size=\"m\"></wcs-mat-icon>) : null}\n <textarea\n class=\"native-textarea\"\n ref={el => this.nativeInput = el}\n autoCapitalize={this.autocapitalize}\n autoFocus={this.autofocus}\n enterKeyHint={this.enterkeyhint}\n inputMode={this.inputmode}\n disabled={this.disabled}\n maxLength={this.maxlength}\n minLength={this.minlength}\n name={this.name}\n placeholder={this.placeholder || ''}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n cols={this.cols}\n rows={this.rows}\n wrap={this.wrap}\n onInput={this.onInput}\n onChange={this.onChange}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n style={style}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n </Host>\n );\n }\n}\n\nlet textareaIds = 0;\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../dist/types/components";
2
+
3
+ interface WcsTooltip extends Components.WcsTooltip, HTMLElement {}
4
+ export const WcsTooltip: {
5
+ prototype: WcsTooltip;
6
+ new (): WcsTooltip;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,7 @@
1
+ import{p as t,H as e,h as n,c as i}from"./p-2bef72c7.js";import{a as r,c as o}from"./p-e1fb3625.js";import{b as a}from"./p-e803bb26.js";import{i as u}from"./p-a0f32ead.js";
2
+ /**!
3
+ * tippy.js v6.3.7
4
+ * (c) 2017-2021 atomiks
5
+ * MIT License
6
+ */var f="tippy-box";var s="tippy-content";var c="tippy-backdrop";var d="tippy-arrow";var l="tippy-svg-arrow";var v={passive:true,capture:true};var p=function t(){return document.body};function h(t,e,n){if(Array.isArray(t)){var i=t[e];return i==null?Array.isArray(n)?n[e]:n:i}return t}function m(t,e){var n={}.toString.call(t);return n.indexOf("[object")===0&&n.indexOf(e+"]")>-1}function b(t,e){return typeof t==="function"?t.apply(void 0,e):t}function y(t,e){if(e===0){return t}var n;return function(i){clearTimeout(n);n=setTimeout((function(){t(i)}),e)}}function g(t){return t.split(/\s+/).filter(Boolean)}function w(t){return[].concat(t)}function T(t,e){if(t.indexOf(e)===-1){t.push(e)}}function x(t){return t.filter((function(e,n){return t.indexOf(e)===n}))}function O(t){return t.split("-")[0]}function j(t){return[].slice.call(t)}function k(t){return Object.keys(t).reduce((function(e,n){if(t[n]!==undefined){e[n]=t[n]}return e}),{})}function P(){return document.createElement("div")}function C(t){return["Element","Fragment"].some((function(e){return m(t,e)}))}function S(t){return m(t,"NodeList")}function A(t){return m(t,"MouseEvent")}function W(t){return!!(t&&t._tippy&&t._tippy.reference===t)}function E(t){if(C(t)){return[t]}if(S(t)){return j(t)}if(Array.isArray(t)){return t}return j(document.querySelectorAll(t))}function H(t,e){t.forEach((function(t){if(t){t.style.transitionDuration=e+"ms"}}))}function U(t,e){t.forEach((function(t){if(t){t.setAttribute("data-state",e)}}))}function B(t){var e;var n=w(t),i=n[0];return i!=null&&(e=i.ownerDocument)!=null&&e.body?i.ownerDocument:document}function D(t,e){var n=e.clientX,i=e.clientY;return t.every((function(t){var e=t.popperRect,r=t.popperState,o=t.props;var a=o.interactiveBorder;var u=O(r.placement);var f=r.modifiersData.offset;if(!f){return true}var s=u==="bottom"?f.top.y:0;var c=u==="top"?f.bottom.y:0;var d=u==="right"?f.left.x:0;var l=u==="left"?f.right.x:0;var v=e.top-i+s>a;var p=i-e.bottom-c>a;var h=e.left-n+d>a;var m=n-e.right-l>a;return v||p||h||m}))}function F(t,e,n){var i=e+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(e){t[i](e,n)}))}function M(t,e){var n=e;while(n){var i;if(t.contains(n)){return true}n=n.getRootNode==null?void 0:(i=n.getRootNode())==null?void 0:i.host}return false}var L={isTouch:false};var R=0;function q(){if(L.isTouch){return}L.isTouch=true;if(window.performance){document.addEventListener("mousemove",I)}}function I(){var t=performance.now();if(t-R<20){L.isTouch=false;document.removeEventListener("mousemove",I)}R=t}function N(){var t=document.activeElement;if(W(t)){var e=t._tippy;if(t.blur&&!e.state.isVisible){t.blur()}}}function K(){document.addEventListener("touchstart",q,v);window.addEventListener("blur",N)}var $=typeof window!=="undefined"&&typeof document!=="undefined";var z=$?!!window.msCrypto:false;var J={animateFill:false,followCursor:false,inlinePositioning:false,sticky:false};var V={allowHTML:false,animation:"fade",arrow:true,content:"",inertia:false,maxWidth:350,role:"tooltip",theme:"",zIndex:9999};var G=Object.assign({appendTo:p,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:true,ignoreAttributes:false,interactive:false,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function t(){},onBeforeUpdate:function t(){},onCreate:function t(){},onDestroy:function t(){},onHidden:function t(){},onHide:function t(){},onMount:function t(){},onShow:function t(){},onShown:function t(){},onTrigger:function t(){},onUntrigger:function t(){},onClickOutside:function t(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:false,touch:true,trigger:"mouseenter focus",triggerTarget:null},J,V);var Q=Object.keys(G);var X=function t(e){var n=Object.keys(e);n.forEach((function(t){G[t]=e[t]}))};function Y(t){var e=t.plugins||[];var n=e.reduce((function(e,n){var i=n.name,r=n.defaultValue;if(i){var o;e[i]=t[i]!==undefined?t[i]:(o=G[i])!=null?o:r}return e}),{});return Object.assign({},t,n)}function Z(t,e){var n=e?Object.keys(Y(Object.assign({},G,{plugins:e}))):Q;var i=n.reduce((function(e,n){var i=(t.getAttribute("data-tippy-"+n)||"").trim();if(!i){return e}if(n==="content"){e[n]=i}else{try{e[n]=JSON.parse(i)}catch(t){e[n]=i}}return e}),{});return i}function _(t,e){var n=Object.assign({},e,{content:b(e.content,[t])},e.ignoreAttributes?{}:Z(t,e.plugins));n.aria=Object.assign({},G.aria,n.aria);n.aria={expanded:n.aria.expanded==="auto"?e.interactive:n.aria.expanded,content:n.aria.content==="auto"?e.interactive?null:"describedby":n.aria.content};return n}var tt=function t(){return"innerHTML"};function et(t,e){t[tt()]=e}function nt(t){var e=P();if(t===true){e.className=d}else{e.className=l;if(C(t)){e.appendChild(t)}else{et(e,t)}}return e}function it(t,e){if(C(e.content)){et(t,"");t.appendChild(e.content)}else if(typeof e.content!=="function"){if(e.allowHTML){et(t,e.content)}else{t.textContent=e.content}}}function rt(t){var e=t.firstElementChild;var n=j(e.children);return{box:e,content:n.find((function(t){return t.classList.contains(s)})),arrow:n.find((function(t){return t.classList.contains(d)||t.classList.contains(l)})),backdrop:n.find((function(t){return t.classList.contains(c)}))}}function ot(t){var e=P();var n=P();n.className=f;n.setAttribute("data-state","hidden");n.setAttribute("tabindex","-1");var i=P();i.className=s;i.setAttribute("data-state","hidden");it(i,t.props);e.appendChild(n);n.appendChild(i);r(t.props,t.props);function r(n,i){var r=rt(e),o=r.box,a=r.content,u=r.arrow;if(i.theme){o.setAttribute("data-theme",i.theme)}else{o.removeAttribute("data-theme")}if(typeof i.animation==="string"){o.setAttribute("data-animation",i.animation)}else{o.removeAttribute("data-animation")}if(i.inertia){o.setAttribute("data-inertia","")}else{o.removeAttribute("data-inertia")}o.style.maxWidth=typeof i.maxWidth==="number"?i.maxWidth+"px":i.maxWidth;if(i.role){o.setAttribute("role",i.role)}else{o.removeAttribute("role")}if(n.content!==i.content||n.allowHTML!==i.allowHTML){it(a,t.props)}if(i.arrow){if(!u){o.appendChild(nt(i.arrow))}else if(n.arrow!==i.arrow){o.removeChild(u);o.appendChild(nt(i.arrow))}}else if(u){o.removeChild(u)}}return{popper:e,onUpdate:r}}ot.$$tippy=true;var at=1;var ut=[];var ft=[];function st(t,e){var n=_(t,Object.assign({},G,Y(k(e))));var i;var r;var a;var u=false;var f=false;var s=false;var c=false;var d;var l;var m;var O=[];var C=y(kt,n.interactiveDebounce);var S;var W=at++;var E=null;var R=x(n.plugins);var q={isEnabled:true,isVisible:false,isDestroyed:false,isMounted:false,isShown:false};var I={id:W,reference:t,popper:P(),popperInstance:E,props:n,state:q,plugins:R,clearDelayTimeouts:Mt,setProps:Lt,setContent:Rt,show:qt,hide:It,hideWithInteractivity:Nt,enable:Dt,disable:Ft,unmount:Kt,destroy:$t};if(!n.render){return I}var N=n.render(I),K=N.popper,$=N.onUpdate;K.setAttribute("data-tippy-root","");K.id="tippy-"+I.id;I.popper=K;t._tippy=I;K._tippy=I;var J=R.map((function(t){return t.fn(I)}));var V=t.hasAttribute("aria-expanded");xt();dt();ot();st("onCreate",[I]);if(n.showOnCreate){Ut()}K.addEventListener("mouseenter",(function(){if(I.props.interactive&&I.state.isVisible){I.clearDelayTimeouts()}}));K.addEventListener("mouseleave",(function(){if(I.props.interactive&&I.props.trigger.indexOf("mouseenter")>=0){et().addEventListener("mousemove",C)}}));return I;function Q(){var t=I.props.touch;return Array.isArray(t)?t:[t,0]}function X(){return Q()[0]==="hold"}function Z(){var t;return!!((t=I.props.render)!=null&&t.$$tippy)}function tt(){return S||t}function et(){var t=tt().parentNode;return t?B(t):document}function nt(){return rt(K)}function it(t){if(I.state.isMounted&&!I.state.isVisible||L.isTouch||d&&d.type==="focus"){return 0}return h(I.props.delay,t?0:1,G.delay)}function ot(t){if(t===void 0){t=false}K.style.pointerEvents=I.props.interactive&&!t?"":"none";K.style.zIndex=""+I.props.zIndex}function st(t,e,n){if(n===void 0){n=true}J.forEach((function(n){if(n[t]){n[t].apply(n,e)}}));if(n){var i;(i=I.props)[t].apply(i,e)}}function ct(){var e=I.props.aria;if(!e.content){return}var n="aria-"+e.content;var i=K.id;var r=w(I.props.triggerTarget||t);r.forEach((function(t){var e=t.getAttribute(n);if(I.state.isVisible){t.setAttribute(n,e?e+" "+i:i)}else{var r=e&&e.replace(i,"").trim();if(r){t.setAttribute(n,r)}else{t.removeAttribute(n)}}}))}function dt(){if(V||!I.props.aria.expanded){return}var e=w(I.props.triggerTarget||t);e.forEach((function(t){if(I.props.interactive){t.setAttribute("aria-expanded",I.state.isVisible&&t===tt()?"true":"false")}else{t.removeAttribute("aria-expanded")}}))}function lt(){et().removeEventListener("mousemove",C);ut=ut.filter((function(t){return t!==C}))}function vt(e){if(L.isTouch){if(s||e.type==="mousedown"){return}}var n=e.composedPath&&e.composedPath()[0]||e.target;if(I.props.interactive&&M(K,n)){return}if(w(I.props.triggerTarget||t).some((function(t){return M(t,n)}))){if(L.isTouch){return}if(I.state.isVisible&&I.props.trigger.indexOf("click")>=0){return}}else{st("onClickOutside",[I,e])}if(I.props.hideOnClick===true){I.clearDelayTimeouts();I.hide();f=true;setTimeout((function(){f=false}));if(!I.state.isMounted){bt()}}}function pt(){s=true}function ht(){s=false}function mt(){var t=et();t.addEventListener("mousedown",vt,true);t.addEventListener("touchend",vt,v);t.addEventListener("touchstart",ht,v);t.addEventListener("touchmove",pt,v)}function bt(){var t=et();t.removeEventListener("mousedown",vt,true);t.removeEventListener("touchend",vt,v);t.removeEventListener("touchstart",ht,v);t.removeEventListener("touchmove",pt,v)}function yt(t,e){wt(t,(function(){if(!I.state.isVisible&&K.parentNode&&K.parentNode.contains(K)){e()}}))}function gt(t,e){wt(t,e)}function wt(t,e){var n=nt().box;function i(t){if(t.target===n){F(n,"remove",i);e()}}if(t===0){return e()}F(n,"remove",l);F(n,"add",i);l=i}function Tt(e,n,i){if(i===void 0){i=false}var r=w(I.props.triggerTarget||t);r.forEach((function(t){t.addEventListener(e,n,i);O.push({node:t,eventType:e,handler:n,options:i})}))}function xt(){if(X()){Tt("touchstart",jt,{passive:true});Tt("touchend",Pt,{passive:true})}g(I.props.trigger).forEach((function(t){if(t==="manual"){return}Tt(t,jt);switch(t){case"mouseenter":Tt("mouseleave",Pt);break;case"focus":Tt(z?"focusout":"blur",Ct);break;case"focusin":Tt("focusout",Ct);break}}))}function Ot(){O.forEach((function(t){var e=t.node,n=t.eventType,i=t.handler,r=t.options;e.removeEventListener(n,i,r)}));O=[]}function jt(t){var e;var n=false;if(!I.state.isEnabled||St(t)||f){return}var i=((e=d)==null?void 0:e.type)==="focus";d=t;S=t.currentTarget;dt();if(!I.state.isVisible&&A(t)){ut.forEach((function(e){return e(t)}))}if(t.type==="click"&&(I.props.trigger.indexOf("mouseenter")<0||u)&&I.props.hideOnClick!==false&&I.state.isVisible){n=true}else{Ut(t)}if(t.type==="click"){u=!n}if(n&&!i){Bt(t)}}function kt(t){var e=t.target;var i=tt().contains(e)||K.contains(e);if(t.type==="mousemove"&&i){return}var r=Ht().concat(K).map((function(t){var e;var i=t._tippy;var r=(e=i.popperInstance)==null?void 0:e.state;if(r){return{popperRect:t.getBoundingClientRect(),popperState:r,props:n}}return null})).filter(Boolean);if(D(r,t)){lt();Bt(t)}}function Pt(t){var e=St(t)||I.props.trigger.indexOf("click")>=0&&u;if(e){return}if(I.props.interactive){I.hideWithInteractivity(t);return}Bt(t)}function Ct(t){if(I.props.trigger.indexOf("focusin")<0&&t.target!==tt()){return}if(I.props.interactive&&t.relatedTarget&&K.contains(t.relatedTarget)){return}Bt(t)}function St(t){return L.isTouch?X()!==t.type.indexOf("touch")>=0:false}function At(){Wt();var e=I.props,n=e.popperOptions,i=e.placement,r=e.offset,a=e.getReferenceClientRect,u=e.moveTransition;var f=Z()?rt(K).arrow:null;var s=a?{getBoundingClientRect:a,contextElement:a.contextElement||tt()}:t;var c={name:"$$tippy",enabled:true,phase:"beforeWrite",requires:["computeStyles"],fn:function t(e){var n=e.state;if(Z()){var i=nt(),r=i.box;["placement","reference-hidden","escaped"].forEach((function(t){if(t==="placement"){r.setAttribute("data-placement",n.placement)}else{if(n.attributes.popper["data-popper-"+t]){r.setAttribute("data-"+t,"")}else{r.removeAttribute("data-"+t)}}}));n.attributes.popper={}}}};var d=[{name:"offset",options:{offset:r}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!u}},c];if(Z()&&f){d.push({name:"arrow",options:{element:f,padding:3}})}d.push.apply(d,(n==null?void 0:n.modifiers)||[]);I.popperInstance=o(s,K,Object.assign({},n,{placement:i,onFirstUpdate:m,modifiers:d}))}function Wt(){if(I.popperInstance){I.popperInstance.destroy();I.popperInstance=null}}function Et(){var t=I.props.appendTo;var e;var n=tt();if(I.props.interactive&&t===p||t==="parent"){e=n.parentNode}else{e=b(t,[n])}if(!e.contains(K)){e.appendChild(K)}I.state.isMounted=true;At()}function Ht(){return j(K.querySelectorAll("[data-tippy-root]"))}function Ut(t){I.clearDelayTimeouts();if(t){st("onTrigger",[I,t])}mt();var e=it(true);var n=Q(),r=n[0],o=n[1];if(L.isTouch&&r==="hold"&&o){e=o}if(e){i=setTimeout((function(){I.show()}),e)}else{I.show()}}function Bt(t){I.clearDelayTimeouts();st("onUntrigger",[I,t]);if(!I.state.isVisible){bt();return}if(I.props.trigger.indexOf("mouseenter")>=0&&I.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(t.type)>=0&&u){return}var e=it(false);if(e){r=setTimeout((function(){if(I.state.isVisible){I.hide()}}),e)}else{a=requestAnimationFrame((function(){I.hide()}))}}function Dt(){I.state.isEnabled=true}function Ft(){I.hide();I.state.isEnabled=false}function Mt(){clearTimeout(i);clearTimeout(r);cancelAnimationFrame(a)}function Lt(e){if(I.state.isDestroyed){return}st("onBeforeUpdate",[I,e]);Ot();var n=I.props;var i=_(t,Object.assign({},n,k(e),{ignoreAttributes:true}));I.props=i;xt();if(n.interactiveDebounce!==i.interactiveDebounce){lt();C=y(kt,i.interactiveDebounce)}if(n.triggerTarget&&!i.triggerTarget){w(n.triggerTarget).forEach((function(t){t.removeAttribute("aria-expanded")}))}else if(i.triggerTarget){t.removeAttribute("aria-expanded")}dt();ot();if($){$(n,i)}if(I.popperInstance){At();Ht().forEach((function(t){requestAnimationFrame(t._tippy.popperInstance.forceUpdate)}))}st("onAfterUpdate",[I,e])}function Rt(t){I.setProps({content:t})}function qt(){var t=I.state.isVisible;var e=I.state.isDestroyed;var n=!I.state.isEnabled;var i=L.isTouch&&!I.props.touch;var r=h(I.props.duration,0,G.duration);if(t||e||n||i){return}if(tt().hasAttribute("disabled")){return}st("onShow",[I],false);if(I.props.onShow(I)===false){return}I.state.isVisible=true;if(Z()){K.style.visibility="visible"}ot();mt();if(!I.state.isMounted){K.style.transition="none"}if(Z()){var o=nt(),a=o.box,u=o.content;H([a,u],0)}m=function t(){var e;if(!I.state.isVisible||c){return}c=true;K.style.transition=I.props.moveTransition;if(Z()&&I.props.animation){var n=nt(),i=n.box,o=n.content;H([i,o],r);U([i,o],"visible")}ct();dt();T(ft,I);(e=I.popperInstance)==null?void 0:e.forceUpdate();st("onMount",[I]);if(I.props.animation&&Z()){gt(r,(function(){I.state.isShown=true;st("onShown",[I])}))}};Et()}function It(){var t=!I.state.isVisible;var e=I.state.isDestroyed;var n=!I.state.isEnabled;var i=h(I.props.duration,1,G.duration);if(t||e||n){return}st("onHide",[I],false);if(I.props.onHide(I)===false){return}I.state.isVisible=false;I.state.isShown=false;c=false;u=false;if(Z()){K.style.visibility="hidden"}lt();bt();ot(true);if(Z()){var r=nt(),o=r.box,a=r.content;if(I.props.animation){H([o,a],i);U([o,a],"hidden")}}ct();dt();if(I.props.animation){if(Z()){yt(i,I.unmount)}}else{I.unmount()}}function Nt(t){et().addEventListener("mousemove",C);T(ut,C);C(t)}function Kt(){if(I.state.isVisible){I.hide()}if(!I.state.isMounted){return}Wt();Ht().forEach((function(t){t._tippy.unmount()}));if(K.parentNode){K.parentNode.removeChild(K)}ft=ft.filter((function(t){return t!==I}));I.state.isMounted=false;st("onHidden",[I])}function $t(){if(I.state.isDestroyed){return}I.clearDelayTimeouts();I.unmount();Ot();delete t._tippy;I.state.isDestroyed=true;st("onDestroy",[I])}}function ct(t,e){if(e===void 0){e={}}var n=G.plugins.concat(e.plugins||[]);K();var i=Object.assign({},e,{plugins:n});var r=E(t);var o=r.reduce((function(t,e){var n=e&&st(e,i);if(n){t.push(n)}return t}),[]);return C(t)?o[0]:o}ct.defaultProps=G;ct.setDefaultProps=X;ct.currentInput=L;Object.assign({},r,{effect:function t(e){var n=e.state;var i={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,i.popper);n.styles=i;if(n.elements.arrow){Object.assign(n.elements.arrow.style,i.arrow)}}});ct.setDefaultProps({render:ot});const dt=":host{display:none}";const lt=dt;const vt=["WCS-BUTTON"];const pt=t(class t extends e{constructor(){super();this.__registerHost();this.__attachShadow();this.for=undefined;this.position="bottom";this.interactive=false;this.maxWidth=350;this.delay=0;this.duration=[300,250];this.trigger="mouseenter focus";this.theme="dark";this.content=undefined;this.appendTo=undefined}componentWillLoad(){this.forElement=document.getElementById(this.for);if(!this.forElement){console.error('[wcs-tooltip]: The element with the id provided in the "for" property does not exist');return}this.tippyInstance=ct(this.forElement,{appendTo:this.appendTo||(()=>document.body),theme:this.theme,allowHTML:true,content:this.getTooltipContentFromPropAndSlot(),maxWidth:this.maxWidth,placement:this.position,delay:this.delay,duration:this.duration,interactive:this.interactive,trigger:this.trigger,onShow:()=>this.onShow(),onHide:()=>this.onHide()})}onShow(){if(!this.forElement){return}if(this.forElement.tagName&&vt.indexOf(this.forElement.tagName)!==-1){if(u(this.forElement)){if(this.interactive){this.forElement.setAriaAttribute("aria-expanded","true")}}}}onHide(){if(!this.forElement){return}if(this.forElement.tagName&&vt.indexOf(this.forElement.tagName)!==-1){if(u(this.forElement)){if(this.interactive){this.forElement.setAriaAttribute("aria-expanded","false")}}}}async handleKeyDown(t){if(a(t)){if(this.tippyInstance.state.isShown){await this.hide()}}}getTooltipContentFromPropAndSlot(){if(this.content){return this.content+this.el.innerHTML}return this.el.innerHTML}updateProps(){var t;(t=this.tippyInstance)===null||t===void 0?void 0:t.setProps({interactive:this.interactive,placement:this.position,maxWidth:this.maxWidth,theme:this.theme,delay:this.delay,duration:this.duration,trigger:this.trigger})}updateTippyContent(){var t;(t=this.tippyInstance)===null||t===void 0?void 0:t.setProps({content:this.getTooltipContentFromPropAndSlot()})}async hide(){this.tippyInstance.hide()}async show(){this.tippyInstance.show()}async disable(){this.tippyInstance.disable()}async enable(){this.tippyInstance.enable()}disconnectedCallback(){var t;(t=this.tippyInstance)===null||t===void 0?void 0:t.destroy()}render(){return n(i,{key:"34f019e113250ce19d69186080c932f838ac5c86",role:"tooltip"},n("slot",{key:"7edce2cfc96d454177668c81d615231369600977",onSlotchange:t=>this.updateTippyContent()}))}get el(){return this}static get watchers(){return{interactive:["updateProps"],position:["updateProps"],maxWidth:["updateProps"],theme:["updateProps"],delay:["updateProps"],duration:["updateProps"],trigger:["updateProps"],content:["updateTippyContent"]}}static get style(){return lt}},[1,"wcs-tooltip",{for:[1],position:[513],interactive:[516],maxWidth:[8,"max-width"],delay:[2],duration:[2],trigger:[1],theme:[1],content:[1],appendTo:[1,"append-to"],hide:[64],show:[64],disable:[64],enable:[64]},[[8,"keydown","handleKeyDown"]],{interactive:["updateProps"],position:["updateProps"],maxWidth:["updateProps"],theme:["updateProps"],delay:["updateProps"],duration:["updateProps"],trigger:["updateProps"],content:["updateTippyContent"]}]);function ht(){if(typeof customElements==="undefined"){return}const t=["wcs-tooltip"];t.forEach((t=>{switch(t){case"wcs-tooltip":if(!customElements.get(t)){customElements.define(t,pt)}break}}))}ht();const mt=pt;const bt=ht;export{mt as WcsTooltip,bt as defineCustomElement};
7
+ //# sourceMappingURL=wcs-tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BOX_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","passive","capture","TIPPY_DEFAULT_APPEND_TO","document","body","getValueAtIndexOrReturn","value","index","defaultValue","Array","isArray","v","isType","type","str","toString","call","indexOf","invokeWithArgsOrReturn","args","apply","debounce","fn","ms","timeout","arg","clearTimeout","setTimeout","splitBySpaces","split","filter","Boolean","normalizeToArray","concat","pushIfUnique","arr","push","unique","item","getBasePlacement","placement","arrayFrom","slice","removeUndefinedProps","obj","Object","keys","reduce","acc","key","undefined","div","createElement","isElement","some","isNodeList","isMouseEvent","isReferenceElement","_tippy","reference","getArrayOfElements","querySelectorAll","setTransitionDuration","els","forEach","el","style","transitionDuration","setVisibilityState","state","setAttribute","getOwnerDocument","elementOrElements","_element$ownerDocumen","_normalizeToArray","element","ownerDocument","isCursorOutsideInteractiveBorder","popperTreeData","event","clientX","clientY","every","_ref","popperRect","popperState","props","interactiveBorder","basePlacement","offsetData","modifiersData","offset","topDistance","top","y","bottomDistance","bottom","leftDistance","left","x","rightDistance","right","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","updateTransitionEndListener","box","action","listener","method","actualContains","parent","child","target","_target$getRootNode","contains","getRootNode","host","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","window","performance","addEventListener","onDocumentMouseMove","now","removeEventListener","onWindowBlur","activeElement","instance","blur","isVisible","bindGlobalEventListeners","isBrowser","isIE11","msCrypto","pluginProps","animateFill","followCursor","inlinePositioning","sticky","renderProps","allowHTML","animation","arrow","content","inertia","maxWidth","role","theme","zIndex","defaultProps","assign","appendTo","aria","expanded","delay","duration","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveDebounce","moveTransition","onAfterUpdate","onBeforeUpdate","onCreate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","onClickOutside","plugins","popperOptions","render","showOnCreate","touch","trigger","triggerTarget","defaultKeys","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","plugin","name","_name","getDataAttributeProps","propKeys","valueAsString","getAttribute","trim","JSON","parse","e","evaluateProps","out","innerHTML","dangerouslySetInnerHTML","html","createArrowElement","className","appendChild","setContent","textContent","getChildren","popper","firstElementChild","boxChildren","children","find","node","classList","backdrop","onUpdate","prevProps","nextProps","_getChildren","removeAttribute","removeChild","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","lastTriggerEvent","currentTransitionEndListener","onFirstUpdate","listeners","debouncedOnMouseMove","onMouseMove","currentTarget","id","popperInstance","isEnabled","isDestroyed","isMounted","isShown","clearDelayTimeouts","setProps","show","hide","hideWithInteractivity","enable","disable","unmount","destroy","_props$render","pluginsHooks","map","hasAriaExpanded","hasAttribute","addListeners","handleAriaExpandedAttribute","handleStyles","invokeHook","scheduleShow","getDocument","getNormalizedTouchSettings","getIsCustomTouchBehavior","getIsDefaultRenderFn","_instance$props$rende","getCurrentTarget","parentNode","getDefaultTemplateChildren","getDelay","isShow","fromHide","pointerEvents","hook","shouldInvokePropsHook","pluginHooks","_instance$props","handleAriaContentAttribute","attr","nodes","currentValue","nextValue","replace","cleanupInteractiveMouseListeners","onDocumentPress","actualTarget","composedPath","removeDocumentPress","onTouchMove","onTouchStart","addDocumentPress","doc","onTransitionedOut","callback","onTransitionEnd","onTransitionedIn","on","eventType","handler","options","onMouseLeave","onBlurOrFocusOut","removeListeners","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","getNestedPopperTree","_instance$popperInsta","getBoundingClientRect","shouldBail","relatedTarget","createPopperInstance","destroyPopperInstance","_instance$props2","computedReference","contextElement","tippyModifier","enabled","phase","requires","_ref2","_getDefaultTemplateCh","attributes","modifiers","padding","adaptive","createPopper","mount","_getNormalizedTouchSe","touchValue","touchDelay","requestAnimationFrame","cancelAnimationFrame","nestedPopper","forceUpdate","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","visibility","transition","_getDefaultTemplateCh2","_instance$popperInsta2","_getDefaultTemplateCh3","_box","_content","isAlreadyHidden","_getDefaultTemplateCh4","i","tippy","targets","optionalProps","elements","instances","applyStyles","effect","initialStyles","position","strategy","margin","styles","tooltipCss","WcsTooltipStyle0","DELEGATED_ARIA_COMPONENTS","Tooltip","proxyCustomElement","H","componentWillLoad","this","forElement","getElementById","for","console","error","tippyInstance","getTooltipContentFromPropAndSlot","tagName","isMutableAriaAttribute","setAriaAttribute","handleKeyDown","ev","isEscapeKey","updateProps","_a","updateTippyContent","disconnectedCallback","h","Host","onSlotchange","_"],"sources":["node_modules/tippy.js/dist/tippy.esm.js","src/components/tooltip/tooltip.scss?tag=wcs-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\nimport { createPopper, applyStyles } from '@popperjs/core';\n\nvar ROUND_ARROW = '<svg width=\"16\" height=\"6\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z\"></svg>';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\nfunction isElement(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a <template> have an ownerDocument with no reference to the body\n\n\n return element != null && (_element$ownerDocumen = element.ownerDocument) != null && _element$ownerDocumen.body ? element.ownerDocument : document;\n}\nfunction isCursorOutsideInteractiveBorder(popperTreeData, event) {\n var clientX = event.clientX,\n clientY = event.clientY;\n return popperTreeData.every(function (_ref) {\n var popperRect = _ref.popperRect,\n popperState = _ref.popperState,\n props = _ref.props;\n var interactiveBorder = props.interactiveBorder;\n var basePlacement = getBasePlacement(popperState.placement);\n var offsetData = popperState.modifiersData.offset;\n\n if (!offsetData) {\n return true;\n }\n\n var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;\n var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;\n var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;\n var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;\n var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;\n var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;\n var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;\n var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n });\n}\nfunction updateTransitionEndListener(box, action, listener) {\n var method = action + \"EventListener\"; // some browsers apparently support `transition` (unprefixed) but only fire\n // `webkitTransitionEnd`...\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n box[method](event, listener);\n });\n}\n/**\n * Compared to xxx.contains, this function works for dom structures with shadow\n * dom\n */\n\nfunction actualContains(parent, child) {\n var target = child;\n\n while (target) {\n var _target$getRootNode;\n\n if (parent.contains(target)) {\n return true;\n }\n\n target = target.getRootNode == null ? void 0 : (_target$getRootNode = target.getRootNode()) == null ? void 0 : _target$getRootNode.host;\n }\n\n return false;\n}\n\nvar currentInput = {\n isTouch: false\n};\nvar lastMouseMoveTime = 0;\n/**\n * When a `touchstart` event is fired, it's assumed the user is using touch\n * input. We'll bind a `mousemove` event listener to listen for mouse input in\n * the future. This way, the `isTouch` property is fully dynamic and will handle\n * hybrid devices that use a mix of touch + mouse input.\n */\n\nfunction onDocumentTouchStart() {\n if (currentInput.isTouch) {\n return;\n }\n\n currentInput.isTouch = true;\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\n/**\n * When two `mousemove` event are fired consecutively within 20ms, it's assumed\n * the user is using mouse input again. `mousemove` can fire on touch devices as\n * well, but very rarely that quickly.\n */\n\nfunction onDocumentMouseMove() {\n var now = performance.now();\n\n if (now - lastMouseMoveTime < 20) {\n currentInput.isTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n }\n\n lastMouseMoveTime = now;\n}\n/**\n * When an element is in focus and has a tippy, leaving the tab/window and\n * returning causes it to show again. For mouse users this is unexpected, but\n * for keyboard use it makes sense.\n * TODO: find a better technique to solve this problem\n */\n\nfunction onWindowBlur() {\n var activeElement = document.activeElement;\n\n if (isReferenceElement(activeElement)) {\n var instance = activeElement._tippy;\n\n if (activeElement.blur && !instance.state.isVisible) {\n activeElement.blur();\n }\n }\n}\nfunction bindGlobalEventListeners() {\n document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);\n window.addEventListener('blur', onWindowBlur);\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar isIE11 = isBrowser ? // @ts-ignore\n!!window.msCrypto : false;\n\nfunction createMemoryLeakWarning(method) {\n var txt = method === 'destroy' ? 'n already-' : ' ';\n return [method + \"() was called on a\" + txt + \"destroyed instance. This is a no-op but\", 'indicates a potential memory leak.'].join(' ');\n}\nfunction clean(value) {\n var spacesAndTabs = /[ \\t]{2,}/g;\n var lineStartWithSpaces = /^[ \\t]*/gm;\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n}\n\nfunction getDevMessage(message) {\n return clean(\"\\n %ctippy.js\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development-only message. It will be removed in production.\\n \");\n}\n\nfunction getFormattedMessage(message) {\n return [getDevMessage(message), // title\n 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message\n 'line-height: 1.5', // footer\n 'color: #a6a095;'];\n} // Assume warnings and errors never have the same message\n\nvar visitedMessages;\n\nif (process.env.NODE_ENV !== \"production\") {\n resetVisitedMessages();\n}\n\nfunction resetVisitedMessages() {\n visitedMessages = new Set();\n}\nfunction warnWhen(condition, message) {\n if (condition && !visitedMessages.has(message)) {\n var _console;\n\n visitedMessages.add(message);\n\n (_console = console).warn.apply(_console, getFormattedMessage(message));\n }\n}\nfunction errorWhen(condition, message) {\n if (condition && !visitedMessages.has(message)) {\n var _console2;\n\n visitedMessages.add(message);\n\n (_console2 = console).error.apply(_console2, getFormattedMessage(message));\n }\n}\nfunction validateTargets(targets) {\n var didPassFalsyValue = !targets;\n var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;\n errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));\n errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));\n}\n\nvar pluginProps = {\n animateFill: false,\n followCursor: false,\n inlinePositioning: false,\n sticky: false\n};\nvar renderProps = {\n allowHTML: false,\n animation: 'fade',\n arrow: true,\n content: '',\n inertia: false,\n maxWidth: 350,\n role: 'tooltip',\n theme: '',\n zIndex: 9999\n};\nvar defaultProps = Object.assign({\n appendTo: TIPPY_DEFAULT_APPEND_TO,\n aria: {\n content: 'auto',\n expanded: 'auto'\n },\n delay: 0,\n duration: [300, 250],\n getReferenceClientRect: null,\n hideOnClick: true,\n ignoreAttributes: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n moveTransition: '',\n offset: [0, 10],\n onAfterUpdate: function onAfterUpdate() {},\n onBeforeUpdate: function onBeforeUpdate() {},\n onCreate: function onCreate() {},\n onDestroy: function onDestroy() {},\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n onTrigger: function onTrigger() {},\n onUntrigger: function onUntrigger() {},\n onClickOutside: function onClickOutside() {},\n placement: 'top',\n plugins: [],\n popperOptions: {},\n render: null,\n showOnCreate: false,\n touch: true,\n trigger: 'mouseenter focus',\n triggerTarget: null\n}, pluginProps, renderProps);\nvar defaultKeys = Object.keys(defaultProps);\nvar setDefaultProps = function setDefaultProps(partialProps) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n validateProps(partialProps, []);\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (key) {\n defaultProps[key] = partialProps[key];\n });\n};\nfunction getExtendedPassedProps(passedProps) {\n var plugins = passedProps.plugins || [];\n var pluginProps = plugins.reduce(function (acc, plugin) {\n var name = plugin.name,\n defaultValue = plugin.defaultValue;\n\n if (name) {\n var _name;\n\n acc[name] = passedProps[name] !== undefined ? passedProps[name] : (_name = defaultProps[name]) != null ? _name : defaultValue;\n }\n\n return acc;\n }, {});\n return Object.assign({}, passedProps, pluginProps);\n}\nfunction getDataAttributeProps(reference, plugins) {\n var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, defaultProps, {\n plugins: plugins\n }))) : defaultKeys;\n var props = propKeys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute(\"data-tippy-\" + key) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else {\n try {\n acc[key] = JSON.parse(valueAsString);\n } catch (e) {\n acc[key] = valueAsString;\n }\n }\n\n return acc;\n }, {});\n return props;\n}\nfunction evaluateProps(reference, props) {\n var out = Object.assign({}, props, {\n content: invokeWithArgsOrReturn(props.content, [reference])\n }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));\n out.aria = Object.assign({}, defaultProps.aria, out.aria);\n out.aria = {\n expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,\n content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content\n };\n return out;\n}\nfunction validateProps(partialProps, plugins) {\n if (partialProps === void 0) {\n partialProps = {};\n }\n\n if (plugins === void 0) {\n plugins = [];\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (prop) {\n var nonPluginProps = removeProperties(defaultProps, Object.keys(pluginProps));\n var didPassUnknownProp = !hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`\n\n if (didPassUnknownProp) {\n didPassUnknownProp = plugins.filter(function (plugin) {\n return plugin.name === prop;\n }).length === 0;\n }\n\n warnWhen(didPassUnknownProp, [\"`\" + prop + \"`\", \"is not a valid prop. You may have spelled it incorrectly, or if it's\", 'a plugin, forgot to pass it in an array as props.plugins.', '\\n\\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));\n });\n}\n\nvar innerHTML = function innerHTML() {\n return 'innerHTML';\n};\n\nfunction dangerouslySetInnerHTML(element, html) {\n element[innerHTML()] = html;\n}\n\nfunction createArrowElement(value) {\n var arrow = div();\n\n if (value === true) {\n arrow.className = ARROW_CLASS;\n } else {\n arrow.className = SVG_ARROW_CLASS;\n\n if (isElement(value)) {\n arrow.appendChild(value);\n } else {\n dangerouslySetInnerHTML(arrow, value);\n }\n }\n\n return arrow;\n}\n\nfunction setContent(content, props) {\n if (isElement(props.content)) {\n dangerouslySetInnerHTML(content, '');\n content.appendChild(props.content);\n } else if (typeof props.content !== 'function') {\n if (props.allowHTML) {\n dangerouslySetInnerHTML(content, props.content);\n } else {\n content.textContent = props.content;\n }\n }\n}\nfunction getChildren(popper) {\n var box = popper.firstElementChild;\n var boxChildren = arrayFrom(box.children);\n return {\n box: box,\n content: boxChildren.find(function (node) {\n return node.classList.contains(CONTENT_CLASS);\n }),\n arrow: boxChildren.find(function (node) {\n return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);\n }),\n backdrop: boxChildren.find(function (node) {\n return node.classList.contains(BACKDROP_CLASS);\n })\n };\n}\nfunction render(instance) {\n var popper = div();\n var box = div();\n box.className = BOX_CLASS;\n box.setAttribute('data-state', 'hidden');\n box.setAttribute('tabindex', '-1');\n var content = div();\n content.className = CONTENT_CLASS;\n content.setAttribute('data-state', 'hidden');\n setContent(content, instance.props);\n popper.appendChild(box);\n box.appendChild(content);\n onUpdate(instance.props, instance.props);\n\n function onUpdate(prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n box = _getChildren.box,\n content = _getChildren.content,\n arrow = _getChildren.arrow;\n\n if (nextProps.theme) {\n box.setAttribute('data-theme', nextProps.theme);\n } else {\n box.removeAttribute('data-theme');\n }\n\n if (typeof nextProps.animation === 'string') {\n box.setAttribute('data-animation', nextProps.animation);\n } else {\n box.removeAttribute('data-animation');\n }\n\n if (nextProps.inertia) {\n box.setAttribute('data-inertia', '');\n } else {\n box.removeAttribute('data-inertia');\n }\n\n box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + \"px\" : nextProps.maxWidth;\n\n if (nextProps.role) {\n box.setAttribute('role', nextProps.role);\n } else {\n box.removeAttribute('role');\n }\n\n if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {\n setContent(content, instance.props);\n }\n\n if (nextProps.arrow) {\n if (!arrow) {\n box.appendChild(createArrowElement(nextProps.arrow));\n } else if (prevProps.arrow !== nextProps.arrow) {\n box.removeChild(arrow);\n box.appendChild(createArrowElement(nextProps.arrow));\n }\n } else if (arrow) {\n box.removeChild(arrow);\n }\n }\n\n return {\n popper: popper,\n onUpdate: onUpdate\n };\n} // Runtime check to identify if the render function is the default one; this\n// way we can apply default CSS transitions logic and it can be tree-shaken away\n\nrender.$$tippy = true;\n\nvar idCounter = 1;\nvar mouseMoveListeners = []; // Used by `hideAll()`\n\nvar mountedInstances = [];\nfunction createTippy(reference, passedProps) {\n var props = evaluateProps(reference, Object.assign({}, defaultProps, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================\n // 🔒 Private members\n // ===========================================================================\n\n var showTimeout;\n var hideTimeout;\n var scheduleHideAnimationFrame;\n var isVisibleFromClick = false;\n var didHideDueToDocumentMouseDown = false;\n var didTouchMove = false;\n var ignoreOnFirstUpdate = false;\n var lastTriggerEvent;\n var currentTransitionEndListener;\n var onFirstUpdate;\n var listeners = [];\n var debouncedOnMouseMove = debounce(onMouseMove, props.interactiveDebounce);\n var currentTarget; // ===========================================================================\n // 🔑 Public members\n // ===========================================================================\n\n var id = idCounter++;\n var popperInstance = null;\n var plugins = unique(props.plugins);\n var state = {\n // Is the instance currently enabled?\n isEnabled: true,\n // Is the tippy currently showing and not transitioning out?\n isVisible: false,\n // Has the instance been destroyed?\n isDestroyed: false,\n // Is the tippy currently mounted to the DOM?\n isMounted: false,\n // Has the tippy finished transitioning in?\n isShown: false\n };\n var instance = {\n // properties\n id: id,\n reference: reference,\n popper: div(),\n popperInstance: popperInstance,\n props: props,\n state: state,\n plugins: plugins,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n setProps: setProps,\n setContent: setContent,\n show: show,\n hide: hide,\n hideWithInteractivity: hideWithInteractivity,\n enable: enable,\n disable: disable,\n unmount: unmount,\n destroy: destroy\n }; // TODO: Investigate why this early return causes a TDZ error in the tests —\n // it doesn't seem to happen in the browser\n\n /* istanbul ignore if */\n\n if (!props.render) {\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(true, 'render() function has not been supplied.');\n }\n\n return instance;\n } // ===========================================================================\n // Initial mutations\n // ===========================================================================\n\n\n var _props$render = props.render(instance),\n popper = _props$render.popper,\n onUpdate = _props$render.onUpdate;\n\n popper.setAttribute('data-tippy-root', '');\n popper.id = \"tippy-\" + instance.id;\n instance.popper = popper;\n reference._tippy = instance;\n popper._tippy = instance;\n var pluginsHooks = plugins.map(function (plugin) {\n return plugin.fn(instance);\n });\n var hasAriaExpanded = reference.hasAttribute('aria-expanded');\n addListeners();\n handleAriaExpandedAttribute();\n handleStyles();\n invokeHook('onCreate', [instance]);\n\n if (props.showOnCreate) {\n scheduleShow();\n } // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n\n\n popper.addEventListener('mouseenter', function () {\n if (instance.props.interactive && instance.state.isVisible) {\n instance.clearDelayTimeouts();\n }\n });\n popper.addEventListener('mouseleave', function () {\n if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {\n getDocument().addEventListener('mousemove', debouncedOnMouseMove);\n }\n });\n return instance; // ===========================================================================\n // 🔒 Private methods\n // ===========================================================================\n\n function getNormalizedTouchSettings() {\n var touch = instance.props.touch;\n return Array.isArray(touch) ? touch : [touch, 0];\n }\n\n function getIsCustomTouchBehavior() {\n return getNormalizedTouchSettings()[0] === 'hold';\n }\n\n function getIsDefaultRenderFn() {\n var _instance$props$rende;\n\n // @ts-ignore\n return !!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy);\n }\n\n function getCurrentTarget() {\n return currentTarget || reference;\n }\n\n function getDocument() {\n var parent = getCurrentTarget().parentNode;\n return parent ? getOwnerDocument(parent) : document;\n }\n\n function getDefaultTemplateChildren() {\n return getChildren(popper);\n }\n\n function getDelay(isShow) {\n // For touch or keyboard input, force `0` delay for UX reasons\n // Also if the instance is mounted but not visible (transitioning out),\n // ignore delay\n if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {\n return 0;\n }\n\n return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, defaultProps.delay);\n }\n\n function handleStyles(fromHide) {\n if (fromHide === void 0) {\n fromHide = false;\n }\n\n popper.style.pointerEvents = instance.props.interactive && !fromHide ? '' : 'none';\n popper.style.zIndex = \"\" + instance.props.zIndex;\n }\n\n function invokeHook(hook, args, shouldInvokePropsHook) {\n if (shouldInvokePropsHook === void 0) {\n shouldInvokePropsHook = true;\n }\n\n pluginsHooks.forEach(function (pluginHooks) {\n if (pluginHooks[hook]) {\n pluginHooks[hook].apply(pluginHooks, args);\n }\n });\n\n if (shouldInvokePropsHook) {\n var _instance$props;\n\n (_instance$props = instance.props)[hook].apply(_instance$props, args);\n }\n }\n\n function handleAriaContentAttribute() {\n var aria = instance.props.aria;\n\n if (!aria.content) {\n return;\n }\n\n var attr = \"aria-\" + aria.content;\n var id = popper.id;\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n var currentValue = node.getAttribute(attr);\n\n if (instance.state.isVisible) {\n node.setAttribute(attr, currentValue ? currentValue + \" \" + id : id);\n } else {\n var nextValue = currentValue && currentValue.replace(id, '').trim();\n\n if (nextValue) {\n node.setAttribute(attr, nextValue);\n } else {\n node.removeAttribute(attr);\n }\n }\n });\n }\n\n function handleAriaExpandedAttribute() {\n if (hasAriaExpanded || !instance.props.aria.expanded) {\n return;\n }\n\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n if (instance.props.interactive) {\n node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');\n } else {\n node.removeAttribute('aria-expanded');\n }\n });\n }\n\n function cleanupInteractiveMouseListeners() {\n getDocument().removeEventListener('mousemove', debouncedOnMouseMove);\n mouseMoveListeners = mouseMoveListeners.filter(function (listener) {\n return listener !== debouncedOnMouseMove;\n });\n }\n\n function onDocumentPress(event) {\n // Moved finger to scroll instead of an intentional tap outside\n if (currentInput.isTouch) {\n if (didTouchMove || event.type === 'mousedown') {\n return;\n }\n }\n\n var actualTarget = event.composedPath && event.composedPath()[0] || event.target; // Clicked on interactive popper\n\n if (instance.props.interactive && actualContains(popper, actualTarget)) {\n return;\n } // Clicked on the event listeners target\n\n\n if (normalizeToArray(instance.props.triggerTarget || reference).some(function (el) {\n return actualContains(el, actualTarget);\n })) {\n if (currentInput.isTouch) {\n return;\n }\n\n if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {\n return;\n }\n } else {\n invokeHook('onClickOutside', [instance, event]);\n }\n\n if (instance.props.hideOnClick === true) {\n instance.clearDelayTimeouts();\n instance.hide(); // `mousedown` event is fired right before `focus` if pressing the\n // currentTarget. This lets a tippy with `focus` trigger know that it\n // should not show\n\n didHideDueToDocumentMouseDown = true;\n setTimeout(function () {\n didHideDueToDocumentMouseDown = false;\n }); // The listener gets added in `scheduleShow()`, but this may be hiding it\n // before it shows, and hide()'s early bail-out behavior can prevent it\n // from being cleaned up\n\n if (!instance.state.isMounted) {\n removeDocumentPress();\n }\n }\n }\n\n function onTouchMove() {\n didTouchMove = true;\n }\n\n function onTouchStart() {\n didTouchMove = false;\n }\n\n function addDocumentPress() {\n var doc = getDocument();\n doc.addEventListener('mousedown', onDocumentPress, true);\n doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n }\n\n function removeDocumentPress() {\n var doc = getDocument();\n doc.removeEventListener('mousedown', onDocumentPress, true);\n doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n }\n\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {\n callback();\n }\n });\n }\n\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n\n function onTransitionEnd(duration, callback) {\n var box = getDefaultTemplateChildren().box;\n\n function listener(event) {\n if (event.target === box) {\n updateTransitionEndListener(box, 'remove', listener);\n callback();\n }\n } // Make callback synchronous if duration is 0\n // `transitionend` won't fire otherwise\n\n\n if (duration === 0) {\n return callback();\n }\n\n updateTransitionEndListener(box, 'remove', currentTransitionEndListener);\n updateTransitionEndListener(box, 'add', listener);\n currentTransitionEndListener = listener;\n }\n\n function on(eventType, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n node.addEventListener(eventType, handler, options);\n listeners.push({\n node: node,\n eventType: eventType,\n handler: handler,\n options: options\n });\n });\n }\n\n function addListeners() {\n if (getIsCustomTouchBehavior()) {\n on('touchstart', onTrigger, {\n passive: true\n });\n on('touchend', onMouseLeave, {\n passive: true\n });\n }\n\n splitBySpaces(instance.props.trigger).forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n }\n\n on(eventType, onTrigger);\n\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n\n case 'focus':\n on(isIE11 ? 'focusout' : 'blur', onBlurOrFocusOut);\n break;\n\n case 'focusin':\n on('focusout', onBlurOrFocusOut);\n break;\n }\n });\n }\n\n function removeListeners() {\n listeners.forEach(function (_ref) {\n var node = _ref.node,\n eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n node.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n function onTrigger(event) {\n var _lastTriggerEvent;\n\n var shouldScheduleClickHide = false;\n\n if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {\n return;\n }\n\n var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';\n lastTriggerEvent = event;\n currentTarget = event.currentTarget;\n handleAriaExpandedAttribute();\n\n if (!instance.state.isVisible && isMouseEvent(event)) {\n // If scrolling, `mouseenter` events can be fired if the cursor lands\n // over a new target, but `mousemove` events don't get fired. This\n // causes interactive tooltips to get stuck open until the cursor is\n // moved\n mouseMoveListeners.forEach(function (listener) {\n return listener(event);\n });\n } // Toggle show/hide when clicking click-triggered tooltips\n\n\n if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {\n shouldScheduleClickHide = true;\n } else {\n scheduleShow(event);\n }\n\n if (event.type === 'click') {\n isVisibleFromClick = !shouldScheduleClickHide;\n }\n\n if (shouldScheduleClickHide && !wasFocused) {\n scheduleHide(event);\n }\n }\n\n function onMouseMove(event) {\n var target = event.target;\n var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper.contains(target);\n\n if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {\n return;\n }\n\n var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {\n var _instance$popperInsta;\n\n var instance = popper._tippy;\n var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;\n\n if (state) {\n return {\n popperRect: popper.getBoundingClientRect(),\n popperState: state,\n props: props\n };\n }\n\n return null;\n }).filter(Boolean);\n\n if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {\n cleanupInteractiveMouseListeners();\n scheduleHide(event);\n }\n }\n\n function onMouseLeave(event) {\n var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;\n\n if (shouldBail) {\n return;\n }\n\n if (instance.props.interactive) {\n instance.hideWithInteractivity(event);\n return;\n }\n\n scheduleHide(event);\n }\n\n function onBlurOrFocusOut(event) {\n if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {\n return;\n } // If focus was moved to within the popper\n\n\n if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {\n return;\n }\n\n scheduleHide(event);\n }\n\n function isEventListenerStopped(event) {\n return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;\n }\n\n function createPopperInstance() {\n destroyPopperInstance();\n var _instance$props2 = instance.props,\n popperOptions = _instance$props2.popperOptions,\n placement = _instance$props2.placement,\n offset = _instance$props2.offset,\n getReferenceClientRect = _instance$props2.getReferenceClientRect,\n moveTransition = _instance$props2.moveTransition;\n var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;\n var computedReference = getReferenceClientRect ? {\n getBoundingClientRect: getReferenceClientRect,\n contextElement: getReferenceClientRect.contextElement || getCurrentTarget()\n } : reference;\n var tippyModifier = {\n name: '$$tippy',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: function fn(_ref2) {\n var state = _ref2.state;\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh.box;\n\n ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {\n if (attr === 'placement') {\n box.setAttribute('data-placement', state.placement);\n } else {\n if (state.attributes.popper[\"data-popper-\" + attr]) {\n box.setAttribute(\"data-\" + attr, '');\n } else {\n box.removeAttribute(\"data-\" + attr);\n }\n }\n });\n state.attributes.popper = {};\n }\n }\n };\n var modifiers = [{\n name: 'offset',\n options: {\n offset: offset\n }\n }, {\n name: 'preventOverflow',\n options: {\n padding: {\n top: 2,\n bottom: 2,\n left: 5,\n right: 5\n }\n }\n }, {\n name: 'flip',\n options: {\n padding: 5\n }\n }, {\n name: 'computeStyles',\n options: {\n adaptive: !moveTransition\n }\n }, tippyModifier];\n\n if (getIsDefaultRenderFn() && arrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n element: arrow,\n padding: 3\n }\n });\n }\n\n modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);\n instance.popperInstance = createPopper(computedReference, popper, Object.assign({}, popperOptions, {\n placement: placement,\n onFirstUpdate: onFirstUpdate,\n modifiers: modifiers\n }));\n }\n\n function destroyPopperInstance() {\n if (instance.popperInstance) {\n instance.popperInstance.destroy();\n instance.popperInstance = null;\n }\n }\n\n function mount() {\n var appendTo = instance.props.appendTo;\n var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so\n // it's directly after the reference element so the elements inside the\n // tippy can be tabbed to\n // If there are clipping issues, the user can specify a different appendTo\n // and ensure focus management is handled correctly manually\n\n var node = getCurrentTarget();\n\n if (instance.props.interactive && appendTo === TIPPY_DEFAULT_APPEND_TO || appendTo === 'parent') {\n parentNode = node.parentNode;\n } else {\n parentNode = invokeWithArgsOrReturn(appendTo, [node]);\n } // The popper element needs to exist on the DOM before its position can be\n // updated as Popper needs to read its dimensions\n\n\n if (!parentNode.contains(popper)) {\n parentNode.appendChild(popper);\n }\n\n instance.state.isMounted = true;\n createPopperInstance();\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n // Accessibility check\n warnWhen(instance.props.interactive && appendTo === defaultProps.appendTo && node.nextElementSibling !== popper, ['Interactive tippy element may not be accessible via keyboard', 'navigation because it is not directly after the reference element', 'in the DOM source order.', '\\n\\n', 'Using a wrapper <div> or <span> tag around the reference element', 'solves this by creating a new parentNode context.', '\\n\\n', 'Specifying `appendTo: document.body` silences this warning, but it', 'assumes you are using a focus management solution to handle', 'keyboard navigation.', '\\n\\n', 'See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity'].join(' '));\n }\n }\n\n function getNestedPopperTree() {\n return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));\n }\n\n function scheduleShow(event) {\n instance.clearDelayTimeouts();\n\n if (event) {\n invokeHook('onTrigger', [instance, event]);\n }\n\n addDocumentPress();\n var delay = getDelay(true);\n\n var _getNormalizedTouchSe = getNormalizedTouchSettings(),\n touchValue = _getNormalizedTouchSe[0],\n touchDelay = _getNormalizedTouchSe[1];\n\n if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {\n delay = touchDelay;\n }\n\n if (delay) {\n showTimeout = setTimeout(function () {\n instance.show();\n }, delay);\n } else {\n instance.show();\n }\n }\n\n function scheduleHide(event) {\n instance.clearDelayTimeouts();\n invokeHook('onUntrigger', [instance, event]);\n\n if (!instance.state.isVisible) {\n removeDocumentPress();\n return;\n } // For interactive tippies, scheduleHide is added to a document.body handler\n // from onMouseLeave so must intercept scheduled hides from mousemove/leave\n // events when trigger contains mouseenter and click, and the tip is\n // currently shown as a result of a click.\n\n\n if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {\n return;\n }\n\n var delay = getDelay(false);\n\n if (delay) {\n hideTimeout = setTimeout(function () {\n if (instance.state.isVisible) {\n instance.hide();\n }\n }, delay);\n } else {\n // Fixes a `transitionend` problem when it fires 1 frame too\n // late sometimes, we don't want hide() to be called.\n scheduleHideAnimationFrame = requestAnimationFrame(function () {\n instance.hide();\n });\n }\n } // ===========================================================================\n // 🔑 Public methods\n // ===========================================================================\n\n\n function enable() {\n instance.state.isEnabled = true;\n }\n\n function disable() {\n // Disabling the instance should also hide it\n // https://github.com/atomiks/tippy.js-react/issues/106\n instance.hide();\n instance.state.isEnabled = false;\n }\n\n function clearDelayTimeouts() {\n clearTimeout(showTimeout);\n clearTimeout(hideTimeout);\n cancelAnimationFrame(scheduleHideAnimationFrame);\n }\n\n function setProps(partialProps) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('setProps'));\n }\n\n if (instance.state.isDestroyed) {\n return;\n }\n\n invokeHook('onBeforeUpdate', [instance, partialProps]);\n removeListeners();\n var prevProps = instance.props;\n var nextProps = evaluateProps(reference, Object.assign({}, prevProps, removeUndefinedProps(partialProps), {\n ignoreAttributes: true\n }));\n instance.props = nextProps;\n addListeners();\n\n if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {\n cleanupInteractiveMouseListeners();\n debouncedOnMouseMove = debounce(onMouseMove, nextProps.interactiveDebounce);\n } // Ensure stale aria-expanded attributes are removed\n\n\n if (prevProps.triggerTarget && !nextProps.triggerTarget) {\n normalizeToArray(prevProps.triggerTarget).forEach(function (node) {\n node.removeAttribute('aria-expanded');\n });\n } else if (nextProps.triggerTarget) {\n reference.removeAttribute('aria-expanded');\n }\n\n handleAriaExpandedAttribute();\n handleStyles();\n\n if (onUpdate) {\n onUpdate(prevProps, nextProps);\n }\n\n if (instance.popperInstance) {\n createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,\n // and the nested ones get re-rendered first.\n // https://github.com/atomiks/tippyjs-react/issues/177\n // TODO: find a cleaner / more efficient solution(!)\n\n getNestedPopperTree().forEach(function (nestedPopper) {\n // React (and other UI libs likely) requires a rAF wrapper as it flushes\n // its work in one\n requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);\n });\n }\n\n invokeHook('onAfterUpdate', [instance, partialProps]);\n }\n\n function setContent(content) {\n instance.setProps({\n content: content\n });\n }\n\n function show() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('show'));\n } // Early bail-out\n\n\n var isAlreadyVisible = instance.state.isVisible;\n var isDestroyed = instance.state.isDestroyed;\n var isDisabled = !instance.state.isEnabled;\n var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;\n var duration = getValueAtIndexOrReturn(instance.props.duration, 0, defaultProps.duration);\n\n if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {\n return;\n } // Normalize `disabled` behavior across browsers.\n // Firefox allows events on disabled elements, but Chrome doesn't.\n // Using a wrapper element (i.e. <span>) is recommended.\n\n\n if (getCurrentTarget().hasAttribute('disabled')) {\n return;\n }\n\n invokeHook('onShow', [instance], false);\n\n if (instance.props.onShow(instance) === false) {\n return;\n }\n\n instance.state.isVisible = true;\n\n if (getIsDefaultRenderFn()) {\n popper.style.visibility = 'visible';\n }\n\n handleStyles();\n addDocumentPress();\n\n if (!instance.state.isMounted) {\n popper.style.transition = 'none';\n } // If flipping to the opposite side after hiding at least once, the\n // animation will use the wrong placement without resetting the duration\n\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh2.box,\n content = _getDefaultTemplateCh2.content;\n\n setTransitionDuration([box, content], 0);\n }\n\n onFirstUpdate = function onFirstUpdate() {\n var _instance$popperInsta2;\n\n if (!instance.state.isVisible || ignoreOnFirstUpdate) {\n return;\n }\n\n ignoreOnFirstUpdate = true; // reflow\n\n void popper.offsetHeight;\n popper.style.transition = instance.props.moveTransition;\n\n if (getIsDefaultRenderFn() && instance.props.animation) {\n var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),\n _box = _getDefaultTemplateCh3.box,\n _content = _getDefaultTemplateCh3.content;\n\n setTransitionDuration([_box, _content], duration);\n setVisibilityState([_box, _content], 'visible');\n }\n\n handleAriaContentAttribute();\n handleAriaExpandedAttribute();\n pushIfUnique(mountedInstances, instance); // certain modifiers (e.g. `maxSize`) require a second update after the\n // popper has been positioned for the first time\n\n (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();\n invokeHook('onMount', [instance]);\n\n if (instance.props.animation && getIsDefaultRenderFn()) {\n onTransitionedIn(duration, function () {\n instance.state.isShown = true;\n invokeHook('onShown', [instance]);\n });\n }\n };\n\n mount();\n }\n\n function hide() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hide'));\n } // Early bail-out\n\n\n var isAlreadyHidden = !instance.state.isVisible;\n var isDestroyed = instance.state.isDestroyed;\n var isDisabled = !instance.state.isEnabled;\n var duration = getValueAtIndexOrReturn(instance.props.duration, 1, defaultProps.duration);\n\n if (isAlreadyHidden || isDestroyed || isDisabled) {\n return;\n }\n\n invokeHook('onHide', [instance], false);\n\n if (instance.props.onHide(instance) === false) {\n return;\n }\n\n instance.state.isVisible = false;\n instance.state.isShown = false;\n ignoreOnFirstUpdate = false;\n isVisibleFromClick = false;\n\n if (getIsDefaultRenderFn()) {\n popper.style.visibility = 'hidden';\n }\n\n cleanupInteractiveMouseListeners();\n removeDocumentPress();\n handleStyles(true);\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh4.box,\n content = _getDefaultTemplateCh4.content;\n\n if (instance.props.animation) {\n setTransitionDuration([box, content], duration);\n setVisibilityState([box, content], 'hidden');\n }\n }\n\n handleAriaContentAttribute();\n handleAriaExpandedAttribute();\n\n if (instance.props.animation) {\n if (getIsDefaultRenderFn()) {\n onTransitionedOut(duration, instance.unmount);\n }\n } else {\n instance.unmount();\n }\n }\n\n function hideWithInteractivity(event) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hideWithInteractivity'));\n }\n\n getDocument().addEventListener('mousemove', debouncedOnMouseMove);\n pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);\n debouncedOnMouseMove(event);\n }\n\n function unmount() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('unmount'));\n }\n\n if (instance.state.isVisible) {\n instance.hide();\n }\n\n if (!instance.state.isMounted) {\n return;\n }\n\n destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper\n // tree by default. This seems mainly for interactive tippies, but we should\n // find a workaround if possible\n\n getNestedPopperTree().forEach(function (nestedPopper) {\n nestedPopper._tippy.unmount();\n });\n\n if (popper.parentNode) {\n popper.parentNode.removeChild(popper);\n }\n\n mountedInstances = mountedInstances.filter(function (i) {\n return i !== instance;\n });\n instance.state.isMounted = false;\n invokeHook('onHidden', [instance]);\n }\n\n function destroy() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('destroy'));\n }\n\n if (instance.state.isDestroyed) {\n return;\n }\n\n instance.clearDelayTimeouts();\n instance.unmount();\n removeListeners();\n delete reference._tippy;\n instance.state.isDestroyed = true;\n invokeHook('onDestroy', [instance]);\n }\n}\n\nfunction tippy(targets, optionalProps) {\n if (optionalProps === void 0) {\n optionalProps = {};\n }\n\n var plugins = defaultProps.plugins.concat(optionalProps.plugins || []);\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n validateTargets(targets);\n validateProps(optionalProps, plugins);\n }\n\n bindGlobalEventListeners();\n var passedProps = Object.assign({}, optionalProps, {\n plugins: plugins\n });\n var elements = getArrayOfElements(targets);\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n var isSingleContentElement = isElement(passedProps.content);\n var isMoreThanOneReferenceElement = elements.length > 1;\n warnWhen(isSingleContentElement && isMoreThanOneReferenceElement, ['tippy() was passed an Element as the `content` prop, but more than', 'one tippy instance was created by this invocation. This means the', 'content element will only be appended to the last tippy instance.', '\\n\\n', 'Instead, pass the .innerHTML of the element, or use a function that', 'returns a cloned version of the element instead.', '\\n\\n', '1) content: element.innerHTML\\n', '2) content: () => element.cloneNode(true)'].join(' '));\n }\n\n var instances = elements.reduce(function (acc, reference) {\n var instance = reference && createTippy(reference, passedProps);\n\n if (instance) {\n acc.push(instance);\n }\n\n return acc;\n }, []);\n return isElement(targets) ? instances[0] : instances;\n}\n\ntippy.defaultProps = defaultProps;\ntippy.setDefaultProps = setDefaultProps;\ntippy.currentInput = currentInput;\nvar hideAll = function hideAll(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n excludedReferenceOrInstance = _ref.exclude,\n duration = _ref.duration;\n\n mountedInstances.forEach(function (instance) {\n var isExcluded = false;\n\n if (excludedReferenceOrInstance) {\n isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;\n }\n\n if (!isExcluded) {\n var originalDuration = instance.props.duration;\n instance.setProps({\n duration: duration\n });\n instance.hide();\n\n if (!instance.state.isDestroyed) {\n instance.setProps({\n duration: originalDuration\n });\n }\n }\n });\n};\n\n// every time the popper is destroyed (i.e. a new target), removing the styles\n// and causing transitions to break for singletons when the console is open, but\n// most notably for non-transform styles being used, `gpuAcceleration: false`.\n\nvar applyStylesModifier = Object.assign({}, applyStyles, {\n effect: function effect(_ref) {\n var state = _ref.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n } // intentionally return no cleanup function\n // return () => { ... }\n\n }\n});\n\nvar createSingleton = function createSingleton(tippyInstances, optionalProps) {\n var _optionalProps$popper;\n\n if (optionalProps === void 0) {\n optionalProps = {};\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(!Array.isArray(tippyInstances), ['The first argument passed to createSingleton() must be an array of', 'tippy instances. The passed value was', String(tippyInstances)].join(' '));\n }\n\n var individualInstances = tippyInstances;\n var references = [];\n var triggerTargets = [];\n var currentTarget;\n var overrides = optionalProps.overrides;\n var interceptSetPropsCleanups = [];\n var shownOnCreate = false;\n\n function setTriggerTargets() {\n triggerTargets = individualInstances.map(function (instance) {\n return normalizeToArray(instance.props.triggerTarget || instance.reference);\n }).reduce(function (acc, item) {\n return acc.concat(item);\n }, []);\n }\n\n function setReferences() {\n references = individualInstances.map(function (instance) {\n return instance.reference;\n });\n }\n\n function enableInstances(isEnabled) {\n individualInstances.forEach(function (instance) {\n if (isEnabled) {\n instance.enable();\n } else {\n instance.disable();\n }\n });\n }\n\n function interceptSetProps(singleton) {\n return individualInstances.map(function (instance) {\n var originalSetProps = instance.setProps;\n\n instance.setProps = function (props) {\n originalSetProps(props);\n\n if (instance.reference === currentTarget) {\n singleton.setProps(props);\n }\n };\n\n return function () {\n instance.setProps = originalSetProps;\n };\n });\n } // have to pass singleton, as it maybe undefined on first call\n\n\n function prepareInstance(singleton, target) {\n var index = triggerTargets.indexOf(target); // bail-out\n\n if (target === currentTarget) {\n return;\n }\n\n currentTarget = target;\n var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {\n acc[prop] = individualInstances[index].props[prop];\n return acc;\n }, {});\n singleton.setProps(Object.assign({}, overrideProps, {\n getReferenceClientRect: typeof overrideProps.getReferenceClientRect === 'function' ? overrideProps.getReferenceClientRect : function () {\n var _references$index;\n\n return (_references$index = references[index]) == null ? void 0 : _references$index.getBoundingClientRect();\n }\n }));\n }\n\n enableInstances(false);\n setReferences();\n setTriggerTargets();\n var plugin = {\n fn: function fn() {\n return {\n onDestroy: function onDestroy() {\n enableInstances(true);\n },\n onHidden: function onHidden() {\n currentTarget = null;\n },\n onClickOutside: function onClickOutside(instance) {\n if (instance.props.showOnCreate && !shownOnCreate) {\n shownOnCreate = true;\n currentTarget = null;\n }\n },\n onShow: function onShow(instance) {\n if (instance.props.showOnCreate && !shownOnCreate) {\n shownOnCreate = true;\n prepareInstance(instance, references[0]);\n }\n },\n onTrigger: function onTrigger(instance, event) {\n prepareInstance(instance, event.currentTarget);\n }\n };\n }\n };\n var singleton = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {\n plugins: [plugin].concat(optionalProps.plugins || []),\n triggerTarget: triggerTargets,\n popperOptions: Object.assign({}, optionalProps.popperOptions, {\n modifiers: [].concat(((_optionalProps$popper = optionalProps.popperOptions) == null ? void 0 : _optionalProps$popper.modifiers) || [], [applyStylesModifier])\n })\n }));\n var originalShow = singleton.show;\n\n singleton.show = function (target) {\n originalShow(); // first time, showOnCreate or programmatic call with no params\n // default to showing first instance\n\n if (!currentTarget && target == null) {\n return prepareInstance(singleton, references[0]);\n } // triggered from event (do nothing as prepareInstance already called by onTrigger)\n // programmatic call with no params when already visible (do nothing again)\n\n\n if (currentTarget && target == null) {\n return;\n } // target is index of instance\n\n\n if (typeof target === 'number') {\n return references[target] && prepareInstance(singleton, references[target]);\n } // target is a child tippy instance\n\n\n if (individualInstances.indexOf(target) >= 0) {\n var ref = target.reference;\n return prepareInstance(singleton, ref);\n } // target is a ReferenceElement\n\n\n if (references.indexOf(target) >= 0) {\n return prepareInstance(singleton, target);\n }\n };\n\n singleton.showNext = function () {\n var first = references[0];\n\n if (!currentTarget) {\n return singleton.show(0);\n }\n\n var index = references.indexOf(currentTarget);\n singleton.show(references[index + 1] || first);\n };\n\n singleton.showPrevious = function () {\n var last = references[references.length - 1];\n\n if (!currentTarget) {\n return singleton.show(last);\n }\n\n var index = references.indexOf(currentTarget);\n var target = references[index - 1] || last;\n singleton.show(target);\n };\n\n var originalSetProps = singleton.setProps;\n\n singleton.setProps = function (props) {\n overrides = props.overrides || overrides;\n originalSetProps(props);\n };\n\n singleton.setInstances = function (nextInstances) {\n enableInstances(true);\n interceptSetPropsCleanups.forEach(function (fn) {\n return fn();\n });\n individualInstances = nextInstances;\n enableInstances(false);\n setReferences();\n setTriggerTargets();\n interceptSetPropsCleanups = interceptSetProps(singleton);\n singleton.setProps({\n triggerTarget: triggerTargets\n });\n };\n\n interceptSetPropsCleanups = interceptSetProps(singleton);\n return singleton;\n};\n\nvar BUBBLING_EVENTS_MAP = {\n mouseover: 'mouseenter',\n focusin: 'focus',\n click: 'click'\n};\n/**\n * Creates a delegate instance that controls the creation of tippy instances\n * for child elements (`target` CSS selector).\n */\n\nfunction delegate(targets, props) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(!(props && props.target), ['You must specity a `target` prop indicating a CSS selector string matching', 'the target elements that should receive a tippy.'].join(' '));\n }\n\n var listeners = [];\n var childTippyInstances = [];\n var disabled = false;\n var target = props.target;\n var nativeProps = removeProperties(props, ['target']);\n var parentProps = Object.assign({}, nativeProps, {\n trigger: 'manual',\n touch: false\n });\n var childProps = Object.assign({\n touch: defaultProps.touch\n }, nativeProps, {\n showOnCreate: true\n });\n var returnValue = tippy(targets, parentProps);\n var normalizedReturnValue = normalizeToArray(returnValue);\n\n function onTrigger(event) {\n if (!event.target || disabled) {\n return;\n }\n\n var targetNode = event.target.closest(target);\n\n if (!targetNode) {\n return;\n } // Get relevant trigger with fallbacks:\n // 1. Check `data-tippy-trigger` attribute on target node\n // 2. Fallback to `trigger` passed to `delegate()`\n // 3. Fallback to `defaultProps.trigger`\n\n\n var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || defaultProps.trigger; // @ts-ignore\n\n if (targetNode._tippy) {\n return;\n }\n\n if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {\n return;\n }\n\n if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type]) < 0) {\n return;\n }\n\n var instance = tippy(targetNode, childProps);\n\n if (instance) {\n childTippyInstances = childTippyInstances.concat(instance);\n }\n }\n\n function on(node, eventType, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n node.addEventListener(eventType, handler, options);\n listeners.push({\n node: node,\n eventType: eventType,\n handler: handler,\n options: options\n });\n }\n\n function addEventListeners(instance) {\n var reference = instance.reference;\n on(reference, 'touchstart', onTrigger, TOUCH_OPTIONS);\n on(reference, 'mouseover', onTrigger);\n on(reference, 'focusin', onTrigger);\n on(reference, 'click', onTrigger);\n }\n\n function removeEventListeners() {\n listeners.forEach(function (_ref) {\n var node = _ref.node,\n eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n node.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n function applyMutations(instance) {\n var originalDestroy = instance.destroy;\n var originalEnable = instance.enable;\n var originalDisable = instance.disable;\n\n instance.destroy = function (shouldDestroyChildInstances) {\n if (shouldDestroyChildInstances === void 0) {\n shouldDestroyChildInstances = true;\n }\n\n if (shouldDestroyChildInstances) {\n childTippyInstances.forEach(function (instance) {\n instance.destroy();\n });\n }\n\n childTippyInstances = [];\n removeEventListeners();\n originalDestroy();\n };\n\n instance.enable = function () {\n originalEnable();\n childTippyInstances.forEach(function (instance) {\n return instance.enable();\n });\n disabled = false;\n };\n\n instance.disable = function () {\n originalDisable();\n childTippyInstances.forEach(function (instance) {\n return instance.disable();\n });\n disabled = true;\n };\n\n addEventListeners(instance);\n }\n\n normalizedReturnValue.forEach(applyMutations);\n return returnValue;\n}\n\nvar animateFill = {\n name: 'animateFill',\n defaultValue: false,\n fn: function fn(instance) {\n var _instance$props$rende;\n\n // @ts-ignore\n if (!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy)) {\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(instance.props.animateFill, 'The `animateFill` plugin requires the default render function.');\n }\n\n return {};\n }\n\n var _getChildren = getChildren(instance.popper),\n box = _getChildren.box,\n content = _getChildren.content;\n\n var backdrop = instance.props.animateFill ? createBackdropElement() : null;\n return {\n onCreate: function onCreate() {\n if (backdrop) {\n box.insertBefore(backdrop, box.firstElementChild);\n box.setAttribute('data-animatefill', '');\n box.style.overflow = 'hidden';\n instance.setProps({\n arrow: false,\n animation: 'shift-away'\n });\n }\n },\n onMount: function onMount() {\n if (backdrop) {\n var transitionDuration = box.style.transitionDuration;\n var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the\n // tooltip element. `clip-path` is the other alternative but is not\n // well-supported and is buggy on some devices.\n\n content.style.transitionDelay = Math.round(duration / 10) + \"ms\";\n backdrop.style.transitionDuration = transitionDuration;\n setVisibilityState([backdrop], 'visible');\n }\n },\n onShow: function onShow() {\n if (backdrop) {\n backdrop.style.transitionDuration = '0ms';\n }\n },\n onHide: function onHide() {\n if (backdrop) {\n setVisibilityState([backdrop], 'hidden');\n }\n }\n };\n }\n};\n\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = BACKDROP_CLASS;\n setVisibilityState([backdrop], 'hidden');\n return backdrop;\n}\n\nvar mouseCoords = {\n clientX: 0,\n clientY: 0\n};\nvar activeInstances = [];\n\nfunction storeMouseCoords(_ref) {\n var clientX = _ref.clientX,\n clientY = _ref.clientY;\n mouseCoords = {\n clientX: clientX,\n clientY: clientY\n };\n}\n\nfunction addMouseCoordsListener(doc) {\n doc.addEventListener('mousemove', storeMouseCoords);\n}\n\nfunction removeMouseCoordsListener(doc) {\n doc.removeEventListener('mousemove', storeMouseCoords);\n}\n\nvar followCursor = {\n name: 'followCursor',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference;\n var doc = getOwnerDocument(instance.props.triggerTarget || reference);\n var isInternalUpdate = false;\n var wasFocusEvent = false;\n var isUnmounted = true;\n var prevProps = instance.props;\n\n function getIsInitialBehavior() {\n return instance.props.followCursor === 'initial' && instance.state.isVisible;\n }\n\n function addListener() {\n doc.addEventListener('mousemove', onMouseMove);\n }\n\n function removeListener() {\n doc.removeEventListener('mousemove', onMouseMove);\n }\n\n function unsetGetReferenceClientRect() {\n isInternalUpdate = true;\n instance.setProps({\n getReferenceClientRect: null\n });\n isInternalUpdate = false;\n }\n\n function onMouseMove(event) {\n // If the instance is interactive, avoid updating the position unless it's\n // over the reference element\n var isCursorOverReference = event.target ? reference.contains(event.target) : true;\n var followCursor = instance.props.followCursor;\n var clientX = event.clientX,\n clientY = event.clientY;\n var rect = reference.getBoundingClientRect();\n var relativeX = clientX - rect.left;\n var relativeY = clientY - rect.top;\n\n if (isCursorOverReference || !instance.props.interactive) {\n instance.setProps({\n // @ts-ignore - unneeded DOMRect properties\n getReferenceClientRect: function getReferenceClientRect() {\n var rect = reference.getBoundingClientRect();\n var x = clientX;\n var y = clientY;\n\n if (followCursor === 'initial') {\n x = rect.left + relativeX;\n y = rect.top + relativeY;\n }\n\n var top = followCursor === 'horizontal' ? rect.top : y;\n var right = followCursor === 'vertical' ? rect.right : x;\n var bottom = followCursor === 'horizontal' ? rect.bottom : y;\n var left = followCursor === 'vertical' ? rect.left : x;\n return {\n width: right - left,\n height: bottom - top,\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n }\n });\n }\n }\n\n function create() {\n if (instance.props.followCursor) {\n activeInstances.push({\n instance: instance,\n doc: doc\n });\n addMouseCoordsListener(doc);\n }\n }\n\n function destroy() {\n activeInstances = activeInstances.filter(function (data) {\n return data.instance !== instance;\n });\n\n if (activeInstances.filter(function (data) {\n return data.doc === doc;\n }).length === 0) {\n removeMouseCoordsListener(doc);\n }\n }\n\n return {\n onCreate: create,\n onDestroy: destroy,\n onBeforeUpdate: function onBeforeUpdate() {\n prevProps = instance.props;\n },\n onAfterUpdate: function onAfterUpdate(_, _ref2) {\n var followCursor = _ref2.followCursor;\n\n if (isInternalUpdate) {\n return;\n }\n\n if (followCursor !== undefined && prevProps.followCursor !== followCursor) {\n destroy();\n\n if (followCursor) {\n create();\n\n if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {\n addListener();\n }\n } else {\n removeListener();\n unsetGetReferenceClientRect();\n }\n }\n },\n onMount: function onMount() {\n if (instance.props.followCursor && !wasFocusEvent) {\n if (isUnmounted) {\n onMouseMove(mouseCoords);\n isUnmounted = false;\n }\n\n if (!getIsInitialBehavior()) {\n addListener();\n }\n }\n },\n onTrigger: function onTrigger(_, event) {\n if (isMouseEvent(event)) {\n mouseCoords = {\n clientX: event.clientX,\n clientY: event.clientY\n };\n }\n\n wasFocusEvent = event.type === 'focus';\n },\n onHidden: function onHidden() {\n if (instance.props.followCursor) {\n unsetGetReferenceClientRect();\n removeListener();\n isUnmounted = true;\n }\n }\n };\n }\n};\n\nfunction getProps(props, modifier) {\n var _props$popperOptions;\n\n return {\n popperOptions: Object.assign({}, props.popperOptions, {\n modifiers: [].concat((((_props$popperOptions = props.popperOptions) == null ? void 0 : _props$popperOptions.modifiers) || []).filter(function (_ref) {\n var name = _ref.name;\n return name !== modifier.name;\n }), [modifier])\n })\n };\n}\n\nvar inlinePositioning = {\n name: 'inlinePositioning',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference;\n\n function isEnabled() {\n return !!instance.props.inlinePositioning;\n }\n\n var placement;\n var cursorRectIndex = -1;\n var isInternalUpdate = false;\n var triedPlacements = [];\n var modifier = {\n name: 'tippyInlinePositioning',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(_ref2) {\n var state = _ref2.state;\n\n if (isEnabled()) {\n if (triedPlacements.indexOf(state.placement) !== -1) {\n triedPlacements = [];\n }\n\n if (placement !== state.placement && triedPlacements.indexOf(state.placement) === -1) {\n triedPlacements.push(state.placement);\n instance.setProps({\n // @ts-ignore - unneeded DOMRect properties\n getReferenceClientRect: function getReferenceClientRect() {\n return _getReferenceClientRect(state.placement);\n }\n });\n }\n\n placement = state.placement;\n }\n }\n };\n\n function _getReferenceClientRect(placement) {\n return getInlineBoundingClientRect(getBasePlacement(placement), reference.getBoundingClientRect(), arrayFrom(reference.getClientRects()), cursorRectIndex);\n }\n\n function setInternalProps(partialProps) {\n isInternalUpdate = true;\n instance.setProps(partialProps);\n isInternalUpdate = false;\n }\n\n function addModifier() {\n if (!isInternalUpdate) {\n setInternalProps(getProps(instance.props, modifier));\n }\n }\n\n return {\n onCreate: addModifier,\n onAfterUpdate: addModifier,\n onTrigger: function onTrigger(_, event) {\n if (isMouseEvent(event)) {\n var rects = arrayFrom(instance.reference.getClientRects());\n var cursorRect = rects.find(function (rect) {\n return rect.left - 2 <= event.clientX && rect.right + 2 >= event.clientX && rect.top - 2 <= event.clientY && rect.bottom + 2 >= event.clientY;\n });\n var index = rects.indexOf(cursorRect);\n cursorRectIndex = index > -1 ? index : cursorRectIndex;\n }\n },\n onHidden: function onHidden() {\n cursorRectIndex = -1;\n }\n };\n }\n};\nfunction getInlineBoundingClientRect(currentBasePlacement, boundingRect, clientRects, cursorRectIndex) {\n // Not an inline element, or placement is not yet known\n if (clientRects.length < 2 || currentBasePlacement === null) {\n return boundingRect;\n } // There are two rects and they are disjoined\n\n\n if (clientRects.length === 2 && cursorRectIndex >= 0 && clientRects[0].left > clientRects[1].right) {\n return clientRects[cursorRectIndex] || boundingRect;\n }\n\n switch (currentBasePlacement) {\n case 'top':\n case 'bottom':\n {\n var firstRect = clientRects[0];\n var lastRect = clientRects[clientRects.length - 1];\n var isTop = currentBasePlacement === 'top';\n var top = firstRect.top;\n var bottom = lastRect.bottom;\n var left = isTop ? firstRect.left : lastRect.left;\n var right = isTop ? firstRect.right : lastRect.right;\n var width = right - left;\n var height = bottom - top;\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n\n case 'left':\n case 'right':\n {\n var minLeft = Math.min.apply(Math, clientRects.map(function (rects) {\n return rects.left;\n }));\n var maxRight = Math.max.apply(Math, clientRects.map(function (rects) {\n return rects.right;\n }));\n var measureRects = clientRects.filter(function (rect) {\n return currentBasePlacement === 'left' ? rect.left === minLeft : rect.right === maxRight;\n });\n var _top = measureRects[0].top;\n var _bottom = measureRects[measureRects.length - 1].bottom;\n var _left = minLeft;\n var _right = maxRight;\n\n var _width = _right - _left;\n\n var _height = _bottom - _top;\n\n return {\n top: _top,\n bottom: _bottom,\n left: _left,\n right: _right,\n width: _width,\n height: _height\n };\n }\n\n default:\n {\n return boundingRect;\n }\n }\n}\n\nvar sticky = {\n name: 'sticky',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference,\n popper = instance.popper;\n\n function getReference() {\n return instance.popperInstance ? instance.popperInstance.state.elements.reference : reference;\n }\n\n function shouldCheck(value) {\n return instance.props.sticky === true || instance.props.sticky === value;\n }\n\n var prevRefRect = null;\n var prevPopRect = null;\n\n function updatePosition() {\n var currentRefRect = shouldCheck('reference') ? getReference().getBoundingClientRect() : null;\n var currentPopRect = shouldCheck('popper') ? popper.getBoundingClientRect() : null;\n\n if (currentRefRect && areRectsDifferent(prevRefRect, currentRefRect) || currentPopRect && areRectsDifferent(prevPopRect, currentPopRect)) {\n if (instance.popperInstance) {\n instance.popperInstance.update();\n }\n }\n\n prevRefRect = currentRefRect;\n prevPopRect = currentPopRect;\n\n if (instance.state.isMounted) {\n requestAnimationFrame(updatePosition);\n }\n }\n\n return {\n onMount: function onMount() {\n if (instance.props.sticky) {\n updatePosition();\n }\n }\n };\n }\n};\n\nfunction areRectsDifferent(rectA, rectB) {\n if (rectA && rectB) {\n return rectA.top !== rectB.top || rectA.right !== rectB.right || rectA.bottom !== rectB.bottom || rectA.left !== rectB.left;\n }\n\n return true;\n}\n\ntippy.setDefaultProps({\n render: render\n});\n\nexport default tippy;\nexport { animateFill, createSingleton, delegate, followCursor, hideAll, inlinePositioning, ROUND_ARROW as roundArrow, sticky };\n//# sourceMappingURL=tippy.esm.js.map\n","/* Tippy stylesheet and specific styles are imported in the global tooltip.scss file */\n\n:host {\n display: none;\n}\n","import { Component, ComponentInterface, h, Host, Prop, Element, Watch, Method, Listen } from '@stencil/core';\nimport { WcsTooltipAppendTo, WcsTooltipPosition } from './tooltip-interface';\n\n// We use the Tippy.js library for the tooltip. At first by using directly the styles of tippy because\n// the design system does not specify any spec for the tooltips.\n//\n// In a second time, if a need of customization is felt, it will be possible to use the lib in a\n// \"Headless\" mode where the rendering of the tooltip will be entirely in our charge, without\n// modifications in the API : https://atomiks.github.io/tippyjs/v6/headless-tippy/\nimport tippy, { Instance, Props } from 'tippy.js';\nimport { isEscapeKey } from \"../../utils/helpers\";\nimport { isMutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n/**\n * List of components that require special ARIA attribute delegation handling.\n * These components have their own internal elements (like native button inside wcs-button)\n * that need to receive ARIA attributes for proper accessibility.\n * \n * Another solution we take into account is to @Watch the ARIA attributes on the component and set them on the internal element.\n * But this solution was not centralized and can be forgotten.\n */\nconst DELEGATED_ARIA_COMPONENTS = ['WCS-BUTTON'];\n\n/**\n * Tooltips are used to provide additional information for features available on the website. These can improve the user\n * experience or simply show additional information. Tooltips appear when the user rolls over or clicks on them\n * (for longer content).\n *\n * Note that this component is based on the Tippy.js library : https://atomiks.github.io/tippyjs/\n * \n * ## Accessibility guidelines 💡\n * \n * The problem is that impaired users may not be able to see what is the information provided by the tooltip. To solve\n * this problem, the tooltip should be served with some aria attributes to make it accessible.\n *\n * Aria-features `wcs-tooltip` respect:\n * - dismiss when the user presses the `Escape` key\n * - has a `role=tooltip`\n * - when set to `interactive` mode\n * - `aria-expanded` on the targeted element: set to true when popover is open, false when it is closed\n *\n * Aria-features `wcs-tooltip` **does not respect with `wcs-button`**:\n * - aria-controls => we cannot do it yet, we need to wait for Cross root ARIA - export ID (https://github.com/WICG/aom/blob/gh-pages/exportid-explainer.md)\n * \n * But you have to provide the \"link\" between the element you want to describe and the tooltip. To do this, you have to\n * provide the \"visual description\" you add on the `wcs-tooltip` to the `aria-label` attribute or the `aria-description` as soon as the attribute will be available \n * of the element you want to describe .\n * \n * Example:\n * \n * ```html\n * <wcs-tooltip for=\"my-button\">Trashed items</wcs-tooltip>\n * <wcs-button id=\"my-button\" aria-label=\"Trashed items\">Trash</wcs-button>\n * ```\n * \n * @cssprop --wcs-tooltip-background-color - Background color of the tooltip\n * @cssprop --wcs-tooltip-text-color - Text color of the tooltip\n * @cssprop --wcs-tooltip-padding - Padding of the tooltip\n */\n@Component({\n tag: 'wcs-tooltip',\n shadow: true,\n // Tippy stylesheet and specific styles are imported in the global tooltip.scss file\n styleUrl: 'tooltip.scss'\n})\nexport class Tooltip implements ComponentInterface {\n /**\n * The **id** of the element the tooltip's going to describe.\n *\n * This property cannot be modified after initialization.\n *\n * @example\n * ```html\n * <span id=\"tooltiped\">Some content</span>\n * <wcs-tooltip for=\"tooltiped\">A tooltip!</wcs-tooltip>\n * ```\n */\n @Prop({mutable: false})\n for: string;\n\n /**\n * Where the tooltip is going to show relative to the element it's describing.\n */\n @Prop({reflect: true})\n position: WcsTooltipPosition = 'bottom';\n\n /**\n * Determines if the tooltip has interactive content inside of it, so that it can be hovered over and clicked inside\n * without hiding.\n */\n @Prop({ reflect: true })\n interactive: boolean = false;\n\n /**\n * Specifies the maximum width of the tooltip. Useful to prevent it from being too horizontally wide to read.\n *\n * If the viewport's width is smaller than maxWidth, core CSS ensures the tippy remains smaller than the screen.\n * \n * To test it on WCS documentation page, add 'px' to the control value (string type in this case).\n */\n @Prop()\n maxWidth: string | number = 350;\n\n /**\n * Delay in ms once a trigger event is fired before the tooltip shows or hides.\n *\n * You can provide an array with two values to define a different duration for show and hide.\n *\n * `[showDelay, hideDelay]`\n *\n * Use null to use default value.\n */\n @Prop()\n delay: number | [number, number] = 0;\n\n /**\n * Duration in ms of the transition animation.\n */\n @Prop()\n duration: number | [number, number] = [300, 250];\n\n /**\n * Determines the events that cause the tooltip to show. Multiple event names are separated by spaces.\n *\n * See: https://atomiks.github.io/tippyjs/v6/all-props/#trigger\n */\n @Prop()\n trigger: string = 'mouseenter focus';\n\n /**\n * Allows you to change the theme used by tippy.\n *\n * The WCS theme 'dark' is used by default and uses the WCS CSS variables.\n *\n * You can create a theme by following this documentation and choosing a custom name :\n * https://atomiks.github.io/tippyjs/v6/themes/\n */\n @Prop()\n theme: 'dark' | 'light' = 'dark';\n\n /**\n * You can use this property instead of the slot API to affect content in the tooltip.\n *\n * This makes it easier to manage the update if the tooltip contains elements that are not mutated when their\n * content changes. Indeed, if the slot is used, the tooltip is updated only if the structure of the slotted DOM\n * changes (the DOM must be mutated).\n *\n * The two APIs are not mutually exclusive, if both are filled in (the prop + the slot) the rendering will first\n * display the content of this property and then the slotted elements.\n */\n @Prop()\n content: string;\n\n /**\n * The element to append the tooltip to. Default behaviour is `() => document.body`. If interactive: true,\n * the default behavior is appendTo: \"parent\"\n *\n * See: https://atomiks.github.io/tippyjs/v6/all-props/#appendto\n */\n @Prop()\n appendTo: WcsTooltipAppendTo;\n\n @Element()\n private el: HTMLWcsTooltipElement;\n\n private tippyInstance: Instance<Props>;\n private forElement?: HTMLElement;\n\n componentWillLoad(): Promise<void> | void {\n this.forElement = document.getElementById(this.for);\n \n if(!this.forElement) {\n console.error('[wcs-tooltip]: The element with the id provided in the \"for\" property does not exist');\n return\n }\n \n this.tippyInstance = tippy(this.forElement, {\n appendTo: this.appendTo || (() => document.body),\n theme: this.theme,\n allowHTML: true,\n content: this.getTooltipContentFromPropAndSlot(),\n maxWidth: this.maxWidth,\n placement: this.position,\n delay: this.delay,\n duration: this.duration,\n interactive: this.interactive,\n trigger: this.trigger,\n onShow: () => this.onShow(),\n onHide: () => this.onHide()\n });\n }\n\n // region Tippy.js events\n \n // ARIA attributes management 🔍\n //\n // While tippy.js automatically handles aria-expanded on the target element, we manage it ourselves for two main reasons:\n // 1. Some of our components (like wcs-button) have an internal structure where the accessible/focusable element\n // is not the root element. We need to ensure the aria-expanded is set on the correct internal element.\n // 2. We want to maintain consistent control over our ARIA attributes across all components and ensure\n // they work with our custom MutableAriaAttribute interface.\n \n private onShow() {\n if (!this.forElement) {\n return;\n }\n\n if (this.forElement.tagName && DELEGATED_ARIA_COMPONENTS.indexOf(this.forElement.tagName) !== -1) {\n if(isMutableAriaAttribute(this.forElement)) {\n if(this.interactive) {\n this.forElement.setAriaAttribute('aria-expanded', 'true');\n }\n }\n }\n }\n \n private onHide() {\n if (!this.forElement) {\n return;\n }\n\n if (this.forElement.tagName && DELEGATED_ARIA_COMPONENTS.indexOf(this.forElement.tagName) !== -1) {\n if(isMutableAriaAttribute(this.forElement)) {\n if(this.interactive) {\n this.forElement.setAriaAttribute('aria-expanded', 'false');\n }\n }\n }\n }\n \n // endregion\n \n @Listen('keydown', { target: 'window' })\n async handleKeyDown(ev: KeyboardEvent) {\n if (isEscapeKey(ev)) {\n if(this.tippyInstance.state.isShown) {\n await this.hide();\n }\n }\n }\n\n private getTooltipContentFromPropAndSlot() {\n if (this.content) {\n return this.content + this.el.innerHTML;\n }\n return this.el.innerHTML;\n }\n\n @Watch('interactive')\n @Watch('position')\n @Watch('maxWidth')\n @Watch('theme')\n @Watch('delay')\n @Watch('duration')\n @Watch('trigger')\n // @ts-ignore\n private updateProps() {\n this.tippyInstance?.setProps({\n interactive: this.interactive,\n placement: this.position,\n maxWidth: this.maxWidth,\n theme: this.theme,\n delay: this.delay,\n duration: this.duration,\n trigger: this.trigger\n })\n }\n\n @Watch('content')\n private updateTippyContent() {\n this.tippyInstance?.setProps({\n content: this.getTooltipContentFromPropAndSlot()\n })\n }\n\n /**\n * Programmatically hide the tooltip\n */\n @Method()\n async hide() {\n this.tippyInstance.hide();\n }\n\n /**\n * Programmatically show the tooltip\n */\n @Method()\n async show() {\n this.tippyInstance.show();\n }\n\n /**\n * Temporarily prevent the tooltip from showing or hiding\n */\n @Method()\n async disable() {\n this.tippyInstance.disable();\n }\n\n /**\n * Re-enable a disabled tooltip\n */\n @Method()\n async enable() {\n this.tippyInstance.enable();\n }\n\n disconnectedCallback() {\n this.tippyInstance?.destroy();\n }\n\n render() {\n return (\n <Host role=\"tooltip\">\n <slot onSlotchange={_ => this.updateTippyContent()}/>\n </Host>\n );\n }\n\n\n}\n"],"mappings":"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"}