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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-action-sheet-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-action-sheet/test/q2-action-sheet-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { ActionSheetListOption } from 'q2-tecton-common/lib/utility/action-sheet';\nimport { setup, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\n\ndescribe('q2-action-sheet', () => {\n let page: E2EPage;\n let actionSheet: E2EElement;\n let dialog: E2EElement;\n let interior: E2EElement;\n let btnDone: E2EElement;\n let options: E2EElement[];\n let optionList: E2EElement;\n let message: E2EElement;\n let title: E2EElement;\n let btnClose: E2EElement;\n\n const createOption = (option: Record<string, string | boolean>): ActionSheetListOption => ({\n disabled: false,\n display: 'Red',\n hidden: false,\n multiline: false,\n value: 'red',\n innerHTML: 'Red',\n ...option,\n });\n const demoOptions = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple'].map(color =>\n createOption({ value: color.toLowerCase(), display: color, innerHTML: color })\n );\n\n const showDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(false);\n await actionSheet.callMethod('show');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(dialog).toHaveClass('is-open');\n expect(await dialog.getProperty('open')).toBe(true);\n };\n\n const hideDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(true);\n expect(dialog).toHaveClass('is-open');\n await actionSheet.callMethod('hide');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-action-sheet></q2-action-sheet>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-action-sheet')).toHaveLength(0);\n });\n\n describe('Events', () => {\n describe('ready', () => {\n it('fires when the component is ready', async () => {\n page = await setup({ html: `` });\n await page.setContent(`<q2-action-sheet></q2-action-sheet>`);\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.waitForEvent('ready');\n const dialog = await page.find('q2-action-sheet >>> dialog');\n expect(dialog).toBeTruthy();\n });\n });\n });\n\n describe('Props', () => {\n describe('title', () => {\n it('renders the title block', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\"></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n\n it('renders the title block when hide-close is provided', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\" hide-close></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n });\n describe('hideClose', () => {\n describe('when false (default)', () => {\n it('shows the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeTruthy();\n });\n });\n describe('when true', () => {\n it('hides the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet hide-close></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeNull();\n });\n });\n });\n\n describe('data', () => {\n describe('when null (default)', () => {\n it('renders the <slot> slot', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n const slot = await page.find('q2-action-sheet >>> .content > slot');\n expect(slot).toBeTruthy();\n interior = await page.find('q2-action-sheet >>> .interior');\n expect(interior).toHaveClass('is-slot');\n });\n });\n\n describe('when list content is provided', () => {\n it('strips out harmful HTML from options', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `\n <div>${option.display}</div>\n <script>alert('Hello')</script>\n <style>html{display:none;}</style>\n <foo-input></foo-input>\n <q2-input></q2-input>\n `.trim(),\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n\n options = await page.findAll('q2-option');\n\n const firstOption = options[0];\n expect(firstOption.innerHTML).toEqual(\n '<div>Red</div> <q2-input type=\"text\" stencil-hydrated=\"\"></q2-input>'\n );\n });\n\n describe('when multiline options are provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `<div>${option.display}</div><div>Secondary text</div>`,\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeTruthy();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('<div>Red</div><div>Secondary text</div>');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is false', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeUndefined();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('Red');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is true', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: true,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders a multiselect list that emits the selected items on close', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n await btnDone.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'green',\n values: [\n { display: 'Red', value: 'red' },\n { display: 'Green', value: 'green' },\n ],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n\n it('renders a multiselect list that does not emit selections on cancel', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n });\n\n describe('when message content is provided', () => {\n it('renders a message', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n await actionSheet.setProperty('data', {\n appearance: 'message',\n title: 'My title',\n description: 'My description',\n type: 'warning',\n });\n await page.waitForChanges();\n\n await showDialog(page);\n message = await page.find('q2-action-sheet >>> q2-message');\n expect(message).toBeTruthy();\n\n const title = await page.find('q2-action-sheet >>> q2-message h2');\n const description = await page.find('q2-action-sheet >>> q2-message p');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-message');\n expect(message).toEqualAttribute('type', 'warning');\n expect(title).toEqualText('My title');\n expect(description).toEqualText('My description');\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n });\n });\n });\n });\n\n describe('Methods', () => {\n describe('show', () => {\n it('should show the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n const minHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-min-height')\n );\n const maxHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-max-height')\n );\n expect(minHeight).toBe('120px');\n expect(maxHeight).toBe('450px');\n });\n });\n describe('hide', () => {\n it('should hide the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n await hideDialog(page);\n expect(await dialog.getProperty('open')).toBe(false);\n });\n });\n });\n\n it('closes the dialog when the close button is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the escape key is pressed', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.press('Escape');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the backdrop is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('does not close the dialog when the dialog content is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n const title = await page.find('q2-action-sheet >>> .title');\n await title.click();\n await page.waitForChanges();\n expect(dialog).not.toHaveClass('is-closing');\n });\n});\n"]}
@@ -48,7 +48,7 @@ export class Q2Avatar {
48
48
  const isLoaded = this.isLoaded;
49
49
  const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);
50
50
  const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);
51
- return (h("div", { key: 'fb38246042e8b43394fde0fdee3c54bfcc5b31f7' }, showImg && (h("img", { key: '6a146c651215ba30351fbbd34e2bb14ae7b33d11', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: '64ce03bf673bf817f74a9d21f55ff62e2531554d', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: '2b620c288b03095bce06a36582b74e4aae4c55ec', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: '92e5ec056ce6c09dd0c85408b58abaf6bf346e60', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: '7fad4b694805cf8237493e26511618e313941dc5', type: this.icon })))));
51
+ return (h("div", { key: 'e3e33942b1e2792988f2b947e4085ce53dc341da' }, showImg && (h("img", { key: 'b472762873a44047304ed60148925e8b996f96a9', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: '3a43054eb04c4ff8c8dd9be48bf95becf389c9fb', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: '12c82078a7b3a8b87e9f2265b3dc0d950c642bb3', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: '157d78a0de480e216946cecb77b8925622a660e8', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: '6f7b7dbe36dec6cedc21003a2da488ba1b7729f2', type: this.icon })))));
52
52
  }
53
53
  static get is() { return "q2-avatar"; }
54
54
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n badSrc: boolean = false;\n\n @State()\n isLoaded: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** A [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display as the fallback. */\n @Prop()\n icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true })\n initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true })\n src: string;\n\n // #endregion\n // #region Watchers\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div>\n {showImg && (\n <img\n class={isLoaded ? 'avatar-img' : 'avatar-img-default'}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n badSrc: boolean = false;\n\n @State()\n isLoaded: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** A [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display as the fallback. */\n @Prop()\n icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true })\n initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true })\n src: string;\n\n // #endregion\n // #region Watchers\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div>\n {showImg && (\n <img\n class={isLoaded ? 'avatar-img' : 'avatar-img-default'}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../helpers";
1
+ import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../../../utils/helpers";
2
2
  const base64Image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';
3
3
  describe('q2-avatar', () => {
4
4
  it('properly compiles CSS vars and functions', async () => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-avatar-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/test/q2-avatar-test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,WAAW,GACb,oHAAoH,CAAC;AACzH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,+BAA+B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE,mBAAmB,WAAW,gBAAgB;aACvD,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,aAAa,EAAE,KAAK;oBACnB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,mBAAmB,WAAW,gBAAgB;qBACvD,CAAC,CAAC;oBAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC3C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAEhD,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACtC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBAC9D,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,eAAe,EAAE,KAAK;oBACrB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,mBAAmB,WAAW,gBAAgB;qBACvD,CAAC,CAAC;oBAEH,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBAEvE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAE3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE3C,KAAK,CAAC,WAAW,CACb,KAAK,EACL,qGAAqG,CACxG,CAAC;oBAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBAEnE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CACzC,qGAAqG,CACxG,CAAC;gBACN,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK;oBAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,2DAA2D;qBACpE,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;oBAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC5C,MAAM,CAAC,WAAW,CACd,KAAK,EACL,qGAAqG,CACxG,CAAC;oBACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACzE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CACzC,qGAAqG,CACxG,CAAC;gBACN,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;YAClB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,yCAAyC,EAAE,KAAK;oBAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,oDAAoD;qBAC7D,CAAC,CAAC;oBAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAC9E,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBAE5D,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;oBAC1E,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK;oBAC/B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,oDAAoD;qBAC7D,CAAC,CAAC;oBAEH,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAE7E,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAE7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE5C,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;oBAE7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAEzE,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK;oBACvC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,oDAAoD;qBAC7D,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAE9E,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;oBAC1E,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;oBAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,mBAAmB,WAAW,2CAA2C;qBAClF,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACrE,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,kCAAkC,EAAE,KAAK;oBACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,yCAAyC;qBAClD,CAAC,CAAC;oBAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAE9E,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBACtD,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,mBAAmB,WAAW,gBAAgB;qBACvD,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACrE,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACtB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,0CAA0C,EAAE,KAAK;oBAChD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,oEAAoE;qBAC7E,CAAC,CAAC;oBAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAC9E,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBAE5D,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK;oBAC9C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE,4CAA4C;qBACrD,CAAC,CAAC;oBAEH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBAErE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;YAClB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,8BAA8B,EAAE,KAAK;oBACpC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC,CAAC;oBAE1E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;oBACvF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBACxF,MAAM,wBAAwB,GAAG,MAAM,qBAAqB,CAAC,gBAAgB,EAAE,CAAC;oBAEhF,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC7D,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,+BAA+B,EAAE,KAAK;oBACrC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;oBAE9D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;oBAEvF,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK;QACvD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACrB,IAAI,EAAE,4DAA4D;SACrE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAExE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAE7B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAE/E,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\nconst base64Image =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';\ndescribe('q2-avatar', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: `<q2-avatar></q2-avatar>` });\n expect(await getListOfStyleCompilationIssues(page, 'q2-avatar')).toHaveLength(0);\n });\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('@Props', () => {\n describe('src', () => {\n describe('when provided', () => {\n it('loads image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const avatar = await page.find('q2-avatar');\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n const imageSrc = image.getAttribute('src');\n const avatarCss = await avatar.getComputedStyle();\n const imageCss = await image.getComputedStyle();\n\n expect(imageSrc).toEqual(base64Image);\n expect(avatarCss.backgroundColor).toEqual('rgba(0, 0, 0, 0)');\n expect(imageCss.borderRadius).toEqual('50%');\n expect(image).toHaveClass('avatar-img');\n });\n\n it('updates image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n let userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(base64Image);\n\n const image = await page.find('q2-avatar');\n\n image.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n\n await page.waitForChanges();\n\n userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n\n it('updates img tag to a non-error state', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall src=\"badUrl\" ></q2-avatar>',\n });\n await page.waitForChanges();\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(badImage).toBeFalsy();\n\n const avatar = await page.find('q2-avatar');\n avatar.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n await page.waitForChanges();\n\n const goodImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(goodImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n });\n });\n\n describe('name', () => {\n describe('when provided', () => {\n it('calculates initials from name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JR');\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('recalculates if changed', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"john peter robinson\"></q2-avatar>',\n });\n\n let userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('JR');\n\n const avatar = await page.find('q2-avatar');\n\n avatar.setProperty('name', 'sarah marshall');\n\n await page.waitForChanges();\n\n userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n it('adds aria-label to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('adds name as an alt tag to img', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', 'john peter robinson');\n });\n });\n\n describe('when not provided', () => {\n it('adds aria-hidden to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JCVD\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).not.toHaveAttribute('aria-label');\n expect(initialsSvg).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds empty alt tag to image', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', '');\n });\n });\n });\n\n describe('initials', () => {\n describe('when provided', () => {\n it('prioritizes initials over name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JKVD\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JKVD');\n });\n\n it('limits the initials to four characters', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"ABCDEFG\"></q2-avatar>`,\n });\n\n const el = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(el.innerText).toEqual('ABCD');\n });\n });\n });\n describe('icon', () => {\n describe('when provided', () => {\n it('renders custom fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar icon=\"info\"></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n const fallbackIconContainer = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"]');\n const fallbackIconContainerCss = await fallbackIconContainer.getComputedStyle();\n\n expect(fallbackIconContainerCss.borderRadius).toEqual('50%');\n expect(fallbackIcon).toEqualAttribute('type', 'info');\n });\n });\n\n describe('when not provided', () => {\n it('renders default fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n\n expect(fallbackIcon).toEqualAttribute('type', 'person');\n });\n });\n });\n });\n\n it.skip('img should be removed if url does not work', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall\" src=\"badUrl\" ></q2-avatar>',\n });\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(badImage).toEqual(badImage);\n\n page.waitForChanges();\n\n expect(badImage).toBeFalsy();\n\n const userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n});\n"]}
@@ -1,4 +1,3 @@
1
- // import { hasSlotContent } from 'src/utils';
2
1
  import { h, Fragment } from "@stencil/core";
3
2
  export class Q2Badge {
4
3
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"q2-badge.js","sourceRoot":"","sources":["../../../../src/components/q2-badge/q2-badge.tsx"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAsB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1F,MAAM,OAAO,OAAO;;;;;;qBA8BA,CAAC;;IAEjB,aAAa;IACb,wBAAwB;IAExB,IAAI,SAAS;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACtC,EAAC,QAAQ,OAAG,CACf,CAAC,CAAC,CAAC,CACA,WAAK,KAAK,EAAC,eAAe;YACtB,WAAK,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5B,YAAM,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAQ,CAC7E,CACJ,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["// import { hasSlotContent } from 'src/utils';\nimport { Component, Prop, h, ComponentInterface, Element, Fragment } from '@stencil/core';\n\n@Component({ tag: 'q2-badge', shadow: true, styleUrl: 'q2-badge.scss' })\nexport class Q2Badge implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** The number of digits to show. */\n @Prop({ reflect: true })\n maxLength: number | undefined;\n\n /** The size of the badge. */\n @Prop({ reflect: true })\n size: 'default' | 'large' | undefined;\n\n /** The stoplight color of the element when `theme` is not present. */\n @Prop({ reflect: true })\n status: 'info' | 'alert' | 'warning' | 'success' | undefined;\n\n /**\n * The color of the badge when in the active state.\n * The `theme` has higher priority than `status`.\n */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary' | undefined;\n\n /** The number to display in the badge. `q2-badge` also allows slot HTML elements which can be any string. */\n @Prop({ reflect: true })\n value: number = 0;\n\n // #endregion\n // #region Local Methods\n\n get badgeText(): string {\n const maxValue = Math.pow(10, this.maxLength || 2) - 1;\n let value: string | number = this.value || 0;\n if (isNaN(value) || value <= 0) {\n value = '';\n } else if (value <= maxValue) {\n value = Number(value).toLocaleString();\n } else {\n value = Number(maxValue).toLocaleString() + '+';\n }\n return value;\n }\n\n get hasSlot(): boolean {\n return !!this.hostElement.innerHTML.trim();\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const badgeClass = ['badge'];\n if (this.size === 'large') badgeClass.push('size-large');\n return !this.badgeText && !this.hasSlot ? (\n <Fragment />\n ) : (\n <div class=\"badge-wrapper\">\n <div class={badgeClass.join(' ')}>\n <span class=\"badge-text\">{this.hasSlot ? <slot></slot> : this.badgeText}</span>\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-badge.js","sourceRoot":"","sources":["../../../src/components/q2-badge/q2-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAsB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1F,MAAM,OAAO,OAAO;;;;;;qBA8BA,CAAC;;IAEjB,aAAa;IACb,wBAAwB;IAExB,IAAI,SAAS;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACtC,EAAC,QAAQ,OAAG,CACf,CAAC,CAAC,CAAC,CACA,WAAK,KAAK,EAAC,eAAe;YACtB,WAAK,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5B,YAAM,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAQ,CAC7E,CACJ,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import { Component, Prop, h, ComponentInterface, Element, Fragment } from '@stencil/core';\n\n@Component({ tag: 'q2-badge', shadow: true, styleUrl: 'q2-badge.scss' })\nexport class Q2Badge implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** The number of digits to show. */\n @Prop({ reflect: true })\n maxLength: number | undefined;\n\n /** The size of the badge. */\n @Prop({ reflect: true })\n size: 'default' | 'large' | undefined;\n\n /** The stoplight color of the element when `theme` is not present. */\n @Prop({ reflect: true })\n status: 'info' | 'alert' | 'warning' | 'success' | undefined;\n\n /**\n * The color of the badge when in the active state.\n * The `theme` has higher priority than `status`.\n */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary' | undefined;\n\n /** The number to display in the badge. `q2-badge` also allows slot HTML elements which can be any string. */\n @Prop({ reflect: true })\n value: number = 0;\n\n // #endregion\n // #region Local Methods\n\n get badgeText(): string {\n const maxValue = Math.pow(10, this.maxLength || 2) - 1;\n let value: string | number = this.value || 0;\n if (isNaN(value) || value <= 0) {\n value = '';\n } else if (value <= maxValue) {\n value = Number(value).toLocaleString();\n } else {\n value = Number(maxValue).toLocaleString() + '+';\n }\n return value;\n }\n\n get hasSlot(): boolean {\n return !!this.hostElement.innerHTML.trim();\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const badgeClass = ['badge'];\n if (this.size === 'large') badgeClass.push('size-large');\n return !this.badgeText && !this.hasSlot ? (\n <Fragment />\n ) : (\n <div class=\"badge-wrapper\">\n <div class={badgeClass.join(' ')}>\n <span class=\"badge-text\">{this.hasSlot ? <slot></slot> : this.badgeText}</span>\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../helpers";
1
+ import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../../../utils/helpers";
2
2
  describe('q2-badge', () => {
3
3
  describe('[A11y] guideline compliance', () => {
4
4
  it('Does not have accessibility violations', async () => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-badge-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-badge/test/q2-badge-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\ndescribe('q2-badge', () => {\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-badge value=123 theme=\"primary\"></q2-badge>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-badge></q2-badge>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-badge')).toHaveLength(0);\n });\n\n it('should render value property if value is less than 100', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=92></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('92');\n });\n\n it('should render value property if value is greater than 100', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=123></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('99+');\n });\n\n it('should not render badge element if value is not a number', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=\"abc\"></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is zero', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=0></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is negative number', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=-5></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should not render badge element if value is undefined', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge></q2-badge>`,\n });\n const badgeWrapper = await page.find('q2-badge >>> .badge-wrapper');\n expect(badgeWrapper).toBeNull();\n });\n\n it('should render value property if value is 123456 with maxLength 6', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=123456 max-length=6></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('123,456');\n });\n\n it('should render value property if value is 12345678 with maxLength 6', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=12345678 max-length=6></q2-badge>`,\n });\n const text = await page.find('q2-badge >>> .badge-text');\n expect(text.innerText).toEqual('999,999+');\n });\n\n it('should render badge border', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-badge value=12345678 max-length=6></q2-badge>`,\n });\n const badge = await page.find('q2-badge >>> .badge');\n const badgeBorderColor = await badge.getComputedStyle();\n expect(badgeBorderColor.borderColor).toEqual('rgb(154, 152, 152)');\n });\n\n it('should render badge with plain text slot(slot comes first than value)', async function (): Promise<void> {\n const slotValue = '+32';\n const page = await setup({\n html: `<q2-badge value=12345678>${slotValue}</q2-badge>`,\n });\n const badge = await page.find('q2-badge');\n expect(badge.textContent.trim()).toEqual(slotValue);\n });\n\n it('should render badge with html slot(slot comes first than value)', async function (): Promise<void> {\n const slotValue = '<b>Bold</b>';\n const page = await setup({\n html: `<q2-badge value=12345678>${slotValue}</q2-badge>`,\n });\n const badge = await page.find('q2-badge');\n expect(badge.innerHTML).toEqual(slotValue);\n });\n\n it('should render badge border when status is passed', async function (): Promise<void> {\n const pageInfo = await setup({\n html: `<q2-badge value=12345678 status=\"info\"></q2-badge>`,\n });\n const badgeInfo = await pageInfo.find('q2-badge >>> .badge');\n const InfoBorderColor = await badgeInfo.getComputedStyle();\n expect(InfoBorderColor.borderColor).toEqual('rgb(58, 155, 214)');\n\n const pageAlert = await setup({\n html: `<q2-badge value=12345678 status=\"alert\"></q2-badge>`,\n });\n const badgeAlert = await pageAlert.find('q2-badge >>> .badge');\n const alertBorderColor = await badgeAlert.getComputedStyle();\n expect(alertBorderColor.borderColor).toEqual('rgb(228, 41, 41)');\n\n const pageWarning = await setup({\n html: `<q2-badge value=12345678 status=\"warning\"></q2-badge>`,\n });\n const badgeWarning = await pageWarning.find('q2-badge >>> .badge');\n const warningBorderColor = await badgeWarning.getComputedStyle();\n expect(warningBorderColor.borderColor).toEqual('rgb(249, 206, 76)');\n\n const pageSuccess = await setup({\n html: `<q2-badge value=12345678 status=\"success\"></q2-badge>`,\n });\n const badgeSuccess = await pageSuccess.find('q2-badge >>> .badge');\n const successBorderColor = await badgeSuccess.getComputedStyle();\n expect(successBorderColor.borderColor).toEqual('rgb(46, 170, 33)');\n });\n\n it('should render correct border color when theme is passed', async function (): Promise<void> {\n const pagePrimary = await setup({\n html: `<q2-badge value=12345678 theme=\"primary\" max-length=6></q2-badge>`,\n });\n const badgePrimary = await pagePrimary.find('q2-badge >>> .badge');\n const primaryBorderColor = await badgePrimary.getComputedStyle();\n expect(primaryBorderColor.borderColor).toEqual('rgb(58, 155, 214)');\n\n const pageSecondary = await setup({\n html: `<q2-badge value=12345678 theme=\"secondary\" max-length=6></q2-badge>`,\n });\n const badgeSecondary = await pageSecondary.find('q2-badge >>> .badge');\n const secondaryBorderColor = await badgeSecondary.getComputedStyle();\n expect(secondaryBorderColor.borderColor).toEqual('rgb(198, 209, 219)');\n\n const pageTertiary = await setup({\n html: `<q2-badge value=12345678 theme=\"tertiary\" max-length=6></q2-badge>`,\n });\n const badgeTertiary = await pageTertiary.find('q2-badge >>> .badge');\n const tertiaryBorderColor = await badgeTertiary.getComputedStyle();\n expect(tertiaryBorderColor.borderColor).toEqual('rgb(243, 244, 245)');\n });\n});\n"]}
@@ -147,6 +147,7 @@ button {
147
147
 
148
148
  ::slotted(q2-icon) {
149
149
  pointer-events: none;
150
+ margin-block: -100px;
150
151
  }
151
152
 
152
153
  :host {
@@ -84,15 +84,9 @@ export class Q2Btn {
84
84
  }
85
85
  // #endregion
86
86
  // #region Listeners
87
- disable(ev) {
88
- if (this.disabled) {
89
- ev.stopImmediatePropagation();
90
- }
91
- this.primaryBtn.focus();
92
- }
93
- handleClick(ev) {
94
- if (this.loading) {
95
- ev.stopImmediatePropagation();
87
+ handleClick(event) {
88
+ if (this.loading || this.disabled) {
89
+ event.stopImmediatePropagation();
96
90
  }
97
91
  this.primaryBtn.focus();
98
92
  }
@@ -547,12 +541,6 @@ export class Q2Btn {
547
541
  }
548
542
  static get listeners() {
549
543
  return [{
550
- "name": "click",
551
- "method": "disable",
552
- "target": undefined,
553
- "capture": true,
554
- "passive": false
555
- }, {
556
544
  "name": "click",
557
545
  "method": "handleClick",
558
546
  "target": undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n disable(ev: Event) {\n if (this.disabled) {\n ev.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('click', { capture: true })\n handleClick(ev: Event) {\n if (this.loading) {\n ev.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n role={this._role || undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n role={this._role || undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n // #endregion\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel, getListOfStyleCompilationIssues, evaluateA11y, } from "../helpers";
1
+ import { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel, getListOfStyleCompilationIssues, evaluateA11y, } from "../../../utils/helpers";
2
2
  describe('q2-btn', () => {
3
3
  let page;
4
4
  let button;
@@ -369,6 +369,41 @@ describe('q2-btn', () => {
369
369
  expect(buttonCss.fontSize).toEqual('20px');
370
370
  });
371
371
  });
372
+ describe('button height should be same with or without icon', () => {
373
+ it('when size set to small', async () => {
374
+ const pageWIcon = await setup({
375
+ html: `
376
+ <q2-btn intent="workflow-primary" size="small">
377
+ <q2-icon type="edit"></q2-icon>
378
+ <span>My Button</span>
379
+ </q2-btn>
380
+ `,
381
+ });
382
+ const pageWOIcon = await setup({
383
+ html: `
384
+ <q2-btn intent="workflow-primary" size="small">
385
+ <span>My Button</span>
386
+ </q2-btn>
387
+ `,
388
+ });
389
+ const buttonWIcon = await pageWIcon.find('q2-btn');
390
+ const buttonWOIcon = await pageWOIcon.find('q2-btn');
391
+ async function compareHeight(size) {
392
+ buttonWIcon.setProperty('size', size);
393
+ await pageWIcon.waitForChanges();
394
+ const innerButtonWIcon = await pageWIcon.find('q2-btn >>> button');
395
+ const buttonCssWIcon = await innerButtonWIcon.getComputedStyle();
396
+ buttonWOIcon.setProperty('size', size);
397
+ await pageWOIcon.waitForChanges();
398
+ const innerButtonWOIcon = await pageWOIcon.find('q2-btn >>> button');
399
+ const buttonCssWOIcon = await innerButtonWOIcon.getComputedStyle();
400
+ expect(buttonCssWIcon.height).toEqual(buttonCssWOIcon.height);
401
+ }
402
+ await compareHeight('small');
403
+ await compareHeight('medium');
404
+ await compareHeight('large');
405
+ });
406
+ });
372
407
  });
373
408
  });
374
409
  describe('description', () => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/test/q2-btn-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport {\n setTestStrings,\n setup,\n dispatchEvent,\n testDeprecatedAriaLabel,\n getListOfStyleCompilationIssues,\n evaluateA11y,\n} from '@/utils/helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-btn intent=\"workflow-primary\" type=\"button\">My Button</q2-btn>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-btn></q2-btn>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-btn')).toHaveLength(0);\n });\n\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('does not emit click event when loading property is true', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn loading>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('_role', () => {\n it('is \"undefined\" when not provided (default)', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('role');\n });\n\n it('applies the role to the inner button when provided', async () => {\n page = await setup({\n html: `<q2-btn _role=\"menuitem\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('role', 'menuitem');\n });\n });\n\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('no value unless explicitly set', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', '');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('translates to empty string if not passed a value', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', '');\n });\n\n const hasPopupValues = ['true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog'];\n hasPopupValues.forEach(async value => {\n it(`sets aria-haspopup to \"${value}\" when passed value \"${value}\"`, async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='${value}'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', value);\n });\n });\n\n it('sets aria-haspopup to `null` when not provided a valid string', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='foo'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', null);\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('translates to empty string if not passed a value', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', '');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n\n describe('size', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn size='small' ></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('does not have font size overwritten', () => {\n it(' when size set to small', async () => {\n button.setProperty('size', 'small');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('14px');\n });\n it(' when size set to medium', async () => {\n button.setProperty('size', 'medium');\n\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n\n expect(buttonCss.fontSize).toEqual('16px');\n });\n it(' when size set to large', async () => {\n button.setProperty('size', 'large');\n await page.waitForChanges();\n\n innerButton = await page.find('q2-btn >>> button');\n const buttonCss = await innerButton.getComputedStyle();\n expect(buttonCss.fontSize).toEqual('20px');\n });\n });\n\n describe('button height should be same with or without icon', () => {\n it('when size set to small', async () => {\n const pageWIcon = await setup({\n html: `\n <q2-btn intent=\"workflow-primary\" size=\"small\">\n <q2-icon type=\"edit\"></q2-icon>\n <span>My Button</span>\n </q2-btn>\n `,\n });\n\n const pageWOIcon = await setup({\n html: `\n <q2-btn intent=\"workflow-primary\" size=\"small\">\n <span>My Button</span>\n </q2-btn>\n `,\n });\n\n const buttonWIcon = await pageWIcon.find('q2-btn');\n const buttonWOIcon = await pageWOIcon.find('q2-btn');\n\n async function compareHeight(size) {\n buttonWIcon.setProperty('size', size);\n await pageWIcon.waitForChanges();\n const innerButtonWIcon = await pageWIcon.find('q2-btn >>> button');\n const buttonCssWIcon = await innerButtonWIcon.getComputedStyle();\n\n buttonWOIcon.setProperty('size', size);\n await pageWOIcon.waitForChanges();\n const innerButtonWOIcon = await pageWOIcon.find('q2-btn >>> button');\n const buttonCssWOIcon = await innerButtonWOIcon.getComputedStyle();\n\n expect(buttonCssWIcon.height).toEqual(buttonCssWOIcon.height);\n }\n\n await compareHeight('small');\n await compareHeight('medium');\n await compareHeight('large');\n });\n });\n });\n });\n\n describe('description', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('when provided', () => {\n it('aria-describedby is set to \"hidden-description\" on inner button', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');\n });\n\n it('generates an element with description as innerText and aria-hidden set to true', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement.innerText).toEqual('test description');\n expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');\n });\n });\n\n describe('when not provided', () => {\n it('aria-describedby attribute is not found on inner button', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-describedby');\n });\n\n it('does not generate an element with description', async () => {\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement).toBe(null);\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n describe('calls console.warn for deprecated `size` prop', () => {\n it('if set to number 1-4 by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn size='1'></q2-btn>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('if set to number 1-4 after componentDidLoad by using handleDeprecationWarning', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n button.setProperty('size', '3');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n describe('does not call console.warn for deprecated `size` prop', () => {\n it('if number never set on component prop', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-btn></q2-btn>` });\n button = await page.find('q2-btn');\n expect(warnMock).toHaveBeenCalledTimes(0);\n warnMock.mockReset();\n });\n });\n });\n});\n"]}