q2-tecton-elements 1.50.1 → 1.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +21 -12
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/index-9aa4a776.js +235 -0
  4. package/dist/cjs/index-9aa4a776.js.map +1 -0
  5. package/dist/cjs/{index-43010ce4.js → index-f69742cf.js} +1 -1
  6. package/dist/cjs/{index-43010ce4.js.map → index-f69742cf.js.map} +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/q2-action-group.cjs.entry.js +50 -0
  9. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -0
  10. package/dist/cjs/q2-action-sheet.cjs.entry.js +1364 -3
  11. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-badge_7.cjs.entry.js +23 -13
  14. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  15. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  18. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  20. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-chart-donut.cjs.entry.js +16 -16
  24. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  26. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  27. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-data-table.cjs.entry.js +62 -62
  30. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
  33. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-dropdown.cjs.entry.js +79 -7
  35. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-formatted-text.cjs.entry.js +72 -0
  38. package/dist/cjs/q2-formatted-text.cjs.entry.js.map +1 -0
  39. package/dist/cjs/q2-item.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  42. package/dist/cjs/q2-link.cjs.entry.js +64 -0
  43. package/dist/cjs/q2-link.cjs.entry.js.map +1 -0
  44. package/dist/cjs/q2-list.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  48. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-option-list.cjs.entry.js +9 -4
  50. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  51. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-pagination.cjs.entry.js +90 -9
  53. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-pill.cjs.entry.js +26 -5
  55. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  59. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  60. package/dist/cjs/q2-resize-observer.cjs.entry.js +96 -0
  61. package/dist/cjs/q2-resize-observer.cjs.entry.js.map +1 -0
  62. package/dist/cjs/q2-section.cjs.entry.js +27 -3
  63. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  64. package/dist/cjs/q2-select.cjs.entry.js +7 -6
  65. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  67. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  68. package/dist/cjs/q2-stepper.cjs.entry.js +39 -3
  69. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  70. package/dist/cjs/q2-tag.cjs.entry.js +3 -2
  71. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  72. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  73. package/dist/cjs/q2-textarea.cjs.entry.js +46 -11
  74. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  75. package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
  76. package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
  77. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  78. package/dist/collection/collection-manifest.json +4 -0
  79. package/dist/collection/components/q2-action-group/q2-action-group.css +99 -0
  80. package/dist/collection/components/q2-action-group/q2-action-group.js +120 -0
  81. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -0
  82. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +30 -0
  83. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -0
  84. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +156 -0
  85. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -0
  86. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +3 -2
  87. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  88. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  89. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js +14 -9
  90. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  91. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js +14 -9
  92. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  93. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +14 -9
  94. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  95. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  96. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +227 -223
  97. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  98. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js +12 -7
  99. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  100. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js +49 -45
  101. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  102. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  103. package/dist/collection/components/q2-chart-area/q2-chart-area.js +2 -2
  104. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  105. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js +12 -7
  106. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  107. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +2 -2
  108. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  109. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js +16 -11
  110. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +15 -15
  112. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  113. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js +32 -26
  114. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  115. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js +12 -7
  116. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  117. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +2 -2
  118. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  119. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js +22 -17
  120. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  121. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  122. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js +12 -7
  123. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  124. package/dist/collection/components/q2-data-table/q2-data-table.js +104 -104
  125. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  126. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js +42 -24
  127. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  128. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  129. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js +12 -7
  130. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  131. package/dist/collection/components/q2-dropdown/q2-dropdown.js +207 -7
  132. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  133. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +297 -135
  134. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  135. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
  136. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  137. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js +18 -13
  138. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  139. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js +14 -18
  140. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  141. package/dist/collection/components/q2-formatted-text/q2-formatted-text.css +94 -0
  142. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +230 -0
  143. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -0
  144. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js +430 -0
  145. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -0
  146. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js +14 -9
  147. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  148. package/dist/collection/components/q2-input/q2-input.css +9 -0
  149. package/dist/collection/components/q2-input/q2-input.js +7 -8
  150. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  151. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +50 -33
  152. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  153. package/dist/collection/components/q2-item/q2-item.js +1 -1
  154. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js +32 -7
  155. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  156. package/dist/collection/components/q2-legend/q2-legend.css +1 -1
  157. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  158. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js +13 -8
  159. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  160. package/dist/collection/components/q2-link/q2-link.css +146 -0
  161. package/dist/collection/components/q2-link/q2-link.js +242 -0
  162. package/dist/collection/components/q2-link/q2-link.js.map +1 -0
  163. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +145 -0
  164. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -0
  165. package/dist/collection/components/q2-list/q2-list.js +1 -1
  166. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js +12 -7
  167. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  168. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js +14 -9
  169. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  170. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js +14 -9
  171. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  172. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  173. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +16 -11
  174. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  175. package/dist/collection/components/q2-message/q2-message.js +1 -1
  176. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js +14 -9
  177. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  178. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  179. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js +20 -13
  180. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  181. package/dist/collection/components/q2-option/q2-option.js +1 -1
  182. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +28 -12
  183. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  184. package/dist/collection/components/q2-option-list/q2-option-list.js +7 -5
  185. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  186. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js +415 -405
  187. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  188. package/dist/collection/components/q2-pagination/q2-pagination.js +230 -14
  189. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  190. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +138 -15
  191. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  192. package/dist/collection/components/q2-pill/q2-pill.css +12 -0
  193. package/dist/collection/components/q2-pill/q2-pill.js +43 -3
  194. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  195. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +412 -212
  196. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  197. package/dist/collection/components/q2-popover/q2-popover.js +37 -11
  198. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  199. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +296 -236
  200. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  201. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +3 -3
  202. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  203. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js +21 -7
  204. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  205. package/dist/collection/components/q2-radio-group/q2-radio-group.js +2 -2
  206. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  207. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js +32 -26
  208. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  209. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  210. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js +12 -7
  211. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  212. package/dist/collection/components/q2-resize-observer/q2-resize-observer.css +71 -0
  213. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +166 -0
  214. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -0
  215. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js +83 -0
  216. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -0
  217. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js +66 -0
  218. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -0
  219. package/dist/collection/components/q2-section/q2-section.js +78 -2
  220. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  221. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js +39 -9
  222. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  223. package/dist/collection/components/q2-select/q2-select.js +23 -5
  224. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  225. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +695 -676
  226. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  227. package/dist/collection/components/q2-stepper/q2-stepper.js +76 -2
  228. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  229. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js +183 -87
  230. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  231. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +2 -2
  232. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js +20 -9
  233. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  234. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  235. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js +71 -67
  236. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  237. package/dist/collection/components/q2-tab-container/q2-tab-container.js +50 -7
  238. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  239. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js +89 -65
  240. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  241. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  242. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js +14 -9
  243. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  244. package/dist/collection/components/q2-tag/q2-tag.js +19 -1
  245. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  246. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +47 -28
  247. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  248. package/dist/collection/components/q2-textarea/q2-textarea.js +51 -13
  249. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  250. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js +31 -10
  251. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  252. package/dist/collection/components/q2-tooltip/q2-tooltip.css +5 -2
  253. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js +51 -13
  254. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  255. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  256. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js +18 -13
  257. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  258. package/dist/collection/utils/helpers.js +65 -0
  259. package/dist/collection/utils/helpers.js.map +1 -1
  260. package/dist/collection/utils/index.js +11 -11
  261. package/dist/collection/utils/index.js.map +1 -1
  262. package/dist/collection/utils/sanitize-html-string.js +10 -0
  263. package/dist/collection/utils/sanitize-html-string.js.map +1 -0
  264. package/dist/collection/utils/sanitize-regex-string.js +4 -0
  265. package/dist/collection/utils/sanitize-regex-string.js.map +1 -0
  266. package/dist/components/index.js +8 -0
  267. package/dist/components/index.js.map +1 -1
  268. package/dist/components/index2.js +11 -1356
  269. package/dist/components/index2.js.map +1 -1
  270. package/dist/components/q2-action-group.d.ts +11 -0
  271. package/dist/components/q2-action-group.js +75 -0
  272. package/dist/components/q2-action-group.js.map +1 -0
  273. package/dist/components/q2-action-sheet.js +1363 -2
  274. package/dist/components/q2-action-sheet.js.map +1 -1
  275. package/dist/components/q2-avatar2.js +1 -1
  276. package/dist/components/q2-btn2.js +1 -1
  277. package/dist/components/q2-carousel-pane.js +2 -2
  278. package/dist/components/q2-chart-area.js +1 -1
  279. package/dist/components/q2-chart-area.js.map +1 -1
  280. package/dist/components/q2-chart-bar.js +1 -1
  281. package/dist/components/q2-chart-bar.js.map +1 -1
  282. package/dist/components/q2-chart-donut.js +15 -15
  283. package/dist/components/q2-chart-donut.js.map +1 -1
  284. package/dist/components/q2-checkbox-group.js +2 -2
  285. package/dist/components/q2-checkbox-group.js.map +1 -1
  286. package/dist/components/q2-currency.js +1 -1
  287. package/dist/components/q2-data-table.js +64 -64
  288. package/dist/components/q2-data-table.js.map +1 -1
  289. package/dist/components/q2-detail.js +1 -1
  290. package/dist/components/q2-dropdown-item2.js +1 -1
  291. package/dist/components/q2-dropdown-item2.js.map +1 -1
  292. package/dist/components/q2-dropdown.js +84 -7
  293. package/dist/components/q2-dropdown.js.map +1 -1
  294. package/dist/components/q2-formatted-text.d.ts +11 -0
  295. package/dist/components/q2-formatted-text.js +101 -0
  296. package/dist/components/q2-formatted-text.js.map +1 -0
  297. package/dist/components/q2-input2.js +4 -5
  298. package/dist/components/q2-input2.js.map +1 -1
  299. package/dist/components/q2-item.js +1 -1
  300. package/dist/components/q2-legend2.js +2 -2
  301. package/dist/components/q2-legend2.js.map +1 -1
  302. package/dist/components/q2-link.d.ts +11 -0
  303. package/dist/components/q2-link.js +93 -0
  304. package/dist/components/q2-link.js.map +1 -0
  305. package/dist/components/q2-list.js +1 -1
  306. package/dist/components/q2-loc.js +1 -1
  307. package/dist/components/q2-message2.js +1 -1
  308. package/dist/components/q2-month-picker.js +2 -2
  309. package/dist/components/q2-optgroup2.js +1 -1
  310. package/dist/components/q2-option-list2.js +8 -3
  311. package/dist/components/q2-option-list2.js.map +1 -1
  312. package/dist/components/q2-option2.js +1 -1
  313. package/dist/components/q2-pagination.js +97 -10
  314. package/dist/components/q2-pagination.js.map +1 -1
  315. package/dist/components/q2-pill.js +29 -5
  316. package/dist/components/q2-pill.js.map +1 -1
  317. package/dist/components/q2-popover2.js +22 -12
  318. package/dist/components/q2-popover2.js.map +1 -1
  319. package/dist/components/q2-radio-group.js +2 -2
  320. package/dist/components/q2-radio-group.js.map +1 -1
  321. package/dist/components/q2-relative-time.js +1 -1
  322. package/dist/components/q2-resize-observer.d.ts +11 -0
  323. package/dist/components/q2-resize-observer.js +8 -0
  324. package/dist/components/q2-resize-observer.js.map +1 -0
  325. package/dist/components/q2-resize-observer2.js +112 -0
  326. package/dist/components/q2-resize-observer2.js.map +1 -0
  327. package/dist/components/q2-section.js +30 -4
  328. package/dist/components/q2-section.js.map +1 -1
  329. package/dist/components/q2-select2.js +7 -5
  330. package/dist/components/q2-select2.js.map +1 -1
  331. package/dist/components/q2-stepper-vertical.js +1 -1
  332. package/dist/components/q2-stepper.js +40 -3
  333. package/dist/components/q2-stepper.js.map +1 -1
  334. package/dist/components/q2-tab-container.js +20 -8
  335. package/dist/components/q2-tab-container.js.map +1 -1
  336. package/dist/components/q2-tab-pane.js +1 -1
  337. package/dist/components/q2-tag.js +3 -1
  338. package/dist/components/q2-tag.js.map +1 -1
  339. package/dist/components/q2-textarea.js +49 -12
  340. package/dist/components/q2-textarea.js.map +1 -1
  341. package/dist/components/q2-tooltip.js +1 -1
  342. package/dist/components/q2-tooltip.js.map +1 -1
  343. package/dist/components/tecton-tab-pane.js +2 -2
  344. package/dist/esm/click-elsewhere_2.entry.js +21 -12
  345. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  346. package/dist/esm/{index-c6d74f10.js → index-3184c760.js} +1 -1
  347. package/dist/esm/{index-c6d74f10.js.map → index-3184c760.js.map} +1 -1
  348. package/dist/esm/index-844fc010.js +211 -0
  349. package/dist/esm/index-844fc010.js.map +1 -0
  350. package/dist/esm/loader.js +1 -1
  351. package/dist/esm/q2-action-group.entry.js +46 -0
  352. package/dist/esm/q2-action-group.entry.js.map +1 -0
  353. package/dist/esm/q2-action-sheet.entry.js +1363 -2
  354. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  355. package/dist/esm/q2-avatar.entry.js +1 -1
  356. package/dist/esm/q2-badge_7.entry.js +23 -13
  357. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  358. package/dist/esm/q2-calendar.entry.js +2 -2
  359. package/dist/esm/q2-card.entry.js +1 -1
  360. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  361. package/dist/esm/q2-carousel.entry.js +1 -1
  362. package/dist/esm/q2-chart-area.entry.js +2 -2
  363. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  364. package/dist/esm/q2-chart-bar.entry.js +2 -2
  365. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  366. package/dist/esm/q2-chart-donut.entry.js +16 -16
  367. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  368. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  369. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  370. package/dist/esm/q2-checkbox.entry.js +1 -1
  371. package/dist/esm/q2-currency.entry.js +1 -1
  372. package/dist/esm/q2-data-table.entry.js +62 -62
  373. package/dist/esm/q2-data-table.entry.js.map +1 -1
  374. package/dist/esm/q2-detail.entry.js +2 -2
  375. package/dist/esm/q2-dropdown-item.entry.js +2 -2
  376. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  377. package/dist/esm/q2-dropdown.entry.js +79 -7
  378. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  379. package/dist/esm/q2-editable-field.entry.js +1 -1
  380. package/dist/esm/q2-formatted-text.entry.js +68 -0
  381. package/dist/esm/q2-formatted-text.entry.js.map +1 -0
  382. package/dist/esm/q2-item.entry.js +2 -2
  383. package/dist/esm/q2-legend.entry.js +2 -2
  384. package/dist/esm/q2-legend.entry.js.map +1 -1
  385. package/dist/esm/q2-link.entry.js +60 -0
  386. package/dist/esm/q2-link.entry.js.map +1 -0
  387. package/dist/esm/q2-list.entry.js +2 -2
  388. package/dist/esm/q2-loc.entry.js +2 -2
  389. package/dist/esm/q2-message.entry.js +2 -2
  390. package/dist/esm/q2-month-picker.entry.js +3 -3
  391. package/dist/esm/q2-optgroup.entry.js +2 -2
  392. package/dist/esm/q2-option-list.entry.js +9 -4
  393. package/dist/esm/q2-option-list.entry.js.map +1 -1
  394. package/dist/esm/q2-option.entry.js +1 -1
  395. package/dist/esm/q2-pagination.entry.js +90 -9
  396. package/dist/esm/q2-pagination.entry.js.map +1 -1
  397. package/dist/esm/q2-pill.entry.js +26 -5
  398. package/dist/esm/q2-pill.entry.js.map +1 -1
  399. package/dist/esm/q2-radio-group.entry.js +2 -2
  400. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  401. package/dist/esm/q2-radio.entry.js +1 -1
  402. package/dist/esm/q2-relative-time.entry.js +3 -3
  403. package/dist/esm/q2-resize-observer.entry.js +92 -0
  404. package/dist/esm/q2-resize-observer.entry.js.map +1 -0
  405. package/dist/esm/q2-section.entry.js +27 -3
  406. package/dist/esm/q2-section.entry.js.map +1 -1
  407. package/dist/esm/q2-select.entry.js +7 -6
  408. package/dist/esm/q2-select.entry.js.map +1 -1
  409. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  410. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  411. package/dist/esm/q2-stepper.entry.js +39 -3
  412. package/dist/esm/q2-stepper.entry.js.map +1 -1
  413. package/dist/esm/q2-tag.entry.js +3 -2
  414. package/dist/esm/q2-tag.entry.js.map +1 -1
  415. package/dist/esm/q2-tecton-elements.js +1 -1
  416. package/dist/esm/q2-textarea.entry.js +47 -12
  417. package/dist/esm/q2-textarea.entry.js.map +1 -1
  418. package/dist/esm/q2-tooltip.entry.js +2 -2
  419. package/dist/esm/q2-tooltip.entry.js.map +1 -1
  420. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  421. package/dist/q2-tecton-elements/{p-0a3a804a.entry.js → p-06701928.entry.js} +2 -2
  422. package/dist/q2-tecton-elements/{p-0a3a804a.entry.js.map → p-06701928.entry.js.map} +1 -1
  423. package/dist/q2-tecton-elements/{p-5d936af5.entry.js → p-07d1c3ae.entry.js} +2 -2
  424. package/dist/q2-tecton-elements/p-1305f7ca.entry.js +2 -0
  425. package/dist/q2-tecton-elements/p-1305f7ca.entry.js.map +1 -0
  426. package/dist/q2-tecton-elements/p-15ac45d6.js +2 -0
  427. package/dist/q2-tecton-elements/p-15ac45d6.js.map +1 -0
  428. package/dist/q2-tecton-elements/{p-ce4e6b41.entry.js → p-16910682.entry.js} +2 -2
  429. package/dist/q2-tecton-elements/p-16910682.entry.js.map +1 -0
  430. package/dist/q2-tecton-elements/p-188eb162.entry.js +3 -0
  431. package/dist/q2-tecton-elements/p-188eb162.entry.js.map +1 -0
  432. package/dist/q2-tecton-elements/{p-58cafc0d.entry.js → p-1c760a89.entry.js} +2 -2
  433. package/dist/q2-tecton-elements/{p-074ae80c.entry.js → p-1c88d057.entry.js} +2 -2
  434. package/dist/q2-tecton-elements/{p-3b0d3cd4.entry.js → p-20a3d6ed.entry.js} +2 -2
  435. package/dist/q2-tecton-elements/p-20a3d6ed.entry.js.map +1 -0
  436. package/dist/q2-tecton-elements/{p-77a0cc0c.entry.js → p-2733583e.entry.js} +2 -2
  437. package/dist/q2-tecton-elements/{p-4116579f.entry.js → p-3e428290.entry.js} +2 -2
  438. package/dist/q2-tecton-elements/p-3e428290.entry.js.map +1 -0
  439. package/dist/q2-tecton-elements/{p-072c5877.entry.js → p-4774e5b3.entry.js} +2 -2
  440. package/dist/q2-tecton-elements/{p-77272c4c.entry.js → p-490ef8e5.entry.js} +2 -2
  441. package/dist/q2-tecton-elements/{p-0a1dff75.entry.js → p-4e10550d.entry.js} +2 -2
  442. package/dist/q2-tecton-elements/p-4e10550d.entry.js.map +1 -0
  443. package/dist/q2-tecton-elements/{p-2ca6d44f.entry.js → p-50f7328f.entry.js} +2 -2
  444. package/dist/q2-tecton-elements/p-5637c486.entry.js +2 -0
  445. package/dist/q2-tecton-elements/p-5637c486.entry.js.map +1 -0
  446. package/dist/q2-tecton-elements/p-56df21b0.entry.js +2 -0
  447. package/dist/q2-tecton-elements/p-56df21b0.entry.js.map +1 -0
  448. package/dist/q2-tecton-elements/{p-34856c71.entry.js → p-5a834214.entry.js} +2 -2
  449. package/dist/q2-tecton-elements/{p-34856c71.entry.js.map → p-5a834214.entry.js.map} +1 -1
  450. package/dist/q2-tecton-elements/p-5f99a4a8.entry.js +2 -0
  451. package/dist/q2-tecton-elements/p-5f99a4a8.entry.js.map +1 -0
  452. package/dist/q2-tecton-elements/p-72d948b4.entry.js +2 -0
  453. package/dist/q2-tecton-elements/p-72d948b4.entry.js.map +1 -0
  454. package/dist/q2-tecton-elements/{p-3c7be0bb.entry.js → p-7903cd15.entry.js} +2 -2
  455. package/dist/q2-tecton-elements/p-7903cd15.entry.js.map +1 -0
  456. package/dist/q2-tecton-elements/{p-d2e1631a.entry.js → p-7906f49e.entry.js} +2 -2
  457. package/dist/q2-tecton-elements/{p-d2e1631a.entry.js.map → p-7906f49e.entry.js.map} +1 -1
  458. package/dist/q2-tecton-elements/{p-2fcaf2d6.entry.js → p-7aef0c08.entry.js} +2 -2
  459. package/dist/q2-tecton-elements/{p-8a4b106d.entry.js → p-7c9a0122.entry.js} +2 -2
  460. package/dist/q2-tecton-elements/p-7c9f8b62.entry.js +2 -0
  461. package/dist/q2-tecton-elements/p-7c9f8b62.entry.js.map +1 -0
  462. package/dist/q2-tecton-elements/{p-cf32b5db.entry.js → p-81fbe718.entry.js} +2 -2
  463. package/dist/q2-tecton-elements/p-81fbe718.entry.js.map +1 -0
  464. package/dist/q2-tecton-elements/{p-6237c775.entry.js → p-896c7008.entry.js} +2 -2
  465. package/dist/q2-tecton-elements/{p-395904b4.entry.js → p-8d07cf91.entry.js} +2 -2
  466. package/dist/q2-tecton-elements/{p-fffb54e9.entry.js → p-8d2b02e1.entry.js} +2 -2
  467. package/dist/q2-tecton-elements/{p-6e6d9793.entry.js → p-95a7c042.entry.js} +2 -2
  468. package/dist/q2-tecton-elements/{p-45407ecc.entry.js → p-96b1406c.entry.js} +2 -2
  469. package/dist/q2-tecton-elements/{p-cb3f48de.entry.js → p-a47597dd.entry.js} +2 -2
  470. package/dist/q2-tecton-elements/p-a47597dd.entry.js.map +1 -0
  471. package/dist/q2-tecton-elements/p-a5d0e252.entry.js +2 -0
  472. package/dist/q2-tecton-elements/p-a5d0e252.entry.js.map +1 -0
  473. package/dist/q2-tecton-elements/{p-2c26295e.entry.js → p-ac6aa392.entry.js} +2 -2
  474. package/dist/q2-tecton-elements/{p-376a0589.entry.js → p-ad057d10.entry.js} +2 -2
  475. package/dist/q2-tecton-elements/{p-ad998f71.entry.js → p-b0e5e9dc.entry.js} +2 -2
  476. package/dist/q2-tecton-elements/p-b0e5e9dc.entry.js.map +1 -0
  477. package/dist/q2-tecton-elements/{p-34696e3f.entry.js → p-b1784be3.entry.js} +2 -2
  478. package/dist/q2-tecton-elements/{p-259b728a.entry.js → p-b7de110e.entry.js} +2 -2
  479. package/dist/q2-tecton-elements/{p-8111547c.entry.js → p-c235ab3f.entry.js} +2 -2
  480. package/dist/q2-tecton-elements/p-c5667d5d.entry.js +2 -0
  481. package/dist/q2-tecton-elements/p-c5667d5d.entry.js.map +1 -0
  482. package/dist/q2-tecton-elements/{p-c81d299a.entry.js → p-e216ef3f.entry.js} +2 -2
  483. package/dist/q2-tecton-elements/p-e2c800ef.entry.js +2 -0
  484. package/dist/q2-tecton-elements/p-e2c800ef.entry.js.map +1 -0
  485. package/dist/q2-tecton-elements/p-f135b265.entry.js +2 -0
  486. package/dist/q2-tecton-elements/p-f135b265.entry.js.map +1 -0
  487. package/dist/q2-tecton-elements/{p-721365be.js → p-f1e887f5.js} +1 -1
  488. package/dist/q2-tecton-elements/{p-6b7c53a8.entry.js → p-f5f23659.entry.js} +2 -2
  489. package/dist/q2-tecton-elements/p-f7867f21.entry.js +2 -0
  490. package/dist/q2-tecton-elements/p-f7867f21.entry.js.map +1 -0
  491. package/dist/q2-tecton-elements/p-ff8f1a32.entry.js +2 -0
  492. package/dist/q2-tecton-elements/p-ff8f1a32.entry.js.map +1 -0
  493. package/dist/q2-tecton-elements/p-fff01dc1.entry.js +2 -0
  494. package/dist/q2-tecton-elements/p-fff01dc1.entry.js.map +1 -0
  495. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  496. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  497. package/dist/types/components/q2-action-group/q2-action-group.d.ts +30 -0
  498. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +1 -1
  499. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +1 -1
  500. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +2 -0
  501. package/dist/types/components/q2-data-table/q2-data-table.d.ts +15 -13
  502. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +41 -2
  503. package/dist/types/components/q2-formatted-text/q2-formatted-text.d.ts +34 -0
  504. package/dist/types/components/q2-input/q2-input.d.ts +10 -9
  505. package/dist/types/components/q2-legend/q2-legend.d.ts +1 -0
  506. package/dist/types/components/q2-link/q2-link.d.ts +36 -0
  507. package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -3
  508. package/dist/types/components/q2-pill/q2-pill.d.ts +11 -0
  509. package/dist/types/components/q2-popover/q2-popover.d.ts +7 -1
  510. package/dist/types/components/q2-resize-observer/q2-resize-observer.d.ts +28 -0
  511. package/dist/types/components/q2-section/q2-section.d.ts +12 -0
  512. package/dist/types/components/q2-select/q2-select.d.ts +5 -0
  513. package/dist/types/components/q2-stepper/q2-stepper.d.ts +10 -1
  514. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +8 -2
  515. package/dist/types/components/q2-tag/q2-tag.d.ts +5 -0
  516. package/dist/types/components/q2-textarea/q2-textarea.d.ts +8 -3
  517. package/dist/types/components.d.ts +396 -18
  518. package/dist/types/utils/helpers.d.ts +28 -0
  519. package/dist/types/utils/index.d.ts +3 -3
  520. package/dist/types/utils/sanitize-html-string.d.ts +1 -0
  521. package/dist/types/utils/sanitize-regex-string.d.ts +1 -0
  522. package/package.json +4 -4
  523. package/dist/cjs/index-64d8b839.js +0 -1580
  524. package/dist/cjs/index-64d8b839.js.map +0 -1
  525. package/dist/esm/index-4a80972c.js +0 -1556
  526. package/dist/esm/index-4a80972c.js.map +0 -1
  527. package/dist/q2-tecton-elements/p-0a1dff75.entry.js.map +0 -1
  528. package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js.map +0 -1
  529. package/dist/q2-tecton-elements/p-3c7be0bb.entry.js.map +0 -1
  530. package/dist/q2-tecton-elements/p-403bf3d4.entry.js +0 -2
  531. package/dist/q2-tecton-elements/p-403bf3d4.entry.js.map +0 -1
  532. package/dist/q2-tecton-elements/p-4116579f.entry.js.map +0 -1
  533. package/dist/q2-tecton-elements/p-661ed976.entry.js +0 -2
  534. package/dist/q2-tecton-elements/p-661ed976.entry.js.map +0 -1
  535. package/dist/q2-tecton-elements/p-9a1a4bc0.js +0 -3
  536. package/dist/q2-tecton-elements/p-9a1a4bc0.js.map +0 -1
  537. package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js +0 -2
  538. package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js.map +0 -1
  539. package/dist/q2-tecton-elements/p-aa57b657.entry.js +0 -2
  540. package/dist/q2-tecton-elements/p-aa57b657.entry.js.map +0 -1
  541. package/dist/q2-tecton-elements/p-ad998f71.entry.js.map +0 -1
  542. package/dist/q2-tecton-elements/p-adec9275.entry.js +0 -2
  543. package/dist/q2-tecton-elements/p-adec9275.entry.js.map +0 -1
  544. package/dist/q2-tecton-elements/p-adf0a7c9.entry.js +0 -2
  545. package/dist/q2-tecton-elements/p-adf0a7c9.entry.js.map +0 -1
  546. package/dist/q2-tecton-elements/p-b72fd065.entry.js +0 -2
  547. package/dist/q2-tecton-elements/p-b72fd065.entry.js.map +0 -1
  548. package/dist/q2-tecton-elements/p-c0c658d1.entry.js +0 -2
  549. package/dist/q2-tecton-elements/p-c0c658d1.entry.js.map +0 -1
  550. package/dist/q2-tecton-elements/p-cb3f48de.entry.js.map +0 -1
  551. package/dist/q2-tecton-elements/p-ce4e6b41.entry.js.map +0 -1
  552. package/dist/q2-tecton-elements/p-cf32b5db.entry.js.map +0 -1
  553. package/dist/q2-tecton-elements/p-cf966a0f.entry.js +0 -2
  554. package/dist/q2-tecton-elements/p-cf966a0f.entry.js.map +0 -1
  555. package/dist/q2-tecton-elements/p-dc77bf66.entry.js +0 -2
  556. package/dist/q2-tecton-elements/p-dc77bf66.entry.js.map +0 -1
  557. /package/dist/q2-tecton-elements/{p-5d936af5.entry.js.map → p-07d1c3ae.entry.js.map} +0 -0
  558. /package/dist/q2-tecton-elements/{p-58cafc0d.entry.js.map → p-1c760a89.entry.js.map} +0 -0
  559. /package/dist/q2-tecton-elements/{p-074ae80c.entry.js.map → p-1c88d057.entry.js.map} +0 -0
  560. /package/dist/q2-tecton-elements/{p-77a0cc0c.entry.js.map → p-2733583e.entry.js.map} +0 -0
  561. /package/dist/q2-tecton-elements/{p-072c5877.entry.js.map → p-4774e5b3.entry.js.map} +0 -0
  562. /package/dist/q2-tecton-elements/{p-77272c4c.entry.js.map → p-490ef8e5.entry.js.map} +0 -0
  563. /package/dist/q2-tecton-elements/{p-2ca6d44f.entry.js.map → p-50f7328f.entry.js.map} +0 -0
  564. /package/dist/q2-tecton-elements/{p-2fcaf2d6.entry.js.map → p-7aef0c08.entry.js.map} +0 -0
  565. /package/dist/q2-tecton-elements/{p-8a4b106d.entry.js.map → p-7c9a0122.entry.js.map} +0 -0
  566. /package/dist/q2-tecton-elements/{p-6237c775.entry.js.map → p-896c7008.entry.js.map} +0 -0
  567. /package/dist/q2-tecton-elements/{p-395904b4.entry.js.map → p-8d07cf91.entry.js.map} +0 -0
  568. /package/dist/q2-tecton-elements/{p-fffb54e9.entry.js.map → p-8d2b02e1.entry.js.map} +0 -0
  569. /package/dist/q2-tecton-elements/{p-6e6d9793.entry.js.map → p-95a7c042.entry.js.map} +0 -0
  570. /package/dist/q2-tecton-elements/{p-45407ecc.entry.js.map → p-96b1406c.entry.js.map} +0 -0
  571. /package/dist/q2-tecton-elements/{p-2c26295e.entry.js.map → p-ac6aa392.entry.js.map} +0 -0
  572. /package/dist/q2-tecton-elements/{p-376a0589.entry.js.map → p-ad057d10.entry.js.map} +0 -0
  573. /package/dist/q2-tecton-elements/{p-34696e3f.entry.js.map → p-b1784be3.entry.js.map} +0 -0
  574. /package/dist/q2-tecton-elements/{p-259b728a.entry.js.map → p-b7de110e.entry.js.map} +0 -0
  575. /package/dist/q2-tecton-elements/{p-8111547c.entry.js.map → p-c235ab3f.entry.js.map} +0 -0
  576. /package/dist/q2-tecton-elements/{p-c81d299a.entry.js.map → p-e216ef3f.entry.js.map} +0 -0
  577. /package/dist/q2-tecton-elements/{p-721365be.js.map → p-f1e887f5.js.map} +0 -0
  578. /package/dist/q2-tecton-elements/{p-6b7c53a8.entry.js.map → p-f5f23659.entry.js.map} +0 -0
@@ -9,6 +9,7 @@ describe('q2-pagination', () => {
9
9
  let prevPageBtn;
10
10
  let nextPageBtn;
11
11
  let lastPageBtn;
12
+ let changeSpy;
12
13
  const isInputFocused = async (page) => {
13
14
  return page.$eval('body', () => { var _a; return ((_a = document.activeElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement.tagName) === 'Q2-INPUT'; });
14
15
  };
@@ -33,18 +34,9 @@ describe('q2-pagination', () => {
33
34
  });
34
35
  });
35
36
  it('properly compiles CSS vars and functions', async () => {
36
- const page = await setup({ html: '<q2-pagination></q2-pagination>' });
37
+ page = await setup({ html: '<q2-pagination></q2-pagination>' });
37
38
  expect(await getListOfStyleCompilationIssues(page, 'q2-pagination')).toHaveLength(0);
38
39
  });
39
- describe('[A11y] guideline compliance', () => {
40
- it('Does not have accessibility violations with only label', async () => {
41
- const page = await setup({
42
- html: `<q2-pagination total="100" per-page="10"></q2-pagination>`,
43
- });
44
- const hasViolations = await evaluateA11y(page);
45
- expect(hasViolations).toBe(false);
46
- });
47
- });
48
40
  describe('button groups', () => {
49
41
  beforeEach(async () => {
50
42
  await page.setContent(`<q2-pagination total="100" per-page="10"></q2-pagination>`);
@@ -196,21 +188,21 @@ describe('q2-pagination', () => {
196
188
  await page.waitForChanges();
197
189
  });
198
190
  it('when first page button is clicked', async () => {
199
- const changeSpy = await pagination.spyOnEvent('change');
191
+ changeSpy = await pagination.spyOnEvent('change');
200
192
  await dispatchEvent(page, ['q2-pagination', '[test-id="firstPageBtn"]'], 'click');
201
193
  expect(changeSpy).toHaveReceivedEventDetail({
202
194
  page: 1,
203
195
  });
204
196
  });
205
197
  it('when previous page button is clicked', async () => {
206
- const changeSpy = await pagination.spyOnEvent('change');
198
+ changeSpy = await pagination.spyOnEvent('change');
207
199
  await dispatchEvent(page, ['q2-pagination', '[test-id="prevPageBtn"]'], 'click');
208
200
  expect(changeSpy).toHaveReceivedEventDetail({
209
201
  page: 4,
210
202
  });
211
203
  });
212
204
  it('when user inputs page number', async () => {
213
- const changeSpy = await pagination.spyOnEvent('change');
205
+ changeSpy = await pagination.spyOnEvent('change');
214
206
  await dispatchEvent(page, ['q2-pagination', '[test-id="pageInput"]'], 'change', {
215
207
  detail: {
216
208
  value: 4,
@@ -221,14 +213,14 @@ describe('q2-pagination', () => {
221
213
  });
222
214
  });
223
215
  it('when next page button is clicked', async () => {
224
- const changeSpy = await pagination.spyOnEvent('change');
216
+ changeSpy = await pagination.spyOnEvent('change');
225
217
  await dispatchEvent(page, ['q2-pagination', '[test-id="nextPageBtn"]'], 'click');
226
218
  expect(changeSpy).toHaveReceivedEventDetail({
227
219
  page: 6,
228
220
  });
229
221
  });
230
222
  it('when last page button is clicked', async () => {
231
- const changeSpy = await pagination.spyOnEvent('change');
223
+ changeSpy = await pagination.spyOnEvent('change');
232
224
  await dispatchEvent(page, ['q2-pagination', '[test-id="lastPageBtn"]'], 'click');
233
225
  expect(changeSpy).toHaveReceivedEventDetail({
234
226
  page: 10,
@@ -479,5 +471,136 @@ describe('q2-pagination', () => {
479
471
  });
480
472
  });
481
473
  });
474
+ describe('Accessibility', () => {
475
+ describe('aXe DevTools', () => {
476
+ it('does not have accessibility violations', async () => {
477
+ const page = await setup({
478
+ html: `<q2-pagination total="100" per-page="10"></q2-pagination>`,
479
+ });
480
+ const hasViolations = await evaluateA11y(page);
481
+ expect(hasViolations).toBe(false);
482
+ });
483
+ });
484
+ describe('Accessibility Tree', () => { });
485
+ describe('Keyboard Controls', () => { });
486
+ describe('Other', () => { });
487
+ });
488
+ describe('Methods', () => {
489
+ beforeEach(async () => {
490
+ await page.setContent(`<q2-pagination total="100" per-page="10"></q2-pagination>`);
491
+ await page.waitForChanges();
492
+ pagination = await page.find('q2-pagination');
493
+ });
494
+ describe('clickNextPage', () => {
495
+ it('clicks the next button and emits change event', async () => {
496
+ changeSpy = await pagination.spyOnEvent('change');
497
+ await pagination.callMethod('clickNextPage');
498
+ await page.waitForChanges();
499
+ expect(await pagination.getProperty('page')).toBe(2);
500
+ expect(changeSpy).toHaveReceivedEventDetail({ page: 2 });
501
+ });
502
+ it('does nothing if the button is disabled', async () => {
503
+ pagination.setProperty('page', 10);
504
+ await page.waitForChanges();
505
+ changeSpy = await pagination.spyOnEvent('change');
506
+ await pagination.callMethod('clickNextPage');
507
+ await page.waitForChanges();
508
+ expect(await pagination.getProperty('page')).toBe(10);
509
+ expect(changeSpy).not.toHaveReceivedEvent();
510
+ });
511
+ });
512
+ describe('clickPreviousPage', () => {
513
+ it('clicks the previous button and emits change event', async () => {
514
+ pagination.setProperty('page', 2);
515
+ await page.waitForChanges();
516
+ changeSpy = await pagination.spyOnEvent('change');
517
+ await pagination.callMethod('clickPreviousPage');
518
+ await page.waitForChanges();
519
+ expect(await pagination.getProperty('page')).toBe(1);
520
+ expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });
521
+ });
522
+ it('does nothing if the button is disabled', async () => {
523
+ pagination.setProperty('page', 1);
524
+ await page.waitForChanges();
525
+ changeSpy = await pagination.spyOnEvent('change');
526
+ await pagination.callMethod('clickPreviousPage');
527
+ await page.waitForChanges();
528
+ expect(await pagination.getProperty('page')).toBe(1);
529
+ expect(changeSpy).not.toHaveReceivedEvent();
530
+ });
531
+ });
532
+ describe('clickFirstPage', () => {
533
+ it('clicks the first page button and emits change event', async () => {
534
+ pagination.setProperty('page', 5);
535
+ await page.waitForChanges();
536
+ changeSpy = await pagination.spyOnEvent('change');
537
+ await pagination.callMethod('clickFirstPage');
538
+ await page.waitForChanges();
539
+ expect(await pagination.getProperty('page')).toBe(1);
540
+ expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });
541
+ });
542
+ it('does nothing if the button is disabled', async () => {
543
+ pagination.setProperty('page', 1);
544
+ await page.waitForChanges();
545
+ changeSpy = await pagination.spyOnEvent('change');
546
+ await pagination.callMethod('clickFirstPage');
547
+ await page.waitForChanges();
548
+ expect(await pagination.getProperty('page')).toBe(1);
549
+ expect(changeSpy).not.toHaveReceivedEvent();
550
+ });
551
+ });
552
+ describe('clickLastPage', () => {
553
+ it('clicks the last page button and emits change event', async () => {
554
+ changeSpy = await pagination.spyOnEvent('change');
555
+ await pagination.callMethod('clickLastPage');
556
+ await page.waitForChanges();
557
+ expect(await pagination.getProperty('page')).toBe(10);
558
+ expect(changeSpy).toHaveReceivedEventDetail({ page: 10 });
559
+ });
560
+ it('does nothing if the button is disabled', async () => {
561
+ pagination.setProperty('page', 10);
562
+ await page.waitForChanges();
563
+ changeSpy = await pagination.spyOnEvent('change');
564
+ await pagination.callMethod('clickLastPage');
565
+ await page.waitForChanges();
566
+ expect(await pagination.getProperty('page')).toBe(10);
567
+ expect(changeSpy).not.toHaveReceivedEvent();
568
+ });
569
+ });
570
+ describe('setPageValue', () => {
571
+ it('setPageValue inputs the value in the input field and emits change event', async () => {
572
+ changeSpy = await pagination.spyOnEvent('change');
573
+ await pagination.callMethod('setPageValue', 5);
574
+ await page.waitForChanges();
575
+ expect(await pagination.getProperty('page')).toBe(5);
576
+ expect(changeSpy).toHaveReceivedEventDetail({ page: '5' });
577
+ });
578
+ it('does nothing if the value is invalid', async () => {
579
+ pagination.setProperty('page', 1);
580
+ await page.waitForChanges();
581
+ changeSpy = await pagination.spyOnEvent('change');
582
+ await pagination.callMethod('setPageValue', -1);
583
+ await page.waitForChanges();
584
+ expect(await pagination.getProperty('page')).toBe(1);
585
+ expect(changeSpy).not.toHaveReceivedEvent();
586
+ });
587
+ });
588
+ describe('selectPerPageIncrementValue', () => {
589
+ it('selects the value provided from the increment dropdown', async () => {
590
+ pagination.setProperty('perPageIncrements', [10, 20, 30]);
591
+ await page.waitForChanges();
592
+ await pagination.callMethod('selectPerPageIncrementValue', 20);
593
+ await page.waitForChanges();
594
+ expect(await pagination.getProperty('perPage')).toBe(20);
595
+ });
596
+ it('does nothing if the value is invalid', async () => {
597
+ pagination.setProperty('perPageIncrements', [10, 20, 30]);
598
+ await page.waitForChanges();
599
+ await pagination.callMethod('selectPerPageIncrementValue', 25);
600
+ await page.waitForChanges();
601
+ expect(await pagination.getProperty('perPage')).toBe(10);
602
+ });
603
+ });
604
+ });
482
605
  });
483
606
  //# sourceMappingURL=q2-pagination-test.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"q2-pagination-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-pagination/test/q2-pagination-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues, evaluateA11y } from '@/utils/helpers';\n\ndescribe('q2-pagination', () => {\n let page: E2EPage;\n let pagination: E2EElement;\n let description: E2EElement;\n let controls: E2EElement;\n let input: E2EElement;\n let firstPageBtn: E2EElement;\n let prevPageBtn: E2EElement;\n let nextPageBtn: E2EElement;\n let lastPageBtn: E2EElement;\n\n const isInputFocused = async (page: E2EPage) => {\n return page.$eval('body', () => document.activeElement.shadowRoot?.activeElement.tagName === 'Q2-INPUT');\n };\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval(\n 'body',\n () => document.activeElement.shadowRoot?.activeElement.getAttribute('test-id') ?? null\n );\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.pagination.title': 'Pagination',\n 'tecton.element.pagination.defaultRecordType': 'Records',\n 'tecton.element.pagination.description': '{range} of {total} {recordType}',\n 'tecton.element.pagination.pages': '{current} of {total} pages',\n 'tecton.element.pagination.page': 'Page',\n 'tecton.element.pagination.ofPages': 'of {0}',\n 'tecton.element.pagination.firstPage': 'First page',\n 'tecton.element.pagination.lastPage': 'Last page',\n 'tecton.element.pagination.nextPage': 'Next page',\n 'tecton.element.pagination.previousPage': 'Previous page',\n 'tecton.element.pagination.goToPages': 'Go to page {next} of {total} pages',\n 'tecton.element.pagination.goToRecords': 'Go to {range} of {total} {recordType}',\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-pagination></q2-pagination>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-pagination')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations with only label', async () => {\n const page = await setup({\n html: `<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('button groups', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when on first page', () => {\n it('disables firstPageBtn and prevPageBtn', async () => {\n await pagination.setProperty('page', 1);\n await page.waitForChanges();\n\n expect(firstPageBtn).toHaveAttribute('disabled');\n expect(prevPageBtn).toHaveAttribute('disabled');\n expect(nextPageBtn).not.toHaveAttribute('disabled');\n expect(lastPageBtn).not.toHaveAttribute('disabled');\n });\n });\n\n describe('when on last page', () => {\n it('disables lastPageBtn and nextPageBtn', async () => {\n await pagination.setProperty('page', 10);\n await page.waitForChanges();\n\n expect(firstPageBtn).not.toHaveAttribute('disabled');\n expect(prevPageBtn).not.toHaveAttribute('disabled');\n expect(nextPageBtn).toHaveAttribute('disabled');\n expect(lastPageBtn).toHaveAttribute('disabled');\n });\n });\n });\n\n describe('controls', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n });\n\n describe('when value is attempted to be set above max', () => {\n it('forces the value to the max value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '11',\n },\n });\n expect(await input.getProperty('value')).toEqual('10');\n });\n });\n\n describe('when value is attempted to be set below min', () => {\n it('forces the value to the min value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '-100',\n },\n });\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n });\n\n describe('when input wrapper is clicked', () => {\n it('focus is passed to the input', async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n\n expect(await isInputFocused(page)).toEqual(false);\n\n const inputWrapper = await page.find('q2-pagination >>> .input-wrapper');\n await inputWrapper.click();\n\n expect(await isInputFocused(page)).toEqual(true);\n });\n });\n\n describe('when on a mobile width device', () => {\n beforeEach(async () => {\n await page.setViewport({ width: 200, height: 800 });\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n await page.waitForChanges();\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n it('hides first and last buttons as well as content block on render', async () => {\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n\n it('automatically toggles on viewport resize', async () => {\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n\n describe('@Events', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n\n describe('focus', () => {\n describe('when event is dispatched', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n\n describe('when when element.focus() is called', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n });\n\n describe('change', () => {\n describe('change event is emitted with page property in event detail', () => {\n beforeEach(async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n });\n\n it('when first page button is clicked', async () => {\n const changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"firstPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 1,\n });\n });\n\n it('when previous page button is clicked', async () => {\n const changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"prevPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when user inputs page number', async () => {\n const changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: 4,\n },\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when next page button is clicked', async () => {\n const changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 6,\n });\n });\n\n it('when last page button is clicked', async () => {\n const changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"lastPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 10,\n });\n });\n });\n });\n });\n\n describe('@Props', () => {\n describe('recordType', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to \"records\"', async () => {\n await pagination.setProperty('recordType', undefined);\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('records');\n });\n });\n\n describe('when provided', () => {\n it('displays in the description', async () => {\n await pagination.setProperty('recordType', 'Accounts');\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('accounts');\n });\n });\n });\n\n describe('perPage', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('perPage', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(controls.textContent).toContain('of 50');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('perPage', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 20');\n expect(controls.textContent).toContain('of 25');\n });\n });\n });\n\n describe('total', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('total', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('0 records');\n expect(controls.textContent).toContain('of 0');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('total', '50000');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('50,000');\n expect(controls.textContent).toContain('of 5,000');\n });\n });\n });\n\n describe('page', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\" page=\"1\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 1', async () => {\n await pagination.setProperty('page', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('41 - 50');\n expect(await input.getProperty('value')).toEqual('5');\n });\n });\n });\n\n describe('pages', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination pages-only total=\"5000\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('auto calculates page count', async () => {\n await pagination.setProperty('pages', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 500 pages');\n });\n });\n\n describe('when provided', () => {\n it('is used as the page count', async () => {\n await pagination.setProperty('pages', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 20 pages');\n });\n });\n });\n\n describe('recordsOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('recordsOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n it('should provide label correctly for prev and next buttons', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n await page.waitForChanges();\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 21 - 30 of 500 records');\n expect(prevPageBtn.getAttribute('label')).toEqual('Go to 1 - 10 of 500 records');\n });\n });\n });\n\n describe('pagesOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('pagesOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block and displays page count', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 of 50 pages');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n });\n\n describe('perPageIncrements', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n });\n\n it('show perPage dropdown', async () => {\n const select = await page.find('q2-pagination >>> q2-select');\n expect(select).toBeTruthy();\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n expect(options).toHaveLength(3);\n });\n\n it('set perPage properly using dropdown', async () => {\n await dispatchEvent(page, ['q2-pagination', 'q2-select', 'q2-input'], 'click');\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n // click 2nd option (perPage 20)\n options[1].click();\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-pagination-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-pagination/test/q2-pagination-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues, evaluateA11y } from '@/utils/helpers';\n\ndescribe('q2-pagination', () => {\n let page: E2EPage;\n let pagination: E2EElement;\n let description: E2EElement;\n let controls: E2EElement;\n let input: E2EElement;\n let firstPageBtn: E2EElement;\n let prevPageBtn: E2EElement;\n let nextPageBtn: E2EElement;\n let lastPageBtn: E2EElement;\n let changeSpy: any;\n\n const isInputFocused = async (page: E2EPage) => {\n return page.$eval('body', () => document.activeElement.shadowRoot?.activeElement.tagName === 'Q2-INPUT');\n };\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval(\n 'body',\n () => document.activeElement.shadowRoot?.activeElement.getAttribute('test-id') ?? null\n );\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.pagination.title': 'Pagination',\n 'tecton.element.pagination.defaultRecordType': 'Records',\n 'tecton.element.pagination.description': '{range} of {total} {recordType}',\n 'tecton.element.pagination.pages': '{current} of {total} pages',\n 'tecton.element.pagination.page': 'Page',\n 'tecton.element.pagination.ofPages': 'of {0}',\n 'tecton.element.pagination.firstPage': 'First page',\n 'tecton.element.pagination.lastPage': 'Last page',\n 'tecton.element.pagination.nextPage': 'Next page',\n 'tecton.element.pagination.previousPage': 'Previous page',\n 'tecton.element.pagination.goToPages': 'Go to page {next} of {total} pages',\n 'tecton.element.pagination.goToRecords': 'Go to {range} of {total} {recordType}',\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n page = await setup({ html: '<q2-pagination></q2-pagination>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-pagination')).toHaveLength(0);\n });\n\n describe('button groups', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when on first page', () => {\n it('disables firstPageBtn and prevPageBtn', async () => {\n await pagination.setProperty('page', 1);\n await page.waitForChanges();\n\n expect(firstPageBtn).toHaveAttribute('disabled');\n expect(prevPageBtn).toHaveAttribute('disabled');\n expect(nextPageBtn).not.toHaveAttribute('disabled');\n expect(lastPageBtn).not.toHaveAttribute('disabled');\n });\n });\n\n describe('when on last page', () => {\n it('disables lastPageBtn and nextPageBtn', async () => {\n await pagination.setProperty('page', 10);\n await page.waitForChanges();\n\n expect(firstPageBtn).not.toHaveAttribute('disabled');\n expect(prevPageBtn).not.toHaveAttribute('disabled');\n expect(nextPageBtn).toHaveAttribute('disabled');\n expect(lastPageBtn).toHaveAttribute('disabled');\n });\n });\n });\n\n describe('controls', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n });\n\n describe('when value is attempted to be set above max', () => {\n it('forces the value to the max value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '11',\n },\n });\n expect(await input.getProperty('value')).toEqual('10');\n });\n });\n\n describe('when value is attempted to be set below min', () => {\n it('forces the value to the min value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '-100',\n },\n });\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n });\n\n describe('when input wrapper is clicked', () => {\n it('focus is passed to the input', async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n\n expect(await isInputFocused(page)).toEqual(false);\n\n const inputWrapper = await page.find('q2-pagination >>> .input-wrapper');\n await inputWrapper.click();\n\n expect(await isInputFocused(page)).toEqual(true);\n });\n });\n\n describe('when on a mobile width device', () => {\n beforeEach(async () => {\n await page.setViewport({ width: 200, height: 800 });\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n await page.waitForChanges();\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n it('hides first and last buttons as well as content block on render', async () => {\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n\n it('automatically toggles on viewport resize', async () => {\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n\n describe('@Events', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n\n describe('focus', () => {\n describe('when event is dispatched', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n\n describe('when when element.focus() is called', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n });\n\n describe('change', () => {\n describe('change event is emitted with page property in event detail', () => {\n beforeEach(async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n });\n\n it('when first page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"firstPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 1,\n });\n });\n\n it('when previous page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"prevPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when user inputs page number', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: 4,\n },\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when next page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 6,\n });\n });\n\n it('when last page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"lastPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 10,\n });\n });\n });\n });\n });\n\n describe('@Props', () => {\n describe('recordType', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to \"records\"', async () => {\n await pagination.setProperty('recordType', undefined);\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('records');\n });\n });\n\n describe('when provided', () => {\n it('displays in the description', async () => {\n await pagination.setProperty('recordType', 'Accounts');\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('accounts');\n });\n });\n });\n\n describe('perPage', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('perPage', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(controls.textContent).toContain('of 50');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('perPage', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 20');\n expect(controls.textContent).toContain('of 25');\n });\n });\n });\n\n describe('total', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('total', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('0 records');\n expect(controls.textContent).toContain('of 0');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('total', '50000');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('50,000');\n expect(controls.textContent).toContain('of 5,000');\n });\n });\n });\n\n describe('page', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\" page=\"1\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 1', async () => {\n await pagination.setProperty('page', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('41 - 50');\n expect(await input.getProperty('value')).toEqual('5');\n });\n });\n });\n\n describe('pages', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination pages-only total=\"5000\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('auto calculates page count', async () => {\n await pagination.setProperty('pages', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 500 pages');\n });\n });\n\n describe('when provided', () => {\n it('is used as the page count', async () => {\n await pagination.setProperty('pages', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 20 pages');\n });\n });\n });\n\n describe('recordsOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('recordsOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n it('should provide label correctly for prev and next buttons', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n await page.waitForChanges();\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 21 - 30 of 500 records');\n expect(prevPageBtn.getAttribute('label')).toEqual('Go to 1 - 10 of 500 records');\n });\n });\n });\n\n describe('pagesOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('pagesOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block and displays page count', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 of 50 pages');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n });\n\n describe('perPageIncrements', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n });\n\n it('show perPage dropdown', async () => {\n const select = await page.find('q2-pagination >>> q2-select');\n expect(select).toBeTruthy();\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n expect(options).toHaveLength(3);\n });\n\n it('set perPage properly using dropdown', async () => {\n await dispatchEvent(page, ['q2-pagination', 'q2-select', 'q2-input'], 'click');\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n // click 2nd option (perPage 20)\n options[1].click();\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n describe('clickNextPage', () => {\n it('clicks the next button and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickNextPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(2);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 2 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 10);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickNextPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickPreviousPage', () => {\n it('clicks the previous button and emits change event', async () => {\n pagination.setProperty('page', 2);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickPreviousPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickPreviousPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickFirstPage', () => {\n it('clicks the first page button and emits change event', async () => {\n pagination.setProperty('page', 5);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickFirstPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickFirstPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickLastPage', () => {\n it('clicks the last page button and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickLastPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 10 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 10);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickLastPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('setPageValue', () => {\n it('setPageValue inputs the value in the input field and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('setPageValue', 5);\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(5);\n expect(changeSpy).toHaveReceivedEventDetail({ page: '5' });\n });\n it('does nothing if the value is invalid', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('setPageValue', -1);\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('selectPerPageIncrementValue', () => {\n it('selects the value provided from the increment dropdown', async () => {\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n await pagination.callMethod('selectPerPageIncrementValue', 20);\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n it('does nothing if the value is invalid', async () => {\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n await pagination.callMethod('selectPerPageIncrementValue', 25);\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(10);\n });\n });\n });\n});\n"]}
@@ -81,6 +81,18 @@ q2-popover,
81
81
  --comp-pill-btn-height: var(--tct-pill-btn-height, var(--t-pill-btn-height, 30px));
82
82
  }
83
83
 
84
+ .popover-top-container {
85
+ position: sticky;
86
+ top: 0;
87
+ z-index: 5;
88
+ }
89
+
90
+ .popover-bottom-container {
91
+ position: sticky;
92
+ bottom: 0;
93
+ z-index: 5;
94
+ }
95
+
84
96
  .btn-wrapper {
85
97
  --comp-pill-btn-border-width: var(--tct-pill-btn-border-width, var(--t-pill-btn-border-width, 2px));
86
98
  --comp-close-size: 0px;
@@ -78,7 +78,9 @@ export class Q2Pill {
78
78
  if (!this.optionCount || this.disabled || isTabMetaOrCtrl)
79
79
  return;
80
80
  event.preventDefault();
81
- if (shouldShowActionSheet(this, event)) {
81
+ const hasSlot = this.hasPopoverTop || this.hasPopoverBottom;
82
+ // slots are incompatible with action sheet
83
+ if (shouldShowActionSheet(this, event) && !hasSlot) {
82
84
  this.executeActionSheet(event);
83
85
  }
84
86
  else {
@@ -122,6 +124,22 @@ export class Q2Pill {
122
124
  popoverElement.open = false;
123
125
  }
124
126
  };
127
+ this.onMutationObserved = () => {
128
+ this.updateSlotState();
129
+ this.determineOptionCount();
130
+ this.updateSelectedOptionElements();
131
+ };
132
+ this.updateSlotState = () => {
133
+ const { hostElement, hasPopoverTop, hasPopoverBottom } = this;
134
+ const popTopSlot = hostElement.shadowRoot.querySelector('slot[name="popover-top"]');
135
+ const popBottomSlot = hostElement.shadowRoot.querySelector('slot[name="popover-bottom"]');
136
+ const topSlotHasNode = (popTopSlot === null || popTopSlot === void 0 ? void 0 : popTopSlot.assignedNodes().length) > 0;
137
+ const bottomSlotHasNode = (popBottomSlot === null || popBottomSlot === void 0 ? void 0 : popBottomSlot.assignedNodes().length) > 0;
138
+ if (hasPopoverTop !== topSlotHasNode)
139
+ this.hasPopoverTop = topSlotHasNode;
140
+ if (hasPopoverBottom !== bottomSlotHasNode)
141
+ this.hasPopoverBottom = bottomSlotHasNode;
142
+ };
125
143
  this.syncValueProperties = () => {
126
144
  const { value, selectedOptions } = this;
127
145
  if (!!(selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.length))
@@ -138,6 +156,8 @@ export class Q2Pill {
138
156
  this.active = !!selectedValues.length;
139
157
  this.selectedOptionElements = (options === null || options === void 0 ? void 0 : options.filter(option => selectedValues.includes(option.value))) || [];
140
158
  };
159
+ this.hasPopoverTop = false;
160
+ this.hasPopoverBottom = false;
141
161
  this.optionCount = undefined;
142
162
  this.selectedOptionElements = [];
143
163
  this.active = undefined;
@@ -151,6 +171,7 @@ export class Q2Pill {
151
171
  this.optionListLabel = undefined;
152
172
  this.popoverAlignment = 'right';
153
173
  this.popoverDirection = undefined;
174
+ this.popoverMaxHeight = undefined;
154
175
  this.popoverMinHeight = 150;
155
176
  this.selectedOptions = [];
156
177
  this.theme = undefined;
@@ -163,7 +184,7 @@ export class Q2Pill {
163
184
  this.mutationObserver = null;
164
185
  }
165
186
  componentWillLoad() {
166
- const observer = new MutationObserver(this.determineOptionCount);
187
+ const observer = new MutationObserver(this.onMutationObserved);
167
188
  observer.observe(this.hostElement, { childList: true, attributes: true });
168
189
  this.mutationObserver = observer;
169
190
  }
@@ -315,7 +336,7 @@ export class Q2Pill {
315
336
  wrapperClassNames.push('has-icon');
316
337
  if (optionCount)
317
338
  wrapperClassNames.push('has-options');
318
- return (h("click-elsewhere", { key: 'c13fc91239e60f6feb038acef719afdd6c6dee78', onChange: this.onClickElsewhere }, h("div", { key: 'a05c6dfa1b6be1c3c682a92510f74702170056da', class: wrapperClassNames.join(' ') }, h("div", { key: 'cfc60ca20a17198f112aa8dc391c102e1f5c4014', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: '7db4fbe5c58c61eb40a62aa7ed08b978019d38c9', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": this.buttonContent, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent, !optionCount && active && h("span", { key: '9bfe0ffa3adf0f1303fc788ff1a851a03a4f4ad4', class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '7f316ab503f416a7c24bee557de55ded46821cd3', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: '1434a3c21edf2627085f614b59b0127b386e243d', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: 'bb360ea7e004a891d7980f7e4c3fff10d0fa3803' }))))));
339
+ return (h("click-elsewhere", { key: '02e7f5f616daeb2b0e40259c1c99ac142f86b553', onChange: this.onClickElsewhere }, h("div", { key: '13ece1982239e075de4911cc76c806b9f30dc84b', class: wrapperClassNames.join(' ') }, h("div", { key: 'afff34dc889240fbbf32cb2401359f51ce5feee4', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: '5f9b91813e5f4006137534fe5fe1820adf35d2f6', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": this.buttonContent, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent, !optionCount && active && h("span", { key: '084fb2e933da3e3f281a5480c74e917ebac38015', class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '5fcab5d95192479ac7f0e2e911d51327044500ef', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("div", { key: 'b5d7756b724d76aa0cf487324c6790d7ca529293', class: "popover-content" }, h("div", { key: 'e191b41fcfa2a9f2fefc66dde961a24a867c73d8', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleKeydown }, h("slot", { key: '8078c79efc74285ce9db259c28a1c6b2e957a09f', name: "popover-top" })), h("q2-option-list", { key: '1cd2a521a30af647a4ba5008f11d927209454061', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: '432d785fe233aaf875a1b601522bb5189edf1b82' })), h("div", { key: '22d1406b38ae6f991c7253f5b10b70f7fa6744e7', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleKeydown }, h("slot", { key: '7619b7dabfaae3dea23363d7769e350a7f2ed51f', name: "popover-bottom" })))))));
319
340
  }
320
341
  static get is() { return "q2-pill"; }
321
342
  static get encapsulation() { return "shadow"; }
@@ -529,6 +550,23 @@ export class Q2Pill {
529
550
  "attribute": "popover-direction",
530
551
  "reflect": false
531
552
  },
553
+ "popoverMaxHeight": {
554
+ "type": "number",
555
+ "mutable": false,
556
+ "complexType": {
557
+ "original": "number",
558
+ "resolved": "number",
559
+ "references": {}
560
+ },
561
+ "required": false,
562
+ "optional": false,
563
+ "docs": {
564
+ "tags": [],
565
+ "text": "Force the maximum height of the popover. This value will be interpreted as pixels.\nIf no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space."
566
+ },
567
+ "attribute": "popover-max-height",
568
+ "reflect": false
569
+ },
532
570
  "popoverMinHeight": {
533
571
  "type": "number",
534
572
  "mutable": false,
@@ -610,6 +648,8 @@ export class Q2Pill {
610
648
  }
611
649
  static get states() {
612
650
  return {
651
+ "hasPopoverTop": {},
652
+ "hasPopoverBottom": {},
613
653
  "optionCount": {},
614
654
  "selectedOptionElements": {}
615
655
  };