xv-webcomponents 0.1.41 → 0.1.43

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 (299) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +129 -129
  3. package/dist/types/components/xv-button/xv-button.d.ts +12 -21
  4. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +0 -1
  5. package/dist/types/components/xv-header/xv-header.d.ts +2 -0
  6. package/dist/types/components/xv-text-input/_vars.d.ts +5 -0
  7. package/dist/types/components/xv-text-input/xv-text-input.d.ts +11 -10
  8. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +8 -10
  9. package/dist/types/components/xv-user-menu/interfaces/MenuItem.d.ts +0 -0
  10. package/dist/types/components/xv-user-menu/xv-user-menu.d.ts +41 -0
  11. package/dist/types/components.d.ts +101 -352
  12. package/dist/types/stencil-public-runtime.d.ts +1 -1
  13. package/dist/xv-webcomponents/_vars-FbbDWn6g.js +13 -0
  14. package/dist/xv-webcomponents/_vars-FbbDWn6g.js.map +1 -0
  15. package/dist/{collection/components/xv-progress-indicator/_vars.js → xv-webcomponents/_vars-IZ3lIQzL.js} +7 -3
  16. package/dist/xv-webcomponents/_vars-IZ3lIQzL.js.map +1 -0
  17. package/dist/{collection/types/enum.js → xv-webcomponents/enum-DTBL51oP.js} +6 -2
  18. package/dist/xv-webcomponents/enum-DTBL51oP.js.map +1 -0
  19. package/dist/xv-webcomponents/index-rZAC0WRb.js +4238 -0
  20. package/dist/xv-webcomponents/index-rZAC0WRb.js.map +1 -0
  21. package/dist/xv-webcomponents/index.esm.js +13 -1
  22. package/dist/xv-webcomponents/index.esm.js.map +1 -1
  23. package/dist/xv-webcomponents/loader.esm.js.map +1 -1
  24. package/dist/{collection/utils/utils.js → xv-webcomponents/utils-1tk8kwKx.js} +11 -7
  25. package/dist/xv-webcomponents/utils-1tk8kwKx.js.map +1 -0
  26. package/dist/xv-webcomponents/xv-accordion-v2-item.entry.esm.js.map +1 -0
  27. package/dist/xv-webcomponents/xv-accordion-v2-item.entry.js +36 -0
  28. package/dist/xv-webcomponents/xv-accordion-v2-item.entry.js.map +1 -0
  29. package/dist/xv-webcomponents/xv-accordion-v2.entry.esm.js.map +1 -0
  30. package/dist/xv-webcomponents/xv-accordion-v2.entry.js +41 -0
  31. package/dist/xv-webcomponents/xv-accordion-v2.entry.js.map +1 -0
  32. package/dist/xv-webcomponents/xv-breadcrumbs-v2.entry.esm.js.map +1 -1
  33. package/dist/xv-webcomponents/xv-breadcrumbs-v2.entry.js +18 -0
  34. package/dist/xv-webcomponents/xv-breadcrumbs-v2.entry.js.map +1 -0
  35. package/dist/xv-webcomponents/xv-button-v2.entry.esm.js.map +1 -0
  36. package/dist/xv-webcomponents/xv-button-v2.entry.js +35 -0
  37. package/dist/xv-webcomponents/xv-button-v2.entry.js.map +1 -0
  38. package/dist/xv-webcomponents/xv-card-v2.entry.esm.js.map +1 -0
  39. package/dist/xv-webcomponents/xv-card-v2.entry.js +19 -0
  40. package/dist/xv-webcomponents/xv-card-v2.entry.js.map +1 -0
  41. package/dist/xv-webcomponents/xv-checkbox-v2.entry.esm.js.map +1 -0
  42. package/dist/xv-webcomponents/xv-checkbox-v2.entry.js +106 -0
  43. package/dist/xv-webcomponents/xv-checkbox-v2.entry.js.map +1 -0
  44. package/dist/xv-webcomponents/xv-dropdown-v2-item.entry.esm.js.map +1 -0
  45. package/dist/xv-webcomponents/xv-dropdown-v2-item.entry.js +36 -0
  46. package/dist/xv-webcomponents/xv-dropdown-v2-item.entry.js.map +1 -0
  47. package/dist/xv-webcomponents/xv-dropdown-v2.entry.esm.js.map +1 -0
  48. package/dist/xv-webcomponents/xv-dropdown-v2.entry.js +136 -0
  49. package/dist/xv-webcomponents/xv-dropdown-v2.entry.js.map +1 -0
  50. package/dist/xv-webcomponents/xv-footer.entry.esm.js.map +1 -0
  51. package/dist/xv-webcomponents/xv-footer.entry.js +30 -0
  52. package/dist/xv-webcomponents/xv-footer.entry.js.map +1 -0
  53. package/dist/xv-webcomponents/xv-header.entry.esm.js.map +1 -0
  54. package/dist/xv-webcomponents/xv-header.entry.js +81 -0
  55. package/dist/xv-webcomponents/xv-header.entry.js.map +1 -0
  56. package/dist/xv-webcomponents/xv-link-v2.entry.esm.js.map +1 -0
  57. package/dist/xv-webcomponents/xv-link-v2.entry.js +27 -0
  58. package/dist/xv-webcomponents/xv-link-v2.entry.js.map +1 -0
  59. package/dist/xv-webcomponents/xv-loader-v2.entry.esm.js.map +1 -0
  60. package/dist/xv-webcomponents/xv-loader-v2.entry.js +33 -0
  61. package/dist/xv-webcomponents/xv-loader-v2.entry.js.map +1 -0
  62. package/dist/xv-webcomponents/xv-login-modal.entry.esm.js.map +1 -0
  63. package/dist/xv-webcomponents/xv-login-modal.entry.js +89 -0
  64. package/dist/xv-webcomponents/xv-login-modal.entry.js.map +1 -0
  65. package/dist/xv-webcomponents/xv-modal-v2.entry.esm.js.map +1 -0
  66. package/dist/xv-webcomponents/xv-modal-v2.entry.js +78 -0
  67. package/dist/xv-webcomponents/xv-modal-v2.entry.js.map +1 -0
  68. package/dist/xv-webcomponents/xv-notification-v2.entry.esm.js.map +1 -0
  69. package/dist/xv-webcomponents/xv-notification-v2.entry.js +50 -0
  70. package/dist/xv-webcomponents/xv-notification-v2.entry.js.map +1 -0
  71. package/dist/xv-webcomponents/xv-overflow-menu-v2-item.entry.esm.js.map +1 -0
  72. package/dist/xv-webcomponents/xv-overflow-menu-v2-item.entry.js +32 -0
  73. package/dist/xv-webcomponents/xv-overflow-menu-v2-item.entry.js.map +1 -0
  74. package/dist/xv-webcomponents/xv-overflow-menu-v2.entry.esm.js.map +1 -0
  75. package/dist/xv-webcomponents/xv-overflow-menu-v2.entry.js +74 -0
  76. package/dist/xv-webcomponents/xv-overflow-menu-v2.entry.js.map +1 -0
  77. package/dist/xv-webcomponents/xv-progress-indicator-v2-item.entry.esm.js.map +1 -0
  78. package/dist/xv-webcomponents/xv-progress-indicator-v2-item.entry.js +21 -0
  79. package/dist/xv-webcomponents/xv-progress-indicator-v2-item.entry.js.map +1 -0
  80. package/dist/xv-webcomponents/xv-progress-indicator-v2.entry.esm.js.map +1 -0
  81. package/dist/xv-webcomponents/xv-progress-indicator-v2.entry.js +75 -0
  82. package/dist/xv-webcomponents/xv-progress-indicator-v2.entry.js.map +1 -0
  83. package/dist/xv-webcomponents/xv-tab-v2.entry.esm.js.map +1 -0
  84. package/dist/xv-webcomponents/xv-tab-v2.entry.js +21 -0
  85. package/dist/xv-webcomponents/xv-tab-v2.entry.js.map +1 -0
  86. package/dist/xv-webcomponents/xv-table-v2-cell.entry.esm.js.map +1 -0
  87. package/dist/xv-webcomponents/xv-table-v2-cell.entry.js +41 -0
  88. package/dist/xv-webcomponents/xv-table-v2-cell.entry.js.map +1 -0
  89. package/dist/xv-webcomponents/xv-table-v2-expand.entry.esm.js.map +1 -0
  90. package/dist/xv-webcomponents/xv-table-v2-expand.entry.js +29 -0
  91. package/dist/xv-webcomponents/xv-table-v2-expand.entry.js.map +1 -0
  92. package/dist/xv-webcomponents/xv-table-v2-row.entry.esm.js.map +1 -0
  93. package/dist/xv-webcomponents/xv-table-v2-row.entry.js +66 -0
  94. package/dist/xv-webcomponents/xv-table-v2-row.entry.js.map +1 -0
  95. package/dist/xv-webcomponents/xv-table-v2.entry.esm.js.map +1 -0
  96. package/dist/xv-webcomponents/xv-table-v2.entry.js +53 -0
  97. package/dist/xv-webcomponents/xv-table-v2.entry.js.map +1 -0
  98. package/dist/xv-webcomponents/xv-tabs-v2.entry.esm.js.map +1 -0
  99. package/dist/xv-webcomponents/xv-tabs-v2.entry.js +109 -0
  100. package/dist/xv-webcomponents/xv-tabs-v2.entry.js.map +1 -0
  101. package/dist/xv-webcomponents/xv-tag-v2.entry.esm.js.map +1 -0
  102. package/dist/xv-webcomponents/xv-tag-v2.entry.js +29 -0
  103. package/dist/xv-webcomponents/xv-tag-v2.entry.js.map +1 -0
  104. package/dist/xv-webcomponents/xv-text-input-v2.entry.esm.js.map +1 -0
  105. package/dist/xv-webcomponents/xv-text-input-v2.entry.js +65 -0
  106. package/dist/xv-webcomponents/xv-text-input-v2.entry.js.map +1 -0
  107. package/dist/xv-webcomponents/xv-tooltip-v2.entry.esm.js.map +1 -0
  108. package/dist/xv-webcomponents/xv-tooltip-v2.entry.js +24 -0
  109. package/dist/xv-webcomponents/xv-tooltip-v2.entry.js.map +1 -0
  110. package/dist/xv-webcomponents/xv-user-menu.entry.esm.js.map +1 -0
  111. package/dist/xv-webcomponents/xv-user-menu.entry.js +43 -0
  112. package/dist/xv-webcomponents/xv-user-menu.entry.js.map +1 -0
  113. package/dist/xv-webcomponents/xv-webcomponents.esm.js +49 -1
  114. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  115. package/package.json +53 -53
  116. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -8
  117. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  118. package/dist/cjs/index-BE3kw7I4.js +0 -36
  119. package/dist/cjs/index-BE3kw7I4.js.map +0 -1
  120. package/dist/cjs/index-MLh9SbX2.js +0 -1917
  121. package/dist/cjs/index-MLh9SbX2.js.map +0 -1
  122. package/dist/cjs/index.cjs.js +0 -10
  123. package/dist/cjs/index.cjs.js.map +0 -1
  124. package/dist/cjs/loader.cjs.js +0 -16
  125. package/dist/cjs/loader.cjs.js.map +0 -1
  126. package/dist/cjs/xv-accordion-v2_33.cjs.entry.js +0 -3411
  127. package/dist/cjs/xv-accordion-v2_33.cjs.entry.js.map +0 -1
  128. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +0 -20
  129. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js.map +0 -1
  130. package/dist/cjs/xv-breadcrumbs-v2.entry.cjs.js.map +0 -1
  131. package/dist/cjs/xv-webcomponents.cjs.js +0 -28
  132. package/dist/cjs/xv-webcomponents.cjs.js.map +0 -1
  133. package/dist/collection/assets/fonts/fontawesome5/fa-brands-400.svg +0 -3717
  134. package/dist/collection/assets/fonts/fontawesome5/fa-duotone-900.svg +0 -15326
  135. package/dist/collection/assets/fonts/fontawesome5/fa-light-300.svg +0 -12420
  136. package/dist/collection/assets/fonts/fontawesome5/fa-regular-400.svg +0 -11323
  137. package/dist/collection/assets/fonts/fontawesome5/fa-solid-900.svg +0 -9653
  138. package/dist/collection/collection-manifest.json +0 -45
  139. package/dist/collection/components/xv-accordion/xv-accordion.css +0 -3
  140. package/dist/collection/components/xv-accordion/xv-accordion.js +0 -163
  141. package/dist/collection/components/xv-accordion/xv-accordion.js.map +0 -1
  142. package/dist/collection/components/xv-accordion-item/xv-accordion-item.css +0 -68
  143. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +0 -132
  144. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js.map +0 -1
  145. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.css +0 -3
  146. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +0 -19
  147. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js.map +0 -1
  148. package/dist/collection/components/xv-button/xv-button-v2.css +0 -173
  149. package/dist/collection/components/xv-button/xv-button.js +0 -229
  150. package/dist/collection/components/xv-button/xv-button.js.map +0 -1
  151. package/dist/collection/components/xv-card/xv-card.css +0 -63
  152. package/dist/collection/components/xv-card/xv-card.js +0 -122
  153. package/dist/collection/components/xv-card/xv-card.js.map +0 -1
  154. package/dist/collection/components/xv-checkbox/xv-checkbox.css +0 -138
  155. package/dist/collection/components/xv-checkbox/xv-checkbox.js +0 -402
  156. package/dist/collection/components/xv-checkbox/xv-checkbox.js.map +0 -1
  157. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.css +0 -30
  158. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +0 -80
  159. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js.map +0 -1
  160. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.css +0 -4
  161. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +0 -42
  162. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js.map +0 -1
  163. package/dist/collection/components/xv-data-table/xv-data-table.css +0 -51
  164. package/dist/collection/components/xv-data-table/xv-data-table.js +0 -130
  165. package/dist/collection/components/xv-data-table/xv-data-table.js.map +0 -1
  166. package/dist/collection/components/xv-dropdown/_vars.js +0 -2
  167. package/dist/collection/components/xv-dropdown/_vars.js.map +0 -1
  168. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.css +0 -14
  169. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +0 -153
  170. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js.map +0 -1
  171. package/dist/collection/components/xv-dropdown/xv-dropdown.css +0 -232
  172. package/dist/collection/components/xv-dropdown/xv-dropdown.js +0 -443
  173. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +0 -1
  174. package/dist/collection/components/xv-file-uploader/_vars.js +0 -6
  175. package/dist/collection/components/xv-file-uploader/_vars.js.map +0 -1
  176. package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +0 -136
  177. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +0 -448
  178. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js.map +0 -1
  179. package/dist/collection/components/xv-footer/xv-footer.css +0 -230
  180. package/dist/collection/components/xv-footer/xv-footer.js +0 -37
  181. package/dist/collection/components/xv-footer/xv-footer.js.map +0 -1
  182. package/dist/collection/components/xv-header/xv-header.css +0 -22587
  183. package/dist/collection/components/xv-header/xv-header.js +0 -54
  184. package/dist/collection/components/xv-header/xv-header.js.map +0 -1
  185. package/dist/collection/components/xv-link/xv-link.css +0 -66
  186. package/dist/collection/components/xv-link/xv-link.js +0 -132
  187. package/dist/collection/components/xv-link/xv-link.js.map +0 -1
  188. package/dist/collection/components/xv-loader/xv-loader.css +0 -65
  189. package/dist/collection/components/xv-loader/xv-loader.js +0 -106
  190. package/dist/collection/components/xv-loader/xv-loader.js.map +0 -1
  191. package/dist/collection/components/xv-login-modal/xv-login-modal.css +0 -22575
  192. package/dist/collection/components/xv-login-modal/xv-login-modal.js +0 -146
  193. package/dist/collection/components/xv-login-modal/xv-login-modal.js.map +0 -1
  194. package/dist/collection/components/xv-modal/xv-modal.css +0 -102
  195. package/dist/collection/components/xv-modal/xv-modal.js +0 -226
  196. package/dist/collection/components/xv-modal/xv-modal.js.map +0 -1
  197. package/dist/collection/components/xv-notification/_vars.js +0 -8
  198. package/dist/collection/components/xv-notification/_vars.js.map +0 -1
  199. package/dist/collection/components/xv-notification/xv-notification.css +0 -113
  200. package/dist/collection/components/xv-notification/xv-notification.js +0 -118
  201. package/dist/collection/components/xv-notification/xv-notification.js.map +0 -1
  202. package/dist/collection/components/xv-number-input/xv-number-input.css +0 -128
  203. package/dist/collection/components/xv-number-input/xv-number-input.js +0 -373
  204. package/dist/collection/components/xv-number-input/xv-number-input.js.map +0 -1
  205. package/dist/collection/components/xv-overflow-menu/_vars.js +0 -6
  206. package/dist/collection/components/xv-overflow-menu/_vars.js.map +0 -1
  207. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.css +0 -45
  208. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +0 -137
  209. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js.map +0 -1
  210. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +0 -105
  211. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +0 -202
  212. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js.map +0 -1
  213. package/dist/collection/components/xv-progress-indicator/_vars.js.map +0 -1
  214. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.css +0 -96
  215. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +0 -54
  216. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js.map +0 -1
  217. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.css +0 -45
  218. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +0 -157
  219. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js.map +0 -1
  220. package/dist/collection/components/xv-table/_vars.js +0 -9
  221. package/dist/collection/components/xv-table/_vars.js.map +0 -1
  222. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.css +0 -93
  223. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +0 -160
  224. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +0 -1
  225. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.css +0 -58
  226. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +0 -76
  227. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js.map +0 -1
  228. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +0 -39
  229. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +0 -333
  230. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js.map +0 -1
  231. package/dist/collection/components/xv-table/xv-table.css +0 -137
  232. package/dist/collection/components/xv-table/xv-table.js +0 -159
  233. package/dist/collection/components/xv-table/xv-table.js.map +0 -1
  234. package/dist/collection/components/xv-tabs/_vars.js +0 -11
  235. package/dist/collection/components/xv-tabs/_vars.js.map +0 -1
  236. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.css +0 -10
  237. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +0 -106
  238. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js.map +0 -1
  239. package/dist/collection/components/xv-tabs/xv-tabs.css +0 -139
  240. package/dist/collection/components/xv-tabs/xv-tabs.js +0 -221
  241. package/dist/collection/components/xv-tabs/xv-tabs.js.map +0 -1
  242. package/dist/collection/components/xv-tag/xv-tag.css +0 -97
  243. package/dist/collection/components/xv-tag/xv-tag.js +0 -158
  244. package/dist/collection/components/xv-tag/xv-tag.js.map +0 -1
  245. package/dist/collection/components/xv-text-input/xv-text-input.css +0 -144
  246. package/dist/collection/components/xv-text-input/xv-text-input.js +0 -324
  247. package/dist/collection/components/xv-text-input/xv-text-input.js.map +0 -1
  248. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.css +0 -95
  249. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +0 -201
  250. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js.map +0 -1
  251. package/dist/collection/components/xv-tooltip/xv-tooltip.css +0 -43
  252. package/dist/collection/components/xv-tooltip/xv-tooltip.js +0 -114
  253. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +0 -1
  254. package/dist/collection/index.js +0 -11
  255. package/dist/collection/index.js.map +0 -1
  256. package/dist/collection/scss/xv/images/xv-sprite.svg +0 -1
  257. package/dist/collection/scss/xv/sprite/images/xv-sprite.svg +0 -1
  258. package/dist/collection/types/enum.js.map +0 -1
  259. package/dist/collection/utils/utils.js.map +0 -1
  260. package/dist/esm/app-globals-DQuL1Twl.js +0 -6
  261. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  262. package/dist/esm/index-DLYJiP99.js +0 -1907
  263. package/dist/esm/index-DLYJiP99.js.map +0 -1
  264. package/dist/esm/index-NvoCloOY.js +0 -31
  265. package/dist/esm/index-NvoCloOY.js.map +0 -1
  266. package/dist/esm/index.js +0 -4
  267. package/dist/esm/index.js.map +0 -1
  268. package/dist/esm/loader.js +0 -14
  269. package/dist/esm/loader.js.map +0 -1
  270. package/dist/esm/xv-accordion-v2_33.entry.js +0 -3377
  271. package/dist/esm/xv-accordion-v2_33.entry.js.map +0 -1
  272. package/dist/esm/xv-breadcrumbs-v2.entry.js +0 -18
  273. package/dist/esm/xv-breadcrumbs-v2.entry.js.map +0 -1
  274. package/dist/esm/xv-webcomponents.js +0 -24
  275. package/dist/esm/xv-webcomponents.js.map +0 -1
  276. package/dist/index.cjs.js +0 -1
  277. package/dist/index.js +0 -1
  278. package/dist/types/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.d.ts +0 -6
  279. package/dist/types/components/xv-data-table/xv-data-table-row/xv-data-table-row.d.ts +0 -4
  280. package/dist/types/components/xv-data-table/xv-data-table.d.ts +0 -9
  281. package/dist/types/components/xv-file-uploader/_vars.d.ts +0 -4
  282. package/dist/types/components/xv-file-uploader/xv-file-uploader.d.ts +0 -36
  283. package/dist/types/components/xv-number-input/xv-number-input.d.ts +0 -26
  284. package/dist/types/components/xv-toggle-tip/xv-toggle-tip.d.ts +0 -19
  285. package/dist/xv-webcomponents/p-5b63a259.entry.js +0 -2
  286. package/dist/xv-webcomponents/p-5b63a259.entry.js.map +0 -1
  287. package/dist/xv-webcomponents/p-DLYJiP99.js +0 -3
  288. package/dist/xv-webcomponents/p-DLYJiP99.js.map +0 -1
  289. package/dist/xv-webcomponents/p-DQuL1Twl.js +0 -2
  290. package/dist/xv-webcomponents/p-DQuL1Twl.js.map +0 -1
  291. package/dist/xv-webcomponents/p-NvoCloOY.js +0 -2
  292. package/dist/xv-webcomponents/p-NvoCloOY.js.map +0 -1
  293. package/dist/xv-webcomponents/p-ec72208c.entry.js +0 -2
  294. package/dist/xv-webcomponents/p-ec72208c.entry.js.map +0 -1
  295. package/loader/cdn.js +0 -1
  296. package/loader/index.cjs.js +0 -1
  297. package/loader/index.d.ts +0 -24
  298. package/loader/index.es2017.js +0 -1
  299. package/loader/index.js +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"names":["xvAccordionCss","XvAccordion","constructor","hostRef","this","multiple","xvId","uidGenerator","opened","Set","toggleItem","value","has","delete","clear","add","accordionChange","emit","id","componentWillLoad","render","h","Host","key","class","xvAccordionItemCss","XvAccordionItem","disabled","isOpen","handleAccordionChange","event","parentAccordionId","_a","el","closest","getAttribute","detail","toggle","_b","call","onClick","bind","label","SIZE_VAR","xvButtonV2Css","XvButton","variant","size","MD","loading","block","type","hasLeftIcon","hasRightIcon","hasContent","handleSlotChangeLeft","target","assignedElements","length","handleSlotChangeContent","assignedNodes","some","node","nodeType","Node","ELEMENT_NODE","TEXT_NODE","textContent","trim","handleSlotChangeRight","handleClick","internals","form","requestSubmit","reset","part","undefined","ariaLabel","XL","LG","name","onSlotchange","xvCardCss","XvCard","media","src","alt","header","body","footer","xvCheckboxCss","XvCheckbox","checked","indeterminate","readonly","required","partial","hasFocus","onInput","e","inputEvent","onChange","changeEvent","onFocus","focusEvent","onBlur","blurEvent","attachInternals","connectedCallback","setFormValue","onCheckedChange","newValue","ref","inputEl","error","componentDidLoad","componentDidUpdate","formResetCallback","formStateRestoreCallback","state","xvDataTableCss","XvDataTable","columnWidths","role","description","map","width","style","xvDataTableCellCss","XvDataTableCell","multiline","isNaN","xvDataTableRowCss","XvDataTableRow","DropdownItemSelector","xvDropdownCss","XvDropdown","selected","selectedMap","Map","setSelected","optionNodes","values","Array","from","options","querySelectorAll","v","text","handleOpen","open","handleClickOutside","ev","contains","addListeners","document","addEventListener","removeListeners","removeEventListener","setDefaultValues","defaultValue","setTimeout","forEach","option","dropdownItemData","innerText","setAttr","set","openChangeHandle","handleItemSelected","hasItem","optionElements","changeSelection","tabindex","info","message","join","placeholder","renderIcon","focusable","preserveAspectRatio","xmlns","fill","height","viewBox","d","helper","warning","disconnectedCallback","XS","xvDropdownItemCss","XvDropdownItem","itemSelected","XvFileUploaderVariants","xvFileUploaderCss","XvFileUploader","BUTTON","accept","maxFileSizeMB","maxFiles","files","loadingStates","errors","dragActive","errorMessages","onFileSelect","input","selectedFiles","handleFiles","onDrop","preventDefault","droppedFiles","dataTransfer","validation","filesChange","onDragOver","onDragLeave","maxSize","seenFileNames","uniqueFiles","file","push","extension","split","pop","toLowerCase","isAccepted","normalized","replace","removeFile","index","slice","fileInput","click","addText","active","hidden","withError","_renderLoaderState","_renderError","errorIcon","_c","Fragment","slot","primary","secondary","xvFooterCss","Xvfooter","htmlContent","response","fetch","console","innerHTML","xvHeaderCss","XvHeader","showLoginModal","openLoginModal","closeLoginModal","parser","DOMParser","doc","parseFromString","mixedMenu","querySelector","allCategoriesGenerals","allCategoriesContainer","appendChild","href","display","visible","onClose","action","method","autocomplete","xvLinkCss","XvLink","preventLinkHandler","stopPropagation","xvLoaderCss","XvLoader","show","spinner","xvLoginModalCss","XvLoginModal","oauthProviders","bookNow","returnUrl","passwordLoginEnabled","oauthLoginEnabled","passwordRegistrationEnabled","configurationName","xvMvcConfigName","contactUrl","handleClose","close","setReturnUrl","readMetaNavCookie","displayName","providerName","icon","buttonClass","params","URLSearchParams","window","location","search","url","get","includes","metaNavCookie","cookie","find","row","startsWith","cookieValue","decodeURIComponent","metaNavObj","JSON","parse","PasswordLoginEnabled","PasswordRegistrationEnabled","ConfigurationName","XvMvcConfigName","ContactUrl","warn","renderPasswordLogin","rel","renderOAuthProviders","provider","maxWidth","title","toString","renderFooter","encodeURIComponent","tabIndex","autoComplete","htmlFor","xvModalCss","XvModal","permanent","overflow","triggerEl","onBackdropClick","async","currentTarget","closeModal","removeTriggerListener","openModal","setupTrigger","shadowRoot","assigned","openChange","backdrop","modal_content","NOTIFICATION_VARIANTS","xvNotificationCss","XvNotification","INFO","dismissible","closeHandle","cls","ERROR","SUCCESS","WARNING","xvNumberInputCss","XvNumberInput","step","increment","max","setValue","decrement","min","handleInput","num","parseFloat","valueChange","control_input","xvOverflowMenuCss","XvOverflowMenu","position","handleSelectItem","onOpenToggle","selectItem","handleKeyDown","btn","list","OverflowMenuVariant","xvOverflowMenuItemCss","XvOverflowMenuItem","DEFAULT","itemClick","PROGRESS_VARIANTS","PROGRESS_ITEM_STATUS","xvProgressIndicatorCss","XvProgressIndicator","progress","updateChildItems","items","children","itemsCount","childElementCount","progressPerItem","item","itemProgressStart","status","localProgress","Math","DONE","IN_PROGRESS","NO_STARTED","setAttribute","line","xvProgressIndicatorItemCss","XvProgressIndicatorItem","xvTabCss","XvTab","xvTableCss","XvTable","selectedCount","handleCheckedChange","expandable","setColsSizeTemplate","colsSize","setProperty","batchVisible","XV_SORT_DIR","XV_EXPANDABLE_KEY","XV_TABLE_TAG","xvTableCellCss","XvTableCell","handleSort","sort","NONE","ASC","DESC","parentElement","cell","hasAttribute","sortChange","xvTableExpandCss","XvTableExpand","handleExpand","expandableContent","xvTableRowCss","XvTableRow","checkHandle","selectRow","checkedChangeHandle","checkedChange","setInitialAttrs","hover","tableEl","onEventChange","TAB_TAGS","TABS_VATIANT","xvTabsCss","XvTabs","tabElements","showArrows","collectTabs","TAB","tab","updateArrowVisibility","container","scrollWidth","clientWidth","updateTabClasses","i","classList","handleTabClick","activeChange","Number","scrollToActiveTab","scrollIntoView","behavior","inline","setTab","count","currentIdx","findIndex","nextIdx","nextTab","emptyMessage","componentDidRender","xvTagCss","XvTag","color","bg","closeable","closeHandler","closeClick","background","xvTextInputCss","XvTextInput","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","nodeName","getWindow","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","applyStyles","_ref","Object","keys","elements","styles","attributes","assign","removeAttribute","effect","_ref2","initialStyles","strategy","margin","arrow","styleProperties","hasOwnProperty","property","attribute","applyStyles$1","enabled","phase","fn","requires","getBasePlacement","round","getUAString","uaData","navigator","userAgentData","brands","isArray","brand","version","userAgent","isLayoutViewport","test","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","x","offsetLeft","y","offsetTop","getLayoutRect","abs","parent","child","rootNode","getRootNode","next","isSameNode","parentNode","host","getComputedStyle","isTableElement","indexOf","getDocumentElement","documentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","rects","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","centerToReference","center","offset","axisProp","centerOffset","_options$element","arrow$1","requiresIfExists","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","devicePixelRatio","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","data","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","update","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","pageXOffset","scrollTop","pageYOffset","getWindowScrollBarX","getViewportRect","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","scrollHeight","direction","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","isBody","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","clientTop","clientLeft","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","invertDistance","skidding","distance","_options$offset","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","order","modifiers","visited","result","modifier","dep","depModifier","orderModifiers","orderedModifiers","debounce","pending","Promise","resolve","then","mergeByName","merged","current","existing","DEFAULT_OPTIONS","areValidElements","arguments","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","createPopper","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","m","runModifierEffects","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","destroy","onFirstUpdate","_ref$options","cleanupFn","noopFn","xvToggleTipCss","XvToggleTip","destroyPopper","popperInstance","requestAnimationFrame","setPopover","popoverEl","popover","xvTooltipCss","XvTooltip","onMouseEnter","onMouseLeave","tooltipEl"],"sources":["src/components/xv-accordion/xv-accordion.scss?tag=xv-accordion-v2&encapsulation=shadow","src/components/xv-accordion/xv-accordion.tsx","src/components/xv-accordion-item/xv-accordion-item.scss?tag=xv-accordion-v2-item&encapsulation=shadow","src/components/xv-accordion-item/xv-accordion-item.tsx","src/types/enum.ts","src/components/xv-button/xv-button-v2.scss?tag=xv-button-v2&encapsulation=shadow","src/components/xv-button/xv-button.tsx","src/components/xv-card/xv-card.scss?tag=xv-card-v2&encapsulation=shadow","src/components/xv-card/xv-card.tsx","src/components/xv-checkbox/xv-checkbox.scss?tag=xv-checkbox-v2&encapsulation=shadow","src/components/xv-checkbox/xv-checkbox.tsx","src/components/xv-data-table/xv-data-table.scss?tag=xv-data-table&encapsulation=shadow","src/components/xv-data-table/xv-data-table.tsx","src/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.scss?tag=xv-data-table-cell&encapsulation=shadow","src/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.tsx","src/components/xv-data-table/xv-data-table-row/xv-data-table-row.scss?tag=xv-data-table-row&encapsulation=shadow","src/components/xv-data-table/xv-data-table-row/xv-data-table-row.tsx","src/components/xv-dropdown/_vars.ts","src/components/xv-dropdown/xv-dropdown.scss?tag=xv-dropdown-v2&encapsulation=shadow","src/components/xv-dropdown/xv-dropdown.tsx","src/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.scss?tag=xv-dropdown-v2-item&encapsulation=shadow","src/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.tsx","src/components/xv-file-uploader/_vars.ts","src/components/xv-file-uploader/xv-file-uploader.scss?tag=xv-file-uploader&encapsulation=shadow","src/components/xv-file-uploader/xv-file-uploader.tsx","src/components/xv-footer/xv-footer.scss?tag=xv-footer","src/components/xv-footer/xv-footer.tsx","src/components/xv-header/xv-header.scss?tag=xv-header","src/components/xv-header/xv-header.tsx","src/components/xv-link/xv-link.scss?tag=xv-link-v2&encapsulation=shadow","src/components/xv-link/xv-link.tsx","src/components/xv-loader/xv-loader.scss?tag=xv-loader-v2&encapsulation=shadow","src/components/xv-loader/xv-loader.tsx","src/components/xv-login-modal/xv-login-modal.scss?tag=xv-login-modal&encapsulation=shadow","src/components/xv-login-modal/xv-login-modal.tsx","src/components/xv-modal/xv-modal.scss?tag=xv-modal-v2&encapsulation=shadow","src/components/xv-modal/xv-modal.tsx","src/components/xv-notification/_vars.ts","src/components/xv-notification/xv-notification.scss?tag=xv-notification-v2&encapsulation=shadow","src/components/xv-notification/xv-notification.tsx","src/components/xv-number-input/xv-number-input.scss?tag=xv-number-input-v2&encapsulation=shadow","src/components/xv-number-input/xv-number-input.tsx","src/components/xv-overflow-menu/xv-overflow-menu.scss?tag=xv-overflow-menu-v2&encapsulation=shadow","src/components/xv-overflow-menu/xv-overflow-menu.tsx","src/components/xv-overflow-menu/_vars.ts","src/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.scss?tag=xv-overflow-menu-v2-item&encapsulation=shadow","src/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.tsx","src/components/xv-progress-indicator/_vars.ts","src/components/xv-progress-indicator/xv-progress-indicator.scss?tag=xv-progress-indicator-v2&encapsulation=shadow","src/components/xv-progress-indicator/xv-progress-indicator.tsx","src/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.scss?tag=xv-progress-indicator-v2-item&encapsulation=shadow","src/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.tsx","src/components/xv-tabs/xv-tab/xv-tab.scss?tag=xv-tab-v2&encapsulation=shadow","src/components/xv-tabs/xv-tab/xv-tab.tsx","src/components/xv-table/xv-table.scss?tag=xv-table-v2&encapsulation=shadow","src/components/xv-table/xv-table.tsx","src/components/xv-table/_vars.ts","src/components/xv-table/xv-table-cell/xv-table-cell.scss?tag=xv-table-v2-cell&encapsulation=shadow","src/components/xv-table/xv-table-cell/xv-table-cell.tsx","src/components/xv-table/xv-table-expand/xv-table-expand.scss?tag=xv-table-v2-expand&encapsulation=shadow","src/components/xv-table/xv-table-expand/xv-table-expand.tsx","src/components/xv-table/xv-table-row/xv-table-row.scss?tag=xv-table-v2-row&encapsulation=shadow","src/components/xv-table/xv-table-row/xv-table-row.tsx","src/components/xv-tabs/_vars.ts","src/components/xv-tabs/xv-tabs.scss?tag=xv-tabs-v2&encapsulation=shadow","src/components/xv-tabs/xv-tabs.tsx","src/components/xv-tag/xv-tag.scss?tag=xv-tag-v2&encapsulation=shadow","src/components/xv-tag/xv-tag.tsx","src/components/xv-text-input/xv-text-input.scss?tag=xv-text-input-v2&encapsulation=shadow","src/components/xv-text-input/xv-text-input.tsx","node_modules/@popperjs/core/lib/enums.js","node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","node_modules/@popperjs/core/lib/dom-utils/getWindow.js","node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","node_modules/@popperjs/core/lib/modifiers/applyStyles.js","node_modules/@popperjs/core/lib/utils/getBasePlacement.js","node_modules/@popperjs/core/lib/utils/math.js","node_modules/@popperjs/core/lib/utils/userAgent.js","node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","node_modules/@popperjs/core/lib/dom-utils/contains.js","node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","node_modules/@popperjs/core/lib/utils/within.js","node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","node_modules/@popperjs/core/lib/utils/expandToHashMap.js","node_modules/@popperjs/core/lib/modifiers/arrow.js","node_modules/@popperjs/core/lib/utils/getVariation.js","node_modules/@popperjs/core/lib/modifiers/computeStyles.js","node_modules/@popperjs/core/lib/modifiers/eventListeners.js","node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","node_modules/@popperjs/core/lib/utils/rectToClientRect.js","node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","node_modules/@popperjs/core/lib/utils/computeOffsets.js","node_modules/@popperjs/core/lib/utils/detectOverflow.js","node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","node_modules/@popperjs/core/lib/modifiers/flip.js","node_modules/@popperjs/core/lib/modifiers/hide.js","node_modules/@popperjs/core/lib/modifiers/offset.js","node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","node_modules/@popperjs/core/lib/utils/getAltAxis.js","node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","node_modules/@popperjs/core/lib/utils/orderModifiers.js","node_modules/@popperjs/core/lib/utils/debounce.js","node_modules/@popperjs/core/lib/utils/mergeByName.js","node_modules/@popperjs/core/lib/createPopper.js","node_modules/@popperjs/core/lib/popper.js","src/components/xv-toggle-tip/xv-toggle-tip.scss?tag=xv-toggle-tip&encapsulation=shadow","src/components/xv-toggle-tip/xv-toggle-tip.tsx","src/components/xv-tooltip/xv-tooltip.scss?tag=xv-tooltip-v2","src/components/xv-tooltip/xv-tooltip.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h, Event, EventEmitter, Method, State, Prop } from '@stencil/core';\nimport { uidGenerator } from '../../utils/utils';\n\n@Component({\n tag: 'xv-accordion-v2',\n styleUrl: 'xv-accordion.scss',\n shadow: true,\n})\nexport class XvAccordion {\n @Prop() multiple: boolean = false;\n @Prop() xvId: string = uidGenerator();\n @Prop({ mutable: true }) value: string;\n @State() opened: Set<string> = new Set();\n @Event() accordionChange: EventEmitter<{ opened: Set<string>, id: string }>;\n\n @Method()\n async toggleItem(value: string) {\n if (this.opened.has(value)) {\n this.opened.delete(value);\n } else {\n if (!this.multiple) this.opened.clear();\n this.value = value;\n this.opened.add(this.value);\n }\n\n this.accordionChange.emit({ opened: this.opened, id: this.xvId });\n\n return { opened: this.opened, id: this.xvId };\n }\n\n componentWillLoad() {\n if (this.value) {\n return this.toggleItem(this.value);\n }\n }\n\n render() {\n return (\n <Host class=\"xv-accordion\" data-id={this.xvId}>\n <slot />\n </Host>\n );\n }\n}\n",":host {\n border-top: 1px solid var(--border-subtle-01);\n display: flex;\n flex-direction: column;\n font-family: var(--ff-body, inherit);\n}\n\n:host(.disabled) {\n .label {\n color: var(--text-disabled);\n &:hover {\n cursor: initial;\n background-color: transparent;\n }\n }\n}\n\n.label {\n padding: 14px 16px;\n display: inline-flex;\n align-items: center;\n column-gap: 20px;\n justify-content: space-between;\n text-align: left;\n color: var(--text-primary);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.16px;\n background-color: transparent;\n transition: background-color 200ms ease-in-out;\n &>span {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n }\n\n &:hover {\n cursor: pointer;\n background-color: var(--layer-hover-01);\n }\n\n &:after {\n content: '';\n border: solid black;\n border-width: 0 2px 2px 0;\n display: inline-block;\n padding: 4.66px;\n transition: transform 100ms ease-in-out;\n transform: rotate(45deg);\n }\n\n &.opened:after {\n transform: rotate(-135deg);\n }\n}\n\n.content {\n padding: 0 16px;\n text-align: left;\n color: var(--text-primary);\n font-size: 14px;\n overflow: hidden;\n max-height: 0;\n transition: max-height 300ms ease-in-out, padding 250ms ease 50ms;\n &.opened {\n padding: 14px 16px;\n max-height: 500px;\n }\n}\n","import { Component, Host, h, Element, Prop, State, Listen, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-accordion-v2-item',\n styleUrl: 'xv-accordion-item.scss',\n shadow: true,\n})\nexport class XvAccordionItem {\n @Element() el: HTMLElement;\n @Prop() disabled: boolean = false;\n @Prop() label: string;\n @Prop() value: string;\n @State() isOpen: boolean = false;\n @Event() itemToggle: EventEmitter;\n\n @Listen('accordionChange', { target: 'body' })\n handleAccordionChange(event: CustomEvent<{ opened: Set<string>, id: string }>) {\n const parentAccordionId = this.el.closest('[data-id]')?.getAttribute('data-id');\n if (event.detail.id !== parentAccordionId) return;\n this.isOpen = event.detail.opened.has(this.value);\n }\n\n toggle() {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n this.el.closest('xv-accordion-v2')?.toggleItem?.(this.value);\n }\n\n render() {\n return (\n <Host class={`${this.disabled ? 'disabled' : ''}`}>\n <label class={`label ${this.isOpen ? 'opened' : 'closed'}`} onClick={this.toggle.bind(this)}>\n <span>{this.label}</span>\n </label>\n <div class={`content ${this.isOpen ? 'opened' : 'closed'}`}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n","export enum SIZE_VAR {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n",":host {\n display: inline-block;\n}\n:host([block]) {\n display: block;\n width: 100%;\n}\n\n.xv-button {\n all: unset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-radius: 3px;\n font-size: var(--fz-md);\n font-family: var(--ff-body, Tahoma);\n font-style: normal;\n font-weight: 700;\n line-height: 128.571%;\n letter-spacing: 0.16px;\n cursor: pointer;\n position: relative;\n transition: background 0.2s, color 0.2s, border-color 0.2s;\n user-select: none;\n width: 100%;\n &:focus-visible {\n outline: 2px solid var(--focus);\n outline-offset: 2px;\n }\n\n // Base sizes\n &--xs {\n --xv-button-icon-size: 16px;\n\n padding: var(--spacing-02);\n height: var(--xv-button-icon-size);\n }\n\n &--sm {\n --xv-button-icon-size: 32px;\n padding: var(--spacing-03);\n height: var(--xv-button-icon-size);\n }\n\n &--md {\n --xv-button-icon-size: 40px;\n padding: var(--spacing-04);\n height: var(--xv-button-icon-size);\n }\n\n &--lg {\n --xv-button-icon-size: 48px;\n padding: var(--spacing-05);\n height: var(--xv-button-icon-size);\n }\n\n &--xl {\n --xv-button-icon-size: 60px;\n\n font-size: 1.1em;\n padding: var(--spacing-06);\n height: auto;\n }\n\n // Variant styles\n &--primary {\n background-color: var(--button-primary);\n color: var(--text-on-color);\n\n &:hover {\n background-color: var(--button-primary-hover);\n }\n\n &:active {\n background-color: var(--button-primary-active);\n }\n }\n\n &--accent {\n background-color: var(--button-accent);\n color: var(--text-on-color);\n\n &:hover {\n background-color: var(--button-accent-hover);\n }\n\n &:active {\n background-color: var(--button-accent-active);\n }\n }\n\n &--secondary {\n background-color: var(--button-secondary);\n border: 1px solid var(--border-subtle-01);\n\n &:hover {\n background-color: var(--button-secondary-hover);\n }\n\n &:active {\n background-color: var(--button-secondary-active);\n }\n }\n\n &--danger {\n background: var(--support-error);\n color: white;\n\n &:hover {\n background-color: #ba1b23;\n }\n\n &:active {\n background-color: #750e13;\n }\n\n &:disabled {\n background-color: var(--button-disabled);\n border-color: transparent;\n color: var(--text-on-color-disabled, #8B8B8B);\n }\n }\n\n &--tertiary {\n background-color: transparent;\n border: 1px solid var(--button-tertiary);\n\n &:hover {\n background-color: var(--button-tertiary-hover);\n }\n\n &:active {\n background-color: var(--button-tertiary-active);\n }\n\n &:disabled {\n color: var(--text-disabled);\n border-color: var(--button-disabled, #D1D1D1);\n background-color: transparent;\n }\n }\n\n &--ghost {\n background-color: transparent;\n color: var(--text-primary);\n\n &:hover {\n background-color: transparent;\n }\n\n &:active {\n background-color: rgba(139, 139, 139, 0.5);\n }\n\n &:disabled {\n color: var(--text-disabled);\n border-color: transparent;\n background-color: transparent;\n }\n }\n\n // Disabled & loading state\n &--primary:disabled,\n &--accent:disabled,\n &--secondary:disabled,\n &--danger:disabled {\n border-color: var(--border-subtle-01, #D1D1D1);\n background-color: var(--button-disabled, #D1D1D1);\n color: var(--text-on-color-disabled, #8B8B8B);\n }\n\n &--disabled {\n cursor: not-allowed;\n }\n\n // Loading state\n &--loading {\n pointer-events: none;\n opacity: 0.8;\n }\n\n // Label\n &__label {\n display: inline-flex;\n align-items: center;\n }\n\n // Loader\n &__loader {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n\n // Icon slots\n &__icon {\n display: inline-flex;\n align-items: center;\n }\n\n &--icon {\n &-left {\n .xv-button__icon--left {\n margin-inline-end: var(--spacing-05);\n }\n }\n\n &-right {\n .xv-button__icon--right {\n margin-inline-start: var(--spacing-05);\n }\n }\n\n // Button with icon only (no label)\n &-only {\n padding: 0;\n width: var(--xv-button-icon-size, 40px);\n height: var(--xv-button-icon-size, 40px);\n justify-content: center;\n\n .xv-button__icon {\n margin: 0;\n }\n }\n }\n}\n\n","import { Component, Prop, h, Element, State, Host, AttachInternals } from '@stencil/core';\r\nimport { SIZE_VAR } from '../../types/enum';\r\n\r\n\r\n@Component({\r\n tag: 'xv-button-v2',\r\n styleUrl: 'xv-button-v2.scss',\r\n shadow: true,\r\n formAssociated: true,\r\n})\r\nexport class XvButton {\r\n @Element() el: HTMLElement;\r\n\r\n /** Button label is optional you can use just inside content */\r\n @Prop({ reflect: true }) label?: string;\r\n /** Button variants */\r\n @Prop({ reflect: true }) variant: 'primary' | 'secondary' | 'ghost' | 'danger' | 'tertiary' = 'primary';\r\n /** Button size */\r\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\r\n /** Button disabled state */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n /** Button loading state */\r\n @Prop({ reflect: true }) loading: boolean = false;\r\n /** Button for full width */\r\n @Prop({ reflect: true }) block: boolean = false;\r\n /** Button type */\r\n @Prop({ reflect: true }) type: 'button' | 'submit' | 'reset' = 'button';\r\n\r\n @State() hasLeftIcon: boolean = false;\r\n @State() hasRightIcon: boolean = false;\r\n @State() hasContent: boolean = false;\r\n\r\n @AttachInternals() internals: ElementInternals;\r\n\r\n private handleSlotChangeLeft = (event: Event) => {\r\n this.hasLeftIcon = (event.target as HTMLSlotElement).assignedElements().length > 0;\r\n };\r\n\r\n private handleSlotChangeContent = (event: Event) => {\r\n this.hasContent = (event.target as HTMLSlotElement).assignedNodes().some(\r\n node =>\r\n node.nodeType === Node.ELEMENT_NODE ||\r\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== ''),\r\n );\r\n };\r\n\r\n private handleSlotChangeRight = (event: Event) => {\r\n this.hasRightIcon = (event.target as HTMLSlotElement).assignedElements().length > 0;\r\n };\r\n\r\n private handleClick = () => {\r\n if (this.type === 'submit') {\r\n this.internals.form?.requestSubmit();\r\n } else if (this.type === 'reset') {\r\n this.internals.form?.reset();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <button\r\n class={{\r\n 'xv-button': true,\r\n [`xv-button--${this.variant}`]: !!this.variant,\r\n [`xv-button--${this.size}`]: !!this.size,\r\n 'xv-button--disabled': this.disabled || this.loading,\r\n 'xv-button--block': this.block,\r\n 'xv-button--loading': this.loading,\r\n 'xv-button--icon-left': this.hasLeftIcon,\r\n 'xv-button--icon-right': this.hasRightIcon,\r\n 'xv-button--icon-only': !this.hasContent,\r\n }}\r\n part=\"button\"\r\n onClick={this.handleClick}\r\n type={this.type}\r\n disabled={this.disabled || this.loading}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n aria-label={this.el?.ariaLabel || 'XV button'}\r\n >\r\n {this.loading && (\r\n <xv-loader-v2 class=\"xv-button__loader\"\r\n size={this.size !== SIZE_VAR.XL ? this.size : SIZE_VAR.LG} />\r\n )}\r\n\r\n <span class=\"xv-button__icon xv-button__icon--left\">\r\n <slot name=\"icon-left\" onSlotchange={this.handleSlotChangeLeft}></slot>\r\n </span>\r\n\r\n <span class=\"xv-button__label\">\r\n <slot onSlotchange={this.handleSlotChangeContent}>\r\n {this.label}\r\n </slot>\r\n </span>\r\n\r\n <span class=\"xv-button__icon xv-button__icon--right\">\r\n <slot name=\"icon-right\" onSlotchange={this.handleSlotChangeRight}></slot>\r\n </span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n",":host {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n border: 1px solid var(--border-subtle-00);\n background: var(--layer-layer-02);\n box-shadow: 0 1px 3px 1px rgba(39, 52, 53, 0.15), 0 1px 2px 0 rgba(39, 52, 53, 0.30);\n font-family: var(--ff-body, inherit);\n overflow: visible !important;\n}\n\n:host(.xv-card_vertical) {\n //max-width: 298px;\n // TODO: wright down correct styling for card size\n width: 100%!important;\n}\n\n:host(.xv-card_horizontal) {\n flex-direction: row;\n display: flex;\n width: max-content;\n\n .xv-card_media {\n &__content, ::slotted([slot=\"media\"]) {\n min-height: 100%;\n max-height: 100%;\n max-width: 160px;\n min-width: 160px;\n }\n }\n}\n\n.xv-card {\n &_content {\n padding: 16px;\n display: flex;\n flex-direction: column;\n flex: 1;\n text-align: left;\n }\n\n &_media {\n &__content, ::slotted([slot=\"media\"]) {\n max-width: 100%;\n min-width: 100%;\n min-height: 199px;\n max-height: 199px;\n object-fit: cover;\n object-position: center;\n }\n }\n\n &_header {\n &__content, ::slotted([slot=\"header\"]) {\n margin: 0 0 8px;\n color: var(--text-primary);\n font-size: 16px;\n font-style: normal;\n font-weight: 700;\n line-height: 24px;\n letter-spacing: -0.6px;\n }\n }\n\n &_body {\n flex: 1;\n &__content, ::slotted([slot=\"body\"]) {\n margin: 0 0 8px;\n color: var(--text-secondary);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: -0.1px;\n }\n }\n\n &_footer {}\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-card-v2',\n styleUrl: 'xv-card.scss',\n shadow: true,\n})\nexport class XvCard {\n @Prop() variant: 'horizontal' | 'vertical' = 'vertical';\n @Prop() media: string;\n @Prop() header: string;\n @Prop() body: string;\n @Prop() footer: string;\n render() {\n return (\n <Host class={`xv-card xv-card_${this.variant}`} part={this.variant}>\n <div class=\"xv-card_media\">\n <slot name=\"media\">\n {this.media && <img class=\"xv-card_media__content\" src={this.media} alt={this.header} />}\n </slot>\n </div>\n\n <div class=\"xv-card_content\">\n <div class=\"xv-card_header\">\n <slot name=\"header\">\n {this.header && <p class=\"xv-card_header__content\">{this.header}</p>}\n </slot>\n </div>\n <div class=\"xv-card_body\">\n <slot name=\"body\">\n {this.body && <p class=\"xv-card_body__content\">{this.header}</p>}\n </slot>\n </div>\n <div class=\"xv-card_footer\">\n <slot name=\"footer\">{this.footer}</slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n","\n:host {\n --checkbox-size: max(1rem, 16px);\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: column;\n overflow: visible !important;\n}\n\n:host([error]) {\n .xv-checkbox .checkmark {\n border-color: var(--text-error, #D62512);\n }\n}\n\n.error,\n[name=\"info\"] {\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n font-size: var(--fz-sm, 12px);\n font-family: var(--ff-body, Tahoma);\n line-height: 133.333%;\n letter-spacing: 0.32px;\n}\n\n.error {\n margin-top: var(--gap-xs, 5px);\n color: var(--text-error, #D62512);\n &::before {\n margin-right: var(--gap-xs, 5px);\n content: \"!\";\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n font-size: var(--fz-sm, 12px);\n font-weight: bold;\n color: white;\n background-color: var(--text-error, #D62512);\n border-radius: 50%;\n }\n}\n\n.xv-checkbox {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n\n input[type='checkbox'] {\n position: absolute;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n margin: 0;\n padding: 0;\n opacity: 0;\n pointer-events: none;\n box-sizing: border-box;\n }\n\n .checkmark {\n width: var(--checkbox-size);\n min-width: var(--checkbox-size);\n height: var(--checkbox-size);\n min-height: var(--checkbox-size);\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 1.4px solid var(--icon-primary, #D1D1D1);\n border-radius: 2px;\n background-color: var(--background, #FFF);\n transition: all 0.2s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n input:checked + .checkmark {\n background-color: var(--background-brand, #97BF0D);\n border-color: var(--background-brand, #97BF0D);\n &:not(.checkmark-partial)::after {\n content: '';\n position: absolute;\n width: calc(var(--checkbox-size) / 4);\n height: calc(var(--checkbox-size) / 2.5);\n border: solid var(--background, #FFF);\n margin-bottom: calc(var(--checkbox-size) / 10);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n display: block;\n }\n &.checkmark-partial::after {\n content: '';\n position: absolute;\n width: calc(var(--checkbox-size) / 3);\n height: calc(var(--checkbox-size) / 10);\n background-color: var(--background, #FFF);\n }\n }\n\n input:focus + .checkmark {\n outline: 1.4px solid var(--focus, #8B8B8B);\n }\n\n .label {\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 128.571%;\n letter-spacing: 0.16px;\n &_str,\n ::slotted(*) {\n margin-left: 8px;\n }\n }\n\n &.readonly {\n cursor: initial;\n\n input:checked + .checkmark {\n background-color: var(--background, #FFF);\n border: 1.4px solid var(--icon-disabled, #D1D1D1);\n &:after {\n border-color: var(--icon-primary, #131313);\n }\n\n &-partial:after {\n background-color: var(--icon-primary, #131313);\n }\n }\n\n .checkmark {\n border: 1.4px solid var(--icon-disabled, #D1D1D1);\n }\n\n .label {\n color: var(--text-primary, #333);\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n .checkmark {\n border: 1.4px solid var(--icon-disabled, #D1D1D1);\n }\n\n .label {\n color: var(--text-disabled, rgba(19, 19, 19, 0.25));\n }\n }\n}\n","import { Component, h, Element, Prop, State, Event, EventEmitter, Watch, Host } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-checkbox-v2',\n styleUrl: 'xv-checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class XvCheckbox {\n private inputEl: HTMLInputElement;\n private internals: ElementInternals;\n\n @Element() el!: HTMLElement;\n\n /**\n * Default checked status\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false;\n /**\n * Using for forms\n */\n @Prop({ reflect: true }) indeterminate: boolean = false;\n /**\n * Disabled status\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n /**\n * Input name\n */\n @Prop({ reflect: true }) name: string;\n /**\n * Input value\n */\n @Prop({ reflect: true }) value: string = 'on';\n /**\n * Input readonly\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n /**\n * The same like default checkbox prop\n */\n @Prop({ reflect: true }) required: boolean = false;\n /**\n * Change checkmark icon to minus\n */\n @Prop({ reflect: true }) partial: boolean = false;\n /**\n * Can be used like property or like slot\n */\n @Prop() label: string;\n\n @Prop({ reflect: true }) size?: SIZE_VAR;\n @Prop({ reflect: true }) error?: string | boolean;\n\n @State() hasFocus: boolean = false;\n /**\n * event 'onEventChange'\n */\n @Event({ eventName: 'eventChange' }) changeEvent: EventEmitter<boolean>;\n /**\n * event 'onEventInput'\n */\n @Event({ eventName: 'eventInput' }) inputEvent: EventEmitter<boolean>;\n /**\n * event 'onEventFocus'\n */\n @Event({ eventName: 'eventFocus' }) focusEvent: EventEmitter<void>;\n /**\n * event 'onEventBlur'\n */\n @Event({ eventName: 'eventBlur' }) blurEvent: EventEmitter<void>;\n\n constructor() {\n this.internals = (this.el as any).attachInternals?.() || {};\n }\n\n connectedCallback() {\n if (this.internals?.setFormValue) {\n this.internals.setFormValue(this.checked ? this.value : null);\n }\n }\n\n @Watch('checked')\n onCheckedChange(newValue: boolean) {\n if (this.internals?.setFormValue) {\n this.internals.setFormValue(newValue ? this.value : null);\n }\n }\n\n private onInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.checked = target.checked;\n this.inputEvent.emit(this.checked);\n };\n\n private onChange = (e: Event) => {\n if (this.disabled || this.readonly) return;\n const target = e.target as HTMLInputElement;\n this.checked = target.checked;\n this.changeEvent.emit(this.checked);\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusEvent.emit();\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.blurEvent.emit();\n };\n\n render() {\n return (\n <Host>\n <label class={{ 'xv-checkbox': true, disabled: this.disabled, readonly: this.readonly }}>\n <input\n ref={el => (this.inputEl = el)}\n type=\"checkbox\"\n readonly={this.readonly}\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled || this.readonly}\n required={this.required}\n indeterminate={this.indeterminate}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n />\n <span class={`checkmark ${this.partial ? 'checkmark-partial' : ''}`} />\n <div class=\"label\">\n <slot>{this.label && <span class=\"label_str\">{this.label}</span>}</slot>\n </div>\n </label>\n <slot name=\"info\" />\n {!!this.error && <span class=\"error\">{this.error}</span>}\n </Host>\n );\n }\n\n componentDidLoad() {\n if (this.indeterminate) {\n this.inputEl.indeterminate = true;\n }\n }\n\n componentDidUpdate() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n formResetCallback() {\n this.checked = false;\n }\n\n formStateRestoreCallback(state: string) {\n this.checked = state === this.value;\n }\n}\n",":host {\n --xv-data-table-border-width: 1px;\n --xv-data-table-border-color: var(--border-subtle-01);\n --xv-data-table-padding-x: var(--spacing-05);\n --xv-data-table-padding-y: var(--spacing-05);\n --xv-data-table-row-bg: transparent;\n\n display: contents;\n width: inherit;\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 18px;\n letter-spacing: 0.16px;\n\n &>table {\n width: inherit;\n border-collapse: collapse;\n table-layout: fixed;\n }\n}\n\n:host([block]) {\n width: 100%;\n &>table {\n table-layout: fixed;\n }\n}\n\n:host([size=\"xs\"]) {\n --xv-data-table-padding-x: var(--spacing-02);\n --xv-data-table-padding-y: var(--spacing-02);\n}\n:host([size=\"sm\"]) {\n --xv-data-table-padding-x: var(--spacing-04);\n --xv-data-table-padding-y: var(--spacing-03);\n}\n:host([size=\"md\"]) {\n --xv-data-table-padding-x: var(--spacing-05);\n --xv-data-table-padding-y: var(--spacing-05);\n}\n:host([size=\"lg\"]) {\n --xv-data-table-padding-x: var(--spacing-05);\n --xv-data-table-padding-y: var(--spacing-06);\n}\n:host([size=\"xl\"]) {\n --xv-data-table-padding-x: var(--spacing-06);\n --xv-data-table-padding-y: var(--spacing-07);\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-data-table',\n styleUrl: 'xv-data-table.scss',\n shadow: true,\n})\nexport class XvDataTable {\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() label?: string;\n @Prop() description?: string;\n @Prop() block?: boolean;\n @Prop() columnWidths: (string | null)[] = [];\n\n render() {\n return (\n <Host class=\"xv-data-table\">\n <table role=\"table\">\n {(this.label || this.description) && (\n <caption>{this.label || this.description}</caption>\n )}\n {this.columnWidths.length > 0 && (\n <colgroup>\n {this.columnWidths.map((width = 'auto') => <col style={{ width }} />)}\n </colgroup>\n )}\n\n <slot />\n </table>\n </Host>\n );\n }\n}\n",":host {\n display: table-cell;\n border-style: solid;\n border-width: var(--xv-data-table-border-width, 0);\n border-color: var(--xv-data-table-border-color, transparent);\n padding-inline: var(--xv-data-table-padding-x, 0);\n padding-block: var(--xv-data-table-padding-y, 0);\n vertical-align: middle;\n word-break: break-all;\n font-style: normal;\n font-weight: 400;\n\n .line-clamp {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n:host(:not(.multiline)) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ::slotted(*) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-data-table-cell',\n styleUrl: 'xv-data-table-cell.scss',\n shadow: true,\n})\nexport class XvDataTableCell {\n @Prop() name?: string;\n @Prop() multiline: number;\n @Prop() width?: string;\n\n render() {\n return (\n <Host role=\"cell\" style={{ width: this.width }} class={{ multiline: this.multiline !== undefined }}>\n {!this.multiline || isNaN(this.multiline) ? <slot /> : (\n <div class=\"line-clamp\" style={{ ['-webkit-line-clamp']: `${this.multiline}` }}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: table-row;\n background-color: var(--xv-data-table-row-bg, transparent);\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-data-table-row',\n styleUrl: 'xv-data-table-row.scss',\n shadow: true,\n})\nexport class XvDataTableRow {\n @Prop() variant?: 'checkbox';\n\n render() {\n return (\n <Host role=\"row\">\n {this.variant === 'checkbox' && (\n <xv-data-table-cell width=\"1.98%\">\n <xv-checkbox-v2></xv-checkbox-v2>\n </xv-data-table-cell>\n )}\n <slot />\n </Host>\n );\n }\n}\n","export interface DropdownItemData {\n value: string | number;\n text: string;\n selected: boolean;\n}\n\nexport const DropdownItemSelector = '.xv-dropdown-item';\n",":host {\n --dropdown-padding-x: 16px;\n --dropdown-padding-y: 11px;\n --dropdown-max-width: 300px;\n\n display: block;\n position: relative;\n text-align: left;\n max-width: min(var(--dropdown-max-width), 100%);\n\n .label {\n display: block;\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px;\n letter-spacing: 0.32px;\n margin-bottom: 8px;\n ::slotted([slot=\"label\"]) {\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px;\n letter-spacing: 0.32px;\n }\n\n &_info {\n margin-left: var(--spacing-02);\n }\n }\n\n .control {\n background-blend-mode: multiply;\n border-radius: 3px;\n box-shadow: 0 0 0 1px #8B8B8B inset;\n transition: 0.2s ease-in-out background-color;\n cursor: pointer;\n margin: 0;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n padding: 0;\n border: 0;\n appearance: none;\n background-color: var(--field-02, #FFF);\n text-align: start;\n inline-size: 100%;\n position: relative;\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n block-size: calc(100% + 1px);\n outline: none;\n padding-block: var(--dropdown-padding-y);\n padding-inline: var(--dropdown-padding-x);\n text-overflow: ellipsis;\n vertical-align: top;\n white-space: nowrap;\n\n &_value, &_placeholder {\n flex: 1;\n margin: 0;\n overflow: hidden;\n color: var(--text-primary, #333);\n user-select: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--fz-body, Tahoma);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n letter-spacing: 0.16px;\n padding-inline: 0 1rem;\n }\n\n &_placeholder {\n color: var(--text-placeholder, #ACACAC);\n }\n\n &_icon {\n width: 18px;\n height: 18px;\n &.error {\n color: var(--support-error, #F1290E);\n }\n\n &.warning {\n color: var(--support-warning, #FF7F04)\n }\n }\n\n &_arrow {\n box-sizing: border-box;\n margin: 0;\n font-size: 100%;\n vertical-align: baseline;\n padding: 0;\n border: 0;\n appearance: none;\n background: none;\n text-align: start;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 1.5rem;\n inline-size: 1.5rem;\n inset-inline-end: 0.75rem;\n outline: none;\n transition: transform 70ms cubic-bezier(0.2, 0, 0.38, 0.9);\n }\n\n &:hover {\n background-color: var(--field-hover-02, #E9E9E9);\n }\n\n &:active {\n background-color: var(--layer-selected-02, #E3E3E3);\n }\n }\n\n .options {\n inset-block-start: 100%;\n margin-block-start: 1px;\n display: block;\n max-block-size: 13.75rem;\n box-shadow: 0 2px 6px rgba(0, 0, 0, .3);\n position: absolute;\n z-index: 10;\n inline-size: 100%;\n inset-inline: 0;\n overflow-y: auto;\n transition: max-height 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);\n border-radius: 3px;\n background-color: var(--field-02, #FFF);\n scrollbar-width: thin;\n scrollbar-color: var(--layer-accent-03) transparent;\n\n ::slotted(.xv-dropdown-item) {\n display: block;\n max-block-size: 13.75rem;\n inset-inline: 0;\n box-sizing: border-box;\n padding:\n var(--dropdown-padding-y)\n calc(var(--dropdown-padding-x) + 16px)\n var(--dropdown-padding-y)\n var(--dropdown-padding-x);\n position: relative;\n cursor: pointer;\n overflow: hidden;\n color: var(--text-secondary, #515151);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n letter-spacing: 0.16px;\n transition: 0.2s ease-in-out background-color;\n user-select: none;\n &:after {\n content: '';\n position: absolute;\n bottom: 0;\n height: 1px;\n left: 10px;\n width: calc(100% - 20px);\n background-color: var(--border-subtle-01);\n }\n }\n\n ::slotted(.xv-dropdown-item:hover) {\n background-color: var(--layer-hover-02, #F7F7F7);\n }\n\n ::slotted(.xv-dropdown-item:active) {\n background-color: var(--layer-selected-hover-02, #DADADA);\n }\n\n ::slotted(.xv-dropdown-item[selected]) {\n background-color: var(--layer-selected-02, #E3E3E3);\n }\n\n ::slotted(.xv-dropdown-item[selected]:hover) {\n background-color: var(--layer-selected-hover-02, #DADADA);\n }\n\n ::slotted(.xv-dropdown-item[disabled]) {\n background-color: transparent;\n opacity: 0.4;\n cursor: not-allowed;\n }\n }\n\n .helper {\n color: var(--text-helper, #646464);\n font-family: var(--ff-heading, \"IBM Plex Sans\");\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.32px;\n margin: 4px 0 0;\n padding: 0;\n }\n}\n\n:host([open]) {\n .control_arrow {\n transform: rotate(180deg);\n }\n}\n\n:host([disabled]) {\n opacity: 0.4;\n cursor: not-allowed;\n .control {\n cursor: inherit;\n &:hover, &:active, &:focus-within {\n background-color: transparent;\n }\n }\n}\n\n:host([error]) {\n .control {\n box-shadow: none;\n outline: 2px solid var(--support-support-error, #F1290E);\n }\n\n .helper {\n color: var(--text-error, #D62512);\n }\n}\n\n:host([size=\"xs\"]) {\n --dropdown-padding-y: 4px;\n}\n:host([size=\"sm\"]) {\n --dropdown-padding-y: 7px;\n}\n:host([size=\"md\"]) {\n --dropdown-padding-y: 11px;\n}\n:host([size=\"lg\"]) {\n --dropdown-padding-y: 15px;\n}\n:host([size=\"xl\"]) {\n --dropdown-padding-y: 16px;\n}\n","import { Component, Host, h, Prop, State, Element, Watch, Listen, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { DropdownItemData, DropdownItemSelector } from './_vars';\nimport { forEach, setAttr } from '../../utils/utils';\n\n@Component({\n tag: 'xv-dropdown-v2',\n styleUrl: 'xv-dropdown.scss',\n shadow: true,\n})\nexport class XvDropdown {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) multiple?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, mutable: true }) open?: boolean;\n @Prop({ reflect: true }) error?: string;\n @Prop({ reflect: true }) label?: string;\n @Prop({ reflect: true }) helper?: string;\n @Prop({ reflect: true }) warning?: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: false }) info?: string;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop({ attribute: 'default-value'}) defaultValue?: DropdownItemData['value'];\n\n @State() selected: DropdownItemData['text'][] = [];\n @State() selectedMap: Map<DropdownItemData['value'], DropdownItemData> = new Map();\n\n @Event() changeSelection: EventEmitter<DropdownItemData[]>;\n\n @Watch('open')\n openChangeHandle() {\n if (this.disabled) return;\n\n if (this.open) {\n this.addListeners();\n } else {\n this.removeListeners();\n }\n }\n\n @Listen('itemSelected')\n handleItemSelected({ detail }: CustomEvent<DropdownItemData>) {\n const hasItem = this.selectedMap.has(detail.value);\n\n if (this.multiple) {\n if (detail.selected) {\n if (!hasItem) this.selectedMap.set(detail.value, detail);\n } else {\n if (hasItem) {\n if (this.required && this.selectedMap.size === 1) return;\n this.selectedMap.delete(detail.value);\n }\n }\n } else {\n if (detail.selected) {\n this.selectedMap.clear();\n this.selectedMap.set(detail.value, detail);\n } else {\n if (!this.required) this.selectedMap.clear();\n }\n this.open = false;\n }\n\n const optionElements = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n optionElements,\n (option) => setAttr(option, 'selected', this.selectedMap.has(option.getAttribute('value')))\n );\n\n this.changeSelection.emit(this.setSelected(this.selectedMap, optionElements));\n }\n\n private setSelected = (selectedMap: typeof this.selectedMap, optionNodes?: NodeListOf<Element>): DropdownItemData[] => {\n const values = Array.from(selectedMap.values());\n const options = optionNodes || this.el.querySelectorAll(DropdownItemSelector);\n\n this.selected = values.length === options.length ?\n ['Alle ausgewählt'] : values.length > 2 ?\n [`${values.length} ausgewählt`] : values.map((v) => v.text);\n\n return values;\n };\n\n private handleOpen = () => {\n if (this.disabled || this.open || this.loading) return;\n this.open = true;\n };\n\n private handleClickOutside = (ev: MouseEvent) => {\n if (!this.open || this.el.contains(ev.target as Node)) return;\n\n if (this.open) this.open = false;\n }\n\n private addListeners = () => {\n document.body.addEventListener('click', this.handleClickOutside);\n }\n\n private removeListeners = () => {\n document.body.removeEventListener('click', this.handleClickOutside);\n }\n\n private setDefaultValues = () => {\n if (!this.defaultValue) return;\n\n // Needs to wait next Javascript tik\n setTimeout(() => {\n const options = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n options,\n (option) => {\n const dropdownItemData: DropdownItemData = {\n value: option.getAttribute('value'),\n text: (option as any).innerText,\n selected: `${this.defaultValue}` === option.getAttribute('value'),\n };\n\n if (dropdownItemData.selected) {\n setAttr(option, 'selected', dropdownItemData.selected);\n this.selectedMap.set(dropdownItemData.value, dropdownItemData);\n }\n }\n );\n\n this.setSelected(this.selectedMap, options);\n });\n };\n\n render() {\n return (\n <Host\n class=\"xv-dropdown\"\n role=\"combobox\"\n size={this.size}\n open={this.open}\n error={this.error}\n disabled={this.disabled}\n tabindex={this.disabled ? -1 : false}>\n <label class=\"label\">\n <slot name=\"label\">{this.label}</slot>\n {this.info && <xv-tooltip-v2 class=\"label_info\" message={this.info}></xv-tooltip-v2>}\n </label>\n\n <div class=\"xv-dropdown-control control\" onClick={this.handleOpen}>\n {this.selected.length ? (\n <p class=\"control_value\">{this.selected.join(', ')}</p>\n ) : (\n <p class=\"control_placeholder\">{this.placeholder || ''}</p>\n )}\n\n {this.renderIcon()}\n\n <svg class=\"control_arrow\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\" aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n </div>\n\n {this.open && <div class=\"options\">\n <slot key=\"xv-dropdown-options\" />\n </div>}\n\n {(this.helper || this.error || this.warning) && (\n <p class=\"helper\">{this.error || this.warning || this.helper}</p>\n )}\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setDefaultValues();\n }\n\n componentDidLoad() {\n this.openChangeHandle();\n }\n\n disconnectedCallback() {\n this.removeListeners();\n }\n\n private renderIcon(): undefined | HTMLElement {\n if (this.loading) {\n return <xv-loader-v2 class=\"control_icon error\" size={SIZE_VAR.XS} />\n }\n\n if (this.error) {\n return (\n <svg class=\"control_icon error\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\"\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\" />\n </svg>\n )\n }\n\n if (!this.error && !!this.warning) {\n return (\n <svg class=\"control_icon warning\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\" d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\" />\n </svg>\n );\n }\n\n return undefined;\n }\n}\n",":host {\n display: block;\n .checkmark {\n position: absolute;\n right: 12px;\n top: var(--dropdown-padding-y, 10px);\n width: 5px;\n height: 10px;\n border: solid var(--icon-primary, #333);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n transition: opacity 0.2s;\n }\n}\n\n\n","import { Component, Host, h, Event, EventEmitter, Listen, Prop, Element } from '@stencil/core';\nimport { DropdownItemData } from '../_vars';\n\n/**\n * xv-dropdown-item — custom dropdown list item\n * if you want to create new dropdown list item you need to extend current class properties and\n * events\n * should be created and emitted 'itemSelected' event\n */\n@Component({\n tag: 'xv-dropdown-v2-item',\n styleUrl: 'xv-dropdown-item.scss',\n shadow: true,\n})\nexport class XvDropdownItem {\n @Element() el: HTMLElement;\n @Prop() disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) value: DropdownItemData['value'] = '';\n @Prop({ reflect: true, mutable: true }) selected: DropdownItemData['selected'] = false;\n @Event() itemSelected: EventEmitter<DropdownItemData>;\n\n @Listen('click')\n handleClick() {\n if (this.disabled) return;\n\n this.itemSelected.emit({\n selected: !this.selected,\n value: this.value,\n text: this.el.innerText\n });\n }\n\n\n render() {\n return (\n <Host class=\"xv-dropdown-item\" value={this.value} role=\"option\" tabindex={this.disabled ? -1 : false}>\n <slot></slot>\n\n {this.selected && <span class=\"checkmark\" />}\n </Host>\n );\n }\n\n componentWillLoad() {\n if (!this.value) this.value = this.el.innerText;\n }\n}\n","export enum XvFileUploaderVariants {\n BUTTON = 'button',\n DRAG_DROP = 'drag-drop'\n}\n",":host {\n font-family: inherit;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05);\n font-size: 14px;\n\n .label {\n font-weight: 600;\n font-size: 1em;\n color: var(--text-primary);\n }\n\n .description {\n font-size: 1em;\n margin: 0;\n color: var(--text-secondary);\n }\n\n .upload-btn {\n padding: 0 1.14em;\n border-radius: 0.285em;\n background-color: var(--background-inverse);\n color: var(--text-inverse);\n border: none;\n cursor: pointer;\n font-size: 1em;\n height: 2.86em;\n transition: 250ms ease-in-out background-color;\n\n &:hover {\n background-color: var(--background-inverse-hover);\n }\n }\n\n .drop-zone {\n border: 1px dashed var(--border-strong-01);\n background-color: transparent;\n padding: 1.14em;\n border-radius: 0.285em;\n transition: border-color 0.2s ease, background-color 0.2s ease;\n font-size: 1em;\n cursor: pointer;\n\n &.active {\n border-color: var(--border-interactive);\n background-color: var(--background-active);\n }\n\n &:hover {\n background-color: var(--background-hover);\n }\n }\n\n .file-list {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n .file {\n border-radius: 3px;\n background-color: var(--layer-01, #F7F7F7);\n font-size: 1em;\n &_container {\n padding: var(--spacing-04) var(--spacing-05);\n display: flex;\n justify-content: space-between;\n align-items: center;\n &_name {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n color: var(--text-primary, #333);\n font-style: normal;\n font-weight: 400;\n line-height: 128.571%;\n letter-spacing: 0.16px;\n padding-right: var(--spacing-04);\n }\n\n &_errorIcon {\n color: var(--text-error);\n margin-right: var(--spacing-03);\n }\n }\n\n &.withError {\n outline: 2px solid var(--support-error);\n }\n }\n }\n\n .error-container {\n padding: var(--spacing-04) var(--spacing-05);\n border-top: 1px solid var(--border-subtle-01);\n font-size: 0.858em;\n font-style: normal;\n font-weight: 400;\n color: var(--text-error);\n &_primary,\n &_secondary {\n margin: 0;\n padding: 0;\n }\n\n &__secondary {\n color: var(--text-secondary, #515151);\n }\n }\n}\n\n:host(.disabled) {\n pointer-events: none;\n opacity: 0.6;\n\n .upload-btn,\n .drop-zone {\n cursor: not-allowed;\n background-color: var(--button-disabled-background, #ccc);\n color: var(--button-disabled-text, #666);\n border-color: var(--border-disabled, #bbb);\n }\n\n .remove-btn {\n display: none;\n }\n}\n\n// Size variants\n:host([size='xs']) {\n font-size: 10px;\n}\n:host([size='sm']) {\n font-size: 12px;\n}\n:host([size='md']) {\n font-size: 14px;\n}\n:host([size='lg']) {\n font-size: 18px;\n}\n:host([size='xl']) {\n font-size: 22px;\n}\n","import { Component, EventEmitter, Event, h, Host, Prop, State, Fragment } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { XvFileUploaderVariants } from './_vars';\n\n@Component({\n tag: 'xv-file-uploader',\n styleUrl: 'xv-file-uploader.scss',\n shadow: true,\n})\nexport class XvFileUploader {\n @Prop() label?: string;\n @Prop() description?: string;\n @Prop({ attribute: 'add-text' }) addText?: string;\n @Prop() variant: XvFileUploaderVariants = XvFileUploaderVariants.BUTTON;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() accept: string[] = [];\n @Prop({ attribute: 'max-file-size-mb' }) maxFileSizeMB: number = 5;\n @Prop({ attribute: 'max-files' }) maxFiles: number = 20;\n @Prop() multiple: boolean = true;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true, mutable: true }) files: File[] = [];\n @Prop({ reflect: true, mutable: true, attribute: 'loading-states' }) loadingStates: ('loading' | 'success' | 'uploaded')[] = [];\n @Prop({ reflect: true, mutable: true }) error?: string;\n @Prop({ reflect: true, mutable: true }) errors: string[] | { primary: string; secondary: string; }[] = [];\n\n @State() dragActive = false;\n @State() errorMessages: string[] = [];\n\n @Event() filesChange: EventEmitter<File[]>;\n\n private fileInput: HTMLInputElement;\n\n private onFileSelect = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const selectedFiles = Array.from(input.files || []);\n this.handleFiles(selectedFiles);\n };\n\n private onDrop = (event: DragEvent) => {\n event.preventDefault();\n this.dragActive = false;\n const droppedFiles = Array.from(event.dataTransfer?.files || []);\n this.handleFiles(droppedFiles);\n };\n\n private handleFiles = (files: File[]) => {\n this.files = this.validation(this.multiple ? [...this.files, ...files] : files);\n this.filesChange.emit(this.files);\n };\n\n private validation(files: File[]): File[] {\n const maxSize = this.maxFileSizeMB * 1024 * 1024;\n const seenFileNames = new Set<string>();\n const errorMessages: (string | null)[] = [];\n const uniqueFiles: File[] = [];\n\n for (const file of files) {\n let error: string | undefined = null;\n\n if (!seenFileNames.has(file.name)) {\n seenFileNames.add(file.name);\n uniqueFiles.push(file);\n }\n\n const extension = file.name.split('.').pop()?.toLowerCase();\n const isAccepted =\n this.accept.length === 0 ||\n this.accept.some(type => {\n const normalized = type.toLowerCase().replace(/^\\./, '');\n return normalized === extension;\n });\n\n if (!isAccepted) {\n error = 'Unsupported file type.';\n } else if (file.size > maxSize) {\n error = `File ${file.name} is too large.`;\n }\n\n errorMessages.push(error);\n }\n\n this.error = uniqueFiles.length > this.maxFiles\n ? `Only ${this.maxFiles} file(s) allowed.`\n : null;\n\n this.errorMessages = errorMessages;\n\n return uniqueFiles;\n }\n\n private removeFile(index: number) {\n this.files = this.validation([...this.files.slice(0, index), ...this.files.slice(index + 1)]);\n this.filesChange.emit(this.files);\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n }\n\n private onDragOver = (event: DragEvent) => {\n event.preventDefault();\n this.dragActive = true;\n };\n\n private onDragLeave = () => {\n this.dragActive = false;\n };\n\n render() {\n return (\n <Host class={{ 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled }}>\n {this.label && <label class=\"label\">{this.label}</label>}\n {this.description && <p class=\"description\">{this.description}</p>}\n {this.variant === 'button' ? (\n <button disabled={this.disabled} class=\"upload-btn\" onClick={() => this.fileInput.click()}>\n {this.addText || 'Dateien auswählen'}\n </button>\n ) : (\n <div\n class={{ 'drop-zone': true, active: this.dragActive }}\n onDrop={this.onDrop}\n onDragOver={this.onDragOver}\n onDragLeave={this.onDragLeave}\n onClick={() => this.fileInput.click()}\n >\n {this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.'}\n {this.accept?.length > 0 && <span> ({this.accept.join(', ')})</span>}\n </div>\n )}\n\n <input\n ref={el => (this.fileInput = el)}\n type=\"file\"\n hidden\n onChange={this.onFileSelect}\n multiple={this.multiple}\n accept={this.accept.map(type => `.${type}`).join(',')}\n />\n\n <ul class=\"file-list\">\n {this.files.map((file, index) => (\n <li class={{ file: true, withError: !!(this.errors?.[index] || this.errorMessages?.[index]) }}>\n <div class=\"file_container\">\n <span class=\"file_container_name\">{file.name}</span>\n {this._renderLoaderState(index)}\n </div>\n {this._renderError(index)}\n </li>\n ))}\n </ul>\n {this.error && (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{this.error}</p>\n </div>\n )}\n </Host>\n );\n }\n\n private _renderLoaderState(index: number) {\n const state = this.loadingStates?.[index] || null;\n\n const errorIcon = this.errors?.[index] || this.errorMessages?.[index] ? (\n <svg class=\"file_container_errorIcon\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\"\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\" />\n </svg>\n ) : null;\n\n switch (state) {\n case 'loading':\n return (\n <Fragment>\n {errorIcon}\n <xv-loader-v2 size={SIZE_VAR.XS} />\n </Fragment>\n );\n case 'success':\n return (\n <Fragment>\n {errorIcon}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 16\" fill=\"none\">\n <path\n d=\"M9 16C6.125 16 3.5 14.5 2.0625 12C0.625 9.53125 0.625 6.5 2.0625 4C3.5 1.53125 6.125 0 9 0C11.8438 0 14.4688 1.53125 15.9062 4C17.3438 6.5 17.3438 9.53125 15.9062 12C14.4688 14.5 11.8438 16 9 16ZM12.5312 6.53125H12.5C12.8125 6.25 12.8125 5.78125 12.5 5.46875C12.2188 5.1875 11.75 5.1875 11.4688 5.46875L8 8.96875L6.53125 7.5C6.21875 7.1875 5.75 7.1875 5.46875 7.5C5.15625 7.78125 5.15625 8.25 5.46875 8.53125L7.46875 10.5312C7.75 10.8438 8.21875 10.8438 8.53125 10.5312L12.5312 6.53125Z\"\n fill=\"#97BF0D\" />\n </svg>\n </Fragment>\n );\n case 'uploaded':\n default:\n return (\n <Fragment>\n {errorIcon}\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.XS} onClick={() => this.removeFile(index)}>\n <span slot=\"icon-left\">×</span>\n </xv-button-v2>\n </Fragment>\n );\n }\n }\n\n private _renderError(index: number) {\n const error = this.errors?.[index] || this.errorMessages?.[index];\n\n if (!error) return;\n\n if (typeof error === 'object') {\n return (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{error.primary}</p>\n <p class=\"error-container_secondary\">{error.secondary}</p>\n </div>\n );\n }\n\n if (typeof error === 'string') {\n return (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{error}</p>\n </div>\n );\n }\n\n return null;\n }\n}\n","%svg-common {\n background: url(\"https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.svg\") no-repeat;\n}\n\n.svg-assets--src--project--images--svg-sprite--facebook {\n @extend %svg-common;\n background-position: 0 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--instagram {\n @extend %svg-common;\n background-position: 14.545454545454545% 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--kauf-auf-rechnung {\n @extend %svg-common;\n background-position: 0 0;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--linkedin {\n @extend %svg-common;\n background-position: 29.09090909090909% 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--mastercard {\n @extend %svg-common;\n background-position: 50% 0;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--paypal {\n @extend %svg-common;\n background-position: 0 64.44444444444444%;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--sepa {\n @extend %svg-common;\n background-position: 50% 64.44444444444444%;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--visa {\n @extend %svg-common;\n background-position: 100% 0;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--vorkasse {\n @extend %svg-common;\n background-position: 100% 64.44444444444444%;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--xing {\n @extend %svg-common;\n background-position: 43.63636363636363% 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--youtube {\n @extend %svg-common;\n background-position: 58.18181818181818% 100%;\n width: 32px;\n height: 32px;\n}\n\n.sprite-icon-beachten {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -90px 0px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-buchen {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px -82px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-direct {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -284px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-downloads {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -80px -82px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-kino {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -305px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-kosten {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -170px 0px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-kreation {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -170px -80px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-logo-full {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px -242px;\n\twidth: 189px;\n\theight: 32px;\n}\n.sprite-icon-logo-small {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -99px;\n\twidth: 34px;\n\theight: 34px;\n}\n.sprite-icon-mobile {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -326px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-online {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -347px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-partner-agma {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -66px;\n\twidth: 88px;\n\theight: 33px;\n}\n.sprite-icon-partner-bvdw {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -338px -66px;\n\twidth: 88px;\n\theight: 33px;\n}\n.sprite-icon-partner-climate {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px 0px;\n\twidth: 186px;\n\theight: 33px;\n}\n.sprite-icon-partner-google {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px 0px;\n\twidth: 90px;\n\theight: 82px;\n}\n.sprite-icon-partner-microsoft {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -33px;\n\twidth: 186px;\n\theight: 33px;\n}\n.sprite-icon-plakat {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -368px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-print {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -389px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-radio {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -410px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-services {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -133px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-topangebote {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -271px -133px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-tv {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -292px -133px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-werbeformen {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px -162px;\n\twidth: 80px;\n\theight: 80px;\n}\n","import { Component, h,Element, State } from '@stencil/core';\n\n@Component({\n tag: 'xv-footer',\n styleUrl: 'xv-footer.scss',\n})\nexport class Xvfooter {\n @State() htmlContent: string = '';\n @Element() el: HTMLElement;\n\n async componentWillLoad() {\n try {\n const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/footer.html');\n const text = await response.text();\n this.htmlContent = text;\n } catch (error) {\n console.error('Failed to fetch footer HTML:', error);\n }\n }\n\n render() {\n return (\n <footer>\n <div innerHTML={this.htmlContent}></div>\n </footer>\n );\n }\n}\n","@import '../../global.scss';\n.media-nav-dropdown:hover > .dropdown-menu {\n display: block;\n}\n\n.alle-kategorien-menu li:hover > ul{\n display: block;\n}\n\n#nav-container .media-nav #media-menu-item-alle-kategorien li:hover > ul{\n display: block;\n}","import { Component, h,Element, State } from '@stencil/core';\n\n@Component({\n tag: 'xv-header',\n styleUrl: 'xv-header.scss',\n})\nexport class XvHeader {\n @State() htmlContent: string = '';\n @State() showLoginModal = false;\n @Element() el: HTMLElement;\n\n\n private openLoginModal = () => {\n this.showLoginModal = true;\n };\n\n private closeLoginModal = () => {\n this.showLoginModal = false;\n };\n\n async componentWillLoad() {\n try {\n const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/nav.html');\n const text = await response.text();\n const parser = new DOMParser();\n const doc = parser.parseFromString(text, 'text/html');\n\n const mixedMenu = doc.querySelector('.alle-kategorien-menu');\n const allCategoriesGenerals = doc.querySelector('.alle-kategorien-allgemines');\n const allCategoriesContainer = doc.querySelector('#media-menu-item-alle-kategorien > .dropdown-menu');\n\n if (mixedMenu && allCategoriesGenerals && allCategoriesContainer) {\n allCategoriesContainer.appendChild(mixedMenu);\n allCategoriesContainer.appendChild(allCategoriesGenerals);\n }\n\n this.htmlContent = doc.body.innerHTML;\n } catch (error) {\n console.error('Failed to fetch header HTML:', error);\n }\n }\n\n render() {\n return (\n <div id=\"nav-container\" class=\"xv-header\">\n <nav class=\"navbar navbar-default navbar-fixed-top backend-force-relative\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-3 col-xs-3 col-xxs-4 no-padding-right\">\n <div class=\"navbar-header\">\n <button class=\"btn btn-default navbar-toggle pull-left navbar-btn\" data-toggle=\"collapse\" data-target=\"#main-menu\">\n <i class=\"fa fa-bars fa-lg\" aria-hidden=\"true\"></i>\n </button>\n <div class=\"visible-xs-inline\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n <div class=\"hidden-xs\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img loading=\"lazy\" src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n </div>\n </div>\n <div class=\"col-sm-9 col-xs-9 col-xxs-8 no-padding-left\">\n <ul class=\"nav nav-pills nav-meta pull-right\">\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">\n <i class=\"fa fa-user\"></i>\n <i class=\"fa fa-exchange-alt\"></i>\n </a>\n </li>\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">Kontakt</a>\n <a href=\"https://www.crossvertise.com/contact\" class=\"btn btn-link navbar-btn hidden-xs\" style={{ display: 'none' }}>Kontakt</a>\n <a class=\"btn btn-default btn-link navbar-btn visible-xs hidden-xxs\" href=\"#\">\n <i class=\"fa fa-phone\"></i>\n </a>\n </li>\n <li class=\"dropdown\" id=\"my-xv-menu\">\n <a href=\"#\" class=\"dropdown-toggle btn btn-default navbar-btn btn-link\" data-toggle=\"dropdown\">\n <i class=\"fa fa-user fa-lg text-success\" aria-hidden=\"true\"></i>&nbsp;\n <span class=\"hidden-xs\">Mein Bereich</span>\n <span class=\"caret\"></span>\n </a>\n <ul class=\"dropdown-menu-left dropdown-menu navbar-myxv\">\n <li>\n <a href=\"#\"><i class=\"fa fa-tachometer-alt fa-fw\"></i>&nbsp;Cockpitfunktionen&nbsp;<i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"#\"><i class=\"fa fa-cubes\"></i>&nbsp;Entitäten&nbsp;<i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li role=\"separator\" class=\"divider\"></li>\n <li>\n <a href=\"#\"><i class=\"fa fa-user\"></i>&nbsp;Mein Crossvertise&nbsp;<span class=\"badge\">0</span><i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com\">\n <i class=\"fa fa-sign-out-alt fa-fw\" aria-hidden=\"true\"></i>&nbsp;Logout\n </a>\n </li>\n </ul>\n </li>\n <li class=\"visible-sm-block visible-xs-block hidden-xxs\">\n <a class=\"btn btn-default navbar-btn btn-link\" data-toggle=\"collapse\" data-target=\"#search-collapse\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </a>\n </li>\n <li class=\"hidden-xs hidden-sm\">\n <a role=\"button\" onClick={this.openLoginModal} class=\"btn btn-default navbar-btn btn-link\">\n <i class=\"fa fa-user fa-lg\" aria-hidden=\"true\"></i>\n <span>Login</span>\n </a>\n </li>\n <xv-login-modal visible={this.showLoginModal} onClose={this.closeLoginModal}></xv-login-modal>\n <li class=\"hidden-xs\">\n <a class=\"btn btn-default navbar-btn btn-link\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/account/register\">\n <span>Registrieren</span>\n </a>\n </li>\n <li class=\"navbar-divider hidden-xs\"></li>\n <li>\n <a class=\"btn btn-success navbar-btn\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart\">\n <span class=\"xv-font-icon-warenkorb fa-lg fa-fw\" aria-hidden=\"true\"></span>\n <span class=\"hidden-xs hidden-sm\">&nbsp;Warenkorb&nbsp;</span>\n <span class=\"badge badge-success\">0</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"collapse hidden-md hidden-lg\" id=\"search-collapse\">\n <div class=\"container\">\n <form action=\"https://market.crossvertise.com/de-de/media/search\" class=\"navbar-form\" method=\"get\" role=\"search\">\n <div class=\"input-group\">\n <input class=\"form-control\" name=\"Q\" placeholder=\"Suche\" type=\"text\" autocomplete=\"off\" />\n <span class=\"input-group-btn force-full-width\">\n <button class=\"btn btn-default search-addon\" type=\"submit\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </button>\n </span>\n </div>\n </form>\n </div>\n </div>\n </nav>\n <div innerHTML={this.htmlContent}></div>\n </div>\n );\n }\n}\n",":host {\n font-family: var(--ff-body, inherit);\n}\n\n:host(.xv-link_inline) {\n display: inline-block;\n .xv-link {\n text-decoration-line: underline;\n text-decoration-style: solid;\n text-decoration-skip-ink: none;\n text-decoration-thickness: auto;\n text-underline-offset: auto;\n text-underline-position: from-font;\n }\n}\n\n:host(.xv-link_standalone) {\n display: block;\n .xv-link {\n display: block;\n text-decoration-line: none;\n }\n}\n\n:host(.xv-link_ghost) {\n .xv-link {\n color: inherit;\n text-decoration: none;\n }\n}\n\n.xv-link {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n color: var(--link-primary);\n font-family: var(--ff-body);\n font-style: normal;\n font-weight: 400;\n transition: color 200ms ease-in-out;\n\n &:active {\n color: var(--text-primary);\n }\n\n &:visited {\n color: var(--link-visted);\n }\n\n &:hover {\n color: var(--link-primary-hover);\n cursor: pointer;\n }\n\n &:disabled, &_disabled, &::part(disabled) {\n color: var(--text-disabled);\n pointer-events: none;\n cursor: initial;\n }\n\n &.sm {\n font-size: var(--fz-sm);\n line-height: 137.5%;\n }\n\n &.md {\n font-size: var(--fz-md);\n line-height: 128.571%;\n }\n\n &.lg {\n font-size: var(--fz-lg);\n line-height: 133.333%;\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-link-v2',\n styleUrl: 'xv-link.scss',\n shadow: true,\n})\nexport class XvLink {\n @Prop() href: string;\n @Prop() target: '_self' | '_blank' | '_parent' | '_top';\n @Prop() disabled: boolean = false;\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() variant: 'standalone' | 'inline' | 'ghost' = 'inline';\n\n preventLinkHandler(e: PointerEvent) {\n if (!this.disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n }\n\n render() {\n return (\n <Host class={`xv-link_${this.variant}`}>\n <a\n href={this.href}\n onClick={this.preventLinkHandler.bind(this)}\n class={`xv-link ${this.disabled ? 'xv-link_disabled' : ''} ${this.size}`}\n target={this.target}\n >\n <slot name=\"icon-left\"></slot>\n\n <slot></slot>\n\n <slot name=\"icon-right\"></slot>\n </a>\n </Host>\n );\n }\n}\n",":host(.xv-loader) {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .spinner {\n color: var(--text-secondary, #515151);\n font-size: inherit;\n border: calc(max(4px, 0.1em)) solid rgba(0, 0, 0, 0.1);\n border-top-color: var(--highlight-01, #CEDE94);\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-width: 1em;\n max-height: 1em;\n }\n\n ::slotted(*) {\n font-family: var(--ff-heading, \"IBM Plex Sans\");\n color: inherit;\n margin-top: 0;\n margin-bottom: 0;\n font-size: inherit;\n line-height: 133.333%;\n letter-spacing: 0.32px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n:host([variant=\"vertical\"]) {\n flex-direction: column;\n}\n\n:host([size=\"xs\"]) {\n font-size: var(--fz-xs, 9px);\n}\n:host([size=\"sm\"]) {\n font-size: var(--fz-sm, 12px);\n}\n:host([size=\"md\"]) {\n font-size: inherit;\n}\n:host([size=\"lg\"]) {\n font-size: var(--spacing-08, 40px);\n}\n:host([size=\"xl\"]) {\n font-size: var(--spacing-12, 96px);\n}\n\n/* Animation */\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-loader-v2',\n styleUrl: 'xv-loader.scss',\n shadow: true,\n})\nexport class XvLoader {\n /**\n * Is component displayed\n */\n @Prop() show: boolean = true;\n /**\n * Message direction\n */\n @Prop() variant: 'vertical' | 'horizontal' = 'horizontal';\n /**\n * Size of loader. Default size depends of font size\n */\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n\n render() {\n if (!this.show) return null;\n\n return (\n <Host class={{ 'xv-loader': true }} size={this.size}>\n <slot name=\"before\"></slot>\n <div class={{spinner: true }}></div>\n <slot></slot>\n </Host>\n );\n }\n}\n","@import '../../global.scss';\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\n\ntype OAuthProvider = {\n displayName: string;\n providerName: string;\n icon: string;\n buttonClass: string;\n};\n\n@Component({\n tag: 'xv-login-modal',\n styleUrl: 'xv-login-modal.scss',\n shadow: true,\n})\nexport class XvLoginModal {\n @Prop() visible: boolean = false;\n @Event() close: EventEmitter<void>;\n @State() oauthProviders: OAuthProvider[] = [];\n @State() bookNow: boolean = false;\n @State() returnUrl: string = '/';\n @State() passwordLoginEnabled: boolean = true;\n @State() oauthLoginEnabled: boolean = true;\n @State() passwordRegistrationEnabled: boolean = true;\n @State() configurationName: string = 'Xv';\n @State() xvMvcConfigName: string = 'Xv';\n @State() contactUrl: string = 'https://sitefinity-qa.crossvertise.com/ueber-uns/kontakt';\n\n componentWillLoad() {\n this.setReturnUrl();\n this.readMetaNavCookie();\n this.oauthProviders = [\n {\n displayName: 'Google',\n providerName: 'Google',\n icon: 'fa fa-google',\n buttonClass: 'btn btn-block btn-google-primary btn-primary',\n },\n ];\n }\n\n private setReturnUrl() {\n const params = new URLSearchParams(window.location.search);\n let url = params.get('returnUrl') || window.location.href;\n if (url.toLowerCase().includes('resetpassword')) {\n url = '/';\n }\n this.returnUrl = url;\n }\n\n private readMetaNavCookie() {\n const metaNavCookie = document.cookie\n .split('; ')\n .find(row => row.startsWith('metaNav='));\n if (!metaNavCookie) return;\n try {\n const cookieValue = decodeURIComponent(metaNavCookie.split('=')[1]);\n const metaNavObj = JSON.parse(cookieValue);\n this.passwordLoginEnabled = !!metaNavObj.PasswordLoginEnabled;\n this.oauthLoginEnabled = !!metaNavObj.oauthLoginEnabled;\n this.passwordRegistrationEnabled = !!metaNavObj.PasswordRegistrationEnabled;\n this.configurationName = metaNavObj.ConfigurationName;\n this.xvMvcConfigName = metaNavObj.XvMvcConfigName;\n this.contactUrl = metaNavObj.ContactUrl;\n } catch (e) {\n console.warn('Could not parse metaNav cookie:', e);\n }\n }\n\n private handleClose = () => {\n this.close.emit();\n };\n\n private renderPasswordLogin() {\n if (!this.passwordLoginEnabled) return null;\n return (\n <label class=\"pull-right spacer\">\n <a href=\"/de-de/mycrossvertise/account/lostpassword\" target=\"_blank\" rel=\"noopener\">\n Passwort vergessen?\n </a>\n </label>\n );\n }\n\n private renderOAuthProviders() {\n if (!this.oauthLoginEnabled) return null;\n return (\n <div class=\"row\">\n <div class=\"col-xs-12\">\n <div class=\"col-xs-12\">\n <div class=\"row spacer spacer-bottom\">\n <div class=\"col-xs-5\"><hr /></div>\n <div class=\"col-xs-2 text-center placeholder\">oder</div>\n <div class=\"col-xs-5\"><hr /></div>\n <div class=\"col-xs-12\">\n <span>Alternative Anmeldung:</span>\n </div>\n </div>\n </div>\n <div class=\"col-sm-12\">\n <div class=\"col-xs-12 no-padding-right\">\n <form\n method=\"POST\"\n class=\"spacer\"\n action=\"/de-de/mycrossvertise/account/externallogin\"\n >\n <div class=\"row\">\n {this.oauthProviders.map(provider => (\n <div class=\"col-xs-6 col-sm-3 no-padding-left padding-bottom-10 center-cell\">\n <button\n type=\"submit\"\n style={{ maxWidth: '125px' }}\n name=\"provider\"\n class={`cell-content btn btn-primary ${provider.buttonClass} btn-block`}\n value={provider.providerName}\n title={`Mit ${provider.displayName} anmelden`}\n >\n <i class={`${provider.icon} pull-left`}></i>\n <span>{provider.displayName}</span>\n </button>\n </div>\n ))}\n </div>\n <input type=\"hidden\" name=\"BookNow\" value={this.bookNow.toString()} />\n </form>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n if (!this.passwordRegistrationEnabled && this.configurationName !== this.xvMvcConfigName) return null;\n return (\n <div class=\"modal-footer\">\n <div class=\"col-sm-12 text-left\">\n {this.passwordRegistrationEnabled && (\n <div>\n Noch kein Kunde?\n <a\n href={`/de-de/mycrossvertise/account/register?returnUrl=${encodeURIComponent(this.returnUrl)}`}\n >\n Jetzt kostenlos registrieren!\n </a>\n </div>\n )}\n {this.configurationName === this.xvMvcConfigName && (\n <div>\n <div class=\"spacer\">Sie sind bereits registriert, können sich aber nicht einloggen?</div>\n <div>\n <a href={this.contactUrl}>Kontaktieren Sie uns</a>, wir kümmern uns darum.\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.visible) return null;\n return (\n <div class=\"modal show\" style={{ display: 'block' }} id=\"login-modal\" tabIndex={-1} role=\"dialog\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <div class=\"row\">\n <div class=\"col-sm-10\">\n <div class=\"col-xs-12\">\n <h4 class=\"modal-title\">Login</h4>\n </div>\n </div>\n <div class=\"col-xs-1 pull-right\">\n <button onClick={this.handleClose} type=\"button\" class=\"close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <form\n autoComplete=\"off\"\n id=\"logon-modal-form\"\n action={`/de-de/mycrossvertise/account/logon?returnUrl=${encodeURIComponent(this.returnUrl)}`}\n method=\"post\"\n class=\"spacer\"\n >\n <input type=\"hidden\" name=\"returnUrl\" value={this.returnUrl} />\n <div class=\"form-group spacer-bottom\">\n <div class=\"control-label col-xs-12\">\n <label htmlFor=\"LoginPopup.UserName\">E-Mail</label>\n <strong class=\"text-danger\">*</strong>\n </div>\n <div class=\"col-xs-12\">\n <input class=\"form-control\" id=\"userName\" name=\"UserName\" type=\"text\" tabIndex={1} />\n </div>\n </div>\n <div class=\"form-group spacer\">\n <div class=\"control-label col-xs-6\">\n <label class=\"spacer\" htmlFor=\"LoginPopup.Password\">Passwort</label>\n <strong class=\"text-danger spacer\">*</strong>\n </div>\n <div class=\"col-xs-6\">\n {this.renderPasswordLogin()}\n </div>\n <div class=\"col-xs-12\">\n <input class=\"form-control\" id=\"password\" name=\"Password\" type=\"password\" tabIndex={2} />\n </div>\n </div>\n <div class=\"form-group spacer\">\n <div class=\"col-xs-12\">\n <button class=\"btn btn-primary btn-lg btn-block spacer\" type=\"submit\" tabIndex={3}>\n Anmelden\n </button>\n </div>\n </div>\n <div class=\"form-group\">\n <div class=\"checkbox col-xs-12\">\n <label htmlFor=\"RememberMe\">\n <input id=\"RememberMe\" name=\"RememberMe\" type=\"checkbox\" value=\"true\" />\n Angemeldet bleiben?\n </label>\n </div>\n </div>\n </form>\n </div>\n </div>\n {this.renderOAuthProviders()}\n </div>\n {this.renderFooter()}\n </div>\n </div>\n </div>\n );\n }\n}\n",":host {\n display: inline-flex;\n\n .backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s ease;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .modal {\n display: flex;\n flex-direction: column;\n max-height: 60vh;\n max-width: 960px;\n position: relative;\n animation: fadeIn 0.25s ease;\n padding-block: var(--gap-md, 16px);\n background: var(--layer-02, #FFF);\n box-shadow: 0 6px 10px 4px rgba(39, 52, 53, 0.15), 0 2px 3px 0 rgba(39, 52, 53, 0.30);\n\n &_header {\n position: relative;\n padding-inline: var(--gap-md, 16px);\n &__title {\n color: var(--text-text-primary, #333);\n font-family: var(--ff-heading, \"Gill Sans\");\n font-size: var(--fz-xl, 21px);\n line-height: 133.333%;\n margin: 0 20px 0 0;\n }\n }\n\n &_content {\n padding: var(--gap-md, 16px);\n overflow: visible;\n &.overflow {\n overflow: auto;\n }\n }\n\n &_footer {\n position: relative;\n padding-inline: var(--gap-md, 16px);\n }\n\n &_close {\n z-index: +1;\n cursor: pointer;\n border: none;\n outline: none;\n font-size: 28px;\n background-color: transparent;\n position: absolute;\n right: 10px;\n top: 10px;\n transition: 350ms ease-in-out opacity;\n &:hover {\n opacity: 0.6;\n }\n &:active {\n opacity: 0.3;\n }\n }\n }\n}\n\n:host([open]) {\n .backdrop {\n opacity: 1;\n pointer-events: all;\n }\n}\n\n:host([size=\"xs\"]) {\n .modal {\n max-width: min(300px, 90vw);\n }\n}\n:host([size=\"sm\"]) {\n .modal {\n max-width: min(480px, 90vw);\n }\n}\n:host([size=\"md\"]) {\n .modal {\n max-width: min(600px, 90vw);\n }\n}\n:host([size=\"lg\"]) {\n .modal {\n max-width: min(960px, 90vw);\n }\n}\n:host([size=\"xl\"]) {\n .modal {\n max-width: min(1200px, 80vw);\n }\n}\n\n@keyframes fadeIn {\n from {\n transform: translateY(-10px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n","import { Component, Host, h, Prop, Element, Event, EventEmitter, Method } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-modal-v2',\n styleUrl: 'xv-modal.scss',\n shadow: true,\n})\nexport class XvModal {\n @Element() el: HTMLElement;\n /**\n * Is modal opened\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n /**\n * If true then modal not be closed on backdrop click\n */\n @Prop({ reflect: true }) permanent: boolean = false;\n /**\n * Size of modal. But max size is 90% view width\n */\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n /**\n * When need scroll modal content\n */\n @Prop({ reflect: true }) overflow: boolean = true;\n\n @Event({ eventName: 'openChange' }) openChange!: EventEmitter<boolean>;\n\n private triggerEl: HTMLElement | null = null;\n\n @Method()\n async openModal() {\n this.open = true;\n this.openChange?.emit(this.open);\n return this.open\n };\n\n @Method()\n async closeModal() {\n this.open = false;\n this.openChange?.emit(this.open);\n return this.open\n }\n\n private onBackdropClick = async (e: MouseEvent) => {\n if (this.permanent) return;\n // click on backdrop\n if (e.target === e.currentTarget) {\n await this.closeModal();\n }\n };\n\n private removeTriggerListener = () => {\n this.triggerEl?.removeEventListener('click', this.openModal.bind(this));\n };\n\n private setupTrigger = () => {\n this.removeTriggerListener();\n const slot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n\n if (slot) {\n const assigned = slot.assignedElements();\n if (assigned.length > 0) {\n this.triggerEl = assigned[0] as HTMLElement;\n this.triggerEl.addEventListener('click', this.openModal.bind(this));\n }\n }\n }\n\n render() {\n return (\n <Host role=\"dialog\" size={this.size} id={this.el.id}>\n <slot name=\"trigger\" onSlotchange={this.setupTrigger} />\n\n <div class={{ backdrop: true }} onClick={this.onBackdropClick}>\n <div class=\"modal\">\n <button class=\"modal_close\" onClick={this.closeModal.bind(this)}>&times;</button>\n <div class=\"modal_header\">\n <slot name=\"header\">\n {this.el?.title && <h5 class=\"modal_header__title\">{this.el.title}</h5>}\n </slot>\n </div>\n\n <div class={{ 'modal_content': true, overflow: this.overflow }}>\n <slot />\n </div>\n\n <div class=\"modal_footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.removeTriggerListener();\n }\n}\n","export enum NOTIFICATION_VARIANTS {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error'\n}\n",":host {\n --notification-icon-size: 20px;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n border-radius: 3px;\n padding: var(--gap-md, 16px);\n column-gap: var(--gap-md, 16px);\n border: 1px solid;\n\n .content {\n flex: 1;\n text-align: left;\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 128%;\n letter-spacing: 0.16px;\n display: flex;\n flex-direction: column;\n row-gap: var(--spacing-06, 24px);\n word-break: break-all;\n\n &_title {\n text-align: left;\n margin: 0;\n padding: 0;\n font-weight: 700;\n line-height: var(--notification-icon-size);\n }\n }\n\n .icon {\n width: var(--notification-icon-size);\n height: var(--notification-icon-size);\n font-size: var(--notification-icon-size);\n fill: currentColor;\n }\n\n .close {\n --notification-close-size: 16px;\n\n background-color: transparent;\n border: none;\n width: var(--notification-close-size);\n height: var(--notification-close-size);\n min-width: var(--notification-close-size);\n min-height: var(--notification-close-size);\n position: relative;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: 300ms ease-in-out opacity;\n\n &:after, &:before {\n content: '';\n position: absolute;\n top: calc(50% - (var(--notification-close-size) / 2));\n left: calc(50% - 1px);\n display: inline-block;\n width: 2px;\n height: 90%;\n background-color: var(--button-tertiary, #273435);\n }\n\n &:after {\n transform: rotate(45deg);\n }\n\n &:before {\n transform: rotate(-45deg);\n }\n\n &:hover {\n opacity: 0.7;\n }\n\n &:active {\n opacity: 0.3;\n }\n }\n\n ::slotted([slot=\"footer\"]) {\n margin: 0;\n padding: 0;\n }\n}\n\n:host([type=\"info\"]) {\n border-color: var(--support-info, #1B87B2);\n background-color: var(--support-info-background, #E2F5F8);\n .icon {\n color: var(--support-info, #1B87B2);\n }\n}\n\n:host([type=\"success\"]) {\n border-color: var(--support-success, #97BF0D);\n background-color: var(--support-success-background, #F4F7E5);\n .icon {\n color: var(--support-success, #1B87B2);\n }\n}\n\n:host([type=\"warning\"]) {\n border-color: var(--support-warning, #FF7F04);\n background-color: var(--support-warning-backround, #FFF9C2);\n .icon {\n color: var(--support-warning, #FF7F04);\n }\n}\n\n:host([type=\"error\"]) {\n border-color: var(--support-error, #F1290E);\n background-color: var(--support-error-background, #FEE9E8);\n .icon {\n color: var(--support-error, #F1290E);\n }\n}\n","import { Component, Host, h, Prop, Element, Event, EventEmitter } from '@stencil/core';\nimport { NOTIFICATION_VARIANTS } from './_vars';\n\n@Component({\n tag: 'xv-notification-v2',\n styleUrl: 'xv-notification.scss',\n shadow: true,\n assetsDirs: ['xv-notification/icons']\n})\nexport class XvNotification {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) variant: NOTIFICATION_VARIANTS = NOTIFICATION_VARIANTS.INFO;\n @Prop({ reflect: true }) dismissible: boolean = false;\n @Event() close: EventEmitter<MouseEvent>;\n\n private closeHandle = (e: MouseEvent) => this.close.emit(e);\n\n render() {\n return (\n <Host class=\"xv-notification\" type={this.variant}>\n {this.renderIcon(this.variant)}\n\n <div class=\"content\">\n <div class=\"content_wrapper\">\n {this.el.title && <h5 class=\"content_title\">{this.el.title}</h5>}\n <slot></slot>\n </div>\n <slot name=\"footer\"></slot>\n </div>\n\n {this.dismissible && <button class=\"close\" onClick={this.closeHandle} />}\n </Host>\n );\n }\n\n private renderIcon = (variant: NOTIFICATION_VARIANTS, cls: string = 'icon') => {\n switch (variant) {\n case NOTIFICATION_VARIANTS.ERROR: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\" />\n </svg>\n );\n }\n case NOTIFICATION_VARIANTS.INFO: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\" />\n </svg>\n );\n }\n case NOTIFICATION_VARIANTS.SUCCESS: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\" />\n </svg>\n )\n }\n case NOTIFICATION_VARIANTS.WARNING: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\" />\n </svg>\n );\n }\n default:\n return null;\n }\n };\n}\n",":host {\n display: inline-block;\n text-align: left;\n .control {\n &_label {\n display: block;\n margin-bottom: var(--spacing-03);\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 700;\n line-height: var(--fz-md);\n letter-spacing: 0.32px;\n }\n\n &_input {\n display: flex;\n border: 1px solid var(--border-subtle-01);\n outline: 2px solid transparent;\n background-color: transparent;\n border-radius: 3px;\n transition: 250ms ease-in-out border-color, 250ms ease-in-out outline-color;\n &:hover {\n border-color: var(--border-subtle-selected-01);\n }\n\n &:focus-within {\n outline-color: var(--focus);\n }\n\n &.error {\n outline-color: var(--support-error);\n }\n\n &.readonly {\n border-radius: 0;\n border-top-width: 0;\n border-left-width: 0;\n border-right-width: 0;\n outline-color: transparent;\n }\n\n input[type=\"number\"] {\n flex: 1;\n border: none;\n outline: none;\n -moz-appearance: textfield;\n background-color: transparent;\n margin: 0;\n padding-block: 0;\n padding-inline: var(--spacing-05);\n box-sizing: border-box;\n color: var(--text-primary);\n min-width: 20px;\n font-style: normal;\n font-weight: 400;\n letter-spacing: 0.16px;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n\n &__icons {\n display: inline-flex;\n align-items: stretch;\n column-gap: 2px;\n .status-icon {\n display: inline-flex;\n align-items: center;\n align-self: center;\n font-size: 1.35em;\n &.error {\n background-color: var(--support-error);\n color: white;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n }\n &.warning {\n color: var(--support-warning);\n }\n }\n\n hr {\n border: none;\n outline: none;\n width: 2px;\n height: 60%;\n align-self: center;\n background-color: var(--border-subtle-01);\n display: inline-flex;\n }\n }\n }\n }\n\n .message {\n margin: var(--spacing-02) 0 0;\n color: var(--text-helper, #646464);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--fz-md, 16px);\n letter-spacing: 0.32px;\n &.error {\n color: var(--text-error);\n }\n &.warning {\n color: var(--text-secondary, #515151);\n }\n }\n}\n\n:host(.disabled) {\n cursor: not-allowed;\n\n .control_label,\n .control_input input[type=\"number\"],\n .control_input input[type=\"number\"]::placeholder,\n .message:not(.error) {\n color: var(--text-disabled);\n cursor: not-allowed;\n }\n\n .control_input__icons,\n .message.error {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n:host([block]) {\n display: block;\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, AttachInternals } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-number-input-v2',\n styleUrl: 'xv-number-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class XvNumberInput {\n @Prop() label: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true, mutable: true }) value: number;\n @Event({ eventName: 'valueChange' }) valueChange: EventEmitter<number>;\n @Prop() helper?: string;\n @Prop() error?: string | boolean;\n @Prop() warning?: string | boolean;\n @Prop() step: number = 10;\n @Prop() max?: number;\n @Prop() min?: number;\n @Prop() readonly?: boolean;\n @Prop() disabled?: boolean;\n @Prop() loading: boolean = false;\n @Prop() block?: boolean;\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n\n @AttachInternals() internals: ElementInternals;\n\n private increment = () => {\n const newValue = (this.value || 0) + this.step;\n if (this.max !== undefined && newValue > this.max) return;\n this.setValue(newValue)\n };\n\n private decrement = () => {\n const newValue = (this.value || 0) - this.step;\n if (this.min !== undefined && newValue < this.min) return;\n this.setValue(newValue)\n };\n\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const num = parseFloat(input.value) || 0;\n\n if (isNaN(num)) return;\n\n this.setValue(num);\n };\n\n private setValue(value: number) {\n this.value = value;\n this.internals.setFormValue(this.value?.toString());\n this.valueChange.emit(this.value);\n }\n\n render() {\n return (\n <Host class={{ disabled: !!this.disabled }}>\n <label class=\"control\">\n {this.label && <span class=\"control_label\">{this.label}</span>}\n\n <div class={{\n 'control_input': true,\n readonly: !!this.readonly,\n error: !!this.error,\n warning: !!this.warning\n }}>\n <input\n type=\"number\"\n placeholder={this.placeholder}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleInput}\n name={this.name}\n min={this.min}\n max={this.max}\n step={this.step}\n value={this.value}\n />\n\n <div class=\"control_input__icons\">\n {this.loading ? (\n <xv-loader-v2 size={SIZE_VAR.XS} />\n ) : !!this.error ? (\n <span class=\"status-icon error\" aria-hidden=\"true\">!</span>\n ) : !!this.warning ? (\n <span class=\"status-icon warning\" aria-hidden=\"true\">⚠</span>\n ) : null}\n <xv-button-v2\n size={this.size}\n variant=\"ghost\"\n disabled={this.disabled || this.readonly}\n onClick={this.decrement}\n aria-label=\"Decrease\"\n ><span slot=\"icon-left\" class=\"status-icon\">−</span></xv-button-v2>\n <hr />\n <xv-button-v2\n size={this.size}\n variant=\"ghost\"\n disabled={this.disabled || this.readonly}\n onClick={this.increment}\n aria-label=\"Increase\"\n ><span slot=\"icon-left\" class=\"status-icon\">+</span></xv-button-v2>\n </div>\n </div>\n </label>\n\n\n {this.helper && <p class=\"message\">{this.helper}</p>}\n {typeof this.error === 'string' ? (\n <p class=\"message error\">{this.error}</p>\n ) : typeof this.warning === 'string' ? (\n <p class=\"message warning\">{this.warning}</p>\n ) : null}\n </Host>\n );\n }\n}\n","$tag: xv-overflow-menu-v2;\n\n:host {\n --overflow-menu-size: 40px;\n --overflow-menu-item-padding: 11px 16px;\n\n display: inline-flex;\n flex-direction: column;\n position: relative;\n\n .btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--overflow-menu-size);\n height: var(--overflow-menu-size);\n background-color: transparent;\n border: 1px solid transparent;\n transition: 300ms ease-in-out color, 300ms ease-in-out background-color, 200ms ease box-shadow;\n font-size: calc(var(--overflow-menu-size) / 2);\n color: var(--icon-primary);\n border-radius: 5%;\n margin: 0;\n padding: 0;\n\n &:hover {\n cursor: pointer;\n color: var(--link-primary-hover);\n background-color: var(--background-hover);\n }\n\n &:active {\n background-color: var(--background-active);\n color: var(--icon-disabled);\n }\n\n &:disabled {\n background-color: transparent;\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .list {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-start;\n background-color: var(--layer-01);\n position: absolute;\n top: 100%;\n left: 0;\n max-height: 0;\n overflow: hidden;\n border-radius: 3px;\n transition: 200ms ease-in-out max-height, 100ms ease box-shadow;\n min-width: 128px;\n max-width: 50vw;\n width: max-content;\n &.open {\n overflow: visible;\n }\n\n ::slotted(#{$tag}-item) {\n padding: var(--overflow-menu-item-padding);\n }\n\n &.position-right {\n left: initial;\n right: 0;\n border-top-right-radius: 0;\n }\n\n &.position-left {\n border-top-left-radius: 0;\n }\n }\n}\n\n:host([size=\"xs\"]) {\n --overflow-menu-item-padding: 4px 16px;\n --overflow-menu-size: 24px;\n}\n:host([size=\"sm\"]) {\n --overflow-menu-size: 32px;\n --overflow-menu-item-padding: 7px 16px;\n}\n:host([size=\"md\"]) {\n --overflow-menu-size: 40px;\n --overflow-menu-item-padding: 11px 16px;\n}\n:host([size=\"lg\"]) {\n --overflow-menu-size: 48px;\n --overflow-menu-item-padding: 16px;\n}\n:host([size=\"xl\"]) {\n --overflow-menu-size: 56px;\n --overflow-menu-item-padding: 16px;\n}\n\n:host([open]) {\n .btn {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n background-color: var(--layer-01);\n box-shadow: -2px 2px 2px 0 rgba(0, 0, 0, 0.1);\n z-index: 1;\n }\n\n .list {\n max-height: 500px;\n z-index: 2;\n box-shadow: -2px 2px 2px 0 rgba(0, 0, 0, 0.1);\n }\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { OverflowMenuEvent } from './_vars';\n\n@Component({\n tag: 'xv-overflow-menu-v2',\n styleUrl: 'xv-overflow-menu.scss',\n shadow: true,\n})\nexport class XvOverflowMenu {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop() position: 'left' | 'right' = 'left';\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Event() selectItem: EventEmitter<OverflowMenuEvent>;\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'Escape'){\n ev.stopPropagation();\n ev.preventDefault();\n this.handleClose();\n }\n }\n\n @Watch('open')\n openChangeHandle() {\n if (this.disabled) return;\n\n if (this.open) {\n this.el.addEventListener('itemClick', this.handleSelectItem);\n document.body.addEventListener('click', this.handleClick);\n } else {\n this.removeListeners();\n }\n }\n\n private handleClose = () => {\n if (this.open) this.open = false;\n }\n\n private removeListeners = () => {\n this.el.removeEventListener('itemClick', this.handleSelectItem);\n document.body.removeEventListener('click', this.handleClick);\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (!this.open || this.el.contains(ev.target as Node)) return;\n\n ev.stopPropagation();\n ev.preventDefault();\n this.handleClose()\n }\n\n private onOpenToggle = () => {\n this.open = !this.open;\n };\n\n private handleSelectItem = ({ detail }: CustomEvent<OverflowMenuEvent>) => {\n this.selectItem.emit(detail);\n this.handleClose();\n }\n\n render() {\n return (\n <Host\n class=\"xv-overflow-menu\"\n size={this.size}\n role=\"menu\"\n tabindex={-1}\n >\n <button class={{ btn: true, open: this.open }} onClick={this.onOpenToggle} disabled={this.disabled}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 128 512\">\n <path\n d=\"M64 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-160a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM112 96A48 48 0 1 0 16 96a48 48 0 1 0 96 0z\" />\n </svg>\n </button>\n <div class={{list: true, open: this.open, [`position-${this.position}`]: true }}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n\n componentDidLoad() {\n this.openChangeHandle();\n }\n\n disconnectedCallback() {\n this.removeListeners();\n }\n}\n","export interface OverflowMenuEvent {\n value: string | number | object | undefined;\n event: PointerEvent;\n}\n\nexport enum OverflowMenuVariant {\n DEFAULT = '',\n DANGER = 'danger',\n}\n",":host {\n flex: 1;\n display: inline-block;\n background-color: transparent;\n transition: 200ms ease background-color;\n user-select: none;\n text-align: left;\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 128.571%;\n letter-spacing: 0.16px;\n}\n:host(:hover) {\n cursor: pointer;\n background-color: var(--layer-hover-01, #E9E9E9);\n}\n:host(:active) {\n background-color: var(--layer-active-01, #D1D1D1);\n}\n:host(:focus) {\n border: 2px solid var(--focus, #273435);\n}\n\n:host([variant=\"danger\"]) {\n background-color: var(--text-error, #D62512);\n color: var(--text-on-color, #FFF);\n}\n:host([variant=\"danger\"]:hover) {\n background-color: var(--support-error, #F1290E);\n}\n:host([variant=\"danger\"]:active) {\n background-color: var(--text-error, #D62512);\n}\n\n:host([disabled]) {\n background-color: var(--layer-01, #F7F7F7) !important;\n color: var(--text-disabled) !important;\n cursor: not-allowed;\n}\n","import { Component, Host, h, Prop, Listen, Event, EventEmitter } from '@stencil/core';\nimport { OverflowMenuEvent, OverflowMenuVariant } from '../_vars';\n\n@Component({\n tag: 'xv-overflow-menu-v2-item',\n styleUrl: 'xv-overflow-menu-item.scss',\n shadow: true,\n})\nexport class XvOverflowMenuItem {\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) value: OverflowMenuEvent['value'];\n @Prop() variant: OverflowMenuVariant = OverflowMenuVariant.DEFAULT;\n @Event() itemClick: EventEmitter<OverflowMenuEvent>;\n\n @Listen('click')\n handleClick(event: PointerEvent) {\n if (this.disabled) return;\n\n this.itemClick.emit({ event, value: this.value });\n }\n\n render() {\n return (\n <Host\n class=\"xv-overflow-menu-item\"\n role=\"menuitem\"\n disabled={this.disabled}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n","export enum PROGRESS_VARIANTS {\n DEFAULT = '',\n HORIZONTAL = 'horizontal'\n}\n\nexport enum PROGRESS_ITEM_STATUS {\n DONE = 'done',\n NO_STARTED = 'not_started',\n IN_PROGRESS = 'in_progress',\n}\n","$prefix: xv-progress-indicator-v2;\n\n:host {\n --progress-indicator-icon-size: 22px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n font-family: var(--ff-body, inherit);\n overflow-x: auto;\n}\n\n:host([variant=\"horizontal\"]) {\n ::slotted(#{$prefix}-item) {\n flex-direction: row;\n column-gap: var(--gap-xs, 8px);\n justify-content: flex-start;\n padding-left: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n }\n}\n\n:host([size=\"xs\"]) {\n --progress-indicator-icon-size: 14px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n}\n:host([size=\"sm\"]) {\n --progress-indicator-icon-size: 16px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n}\n:host([size=\"md\"]) {\n --progress-indicator-icon-size: 22px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n}\n:host([size=\"lg\"]) {\n --progress-indicator-icon-size: 24px;\n --progress-indicator-font-size: var(--fz-lg, 18px);\n}\n:host([size=\"xl\"]) {\n --progress-indicator-icon-size: 32px;\n --progress-indicator-font-size: var(--fz-xl, 20px);\n}\n","import { Component, Host, h, Prop, Watch, Element } from '@stencil/core';\nimport { PROGRESS_ITEM_STATUS, PROGRESS_VARIANTS } from './_vars';\nimport { SIZE_VAR } from '../../types/enum';\nimport { forEach } from '../../utils/utils';\n\n@Component({\n tag: 'xv-progress-indicator-v2',\n styleUrl: 'xv-progress-indicator.scss',\n shadow: true,\n})\nexport class XvProgressIndicator {\n @Element() el: HTMLElement;\n /**\n * Current progress\n * from 0 to 100\n */\n @Prop({ reflect: true }) progress: number = 0;\n /**\n * Progress variant\n * enum PROGRESS_VARIANTS\n * possible option `horizontal`\n */\n @Prop() variant: PROGRESS_VARIANTS = PROGRESS_VARIANTS.DEFAULT;\n /**\n * Size of progress\n * enum SIZE_VAR\n * possible options `XS | SM | MD | LG | XL`\n */\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n\n // Update 'xv-progress-indicator-item' done status\n @Watch('progress')\n updateChildItems() {\n const items = this.el.children;\n const itemsCount = this.el.childElementCount;\n const progressPerItem = 100 / itemsCount;\n\n if (!items.length || !itemsCount) return;\n\n forEach(items, (item, index) => {\n const itemProgressStart = index * progressPerItem;\n let status: PROGRESS_ITEM_STATUS;\n const localProgress = Math.min(\n Math.max((this.progress - itemProgressStart) / progressPerItem, 0), 1\n ) * 100;\n\n if (localProgress >= 100) {\n status = PROGRESS_ITEM_STATUS.DONE;\n } else if (localProgress > 0) {\n status = PROGRESS_ITEM_STATUS.IN_PROGRESS;\n } else {\n status = PROGRESS_ITEM_STATUS.NO_STARTED;\n }\n\n // Set item current status\n (item as HTMLElement).setAttribute('status', status);\n\n // Update progress line\n const line = (item as HTMLElement)?.shadowRoot?.querySelector('.line') as HTMLElement;\n if (line) line.style.width = `${localProgress}%`;\n });\n }\n\n // Load initial done status\n componentDidLoad() {\n this.updateChildItems()\n }\n\n render() {\n return (\n <Host variant={this.variant} size={this.size} class={{ 'xv-progress-indicator': true }}>\n <slot></slot>\n </Host>\n );\n }\n}\n",":host(.xv-progress-indicator-item) {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n padding: 10px 16px;\n row-gap: var(--gap-sm, 10px);\n &:before {\n width: 100%;\n }\n\n &:before, .line {\n content: '';\n z-index: 1;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n color: inherit;\n background-color: var(--border-subtle-01, grey);\n }\n\n .line {\n width: 0;\n color: inherit;\n transition: width 250ms ease;\n background-color: var(--background-brand, currentColor);\n }\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--progress-indicator-icon-size, 22px);\n height: var(--progress-indicator-icon-size, 22px);\n min-width: var(--progress-indicator-icon-size, 22px);\n min-height: var(--progress-indicator-icon-size, 22px);\n max-width: var(--progress-indicator-icon-size, 22px);\n max-height: var(--progress-indicator-icon-size, 22px);\n border: 2px dashed var(--icon-primary, currentColor);\n border-radius: 50%;\n svg {\n width: calc(var(--progress-indicator-icon-size, 22px) * 0.637);\n height: calc(var(--progress-indicator-icon-size, 22px) * 0.637);\n opacity: 0;\n transition: opacity 500ms ease-in-out;\n }\n }\n\n .label {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--progress-indicator-font-size, 14px);\n line-height: 1.1;\n letter-spacing: 0.16px;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n}\n\n:host([status=\"done\"]),\n:host([status=\"in_progress\"]), {\n .icon {\n border-color: var(--background-brand, currentColor);\n color: var(--background-brand, inherit);\n border-style: solid;\n svg {\n opacity: 1;\n }\n }\n\n .line {\n width: 100%;\n background-color: var(--background-brand, currentColor);\n }\n}\n\n:host([status=\"in_progress\"]) {\n .icon {\n border-color: var(--background-brand, currentColor);\n color: var(--background-brand, inherit);\n border-style: solid;\n position: relative;\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n background-color: var(--background-brand, currentColor);\n border-top-left-radius: 50% 100%;\n border-bottom-left-radius: 50% 100%;\n }\n\n svg {\n opacity: 0;\n }\n }\n}\n","import { Component, Host, h, Element, Prop } from '@stencil/core';\nimport { PROGRESS_ITEM_STATUS } from '../_vars';\n\n@Component({\n tag: 'xv-progress-indicator-v2-item',\n styleUrl: 'xv-progress-indicator-item.scss',\n shadow: true,\n})\nexport class XvProgressIndicatorItem {\n @Element() el: HTMLElement;\n @Prop({ reflect: false }) status: PROGRESS_ITEM_STATUS = PROGRESS_ITEM_STATUS.NO_STARTED;\n\n render() {\n return (\n <Host\n status={this.status}\n class={{'xv-progress-indicator-item': true}}\n >\n <span class=\"line\"/>\n <span class=\"icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n <path\n fill=\"currentColor\"\n d=\"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"\n />\n </svg>\n </span>\n <p class=\"label\"><slot/></p>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n:host([loading]) {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 200px;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { SIZE_VAR } from '../../../types/enum';\n\n@Component({\n tag: 'xv-tab-v2',\n styleUrl: 'xv-tab.scss',\n shadow: true,\n})\nexport class XvTab {\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) loading: boolean = false;\n @Prop() name?: number | string;\n\n render() {\n return (\n <Host disabled={this.disabled} name={this.name}>\n {this.loading ? <xv-loader-v2 size={SIZE_VAR.LG} /> : <slot />}\n </Host>\n );\n }\n}\n","$tag-name: xv-table-v2;\n\n:host {\n --xv-table-min-height: 51.11px;\n --xv-table-padding-x: 16px;\n --xv-table-padding-y: 15px;\n --xv-table-cols-template: repeat(auto-fit, minmax(0, 1fr));\n\n display: block;\n .batch-actions {\n user-select: none;\n pointer-events: none;\n position: absolute;\n left: 0;\n bottom: 100%;\n width: 0;\n min-height: 48px;\n overflow: hidden;\n border-radius: 3px 3px 0 0;\n background-color: var(--interactive-01, #273435);\n display: flex;\n align-items: center;\n justify-content: space-between;\n column-gap: var(--spacing-04);\n flex-wrap: nowrap;\n box-sizing: border-box;\n transition: 250ms ease-in-out height, 250ms ease-in-out width, 250ms ease-in-out padding-inline;\n\n color: var(--text-on-color, #fff);\n\n &_content {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n }\n\n &_count {\n margin: 0;\n white-space: nowrap;\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--fz-lg, 18px);\n letter-spacing: 0.16px;\n }\n }\n\n .xv-table {\n display: flex;\n flex-direction: column;\n position: relative;\n &_wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--layer-accent-03) transparent;\n ::slotted(*) {\n min-width: 1000px;\n }\n }\n ::slotted([checked]) {\n background-color: var(--layer-selected-01, #E3E3E3);\n }\n ::slotted([checked]:not([header]):hover) {\n background-color: var(--layer-selected-hover-01, #DADADA);\n }\n\n ::slotted(#{$tag-name}-row[disabled]) {\n pointer-events: none;\n opacity: 0.4;\n cursor: not-allowed;\n user-select: none;\n }\n\n ::slotted([slot=\"footer\"]:hover),\n ::slotted([slot=\"footer\"]) {\n background-color: var(--layer-accent-02, #E3E3E3);\n }\n\n &_loading {\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--xv-table-min-height, 51.11px);\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.8);\n }\n }\n\n .xv-table-title,\n ::slotted([slot=\"title\"]) {\n color: var(--text-primary, #333)!important;\n font-size: var(--fz-xl, 21px)!important;\n margin-top: var(--spacing-05, 16px)!important;\n margin-bottom: var(--spacing-06, 24px)!important;\n font-family: var(--ff-heading, \"Gill Sans\");\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n }\n}\n\n:host([hover]) {\n .xv-table {\n ::slotted(:hover:not([header])) {\n background-color: var(--layer-hover-01, #E9E9E9);\n }\n }\n}\n\n:host(.batchVisible) {\n .batch-actions {\n pointer-events: initial;\n user-select: initial;\n width: 100%;\n padding-inline: var(--xv-table-padding-x);\n }\n}\n\n:host([expandable]) {\n ::slotted(#{$tag-name}-row) {\n padding-inline-start: calc((max(10px, var(--xv-table-padding-x)) * 2) + 10px);\n }\n}\n\n:host([variant-checkbox]) {\n ::slotted([slot=\"footer\"]:not([variant])) {\n padding-inline-start: calc((max(10px, var(--xv-table-padding-x)) * 2) + 57.97px);\n }\n}\n\n// region Size Vars\n:host([size=\"xs\"]) {\n --xv-table-padding-y: 7px;\n --xv-table-min-height: 35.1px;\n}\n:host([size=\"sm\"]) {\n --xv-table-padding-y: 10px;\n --xv-table-min-height: 41.11px;\n}\n:host([size=\"lg\"]) {\n --xv-table-padding-y: 21px;\n --xv-table-min-height: 63.09px;\n}\n:host([size=\"xl\"]) {\n --xv-table-padding-y: 31px;\n --xv-table-min-height: 78.77px;\n}\n// endregion\n","import { Component, Host, h, Element, Prop, State, Listen, Fragment, Watch } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { SelectRowDto } from './_vars';\n\n@Component({\n tag: 'xv-table-v2',\n styleUrl: 'xv-table.scss',\n shadow: true,\n})\nexport class XvTable {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) size?: SIZE_VAR;\n @Prop({ reflect: true }) hover?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, attribute: 'colsSize' }) colsSize?: (string | null)[];\n @State() selected: Map<string, SelectRowDto> = new Map();\n @State() selectedCount: number = 0;\n\n @Listen('checkedChange')\n handleCheckedChange({ detail }: CustomEvent<SelectRowDto>) {\n if (detail.header || detail.expandable) return;\n if (detail.checked) {\n this.selected.set(detail.name, detail);\n } else {\n this.selected.delete(detail.name);\n }\n\n this.selectedCount = this.selected.size;\n }\n\n @Watch('colsSize')\n private setColsSizeTemplate() {\n if (!this.colsSize || !this.colsSize?.length) return;\n\n this.el.style.setProperty(\n '--xv-table-cols-template',\n this.colsSize\n .map((v) => {\n if (!v) return 'minmax(0, 1fr)';\n if (v === 'auto') return 'minmax(0, auto)';\n return `calc(${v} - ${50 / this.colsSize.length}px)`;\n })\n .join(' ') + ' repeat(auto-fit, minmax(0, 1fr))',\n );\n }\n\n render() {\n return (\n <Host class={{ batchVisible: !!this.selectedCount }}>\n <slot name=\"title\">\n {!!this.el.title && <h2 class=\"xv-table-title\">{this.el.title}</h2>}\n </slot>\n\n <slot name=\"toolbar\" />\n\n <div class=\"xv-table\">\n <div class=\"batch-actions\">\n <Fragment>\n <div class=\"batch-actions_content\">\n <slot name=\"batch\" />\n </div>\n <p class=\"batch-actions_count\">\n {!!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`}\n </p>\n </Fragment>\n </div>\n\n <div class=\"xv-table_wrapper\">\n <slot />\n\n <slot name=\"footer\" />\n </div>\n\n {!!this.loading && (\n <div class=\"xv-table_loading\">\n <xv-loader-v2 size={SIZE_VAR.LG} />\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setColsSizeTemplate();\n }\n}\n","export interface SelectRowDto {\n name: string;\n checked: boolean;\n value?: string | number | object;\n partial?: boolean;\n header?: boolean;\n expandable?: boolean;\n}\n\nexport enum XV_SORT_DIR {\n ASC = 'asc',\n DESC = 'desc',\n NONE = 'none'\n}\n\nexport const XV_EXPANDABLE_KEY = 'expandable';\nexport const XV_TABLE_TAG = 'xv-table-v2';\n\nexport interface XVTableSortDto {\n name?: string;\n value: XV_SORT_DIR;\n}\n",":host {\n white-space: nowrap;\n\n overflow: hidden;\n text-overflow: ellipsis;\n padding: var(--xv-table-padding-y) var(--xv-table-padding-x);\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 1.2;\n letter-spacing: 0.16px;\n transition: .25s ease-in-out background-color;\n}\n\n:host([multiline]) {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n white-space: initial;\n padding-bottom: 1px; // overflow some symbols on bottom\n padding-top: 0;\n line-height: 1.2;\n}\n\n// region Cell Align\n:host([align=\"left\"]) {\n text-align: left;\n}\n:host([align=\"right\"]) {\n text-align: right;\n}\n:host([align=\"center\"]) {\n text-align: center;\n}\n// endregion\n\n// region Sorting styles\n:host([sort]) {\n position: relative;\n cursor: pointer;\n user-select: none;\n &:before, &:after {\n font-size: 12px;\n line-height: 10px;\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 8px;\n pointer-events: none;\n transition: 350ms ease-in-out opacity;\n opacity: 0;\n }\n\n &:before {\n content: \"▲\";\n top: 50%;\n transform: translateY(calc(-50% - 5px));\n }\n\n &::after {\n content: \"▼\";\n top: 50%;\n transform: translateY(calc(-50% + 5px));\n }\n}\n:host([sort]:hover) {\n background-color: var(--layer-accent-hover-01, #E3E3E3);\n &::before, &::after {\n opacity: 1;\n }\n}\n:host([sort=\"asc\"]) {\n background-color: var(--layer-accent-active-01, #D1D1D1);\n &::before {\n opacity: 1;\n }\n\n &::after {\n display: none;\n }\n}\n:host([sort=\"desc\"]) {\n background-color: var(--layer-accent-active-01, #D1D1D1);\n &::before {\n display: none;\n }\n\n &::after {\n opacity: 1;\n }\n}\n// endregion\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, Listen } from '@stencil/core';\nimport { XV_SORT_DIR, XVTableSortDto } from '../_vars';\nimport { forEach, uidGenerator } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-cell',\n styleUrl: 'xv-table-cell.scss',\n shadow: true,\n})\nexport class XvTableCell {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) multiline?: boolean;\n @Prop({ reflect: true, mutable: true }) name?: string;\n @Prop({ reflect: true }) align?: 'left' | 'right' | 'center';\n @Prop({ reflect: true, mutable: true }) sort?: XV_SORT_DIR | '';\n @Event({ eventName: 'sortChange' }) sortChange: EventEmitter<XVTableSortDto>;\n\n @Listen('click')\n handleSort() {\n if (this.sort === undefined) return;\n let sort: XV_SORT_DIR | '' = this.sort;\n if (this.sort === '') sort = XV_SORT_DIR.NONE;\n\n this.sort = sort === XV_SORT_DIR.NONE ?\n XV_SORT_DIR.ASC : sort === XV_SORT_DIR.ASC ?\n XV_SORT_DIR.DESC : XV_SORT_DIR.NONE;\n\n forEach(this.el.parentElement.children, (cell) => {\n if (cell !== this.el && cell.hasAttribute('sort')) {\n cell.setAttribute('sort', 'none');\n }\n });\n\n if (!this.name) this.name = uidGenerator();\n this.sortChange.emit({ name: this.name, value: this.sort });\n };\n\n render() {\n return (\n <Host><slot /></Host>\n );\n }\n}\n","$tag-name: xv-table-v2;\n\n:host {\n display: block;\n position: relative;\n transition: .25s ease-in-out background-color;\n\n .expand-btn {\n z-index: 9;\n position: absolute;\n left: max(10px, var(--xv-table-padding-x));\n top: max(2px, calc(var(--xv-table-padding-y) + 2px));\n background-color: transparent;\n cursor: pointer;\n outline: none;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n display: block;\n width: 8.5px;\n height: 8.5px;\n border-top: none;\n border-left: none;\n border-right: 2px solid var(--icon-primary, #333);\n border-bottom: 2px solid var(--icon-primary, #333);\n transform: rotate(45deg);\n transform-origin: center center;\n transition: .2s ease-in-out transform;\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n &.open {\n transform: rotate(-135deg);\n }\n }\n\n .expandableContent {\n overflow: hidden;\n margin: 0;\n padding: 0;\n max-height: 0;\n transition: 250ms ease max-height;\n &.open {\n max-height: 600px;\n }\n }\n\n ::slotted([slot=\"expandable\"]) {\n display: grid;\n align-items: center;\n }\n\n ::slotted(#{$tag-name}-row),\n ::slotted([slot=\"expandable\"]) {\n padding-inline-start: calc((max(10px, var(--xv-table-padding-x)) * 2) + 10px);\n }\n\n ::slotted([disabled]) {\n pointer-events: none;\n opacity: 0.4;\n cursor: not-allowed;\n user-select: none;\n }\n}\n","import { Component, Host, h, Element, Prop } from '@stencil/core';\nimport { XV_EXPANDABLE_KEY } from '../_vars';\nimport { setAttr } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-expand',\n styleUrl: 'xv-table-expand.scss',\n shadow: true,\n})\nexport class XvTableExpand {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n private handleExpand = () => {\n this.open = !this.open;\n };\n\n render() {\n return (\n <Host>\n <button\n class={{ 'expand-btn': true, open: this.open }}\n disabled={this.disabled}\n onClick={this.handleExpand}\n />\n <slot name={XV_EXPANDABLE_KEY} />\n\n <div class={{ expandableContent: true, open: this.open }}><slot /></div>\n </Host>\n );\n }\n\n componentDidLoad() {\n setAttr(this.el.parentElement, XV_EXPANDABLE_KEY, true);\n }\n}\n",":host {\n display: grid;\n grid-template-columns: var(--xv-table-cols-template, repeat(auto-fit, minmax(0, 1fr)));\n border-bottom: 1px solid #E3E3E3;\n border-right: 1px solid #E3E3E3;\n border-left: 1px solid #E3E3E3;\n min-height: var(--xv-table-min-height);\n align-items: center;\n align-content: center;\n transition: .25s ease-in-out background-color;\n .cell-control {\n min-height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n:host([variant]) {\n grid-template-columns: minmax(47.97px, min-content) var(--xv-table-cols-template, repeat(auto-fit, minmax(0, 1fr)));\n}\n\n:host([hover]:not([header]):hover) {\n background-color: var(--layer-hover-01, #E9E9E9);\n}\n:host([checked]) {\n background-color: var(--layer-selected-01, #E3E3E3);\n}\n:host([checked]:hover) {\n background-color: var(--layer-selected-hover-01, #DADADA);\n}\n\n:host([header]) {\n background-color: var(--layer-accent-01, #F7F7F7);\n box-shadow: 0 0 0 1px #E3E3E3 inset;\n border-bottom: none;\n}\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { SelectRowDto, XV_EXPANDABLE_KEY, XV_TABLE_TAG } from '../_vars';\nimport { setAttr, uidGenerator } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-row',\n styleUrl: 'xv-table-row.scss',\n shadow: true,\n})\nexport class XvTableRow {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) checked?: SelectRowDto['checked'];\n @Event({ eventName: 'checkedChange' }) checkedChange: EventEmitter<SelectRowDto>;\n @Prop({ reflect: true, mutable: true }) partial?: SelectRowDto['partial'];\n @Prop({ reflect: true, mutable: true }) name?: SelectRowDto['name'];\n @Prop({ reflect: true }) value?: SelectRowDto['value'];\n @Prop({ reflect: true, mutable: true }) hover?: boolean;\n @Prop({ reflect: true }) readonly?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) header?: boolean;\n @Prop({ reflect: true, mutable: true }) variant?: 'checkbox' | 'radio' | '';\n\n @Event({ eventName: 'selectRow' }) selectRow: EventEmitter<SelectRowDto>;\n\n @Watch('checked')\n checkedChangeHandle() {\n if (!this.name) this.name = uidGenerator();\n this.checkedChange.emit({\n name: this.name,\n value: this.value,\n checked: this.checked,\n partial: this.partial,\n header: this.header,\n expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,\n });\n }\n\n private checkHandle = ({ detail: checked }: CustomEvent<boolean>) => {\n if (!checked && this.partial) this.partial = checked;\n\n if (!this.name) this.name = uidGenerator();\n this.selectRow.emit({\n name: this.name,\n value: this.value,\n checked: checked,\n partial: this.partial,\n header: this.header,\n expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,\n });\n };\n\n private setInitialAttrs() {\n if (this.variant || !this.hover) {\n const tableEl = this.el.closest(XV_TABLE_TAG);\n if (!this.hover) {\n this.hover = tableEl.hasAttribute('hover');\n }\n if (this.variant) {\n setAttr(this.el.closest(XV_TABLE_TAG), `variant-${this.variant}`, !!this.variant);\n }\n }\n }\n\n render() {\n return (\n <Host>\n {this.variant !== undefined && (\n <xv-table-v2-cell class=\"cell-control\">\n {this.variant === 'checkbox' && (\n <xv-checkbox-v2\n name={this.name}\n partial={this.partial}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n onEventChange={this.checkHandle}\n />\n )}\n {this.variant === 'radio' && (\n <input\n type=\"radio\"\n name={this.name}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n />\n )}\n </xv-table-v2-cell>\n )}\n\n <slot />\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setInitialAttrs();\n }\n}\n","export enum TAB_TAGS {\n TABS = 'xv-tabs-v2',\n TAB = 'xv-tab-v2'\n}\n\nexport enum TABS_VATIANT {\n DEFAULT = '',\n // other variants will be here\n}\n","$tab-tag: xv-tab-v2;\n$tab-text-active-color: var(--text-primary, #333);\n$tab-text-color: var(--text-secondary, #515151);\n$tab-border-active-color: var(--interactive-01, #273435);\n$tab-border-color: var(--border-border-subtle-01, #D1D1D1);\n\n:host(.xv-tabs) {\n display: flex;\n flex-direction: column;\n\n .tab-headers {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n &_container {\n display: flex;\n flex: 1 1 auto;\n white-space: nowrap;\n overflow-x: auto;\n scroll-behavior: smooth;\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n &_tab {\n background: none;\n padding: 11px var(--gap-md, 16px);\n cursor: pointer;\n font: inherit;\n transition: border-color 0.3s ease, font-weight 0.3s ease, color 0.3s ease;\n position: relative;\n border: 2px solid transparent;\n border-bottom-color: $tab-border-color;\n background-blend-mode: multiply;\n color: $tab-text-color;\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 18px;\n letter-spacing: 0.16px;\n height: 40px;\n white-space: nowrap;\n\n &:after {\n content: '';\n position: absolute;\n transition: background-color 0.3s ease, width 0.3s ease;\n top: 100%;\n left: 0;\n right: 0;\n width: 0;\n height: 2px;\n background-color: $tab-border-active-color;\n }\n\n &:focus {\n outline: none;\n border: 2px solid $tab-border-color;\n }\n\n &:hover {\n border-bottom-color: var(--border-strong-01, #8B8B8B);\n }\n\n &.active {\n color: $tab-text-active-color;\n font-weight: 700;\n &:after {\n width: 100%;\n }\n\n &:focus {\n border-color: $tab-border-active-color;\n }\n }\n\n &:disabled {\n color: var(--text-on-color-disabled, #8B8B8B);\n border-bottom-color: var(--border-disabled, #D1D1D1);\n cursor: not-allowed;\n &:after {\n background-color: var(--border-disabled, #D1D1D1);\n }\n }\n }\n\n &_btn {\n outline: none;\n width: 40px;\n height: 40px;\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: 0.25s ease-in-out opacity;\n\n &:before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border: solid currentColor;\n border-width: 0 2px 2px 0;\n display: inline-block;\n padding: 5px;\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &:active {\n opacity: 0.3;\n }\n\n &.prev:before {\n transform: translate(-50%, -50%) rotate(135deg);\n }\n &.next:before {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n }\n }\n\n .tab-content-wrapper {\n position: relative;\n overflow: hidden;\n padding: var(--gap-md, 16px) 0;\n }\n\n ::slotted(#{$tab-tag}) {\n position: absolute;\n opacity: 0;\n max-height: 0;\n transition: max-height 0.5s ease;\n width: 100%;\n pointer-events: none;\n }\n\n ::slotted(#{$tab-tag}.active) {\n position: relative;\n opacity: 1;\n overflow-y: auto;\n pointer-events: auto;\n max-height: 1000px;\n }\n\n .xv-tabs_empty {\n display: block;\n text-align: center;\n margin: 20px auto;\n font-size: var(--fz-xl);\n color: var(--text-primary);\n }\n}\n\n:host([loading]) {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 300px;\n}\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, State, Listen } from '@stencil/core';\nimport { TAB_TAGS, TABS_VATIANT } from './_vars';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-tabs-v2',\n styleUrl: 'xv-tabs.scss',\n shadow: true,\n})\nexport class XvTabs {\n @Element() el: HTMLElement;\n /**\n * Index of active tab\n */\n @Prop({ reflect: true, mutable: true }) active: number | string = 0;\n /**\n * Emit event to outside\n */\n @Event() activeChange: EventEmitter<number | string>;\n /**\n * Show loader\n */\n @Prop({ reflect: true }) loading?: boolean;\n /**\n * Variant of tabs from TABS_VATIANT enum\n */\n @Prop() variant: TABS_VATIANT = TABS_VATIANT.DEFAULT;\n /**\n * Message when have no tabs\n */\n @Prop() emptyMessage?: string;\n /**\n * local variable for tab labels collection\n */\n @State() tabElements: HTMLElement[] = [];\n /**\n * Is show arrows for scroll\n */\n @State() showArrows: boolean = false;\n\n @Listen('resize', { target: 'window' })\n updateArrowVisibility() {\n const container = this.el.shadowRoot?.querySelector('.tab-headers_container') as HTMLElement | null;\n if (!container) return;\n\n this.showArrows = container.scrollWidth > container.clientWidth;\n }\n\n private collectTabs = () => {\n if (!this.tabElements.length) {\n this.tabElements = Array.from(this.el.querySelectorAll(TAB_TAGS.TAB));\n this.tabElements.forEach((tab) => {\n if (tab.hasAttribute('name') && !this.active) {\n this.active = tab.getAttribute('name');\n }\n })\n\n setTimeout(() => this.updateArrowVisibility(), 100);\n }\n }\n\n private updateTabClasses() {\n this.tabElements.forEach((tab, i) => {\n tab.classList.toggle(\n 'active',\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n });\n }\n\n private handleTabClick(active: string | number) {\n if (active === this.active) return;\n\n this.active = active;\n this.activeChange.emit(Number(this.active) || this.active);\n this.scrollToActiveTab();\n }\n\n private scrollToActiveTab() {\n if (!this.showArrows) return;\n\n // wait next JS tik\n setTimeout(() => {\n this.el.shadowRoot\n .querySelector('.tab-headers_tab.active')\n .scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\n });\n }\n\n private setTab(count: number = 1) {\n const currentIdx = this.tabElements.findIndex(\n (tab, i) =>\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n const nextIdx = currentIdx + count;\n\n if (nextIdx < 0 || nextIdx >= this.tabElements.length) return;\n\n const nextTab = this.tabElements[nextIdx];\n\n if (!nextTab || nextTab.hasAttribute('disabled')) return;\n\n this.handleTabClick(nextTab.getAttribute('name') || nextIdx);\n }\n\n render() {\n if (this.loading) {\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <xv-loader-v2 size={SIZE_VAR.XL} />\n </Host>\n )\n }\n\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <div class=\"tab-headers\" role=\"tablist\">\n <button\n hidden={!this.showArrows || !this.tabElements?.length}\n aria-label=\"Previous\"\n class=\"tab-headers_btn prev\"\n onClick={() => this.setTab(-1)}\n />\n <div class=\"tab-headers_container\">\n {this.tabElements?.length ? this.tabElements.map((tab, index) => (\n <button\n role=\"tab\"\n disabled={!!tab.getAttribute('disabled') || !!(tab as any)?.disabled}\n class={{\n 'tab-headers_tab': true,\n active: (tab.getAttribute('name') || `${index}`) === `${this.active}`,\n }}\n onClick={() => this.handleTabClick(tab.getAttribute('name') || `${index}`)}\n >\n {tab.getAttribute('label') || `Tab ${index + 1}`}\n </button>\n )) : this.emptyMessage && <p class=\"xv-tabs_empty\">{this.emptyMessage}</p>}\n </div>\n <button\n aria-label=\"Next\"\n hidden={!this.showArrows || !this.tabElements?.length}\n class=\"tab-headers_btn next\"\n onClick={() => this.setTab(1)}\n />\n </div>\n\n <div\n class=\"tab-content-wrapper\"\n role=\"tabpanel\"\n tabindex={-1}\n >\n <slot onSlotchange={this.collectTabs} />\n </div>\n </Host>\n );\n }\n\n componentDidRender() {\n this.updateTabClasses();\n }\n}\n",":host {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 1000px;\n background-color: var(--background);\n color: var(--text-primary);\n font-family: var(--ff-body, inherit);\n\n .xv-tag_content {\n padding-left: 8px;\n padding-right: 8px;\n color: inherit;\n font-family: var(--ff-body);\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.32px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .xv-tag_close {\n box-sizing: border-box;\n text-decoration: none;\n border: none;\n background-color: inherit;\n outline: none;\n border-spacing: 0;\n list-style: none outside none;\n margin: 0;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 62px;\n width: 15px;\n height: 15px;\n text-align: left;\n color: inherit;\n text-indent: 0;\n transition: opacity 300ms ease-in-out, filter 300ms ease-in-out;\n &:hover {\n cursor: pointer;\n filter: brightness(80%);\n }\n\n &:active {\n opacity: 0.7;\n }\n\n &:focus {\n outline: 1px solid currentColor;\n }\n\n &:after {\n overflow: hidden;\n width: inherit;\n height: inherit;\n color: inherit;\n font-size: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n content: \"\\00d7\";\n }\n }\n}\n\n:host(.sm) {\n font-size: var(--fz-sm);\n}\n\n:host(.md) {\n font-size: var(--fz-md);\n .xv-tag_content {\n line-height: 24px;\n }\n\n .xv-tag_close {\n height: 24px;\n width: 24px;\n }\n}\n\n:host(.lg) {\n font-size: var(--fz-lg);\n .xv-tag_content {\n line-height: 26px;\n }\n\n .xv-tag_close {\n height: 26px;\n width: 26px;\n }\n}\n\n:host(.disabled) {\n pointer-events: none;\n background-color: var(--layer-01);\n color: var(--text-disabled);\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-tag-v2',\n styleUrl: 'xv-tag.scss',\n shadow: true,\n})\nexport class XvTag {\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() color: string = '';\n @Prop() bg: string = '';\n @Prop() disabled: boolean = false;\n @Prop() closeable: boolean = false;\n @Event() closeClick: EventEmitter<PointerEvent>;\n\n closeHandler(e: PointerEvent) {\n if (this.disabled) return;\n\n this.closeClick.emit(e);\n }\n\n render() {\n return (\n <Host\n style={{ color: this.color, background: this.bg }}\n class={`xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}`}\n >\n <div class=\"xv-tag_content\">\n <slot></slot>\n </div>\n {this.closeable && (\n <button onClick={this.closeHandler.bind(this)} class=\"xv-tag_close\"></button>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n text-align: left;\n .control {\n &_label {\n display: block;\n margin-bottom: var(--spacing-03);\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 700;\n line-height: var(--fz-md);\n letter-spacing: 0.32px;\n }\n\n &_input {\n display: flex;\n border: 1px solid var(--border-subtle-01);\n outline: 2px solid transparent;\n background-color: transparent;\n border-radius: 3px;\n transition: 250ms ease-in-out border-color, 250ms ease-in-out outline-color;\n &:hover {\n border-color: var(--border-subtle-selected-01);\n }\n\n &:focus-within {\n outline-color: var(--focus);\n }\n\n &.error {\n outline-color: var(--support-error);\n }\n\n &.readonly {\n border-radius: 0;\n border-top-width: 0;\n border-left-width: 0;\n border-right-width: 0;\n outline-color: transparent;\n }\n\n input[type=\"text\"] {\n flex: 1;\n border: none;\n outline: none;\n -moz-appearance: textfield;\n background-color: transparent;\n margin: 0;\n padding-block: 0;\n padding-inline: var(--spacing-05);\n box-sizing: border-box;\n color: var(--text-primary);\n min-width: 20px;\n font-style: normal;\n font-weight: 400;\n letter-spacing: 0.16px;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n\n &__icons {\n display: inline-flex;\n align-items: stretch;\n column-gap: 2px;\n padding-right: var(--spacing-05);\n .status-icon {\n display: inline-flex;\n align-items: center;\n align-self: center;\n font-size: 1.35em;\n &.error {\n background-color: var(--support-error);\n color: white;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n }\n &.warning {\n color: var(--support-warning);\n }\n }\n\n hr {\n border: none;\n outline: none;\n width: 2px;\n height: 60%;\n align-self: center;\n background-color: var(--border-subtle-01);\n display: inline-flex;\n }\n }\n\n &.xs {\n height: 16px;\n }\n &.sm {\n height: 32px;\n }\n &.md {\n height: 40px;\n }\n &.lg {\n height: 48px;\n }\n &.xl {\n height: 60px;\n }\n }\n }\n\n .message {\n margin: var(--spacing-02) 0 0;\n color: var(--text-helper, #646464);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--fz-md, 16px);\n letter-spacing: 0.32px;\n &.error {\n color: var(--text-error);\n }\n &.warning {\n color: var(--text-secondary, #515151);\n }\n }\n}\n\n:host(.disabled) {\n cursor: not-allowed;\n\n .control_label,\n .control_input input[type=\"text\"],\n .control_input input[type=\"text\"]::placeholder,\n .message:not(.error) {\n color: var(--text-disabled);\n cursor: not-allowed;\n }\n\n .control_input__icons,\n .message.error {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n:host([block]) {\n display: block;\n}\n","import { AttachInternals, Component, h, Host, Prop, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n/**\n * xv-text-input — custom input\n * ti get data you can use default Input event\n * Angular - (input), React - (onInput), Pure - addEventListener('input', e => ...)\n */\n@Component({\n tag: 'xv-text-input-v2',\n styleUrl: 'xv-text-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class XvTextInput {\n @Prop() type: 'text' | 'email' | 'password' | 'url' | 'tel' = 'text';\n @Prop() label: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: true }) name: string;\n @Prop({ mutable: true }) value: string = '';\n @Event({ eventName: 'valueChange' }) valueChange: EventEmitter<string>;\n @Prop() helper?: string;\n @Prop() error?: string | boolean;\n @Prop() warning?: string | boolean;\n @Prop() readonly?: boolean;\n @Prop() disabled?: boolean;\n @Prop() loading: boolean = false;\n @Prop() block?: boolean;\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n\n @AttachInternals() internals: ElementInternals;\n\n private handleInput = (e: InputEvent) => {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.valueChange.emit(this.value);\n this.internals.setFormValue(target.value);\n }\n\n render() {\n return (\n <Host class={{ disabled: !!this.disabled }}>\n <label class=\"control\">\n {this.label && <span class=\"control_label\">{this.label}</span>}\n\n <div class={{\n 'control_input': true,\n readonly: !!this.readonly,\n [this.size]: true,\n error: !!this.error,\n warning: !!this.warning,\n }}>\n <input\n type={this.type}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleInput}\n name={this.name}\n value={this.value}\n />\n\n <div class=\"control_input__icons\">\n {this.loading && <xv-loader-v2 size={SIZE_VAR.XS} />}\n {!!this.error ? (\n <span class=\"status-icon error\" aria-hidden=\"true\">!</span>\n ) : !!this.warning ? (\n <span class=\"status-icon warning\" aria-hidden=\"true\">⚠</span>\n ) : null}\n </div>\n </div>\n </label>\n\n\n {this.helper && <p class=\"message\">{this.helper}</p>}\n {typeof this.error === 'string' ? (\n <p class=\"message error\">{this.error}</p>\n ) : typeof this.warning === 'string' ? (\n <p class=\"message warning\">{this.warning}</p>\n ) : null}\n </Host>\n );\n }\n}\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.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 }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";",":host {\n display: inline-block;\n font-family: inherit;\n\n .trigger {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n transition: 250ms ease-in-out color;\n color: var(--icon-secondary);\n\n &_icon {\n color: inherit;\n }\n\n ::slotted([slot=\"trigger\"]) {\n transition: 250ms ease-in-out color;\n color: var(--icon-secondary);\n }\n\n &:hover,\n &:active,\n ::slotted([slot=\"trigger\"]:hover),\n ::slotted([slot=\"trigger\"]:active) {\n color: var(--icon-primary);\n }\n\n &:focus,\n ::slotted([slot=\"trigger\"]:focus) {\n color: var(--focus);\n }\n }\n\n .popover {\n opacity: 1;\n z-index: 1000;\n position: absolute;\n background-color: var(--background-inverse);\n color: var(--text-inverse);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);\n max-width: 288px;\n font-size: 0.875rem;\n line-height: 1.5;\n margin-top: 8px;\n flex-direction: column;\n display: flex;\n\n &[data-popper-placement^='top'] .popover-tip {\n bottom: -4px;\n }\n &[data-popper-placement^='bottom'] .popover-tip {\n top: -4px;\n }\n &[data-popper-placement^='left'] .popover-tip {\n right: -4px;\n }\n &[data-popper-placement^='right'] .popover-tip {\n left: -4px;\n }\n\n .popover-tip {\n width: 10px;\n height: 10px;\n background-color: transparent;\n z-index: -1;\n &:before {\n content: '';\n transform: rotate(45deg);\n background-color: var(--background-inverse);\n width: inherit;\n height: inherit;\n display: inline-block;\n }\n }\n\n .popover-content {\n padding: var(--gap-md);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-04);\n\n ::slotted([slot=\"header\"]) {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--text-secondary);\n }\n\n ::slotted([slot=\"body\"]) {\n font-size: 0.875rem;\n color: var(--text-inverse);\n }\n\n ::slotted([slot=\"footer\"]) {\n font-size: 0.75rem;\n color: var(--text-inverse);\n opacity: 0.8;\n }\n }\n }\n}\n\n:host(:not([open])) {\n .popover {\n opacity: 0;\n z-index: -1;\n user-select: none;\n pointer-events: none;\n }\n}\n","import { h, Event, Prop, Listen, Watch, Method, Element, Component, Host, EventEmitter } from '@stencil/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Component({\n tag: 'xv-toggle-tip',\n styleUrl: 'xv-toggle-tip.scss',\n shadow: true,\n})\nexport class XvToggleTip {\n @Element() el: HTMLElement;\n\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Prop() position: Placement = 'auto';\n @Event({ eventName: 'openChange' }) openChange: EventEmitter<boolean>;\n\n private triggerEl!: HTMLElement;\n private popoverEl!: HTMLElement;\n private popperInstance?: Instance;\n\n @Watch('open')\n openChangeHandle() {\n if (this.open) {\n requestAnimationFrame(() => this.createPopper());\n } else {\n this.destroyPopper();\n }\n this.openChange.emit(this.open);\n }\n\n @Listen('click', { target: 'document' })\n handleClickOutside(e: MouseEvent) {\n if (this.open && !this.el.contains(e.target as Node)) {\n this.open = false;\n }\n };\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.open) {\n this.open = false;\n }\n };\n\n @Method()\n async setPopover(open: boolean) {\n if (open === this.open) return;\n this.open = open;\n\n return this.open;\n };\n\n private createPopper() {\n if (!this.triggerEl || !this.popoverEl) {\n console.warn('XvToggleTip can`t find the trigger or popover container!');\n return;\n }\n\n this.popperInstance = createPopper(this.triggerEl, this.popoverEl, {\n placement: this.position,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: 'viewport',\n padding: 8,\n },\n },\n ],\n });\n };\n\n private destroyPopper = () => {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = undefined;\n }\n };\n\n render() {\n return (\n <Host class=\"xv-toggle-tip\">\n <div\n class=\"trigger\"\n role=\"button\"\n tabindex=\"0\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-controls=\"popover\"\n onClick={() => this.setPopover(!this.open)}\n ref={(el) => (this.triggerEl = el)}\n >\n <slot name=\"trigger\">\n <svg class=\"trigger_icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width={16} height={16}>\n <path\n fill=\"currentColor\"\n d=\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"\n />\n </svg>\n </slot>\n </div>\n\n <div\n class={{ popover: true }}\n role=\"tooltip\"\n tabindex=\"-1\"\n ref={(el) => (this.popoverEl = el)}\n >\n <div class=\"popover-tip\" part=\"tip\" data-popper-arrow=\"\"></div>\n <div class=\"popover-content\">\n <slot name=\"header\"></slot>\n <slot name=\"body\"></slot>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.destroyPopper();\n }\n}\n",":host {\n position: relative;\n display: contents;\n}\n\n.xv-tooltip[role=\"tooltip\"] {\n position: absolute;\n background-color: var(--background-inverse);\n color: var(--text-on-color);\n padding: var(--spacing-03) var(--spacing-04);\n border-radius: 3px;\n font-size: var(--fz-md);\n z-index: 999;\n max-width: min(400px, 90vw);\n overflow: visible;\n\n [data-popper-arrow] {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: transparent;\n z-index: -1;\n &:before {\n content: '';\n transform: rotate(45deg);\n background-color: var(--background-inverse);\n width: inherit;\n height: inherit;\n display: inline-block;\n }\n }\n\n &[data-popper-placement^='top'] [data-popper-arrow]{\n bottom: 1px;\n }\n\n &[data-popper-placement^='bottom'] [data-popper-arrow] {\n top: -10px;\n }\n\n &[data-popper-placement^='left'] [data-popper-arrow] {\n right: -4px;\n }\n\n &[data-popper-placement^='right'] [data-popper-arrow] {\n left: -4px;\n }\n}\n","import { Component, Host, h, Prop, Element, State, Listen } from '@stencil/core';\nimport { createPopper, Placement, Instance } from '@popperjs/core';\n\n@Component({\n tag: 'xv-tooltip-v2',\n styleUrl: 'xv-tooltip.scss',\n shadow: false,\n})\nexport class XvTooltip {\n @Element() el: HTMLElement;\n\n @Prop() message: string;\n @Prop() position: Placement = 'auto';\n\n @State() visible: boolean = false;\n\n private tooltipEl: HTMLElement;\n private popperInstance: Instance;\n\n @Listen('mouseenter')\n onMouseEnter() {\n this.visible = true;\n requestAnimationFrame(() => this.createPopper());\n }\n\n @Listen('mouseleave')\n onMouseLeave() {\n this.visible = false;\n this.destroyPopper();\n }\n\n private createPopper() {\n if (this.tooltipEl) {\n this.popperInstance = createPopper(this.el, this.tooltipEl, {\n placement: this.position,\n modifiers: [{ name: 'offset', options: { offset: [0, 8] } }],\n });\n }\n }\n\n private destroyPopper() {\n this.popperInstance?.destroy();\n this.popperInstance = null;\n }\n\n render() {\n return (\n <Host>\n <slot>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width={16} height={16}>\n <path\n fill=\"currentColor\"\n d=\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"\n />\n </svg>\n </slot>\n {this.visible && (\n <div\n class=\"xv-tooltip\"\n ref={(el) => (this.tooltipEl = el)}\n role=\"tooltip\"\n >\n {this.message}\n <div class=\"xv-tooltip-arrow\" data-popper-arrow=\"\" />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}