q2-tecton-elements 1.49.2 → 1.50.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 (703) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +2 -2
  2. package/dist/cjs/{index-42fcd170.js → index-43010ce4.js} +1 -1
  3. package/dist/cjs/{index-42fcd170.js.map → index-43010ce4.js.map} +1 -1
  4. package/dist/cjs/index-64d8b839.js +1580 -0
  5. package/dist/cjs/index-64d8b839.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +5 -5
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/{q2-input.cjs.entry.js → q2-badge_7.cjs.entry.js} +1284 -3
  11. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -0
  12. package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
  13. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  16. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  17. package/dist/cjs/q2-carousel.cjs.entry.js +131 -149
  18. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  19. package/dist/cjs/q2-chart-area.cjs.entry.js +3 -3
  20. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +3 -3
  22. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  24. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
  26. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-data-table.cjs.entry.js +62 -2
  28. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-dropdown-item.cjs.entry.js +11 -13
  31. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-dropdown.cjs.entry.js +62 -58
  33. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-editable-field.cjs.entry.js +4 -4
  35. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-item.cjs.entry.js +3 -3
  37. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  40. package/dist/cjs/q2-list.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  43. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  44. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-option-list.cjs.entry.js +13 -11
  46. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  49. package/dist/cjs/q2-pill.cjs.entry.js +95 -36
  50. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  51. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  54. package/dist/cjs/q2-section.cjs.entry.js +4 -4
  55. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-select.cjs.entry.js +19 -18
  57. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  59. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-tag.cjs.entry.js +33 -6
  62. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  66. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  67. package/dist/collection/collection-manifest.json +7 -8
  68. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  69. package/dist/{test/elements → collection/components/click-elsewhere/test}/click-elsewhere-test.e2e.js +1 -1
  70. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -0
  71. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +5 -5
  72. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  73. package/dist/{test/elements → collection/components/q2-action-sheet/test}/q2-action-sheet-test.e2e.js +29 -1
  74. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -0
  75. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  76. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  77. package/dist/{test/elements → collection/components/q2-avatar/test}/q2-avatar-test.e2e.js +1 -1
  78. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -0
  79. package/dist/collection/components/q2-badge/q2-badge.js +0 -1
  80. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  81. package/dist/{test/elements → collection/components/q2-badge/test}/q2-badge-test.e2e.js +1 -1
  82. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -0
  83. package/dist/collection/components/q2-btn/q2-btn.css +1 -0
  84. package/dist/collection/components/q2-btn/q2-btn.js +3 -15
  85. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  86. package/dist/{test/elements → collection/components/q2-btn/test}/q2-btn-test.e2e.js +36 -1
  87. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -0
  88. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  89. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  90. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  91. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  92. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  93. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  94. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  95. package/dist/{test/elements/q2-calendar → collection/components/q2-calendar/test}/helpers-test.e2e.js +2 -2
  96. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -0
  97. package/dist/{test/elements → collection/components/q2-calendar/test}/q2-calendar-month-picker-test.e2e.js +1 -1
  98. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -0
  99. package/dist/{test/elements → collection/components/q2-calendar/test}/q2-calendar-test.e2e.js +3 -3
  100. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -0
  101. package/dist/{test/elements/q2-calendar → collection/components/q2-calendar/test}/validation-test.e2e.js +2 -2
  102. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -0
  103. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  104. package/dist/{test/elements → collection/components/q2-card/test}/q2-card-test.e2e.js +1 -1
  105. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -0
  106. package/dist/collection/components/q2-carousel/q2-carousel.js +190 -164
  107. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  108. package/dist/{test/elements → collection/components/q2-carousel/test}/q2-carousel-test.e2e.js +175 -188
  109. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -0
  110. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +5 -5
  111. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  112. package/dist/{test/elements → collection/components/q2-carousel-pane/test}/q2-carousel-pane-test.e2e.js +1 -1
  113. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -0
  114. package/dist/{test/elements → collection/components/q2-carousel-pane/test}/q2-carousel-pane-test.spec.js +1 -1
  115. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -0
  116. package/dist/collection/components/q2-chart-area/q2-chart-area.js +20 -20
  117. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  118. package/dist/{test/elements → collection/components/q2-chart-area/test}/q2-chart-area-test.e2e.js +1 -1
  119. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -0
  120. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +20 -20
  121. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  122. package/dist/{test/elements → collection/components/q2-chart-bar/test}/q2-chart-bar-test.e2e.js +1 -1
  123. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -0
  124. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  125. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  126. package/dist/{test/elements → collection/components/q2-chart-donut/test}/q2-chart-donut-test.e2e.js +1 -1
  127. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -0
  128. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  129. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  130. package/dist/{test/elements → collection/components/q2-checkbox/test}/q2-checkbox-test.e2e.js +1 -1
  131. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -0
  132. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  133. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  134. package/dist/{test/elements → collection/components/q2-checkbox-group/test}/q2-checkbox-group-test.e2e.js +1 -1
  135. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -0
  136. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  137. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  138. package/dist/{test/elements → collection/components/q2-currency/test}/q2-currency-test.e2e.js +2 -2
  139. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -0
  140. package/dist/collection/components/q2-data-table/q2-data-table.js +240 -7
  141. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  142. package/dist/{test/elements → collection/components/q2-data-table/test}/q2-data-table-test.e2e.js +64 -2
  143. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -0
  144. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  145. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  146. package/dist/{test/elements/q2-detail → collection/components/q2-detail/test}/q2-detail-test.e2e.js +3 -3
  147. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -0
  148. package/dist/collection/components/q2-dropdown/q2-dropdown.js +65 -57
  149. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  150. package/dist/{test/elements → collection/components/q2-dropdown/test}/q2-dropdown-test.e2e.js +165 -120
  151. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -0
  152. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +10 -12
  153. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  154. package/dist/{test/elements → collection/components/q2-dropdown-item/test}/q2-dropdown-item-test.e2e.js +5 -13
  155. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -0
  156. package/dist/collection/components/q2-editable-field/q2-editable-field.js +3 -3
  157. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  158. package/dist/{test/elements → collection/components/q2-editable-field/test}/q2-editable-field-test.e2e.js +1 -4
  159. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -0
  160. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  161. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  162. package/dist/{test/elements → collection/components/q2-icon/test}/q2-icon-test.e2e.js +2 -2
  163. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -0
  164. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  165. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  166. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  167. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  168. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  169. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  170. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  171. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  172. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  173. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  174. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  175. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  176. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  177. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  178. package/dist/collection/components/q2-input/q2-input.js +2 -2
  179. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  180. package/dist/{test/elements → collection/components/q2-input/test}/q2-input-credit-card-test.e2e.js +1 -1
  181. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -0
  182. package/dist/{test/elements → collection/components/q2-input/test}/q2-input-test.e2e.js +1 -1
  183. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -0
  184. package/dist/collection/components/q2-item/q2-item.css +3 -3
  185. package/dist/collection/components/q2-item/q2-item.js +1 -1
  186. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  187. package/dist/{test/elements → collection/components/q2-item/test}/q2-item-test.e2e.js +1 -1
  188. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -0
  189. package/dist/{test/elements → collection/components/q2-item/test}/q2-item-test.spec.js +1 -1
  190. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -0
  191. package/dist/collection/components/q2-legend/q2-legend.css +6 -6
  192. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  193. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  194. package/dist/{test/elements → collection/components/q2-legend/test}/q2-legend-test.e2e.js +1 -1
  195. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -0
  196. package/dist/{test/elements → collection/components/q2-legend/test}/q2-legend-test.spec.js +1 -1
  197. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -0
  198. package/dist/collection/components/q2-list/q2-list.js +1 -1
  199. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  200. package/dist/{test/elements/q2-detail → collection/components/q2-list/test}/q2-list-test.e2e.js +1 -1
  201. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -0
  202. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  203. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  204. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  205. package/dist/{test/elements → collection/components/q2-loading/test}/q2-loading-element-test.e2e.js +1 -1
  206. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -0
  207. package/dist/{test/elements → collection/components/q2-loading/test}/q2-loading-test.e2e.js +1 -1
  208. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -0
  209. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  210. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  211. package/dist/{test/elements → collection/components/q2-loc/test}/q2-loc-test.e2e.js +1 -1
  212. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -0
  213. package/dist/collection/components/q2-message/q2-message.js +1 -1
  214. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  215. package/dist/{test/elements → collection/components/q2-message/test}/q2-message-test.e2e.js +1 -1
  216. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -0
  217. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  218. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  219. package/dist/{test/elements → collection/components/q2-optgroup/test}/q2-optgroup-test.e2e.js +1 -1
  220. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -0
  221. package/dist/collection/components/q2-option/q2-option.js +1 -1
  222. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  223. package/dist/{test/elements → collection/components/q2-option/test}/q2-option-test.e2e.js +1 -1
  224. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -0
  225. package/dist/collection/components/q2-option-list/q2-option-list.js +15 -13
  226. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  227. package/dist/{test/elements → collection/components/q2-option-list/test}/q2-option-list-test.e2e.js +1 -1
  228. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -0
  229. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  230. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  231. package/dist/{test/elements → collection/components/q2-pagination/test}/q2-pagination-test.e2e.js +1 -1
  232. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -0
  233. package/dist/collection/components/q2-pill/q2-pill.js +172 -37
  234. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  235. package/dist/{test/elements → collection/components/q2-pill/test}/q2-pill-test.e2e.js +484 -392
  236. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -0
  237. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  238. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  239. package/dist/{test/elements → collection/components/q2-popover/test}/q2-popover-test.e2e.js +2 -2
  240. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -0
  241. package/dist/{test/elements → collection/components/q2-popover/test}/q2-popover-test.spec.js +1 -1
  242. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -0
  243. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  244. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  245. package/dist/{test/elements → collection/components/q2-radio/test}/q2-radio-test.e2e.js +1 -1
  246. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -0
  247. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  248. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  249. package/dist/{test/elements → collection/components/q2-radio-group/test}/q2-radio-group-test.e2e.js +1 -1
  250. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -0
  251. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  252. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  253. package/dist/{test/elements → collection/components/q2-relative-time/test}/q2-relative-time-test.e2e.js +2 -2
  254. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -0
  255. package/dist/collection/components/q2-section/q2-section.css +1 -1
  256. package/dist/collection/components/q2-section/q2-section.js +2 -2
  257. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  258. package/dist/{test/elements → collection/components/q2-section/test}/q2-section-test.e2e.js +12 -7
  259. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -0
  260. package/dist/collection/components/q2-select/q2-select.js +18 -17
  261. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  262. package/dist/{test/elements → collection/components/q2-select/test}/q2-select-test.e2e.js +20 -2
  263. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -0
  264. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  265. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  266. package/dist/{test/elements → collection/components/q2-stepper/test}/q2-stepper-test.e2e.js +1 -1
  267. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -0
  268. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  269. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  270. package/dist/{test/elements → collection/components/q2-stepper-pane/test}/q2-stepper-pane-test.e2e.js +1 -1
  271. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -0
  272. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  273. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  274. package/dist/{test/elements → collection/components/q2-stepper-vertical/test}/q2-stepper-vertical-test.e2e.js +1 -1
  275. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -0
  276. package/dist/collection/components/q2-tab-container/q2-tab-container.js +21 -20
  277. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  278. package/dist/{test/elements → collection/components/q2-tab-container/test}/q2-tab-container-test.e2e.js +1 -1
  279. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -0
  280. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js +54 -0
  281. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -0
  282. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  283. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  284. package/dist/{test/elements → collection/components/q2-tab-pane/test}/q2-tab-pane-test.e2e.js +1 -1
  285. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -0
  286. package/dist/collection/components/q2-tag/q2-tag.js +92 -6
  287. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  288. package/dist/{test/elements → collection/components/q2-tag/test}/q2-tag-test.e2e.js +40 -8
  289. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -0
  290. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  291. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  292. package/dist/{test/elements → collection/components/q2-textarea/test}/q2-textarea-test.e2e.js +1 -1
  293. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -0
  294. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  295. package/dist/{test/elements → collection/components/q2-tooltip/test}/q2-tooltip-test.e2e.js +1 -1
  296. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -0
  297. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  298. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  299. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  300. package/dist/{test/elements → collection/components/tecton-tab-pane/test}/tecton-tab-pane-test.e2e.js +1 -1
  301. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -0
  302. package/dist/collection/index.js.map +1 -1
  303. package/dist/collection/utils/action-sheet.js.map +1 -1
  304. package/dist/collection/utils/charting.js.map +1 -1
  305. package/dist/{test → collection/utils}/helpers.js +1 -1
  306. package/dist/collection/utils/helpers.js.map +1 -0
  307. package/dist/collection/utils/index.js +9 -0
  308. package/dist/collection/utils/index.js.map +1 -1
  309. package/dist/{test/utils → collection/utils/test}/action-sheet-test.e2e.js +1 -1
  310. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -0
  311. package/dist/{test/utils → collection/utils/test}/index.spec.js +1 -1
  312. package/dist/collection/utils/test/index.spec.js.map +1 -0
  313. package/dist/components/action-sheet.js +1 -1
  314. package/dist/components/index.js +0 -2
  315. package/dist/components/index.js.map +1 -1
  316. package/dist/components/index2.js +1355 -1
  317. package/dist/components/index2.js.map +1 -1
  318. package/dist/components/q2-action-sheet.js +5 -5
  319. package/dist/components/q2-action-sheet.js.map +1 -1
  320. package/dist/components/q2-avatar2.js +1 -1
  321. package/dist/components/q2-badge2.js.map +1 -1
  322. package/dist/components/q2-btn2.js +6 -12
  323. package/dist/components/q2-btn2.js.map +1 -1
  324. package/dist/components/q2-calendar.js +1 -1
  325. package/dist/components/q2-calendar.js.map +1 -1
  326. package/dist/components/q2-carousel-pane.js +2 -2
  327. package/dist/components/q2-carousel-pane.js.map +1 -1
  328. package/dist/components/q2-carousel.js +133 -154
  329. package/dist/components/q2-carousel.js.map +1 -1
  330. package/dist/components/q2-chart-area.js +3 -3
  331. package/dist/components/q2-chart-area.js.map +1 -1
  332. package/dist/components/q2-chart-bar.js +4 -4
  333. package/dist/components/q2-chart-bar.js.map +1 -1
  334. package/dist/components/q2-chart-donut.js +1 -1
  335. package/dist/components/q2-checkbox-group.js +1 -1
  336. package/dist/components/q2-checkbox2.js +1 -1
  337. package/dist/components/q2-currency.js +1 -1
  338. package/dist/components/q2-data-table.js +68 -2
  339. package/dist/components/q2-data-table.js.map +1 -1
  340. package/dist/components/q2-detail.js +1 -1
  341. package/dist/components/q2-dropdown-item2.js +10 -12
  342. package/dist/components/q2-dropdown-item2.js.map +1 -1
  343. package/dist/components/q2-dropdown.js +61 -57
  344. package/dist/components/q2-dropdown.js.map +1 -1
  345. package/dist/components/q2-editable-field.js +3 -3
  346. package/dist/components/q2-editable-field.js.map +1 -1
  347. package/dist/components/q2-input2.js +2 -2
  348. package/dist/components/q2-item.js +2 -2
  349. package/dist/components/q2-item.js.map +1 -1
  350. package/dist/components/q2-legend2.js +2 -2
  351. package/dist/components/q2-legend2.js.map +1 -1
  352. package/dist/components/q2-list.js +1 -1
  353. package/dist/components/q2-loc.js +1 -1
  354. package/dist/components/q2-message2.js +2 -2
  355. package/dist/components/q2-month-picker.js +2 -2
  356. package/dist/components/q2-optgroup2.js +1 -1
  357. package/dist/components/q2-option-list2.js +13 -11
  358. package/dist/components/q2-option-list2.js.map +1 -1
  359. package/dist/components/q2-option2.js +1 -1
  360. package/dist/components/q2-pagination.js +2 -2
  361. package/dist/components/q2-pill.js +100 -38
  362. package/dist/components/q2-pill.js.map +1 -1
  363. package/dist/components/q2-popover2.js +2 -2
  364. package/dist/components/q2-radio-group.js +1 -1
  365. package/dist/components/q2-radio.js +1 -1
  366. package/dist/components/q2-relative-time.js +1 -1
  367. package/dist/components/q2-section.js +3 -3
  368. package/dist/components/q2-section.js.map +1 -1
  369. package/dist/components/q2-select2.js +20 -19
  370. package/dist/components/q2-select2.js.map +1 -1
  371. package/dist/components/q2-stepper-pane.js +1 -1
  372. package/dist/components/q2-stepper-vertical.js +1 -1
  373. package/dist/components/q2-stepper.js +1 -1
  374. package/dist/components/q2-tab-container.js +21 -20
  375. package/dist/components/q2-tab-container.js.map +1 -1
  376. package/dist/components/q2-tab-pane.js +1 -1
  377. package/dist/components/q2-tag.js +38 -8
  378. package/dist/components/q2-tag.js.map +1 -1
  379. package/dist/components/q2-textarea.js +2 -2
  380. package/dist/components/tecton-tab-pane.js +2 -2
  381. package/dist/esm/{action-sheet-dd527168.js → action-sheet-e64cb6f7.js} +2 -2
  382. package/dist/esm/{action-sheet-dd527168.js.map → action-sheet-e64cb6f7.js.map} +1 -1
  383. package/dist/esm/click-elsewhere_2.entry.js +2 -2
  384. package/dist/esm/index-4a80972c.js +1556 -0
  385. package/dist/esm/index-4a80972c.js.map +1 -0
  386. package/dist/esm/{index-1c019b24.js → index-c6d74f10.js} +1 -1
  387. package/dist/esm/{index-1c019b24.js.map → index-c6d74f10.js.map} +1 -1
  388. package/dist/esm/loader.js +1 -1
  389. package/dist/esm/q2-action-sheet.entry.js +5 -5
  390. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  391. package/dist/esm/q2-avatar.entry.js +1 -1
  392. package/dist/esm/{q2-input.entry.js → q2-badge_7.entry.js} +1280 -5
  393. package/dist/esm/q2-badge_7.entry.js.map +1 -0
  394. package/dist/esm/q2-calendar.entry.js +3 -3
  395. package/dist/esm/q2-calendar.entry.js.map +1 -1
  396. package/dist/esm/q2-card.entry.js +1 -1
  397. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  398. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  399. package/dist/esm/q2-carousel.entry.js +131 -149
  400. package/dist/esm/q2-carousel.entry.js.map +1 -1
  401. package/dist/esm/q2-chart-area.entry.js +3 -3
  402. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  403. package/dist/esm/q2-chart-bar.entry.js +3 -3
  404. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  405. package/dist/esm/q2-chart-donut.entry.js +2 -2
  406. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  407. package/dist/esm/q2-checkbox.entry.js +2 -2
  408. package/dist/esm/q2-currency.entry.js +1 -1
  409. package/dist/esm/q2-data-table.entry.js +62 -2
  410. package/dist/esm/q2-data-table.entry.js.map +1 -1
  411. package/dist/esm/q2-detail.entry.js +2 -2
  412. package/dist/esm/q2-dropdown-item.entry.js +11 -13
  413. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  414. package/dist/esm/q2-dropdown.entry.js +62 -58
  415. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  416. package/dist/esm/q2-editable-field.entry.js +4 -4
  417. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  418. package/dist/esm/q2-item.entry.js +3 -3
  419. package/dist/esm/q2-item.entry.js.map +1 -1
  420. package/dist/esm/q2-legend.entry.js +2 -2
  421. package/dist/esm/q2-legend.entry.js.map +1 -1
  422. package/dist/esm/q2-list.entry.js +2 -2
  423. package/dist/esm/q2-loc.entry.js +2 -2
  424. package/dist/esm/q2-message.entry.js +2 -2
  425. package/dist/esm/q2-month-picker.entry.js +3 -3
  426. package/dist/esm/q2-optgroup.entry.js +2 -2
  427. package/dist/esm/q2-option-list.entry.js +13 -11
  428. package/dist/esm/q2-option-list.entry.js.map +1 -1
  429. package/dist/esm/q2-option.entry.js +1 -1
  430. package/dist/esm/q2-pagination.entry.js +3 -3
  431. package/dist/esm/q2-pill.entry.js +96 -37
  432. package/dist/esm/q2-pill.entry.js.map +1 -1
  433. package/dist/esm/q2-radio-group.entry.js +2 -2
  434. package/dist/esm/q2-radio.entry.js +2 -2
  435. package/dist/esm/q2-relative-time.entry.js +3 -3
  436. package/dist/esm/q2-section.entry.js +4 -4
  437. package/dist/esm/q2-section.entry.js.map +1 -1
  438. package/dist/esm/q2-select.entry.js +20 -19
  439. package/dist/esm/q2-select.entry.js.map +1 -1
  440. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  441. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  442. package/dist/esm/q2-stepper.entry.js +2 -2
  443. package/dist/esm/q2-tag.entry.js +34 -7
  444. package/dist/esm/q2-tag.entry.js.map +1 -1
  445. package/dist/esm/q2-tecton-elements.js +1 -1
  446. package/dist/esm/q2-textarea.entry.js +2 -2
  447. package/dist/esm/q2-tooltip.entry.js +1 -1
  448. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  449. package/dist/q2-tecton-elements/{p-da711c59.entry.js → p-072c5877.entry.js} +2 -2
  450. package/dist/q2-tecton-elements/{p-f6358905.entry.js → p-074ae80c.entry.js} +2 -2
  451. package/dist/q2-tecton-elements/p-0a1dff75.entry.js +2 -0
  452. package/dist/q2-tecton-elements/p-0a1dff75.entry.js.map +1 -0
  453. package/dist/q2-tecton-elements/{p-93680d12.entry.js → p-0a3a804a.entry.js} +2 -2
  454. package/dist/q2-tecton-elements/{p-93680d12.entry.js.map → p-0a3a804a.entry.js.map} +1 -1
  455. package/dist/q2-tecton-elements/p-259b728a.entry.js +2 -0
  456. package/dist/q2-tecton-elements/{p-77a763eb.entry.js.map → p-259b728a.entry.js.map} +1 -1
  457. package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js → p-2c26295e.entry.js} +2 -2
  458. package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js → p-2ca6d44f.entry.js} +2 -2
  459. package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js → p-2fcaf2d6.entry.js} +2 -2
  460. package/dist/q2-tecton-elements/p-2fcaf2d6.entry.js.map +1 -0
  461. package/dist/q2-tecton-elements/{p-0852e6fe.entry.js → p-34696e3f.entry.js} +2 -2
  462. package/dist/q2-tecton-elements/{p-1e7fa870.entry.js → p-34856c71.entry.js} +2 -2
  463. package/dist/q2-tecton-elements/p-34856c71.entry.js.map +1 -0
  464. package/dist/q2-tecton-elements/p-376a0589.entry.js +2 -0
  465. package/dist/q2-tecton-elements/p-376a0589.entry.js.map +1 -0
  466. package/dist/q2-tecton-elements/{p-630613c7.entry.js → p-395904b4.entry.js} +2 -2
  467. package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js +2 -0
  468. package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js.map +1 -0
  469. package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js → p-3c7be0bb.entry.js} +2 -2
  470. package/dist/q2-tecton-elements/p-3c7be0bb.entry.js.map +1 -0
  471. package/dist/q2-tecton-elements/p-403bf3d4.entry.js +2 -0
  472. package/dist/q2-tecton-elements/{p-5037fa67.entry.js.map → p-403bf3d4.entry.js.map} +1 -1
  473. package/dist/q2-tecton-elements/{p-db79c056.entry.js → p-4116579f.entry.js} +2 -2
  474. package/dist/q2-tecton-elements/{p-e0a6baea.entry.js → p-45407ecc.entry.js} +2 -2
  475. package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js → p-58cafc0d.entry.js} +2 -2
  476. package/dist/q2-tecton-elements/{p-4388e521.entry.js → p-5d936af5.entry.js} +2 -2
  477. package/dist/q2-tecton-elements/p-6237c775.entry.js +2 -0
  478. package/dist/q2-tecton-elements/p-6237c775.entry.js.map +1 -0
  479. package/dist/q2-tecton-elements/{p-a177d812.entry.js → p-661ed976.entry.js} +2 -2
  480. package/dist/q2-tecton-elements/{p-da0cacef.entry.js → p-6b7c53a8.entry.js} +2 -2
  481. package/dist/q2-tecton-elements/{p-6c933b14.entry.js → p-6e6d9793.entry.js} +2 -2
  482. package/dist/q2-tecton-elements/{p-be518818.js → p-721365be.js} +1 -1
  483. package/dist/q2-tecton-elements/{p-a8e7e591.entry.js → p-77272c4c.entry.js} +2 -2
  484. package/dist/q2-tecton-elements/{p-793a453e.entry.js → p-77a0cc0c.entry.js} +2 -2
  485. package/dist/q2-tecton-elements/{p-9c589ab3.entry.js → p-8111547c.entry.js} +2 -2
  486. package/dist/q2-tecton-elements/{p-05b30f98.entry.js → p-8a4b106d.entry.js} +2 -2
  487. package/dist/q2-tecton-elements/p-8a4b106d.entry.js.map +1 -0
  488. package/dist/q2-tecton-elements/p-9a1a4bc0.js +3 -0
  489. package/dist/q2-tecton-elements/p-9a1a4bc0.js.map +1 -0
  490. package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js +2 -0
  491. package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js.map +1 -0
  492. package/dist/q2-tecton-elements/p-aa57b657.entry.js +2 -0
  493. package/dist/q2-tecton-elements/p-aa57b657.entry.js.map +1 -0
  494. package/dist/q2-tecton-elements/p-ad998f71.entry.js +2 -0
  495. package/dist/q2-tecton-elements/p-ad998f71.entry.js.map +1 -0
  496. package/dist/q2-tecton-elements/{p-e3ad770b.entry.js → p-adec9275.entry.js} +2 -2
  497. package/dist/q2-tecton-elements/p-adf0a7c9.entry.js +2 -0
  498. package/dist/q2-tecton-elements/p-adf0a7c9.entry.js.map +1 -0
  499. package/dist/q2-tecton-elements/p-b72fd065.entry.js +2 -0
  500. package/dist/q2-tecton-elements/p-b72fd065.entry.js.map +1 -0
  501. package/dist/q2-tecton-elements/{p-780a1d0e.js → p-b7554a79.js} +2 -2
  502. package/dist/q2-tecton-elements/{p-40df4468.entry.js → p-c0c658d1.entry.js} +2 -2
  503. package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js → p-c81d299a.entry.js} +2 -2
  504. package/dist/q2-tecton-elements/p-c81d299a.entry.js.map +1 -0
  505. package/dist/q2-tecton-elements/{p-08176bd0.entry.js → p-cb3f48de.entry.js} +2 -2
  506. package/dist/q2-tecton-elements/{p-2810ba28.entry.js → p-ce4e6b41.entry.js} +2 -2
  507. package/dist/q2-tecton-elements/{p-76b98623.entry.js → p-cf32b5db.entry.js} +2 -2
  508. package/dist/q2-tecton-elements/p-cf966a0f.entry.js +2 -0
  509. package/dist/q2-tecton-elements/p-cf966a0f.entry.js.map +1 -0
  510. package/dist/q2-tecton-elements/{p-c5aac064.entry.js → p-d2e1631a.entry.js} +2 -2
  511. package/dist/q2-tecton-elements/{p-c5aac064.entry.js.map → p-d2e1631a.entry.js.map} +1 -1
  512. package/dist/q2-tecton-elements/{p-2e6669a7.entry.js → p-dc77bf66.entry.js} +2 -2
  513. package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js → p-fffb54e9.entry.js} +2 -2
  514. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  515. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  516. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  517. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -2
  518. package/dist/types/components/q2-calendar/q2-calendar.d.ts +323 -0
  519. package/dist/types/components/q2-carousel/q2-carousel.d.ts +36 -25
  520. package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +3 -3
  521. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +6 -6
  522. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +14 -14
  523. package/dist/types/components/q2-data-table/q2-data-table.d.ts +259 -0
  524. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +129 -0
  525. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +50 -0
  526. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +140 -0
  527. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  528. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  529. package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
  530. package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -0
  531. package/dist/types/components/q2-pill/q2-pill.d.ts +128 -0
  532. package/dist/types/components/q2-select/q2-select.d.ts +232 -0
  533. package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
  534. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
  535. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +5 -5
  536. package/dist/types/components/q2-tag/q2-tag.d.ts +63 -0
  537. package/dist/types/components.d.ts +77 -33
  538. package/dist/types/utils/action-sheet.d.ts +12 -0
  539. package/dist/types/{workspace/workspace/tecton-production_release_1.49.x/packages/q2-tecton-elements/.stencil/test → utils}/helpers.d.ts +1 -1
  540. package/dist/types/utils/index.d.ts +1 -0
  541. package/package.json +8 -6
  542. package/dist/cjs/index-a93362ed.js +0 -225
  543. package/dist/cjs/index-a93362ed.js.map +0 -1
  544. package/dist/cjs/q2-badge.cjs.entry.js +0 -52
  545. package/dist/cjs/q2-badge.cjs.entry.js.map +0 -1
  546. package/dist/cjs/q2-btn_2.cjs.entry.js +0 -237
  547. package/dist/cjs/q2-btn_2.cjs.entry.js.map +0 -1
  548. package/dist/cjs/q2-icon.cjs.entry.js +0 -731
  549. package/dist/cjs/q2-icon.cjs.entry.js.map +0 -1
  550. package/dist/cjs/q2-input.cjs.entry.js.map +0 -1
  551. package/dist/cjs/q2-tab-container.cjs.entry.js +0 -263
  552. package/dist/cjs/q2-tab-container.cjs.entry.js.map +0 -1
  553. package/dist/cjs/q2-tab-pane.cjs.entry.js +0 -46
  554. package/dist/cjs/q2-tab-pane.cjs.entry.js.map +0 -1
  555. package/dist/cjs/slot-component.cjs.entry.js +0 -19
  556. package/dist/cjs/slot-component.cjs.entry.js.map +0 -1
  557. package/dist/components/slot-component.d.ts +0 -11
  558. package/dist/components/slot-component.js +0 -34
  559. package/dist/components/slot-component.js.map +0 -1
  560. package/dist/esm/index-3c5cd75e.js +0 -202
  561. package/dist/esm/index-3c5cd75e.js.map +0 -1
  562. package/dist/esm/q2-badge.entry.js +0 -48
  563. package/dist/esm/q2-badge.entry.js.map +0 -1
  564. package/dist/esm/q2-btn_2.entry.js +0 -232
  565. package/dist/esm/q2-btn_2.entry.js.map +0 -1
  566. package/dist/esm/q2-icon.entry.js +0 -727
  567. package/dist/esm/q2-icon.entry.js.map +0 -1
  568. package/dist/esm/q2-input.entry.js.map +0 -1
  569. package/dist/esm/q2-tab-container.entry.js +0 -259
  570. package/dist/esm/q2-tab-container.entry.js.map +0 -1
  571. package/dist/esm/q2-tab-pane.entry.js +0 -42
  572. package/dist/esm/q2-tab-pane.entry.js.map +0 -1
  573. package/dist/esm/slot-component.entry.js +0 -15
  574. package/dist/esm/slot-component.entry.js.map +0 -1
  575. package/dist/q2-tecton-elements/p-05b30f98.entry.js.map +0 -1
  576. package/dist/q2-tecton-elements/p-089a7a1e.entry.js +0 -2
  577. package/dist/q2-tecton-elements/p-089a7a1e.entry.js.map +0 -1
  578. package/dist/q2-tecton-elements/p-1e7fa870.entry.js.map +0 -1
  579. package/dist/q2-tecton-elements/p-25bfe0b2.entry.js +0 -2
  580. package/dist/q2-tecton-elements/p-25bfe0b2.entry.js.map +0 -1
  581. package/dist/q2-tecton-elements/p-2bcb7e89.entry.js.map +0 -1
  582. package/dist/q2-tecton-elements/p-333a41ca.entry.js +0 -2
  583. package/dist/q2-tecton-elements/p-333a41ca.entry.js.map +0 -1
  584. package/dist/q2-tecton-elements/p-4da4cb5d.entry.js +0 -2
  585. package/dist/q2-tecton-elements/p-4da4cb5d.entry.js.map +0 -1
  586. package/dist/q2-tecton-elements/p-5037fa67.entry.js +0 -2
  587. package/dist/q2-tecton-elements/p-550881db.entry.js +0 -2
  588. package/dist/q2-tecton-elements/p-550881db.entry.js.map +0 -1
  589. package/dist/q2-tecton-elements/p-5775b02b.entry.js +0 -2
  590. package/dist/q2-tecton-elements/p-5775b02b.entry.js.map +0 -1
  591. package/dist/q2-tecton-elements/p-77a763eb.entry.js +0 -2
  592. package/dist/q2-tecton-elements/p-84190698.js +0 -2
  593. package/dist/q2-tecton-elements/p-84190698.js.map +0 -1
  594. package/dist/q2-tecton-elements/p-9e90a38a.entry.js +0 -2
  595. package/dist/q2-tecton-elements/p-9e90a38a.entry.js.map +0 -1
  596. package/dist/q2-tecton-elements/p-9ecabc7a.entry.js +0 -2
  597. package/dist/q2-tecton-elements/p-9ecabc7a.entry.js.map +0 -1
  598. package/dist/q2-tecton-elements/p-a657277b.entry.js +0 -2
  599. package/dist/q2-tecton-elements/p-a657277b.entry.js.map +0 -1
  600. package/dist/q2-tecton-elements/p-b3322f94.entry.js +0 -2
  601. package/dist/q2-tecton-elements/p-b3322f94.entry.js.map +0 -1
  602. package/dist/q2-tecton-elements/p-baa2eaa9.entry.js.map +0 -1
  603. package/dist/q2-tecton-elements/p-c8b4f5f7.entry.js +0 -2
  604. package/dist/q2-tecton-elements/p-c8b4f5f7.entry.js.map +0 -1
  605. package/dist/q2-tecton-elements/p-d2d3d95b.entry.js +0 -2
  606. package/dist/q2-tecton-elements/p-d2d3d95b.entry.js.map +0 -1
  607. package/dist/q2-tecton-elements/p-d78669df.entry.js +0 -2
  608. package/dist/q2-tecton-elements/p-d78669df.entry.js.map +0 -1
  609. package/dist/q2-tecton-elements/p-d8d9ba1f.entry.js.map +0 -1
  610. package/dist/q2-tecton-elements/p-dbfab45b.entry.js +0 -2
  611. package/dist/q2-tecton-elements/p-dbfab45b.entry.js.map +0 -1
  612. package/dist/q2-tecton-elements/p-e44560d9.entry.js +0 -2
  613. package/dist/q2-tecton-elements/p-e44560d9.entry.js.map +0 -1
  614. package/dist/q2-tecton-elements/p-ea7876eb.entry.js +0 -2
  615. package/dist/q2-tecton-elements/p-ea7876eb.entry.js.map +0 -1
  616. package/dist/test/elements/click-elsewhere-test.e2e.js.map +0 -1
  617. package/dist/test/elements/q2-action-sheet-test.e2e.js.map +0 -1
  618. package/dist/test/elements/q2-avatar-test.e2e.js.map +0 -1
  619. package/dist/test/elements/q2-badge-test.e2e.js.map +0 -1
  620. package/dist/test/elements/q2-btn-test.e2e.js.map +0 -1
  621. package/dist/test/elements/q2-calendar/helpers-test.e2e.js.map +0 -1
  622. package/dist/test/elements/q2-calendar/validation-test.e2e.js.map +0 -1
  623. package/dist/test/elements/q2-calendar-month-picker-test.e2e.js.map +0 -1
  624. package/dist/test/elements/q2-calendar-test.e2e.js.map +0 -1
  625. package/dist/test/elements/q2-card-test.e2e.js.map +0 -1
  626. package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +0 -1
  627. package/dist/test/elements/q2-carousel-pane-test.spec.js.map +0 -1
  628. package/dist/test/elements/q2-carousel-test.e2e.js.map +0 -1
  629. package/dist/test/elements/q2-chart-area-test.e2e.js.map +0 -1
  630. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +0 -1
  631. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +0 -1
  632. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +0 -1
  633. package/dist/test/elements/q2-checkbox-test.e2e.js.map +0 -1
  634. package/dist/test/elements/q2-currency-test.e2e.js.map +0 -1
  635. package/dist/test/elements/q2-data-table-test.e2e.js.map +0 -1
  636. package/dist/test/elements/q2-detail/q2-detail-test.e2e.js.map +0 -1
  637. package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +0 -1
  638. package/dist/test/elements/q2-detail/slot-component.js +0 -32
  639. package/dist/test/elements/q2-detail/slot-component.js.map +0 -1
  640. package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +0 -1
  641. package/dist/test/elements/q2-dropdown-test.e2e.js.map +0 -1
  642. package/dist/test/elements/q2-editable-field-test.e2e.js.map +0 -1
  643. package/dist/test/elements/q2-icon-test.e2e.js.map +0 -1
  644. package/dist/test/elements/q2-input-credit-card-test.e2e.js.map +0 -1
  645. package/dist/test/elements/q2-input-test.e2e.js.map +0 -1
  646. package/dist/test/elements/q2-item-test.e2e.js.map +0 -1
  647. package/dist/test/elements/q2-item-test.spec.js.map +0 -1
  648. package/dist/test/elements/q2-legend-test.e2e.js.map +0 -1
  649. package/dist/test/elements/q2-legend-test.spec.js.map +0 -1
  650. package/dist/test/elements/q2-loading-element-test.e2e.js.map +0 -1
  651. package/dist/test/elements/q2-loading-test.e2e.js.map +0 -1
  652. package/dist/test/elements/q2-loc-test.e2e.js.map +0 -1
  653. package/dist/test/elements/q2-message-test.e2e.js.map +0 -1
  654. package/dist/test/elements/q2-optgroup-test.e2e.js.map +0 -1
  655. package/dist/test/elements/q2-option-list-test.e2e.js.map +0 -1
  656. package/dist/test/elements/q2-option-test.e2e.js.map +0 -1
  657. package/dist/test/elements/q2-pagination-test.e2e.js.map +0 -1
  658. package/dist/test/elements/q2-pill-test.e2e.js.map +0 -1
  659. package/dist/test/elements/q2-popover-test.e2e.js.map +0 -1
  660. package/dist/test/elements/q2-popover-test.spec.js.map +0 -1
  661. package/dist/test/elements/q2-radio-group-test.e2e.js.map +0 -1
  662. package/dist/test/elements/q2-radio-test.e2e.js.map +0 -1
  663. package/dist/test/elements/q2-relative-time-test.e2e.js.map +0 -1
  664. package/dist/test/elements/q2-section-test.e2e.js.map +0 -1
  665. package/dist/test/elements/q2-select-test.e2e.js.map +0 -1
  666. package/dist/test/elements/q2-stepper-pane-test.e2e.js.map +0 -1
  667. package/dist/test/elements/q2-stepper-test.e2e.js.map +0 -1
  668. package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +0 -1
  669. package/dist/test/elements/q2-tab-container-test.e2e.js.map +0 -1
  670. package/dist/test/elements/q2-tab-pane-test.e2e.js.map +0 -1
  671. package/dist/test/elements/q2-tag-test.e2e.js.map +0 -1
  672. package/dist/test/elements/q2-textarea-test.e2e.js.map +0 -1
  673. package/dist/test/elements/q2-tooltip-test.e2e.js.map +0 -1
  674. package/dist/test/elements/tecton-tab-pane-test.e2e.js.map +0 -1
  675. package/dist/test/helpers.js.map +0 -1
  676. package/dist/test/utils/action-sheet-test.e2e.js.map +0 -1
  677. package/dist/test/utils/index.spec.js.map +0 -1
  678. package/dist/types/workspace/workspace/tecton-production_release_1.49.x/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -4
  679. /package/dist/q2-tecton-elements/{p-da711c59.entry.js.map → p-072c5877.entry.js.map} +0 -0
  680. /package/dist/q2-tecton-elements/{p-f6358905.entry.js.map → p-074ae80c.entry.js.map} +0 -0
  681. /package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js.map → p-2c26295e.entry.js.map} +0 -0
  682. /package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js.map → p-2ca6d44f.entry.js.map} +0 -0
  683. /package/dist/q2-tecton-elements/{p-0852e6fe.entry.js.map → p-34696e3f.entry.js.map} +0 -0
  684. /package/dist/q2-tecton-elements/{p-630613c7.entry.js.map → p-395904b4.entry.js.map} +0 -0
  685. /package/dist/q2-tecton-elements/{p-db79c056.entry.js.map → p-4116579f.entry.js.map} +0 -0
  686. /package/dist/q2-tecton-elements/{p-e0a6baea.entry.js.map → p-45407ecc.entry.js.map} +0 -0
  687. /package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js.map → p-58cafc0d.entry.js.map} +0 -0
  688. /package/dist/q2-tecton-elements/{p-4388e521.entry.js.map → p-5d936af5.entry.js.map} +0 -0
  689. /package/dist/q2-tecton-elements/{p-a177d812.entry.js.map → p-661ed976.entry.js.map} +0 -0
  690. /package/dist/q2-tecton-elements/{p-da0cacef.entry.js.map → p-6b7c53a8.entry.js.map} +0 -0
  691. /package/dist/q2-tecton-elements/{p-6c933b14.entry.js.map → p-6e6d9793.entry.js.map} +0 -0
  692. /package/dist/q2-tecton-elements/{p-be518818.js.map → p-721365be.js.map} +0 -0
  693. /package/dist/q2-tecton-elements/{p-a8e7e591.entry.js.map → p-77272c4c.entry.js.map} +0 -0
  694. /package/dist/q2-tecton-elements/{p-793a453e.entry.js.map → p-77a0cc0c.entry.js.map} +0 -0
  695. /package/dist/q2-tecton-elements/{p-9c589ab3.entry.js.map → p-8111547c.entry.js.map} +0 -0
  696. /package/dist/q2-tecton-elements/{p-e3ad770b.entry.js.map → p-adec9275.entry.js.map} +0 -0
  697. /package/dist/q2-tecton-elements/{p-780a1d0e.js.map → p-b7554a79.js.map} +0 -0
  698. /package/dist/q2-tecton-elements/{p-40df4468.entry.js.map → p-c0c658d1.entry.js.map} +0 -0
  699. /package/dist/q2-tecton-elements/{p-08176bd0.entry.js.map → p-cb3f48de.entry.js.map} +0 -0
  700. /package/dist/q2-tecton-elements/{p-2810ba28.entry.js.map → p-ce4e6b41.entry.js.map} +0 -0
  701. /package/dist/q2-tecton-elements/{p-76b98623.entry.js.map → p-cf32b5db.entry.js.map} +0 -0
  702. /package/dist/q2-tecton-elements/{p-2e6669a7.entry.js.map → p-dc77bf66.entry.js.map} +0 -0
  703. /package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js.map → p-fffb54e9.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { evaluateA11y, setup, getFocusedAttribute, getFocusedTagName, getFocusedOptionValue, getActiveElementTestId, getListOfStyleCompilationIssues, setTestStrings, } from "../helpers";
1
+ import { evaluateA11y, setup, getFocusedAttribute, getFocusedTagName, getFocusedOptionValue, getActiveElementTestId, getListOfStyleCompilationIssues, setTestStrings, } from "../../../utils/helpers";
2
2
  describe('q2-pill', () => {
3
3
  let page;
4
4
  let pill;
@@ -31,53 +31,27 @@ describe('q2-pill', () => {
31
31
  const hasViolations = await evaluateA11y(page);
32
32
  expect(hasViolations).toBe(false);
33
33
  });
34
- });
35
- describe('when no options are provided', () => {
36
- it('toggles active on click', async () => {
34
+ it("option-list should have a role of 'listbox' and the options a role of 'option'", async () => {
37
35
  page = await setup({
38
- html: `<q2-pill label="My pill" value="my-pill-value"></q2-pill>`,
36
+ html: `
37
+ <q2-pill label="My pill" open>
38
+ <q2-option value="1">Option 1</q2-option>
39
+ <q2-option value="2">Option 2</q2-option>
40
+ <q2-option value="3">Option 3</q2-option>
41
+ </q2-pill>
42
+ `,
39
43
  });
40
- pill = await page.find('q2-pill');
41
- const closeBtn = await page.find('q2-pill >>> .btn-close');
42
- const closeIcon = await page.find('q2-pill >>> q2-icon');
43
- const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
44
- const changeSpy = await pill.spyOnEvent('change');
45
- expect(pill).not.toHaveAttribute('active');
46
- expect(await closeBtn.isVisible()).toBe(false);
47
- expect(closeIcon).toEqualAttribute('type', 'close');
48
- expect(btnWrapper.classList.contains('has-icon')).toBe(false);
49
- expect(btnWrapper.classList.contains('has-options')).toBe(false);
50
- await pill.click();
51
- await page.waitForChanges();
52
- expect(pill).toHaveAttribute('active');
53
- expect(await closeBtn.isVisible()).toBe(true);
54
- expect(btnWrapper.classList.contains('has-icon')).toBe(true);
55
- expect(btnWrapper.classList.contains('has-options')).toBe(false);
56
- expect(changeSpy).toHaveReceivedEventDetail({
57
- active: true,
58
- value: 'my-pill-value',
59
- values: [{ display: 'My pill', value: 'my-pill-value' }],
60
- });
61
- await pill.click();
62
44
  await page.waitForChanges();
63
- expect(pill).not.toHaveAttribute('active');
64
- expect(await closeBtn.isVisible()).toBe(false);
65
- expect(btnWrapper.classList.contains('has-icon')).toBe(false);
66
- expect(btnWrapper.classList.contains('has-options')).toBe(false);
67
- expect(changeSpy).toHaveReceivedEventDetail({
68
- active: false,
69
- value: 'my-pill-value',
70
- values: [],
71
- });
72
- });
73
- it('zero is not rendered inside the click-elsewhere element (TCT-2433)', async () => {
74
- page = await setup({
75
- html: `<q2-pill label="My Pill"></q2-pill>`,
45
+ const snapshot = await page.accessibility.snapshot();
46
+ const button = snapshot.children[0].children[0];
47
+ const optionList = snapshot.children[1];
48
+ expect(button.role).toEqual('combobox');
49
+ expect(optionList.role).toEqual('listbox');
50
+ expect(optionList.children).toHaveLength(3);
51
+ optionList.children.forEach(child => {
52
+ expect(child.role).toEqual('option');
53
+ expect(child.name).toBeTruthy();
76
54
  });
77
- pill = await page.find('q2-pill');
78
- const clickElsewhere = await page.find('q2-pill >>> click-elsewhere');
79
- expect(await pill.getProperty('label')).toBe('My Pill');
80
- expect(clickElsewhere.textContent.slice(-1)).not.toBe('0');
81
55
  });
82
56
  });
83
57
  describe('Props', () => {
@@ -397,296 +371,6 @@ describe('q2-pill', () => {
397
371
  });
398
372
  });
399
373
  });
400
- });
401
- describe('when options are provided', () => {
402
- beforeEach(async () => {
403
- page = await setup({
404
- html: `
405
- <q2-pill label="My pill">
406
- <q2-option value="1">Option 1</q2-option>
407
- <q2-option value="2">Option 2</q2-option>
408
- <q2-option value="3">Option 3</q2-option>
409
- </q2-pill>
410
- `,
411
- });
412
- pill = await page.find('q2-pill');
413
- allOptions = await page.findAll('q2-option');
414
- optionList = await page.find('q2-pill >>> q2-option-list');
415
- popover = await page.find('q2-pill >>> q2-popover');
416
- optionContainer = await page.find('q2-pill >>> q2-option-list >>> .options');
417
- controlBtn = await page.find('q2-pill >>> .btn-primary');
418
- changeSpy = await pill.spyOnEvent('change');
419
- });
420
- it('can select option via keyboard', async () => {
421
- let closeBtn = await page.find('q2-pill >>> .btn-close');
422
- let closeIcon = await page.find('q2-pill >>> q2-icon');
423
- const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
424
- expect(pill).not.toHaveAttribute('active');
425
- expect(await closeBtn.isVisible()).toBe(true);
426
- expect(closeIcon).toEqualAttribute('type', 'chevron-down');
427
- expect(btnWrapper.classList.contains('has-icon')).toBe(true);
428
- expect(btnWrapper.classList.contains('has-options')).toBe(true);
429
- expect(popover).not.toHaveAttribute('open');
430
- expect(closeBtn.tagName).toEqual('DIV');
431
- await controlBtn.press('ArrowDown');
432
- await page.waitForChanges();
433
- expect(pill).not.toHaveAttribute('active');
434
- expect(pill).toHaveAttribute('open');
435
- expect(popover).toHaveAttribute('open');
436
- expect(await getFocusedOptionValue(page)).toEqual('1');
437
- await optionContainer.press('ArrowDown');
438
- await page.waitForChanges();
439
- expect(await getFocusedOptionValue(page)).toEqual('2');
440
- await allOptions[1].press(' ');
441
- await page.waitForChanges();
442
- expect(pill).toHaveAttribute('active');
443
- expect(pill).not.toHaveAttribute('open');
444
- expect(popover).not.toHaveAttribute('open');
445
- expect(changeSpy).toHaveReceivedEventDetail({
446
- active: true,
447
- value: '2',
448
- values: [{ display: 'Option 2', value: '2' }],
449
- });
450
- expect(await optionList.getProperty('selectedOptions')).toEqual([{ display: 'Option 2', value: '2' }]);
451
- closeBtn = await page.find('q2-pill >>> .btn-close');
452
- closeIcon = await page.find('q2-pill >>> q2-icon');
453
- expect(closeBtn.tagName).toEqual('BUTTON');
454
- expect(closeIcon).toEqualAttribute('type', 'close');
455
- await closeBtn.press(' ');
456
- await page.waitForChanges();
457
- expect(pill).not.toHaveAttribute('active');
458
- expect(changeSpy).toHaveReceivedEventDetail({
459
- active: false,
460
- value: null,
461
- values: [],
462
- });
463
- expect(await optionList.getProperty('selectedOptions')).toEqual([]);
464
- });
465
- it('can select option via mouse', async () => {
466
- let closeBtn = await page.find('q2-pill >>> .btn-close');
467
- let closeIcon = await page.find('q2-pill >>> q2-icon');
468
- const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
469
- expect(pill).not.toHaveAttribute('active');
470
- expect(await closeBtn.isVisible()).toBe(true);
471
- expect(closeIcon).toEqualAttribute('type', 'chevron-down');
472
- expect(btnWrapper.classList.contains('has-icon')).toBe(true);
473
- expect(btnWrapper.classList.contains('has-options')).toBe(true);
474
- expect(popover).not.toHaveAttribute('open');
475
- expect(closeBtn.tagName).toEqual('DIV');
476
- await pill.click();
477
- await page.waitForChanges();
478
- expect(pill).not.toHaveAttribute('active');
479
- expect(pill).toHaveAttribute('open');
480
- expect(popover).toHaveAttribute('open');
481
- expect(await getFocusedTagName(page)).toEqual('Q2-PILL');
482
- await allOptions[1].click();
483
- await page.waitForChanges();
484
- expect(changeSpy).toHaveReceivedEventDetail({
485
- active: true,
486
- value: '2',
487
- values: [{ display: 'Option 2', value: '2' }],
488
- });
489
- expect(await optionList.getProperty('selectedOptions')).toEqual([{ display: 'Option 2', value: '2' }]);
490
- closeBtn = await page.find('q2-pill >>> .btn-close');
491
- closeIcon = await page.find('q2-pill >>> q2-icon');
492
- expect(closeBtn.tagName).toEqual('BUTTON');
493
- expect(closeIcon).toEqualAttribute('type', 'close');
494
- await closeBtn.click();
495
- await page.waitForChanges();
496
- expect(pill).not.toHaveAttribute('active');
497
- expect(changeSpy).toHaveReceivedEventDetail({
498
- active: false,
499
- value: null,
500
- values: [],
501
- });
502
- expect(await optionList.getProperty('selectedOptions')).toEqual([]);
503
- });
504
- describe('when multiple', () => {
505
- it('can select multiple options via keyboard', async () => {
506
- await pill.setProperty('multiple', true);
507
- await page.waitForChanges();
508
- let closeBtn = await page.find('q2-pill >>> .btn-close');
509
- let closeIcon = await page.find('q2-pill >>> q2-icon');
510
- const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
511
- expect(pill).not.toHaveAttribute('active');
512
- expect(await closeBtn.isVisible()).toBe(true);
513
- expect(closeIcon).toEqualAttribute('type', 'chevron-down');
514
- expect(btnWrapper.classList.contains('has-icon')).toBe(true);
515
- expect(btnWrapper.classList.contains('has-options')).toBe(true);
516
- expect(popover).not.toHaveAttribute('open');
517
- expect(closeBtn.tagName).toEqual('DIV');
518
- await controlBtn.press('ArrowDown');
519
- await page.waitForChanges();
520
- expect(pill).not.toHaveAttribute('active');
521
- expect(pill).toHaveAttribute('open');
522
- expect(popover).toHaveAttribute('open');
523
- expect(await getFocusedOptionValue(page)).toEqual('1');
524
- await optionContainer.press('ArrowDown');
525
- await page.waitForChanges();
526
- expect(await getFocusedOptionValue(page)).toEqual('2');
527
- await allOptions[1].press(' ');
528
- await page.waitForChanges();
529
- expect(pill).toHaveAttribute('active');
530
- expect(pill).toHaveAttribute('open');
531
- expect(popover).toHaveAttribute('open');
532
- expect(changeSpy).toHaveReceivedEventDetail({
533
- active: true,
534
- value: '2',
535
- values: [{ display: 'Option 2', value: '2' }],
536
- });
537
- expect(await optionList.getProperty('selectedOptions')).toEqual([{ display: 'Option 2', value: '2' }]);
538
- closeBtn = await page.find('q2-pill >>> .btn-close');
539
- closeIcon = await page.find('q2-pill >>> q2-icon');
540
- expect(closeBtn.tagName).toEqual('BUTTON');
541
- expect(closeIcon).toEqualAttribute('type', 'close');
542
- await optionContainer.press('ArrowDown');
543
- await page.waitForChanges();
544
- expect(await getFocusedOptionValue(page)).toEqual('3');
545
- await allOptions[2].press(' ');
546
- await page.waitForChanges();
547
- expect(changeSpy).toHaveReceivedEventDetail({
548
- active: true,
549
- value: '3',
550
- values: [
551
- { display: 'Option 2', value: '2' },
552
- { display: 'Option 3', value: '3' },
553
- ],
554
- });
555
- expect(await optionList.getProperty('selectedOptions')).toEqual([
556
- { display: 'Option 2', value: '2' },
557
- { display: 'Option 3', value: '3' },
558
- ]);
559
- expect(pill).toHaveAttribute('active');
560
- expect(pill).toHaveAttribute('open');
561
- expect(popover).toHaveAttribute('open');
562
- await btnWrapper.click();
563
- await page.waitForChanges();
564
- expect(pill).toHaveAttribute('active');
565
- expect(pill).not.toHaveAttribute('open');
566
- expect(optionList).not.toHaveAttribute('open');
567
- await closeBtn.click();
568
- await page.waitForChanges();
569
- expect(pill).not.toHaveAttribute('active');
570
- expect(changeSpy).toHaveReceivedEventDetail({
571
- active: false,
572
- value: null,
573
- values: [],
574
- });
575
- expect(await optionList.getProperty('selectedOptions')).toEqual([]);
576
- });
577
- it('can select multiple options via mouse', async () => {
578
- await pill.setProperty('multiple', true);
579
- await page.waitForChanges();
580
- let closeBtn = await page.find('q2-pill >>> .btn-close');
581
- let closeIcon = await page.find('q2-pill >>> q2-icon');
582
- const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
583
- expect(pill).not.toHaveAttribute('active');
584
- expect(await closeBtn.isVisible()).toBe(true);
585
- expect(closeIcon).toEqualAttribute('type', 'chevron-down');
586
- expect(btnWrapper.classList.contains('has-icon')).toBe(true);
587
- expect(btnWrapper.classList.contains('has-options')).toBe(true);
588
- expect(popover).not.toHaveAttribute('open');
589
- expect(closeBtn.tagName).toEqual('DIV');
590
- await pill.click();
591
- await page.waitForChanges();
592
- expect(pill).not.toHaveAttribute('active');
593
- expect(pill).toHaveAttribute('open');
594
- expect(popover).toHaveAttribute('open');
595
- expect(await getFocusedTagName(page)).toEqual('Q2-PILL');
596
- await allOptions[1].click();
597
- await page.waitForChanges();
598
- expect(pill).toHaveAttribute('active');
599
- expect(pill).toHaveAttribute('open');
600
- expect(popover).toHaveAttribute('open');
601
- expect(changeSpy).toHaveReceivedEventDetail({
602
- active: true,
603
- value: '2',
604
- values: [{ display: 'Option 2', value: '2' }],
605
- });
606
- expect(await optionList.getProperty('selectedOptions')).toEqual([{ display: 'Option 2', value: '2' }]);
607
- closeBtn = await page.find('q2-pill >>> .btn-close');
608
- closeIcon = await page.find('q2-pill >>> q2-icon');
609
- expect(closeBtn.tagName).toEqual('BUTTON');
610
- expect(closeIcon).toEqualAttribute('type', 'close');
611
- await allOptions[2].click();
612
- await page.waitForChanges();
613
- expect(changeSpy).toHaveReceivedEventDetail({
614
- active: true,
615
- value: '3',
616
- values: [
617
- { display: 'Option 2', value: '2' },
618
- { display: 'Option 3', value: '3' },
619
- ],
620
- });
621
- expect(await optionList.getProperty('selectedOptions')).toEqual([
622
- { display: 'Option 2', value: '2' },
623
- { display: 'Option 3', value: '3' },
624
- ]);
625
- expect(pill).toHaveAttribute('active');
626
- expect(pill).toHaveAttribute('open');
627
- expect(popover).toHaveAttribute('open');
628
- await btnWrapper.click();
629
- await page.waitForChanges();
630
- expect(pill).toHaveAttribute('active');
631
- expect(pill).not.toHaveAttribute('open');
632
- expect(popover).not.toHaveAttribute('open');
633
- await closeBtn.click();
634
- await page.waitForChanges();
635
- expect(pill).not.toHaveAttribute('active');
636
- expect(changeSpy).toHaveReceivedEventDetail({
637
- active: false,
638
- value: null,
639
- values: [],
640
- });
641
- expect(await optionList.getProperty('selectedOptions')).toEqual([]);
642
- });
643
- });
644
- describe('when keyboard is pressed', () => {
645
- it('opens list and focuses first option on ArrowDown', async () => {
646
- await controlBtn.press('ArrowDown');
647
- await page.waitForChanges();
648
- expect(popover).toHaveAttribute('open');
649
- expect(pill).toHaveAttribute('open');
650
- expect(await getFocusedAttribute(page, 'value')).toEqual('1');
651
- });
652
- it('opens list and focuses last option on ArrowUp', async () => {
653
- await controlBtn.press('ArrowUp');
654
- await page.waitForChanges();
655
- expect(popover).toHaveAttribute('open');
656
- expect(pill).toHaveAttribute('open');
657
- expect(await getFocusedAttribute(page, 'value')).toEqual('3');
658
- });
659
- it('opens list and does not focus first option on Enter', async () => {
660
- await controlBtn.press('Enter');
661
- await page.waitForChanges();
662
- expect(popover).toHaveAttribute('open');
663
- expect(pill).toHaveAttribute('open');
664
- expect(await getActiveElementTestId(page)).toEqual('btn-control');
665
- });
666
- it('opens list and does not focus first option on Space', async () => {
667
- await controlBtn.press(' ');
668
- await page.waitForChanges();
669
- expect(popover).toHaveAttribute('open');
670
- expect(pill).toHaveAttribute('open');
671
- expect(await getActiveElementTestId(page)).toEqual('btn-control');
672
- });
673
- it('opens list and focuses last option on Home', async () => {
674
- await controlBtn.press('Home');
675
- await page.waitForChanges();
676
- expect(popover).toHaveAttribute('open');
677
- expect(pill).toHaveAttribute('open');
678
- expect(await getFocusedOptionValue(page)).toEqual('1');
679
- });
680
- it('opens list and focuses last option on End', async () => {
681
- await controlBtn.press('End');
682
- await page.waitForChanges();
683
- expect(popover).toHaveAttribute('open');
684
- expect(pill).toHaveAttribute('open');
685
- expect(await getFocusedAttribute(page, 'value')).toEqual('3');
686
- });
687
- });
688
- });
689
- describe('Props', () => {
690
374
  describe('label', () => {
691
375
  describe('when provided', () => {
692
376
  it('renders with provided label', async () => {
@@ -816,96 +500,504 @@ describe('q2-pill', () => {
816
500
  expect(await pill.getProperty('popoverAlignment')).toEqual('right');
817
501
  });
818
502
  });
819
- });
820
- describe('focus', () => {
821
- let page;
822
- let pill;
823
- beforeEach(async () => {
824
- page = await setup({
825
- html: `
826
- <q2-pill label="My pill" value="my-pill-value">
503
+ describe('borderless', () => {
504
+ let page;
505
+ beforeEach(async () => {
506
+ page = await setup({
507
+ html: `
508
+ <q2-pill label="My pill" value="my-pill-value" borderless>
827
509
  <q2-option value="1">Option 1</q2-option>
828
510
  <q2-option value="2">Option 2</q2-option>
829
511
  <q2-option value="3">Option 3</q2-option>
830
512
  </q2-pill>
831
513
  `,
514
+ });
515
+ });
516
+ it('border style should be none when borderless', async function () {
517
+ const borderStyle = await page.$eval('q2-pill >>> button', el => {
518
+ return window.getComputedStyle(el).getPropertyValue('border-style');
519
+ });
520
+ expect(borderStyle).toEqual('none');
832
521
  });
833
- pill = await page.find('q2-pill');
834
- });
835
- it('focuses active option and opens the list when focus event is dispatched', async function () {
836
- await pill.triggerEvent('focus');
837
- await page.waitForChanges();
838
- expect(await getFocusedAttribute(page, 'test-id')).toEqual('btn-control');
839
- });
840
- it('focuses active option and opens the list when element.focus() is called', async function () {
841
- await pill.focus();
842
- await page.waitForChanges();
843
- expect(await getFocusedAttribute(page, 'test-id')).toEqual('btn-control');
844
522
  });
845
523
  });
846
- describe('borderless', () => {
847
- let page;
524
+ describe('Methods', () => {
848
525
  beforeEach(async () => {
849
526
  page = await setup({
850
527
  html: `
851
- <q2-pill label="My pill" value="my-pill-value" borderless>
528
+ <q2-pill label="My Pill">
852
529
  <q2-option value="1">Option 1</q2-option>
853
530
  <q2-option value="2">Option 2</q2-option>
854
531
  <q2-option value="3">Option 3</q2-option>
855
532
  </q2-pill>
856
533
  `,
857
534
  });
535
+ pill = await page.find('q2-pill');
858
536
  });
859
- it('border style should be none when borerless', async function () {
860
- const borderStyle = await page.$eval('q2-pill >>> button', el => {
861
- return window.getComputedStyle(el).getPropertyValue('border-style');
862
- });
863
- expect(borderStyle).toEqual('none');
537
+ it('openPopover() opens the popover', async () => {
538
+ await pill.callMethod('openPopover');
539
+ await page.waitForChanges();
540
+ expect(pill).toHaveAttribute('open');
864
541
  });
865
- });
866
- describe('Regressions', () => {
867
- describe('TCT-2161', () => {
868
- it('leaves the element when Tab is pressed', async function () {
869
- page = await setup({
870
- html: `
871
- <q2-pill label="My pill">
872
- <q2-option value="1">Option 1</q2-option>
873
- <q2-option value="2">Option 2</q2-option>
874
- <q2-option value="3">Option 3</q2-option>
875
- </q2-pill>
876
- <button test-id="btn-next">Test</button>
877
- `,
878
- });
879
- pill = await page.find('q2-pill');
880
- await pill.focus();
881
- expect(await getActiveElementTestId(page)).toEqual('btn-control');
882
- await pill.press('Tab');
542
+ it('closePopover() closes the popover', async () => {
543
+ expect(pill).not.toHaveAttribute('open');
544
+ await pill.callMethod('openPopover');
545
+ await page.waitForChanges();
546
+ expect(pill).toHaveAttribute('open');
547
+ await pill.callMethod('closePopover');
548
+ await page.waitForChanges();
549
+ expect(pill).not.toHaveAttribute('open');
550
+ });
551
+ describe('setValue()', () => {
552
+ it('opens the popover, clicks the option matching the provided value, and closes the popover ', async () => {
553
+ const clickSpy = await pill.spyOnEvent('change');
554
+ await pill.callMethod('setValue', '1');
883
555
  await page.waitForChanges();
884
- expect(await getActiveElementTestId(page)).toEqual('btn-next');
556
+ expect(pill).not.toHaveAttribute('open');
557
+ expect(clickSpy).toHaveReceivedEventDetail({
558
+ value: '1',
559
+ values: [{ display: 'Option 1', value: '1' }],
560
+ active: true,
561
+ });
562
+ });
563
+ describe('when multiple', () => {
564
+ it('opens the popover and selects the values matching the provided values', async () => {
565
+ pill.setProperty('multiple', true);
566
+ await page.waitForChanges();
567
+ const clickSpy = await pill.spyOnEvent('change');
568
+ await pill.callMethod('setValue', ['1', '3']);
569
+ await page.waitForChanges();
570
+ expect(pill).not.toHaveAttribute('open');
571
+ expect(clickSpy).toHaveReceivedEventDetail({
572
+ values: [
573
+ { display: 'Option 1', value: '1' },
574
+ { display: 'Option 3', value: '3' },
575
+ ],
576
+ active: true,
577
+ });
578
+ });
579
+ it('keeps popover open when passed in args', async () => {
580
+ pill.setProperty('multiple', true);
581
+ await page.waitForChanges();
582
+ const clickSpy = await pill.spyOnEvent('change');
583
+ await pill.callMethod('setValue', ['1', '3'], { closePopover: false });
584
+ await page.waitForChanges();
585
+ expect(pill).toHaveAttribute('open');
586
+ expect(clickSpy).toHaveReceivedEventDetail({
587
+ values: [
588
+ { display: 'Option 1', value: '1' },
589
+ { display: 'Option 3', value: '3' },
590
+ ],
591
+ active: true,
592
+ });
593
+ });
885
594
  });
886
595
  });
887
596
  });
888
- describe('Accessibility', () => {
889
- it("option-list should have a role of 'listbox' and the options a role of 'option'", async () => {
597
+ describe('Click', () => {
598
+ describe('when no options are provided', () => {
599
+ it('toggles active on click', async () => {
600
+ page = await setup({
601
+ html: `<q2-pill label="My pill" value="my-pill-value"></q2-pill>`,
602
+ });
603
+ pill = await page.find('q2-pill');
604
+ const closeBtn = await page.find('q2-pill >>> .btn-close');
605
+ const closeIcon = await page.find('q2-pill >>> q2-icon');
606
+ const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
607
+ const changeSpy = await pill.spyOnEvent('change');
608
+ expect(pill).not.toHaveAttribute('active');
609
+ expect(await closeBtn.isVisible()).toBe(false);
610
+ expect(closeIcon).toEqualAttribute('type', 'close');
611
+ expect(btnWrapper.classList.contains('has-icon')).toBe(false);
612
+ expect(btnWrapper.classList.contains('has-options')).toBe(false);
613
+ await pill.click();
614
+ await page.waitForChanges();
615
+ expect(pill).toHaveAttribute('active');
616
+ expect(await closeBtn.isVisible()).toBe(true);
617
+ expect(btnWrapper.classList.contains('has-icon')).toBe(true);
618
+ expect(btnWrapper.classList.contains('has-options')).toBe(false);
619
+ expect(changeSpy).toHaveReceivedEventDetail({
620
+ active: true,
621
+ value: 'my-pill-value',
622
+ values: [{ display: 'My pill', value: 'my-pill-value' }],
623
+ });
624
+ await pill.click();
625
+ await page.waitForChanges();
626
+ expect(pill).not.toHaveAttribute('active');
627
+ expect(await closeBtn.isVisible()).toBe(false);
628
+ expect(btnWrapper.classList.contains('has-icon')).toBe(false);
629
+ expect(btnWrapper.classList.contains('has-options')).toBe(false);
630
+ expect(changeSpy).toHaveReceivedEventDetail({
631
+ active: false,
632
+ value: 'my-pill-value',
633
+ values: [],
634
+ });
635
+ });
636
+ });
637
+ describe('when options are provided', () => {
638
+ beforeEach(async () => {
639
+ page = await setup({
640
+ html: `
641
+ <q2-pill label="My pill">
642
+ <q2-option value="1">Option 1</q2-option>
643
+ <q2-option value="2">Option 2</q2-option>
644
+ <q2-option value="3">Option 3</q2-option>
645
+ </q2-pill>
646
+ `,
647
+ });
648
+ pill = await page.find('q2-pill');
649
+ allOptions = await page.findAll('q2-option');
650
+ optionList = await page.find('q2-pill >>> q2-option-list');
651
+ popover = await page.find('q2-pill >>> q2-popover');
652
+ optionContainer = await page.find('q2-pill >>> q2-option-list >>> .options');
653
+ controlBtn = await page.find('q2-pill >>> .btn-primary');
654
+ changeSpy = await pill.spyOnEvent('change');
655
+ });
656
+ it('can select options via mouse', async () => {
657
+ let closeBtn = await page.find('q2-pill >>> .btn-close');
658
+ let closeIcon = await page.find('q2-pill >>> q2-icon');
659
+ const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
660
+ expect(pill).not.toHaveAttribute('active');
661
+ expect(await closeBtn.isVisible()).toBe(true);
662
+ expect(closeIcon).toEqualAttribute('type', 'chevron-down');
663
+ expect(btnWrapper.classList.contains('has-icon')).toBe(true);
664
+ expect(btnWrapper.classList.contains('has-options')).toBe(true);
665
+ expect(popover).not.toHaveAttribute('open');
666
+ expect(closeBtn.tagName).toEqual('DIV');
667
+ await pill.click();
668
+ await page.waitForChanges();
669
+ expect(pill).not.toHaveAttribute('active');
670
+ expect(pill).toHaveAttribute('open');
671
+ expect(popover).toHaveAttribute('open');
672
+ expect(await getFocusedTagName(page)).toEqual('Q2-PILL');
673
+ await allOptions[1].click();
674
+ await page.waitForChanges();
675
+ expect(changeSpy).toHaveReceivedEventDetail({
676
+ active: true,
677
+ value: '2',
678
+ values: [{ display: 'Option 2', value: '2' }],
679
+ });
680
+ expect(await optionList.getProperty('selectedOptions')).toEqual([{ display: 'Option 2', value: '2' }]);
681
+ closeBtn = await page.find('q2-pill >>> .btn-close');
682
+ closeIcon = await page.find('q2-pill >>> q2-icon');
683
+ expect(closeBtn.tagName).toEqual('BUTTON');
684
+ expect(closeIcon).toEqualAttribute('type', 'close');
685
+ await closeBtn.click();
686
+ await page.waitForChanges();
687
+ expect(pill).not.toHaveAttribute('active');
688
+ expect(changeSpy).toHaveReceivedEventDetail({
689
+ active: false,
690
+ value: null,
691
+ values: [],
692
+ });
693
+ expect(await optionList.getProperty('selectedOptions')).toEqual([]);
694
+ });
695
+ describe('when multiple', () => {
696
+ it('can select multiple options via mouse', async () => {
697
+ pill.setProperty('multiple', true);
698
+ await page.waitForChanges();
699
+ let closeBtn = await page.find('q2-pill >>> .btn-close');
700
+ let closeIcon = await page.find('q2-pill >>> q2-icon');
701
+ const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
702
+ expect(pill).not.toHaveAttribute('active');
703
+ expect(await closeBtn.isVisible()).toBe(true);
704
+ expect(closeIcon).toEqualAttribute('type', 'chevron-down');
705
+ expect(btnWrapper.classList.contains('has-icon')).toBe(true);
706
+ expect(btnWrapper.classList.contains('has-options')).toBe(true);
707
+ expect(popover).not.toHaveAttribute('open');
708
+ expect(closeBtn.tagName).toEqual('DIV');
709
+ await pill.click();
710
+ await page.waitForChanges();
711
+ expect(pill).not.toHaveAttribute('active');
712
+ expect(pill).toHaveAttribute('open');
713
+ expect(popover).toHaveAttribute('open');
714
+ expect(await getFocusedTagName(page)).toEqual('Q2-PILL');
715
+ await allOptions[1].click();
716
+ await page.waitForChanges();
717
+ expect(pill).toHaveAttribute('active');
718
+ expect(pill).toHaveAttribute('open');
719
+ expect(popover).toHaveAttribute('open');
720
+ expect(changeSpy).toHaveReceivedEventDetail({
721
+ active: true,
722
+ values: [{ display: 'Option 2', value: '2' }],
723
+ });
724
+ expect(await optionList.getProperty('selectedOptions')).toEqual([
725
+ { display: 'Option 2', value: '2' },
726
+ ]);
727
+ closeBtn = await page.find('q2-pill >>> .btn-close');
728
+ closeIcon = await page.find('q2-pill >>> q2-icon');
729
+ expect(closeBtn.tagName).toEqual('BUTTON');
730
+ expect(closeIcon).toEqualAttribute('type', 'close');
731
+ await allOptions[2].click();
732
+ await page.waitForChanges();
733
+ expect(changeSpy).toHaveReceivedEventDetail({
734
+ active: true,
735
+ values: [
736
+ { display: 'Option 2', value: '2' },
737
+ { display: 'Option 3', value: '3' },
738
+ ],
739
+ });
740
+ expect(await optionList.getProperty('selectedOptions')).toEqual([
741
+ { display: 'Option 2', value: '2' },
742
+ { display: 'Option 3', value: '3' },
743
+ ]);
744
+ expect(pill).toHaveAttribute('active');
745
+ expect(pill).toHaveAttribute('open');
746
+ expect(popover).toHaveAttribute('open');
747
+ await btnWrapper.click();
748
+ await page.waitForChanges();
749
+ expect(pill).toHaveAttribute('active');
750
+ expect(pill).not.toHaveAttribute('open');
751
+ expect(popover).not.toHaveAttribute('open');
752
+ await closeBtn.click();
753
+ await page.waitForChanges();
754
+ expect(pill).not.toHaveAttribute('active');
755
+ expect(changeSpy).toHaveReceivedEventDetail({
756
+ active: false,
757
+ value: null,
758
+ values: [],
759
+ });
760
+ expect(await optionList.getProperty('selectedOptions')).toEqual([]);
761
+ });
762
+ });
763
+ });
764
+ });
765
+ describe('Keyboard', () => {
766
+ beforeEach(async () => {
890
767
  page = await setup({
891
768
  html: `
892
- <q2-pill label="My pill" open>
769
+ <q2-pill label="My pill">
893
770
  <q2-option value="1">Option 1</q2-option>
894
771
  <q2-option value="2">Option 2</q2-option>
895
772
  <q2-option value="3">Option 3</q2-option>
896
773
  </q2-pill>
897
774
  `,
898
775
  });
776
+ pill = await page.find('q2-pill');
777
+ allOptions = await page.findAll('q2-option');
778
+ optionList = await page.find('q2-pill >>> q2-option-list');
779
+ popover = await page.find('q2-pill >>> q2-popover');
780
+ optionContainer = await page.find('q2-pill >>> q2-option-list >>> .options');
781
+ controlBtn = await page.find('q2-pill >>> .btn-primary');
782
+ changeSpy = await pill.spyOnEvent('change');
783
+ });
784
+ describe('pill button interactions', () => {
785
+ it('opens list and focuses first option on ArrowDown', async () => {
786
+ await controlBtn.press('ArrowDown');
787
+ await page.waitForChanges();
788
+ expect(popover).toHaveAttribute('open');
789
+ expect(pill).toHaveAttribute('open');
790
+ expect(await getFocusedAttribute(page, 'value')).toEqual('1');
791
+ });
792
+ it('opens list and focuses last option on ArrowUp', async () => {
793
+ await controlBtn.press('ArrowUp');
794
+ await page.waitForChanges();
795
+ expect(popover).toHaveAttribute('open');
796
+ expect(pill).toHaveAttribute('open');
797
+ expect(await getFocusedAttribute(page, 'value')).toEqual('3');
798
+ });
799
+ it('opens list and does not focus first option on Enter', async () => {
800
+ await controlBtn.press('Enter');
801
+ await page.waitForChanges();
802
+ expect(popover).toHaveAttribute('open');
803
+ expect(pill).toHaveAttribute('open');
804
+ expect(await getActiveElementTestId(page)).toEqual('btn-control');
805
+ });
806
+ it('opens list and does not focus first option on Space', async () => {
807
+ await controlBtn.press(' ');
808
+ await page.waitForChanges();
809
+ expect(popover).toHaveAttribute('open');
810
+ expect(pill).toHaveAttribute('open');
811
+ expect(await getActiveElementTestId(page)).toEqual('btn-control');
812
+ });
813
+ it('opens list and focuses last option on Home', async () => {
814
+ await controlBtn.press('Home');
815
+ await page.waitForChanges();
816
+ expect(popover).toHaveAttribute('open');
817
+ expect(pill).toHaveAttribute('open');
818
+ expect(await getFocusedOptionValue(page)).toEqual('1');
819
+ });
820
+ it('opens list and focuses last option on End', async () => {
821
+ await controlBtn.press('End');
822
+ await page.waitForChanges();
823
+ expect(popover).toHaveAttribute('open');
824
+ expect(pill).toHaveAttribute('open');
825
+ expect(await getFocusedAttribute(page, 'value')).toEqual('3');
826
+ });
827
+ });
828
+ describe('option list interactions', () => {
829
+ it('can select options via keyboard', async () => {
830
+ let closeBtn = await page.find('q2-pill >>> .btn-close');
831
+ let closeIcon = await page.find('q2-pill >>> q2-icon');
832
+ const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
833
+ expect(pill).not.toHaveAttribute('active');
834
+ expect(await closeBtn.isVisible()).toBe(true);
835
+ expect(closeIcon).toEqualAttribute('type', 'chevron-down');
836
+ expect(btnWrapper.classList.contains('has-icon')).toBe(true);
837
+ expect(btnWrapper.classList.contains('has-options')).toBe(true);
838
+ expect(popover).not.toHaveAttribute('open');
839
+ expect(closeBtn.tagName).toEqual('DIV');
840
+ await controlBtn.press('ArrowDown');
841
+ await page.waitForChanges();
842
+ expect(pill).not.toHaveAttribute('active');
843
+ expect(pill).toHaveAttribute('open');
844
+ expect(popover).toHaveAttribute('open');
845
+ expect(await getFocusedOptionValue(page)).toEqual('1');
846
+ await optionContainer.press('ArrowDown');
847
+ await page.waitForChanges();
848
+ expect(await getFocusedOptionValue(page)).toEqual('2');
849
+ await allOptions[1].press(' ');
850
+ await page.waitForChanges();
851
+ expect(pill).toHaveAttribute('active');
852
+ expect(pill).not.toHaveAttribute('open');
853
+ expect(popover).not.toHaveAttribute('open');
854
+ expect(changeSpy).toHaveReceivedEventDetail({
855
+ active: true,
856
+ value: '2',
857
+ values: [{ display: 'Option 2', value: '2' }],
858
+ });
859
+ expect(await optionList.getProperty('selectedOptions')).toEqual([{ display: 'Option 2', value: '2' }]);
860
+ closeBtn = await page.find('q2-pill >>> .btn-close');
861
+ closeIcon = await page.find('q2-pill >>> q2-icon');
862
+ expect(closeBtn.tagName).toEqual('BUTTON');
863
+ expect(closeIcon).toEqualAttribute('type', 'close');
864
+ await closeBtn.press(' ');
865
+ await page.waitForChanges();
866
+ expect(pill).not.toHaveAttribute('active');
867
+ expect(changeSpy).toHaveReceivedEventDetail({
868
+ active: false,
869
+ value: null,
870
+ values: [],
871
+ });
872
+ expect(await optionList.getProperty('selectedOptions')).toEqual([]);
873
+ });
874
+ describe('when multiple', () => {
875
+ it('can select multiple options via keyboard', async () => {
876
+ pill.setProperty('multiple', true);
877
+ await page.waitForChanges();
878
+ let closeBtn = await page.find('q2-pill >>> .btn-close');
879
+ let closeIcon = await page.find('q2-pill >>> q2-icon');
880
+ const btnWrapper = await page.find('q2-pill >>> .btn-wrapper');
881
+ expect(pill).not.toHaveAttribute('active');
882
+ expect(await closeBtn.isVisible()).toBe(true);
883
+ expect(closeIcon).toEqualAttribute('type', 'chevron-down');
884
+ expect(btnWrapper.classList.contains('has-icon')).toBe(true);
885
+ expect(btnWrapper.classList.contains('has-options')).toBe(true);
886
+ expect(popover).not.toHaveAttribute('open');
887
+ expect(closeBtn.tagName).toEqual('DIV');
888
+ await controlBtn.press('ArrowDown');
889
+ await page.waitForChanges();
890
+ expect(pill).not.toHaveAttribute('active');
891
+ expect(pill).toHaveAttribute('open');
892
+ expect(popover).toHaveAttribute('open');
893
+ expect(await getFocusedOptionValue(page)).toEqual('1');
894
+ await optionContainer.press('ArrowDown');
895
+ await page.waitForChanges();
896
+ expect(await getFocusedOptionValue(page)).toEqual('2');
897
+ await allOptions[1].press(' ');
898
+ await page.waitForChanges();
899
+ expect(pill).toHaveAttribute('active');
900
+ expect(pill).toHaveAttribute('open');
901
+ expect(popover).toHaveAttribute('open');
902
+ expect(changeSpy).toHaveReceivedEventDetail({
903
+ active: true,
904
+ values: [{ display: 'Option 2', value: '2' }],
905
+ });
906
+ expect(await optionList.getProperty('selectedOptions')).toEqual([
907
+ { display: 'Option 2', value: '2' },
908
+ ]);
909
+ closeBtn = await page.find('q2-pill >>> .btn-close');
910
+ closeIcon = await page.find('q2-pill >>> q2-icon');
911
+ expect(closeBtn.tagName).toEqual('BUTTON');
912
+ expect(closeIcon).toEqualAttribute('type', 'close');
913
+ await optionContainer.press('ArrowDown');
914
+ await page.waitForChanges();
915
+ expect(await getFocusedOptionValue(page)).toEqual('3');
916
+ await allOptions[2].press(' ');
917
+ await page.waitForChanges();
918
+ expect(changeSpy).toHaveReceivedEventDetail({
919
+ active: true,
920
+ values: [
921
+ { display: 'Option 2', value: '2' },
922
+ { display: 'Option 3', value: '3' },
923
+ ],
924
+ });
925
+ expect(await optionList.getProperty('selectedOptions')).toEqual([
926
+ { display: 'Option 2', value: '2' },
927
+ { display: 'Option 3', value: '3' },
928
+ ]);
929
+ expect(pill).toHaveAttribute('active');
930
+ expect(pill).toHaveAttribute('open');
931
+ expect(popover).toHaveAttribute('open');
932
+ await btnWrapper.click();
933
+ await page.waitForChanges();
934
+ expect(pill).toHaveAttribute('active');
935
+ expect(pill).not.toHaveAttribute('open');
936
+ expect(optionList).not.toHaveAttribute('open');
937
+ await closeBtn.click();
938
+ await page.waitForChanges();
939
+ expect(pill).not.toHaveAttribute('active');
940
+ expect(changeSpy).toHaveReceivedEventDetail({
941
+ active: false,
942
+ value: null,
943
+ values: [],
944
+ });
945
+ expect(await optionList.getProperty('selectedOptions')).toEqual([]);
946
+ });
947
+ });
948
+ });
949
+ });
950
+ describe('Focus', () => {
951
+ let page;
952
+ let pill;
953
+ beforeEach(async () => {
954
+ page = await setup({
955
+ html: `
956
+ <q2-pill label="My pill" value="my-pill-value">
957
+ <q2-option value="1">Option 1</q2-option>
958
+ <q2-option value="2">Option 2</q2-option>
959
+ <q2-option value="3">Option 3</q2-option>
960
+ </q2-pill>
961
+ `,
962
+ });
963
+ pill = await page.find('q2-pill');
964
+ });
965
+ it('focuses the <button> element when focus event is dispatched', async function () {
966
+ pill.triggerEvent('focus');
899
967
  await page.waitForChanges();
900
- const snapshot = await page.accessibility.snapshot();
901
- const button = snapshot.children[0].children[0];
902
- const optionList = snapshot.children[1];
903
- expect(button.role).toEqual('combobox');
904
- expect(optionList.role).toEqual('listbox');
905
- expect(optionList.children).toHaveLength(3);
906
- optionList.children.forEach(child => {
907
- expect(child.role).toEqual('option');
908
- expect(child.name).toBeTruthy();
968
+ expect(await getFocusedAttribute(page, 'test-id')).toEqual('btn-control');
969
+ });
970
+ });
971
+ describe('Regressions', () => {
972
+ describe('TCT-2161', () => {
973
+ it('leaves the element when Tab is pressed', async function () {
974
+ page = await setup({
975
+ html: `
976
+ <q2-pill label="My pill">
977
+ <q2-option value="1">Option 1</q2-option>
978
+ <q2-option value="2">Option 2</q2-option>
979
+ <q2-option value="3">Option 3</q2-option>
980
+ </q2-pill>
981
+ <button test-id="btn-next">Test</button>
982
+ `,
983
+ });
984
+ pill = await page.find('q2-pill');
985
+ await pill.focus();
986
+ expect(await getActiveElementTestId(page)).toEqual('btn-control');
987
+ await pill.press('Tab');
988
+ await page.waitForChanges();
989
+ expect(await getActiveElementTestId(page)).toEqual('btn-next');
990
+ });
991
+ });
992
+ describe('TCT-2433', () => {
993
+ it('zero is not rendered inside the click-elsewhere element', async () => {
994
+ page = await setup({
995
+ html: `<q2-pill label="My Pill"></q2-pill>`,
996
+ });
997
+ pill = await page.find('q2-pill');
998
+ const clickElsewhere = await page.find('q2-pill >>> click-elsewhere');
999
+ expect(await pill.getProperty('label')).toBe('My Pill');
1000
+ expect(clickElsewhere.textContent.slice(-1)).not.toBe('0');
909
1001
  });
910
1002
  });
911
1003
  });